Preskoči na sadržaj
Ista raja. Nova runda.
GAMERZ.ba — REBORN
Diskusija

Pascal - Problem sa zadatkom

0 pregleda · 11 odgovora · otvorena 14.02.2008. u 00:18

Za zadacu sam dobio da napisem jedan program tako da koristim FOR petlju kako bi zadatak radio.

Zadatak glasi:

Napisati program koji ucitava broj ucenika u razredu, zatim ucitava njihova imena, ucitava zakljucnu ocjenu iz nekoliko predmeta, te ispisuje prosjecnu ocjenu od unesenih.

Ja sam uradio vecinu, samo me zanima kako cu formatirati ispis varijable, tj. red u kojem mi se pojavljuje "Prosjecna ocjena je: 2.00000000000E+7" tako da stavim samo 1 mjesto za cjelobrojni dio i 2 mjesta za decimalni dio.. Pokusao sam ali ne uspjevam nikako.. Evo kako izgleda moj program:


-------------------------------------------------------------------------------

PROGRAM Ucenici;
var i, j, k, x, broj_ucenika, broj_predmeta:integer;
ime_ucenika:string;
ocjena, broj_ocjena, zbroj_ocjena, srednja_ocjena:extended;
begin
writeln ('Unesi broj ucenika: ');
readln (broj_ucenika);
for i:=1 to broj_ucenika do begin
writeln ('Unesi ime ucenika: ');
readln (ime_ucenika);
writeln ('Unesi broj predmeta: ');
readln (broj_predmeta);
for j:=1 to broj_predmeta do begin
writeln ('Koliko ocjena zelis unijeti');
readln (broj_ocjena);
for k:=1 to broj_ocjena do begin
writeln ('Unesi ocjenu');
readln (ocjena);
for x:=1 to broj_ucenika do begin
writeln ('Ucenik ', ime_ucenika, 'je odabrao ', broj_predmeta, ' predmeta, te unio ocjenu/e: ', ocjena);
zbroj_ocjena:=ocjena;
srednja_ocjena:=zbroj_ocjena/broj_predmeta;
writeln ('Njegova prosjecna ocjena je: ', srednja_ocjena);
readln;
end;
end;
end;
end;
end.

-------------------------------------------------------------------------------

Pojavljuje mi se error "Incompatible types: got EXTENDED, exptected SMALLINT"


Ako nekome nesto nije jasno, neka mi se obrati na PM.

P.S. Treba mi do sutra 13h.


EVO I .PAS FILE:
http://rapidshare.de/files/38570260/ProgramPAS.zip.html
ma to ti je lakse uradit preko nizova ....

naziv niza .... ime ucenika ....

ocjene indexi ... saberes indexe i podijelis sa brojem predmeta ....


edit ako hoces da ogranicis decimale pri ispisu koristi izlaz:5:2

dakle 5 cijelih brojeva 2 decimale







Zadnji edit: 13.02.08 u 18:26:08

LoKi© je napisao/la:
ma to ti je lakse uradit preko nizova ....

naziv niza .... ime ucenika ....

ocjene indexi ... saberes indexe i podijelis sa brojem predmeta ....

Moram ga uraditi uz pomoc FOR petlje.
Mislim da je problem u deklariranju varijable, gdje kako se meni cini, srednja ocjena dobiva veci broj decimala, pa se z*** toga ispisuje u onom "produzenom" obliku.

Po mom misljenju bi trebalo znaci smanjiti broj mjesta iza i ispred tocke uz pomoc standardne funkcije (varijabla:x:y), ali ne znam gdje je dodati..

A opet, mozda i nije do toga.. nek se javi netko ko misli da zna u cemu je problem


EDIT: To sam pokusao, ali nisam uspio.. izgleda da ne mogu pronaci pravo mjesto da stavim to, ili jednostavno ne znam kako pravilno ubaciti..
Opcenito pravilo je ovo:

write (3.5:1:3);

gdje ce se 3.5 ispisati u obliku 3.500







