Privacy Policy Cookie Policy Terms and Conditions BASIC (programski jezik) - Wikipedia

BASIC (programski jezik)

Sa Wikipedije, slobodne enciklopedije

  
Predloženo je da se ovaj članak spoji s člankom QBasic.



Basic je programski jezik. Služi za pravljenje jedostavnih programa i simulacija. Kao i većina drugih programskih jezika, za programiranje koristi naredbe i varijable koje zajedno čine programski kod kojim se piše program.

Za izvršenje zadatih naredbi, tj. za pokretanje napisanog programa, u Qbasic-u je potrebno pritisnuti dugme F5 na tastaturi.

Stvoren je 1965. i zamišljen kao prvi korak u učenju programiranja, 1990. evoluirao je u Visual Basic, a danas je već aktuelna verzija Visual Basic.NET. Napravljen od strane Microsoft kompanije.

Qbasic
Uvećaj
Qbasic

Sadržaj

[izmijeni] Uvod

[izmijeni] Pojam varijable

Najjednostavnije objašnjenje varijabli jeste to da su varijable ustvari promjenljive vrijednosti. Varijable nam služe kako bi olakšali kodiranje programa. Svaka varijabla ima svoje ime i svoju vrijednost. Pa tako, svaki put kada želimo u programu upotrijebiti riječ kahva, ne moramo je svaki put pisati u kodu programa nego joj je moguće dodijeliti ime, i svaki put upotrijebiti to ime umjesto riječi kahva, ali će se ipak svaki put u programu ispisati riječ kahva. Postoje dvije vrste varijabli:

  • Numeričke(brojevne) i
  • Znakovne varijable


Numerička varijabla ima brojevnu vrijednost tj. može sadržati samo ove znakove:

0,1,2,3,4,5,6,7,8,9 i tačku(.) umjesto zareza.

Ukoliko korisnik programa ili sam programer pokuša dodijeliti numeričkoj varijabli vrijednost koja sadrži neki drugi znak(simbol), osim gore navedenih 11 simbola, programski jezik (qbasic) će javiti grešku.

Kao ime za numeričku vrijednost se mogu koristiti svih 128 znakova ASCII koda, s tim da to ime mora počinjati sa slovom engleskog alfabeta i ta oznaka ne smije sadržati prazna (blanko) mjesta u sebi.


Znakovna varijabla ima vrijednost koja može sadržati 128 znakova ASCII koda (to uključuje i brojeve). Ime znakovne varijable je isto kao i numeričke, samo što na kraju varijable obavezno moramo staviti string ($-dolar).


[izmijeni] Primjer 1

Ime varijable Vrijednost varijable
a 23
somun 1.50
ćevapi-5.luk 2.544345864
a$ kahva
somun$ 5 cevapa u cijeli sa puno luka
ćevapi-5.luk$ Kraj narudžbe

Svaki put kada želimo da u programu ispišemo 1.50, u kodu ćemo napisati somun ili kada želimo da napišemo riječ kahva u programu, u kodu ćemo napisati samo a$. Kao što vidimo varijable nam potencijalno mogu skratiti postupak pisanja koda programa, a i cijeli sistem rada u programskom jeziku qbasic je zasnovan na varijablama i naredbama pomoću kojih upravljamo vrijednostima varijabli.


[izmijeni] Dodjeljivanje vrijednosti varijabli

Dodjeljivanje vrijednosti varijabli se vrši pomoću relacionog operatora jednako(=). Tako npr. kada želimo dodijeliti vrijednost 10000 varijabli cilj to čemo učiniti na slijedeći način u kodu:

cilj=10000

Na ovaj način smo varijabli cilj dodijelili vrijednost 10000.

Kod dodjeljivanja vrijednosti znakovnoj varijabli obavezno moramo vrijednost varijable staviti pod navodnike. Tako npr. kada želimo da varijabli a$ dodijelimo vrijednost 10000 članaka u kodu ćemo napisati sljedeće:

