Jump to content

Gdzie jest błąd?


kepasa

Recommended Posts

Hej, jestem tu nowa, więc sorry jeżeli napisałam w złym miejscu.

 

Mam na zaliczenie zrobić program w pascalu do liczenia pól figur. Napisałam coś takiego:

 

 

PROGRAM Pola_i_objetosci;

uses crt;

 

CONST pi=3.14;

 

VAR

r, h, a, pole : real;

c : byte;

 

 

PROCEDURE Kolo;

BEGIN

ClrScr;

writeln('Podaj dlugosc promienia');

readln®;

 

pole := pi*r*r;

writeln('pole = ' , pole:0:2);

end;

 

PROCEDURE Trojkat;

BEGIN

ClrScr;

writeln('Podaj wysokosc trojkata');

readln(h);

writeln('Podaj dlugosc podstawy');

readln(a);

 

pole := 0.5*h*a;

writeln('pole = ' , pole:0:2);

end;

 

PROCEDURE Kwadrat;

BEGIN

ClrScr;

writeln('Podaj dlugosc boku');

readln(a);

 

pole := a*a;

writeln('pole = ' , pole:0:2);

end;

 

BEGIN

REPEAT

writeln('Pole jakiej figury chcesz policzyc?');

writeln('1. Kolo');

writeln('2. Trojkat');

writeln('3. Kwadrat');

writeln;

writeln('Zeby dokonac wyboru nacisnij cyfre 1-3 i enter');

readln©;

 

if c = 1 then Kolo else

begin;

if c = 2 then Trojkat else

begin;

if c = 3 then Kwadrat;

end

end;

readln;

END.

 

I wyskakuje mi błąd "113 error in statement". Rozumiem z tego, że mam jakiś błąd w kodzie, ale nie mam pojęcia gdzie. Może mi ktoś coś podpowiedzieć?

Link to comment
Share on other sites

Po pierwsze trzeba poznać podstawy języka, bo w ogóle nie myślisz co robisz.

 

W kodzie jaki podałaś, masz niedozwolone znaki przed średnikami w niektórych instrukcjach to też powoduje błedy.

 

Poza tym zero formatowania, zero wstawienia w odpowiednie tagi koloryzujące kodu. Masakra i jedno wielkie WTF!

 

Wiem, że forumowy parser rozwala formatowania, ale czy tak ciężko użyć http://olesio.eu/jcf i wkleić kod na zewnętrzny pastebin?

 

Wedle mnie kod powinien wyglądać tak: http://pastebin.com/YENs3syR - bo skoro już używasz modułu crt do czyszczenia ekranu, to skorzystaj też z innych jego możłiwości. Kod kompilowany pod FPC. Działa ok. W poprawność obliczeń się nie zagłębiałem. Według mnie powinno się dodatkowo dorobić sprawdzanie poprawności wprowadzonych liczb procedurą Val. Ale to już pozostawiam Tobie.

 

Oczywiście rozumiem też, że ktoś jest początkujący. Ale szanuj odpisujących na Twój post. Bo wkleiłaś kod, wykazując się totalnym olewactwem wspomnianych przeze mnie powyżej spraw. Ale ok, miałem chwilę czasu to się zlitowałem i odpisałem.

Pozdrawiam: olesio

Link to comment
Share on other sites

  • 4 weeks later...

Po pierwsze trzeba poznać podstawy języka, bo w ogóle nie myślisz co robisz.

 

W kodzie jaki podałaś, masz niedozwolone znaki przed średnikami w niektórych instrukcjach to też powoduje błedy.

 

Ma średniki po begin, pozostałe dziwne znaki, to kwestia kodowania przez forum...

 

 

Wiem, że forumowy parser rozwala formatowania, ale czy tak ciężko użyć http://olesio.eu/jcf i wkleić kod na zewnętrzny pastebin?

 

 

chyba nie jest aż tak zły...

 

PROGRAM Pola_i_objetosci;
uses crt;
CONST pi=3.14;
VAR
r, h, a, pole : real;
c : byte;

PROCEDURE Kolo;
BEGIN
 ClrScr;
 writeln('Podaj dlugosc promienia');
 readl(r);
 pole := pi*r*r;
 writeln('pole = ' , pole:0:2);
end;
PROCEDURE Trojkat;
BEGIN
 ClrScr;
 writeln('Podaj wysokosc trojkata');
 readln(h);
 writeln('Podaj dlugosc podstawy');
 readln(a);
 pole := 0.5*h*a;
 writeln('pole = ' , pole:0:2);
end;
PROCEDURE Kwadrat;
BEGIN
 ClrScr;
 writeln('Podaj dlugosc boku');
 readln(a);
 pole := a*a;
 writeln('pole = ' , pole:0:2);
end;
BEGIN
REPEAT
 writeln('Pole jakiej figury chcesz policzyc?');
 writeln('1. Kolo');
 writeln('2. Trojkat');
 writeln('3. Kwadrat');
 writeln('4. Wyjscie'); {dodane, aby zakonczyc dzialanie programu}  
 writeln;
 writeln('Zeby dokonac wyboru nacisnij cyfre 1-3 i enter');
 readln(c);
 if c = 1 then
Kolo
 else
 begin
if c = 2 then
 	Trojkat
else
begin
 	if c = 3 then
   	Kwadrat;
end
 end;
 readln;
 until c = 4;
END.

 

Wedle mnie kod powinien wyglądać tak: http://pastebin.com/YENs3syR - bo skoro już używasz modułu crt do czyszczenia ekranu, to skorzystaj też z innych jego możłiwości.

 

W sumie nawet lepiej przekształcony program, jeśli mieli już case na zajęciach pewnie może wykorzystać, jeśli nie się przyda osobie pytającej na przyszłość. Przydałoby się aby użyszkodnicy nauczyli się korzystać z formatowania, albo należałoby zmienić edytor na czytelniejszy (mniej opcji, ale bardziej widoczne)

Link to comment
Share on other sites

  • 10 months later...

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...