Witam.
Jakiś czas temu zacząłem uczyć się Pascala, napisałem kilka małych programików i chciałem się zabrać za coś większego. Razem z kumplem napisaliśmy po programie, a potem je złączyliśmy. Oba programy działały, dopóki ich nie połączyliśmy. Jako że z Pascalem mam do czynienia od niedawna, i znam tylko podstawy to w kodzie może być dużo błędów. Wydaję mi się że głównym problemem jest pomieszana struktura blokowa Begin End; w skrócie End’y mam w złym miejscu. Ale to tylko moje podejrzenia. Mam nadzieje że odszukacie wszystkie błędy i pomożecie mi naprawić program
O to kod:
Program Weendow;
Uses dos, crt;
Const
haslo='Kis';
pi=3.14;
Var
dalejwyjscie:byte;
boka:integer;
bokb:integer;
bokc:integer;
promien:integer;
wybierztrojkat:byte;
prostokatny:byte;
pitagoras:byte;
dowolny:byte;
wysokosc:integer;
pole:integer;
wprowadz1: integer;
wprowadz2: integer;
imie:String;
wprowadz: integer;
petla:byte;
menu1:byte;
menu2:byte;
menu3:byte;
menu4:byte;
bokakwadratu:integer;
bokaprostokonta:integer;
bokbprostokonta:integer;
kat:integer;
wyborkolo:byte;
menu_wyjscie:byte;
liczba1: Integer;
liczba2: Integer;
begin
textcolor(white);
textbackground(blue);
ClrScr;
WriteLn;
WriteLn( 'Jak sie nazywasz?');
Readln( imie );
ClrScr;
WriteLn;
WriteLn('Siema ' , imie , '! Witaj w WeeKalkulatorze!' );
repeat
WriteLn('Co chcesz robic?');
WriteLn('[1]Dodawac,[2]odejmowac, [3]dzielic czy [4]mnozyc, [5]obliczenia na figurach?');
ReadLn(wprowadz);
IF (wprowadz<1) OR (wprowadz>5) THEN
begin
writeln('Musisz wybrac [1], [2], [3], [4] lub [5]');
readln(wprowadz);
END;
IF wprowadz=5 THEN
begin
CLRscr;
WriteLn('Wybierz Rodzaj Figury');
WriteLn('[1]Plaska | [2]Przestrzenna');
ReadLn(wprowadz2);
IF (wprowadz2<1) OR (wprowadz2>2) THEN
begin
writeln('Musisz wybrac [1] lub [2]');
readln(wprowadz2);
END;
IF wprowadz2=1 THEN
begin
clrScr;
Writeln('Witaj, wybierz jaka figura cie interesuje');
Writeln('1- kwadrat');
Writeln('2- prostokat');
writeln('3- kolo');
writeln('4- trojkat');
writeln('5- exit');
readln(menu1);
If menu1=1 then
begin
ClrScr;
Writeln('Wybrales kwadrat, oto opcje do wyboru');
Writeln('1-pole, 2- obwod, 3- promien okregu wpisanego');
readln(menu2);
If menu2=1 then
begin
clrScr;
Writeln('Wybrales obliczanie pola, podaj dlugosc boku a');
readln(bokakwadratu);
Write('Pole tego kwadratu wynosi: ');
Writeln(bokakwadratu*bokakwadratu);
end;
If menu2=2 then
begin
clrScr;
Writeln('Wybrales obliczanie obwodu, podaj dlugosc boku a');
readln(bokakwadratu);
Write('obwod tego kwadratu wynosi: ');
Writeln(bokakwadratu*4);
readln;
end;
If menu2=3 then
begin
clrScr;
Writeln('Wybrales obliczanie promienia okregu wpisanego, podaj dlugosc boku a');
readln(bokakwadratu);
Write('Promien okregu wpisanego w ten kwadrat wynosi: ');
Writeln(bokakwadratu/2:4:1);
end;
end;
If menu1=2 then
begin
clrscr;
Writeln('Wybierz co chcesz zrobic: ');
Writeln('1- pole, 2-obwod');
Readln(menu3);
end;
If menu3=1 then
begin
clrscr;
writeln('Wybrales obliczanie pola, podaj dlugosc boku a');
Readln(bokaprostokonta);
Writeln('A teraz podaj dlugosc boku b');
readln(bokbprostokonta);
write('Pole tego prostokata to: ');
writeln(bokaprostokonta*bokbprostokonta);
end;
if menu3=2 then
begin
clrscr;
writeln('Wybrales obliczenie obwodu prostokonta, podaj dlugosc boku a');
Readln(bokaprostokonta);
Writeln('Podaj dlugosc boku b');
readln(bokbprostokonta);
Write('obwod tego prostokonta wynosi: ');
Writeln((bokaprostokonta+bokbprostokonta)*2);
end;
If menu1=3 then
begin
clrscr;
Writeln('Dostepne opcje dla kola:');
Writeln('1-pole kola, 2-obwod kola, 3- pole wycinka');
Readln(wyborkolo);
if wyborkolo=1 then
begin
clrscr;
Writeln('Wybrales obliczanie pola kola, podaj dlugosc promienia(r)');
readln(promien);
write('Pole wynosi: ');
writeln((promien*promien)*pi);
end;
if wyborkolo=2 then
begin
clrscr;
Writeln('Wybrales obliczenie obwodu kola, podaj dlugosc promienia(r)');
readln(promien);
Write('Obwod wynosi: ');
Writeln(2*pi*promien);
end;
If wyborkolo=3 then
begin
clrscr;
Writeln('Wybrales obliczanie wycinka kola, wpisz kat odcinka');
readln(kat);
Writeln('Podaj dlugosc promienia(r)');
readln(promien);
Write('Pole tego wycinka wynosi: ');
Writeln((kat/360)*(promien*promien)*pi);
end;
If menu1=4 then
begin
clrscr;
Writeln('Wybierz jaki trojkont cie interesuje');
Writeln('1-trojkat prostokatny');
Writeln('2-trojkat dowolny');
Readln(wybierztrojkat);
If wybierztrojkat=1 then
begin
clrscr;
Writeln('Wybrales trojkat prostokatny, wybierz co chcesz zrobic');
Writeln('1-Obliczyc obwód, 2-Obliczyc pole');
readln(prostokatny);
If prostokatny=1 then
begin
Writeln('Podaj dlugosc boku a');
readln(boka);
writeln('Podaj dlugosc boku b');
readln(bokb);
writeln('Podaj dlugosc boku c');
readln(bokc);
write('Obwod tego trojkata wynosi ');
Writeln(boka+bokb+bokc);
end;
If prostokatny=2 then
begin
writeln('Podaj dlugosc boku a ');
readln(boka);
writeln('Podaj dlugosc boku b');
readln(bokb);
Write('Pole tego trojkata wynosi: ');
Writeln((boka*bokb)/2:4:2);
end;
end;
If wybierztrojkat=2 then
begin
clrscr;
Writeln('Co chcesz zrobic?');
Writeln('1-Oblicz pole');
end;
If dowolny=1 then
begin
clrscr;
Writeln('Podaj wysokosc');
readln(wysokosc);
Writeln('Podaj dlugosc boku a');
readln(boka);
Write('pole tego trojkata wynosi: ');
Writeln((boka*wysokosc)/2:4:2);
end;
end;
END;
IF wprowadz=4 THEN
begin
CLRscr;
WriteLn('Wybierz pierwsza liczbe');
ReadLn(liczba1);
WriteLn('Wybierz druga liczbe');
ReadLn(liczba2);
WriteLn('Trrrr...Pfrrrr...(Trwa Mnozenie...)');
Delay(1000);
Write(liczba1, '*' ,liczba2, '=');
Delay(1000);
WriteLn(liczba1 * liczba2);
Delay(1000);
WriteLn('Mnozenie zakonczone...');
Delay(1000);
END;
IF wprowadz=3 THEN
begin
CLRSCR;
WriteLn('Wybierz pierwsza liczbe');
ReadLn(liczba1);
WriteLn('Wybierz druga liczbe');
ReadLn(liczba2);
WriteLn('Trrrr...Pfrrrr...(Trwa dzielenie...)');
Delay(1000);
Write(liczba1, '/' ,liczba2, '=');
Delay(1000);
WriteLn(liczba1 / liczba2 :8:4);
Delay(1000);
WriteLn('Dzielenie zakonczone...');
Delay(1000);
END;
IF wprowadz=2 THEN
begin
clrscr;
WriteLn('Wybierz pierwsza liczbe');
ReadLn(liczba1);
WriteLn('Wybierz druga liczbe');
ReadLn(liczba2);
WriteLn('Trrrr...Pfrrrr...(Trwa Odejmowanie...)');
Delay(1000);
Write(liczba1, '-' ,liczba2, '=');
Delay(1000);
WriteLn((liczba1 - liczba2));
Delay(1000);
WriteLn('Odejmowanie zakonczone...');
Delay(1000);
END;
IF wprowadz=1 THEN
begin
clrscr;
WriteLn('Wybierz pierwsza liczbe');
ReadLn(liczba1);
WriteLn('Wybierz druga liczbe');
ReadLn(liczba2);
WriteLn('Trrrr...Pfrrrr...(Trwa Dodawanie...)');
Delay(500);
Write(liczba1, '+' ,liczba2, '=');
Delay(500);
WriteLn((liczba1 + liczba2));
Delay(1000);
WriteLn('Dodawanie zakonczone...');
end;
Delay(1000);
Writeln('1-menu glowne, 2-wyjscie');
readln(menu_wyjscie);
until menu_wyjscie=2
end;
end;
END.
Pozdrawiam
Ps. Wiem że w kodzie mam nieźle namieszane, mam nadzieje że to was nie odtrąca