Кристина Кристина
Кристина Кристина

Языка паскаль не могу найти ошибку, помогите!

Вот в институте самую элементарную задачку не могу решить, нужно задать запрос на оценку студента, когда мы её введём что бы соответственно было написанно, отлично, хорошо ну и т. д. , а если оценка не 2,3,4 и 5, а какае-то другая, то выводилась надпись неправильная оценка!
так вот я написал такую программу, а оно мне выдаёт только при 5 "Отличнольная оценка", а при всех остальных оценка неверная оценка
вот сама программа:
________

Program student;
Uses CRT;
var a: integer;
begin
ClrScr;
write('Оценка студента: ');
readln(a);
if a=2
then begin
GotoXY(36,13);
write('Неудовлетворительно');
end
else begin
GotoXY(36,13);
write('Неправильная оценка');
end;
if a=3
then begin
GotoXY(36,13);
write('Удовлетворительно');
end
else begin
GotoXY(36,13);
write('Неправильная оценка');
end;
if a=4
then begin
GotoXY(36,13);
write('Хорошо');
end
else begin
GotoXY(36,13);
write('Неправильная оценка');
end;
if a=5
then begin
GotoXY(36,13);
write('Отлично');
end
else begin
GotoXY(36,13);
write('Неправильная оценка');
end;
end.
_________
прошу найти ошибку, или написать самому и скинуть сюда!!!
заранее огромное спасибо!
Увеличить
Увеличить

Виктория
Виктория

Вариант 1:
...
GotoXY(36,13);
if a=2 then write('Неудовлетворительно')
else if a=3 then write('Удовлетворительно')
else if a=4 then write('Хорошо')
else if a=5 then write('Отлично')
else write('Неправильная оценка');

Вариант 2:
...
GotoXY(36,13);
case a of
2: write('Неудовлетворительно');
3: write('Удовлетворительно');
4: write('Хорошо');
5: write('Отлично');
else write('Неправильная оценка');
end;

Вариант 3 (мой любимый)
const marks:array[1..5] of string=('Неправильная оценка', 'Неудовлетворительно', 'Удовлетворительно', 'Хорошо', 'Отлично');
...
GotoXY(36,13);
if not (a in [2..5]) then a:=1;
write(marks[a]);

Ни
Никита

нууу в принципе верно ---ввел ты 2 - произошло сравнение 2=2 - верно - написалось - неуд.... затем произошло сравнение с 3 - не равно и сооответственно затёрлось неуд - и вывелось Неправильная оценка.... а с 5 проканывает потому что это сравнение последнеее... .
-----------------------
else begin
GotoXY(36,13);
write('Неправильная оценка');
end;
----------------------
из if - else этот блок убери и в конце напиши что то наподобии... .
if(a<2 or a>5) then
begin
GotoXY(36,13);
write('Неправильная оценка');
end;

Похожие вопросы
Помогите найти ошибку в паскале ABC
помогите найти ошибку в программе на языке паскаль
Помогите найти ошибку (паскаль)
Помогите найти ошибку в программе. Паскаль.
помогите найти ошибку паскале
Помогите найти ошибку. Язык С
Помогите найти ошибку в Паскале
Помогите найти ошибку. Паскаль. Ошибка в ситаксисе
Помогите найти ошибку в коде Паскаль
Помогите найти ошибку Паскаль