Kurz programovania - lekcia 1. Ahoj svet a cyklus

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
RP
Administrátor
Administrátor
Príspevky: 2596
Dátum registrácie: St 21. Mar, 2001, 20:00
Bydlisko: Kosice

Kurz programovania - lekcia 1. Ahoj svet a cyklus

Príspevok od používateľa RP »

Napadol ma takyto experiment:

- Spravime vo fore kurz programovania vo vsetkych jazykoch ktore spolu ovladame.
- Ja tu napisem Pascalovsky a C - ckovsky(ten v pripade ak sa nik iny nenajde co by ho napisal, pretoze v pripade C-cka je tu kopa ludi co ho ovlada) a kto chce prida to iste v inych jazykoch (Java, Perl, ....).
- Jeden thread bude jedna lekcia - v tomto threade sa pytajte ak niecomu nerozumiete k danej lekcii, respektove doplnajte verzie kapitoly v inych programovacich jazykoch

Zacnime :)

Kapitola 1. Ahoj svet a cyklus

Pascal :

Kód: Vybrať všetko

Program AhojSvet;
Begin
writeln('Ahoj svet');
End.
Vysvetlivky :
- Kazdy pascalovsky program zacina oznacenim Program Menoprogramu;
- Takzavane telo programu je uzavrete medzi slova Begin a End. - kde za End davame bodku.
- Bezne riadky v pascalovskych programoch koncia bodkociarkou
- writeln - sluzi na vypisovanie vysledkov - v tvare ako je to uvedene vypise na obrazovku text Ahoj svet

Cyklus : Cyklus sluzi na opakovane vykonavanie prikazu

Ako sa to pise - syntax :
for i:=1 to 10 do writeln('Ahoj svet'); - tento prikaz vypise desat krat pod seba na obrazovku frazu Ahoj svet
for i:=1 to 25 do writeln('Ahoj svet'); - tento prikaz vypise 25 krat pod seba na obrazovku frazu Ahoj svet. Chapeme uz teda na co su cisla v prikaze

Poznamka :
- premenna i musi byt cele cislo, co je takzavany typ integer v Pascale
- namiesto i moze byt akykolvek ine pismeno ktore si zadekladujeme (tj. oznacime) ako celociselne

Kód: Vybrať všetko

Program AhojSvet;
var i:integer;
Begin
for i:=1 to 10 do writeln('Ahoj svet');
End.
Vysvetlivky :
- riadok var i:integer; sluzi na zadefinovanie toho ze i je cele cislo (tj. integer). var oznacuje ze ide o variable - premennu, oznacuje miesto kde sa zadefinovavaju premenne, takzvanu deklaraciu premennych. Umiestnenie deklaracie premennych je nad zaciatkom tela programu oznacovaneho slovom Begin tj. zaciatok.

Program si mozete spustat za pomoci kompilatora stiahnutelneho z http://www.freepascal.org/download.var

Kompilacia :
1. naistalujte Freepascal
2. text vlozte do suboru nazovsuboru.pp
3. 1. Program skompilujete alebo z comand liny cez prikaz fpc nazovsuboru.pp
3. 2. Alebo program skompilujete priamo v editore ktory je spustitelnom prikazom fp. V nom napriklad klavesovou skratkou Ctrl+F9
Naposledy upravil/-a RP v Ut 22. Máj, 2007, 15:10, upravené celkom 2 krát.
Používateľov profilový obrázok
kami_sama
Používateľ
Používateľ
Príspevky: 362
Dátum registrácie: Po 05. Sep, 2005, 20:00
Bydlisko: Bratislava

Príspevok od používateľa kami_sama »

C

C je proceduralny jazyk, podobne pascalu, avsak o dva roky mladsi. podporuje programovanie na urovni viac blizsej k hardware-u, ako napr. pascal.

kazdy C-ckovsky program obsahuje hlavnu funkciu na spustenie celeho programu, vola sa main. kedze hovorime o funkciach, mozu mat aj navratove hodnoty.