a$="10000 članaka"

Postoji slučaj gdje želimo nekoj novoj varijabli dodijeliti vrijednost neke već postojeće varijable. To se vrši po istom principu:

cilj=10000

težnja=cilj

Sada varijabla težnja ima vrijednost varijable cilj tj. vrijednost varijable težnja je 10000.

U sva tri slučaja ime varijable se stavlja sa lijeve strane znaka jednakosti (=), a vrijednost te varijable sa desne. Ukoliko programer pokuša uraditi drugačije, basic će javiti grešku.

Relacioni operatori su oni operatori uz pomoć kojih uspostavljamo odnos(relaciju) između dvije varijable. Oni se često koriste u uslovima, dok se operator (=) koristi i u dodjeljivanju vrijednosti varijabli. Relacioni operatori su:

Operator Značenje
= jednako
> veće od
< manje od
>= jednako ili veće od
<= jednako ili manje od
<> različito

Pored ovih relacionih postoje još i tzv. logički operatori. To su operatori koji se koriste u uslovima i ciklusima. Tri su, i oni će kasnije biti posebno obrađeni. To su:

  • NOT - ne
  • AND - i
  • OR - ili


[izmijeni] Računanje sa numeričkim varijablama

U programskom jeziku Basic se može vršiti računanje sa određenim brojevima, ali isto tako i sa varijablama. Rezultat računanja varijabli i(li) brojeva uvijek mora biti neka nova varijabla čija će vrijednost biti jednaka rezultatu tog računanja. Računanje se vrši pomoću znakova za računske operacije. Osnovni znakovi su:

  • plus (+)
  • minus (-)
  • puta (*)
  • podijeljeno (/)
  • stepenovanje (^)

Znak ^ ćemo dobiti kada u Basicu čuvajući tipku Alt otipkamo kombinaciju brojeva 094. (ASCII vrijednost znaka ^ je 094). Broj ili varijabla koja se nalazi od ovog znaka je broj koji se stepenuje, a broj ili varijabla koja se nalazi na desnoj strani znaka jednako predstavlja eksponent.

Ne postoji simbol u Basicu za korjenovanje nego postoji funkcija kojom se izračunava korjen nekog broja.

Računanje se vrši na slijedeći način:

nova.varijabla= varijabla(broj) znak varijabla(broj) znak varijabla(broj) znak varijabla(broj) ...

U ovom slučaju je nova.varijabla rezultat računanja i taj rezultat je smješten u varijablu nova.varijabla. Varijabla(broj) je broj sa kojim se računa, a znak je matematički znak (+,-,*,/ ili ^) koji simbolizira računsku operaciju. Vidimo da rezultujuća varijabla mora biti na lijevoj strani znaka jednako (=).

Takođe se mogu koristiti i zagrade i to samo male zagrade - (). U jednoj zagradi može biti više drugih zagrada. Program će računati prvo onu vrijednost koja se nalazi u najmanjoj zagradi.


[izmijeni] Primjer 2

Ovdje ćemo navesti nekoliko primjera računanja vrijednosti u Basic-u.

  1. zbir=3+4
  2. rezultat=3*3-2
  3. dobićemo=((3-2)*(100^3))/8
  4. Sarajevo=400000

Mostar=106000

neki.bh.gradovi=Sarajevo+Mostar

bez.ilidže=neki.bh.gradovi-50000


Vidimo da svaka varijabla mora bti definisana tj. mora imati svoju vrijednost (u protivnom će vrijednost te varijable biti 0).


[izmijeni] Pojam naredbe

Naredbe u programskom jeziku Basic su riječi pomoću kojih programer upravlja varijablama. Svaka od njih ima svoje posebne parametre koje programer mora odrediti kako bi određena naredba funkcionisala. Postoji više vrsta naredbi:

  • Ulazne naredbe
  • Izlazne naredbe
  • Uslovi i ciklusi
  • Petlje
  • Ugrađene funkcije
  • Naredbe za obradu varijabli
  • Naredbe za rad sa grafikom i zvukom
  • Naredbe za rad sa datotekama i podacima