Zadnji edit: 13.02.08 u 18:31:21

De pokusaj tu ocjenu kako li se kaze zakljucna il sta vec stavit eal;
a te ostale u integer;

mislim da je do toga ne moze ti sa zarezom ispisat broj nisam siguran kevemi lupam zaribao sam skroz na skroz sa pascalom :S







Zadnji edit: 13.02.08 u 18:52:17

pa preko for petlje ces unosit indexe nizova ....
I_Am_Legend je napisao/la:
mislim da je do toga ne moze ti sa zarezom ispisat broj nisam siguran kevemi lupam zaribao sam skroz na skroz sa pascalom :S

Ako mislis na ovo:

', srednja_ocjena);

.. zarezom se odvaja ispis znakova od ispisa neke vrijednosti ili varijable..







Zadnji edit: 13.02.08 u 18:59:09

FragLike je napisao/la:
Ako mislis na ovo:

', srednja_ocjena);

.. zarezom se odvaja ispis znakova od ispisa neke vrijednosti ili varijable..

Da stavis da ti se srednja ocjena ispisuje u realnom broju

Prije begin to stavi a izbrisi iz prvog var-a

Nagadjamo svi de ako si regan na dernek posalji gc-u poruku mozda ti se smiluje i pomogne jer JE GENIJE ZA OVO

http://www.dernek.ba/profil/gc







Zadnji edit: 13.02.08 u 19:06:42

Pored varijable stavi da je 10:5:3 ili 10:3:1 etc..
Na pragu sam rjesenja, imam hrpu pogresaka napravljenih z*** nerazmisljanja.. sad cu pokusat srediti






PROGRAM Ucenici;
var i, j, k, l, broj_ucenika, broj_predmeta, ocjena, zbroj_ocjena:integer;
ime_ucenika:string;
srednja_ocjenaeal;
begin
writeln ('Unesi broj ucenika: ');
readln (broj_ucenika);
for i:=1 to broj_ucenika do begin
zbroj_ocjena:=0;
writeln ('Unesi ime ucenika: ');
readln (ime_ucenika);
writeln ('Unesi broj predmeta: ');
readln (broj_predmeta);
for j:=1 to broj_predmeta do begin
writeln ('Unesi ocjenu: ');
readln (ocjena);
zbroj_ocjena:=zbroj_ocjena+ocjena;
end;
srednja_ocjena:=zbroj_ocjena/broj_predmeta;
writeln ('Prosjecna ocjena ucenika ', ime_ucenika,' je: ', srednja_ocjena:2:2);
end;
readln;
end.



Pomogao mi je prijatelj iz HR, ali LoKi me je na dobar put navodio, tako da njemu idu bodovi!







Zadnji edit: 13.02.08 u 19:41:01

Nemas pojma sa pascalom frag :ahaha
ps. nisam ni ja sa njim ***zna sta



Post dobio šamar od banks

LoKi© je napisao/la:
ma to ti je lakse uradit preko nizova ....

naziv niza .... ime ucenika ....

ocjene indexi ... saberes indexe i podijelis sa brojem predmeta ....


edit ako hoces da ogranicis decimale pri ispisu koristi izlaz:5:2

dakle 5 cijelih brojeva 2 decimale

I meni je ovako nesta slicno trebalo....zahvaljujem.....
FragLike je napisao/la:
[b]write (3.5:1:3);

gdje ce se 3.5 ispisati u obliku 3.500[/b]

Ovo je pravi odgovor.
Raditi preko nizova tako malen zadatak nema smisla.
Previse memorije zauzima, za takav malen zadatak.
Napises write(ocjena,1,2) i on ceti ispisati ocjenu sa jednim cijelim i dva decimala dijela.

Ako je za skoliu, normalan profesor ti nebi smio priznati takav zadatak uradjen sa nizovima.
Smo ces pokazati da neznas osnove programiranja.







Zadnji edit: 14.02.08 u 08:33:49

Prijavi se da bi odgovorio/la na ovu temu.