bloky prikazov su tvorene zlozenymi zatvorkami { }. je to vlastne nahrada za begin a end z pascalu. za tymito zatvorkami sa nedavaju ani bodky, ani bodkociarky. ostatne prikazy su ukoncene bodkociarkou.

premenne mozu byt globalne aj lokalne (rozdiel v pristupu. intuitivne sa da tusit, ze co to bude, priklade neskorsie).

jednoriadkovy komentar sa pise za //
blok komentarov sa pise medzi (na viac riadkov) /* */

prvy program:

Kód: Vybrať všetko

#include <stdio> //kniznica pre standardny vstup-vystup (IO)

int main () 
//hlavna funkcia bez parametrov, vrati hodnotu int

{ 
//zaciatok funkcie

  int a, b, c; 
//premenne typu celeho cisla

  a = 5; 
  b = 3;
  c = a + b - 2; 
//priradenie hodnot

  printf ("Hello world"); 
//funkcia printf je sucastou stdio.h. vypise na obrazovku Hello world

  for (int i = 0; i  10; i++)
//zaciatok cyklu. int i = 0; - zaciatocna hodnota i  0; - podmienka cyklu. kym plati, cyklus sa vykonava i++ - zvysi hodnotu i o jedno (i-- znizi). funguje aj ++i, --i)

  {
//zaciatok tela cyklu

    printf ("%d -ty krat Hello world", i); 
//%d naznacuje pre printf, ze bude vypisovat aj cele cislo v dekadickej (desiatkovej) forme. vyraz %d je nahradeny hodnotou i.

  }
//konec tela cyklu

  return 1;
//vsetko OK, vratime 1.

}
//konec main, koniec programu.
ked pouzivate windows, budete potrebovat C-ckovsky compiler (linux ma vlastny - gcc, ale pre linuxakov je to asi zname..=:) ). daju sa pouzit aj rozne verzie C/C++ napr visual studio 6, alebo novsie verzie na bazy .net-u, avsak za tazke peniaze.
zadarmo je napr. dev c++. celkom dobry nastroj napisane v delphi (jazyk zakladane na pascale. no comment =:) ).
tu si mozete stiahnut free nastroj.

1. file -> new -> source file
2. napsite kod
3. zdrojak ulozit (menosuboru.c resp. menosuboru.cpp)
4. execute -> compile
5. ked to prebehlo, potom execute -> run
(kde mate source, budete mat aj spustitelny subor .exe)
Naposledy upravil/-a kami_sama v Po 21. Máj, 2007, 00:55, upravené celkom 1 krát.
fobos
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3852
Dátum registrácie: Št 22. Feb, 2007, 08:00
Bydlisko: Turčianske Teplice

Príspevok od používateľa fobos »

Tak aj ja hodim nieco do mlyna :wink:

C++

Jednoduchy matematicky prikald :

int main(int argc, char* argv[])

