Uvod u programiranje: C++, Pascal

poruka: 21
|
čitano: 17.786
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
Uvod u programiranje

 Jeste li ikada poželjeli sami napraviti svoj vlastiti program. Sigurno jeste. Dok ste koristili neki program sigurno ste pomislili kako je ovo napravljeno. Svaki program napisan je u nekom programskom jeziku, bez obzira koliko bio složen. Manji programi pokut kalkulatora su jednostavniji i njih može napisati jedna osoba, dok je za veće programe poput operacijskih sustava potrebno više stotina ljudi.

    Ovdje ću pokušati pomoću laganih opisa koji uključuju slike objasniti uvod u programiranje koristeći nekoliko programskih jezika kao što su Pascal i C++.   
    Kako naučiti programirati? Učenje programiranja nije lagan posao. Nikada ne može naučiti sve o programiranju, dok ste živi učit ćete nove stvari vezane uz programske jezike. Nakon dvije do tre godine mukostpnog rada i učenje biti ćete u stanju napisati program koji će pronaći krajnjeg korisnika koji će ga cijeniti i koji je spreman platiti vam za vaš trud. Nakon što ste u stanu napisati tkav program, vaše učenje sastoji se od nadograđivanja i usavršavanja vašeg dotadašnjeg znanja.
    Nakon što pročitate i uvojite nekoliko tutorijala i pojašnjenja ne znači da znate programirati. Za naučiti programirati potrebne su godine i godine rada i truda. Čak i najbolji programeri svakodnevno uče nove stravi koje možda prije nisu znali. To je proces koji traje stoga se nemojte brinuti ako odmah ne naučite ili usvojite nešto, bitno je da ste ustrajna i da imate volju naučiti.
  Preporučavam vam da sve ono što programirate imenujete tako da ima veze s onom o čemu se u programu radi, da biste se vi ili netko drugi lakše snašli. Cilj svakog programa je jednostavna upotreba za korisnika, tako da nema smisla imenovati varijable tako da se korisnik zbuni i ne zna kako se programom služiti.

Počeo sam pisati tutorijale za početnike za nekoliko programskih jezika, za sada je to još u uvodnoj fazi ali imam volje i potrudit ću se to napraviti što bolje mogu.

 

Tutorijali se nalaze ovdje.

 

Ako imate kakvih primjerbi, nešto vam nije jasno ili imate prijedlog  slobodno mi javite pa da to popravim ili promijenim.

 

Za sada tutorijali sadrže sljedeće teme:

 

C++:

C++ tipovi varijabli i naredbe

Dvodimenzionalni nizovi

For naredba

If naredba

Jednodimenzionalni nizovi

Jednostavni programi

Klase i objekti

Naš prvi program

Otkrivanje pogrešaka

Rad s datotekama

Stringovi

Switch naredba

While naredba

 

Pascal:

For naredba

If naredba

Tipovi varijabli i naredbe

Uvod

https://sites.google.com/site/alloboutpc/
Poruka je uređivana zadnji put sri 25.8.2010 14:32 (pfliper).
 
8 0 hvala 8
16 godina
offline
Uvod u programiranje

stranica ne postoji

McLaren Mercedes
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Uvod u programiranje

kad kliknem na link pise mi da stranica ne postoji

EDIT:sad je ok

Poruka je uređivana zadnji put sri 18.8.2010 22:57 (xnight_hunterx).
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
RE: Uvod u programiranje

Probaj ponovno promijenio sam link.

greškom sam stavio pogrešan.

https://sites.google.com/site/alloboutpc/
15 godina
neaktivan
offline
Uvod u programiranje
jako dobro, pomoglo mi je iako već znam osnove c++
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
RE: Uvod u programiranje

Petica za trud iako bi se ovdje moglo puno toga reći ali ima vremena za polemike među programerima,inače za početnike ali početnike početaka je ok.hmmmm

Private
16 godina
neaktivan
offline
RE: Uvod u programiranje

