Root /ArchiveAbout
()

Сравнение чисел

Сравнение чисел

На этой странице дано решение примеров If1 - If8 из задачника Абрамяна, в которых рассматриваем вопрос сравнения чисел.

If1. Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае не изменять его. Вывести полученное число.

var
  N: integer;

begin
  writeln('Ведите целое число:');
  readln(N); 
  { Положительное увеличиваем N на 1: }
  if N > 0 then inc(N);
  writeln('Результат: ', N);
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 If2. Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае вычесть из него 2. Вывести полученное число.

var
  N: integer;

begin
  writeln('Ведите целое число:');
  readln(N);
  if N > 0 then N := N + 1 { <== Увеличиваем на 1 }
  else N := N - 2; { <== Уменьшаем N на 2 }
  writeln('Результат: ', N);
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 If3. Дано целое число. Если оно является положительным, то прибавить к нему 1; если отрицательным, то вычесть из него 2; если нулевым, то заменить его на 10. Вывести полученное число.

var
  N: integer;

begin
  writeln('Ведите целое число:');
  readln(N);
  if N > 0 then inc(N) { <== Увеличиваем на 1 }
  else
  if N < 0 then N := N - 2 { <== Уменьшаем на 2 }
  else N := 10; { <== Заменяем на 10 }
  writeln('Результат: ', N);
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 If4. Даны три целых числа. Найти количество положительных чисел в исходном наборе.

var
  a, b, c: integer;
  k: byte; { <-- количество положительных чисел }

begin
  writeln('Ведите три целых числа:');
  readln(a, b, c);
  k := 0; { <-- положительных чисел нет (еще не проверяли) }
  { Если число положительное, то увеличиваем k на единицу: } 
  if a > 0 then inc(k); { <== одно положительное число }
  if b > 0 then inc(k); { <== ещё одно положительное число }
  if c > 0 then inc(k); { <== ещё одно положительное число }
  writeln; { <-- пропускаем строчку }
  { Выводим результат в зависимости от k: }
  if k = 0 then writeln('Нет положительных')
  else writeln('Количество положительных: ', k);
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 If5. Даны три целых числа. Найти количество положительных и количество отрицательных чисел в исходном наборе.

var
  a, b, c: integer;
  p, m: byte; { количество положительных и отрицательных
              чисел (p и m соответственно) }
begin
  writeln('Ведите три целых числа:');
  readln(a, b, c);
  p := 0; { <-- положительных чисел пока нет }
  m := 0; { <-- отрицательных чисел тоже нет }
  { Если число положительное, то увеличиваем k на единицу: } 
  if a > 0 then inc(p) { <== одно положительное число }
  else
    if a < 0 then inc(m); { <== одно отрицательное число }
  if b > 0 then inc(p) { <== второе положительное число }
  else
    if b < 0 then inc(m); { <== второе отрицательное число }
  if c > 0 then inc(p) { <== третье положительное число }
  else
    if c < 0 then inc(m); { <== третье отрицательное число }
  writeln; { <-- пропускаем строчку }
  { Выводим положительные числа: }
  if p > 0 then writeln('Количество положительных: ', p)
  else writeln('Нет положительных '); 
  if m > 0 then writeln('Количество отрицательных: ', m)
  else writeln('Нет отрицательных');
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 If6. Даны два числа. Вывести большее из них.

var
  a, b: real;

begin
  writeln('Введите два числа:');
  readln(a, b);
  if a = b then writeln('Эти числа равны')
  else begin
    write('Большее из этих чисел: ');
    if a < b then writeln(b)
    else writeln(a)
  end;
  readln
end.

**type** real;: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308 If7. Даны два числа. Вывести порядковый номер меньшего из них.

var
  a, b: real;

begin
  writeln('Введите два числа:');
  readln(a, b);
  { Меньшему числу присваиваем его номер: }
  write('Порядковый номер меньшего числа: ');
  if a < b then writeln(1)
  else writeln(2);
  readln
end.

**type** real;: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308 Второй вариант решения:

var
  a, b: real;

begin
  writeln('Введите два числа:');
  readln(a, b);
  { Поскольку логический тип порядковый, для которого False<True,
  а порядок Ord(False)=0, Ord(True)=1, то при ложности a>b будет
  ord(a>b)+1=1, а при истинности получим ord(a>b)+1=2: }
  write('Порядковый номер меньшего числа: ', ord(a > b) + 1);
  readln
end.

**type** real;: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308 **function** Ord(a: boolean): integer;: Возвращает порядковый номер значения a If8. Даны два числа. Вывести вначале большее, а затем меньшее из них.

var
  a, b: real;

begin
  writeln('Введите два числа:');
  readln(a, b);
  writeln('Числа в порядке убывания:');
  if a > b then writeln(a, ' ', b)
  else writeln(b, ' ', a);
  readln
end.

**type** real;: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308