{

int a,b,c; - deklaracia premennych a,b,c (cele cisla)
printf("zadaj prve cislo: \n"); - vypise na obrazovku "..." (\n- na novy riadok
scanf("%d",&a); - stlacene cislo nacita da premennej a
printf("zadaj druhe cislo: \n"); - vypise na obrazovku "..."
scanf("%d",&b); - stlacene cislo nacita da premennej

c=a+b; - vykona scitanie cisla a a cisla b

printf("vysledok je: %d \n",c); - vypise na obrazovku "..." ktory nacita z premennej c

return 0; - vrati hodnotu

}
Xbox Series X...
Samsung S24 ...
AMD Ryzen 7600X, Patriot Venom 32GB DDR5 CL30 6000MHz, ASUS PRIME B650 PLUS, XFX Swift RX 9060 XT OC 16 GB, 1TB M2 SN7100 OS, 2TB EVO 990 PLUS DATA, SEAGATE 4TB HDD DATA, Corsair RM550x, LCD 27" AOC Q27G4XF
Používateľov profilový obrázok
RP
Administrátor
Administrátor
Príspevky: 2596
Dátum registrácie: St 21. Mar, 2001, 20:00
Bydlisko: Kosice

Príspevok od používateľa RP »

Meloon napísal:Tak aj ja hodim nieco do mlyna :wink:

C++

Jednoduchy matematicky prikald :

int main(int argc, char* argv[])

{

int a,b,c; - deklaracia premennych a,b,c (cele cisla)
printf("zadaj prve cislo: \n"); - vypise na obrazovku "..." (\n- na novy riadok
scanf("%d",&a); - stlacene cislo nacita da premennej a
printf("zadaj druhe cislo: \n"); - vypise na obrazovku "..."
scanf("%d",&b); - stlacene cislo nacita da premennej

c=a+b; - vykona scitanie cisla a a cisla b

printf("vysledok je: %d \n",c); - vypise na obrazovku "..." ktory nacita z premennej c

return 0; - vrati hodnotu

}
Pozor nemalo to byt hocico, ale priklad Hello world a jednoduchy cyklus :)
Používateľov profilový obrázok
Rusty
Používateľ
Používateľ
Príspevky: 793
Dátum registrácie: Ne 05. Jún, 2005, 02:00
Bydlisko: Bratislava (29)

Príspevok od používateľa Rusty »

Java

- java je objektovo orientovany programovaci jazyk
- zakladom je, ze si vytvorime triedy (class), ktore su nase "formicky".
- objekty vytvarame z "formiciek".
- trieda obsahuje "fields - polia" (nemylit s array) a metody ("funkcie").
- polia mozu obsahovat hodnoty typu int,double,String, ...
- metody urcuju spravanie objektov, ktore su vytvorene z tried.


- pre zaciatok je dobre zi stiahnut program eclipse TU. Eclipse je prostredie v ktorom sa velmi prijemne pisu programy v jave. Eclipse obsahuje v sebe aj kompilator.
- stiahnite si aj javu TU. Ta obsahuje JVM - co je java virtual machine a dalsie ine drobnosti ktorymi sa nebudeme zaoberat.

Hello world!

Ked mame vsetko nainstalovane, spustime eclipse :

Vyvali sa na nas okno, ktore nas poziada o zadanie adresy workspace. Nechajte ho tak, ako je a dajte ok.

Obrázok

Dalsi krok - vytvorime si novy projekt. File -> New -> project -> java project -> tu zadame meno projektu a dame finish.

Obrázok

Vo vytvorenom projekte vytvorime class. File -> New -> Class -> zadame meno ako na obrazku.

Obrázok

Dvakrat klikneme na prave vytvorenu triedu a napiseme do nej kod :

Kód: Vybrať všetko

public class tutorial {
	public static void main(String[] args){
		System.out.println("Hello world!");
	}
}
Vas projekt by mal vyzerat nejako takto :

Obrázok

A kod takto :

Obrázok

Program sa spusta pravym tlacidlom -> run as -> java application. V spodnej casti sa potom vypise vysledok :

Obrázok

Cyklus :

povodny kod nahradime kodom :

Kód: Vybrať všetko

public class tutorial {
	public static void main(String[] args){
		int i=0;
		for(i=1;i<6;i++){
			System.out.println("Cyklus prebehol " + i + " krat");
		}
	}
}
Po spusteni by sa nam malo vypisat nieco taketo :

Obrázok

Vysvetlivky :

cyklus for : ( "pociatocna hodnota" ; podmienka (cyklus sa vykonava ak je podmienka pravdiva) ; operacia, ktora sa vykona zakazdym, ked sa ide cyklus znovu vykonavat)

System.out.println("text"); : Vypise text na obrazovku. Text sa dava do uvodzoviek, premenne sa zapisuju mimo uvodzoviek. Jednotlive casti textu, ktory chceme do riadku vypisat spajame znamienkom plus "+".

Main : Program sa zacina vykonavanim metody main. Program sa ukonci, ked sa pride na koniec metody main.

Tutorialy

Hello world tutorial = podrobnejsie, ako tu - bez pouzitia eclipse. Pouzity je tam iba prikazovy riadok.

http://java.sun.com/docs/books/tutorial/ = tu najdete uplne vsetko.

:wink:
Naposledy upravil/-a Rusty v Po 21. Máj, 2007, 00:45, upravené celkom 1 krát.
Používateľov profilový obrázok
kami_sama
Používateľ
Používateľ
Príspevky: 362
Dátum registrácie: Po 05. Sep, 2005, 20:00
Bydlisko: Bratislava

Príspevok od používateľa kami_sama »

hmmm... ja len taky maly navrh. nebolo by lepsie tento tutorial rozdelit na proceduralne a OO programovanie? lebo java, C++, smalltalk, c# su dobre veci, ale zakladom by mali byt proceduralne veci. a az potom objekty.

vysvetlovat postupne OO vlastnosti, ako dedenie, polymorfiu, zapuzdrenost a podobne krasky je dost blbe a tiez pri C-ckovskom kode sa neda.... ani preto som nenapisal javovksy tutorial (aj ked java rulez, a uz vyse rok kodim vylucne v jave...=:) ).