i dr.

U jednom redu koda se može upotrijebiti samo jedna naredba. Ako želimo u jedan red koda napisati više naredbi onda ih moramo odvojiti dvotačkom (:).


[izmijeni] Pojam algoritma i dijagrama toka

Algoritam je niz određenih i uređenih koraka koji tačno i precizno vode do nekog rješenja ako ono postoji, govori nam da rješenje ne postoji, ne može se dobiti sa preciznom tačnošću ili u odrđenom vremenu. Znači, algoritam predstavlja niz stvari koje računar uradi kako bi ispunio zahtjeve koje je programer zadao u programskom kodu. Kada se algoritam preobrati u vidu naredbi, dobijemo programski kod.

Dijagram toka je grafički prikaz algoritma, odnosno postupka za rješavanje određenog postupka.

[izmijeni] Osnovne naredbe u programskom jeziku Basic

  • PRINT je izlazna naredna koja služi za ispisivanje teksta (znakova i brojeva) u programu. Sintaksa ove naredbe je PRINT varijabla. Znači, da bi napisali ovu naredbu potrebno je napisati riječ PRINT, zatim naziv varijable, neki tekst ili broj. Ako želimo da namse ispiše neka već definisana varijabla, poslije riječi PRINT pišemo ime te varijable. Ako želimo ispisati u programu neki tekst, to ćemo učiniti tako što ćemo napisati riječ PRINT, pa pod navodnicima (" ") ispisati željeni tekst. Ako želimo ispisati neki broj, dovoljno je poslije riječi PRINT napisati taj broj. Ako želimo ispisati više od jedne varijable (teksta ili broja) u programu to ćemo učiniti tako što ćemo staviti zarez (,) ili tačku-zarez (;) poslije prve varijable (teksta ili broja), te taj postupak ponoviti nakon svake sljedeće. Da li će biti zarez ili tačka-zarez zavisi od veličine razmaka između te dvije varijable (teksta ili broja). Za manji razmak ćemo staviti tačku-zarez (;), a za veći zarez (,).
  • INPUT naredba će od korisnika programa tražiti unos neke varijable. Njena sintaksa je INPUT varijabla. Isto tako je moguće staviti poslije riječi INPUT navodnike (" "), te pod navodnicima napisati tekst koji će se korisniku ispisati uz upit da se unese tražena varijabla.
  • REM naredba služi za davanje komentara pri pisanju programskog koda. Taj komentar će biti vidljiv samo u programskom kodu, dok ga korisnik neće moći vidjeti. Sintaksa ove naredbe je REM tekst. Dati tekst ne mora biti stavljen pod navodnike.
  • CLS je skraćenica od CLear Screen. Obično se stavlja na početak programa i time postižemo da se sav tekst u programu, uključujući i prošle programe izbriše sa ekrana u kojem vidimo izvršenje programa. Tako, svaki novi program počinje od početka ekrana i podaci se ispisuju sve do nove upotrebe CLS, kada se svi podaci ponovo izbrišu.
  • END se obično stavlja na kraj programa, mada nije obavezno. To čak ne spada u pravu vrstu naredbe, iako se stavlja na kraju programa, kako bi potencijalni čitač programa se lakše orijentisao. Također će služiti i kod naredbe bezuslovnog prelaska u novi red.


[izmijeni] Primjer 3

Na lijevoj strani možete vidjeti programski kod, a na desnoj primjer izvršenja programa koji radi po napisanom kodu programa (dobija se pritiskom tipke F5).

Primjer korištenja naredbe PRINT
Uvećaj
Primjer korištenja naredbe PRINT
Program koji sabira dva broja
Uvećaj
Program koji sabira dva broja

[izmijeni] Uslovi

