pascal-podmienky,mod,div,pom..

Programovacie jazyky, rady, poradňa...
A7X
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 431
Registrovaný: 20 júl 2008, 14:23

pascal-podmienky,mod,div,pom..

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

ahojte chcem vas poprosit ci nahodou nemate nejaky prehladny jednoduchy(zlozity nezvladnem :D )material na nastudovanie aspon zakladou z pascalu???v skole to preberame a takou zavratnou rychlostou ta ucka ide ze nestiham a nejak mi to logicky nezapada........dakujem moc krat :)
konyk87
King
King
Používateľov profilový obrázok
Príspevky: 1709
Registrovaný: 24 okt 2007, 15:56

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

v skratke:
podmienka..ak je podmienka splnena vykona sa prikaz1, ak nie je tak prikaz2..

Kód: Vybrať všetko

if (podmienka) then
  prikaz1;
else
  prikaz2;
priklad

Kód: Vybrať všetko

if (i=7)
  j:=5;
else
  j:=1;
ak i bude 7, tak do premennej j sa priradi hodnota 5..ak i bude rozne od 7, tak do j sa priradi jednotka.. nic zlozite :)

div..celociselne delenie..

Kód: Vybrať všetko

i:=13 div 4;
po tomto prikaze bude v premennej i hodnota 3 lebo 13/4=3 zv. 1

mod..zvysok po celociselnom deleni

Kód: Vybrať všetko

i:=13 mod 4;
po tomto prikaze bude v premennej i hodnota 1 lebo 13/4=3 zv. 1

alebo pozri napr sem
Fata! ChaoS
Star
Star
Používateľov profilový obrázok
Príspevky: 650
Registrovaný: 12 apr 2006, 20:23
Bydlisko: Tvrdošovce
Kontaktovať používateľa:

Príspevok od používateľa Fata! ChaoS »

skús naše poznámky www.skola.pascal.szm.sk učiteľ to tam dobre rozpísal aj keď odborne, ale mal by si to pochopiť.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

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

posielam ti jedno PDFko, z ktoreho som sa to naucil ja, je tam vysvetlena algoritmizacia, deklaracie premennych a vsetko mozne PO LOPATE ;) Naucis sa z toho cely pascal a este to aj pochopis skor ako sa budete ucit v skole :)
A7X
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 431
Registrovaný: 20 júl 2008, 14:23

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

ja neviem presne detaily ako napriklad ako mam urobit ked mam zadanie ze mam spocitat parne cisla z trojciferneho cisla........som ztoho debil......profacka to len napise na tabuu a tvari sa ako keby sme to mali uz vedet....ja sa biflovat nedokazem jedine musim nato logicky prist..........rozumiem ze kedy ma ist napr.:if (a>b) then writeln('bla');
else writeln('nie bla');
len problem je vtom ze neviem kedy maju ist presne bodkociarky alebo jedy ma ist begin end,(viem ze iba pri viacerich prikazov ale tam su len tie detaily ktore mi nejdu)
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

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

Tak sa uc z takychto veci co ti tu vsetci postujeme a nebudes mat problem...
mirak2
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6719
Registrovaný: 18 sep 2005, 13:44
Bydlisko: Prague, CZE / Kosice, SVK

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

kozmeticka poznamka:
v IFe pred ELSE nema byt bodkociarka..inac aj ja som bol mimo z pascalu, prebehavali sme ho rychlo, ale casom som prisiel na tu algoritmizaciu....a uspesne som z toho aj zmaturoval (a teraz na vyske sa vsetci cviciaci z mojej exstrednej cuduju ze preco sa tam este furt v pascale programuje)
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

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

No to som nejako nekukal ten 2. prisp. :-D
Ma to vyzerat takto:

Kód: Vybrať všetko

 if (a>b) or (a>c) then writeln(' bla') else writeln('nie bla'); 
Doplnil som o moznost "or", nemusi to tam byt, ale ak to tam ches tak takto
Ak niecomu nerozumies, rad ti pomozem. Ozvi sa mi na ICQ (v krajnom pripade :-D)
A7X
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 431
Registrovaný: 20 júl 2008, 14:23

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