len navrh. co vy na to?

2 meloon: kedze je to C++, nedoplnil by si to o #include "iostream.h" a namiesto printf a scanf, nemohol by si tam nahodit cin a cout? len pre presnost...
Naposledy upravil/-a kami_sama v Po 21. Máj, 2007, 01:00, upravené celkom 2 krát.
Používateľov profilový obrázok
Rusty
Používateľ
Používateľ
Príspevky: 793
Dátum registrácie: Ne 05. Jún, 2005, 02:00
Bydlisko: Bratislava (29)

Príspevok od používateľa Rusty »

no neviem ci to nieje zbytocne. lebo taky jednoduchsi tutorial na javu zaberie 10 A4-iek ak chces zmienit zapuzdrovanie, polymorfyzmus, dedenie, prekonavanie, rozhrania ....... v tomto topicu asi ide hlavne o ten najzakladnejsi zaklad v kazdom moznom jazyku.

peace :wink:
Používateľov profilový obrázok
kami_sama
Používateľ
Používateľ
Príspevky: 362
Dátum registrácie: Po 05. Sep, 2005, 20:00
Bydlisko: Bratislava

Príspevok od používateľa kami_sama »

presne tak, ale zle zaklady su to najhorsie, co sa len moze stat. preto som to navrhoval... :wink:
Používateľov profilový obrázok
Gogi
Používateľ
Používateľ
Príspevky: 473
Dátum registrácie: Št 03. Mar, 2005, 20:00
Bydlisko: TT

Príspevok od používateľa Gogi »

skusim pridat aj ja, aby zaciatocnici mali predstavu co sa deje tam dolu v procaku tak sa pokusim vypotit kod pre asm

Assembler - jazyk symbolickych instrukcii, assembler je programovaci jazyk najnizsej urovne, z neho sa (takmer) priamo preklada do strojoveho kodu, strojovy kod je sada znakov ktorym uz rozumie procesor.
Neako sa neviem vykoktat, skusim to teda inak - pri kompilacii zdrojoveho kodu(bez ohladu na programovaci jazyk(za predpokladu ze sa nejedna o skriptovaci jazyk)) prekladac nahradza Vami zadany kod do strojoveho kodu(iba tomu procesor rozumie), v hore uvedenych(vyssich) jazykoch kompilator nahradi Vami zadany kod za seriu instrukcii strojoveho kodu, v pripade assembleru pise programator kod priamo pre procesor, len ho nepise v strojovom kode ale v symbolickych menach(kvoli prehladnosti).
Keby som to skusil tak volne prelozit pre zaciatocnikov - hore uvedene programovacie jazyky prekladaju do strojoveho kodu, strojovy kod sa v podstate rovna assembleru, takze by sa dalo povedat ze vysledkom hore uvedenych programovacich jazykov je kod v assemblery(i), ten je vsak strasne velky a neprehladny, v assemblery(i) sa pre PC(v dnesnej dobe) programuje velmi velmi malo(az priam vobec), maximalne sa jedna o male casti programov(kde je nutna velka rychlost programu), prip. odladenie kodu(urychlenie behu) alebo napr. anticracking-ova ochrana apod.

