ďťż

Ładny brzuch

Witam,
mam mały problemik.
Treść zadania:
"Dane sa następujace stałe a=10, b=5, r=6 które odpowiadaja bokom figur. Napisz program który bedzieliczył obwód figury w zależności która figure wybierzemy."

Ja zrobiłem to tak

Program obwody; uses crt; var liczba:1..4; a,b,r: integer; h:real; const a=10, b=5, r=6; Begin writeln('Program liczacy obwod wybraej figury'); writeln('1 - prostokat'); writeln('2 - kwadrat'); writeln('3 - trojkat'); writeln('4 - koˆo'); writeln('podaj cyfre dla figury ktorej chcesz policzyc obwod'); readln (liczba); case liczba of 1: begin h:=2*a+2*b; writeln('obwod wynosi ',h) end; 2: begin h:=4*a; writeln('obwod wynosi ',h) end; 3: begin h:=a+b*2; writeln('obwod wynosi ',h) end; 4: begin h:=3,14*r*r writeln('obwod wynosi ',h) end; readln end.

Ale coś jest nie tak.

Prosze o pomoc jak najszybciej. :excl:
Użytkownik ArteK edytował ten post 23 październik 2005, 09:38


wydaje mi sie ze zle zaimplemenotwales dane..
skoro a,b,r to stale to dlaczego masz je wpisane jakos zmienne?? :blink:
mysle ze wykasowanie jednej linijki pomoze: a,b,r: integer;
o i druga sprawa
nie wiem co to jest liczba:1..4;
byc moze to jest dobrze - nie wiem (ale z tego co wiem takie rzeczy sie w TYPE robi!)
ja bym zrobil liczba:byte;, to chyba najmniejszy zakres (nie liczac boolean ;) ) liczb dodatnich w Pascalu

zobacz, moze po tych korekcjach bedize dzialac
PS. pisze z glowy bo nie mam aktulanie kopmilatora..

EDIT: moze dkoladnie opisz co nie dziala?? ^_^
Użytkownik fernandez edytował ten post 23 październik 2005, 11:51
Program obwody; uses crt; var a,b,r: integer; h:real; procedure pros; begin h:=2*a+2*b; writeln('obwod wynosi ',h:5:2); repeat until keypressed; end; procedure kw; begin h:=4*a; writeln('obwod wynosi ',h:5:2); repeat until keypressed; end; procedure tr; begin h:=a+b*2; writeln('obwod wynosi ',h:5:2); repeat until keypressed; end; procedure kolo; begin h:=3.14*r*r; writeln('obwod wynosi ',h:5:2); repeat until keypressed; end; procedure ekran; begin writeln('Program liczacy obwod wybraej figury'); writeln('1 - prostokat'); writeln('2 - kwadrat'); writeln('3 - trojkat'); writeln('4 - kolo'); writeln('podaj cyfre dla figury ktorej chcesz policzyc obwod'); end; procedure menu; var k:char; begin repeat ekran; k:=readkey; case k of '1':pros; '2':kw; '3':tr; '4':kolo; end; until ord(k)=27; end; begin a:=10; b:=5; r:=6; clrscr; clrscr; menu; ekran; readln end.

powinno być dobrze

ps. na TP6 działa:)

jakby co, to pisz tutaj lub na pw

//edit: wszystkie wyniki zaokrągliłem do 2 miejsc po przecinku
Użytkownik Fogel edytował ten post 23 październik 2005, 11:56
dznięki za pomoc :) :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •