
Pascal zadatak (pomoc pocetniku)


Poceli smo sad raditi pascal , ne ide mi bas (ok juce prvi cas Pascala) , pa mozemo mi ko rijesiti zadatak i dati neki sajt za vjezbanje?
Zadatak glasi:Napisati program koji ucitava trocifren broj i odstapmati njegove cifre posebno. (znam lak je , ali nezz pascal) ako nisam jasan treba unjeti npr 1234 i da ispise 1 pa 2 pa 3 pa 4. Molim ne pomocu stringova jer treba neka primitivnija metoda :D
-pravilo prvo, preciznost. Trocifreni broj ima tri cifre-znamenke. Prebrojavajući 1-2-3-4 dolazimo do viška = greška.
Preciznost je vjerojatno važnija od samog rješenja zadatka. Jer rješenje na calculatoru može biti točno ili pogrešno, ne može biti neprecizno. 1+1=2, sve ostalo je pogrešno jednako 2.1, 2.2 ili 2.063.
Drži se strogih pravila, preciznosti, urednosti. Tako se piše dobar kod, jasan-pregledan, tako se izbjegavaju nesporazumi. To nije interpretacija književnog dječa, to je elementarna matematika i tu nema nepreciznosti.
-pravilo drugo, učenje, smisao učenja, smisao života... je upravo da to naučiš. Pomoć može, rješenje ne. Uči se tako da postojeće znanje (recimo osnove matematike i logike) primjeniš u rješenju.
Pa sad što znaš i koji je zadatak?
-znaš brojati? (check OK)
-imaš zadatak:
1) unesi trocifreni broj. - moraš kontrolirati unos, ograničiti ga na zadano, upozoriti korisnika da je premalo-previše tj pogrešan unos (pa i moguće napraviti primjer)..
2) obradi unos tj napravi što zadatak traži. Pošto kažeš ne string, tad ti ostaje?? (pitanje?) odgovor ostaje ti broj (vrijednost) i matematika. ... pa tako dijeljenjem sa 100, 10 i (nepotrebno) s 1 dođeš do rješenja. Možda to takva način rješenja podsjeti na matematiku i dane u osnovnoj školi? Da, sve je to lako, samo se treba sjetiti (ne dobiti odgovor).
3) rješenje ispišeš naekranu, može malo ukrašenije-formatirano, pregledno. Da se zna što je rješenje.
4) dobiješ ocjenu, naučio si, primjeni znanje u idućoj situaciji za rješavanje, ili goto ponavljanje kao majka mudrosti.

Poceli smo sad raditi pascal , ne ide mi bas (ok juce prvi cas Pascala) , pa mozemo mi ko rijesiti zadatak i dati neki sajt za vjezbanje?
Zadatak glasi:Napisati program koji ucitava trocifren broj i odstapmati njegove cifre posebno. (znam lak je , ali nezz pascal) ako nisam jasan treba unjeti npr 1234 i da ispise 1 pa 2 pa 3 pa 4. Molim ne pomocu stringova jer treba neka primitivnija metoda :D
Tebe se sjećam po Python-u, kako ti ne ide Pascal ako ti ide Python? Taj zadatak možeš rješiti na papiru, u C-u, u C#-u, u Javi, u ADA-i, u Pascalu, u Pythonu, u Ruby-u, u Fortranu... Rješenje je svugdje isto, čime djeliš da dobiješ stotice, pa desetice, pa jedinice...

problem je sto nezz fnkcije u pascal

problem je sto nezz fnkcije u pascal
-kako bi učio bilo koji jezik? Strani, programski... uči, riječi = naredbe. Rečenica je sintaksa. Sve je to isto i sve treba početi učiti da bi se znalo. (ili prepiši od kolege ako je samo cilj dobiti prolaznu ocjenu).
potraži hepl, manual, googlaj.
Jedino MB ima instaliran Pascal, sumnjam da još netko može naići u temi i napisati ti konkretnu funkciju koja bi radila kao copy-paste.
primjer :
input broj ............................ npr 123
ostatak=broj/100 ...............=1,23
a=int(ostatak) .....................=1
ostatak=(ostatak-a)*10 ......=0,23*10=2,3
b=int(ostatak) ......................=2
ostatak=(ostatak-b)*10 ......=(2,3-2)*10=0,3*10=3
c=ostatak*10 .......................=3
print a,b,c .............................-> 1,2,3
testiraš unosom 567, 999, 824, 000, uvjek mora biti točno.
treba dodati kontrolu unosa (samo brojevi 0-999) i formatirai ispis, može i ispis varijable 'broj'-a kao uzorak unešenog (mora biti jednako).
identična stvar je dijeljenjem s mod \ dobijaš ostatak. Samo drugačij put do jednakog rješenja. i vidi redosljed c-b-a varijabli.
broj=123
c=broj\10
broj=int(broj/10) ili =(broj-c)/10
b=(broj)/10
broj=int(broj/10) ili =(broj-b)/10
a=broj\10
123\10 =12 i ostatak 3
12\10 =1 i ostatak 2
1\10 = 0 i ostatak 1
Print a,b,c
Svejedno koji programski jezik koristiš, algoritam je taj koji trebaš ovako (ili drugačije jer uvjek ima više načina) postaviti. Razlika je što neki programi mogu imati već gotovoe funkcije kao što excel ima kamatne funkcije, sumu niza i sl. Algoritam se nemijenja, samo sintaksa ovisno o jeziku.
Da je korišten string tad bi uzeli lijevi$, srednji$ i desni$ i to bi SAMO U OVOM slučaju bilo točno jer je trocifreni broj. Jednako svaki drugačiji unos osim trocifrenog broja bi davao krivi rezultat tj davao bi zadnje tri znamenke.

problem je sto nezz fnkcije u pascal
Pa nitko se nije rodio pametan. Nauči!
Referenca za jezik:
http://www.freepascal.org/docs-html/ref/ref.html
Referenca za run-time biblioteku funkcija:
http://www.freepascal.org/docs-html/rtl/index.html
Jest da je ovo za freepascal a imam neki osjećaj da vi radite u turbo pascalu, ali freepascal bi trebao biti veoma (ako ne i potpuno) kompatibilan, pa bi ovaj manual trebao vrijediti.
Ako znaš ovaj zadatak riješiti u pythonu onda si već na pola puta. Tada znaš i koji ti operatori ili funkcije trebaju pa ih potraži u ovim manualima, vrlo vjerojatno će imati slična imena, ili ćeš iz imena moći lako skužiti što rade.

Već su ti odgovorili - nema smisla zadatak ako ga sam ne naučiš.
Rješenje je isto, iako nisam siguran koliko je bilo ispravno od mene da ti ga napišem...
uses crt;
var x:integer;
begin
clrscr;
writeln('Unesi troznamenkasti broj: ');
readln(x);
if x<100 or x>999 then end.
writeln('Prva znamenka: ',x div 100);
writeln('Druga znamenka: ',(x mod 100) div 10);
writeln('Treca znamenka: ',x mod 10);
readln;
end.
Nisam to provukao kroz kompajler pa ne znam je li radi, ali trebalo bi...u svakom slučaju, najjednostavnija moguća metoda.
Poceli smo sad raditi pascal , ne ide mi bas (ok juce prvi cas Pascala) , pa mozemo mi ko rijesiti zadatak i dati neki sajt za vjezbanje?
Zadatak glasi:Napisati program koji ucitava trocifren broj i odstapmati njegove cifre posebno. (znam lak je , ali nezz pascal) ako nisam jasan treba unjeti npr 1234 i da ispise 1 pa 2 pa 3 pa 4. Molim ne pomocu stringova jer treba neka primitivnija metoda :D