V tomto jazyku neexistuju premenne - pristupuje sa priamo k pameti, aj tok programu sa riesi dost odlisne nez vo vyssich jazykoch atd.

Kod sa da pisat aj v notepad-e a skompiluje sa prekladacom. Prekladacov sa da najst niekolko, ja som pouzil NASM. Vysledny programcek je urceny pre DOS. Subor s kodom som nazval hello.asm, kompiloval som na subor hello.com(com preto lebo je jednoduchsi ako exe) prikazom

Kód: Vybrať všetko

nasmw -f bin -o hello.com hello.asm
kod v subore hello.asm:

Kód: Vybrať všetko

org 0x100

mov ah,9h
mov dx,hello
int 21h

mov ah,0x4c
mov al,0
int 0x21

hello DB "Hello",'$'
org 0x100 - tato direktiva posunie nasledujuci kod tak aby zacal na adrese 100h, myslim ze je to pre vyhradenie pamete pre hlavicku programu, pripadne stack
mov ah,9h - natiahne 9 do registra ah - cim program urcuje ze bude chciet vypisat text do prikazovej riadky
mov dx,hello - natiahne do registra dx ukazovatel na prvy bajt textu hello(zadefinovaneho na spodku suboru) - tymto dal program najavo co bude chciet vypisat
int 21h - zavolame prerusenie DOS-u - a ten si zisti z registra ah co ma spravit a z registra dx zisti co ma vypisat
mov ah,0x4c - program dava najavo ze konci
mov al,0 - s navratovou hodnotou 0 - cize konci korektne
int 0x21 - zavolame prerusenie DOS-u - a ten si vycita ze Nas program skoncil(pamet je volna atd.)
hello DB "Hello",'$' - definicia textu, znak za textom je tam preto aby DOS vediel kde je koniec textu

pre info tento program mi zabera "az" 19 bajtov miesta na disku

kod v subore cyklus.asm

Kód: Vybrať všetko

org 0x100

mov bl,3

cyklus_start:

mov ah,9h
mov dx,hello
int 21h

dec bl
cmp bl,0
loopnz cyklus_start

mov ah,0x4c
mov al,0
int 0x21

hello DB "Hello",0xD,0xA,'$'
mov bl,3 - nastaveny pocet opakovani, vyuzil som register bl
cyklus_start: - navestie - je to refencia na bod v programe
dec bl - znizil som citac opakovani(register bl) o jedno
cmp bl,0 - zistujem ci uz nie je citac opakovani na nule
loopnz cyklus_start - ak nie je program sa vrati na nasledovnu instrukciu za navestim cyklus_start
hello DB "Hello",0xD,0xA,'$' - 0xD,0xA - carriage + line feed - odriadkovanie
\_AMD_x2_3800+_@2,6_/\_XFX_9600_GT @,75-1,9-2,2_/\_3G_RAM_Výrobca_=>_miš&maš_/\_Power_by_ASUSTeK_A8N_SLI_Premium_/\_2x80G_Samsung_/\_Casemod_-_hotovo,_uz_sa_mi_viac_nexce_/
A tak som si raz zmenil farbu podpisu na zelenú aby bolo jasné čo mi modrá môže
kane77

Re: Kurz programovania - lekcia 1. Ahoj svet a cyklus

Príspevok od používateľa kane77 »

Zaujimavy napad, ale vyzera ze iba prve dva diely boli, co je skoda.. Ale pridam sa aj ja:

Ruby
Ruby je velmi pekny skriptovaci jazyk z Japonska, v podstate na vseobecne pouzitie, hlavne na nejake skripty, alebo jednoduchsie programy, alebo tiez na web (framework Ruby on Rails). Je to velmi "strucny", uplne OOP (nema primitivne typy) jazyk s prvkami funkcionalneho programovania

1. Ahoj svet
Velmi kratke, proste:

Kód: Vybrať všetko

puts "Hello World!"
2. Cykly (jednoduche)
V ruby existuje dost vela typov cyklov (for, while, until, ale aj cisla maju metody cyklov)
cize priklad kde sa 10 krat vypise "Hello World" by sa dal napisat napriklad takto:

Kód: Vybrať všetko

for i in 1..10 do |i|
  puts "Hello World"
end
(programatorsky spravnejsie by bolo 0..9, ale... :)
alebo

Kód: Vybrať všetko

10.times do |i|
  puts "Hello World!"
end
alebo

Kód: Vybrať všetko

1.upto 10 do |i|
  puts "Hello World!"
end
alebo

Kód: Vybrať všetko

10.downto 1 do |i|
  puts "Hello World!"
end
to |i| je nepovinne a predstavuje iterator (vysvetlim v neskorsich castiach kurzu, ak este budu), ale v podstate to predstavuje premennu i z povodneho pascalovskeho programu (teda v kazdom cykle obsahuje poradove cislo cyklu)

Spustenie
1. Interpreter pre Ruby sa da stiahnut z http://ruby-lang.org" onclick="window.open(this.href);return false;
2. program sa vlozi do suboru s priponou .rb a spusti sa z prikazoveho riadku takto:

Kód: Vybrať všetko

ruby mojsubor.rb
3. existuje aj interaktivny interpreter, spusti sa pomocou prikazu irb
badyto
Používateľ
Používateľ
Príspevky: 316
Dátum registrácie: St 19. Mar, 2025, 23:56

Re: Kurz programovania - lekcia 1. Ahoj svet a cyklus

Príspevok od používateľa badyto »

Rozmyslal som ze by som prispel v PHP jazyku, ale to je skriptovaci jazyk... Tak neviem ci sa to sem hodi :-)
Používateľov profilový obrázok
Bird
Používateľ
Používateľ
Príspevky: 2100
Dátum registrácie: So 15. Aug, 2009, 22:39
Bydlisko: TO okres

Re: Kurz programovania - lekcia 1. Ahoj svet a cyklus

Príspevok od používateľa Bird »

nemohol by sem niekto hodit python ? ja sa moc nerozumiem programovaniu ale chcel by som daco zacat. ibaze c a spol. su dost narocne. trochu som pogooglil a nasiel som toto

tradičný príkaz "hello, world", ktorý vo verzii C++ (#) vyzera takto:
#include <iostream.h>

Kód: Vybrať všetko

void main()
{
   cout << "Hello, world." << endl;
}
ve verzi Pythonu je to toto :

Kód: Vybrať všetko

print "Hello, World!"
myslim ze pre zaciatocnikov je to najlepsie. mohol by to sem dakto hodit pls ? :)
MacBook Pro 13 (2016) + iPhone 13 mini
PS5 Slim
PC: in progress
nitro14
Nový používateľ
Nový používateľ
Príspevky: 12
Dátum registrácie: Po 27. Júl, 2009, 17:48

Re: Kurz programovania - lekcia 1. Ahoj svet a cyklus

Príspevok od používateľa nitro14 »

w3r1k napísal: ve verzi Pythonu je to toto :

Kód: Vybrať všetko

print "Hello, World!"
myslim ze pre zaciatocnikov je to najlepsie. mohol by to sem dakto hodit pls ? :)
hmm zaujímave... veľmy my to pripomína BASIC
AMD Athlon X2 3600+, 3GB RAM DDR2 Kingston 800Mhz, Seagate Barracuda 500GB 32MBcache, ATi Radeon X1250 512MB
"Have you tried to turn it off and on again ?"
esso82
Nový používateľ
Nový používateľ
Príspevky: 42
Dátum registrácie: Ne 27. Sep, 2009, 12:54

Re: Kurz programovania - lekcia 1. Ahoj svet a cyklus

Príspevok od používateľa esso82 »

no uz mi to nedalo ... a napisem teda ten prikaz pre PHP, kde samozrejme musi byt subor .php parsovany nejakym parserom, preto to vyzera tak jednoducho:

Kód: Vybrať všetko

echo "Hello World";
a tak ma rovno napada .... co keby sme spravili stranku, kde budu tieto lekcie priklad po priklade aj s diskusiou a pomocou od tych, co to ovladaju? Urcite by to pomohlo zacinajucim programatorom, ja osobne tiez nie som profik, uvital by som minimalne lekcie v Ajaxe.

keby niekto, tak zalozte novy thread, tam sa dohodneme :D
Laptop: Dell Inspiron 15R 5537, SolydK 64-bit
Fón: SONY Xperia Z1 Compact Lime
Tablet: Lenovo Yoga 10HD
badyto
Používateľ
Používateľ
Príspevky: 316
Dátum registrácie: St 19. Mar, 2025, 23:56

Re: Kurz programovania - lekcia 1. Ahoj svet a cyklus

Príspevok od používateľa badyto »

Uf, noo pokusim sa neako skomolit ten Hello world priklad za pomoci AJAX , dufam ze to niekomu pomoze, bolo mi povedane ze neviem vysvetlovat ale tak lepsie ako nic :-)

Vzdy vzdy vzdy pouzijem na kazdej stranke kde robim s ajaxom tuto prvu univerzalnu funkciu ktora vytvori tzv "XMLHttpRequest":

Kód: Vybrať všetko

function vytvorAjax(){
var xmlHttp;
try{
  xmlHttp=new XMLHttpRequest(); // vytvori pre Firefox, Opera 8.0+, Safari
  return xmlHttp;
}catch (e){
  	try{                                      // Internet Explorer
    	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		return xmlHttp;
    }catch (e){
    	try{
      		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			return xmlHttp;
      	}catch (e){
      		alert("Vas staroveky prehliadac nepodporuje AJAX!");
      		return false;
      	}
    }
}

}
cize jednoducha funkcia ktora proste len vytvori request pod vsetkymi prehliadacmi.

Dalej tu mame funkciu ktora nacita z neakeho suboru(v nasom pripade muhehe.php), za pomoci toho requestu z prvej funkcie, neaky text a ten nam zobrazi na nasej stranke.

Kód: Vybrať všetko

function goBaby(){
	ooo = vytvorAjax();     // do premennej ooo sa ulozi request ktory vytvori funkcia vytvorAjax()
	ooo.onreadystatechange=function(){   // ked sa zmeni stav requestu tak rob toto ->
		if(ooo.readyState==4){    // ked ten stav requestu vrati 4 cize je pripraveny tak rob toto:
			document.getElementById("blabla").innerHTML = ooo.responseTex; // najdi element s IDckom "blabla" a do jeho telanapis to co sme nacitali zo suboru vid dolu nizsie
		}
	}
	ooo.open("POST","muhehe.php",true);  // otvor subor muhehe.php
	ooo.send(null);
}
ovsem na nasej stranke musime mat umiestneny neaky ten element s IDckom "blabla" napriklad:

Kód: Vybrať všetko

<div id="blabla"></div>
V tom nasom muhehe.php subore ovsem musi byt nieco ako toto:

Kód: Vybrať všetko

<?php 
echo "hello world!";
?>
Toto je uplny zaklad a zaroven vsetko co treba vediet o AJAXe na takej urovni aby sme ho vedeli pouzivat si myslim :D
Tipy:
1.) v prikaze

Kód: Vybrať všetko

ooo.open("POST","muhehe.php",true);
nemusite pouzit len "muhehe.php" ale mozte pouzit aj napriklad "muhehe.php?co=citaj&id=123&limit=20" atd atd a v php sa uz s tymi premennymi vyjasite cez $_GET premennu ;-)

2.) nechcel som komplikovat tu druhu funkciu ale ja tam este pouzivam v tej if podmienke toto:

Kód: Vybrať všetko

		if(ooo.readyState==4){    
			document.getElementById("blabla").innerHTML = ooo.responseTex; 
	document.body.style.cursor = "default";
		}else{
			document.body.style.cursor = "wait";
		}
To len zaruci WAIT kurzor a DEFAULT kurzor ked je hotovo

Návrat na "Programovanie"