Uslovi u Basicu služe kako bi provjerili vrijednosti varijabli, uporedili ih, te efikasnije upravljali njima poslije ispitanog uslova. Postoje dva načina postavljanja uslova, te su oba upriložena u nastavku.


[izmijeni] Prvi način postavljanja uslova

Uslov mora počinjati sa riječi IF (ako) i poslije te rječice se stavlja uslov koji program treba da ispita. Taj uslov mora sadržati dvije već postojeće varijable te neki od relacionih operatora(=,<,>,<=,>=,<>) koji treba staviti između njih. Znači uslov mora sadržati dvije varijable (vrijednosti), te relaciju između njih koju ispituje taj uslov. Također uslov može sadržati i logičke operatore (AND, OR, NOT).

AND se upotrebljava kada programer želi za više uslova odrediti istu podljedicu tj. kada pod istom posljedicom imamo više uslova, te da bi se ta posljedica ostavrila svi ti uslovi moraju biti tačni. Ako želimo upotrijebiti navedeni operator uradićemo sljedeće: Poslije rječice IF stavimo dvije varijable sa relacionim operatorom između, te onda stavimo operator AND, zatim ponovimo postupak i sve tako dok god želimo. Da bi se desila željena posljedica svi uslovi moraju biti ispunjeni.

OR operator se upotrebljava na isti način kao i operator AND. Služi programeru kada želi staviti uslov sa više upita, gdje bar jedan mora ispuniti svoj zadati uslov kako bi program izvršio zadate posljedice.

NOT operator se koristi kada želimo naglasiti da se ne smije ispuniti ni jedan uslov kako bi se mogle desiti željene posljedice.

Drugi dio uslova sadrži posljedicu tj. šta će program učiniti ako se desi da je uslov ispunjen. Poslije rječice IF i napisanih varijabli, te relacije između njih koje program ispituje, obavezno se mora staviti rječica THEN, te poslijedica koju će program učiniti ako je ispunjen svaki dio uslova (ili dio uslova preciziran logičkim operatorima). Ta posljedica obavezno mora sadržati neku od naredbi tj. šta će program učiniti sa željenom varijablom ako je uslov ispunjen. Ako želimo staviti više posljedica, naredbe ćemo odvajati dvotačkom (:).

Treći dio uslova je neobavezan i ne mora se staviti. Taj treći dio predstavlja naredbu ili niz naredbi koje će program izvršiti ako se ispostavi da opstavljeni uslov nije tačan (da varijable ne odgovaraju postavljenoj relaciji). Iza rječice THEN i niza naredbi koje će se ispuniti u slučaju pozitivnog rezultata uslova, stavljamo rječicu ELSE te također niz naredbi koje će program izvršiti ukoliko se desi da je rezultat postavljenog uslova negativan. Ukoliko se ne stavi ovaj dio u uslov tj. ako programer ne definiše posljedicu negativnog rezultata postavljenog uslova, program će nastaviti čitati programski kod iz sljedećeg reda.

Poslije provjere uslova, te izvršenja zadatih poslijedica, program prelazi u slijedeći red te nastavlja čitati programski kod. Ovaj tip uslova se uvijek piše u jednom redu.


[izmijeni] Drugi način postavljanja uslova

Drugi način postavljanja uslova je sličan prvom, samo što je ovaj pregledniji od prvom načina. Rječice koje se koriste su iste, samo je sintaksa drugačija. Poslije rječice IF i postavljenog uslova, stavlja se rječica THEN i tu je kraj pisanja sintakse u tom redu. U novm redu se piše posljedica ukoliko se ispostavi da je rezultat uslova pozitivan. Kako znamo, te posljedice moraju biti naredbe. Ako ima više naredbi, onda svaku naredbu stavljamo u sljedeći red, sve dok ne nabrojimo sve naredbe koje želimo. Kada ih nabrojimo, u novom reedu pišemo samo ELSE, te nabrojimo naredbe koje će program izvršiti ukoliko se ispostavi da je rezultat uslova negativan. Kako i u prvom tipu uslova ovaj dio nije obavezan. Kada pobrojimo sve naredbe koje će se izvršiti (u oba slučaja ili samo jednom) u sljedeći red stavimo rječicu END IF. Čime dajemo doznanja programu da je uslov završen, te da sve sljedeće naredbe nemaju veze sa uslovom. Jedina prednost korištenja ovakvog uslova je ta što je ovakav uslov pregledniji, te olakšava programeru u snalaženju.


[izmijeni] Naredba jednostukog prelaska

Naredba GOTO je naredba (bez)uslovnog prelaska između redova. Obično se koristi uz uslove i tada je uslovna.

Da bi korištenje ove naredbe bilo moguće u qbasicu, prvo se treba svaki napisani red programskog koda numerisati. To se radi tako što se ispred reda stavi bilo koji prirodni broj (numerisanje ne mora biti po redu), te se naredba (ili varijabla) iz tog reda odmaknu za jedno mjesto od broja.

Naredbu GOTO će programer koristiti kada želi da program, poslije pročitanog reda nekog programa, ne čita slijedeći red, nego uz pomoć naredbe GOTO, programer odluči koji će red slijedeće biti pročitan tj. odakle će program nastaviti čitati programski kod. Zbog toga nam je potrebna numeracija linija (redova) koda. Sintaksa ove naredbe je slijedeća:

GOTO broj koda

Znači poslije riječi GOTO stavljamo broj kojim smo numerisali red, od kojeg želimo da program nastavi čitati programski kod. Naredba GOTO često se upotrebljava kao posljedica (ne)ispunjavanja uslova. Npr. može se staviti da, ukoliko se uslov ispuni program nastavi čitati programski kod sa određene pozicije, a ako se ne ispuni, da se vrati na ponovno dodjeljivanje vrijednosti varijabli (pomoću znaka jednakosti ili naredbe INPUT).


[izmijeni] Naredba višestrukog prelaska

Naredba višestrukog prelaska služi kako bi programer izbjegao korištenje komplikovane sintakse IF THEN uslova. Za ovu naredbu je potrebna brojevna varijabla (ta brojevna varijabla mora biti prirodan broj), te broj linija koda kolika je vrijednost te varijable. Sintaksa ove naredbe je:

ON brojevna.varijabla GOTO lista linija koda

Pod listom linija koda se podrazumijevaju brojevi (međusobno odvojeni zarezom) koji predstavljaju numerisane redove. Brojevna varijabla određuje od koje će linije koda (navedenog kao broj - numeracija pod listom linija koda) program nastaviti da čita programski kod. Ako je naprimjer vrijednost varijable 1, program će nastaviti čitati programski kod od linije čiji je broj prvi naveden u sintaksi naredbe ON GOTO. Ako je vrijednost varijable 2, program će nastaviti čitati programski kod od linije čiji je broj drugi naveden u sintaksi naredbe ON GOTO itd. Ako je vrijednost varijable veća od broja numera (brojevi u listi linija koda), onda će taj broj biti podijeljen sa brojem numera te uzeti ostatak kao broj koji će odrediti koji će slijdeći red biti pročitan. Naprimjer, ako ima 5 numera (brojeva koji predstavljaju linije koda u naredbi ON GOTO), a vrijednost brojevne varijable 6, tada će program čitati programski kod iz linije koja je prva stavljena u listi linija koda, ako je vrijednost brojevne varijable 7, tada će program čitati programski kod iz linije koja je druga stavljena u listi linije koda itd. Upotrebom ove naredbe, programer potencijalno može izbjeći korištenje komplikovane sintakse IF THEN uslova, te tako skratiti programski kod.


[izmijeni] Primjer 4

Na lijevoj strani možete vidjeti programski kod, a na desnoj primjer izvršenja programa koji radi po napisanom kodu programa (dobija se pritiskom tipke F5).

Program koji određuje najmanji od tri unijeta pozitivna broja
Uvećaj
Program koji određuje najmanji od tri unijeta pozitivna broja
Program koji određuje najveći od tri unijeta broja
Uvećaj
Program koji određuje najveći od tri unijeta broja
Program koji određuje ime dana u sedmici na osnovu unijetog broja
Uvećaj
Program koji određuje ime dana u sedmici na osnovu unijetog broja

[izmijeni] FOR petlja

FOR petlja je tip naredbe u koja služi za dodjeljivanje više od jedne vrijednosti jednoj brojevnoj varijabli. Time bitno skračujemo postupak kodiranja određenog programa. Npr. ako želimo napraviti tablicu množenjenja za neki broj do 10, da ne bi pisali 10 puta dodijeljivali vrijednost, te radili sa 10 različitih varijabli koje treba zasebno ispisati, koristimo FOR petlju.


[izmijeni] Sintaksa naredbe

Sintaksu FOR petlje počinjemo tako šta stavimo na početak reda rječicu FOR. Iza te rječice stavljamo naziv varijable kojoj želimo dodijeliti više vrijednosti (ta varijabla mora biti brojčana), te znak jednakosti (=). Iza znaka jednakosti stavljamo prvu vrijednost, zatim rječicu TO i nakraju završnu vrijednost te varijable.

Program će uzeti početnu vrijednost i na nju dodavati (sabirati) broj 1 sve dok dođe do krajnje vrijednosti, tekao vrijednost te varijable uzeti sve te vrijednosti. Npr. ako stavimo da je početna vrijednost 5, a krajnja 10, program će uzeti kao vrijednosti definisane varijable brojeve: 5,6,7,8,9 i 10.

Ako želimo da program ne dodaje na početnu vrijednost 1, nego broj koji mi želimo (npr.3,5), stavićemo poslije krajnje varijable rječicu STEP te broj koji će program dodavati na početnu vrijednost.

Ako želimo dodijeliti više vrijednosti određenoj varijabli, ali ih dodijeliti naopako (počevši od najvećeg ka najmanjem), to ćemo uraditi tako što ćemo na mjesto početne varijable staviti krajnu varijablu, a na mjesto krajnje početnu. Zatim ćemo napisati rječicu STEP i broj -1 ili neki drugi broj (korak) koji želimo, ali obavezno ispred njega staviti znak minus (-). Tako će program od krajnje vrijednosti oduzimati (preskakati) korak sve dok ne dođe do početne vrijednosti.

Drugi dio sintakse je rječica NEXT. Ona obavezno ide poslije prvog dijela sintakse (dijela koji sadrži FOR), te mora biti u novom redu. Poslije rječice NEXT moramo staviti naziv varijable čiju smo vrijednost odredili pomoću ove naredbe.

Između ova dva dijela sintakse (FOR i NEXT) pišemo ono šta želimo, ali moramo paziti da će sve to biti urađeno onoliko puta koliko definisana varijabla pomoću FOR petlje ima vrijednosti. Samo između ova dva dijela sintakse definisana varijabla može imati svoj značaj. Korištenje ove varijable poslije dijela sintakse sa NEXT, daje jednu vrijednost toj varijabli i to onu krajnju. Poslije reda koji sadrži FOR petlju, definisana varijabla ima početnu vrijednost, te program radi sa njom kao da ona ima samo jednu vrijednost, sve dok ne dođe do dijela sintakse koji sadži NEXT. Taj dio govori programu da se vrati na dio sa FOR, preskoći korak (doda ga na početnu vrijednost), te ponovo sve radi kao da je to jedina vrijednost te varijable. Nailaskom na dio sa NEXT, program se vraća na dio sa FOR i sve tako dok se ne obrade sve vrijednosti varijable definisane FOR petljom. Tek tada program nastavlja čitati kod napisan ispod NEXT dijela.

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu