Оператор IF. Сравнение чисел

Оператор IF. Сравнение чисел

Начнем с того, что существует две формы оператора if: полная и неполная. Полная содержит в себе действия, происходящие в результате выполнения условия и действия, в результате невыполнения условия. Неполная же предназначена только для действий, выполняющихся в результате успешного выполнения условия.

Рассмотрим форматы записи полной и неполной формы оператора if

if <условие> then <оператор-да> else <оператор-нет> — полная
if <условие> then <оператор-да> — неполная

Теперь рассмотрим, что можно писать вместо, и

<условие> — любое условие,например x>3 или y<z ,или x=10 и т.д.
<оператор-да> —  любое действие,например x:=x+1,y=1-y,z:=x-y и т.м.
<оператор-нет>- аналогично полю <оператор-да>

А теперь как это все будет выглядеть в Паскале

if x>3 then y:=x+2 else y:=x-2;
if y>x then x:=(x*y-2)(x-y) else y:=x*x-5x;

Внимание! Перед else нельзя ставить точку с запятой!

Решим простую задачу на использование if

Дано 10 чисел. Найти сумму всех чисел ,больше пяти, и произведение всех чисел, меньше 1 Для решения такой задачи необходимо использовать массивы. Вот как будет выглядеть полный код задачи

var
x, y, i: integer;
s: array [1..10] of integer;

begin
writeln(‘Введите 10 чисел через запятую и нажмите Enter’);
x := 0;
y := 1;
for i := 1 to 10 do
begin
read(s[i]);
if s[i] > 5 then x := x + s[i];
if s[i] < 1 then y := y * s[i];
end;
writeln(‘Сумма чисел,больших 5 = ‘, x);
writeln(‘Произведение чисел,меньших 1 = ‘, y);
readln;
end.

6 комментариев

  • Елена

    Ответить 25.10.2012 19:18

    Program1.pas(1) : Ожидалось question

    почему когда запустила вашу программу вышло такое сообщение. У меня ABC Pascal

  • Mr.Cheater

    Ответить 25.10.2012 19:19

    Елена,

    Поправлено

    Теперь все работает )

  • sidrelena

    Ответить 25.10.2012 19:19

    Доброе время суток! А уменя выдает

    Program1.pas(9) : Ошибка времени выполнения: Input string was not in a correct format.

    Может я что-то не так делаю?

  • Mr.Cheater

    Ответить 25.10.2012 19:20

    sidrelena,обновите страницу браузера

    в задаче была ошибка , которую я уже поправил.

  • sidrelena

    Ответить 25.10.2012 19:20

    if s[i] < 1 then x := x * s[i];

    простите. а эта строчка правильная?

    writeln('Произведение чисел,меньших 1', y);

    а где же y

  • Mr.Cheater

    Ответить 25.10.2012 19:20

    sidrelena,

    извините, у меня сегодня что-то с компьютером

    некорректно сохраняет

    вместо конечного решения сохранилось промежуточное

    попробуйте еще раз

Оставить комментарий