Помогите пожалуйста..Паскаль, мне нужно, чтоб вышла одна оценка в выводе, а

Помогите пожалуйста..Паскаль, мне необходимо, чтоб вышла одна оценка в выводе, а выходят сходу 3 при этом одна какая то из 4 не выходит к этим 3 ...как это исправить, что бы вообщем одна оценка выходила? k-кол-во баллов если, что и аспекты такие 18-20 баллов-оценка 5; 14-17 баллов 4; 10-14баллов- оценка 3 и меньше 10 баллов 2.Вообще смотрится все так:
If kgt;17 then
Begin
Writeln('ваша оценка 5. Молодец!');
End;
If (kgt;13) or (klt;18) then
Begin
Writeln('ваша оценка 4.');
End;
Begin
If(kgt;9) or (klt;14) then
Writeln('ваша оценка 3.');
End;
If klt;10 then
Begin
Writeln('ваша оценка 2.');
End;

Задать свой вопрос
2 ответа
В паскале есть очень подходящий для данного варианта оператор case:

case k of
 18..20: Writeln('ваша оценка 5. Молодец!');
 14..17: Writeln('ваша оценка 4.');
 10..13: Writeln('ваша оценка 3.');
 else Writeln('ваша оценка 2.');
end;
Ванек Гравер
Мы такового пока, что не проходим
Or - "Либо". Если одно из условий правильно, то и все выражение воспринимает правду [ 0 or 1 = 1 ; 1 or 0 = 1; 1 or 1 = 0, 0 or 0 = 0], где 1 - правда, а 0 - ересь
у тебя условие 
If(kgt;9) or (klt;14) then
условие k gt; 9 выполняется, а значит и все выражение правильно
Необходимо заменить "OR" на "AND" оператор "И". 
[ 1 and 1 = 1 ] при всех других - ложь

Вот код

var
k: integer;
begin
 readln(k);
  if k gt; 17 then
    Writeln('ваша оценка 5. Молодец!');
  if (k gt; 13) and (k lt; 18) then 
    Writeln('ваша оценка 4.'); 
if(k gt; 9) and (k lt; 14) then 
    Writeln('ваша оценка 3.'); 
if k lt; 10 then
    Writeln('ваша оценка 2.');
end.
Artemij Kambaratov
Спасибо огромное)) это я не учла...
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт