Witam,
Uczę się programować we Free Pascalu. Jestem aktualnie przy warunku if then else. Wymyśliłem sobie takie zadanie:
Użytkownik podaje 5 liczb i program podaje, która z nich jest największa. Wiem, że dzięki funkcji można by napisać kod w 5 linijkach. Ja natomiast chciałbym dobrze nauczyć się zagnieżdżania if, więc robię to zadanie. ( w zadaniu nie uwzględniam tego, że 2 liczby mogą być sobie równe, proszę was o pominięcie tego elementu)
Podam najpierw kod, który podaje odpowiedź przy 4 liczbach:
program XYZ;
var
A,B,C,D : integer;
begin
write('Podaj liczbe A: ');
readln(A);
write('Podaj liczbe B: ');
readln(B);
write('Podaj liczbe C: ');
readln(C);
write('Podaj liczbe D: ');
readln(D);
IF A>B then
begin
IF A>C then
begin
IF A>D then
writeln('Najwieksza liczba to A')
else
writeln('Najwieksza liczba to D')
end else
IF C>D then
writeln('Najwieksza liczba to C')
else
writeln('Najwieksza liczba to D')
end else
begin
IF B>C then
begin
IF B>D then
writeln('Najwieksza liczba to B')
else
writeln('Najwieksza liczba to D')
end else
IF C>D then
writeln('Najwieksza liczba to C')
else
writeln('Najwieksza liczba to D')
end;
readln;
end.
Powyższy kod działa. Teraz ten niedziałający ( na 5 liczb ):
program piecliczb;
var
A,B,C,D,E : integer;
begin
write('Podaj A');
readln(A);
write('Podaj B');
readln(B);
write('Podaj C');
Readln(C);
write('Podaj D');
readln(D);
write('Podaj E');
readln(E);
IF A>B then
begin
IF A>C then
begin
IF A>D then
begin
IF A>E then
writeln('Najwieksza jest A')
else
writeln('Najwieksza jest E')
end else
IF D>E then
writeln('Najwieksza jest D')
else
writeln('Najwieksza jest E')
end else
begin
IF C>D then
begin
IF C>E then
writeln('Najwieksza jest C')
else
writeln('Najwieksza jest E')
end else
IF D>E then
writeln('Najwieksza jest D')
else
writeln('Najwieksza jest E')
** end else**
begin
IF B>C then
begin
IF B>D then
begin
IF B>E then
writeln('Najwieksza jest B')
else
writeln('Najwieksza jest E')
end else
IF D>E then
writeln('Najwieksza jest D')
else
writeln('najwieksza jest E')
end else
begin
IF C>D then
begin
IF C>E then
writeln('Najwieksza jest C')
else
writeln('Najwieksza jest E')
end else
IF D>E then
writeln('najwieksza jest D')
else
writeln('najwieksza jest E')
end;
readln;
end.
Zaznaczyłem dodatkowo pogrubionym pismem, w której linijce wyskakuje błąd. Czyli de facto mój problem polega na tym jak połączyć te 2 bloki ? Pozdrawiam
dodanie znaczników <code class="pascal"> - fp