Planirao sam na jednostavnim primjerima objasniti svaku funkciju, poslije toga sam mislio objasniti programe koji koriste kombainacije raznih funkcija, a na kraju pojasniti pokoji algoritam i riješiti pokoji zadatak sa natjecanja, nadam se da ću imati vremena i (volje imam) da to napravim...

 

PS. planiram ubaciti još pokoji komentar koji će dodatno pojasnti čak i onima koji ovakva objašnjenja ne razumiju.

https://sites.google.com/site/alloboutpc/
Poruka je uređivana zadnji put čet 19.8.2010 18:43 (pfliper).
16 godina
neaktivan
offline
RE: Uvod u programiranje

Da si pročitao do kraja shvatio bi da je svrha te podstranice upravo da upozori na takve prijevare na net-u a ne da mi pošaljete lozinke, taj blog sam pronašao preko google-a (a znamo da ih ima mnogo).

 

 

Odlomak sa podstranice:

 

Ovaj blog obečava milijune ako pošajete mail na facebookpokerchip1000@net.hr. Ako bolje pogledate shvatit će te da se navedena adresa nalati na Net.hr portalu koji nema nikakve veze sa facebook serveima. I ovdje vas traži vaše korisničko ime i lozinku, što nikad nemojte odavati.

    Facebook serveri imaju odlične mjere sigurnosti i nikako ih ne možete zaobići pomoću maila. Još jedna otežavajuča okolnost za varanje je i taj što texas holdem poker na facebook-u uređuje Zynga. Stoga zaboravite na to da će vam netko dati milijune čipova, jedini način da ih zaradite je da igrate, uživate u igri i čipovi će sami doći.

https://sites.google.com/site/alloboutpc/
Poruka je uređivana zadnji put čet 19.8.2010 20:21 (pfliper).
 
0 0 hvala 0
16 godina
neaktivan
offline
RE: Uvod u programiranje

Objasnio sam i rad sa datotekama i stringove. Pa kog zanima neka baci oko...

https://sites.google.com/site/alloboutpc/
16 godina
neaktivan
offline
RE: Uvod u programiranje

Gotov je i uvod u klase i objekte.

Nadam se da ću ovaj tjedan uspjeti objasniti klase malo naprednije i pobliže te pojasniti koji zadatak sa natjecanja i pokoji algoritam...

https://sites.google.com/site/alloboutpc/
16 godina
neaktivan
offline
RE: Uvod u programiranje

Budući da se u našim srednjim školama prvo uči pascal pa tek onda c++ i ostali programski jezici, odlučio sam napraviti pkoji tutorija i za Pascal.

 

https://sites.google.com/site/alloboutpc/
17 godina
moderator
online
RE: Uvod u programiranje
pfliper kaže...

Budući da se u našim srednjim školama prvo uči pascal pa tek onda c++ i ostali programski jezici, odlučio sam napraviti pkoji tutorija i za Pascal.

Super! Vjerujem da ce koristiti nekim ucenicima.

 

Samo molim te ispravi neke stvari - recimo Pascal tipovi varijabli i naredbe - tu imas vise gresaka. Raspon za char je od "nultog" znaka do 255-tog znaka (dakle, znakovi u prosirenoj ASCII tablici) - znaci, rijec je o znakovima, a ne brojevima, kao u C++-u, gdje se char moze promatrati kao znak, ali i kao broj (signed char ima spominjan raspon od -128 do 127). U Pascalu za to moras raditi konverziju (funkcije Ord i Chr). Uporabom operatora + znakovi (charovi) se spajaju u string, a ne da se oni zbroje. Delphi i Free Pascal za tu namjenu imaju tipove ShortInt (-128..127) i Byte (0.255).

 

String je niz charova - u biti jednodimenzionalno polje charova, kod kojeg nulti clan oznacava broj znakova u stringu. "Logicki operatori" (zapravo bi trebalo pisati "Logicki tip") u Pascalu nije bool nego boolean i ima raspon true ili false. Ispitivanje jednakosti - operator == postoji u C++-u, dok se za tu namjenu u Pascalu koristi operator =.

 

Takodjer, operator za dijeljenje kad ti je rezultat integer nije / nego div.

Trebalo bi dopisati i operator za negaciju: not.

 

 