mirak2 napísal:kozmeticka poznamka:
v IFe pred ELSE nema byt bodkociarka..inac aj ja som bol mimo z pascalu, prebehavali sme ho rychlo, ale casom som prisiel na tu algoritmizaciu....a uspesne som z toho aj zmaturoval (a teraz na vyske sa vsetci cviciaci z mojej exstrednej cuduju ze preco sa tam este furt v pascale programuje)
no mi to debilne bereme.....som mesiac v skole a sme rozdeleny na tri skupiny....mi se vynechali prve uciva(chvalabohu-word,excel,powerpoint)a isli sme rovno na programovanie....rozumel som rozumel som,az ked netrtla uplnu a neuplnu podmienku.....neviete ako mam este urobit aby mi to scitalo parne cisla z trojciferneho???
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

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

vieme, a chceš to rekurziou, alebo cyklom? :)
mirak2
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6719
Registrovaný: 18 sep 2005, 13:44
Bydlisko: Prague, CZE / Kosice, SVK

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

A7X napísal:no mi to debilne bereme.....som mesiac v skole a sme rozdeleny na tri skupiny....mi se vynechali prve uciva(chvalabohu-word,excel,powerpoint)a isli sme rovno na programovanie....rozumel som rozumel som,az ked netrtla uplnu a neuplnu podmienku.....neviete ako mam este urobit aby mi to scitalo parne cisla z trojciferneho???
cele ti nenaprogramujem, to sa mi nechce...ale mozes to urobit celkom jednoducho....das si to nejakeho cyklu s podmienkou (while, repeat until, mozes aj for a v nom mat if) a budes odpocitavat stovky (slovom 100) dokym sa bude dat a nezabudni mat nejaku pomocnu premenu napr. a ktoru budes zvysovat vzdy ked odratas sto - to aby vedelo kolko krat stovku odratalo...a das if (a mod 2 = 0) then sucet:=sucet+a;
potom toto iste mozes urobit aj pre desiatky a jednotky..nezabudni na zaciatku programu vynulovat sucet a bud menit pomocne premenne alebo si ich nulovat medzi odratavaniami...toto sa da riesit aj rekurziou, ale tu som nikdy poriadne nechapal, takze radsej do toho neleziem
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

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

mirak2 napísal:cele ti nenaprogramujem, to sa mi nechce...ale mozes to urobit celkom jednoducho....das si to nejakeho cyklu s podmienkou (while, repeat until, mozes aj for a v nom mat if) a budes odpocitavat stovky (slovom 100) dokym sa bude dat a nezabudni mat nejaku pomocnu premenu napr. a ktoru budes zvysovat vzdy ked odratas sto - to aby vedelo kolko krat stovku odratalo...a das if (a mod 2 = 0) then sucet:=sucet+a;
potom toto iste mozes urobit aj pre desiatky a jednotky..nezabudni na zaciatku programu vynulovat sucet a bud menit pomocne premenne alebo si ich nulovat medzi odratavaniami...toto sa da riesit aj rekurziou, ale tu som nikdy poriadne nechapal, takze radsej do toho neleziem
hmm? mod? tisícky? stovky? dúfam že si to myslel dobre len som nepochopil, ale ak chce zrátať párne čísla z intervalu <0;n> kde n je to zadané trojciferné číslo, stačí mu:

Kód: Vybrať všetko

i:=2;  /*prve parne cislo je dvojka*/
pocet:=1;   /*nasli sme uz jedno parne ( ^nasu dvojku) */
while i<=n do begin  /*kym je mensie ako zadany vstup*/
i:=i+2;  /*zvys o 2 aby sme sa dostali na dalsie parne*/
inc(pocet);  /*zarataj nove cislo*/
end;
mirak2
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6719
Registrovaný: 18 sep 2005, 13:44
Bydlisko: Prague, CZE / Kosice, SVK

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

ja som to pochopil tak ze chce zratat parne cifry trojciferneho cisla

//edit:
vedel som ze sa to da aj cez MOD..ale chlapec ma trochu problem pochopit niektore veci tak som sa to snazil urobit len cez sucet a odcitanie
proste princip je ten ze odpocitava 100vky az kym cislo nie je mensie ako sto....ked je mensie ako sto zistim kolko krat sa odcitalo a teda viem aka cifra bola na mieste stoviek (dufam ze je to tak spravne, nechcem byt za debila :D ) a potom to iste s desiatkami a jednotkami...a zistenie ci je parne je vec jedneho IFu
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

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

mirak2 napísal:ja som to pochopil tak ze chce zratat parne cifry trojciferneho cisla
ja som to tiez tak pochopil, ze chce spocitat parne cifry v trojcifernom cisle ... ale uz som nepochopil ten tvoj princip s odpocitavanim stoviek :?

imho nejak takto by to mohlo byt

Kód: Vybrať všetko

// n je to trojciferne cislo //
pocet:=0;
repeat 
 cifra:=n mod 10;
 if ((cifra mod 2)=0) then inc(pocet);
 n:= n div 10;
until n=0;
A7X
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 431
Registrovaný: 20 júl 2008, 14:23

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

lidi ratajte stym ze pascal sa ucim tak 15 hodinu dajme tomu....takze while mi nic nehovori.........sme zatial pri mod div if,then,else,write,read,inc. a rozumiem par veciam ale nerozumiem ako mam pre boha spocitat parne cisla v trojcifernom cisle......som ztoho totalny magor a ona nanas tlaci a piseme pisomku kazdy hodinu....a ked mi da priklad:napis program na spocitanie parnych cisel v trojcifernom cisle....skuska(napisem trojciferne cislo):126.....2,6 je parne tak vysledok je :8......ale ja sa dostanem od begin az po write('zadaj cislo');
readln(A);
a potom neviem ako mam dalej pokracovat kde mam dat mod div(vysvetlite mi niekto polopate co to je) IF este zvladnem....
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

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

to čo chceš je súčet párnych cifier a nie čísel. To je trošku rozdiel. gwixt ti to na predchádzajúcej strane napísal. Ak tam ale nemôže byť repeat ani while, tak to sprav cez for čo je ale škaredé riešenie lebo sa spolieha že číslo bude skutočne trojciferné:

Kód: Vybrať všetko

sucet:=0;
for I:=1 to 3 do begin
 cifra:=n mod 10;
 if ((cifra mod 2)=0) then sucet:=sucet+cifra;
 n:= n div 10;
end;
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

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

a myslis, ze ked nevie co je repeat-until, ze bude tusit co je for?

ak to chces uplbe bez cyklu tak jedine nejak takto (iba pre trojciferne cisla!!)

Kód: Vybrať všetko

sucet:=0; 
 writeln('Zadaj cislo');
 readln(n);
 cifra:=n mod 10; 
 if ((cifra mod 2)=0) then sucet:=sucet+cifra; 
 n:= n div 10;
 cifra:=n mod 10; 
 if ((cifra mod 2)=0) then sucet:=sucet+cifra; 
 n:= n div 10;
 cifra:=n mod 10; 
 if ((cifra mod 2)=0) then sucet:=sucet+cifra; 
A7X
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 431
Registrovaný: 20 júl 2008, 14:23

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

gwixt napísal:a myslis, ze ked nevie co je repeat-until, ze bude tusit co je for?

ak to chces uplbe bez cyklu tak jedine nejak takto (iba pre trojciferne cisla!!)

Kód: Vybrať všetko

sucet:=0; 
 writeln('Zadaj cislo');
 readln(n);
 cifra:=n mod 10; 
 if ((cifra mod 2)=0) then sucet:=sucet+cifra; 
 n:= n div 10;
 cifra:=n mod 10; 
 if ((cifra mod 2)=0) then sucet:=sucet+cifra; 
 n:= n div 10;
 cifra:=n mod 10; 
 if ((cifra mod 2)=0) then sucet:=sucet+cifra; 
PRESNE TAKTO......len ja sa to nedokazem naucit tak chcem vas poprosit ci mi nenapisete ktomu semantiku(nejaku pre retardovaneho aby som to konecne pochopil....)
thnx za k- .......
piton
King
King
Používateľov profilový obrázok
Príspevky: 1902
Registrovaný: 02 aug 2005, 0:31
Bydlisko: Hnojisko

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

Sak si zober papier a chod krok za krokom podla toho algoritmu s konkretnym cislom...
Napísať odpoveď