Poruka je uređivana zadnji put sri 25.8.2010 18:18 (mbaksa).
16 godina
neaktivan
offline
RE: Uvod u programiranje

Mbasksa hvala ti puno na ovim primjerbama, ispravio sam i sada se nadam da je sve u redu. Sramim se

 

Ako je rezultat djeljenja real varijabla operator za djeljenje može biti /.

Što se tiće charova i stringova tako je pisalo u udžbeniu po kojem smo mi učili( al j****a takvo je naše obrazovanje, puno pogrešaka i propusta...., umjesto da se ulaže u informatiku i znanosti oni odgajaju mlade programere na krivim informacijama...) 

 

 

Samo na način da mi netko prijavi greške koje su mi se potkrale tutorijali mogu biti korisni i njima se svatko može služiti. 

https://sites.google.com/site/alloboutpc/
17 godina
moderator
online
RE: Uvod u programiranje
pfliper kaže...

Mbasksa hvala ti puno na ovim primjerbama, ispravio sam i sada se nadam da je sve u redu. Sramim se

 

Ako je rezultat djeljenja real varijabla operator za djeljenje može biti /.

Tako je. Cak bi se zapravo moglo reci za vecinu slucajeva: ne samo da moze, nego mora. Jer ako koristis operator div, dobit ces cijeli broj (dakle bez decimala) cak i ako ti je varijabla u koju ces spremiti rezultat operacije tipa real.

 

pfliper kaže...

Što se tiće charova i stringova tako je pisalo u udžbeniu po kojem smo mi učili( al j****a takvo je naše obrazovanje, puno pogrešaka i propusta...., umjesto da se ulaže u informatiku i znanosti oni odgajaju mlade programere na krivim informacijama...)

Zaista mi je cudno da tako nesto pise u udzbeniku - to mi vise lici kao da su uzeli teoriju od C++-a i onda pokusavali preoblikovati za Pascal, ali su pola toga propustili. Mislim da bi bilo bolje da za izvor uzmes neki web-site na engleskom jeziku.

 

16 godina
neaktivan
offline
RE: Uvod u programiranje

Što se tiče primjera kodova tu sam sam svoj majstor, tj. objavljujem kodove programa koje sam sam isprobao i objašnjavam ih na način na koji sam ih ja razumio i naučio. Što se tiče teoretskog djela tu sam slab( uvijek bolji u praksi nego teoriji...) i o tome mram potražiti pomoć...

 

Ali poučen ovim primjerom svoje ću izvore dva puta provjeriti i tek ih onda objaviti... 

https://sites.google.com/site/alloboutpc/
17 godina
moderator
online
RE: Uvod u programiranje
pfliper kaže...

Što se tiče primjera kodova tu sam sam svoj majstor, tj. objavljujem kodove programa koje sam sam isprobao i objašnjavam ih na način na koji sam ih ja razumio i naučio.

Nisam kod detaljno gledao, cini se OK - ali ne i ovaj primjer. Prvo glede formatiranja koda - savjetovao bih ti da malo drugacije uvlacis retke. Naime, dok je kod C++-a cesta praksa pisati { za pocetak bloka naredbi na kraju reda, u Pascalu begin u pravilu ide u novi red, a i cesto se ono unutar begin..end uvlaci za dva razmaka - sve to radi preglednosti. Znaci, imas kod:

 

program Koliko_je_vecih;
var a,b:integer;
begin
    writeln('Unesi prvi broj');
    readln(a);
    writeln('Unesi drugi broj');
    readln(b);
    if ((a>5)or(b>5)) then begin      Prvo provjeravamo da li je barem jedan
    writeln('Veći je',b');            broj veći od 5.
    if ((a>5)and(b>5)) then begin     Provjeravamo da li su oba broja veća od 5.
    writeln('Veći je',a);
    end;
    end                          Ako nakon end ide else nakon end ne ide .(točka)
    else begin
    writeln('Nijedan nije veći');
    end;
    readln;
end.

 

Iz tog koda uopce ne kuzis koji blokovi naredbi su vanjski, koji unutarnji. Znaci, oblikovano bi trebalo biti nekako ovako (ja inace i begin i end uvlacim za dva mjesta, ali mislim da to drugi ne cine ili bar ne mnogi od njih):

program Koliko_je_vecih;
var
  a, b: integer;
begin
  writeln('Unesi prvi broj');
  readln(a);
  writeln('Unesi drugi broj');
  readln(b);
 
  if (a>5) or (b>5) then
  begin    
    writeln('Veći je',b');          
    if (a>5) and (b>5) then
    begin
      writeln('Veći je', a);
    end;
  end
  else
  begin
    writeln('Nijedan nije veći');
  end;
 
  readln;
end.

Sad se jasno vidi da je onaj drugi if unutar prvog. Uoci jos jednu stvar - ako u pascalu imas samo jednu naredbu u if-then, ili unutar repeat itd., ne trebas ih zatvarati u blok begin..end. Znaci, gornji primjer se moze preglednije napisati kao:
program Koliko_je_vecih;
var
  a, b: integer;
begin
  writeln('Unesi prvi broj');
  readln(a);
  writeln('Unesi drugi broj');
  readln(b);
 
  if (a>5) or (b>5) then
  begin    
    writeln('Veći je', b');
    if (a>5) and (b>5) then
      writeln('Veći je', a);  
  end
  else
    writeln('Nijedan nije veći');
  
  readln;
end.


Jos jednu stvar bih ti preporucio: writeln, readln i sl. je bolje pisati kao WriteLn, ReadLn itd. Uobicajena konvencija kod Pascala je da u nazivima identifikatorima (znaci, nazivima varijabli, funkcija, klasa/objektnih tipova) svaku rijec zapocinjes velikim slovom. Kako je writeln kratica za "write line", to bi bilo idealno (i preglednije) pisati kao WriteLn.
Takodjer, za razliku od C++-a, uvjet za if ne moras zatvarati u zagradu - znaci, umjesto if ((a>5)or(b>5)) then bolje je pisati if (a>5) or (b>5) then - preglednije je. A jos jedna konvencija uobicajena i kod programskih jezika i kod opcenito pisanja teksta u knjigama/novinama je - iza interpunkcijskih znakova, a ispred slova, ide razmak. Znaci, writeln('Veći je',a); je bolje napisati kao WriteLn('Veći je', a);

Naravno, nitko te ne sili da se drzis tih konvencija, ali kod ce ti biti pregledniji, citkiji. A ona vezana uz uvlacenje redaka naredbi koje su na hijerarhijski nizoj razini je prakticki obavezna - bez toga imas rasulo u kodu.



Sad, sto se tice koda... Program nisam izvrsio, ali ovako naocigled ima gresku. Ako upises brojeve 6 za a i 1 za b, program ce ti ispisati da je broj 1 (iliti b) veci od 5! Ispravan kod je:


  if (a>5) or (b>5) then
    begin   
      if (a>5) then WriteLn('Veći je ', a);
      if (b>5) then WriteLn('Veći je ', b);
    end
  else
    writeln('Nijedan nije veći');


Poruka je uređivana zadnji put čet 26.8.2010 1:49 (mbaksa).
16 godina
neaktivan
offline
RE: Uvod u programiranje

Sad me je malo sramota, toliko pogrešaka a nadam se da će nekome pomoći...Sramim se Ali nedam se ponovno ću pogleadti što sam napisao i ispraviti ću sve pogreške prije no što počnem pisati nove tutorijale. 

 

Smatram da je lakše objasniti početnicima na širi način nego da odmah pišem skračene oblike... I sam sam se gubio kad bi mi netko napisao skračeni oblik, jer ne bih znao što radi, odnsno na koji način se program izvršava...

 

https://sites.google.com/site/alloboutpc/
17 godina
moderator
online
RE: Uvod u programiranje
pfliper kaže...

Sad me je malo sramota, toliko pogrešaka a nadam se da će nekome pomoći...Sramim se Ali nedam se ponovno ću pogleadti što sam napisao i ispraviti ću sve pogreške prije no što počnem pisati nove tutorijale.

Ma nemoj to smatrati kao "toliko pogresaka" - jedine pogreske koje si ucinio su "logicka" (algoritamska) zbog cega ti program ne radi dobro i to sto nisi uvlacio redove (sto je mozda jedan od uzroka sto si napravio algoritamsku pogresku, jer nisi vidio sto se kad/u kojem slucaju izvrsava). Sve ostalo nisu pogreske, ali su korisne stvari za znati i za primjenjivati, jer se to tako inace radi. Namigiva Pogledaj npr. izvorni kod primjera koji su dosli s Free Pascalom.

 

pfliper kaže...
Smatram da je lakše objasniti početnicima na širi način nego da odmah pišem skračene oblike... I sam sam se gubio kad bi mi netko napisao skračeni oblik, jer ne bih znao što radi, odnsno na koji način se program izvršava...

Ovo bas i nisam shvatio. U svom kodu nisam pisao nikakve skracene oblike - ako mislis na zagrade kod if uvjeta, to nije skraceni oblik, nego si ti stavio zagrade koje su suvisne, kojima u prvom redu tu ni nije mjesto. Ako mislis to sto sam uklonio begin..end blokove unutar kojih je samo jedna naredba i to je tesko smatrati kracenjem. Naime, grananje if je oblika if <condition> then <command> else <command>. Sad je samo stvar u tome da ti jednu naredbu (<command>) mozes (ali ne moras) zamijeniti blokom naredbi (begin <command> <command> <command> ... end;)

 

Ne znam zasto si se gubio - mozda bas zbog toga sto si mislio da su naredbe oblika if <condition> then begin <command>...<command> end else begin <command>...<command> end. A to nije tako. Ako pogledas, to je zapravo - kompliciranje.  A ne da je oblik bez blokova kracenje. Namigiva

 

 

 

E, da - tamo na stranicu s tipovima varijabli i naredbama medju operatore trebao bi dodati i operator pridruzivanja, odnosno := (dakle, varijabla := vrijednost; )

 

 

Poruka je uređivana zadnji put čet 26.8.2010 13:07 (mbaksa).
16 godina
neaktivan
offline
RE: Uvod u programiranje

Ma zbunilo me to što ako imamo dvije ili više naredbi unutar jedne if ili for naredbe one moraju biti unutar begin end;

Jer smo radili if granjanja samo sa ispisivanjem pa onda ne treba begin end.

 

recimo:

 if (....) then begin

c:=a+b;

a:=a+2;

WriteLn('blalval');

end;

 

 

https://sites.google.com/site/alloboutpc/
17 godina
moderator
online
RE: Uvod u programiranje
pfliper kaže...

Ma zbunilo me to što ako imamo dvije ili više naredbi unutar jedne if ili for naredbe one moraju biti unutar begin end;

Jer smo radili if granjanja samo sa ispisivanjem pa onda ne treba begin end.

Sad ces znati. Osmijeh Blok begin..end sluzi tome da zamjenis jednu naredbu s vise njih.

 

pfliper kaže...
if (....) then begin

c:=a+b;

a:=a+2;

WriteLn('blalval');

end;

Tako je, u ovom slucaju treba begin..end, a kad bi bilo samo WriteLn, onda bi bilo samo if (....) then WriteLn('blalval');

 

S tim da pokusaj pisati kod uvazavajuci Pascalovu konvenciju - znaci, rezervirana rijec begin ide u novi red, a sve unutar begin..end bloka uvuces za dva razmaka:

 

if (....) then
begin
  c:=a+b;
  a:=a+2;
  WriteLn('blalval');
end;

Ako to ne radis, onda ti je tesko iscitati koje naredbe se odnose na taj if. Ovako odmah vidis da je rijec o tri naredbe. U ovom slucaju to i nije neki problem, ali ako imas if unutar if-a, onda zbilja tesko mozes vidjeti koje naredbe se odnose na koje if-grananje i lakse ces napraviti gresku.

13 godina
neaktivan
offline
Uvod u programiranje: C++, Pascal

NAPISAT PROGRAM U PASCALU KOJI CE RACUNATI ZBROJ KVADRATA 2 BROJA. Hitnooooo :)

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice