Задача 2 Урок 10.1

Задача 2 Урок 10.1

Задача 2: Пользователь вводит целое число, если оно больше единицы, то выведите на экран все целые числа от этого числа до единицы (в обратном порядке), которые делятся на 5 без остатка. Иначе (если введённое пользователем число не больше единицы) сообщите об ошибке.

Решение:

program U101Z2;

var a,i:integer;

begin
writeln('Cheloe chislo:');
  readln(a);
  //Основной вариант решения
if (a <= 1)then
      writeln('oshibka');
      for i:=a downto 1 do  //Запускаем цикл, а потом проверяем условие:
          if (a>1)AND((i mod 5) = 0) then  // добавляем логический оператор</pre>

  //Мой вариант (если бы в условии надо было выводить ошибку
  //при числах менее одного и не делящегося на 5):

//if ((a mod 5) <> 0)then  // Выводит с ошибкой все числа, которые не делятся на 5,
  //     write('oshibka')    // включаая 1; (a<=1) - не требуется.
  //else
  //    for i:=a downto 1 do  //здесь сразу запускаем цикл
  //         if (a>1)AND((i mod 5) = 0) then // добавляем логический оператор
  //                                         // уменьшаем количество строк
                write(i, ' ');

  readln();
end.
        
vedro-compota's picture

if (a <= 1)then
      writeln('oshibka');
      for i:=a downto 1 do  //Запускаем цикл, а потом проверяем условие:
          if (a>1)AND((i mod 5) = 0) then

-- блок отформатирован неправильно

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

Добавьте альтернативное решение для условия:

Пользователь вводит целое число, если оно больше единицы, то выведите на экран все целые числа от этого числа до единицы (в обратном порядке). Иначе (если введённое пользователем число не больше единицы) сообщите об ошибке.

_____________
матфак вгу и остальная классика =)

УСЛОВИЕ:

Пользователь вводит целое число, если оно больше единицы, то выведите на экран все целые числа от этого числа до единицы (в обратном порядке), которые делятся на 5 без остатка. Иначе (если введённое пользователем число не больше единицы) сообщите об ошибке.

Ссылка на урок:

Решение:

program U101Z2;
var a,i:integer;

begin
  writeln('Cheloe chislo:');
  readln(a);
      if (a <= 1)then
          write('oshibka')
     else
         if (a > 1)then
             for i:=a downto 1 do
                 if ((i mod 5) = 0) then
                     write(i, ' ');
   readln();
end.          

vedro-compota's picture

-- есть лишняя проверка

_____________
матфак вгу и остальная классика =)

program U101Z2;
var a,i:integer;

begin
  writeln('Cheloe chislo:');
  readln(a);
   if (a <= 1)then
      write('oshibka')
   else
       for i:=a downto 1 do
           if ((i mod 5) = 0) then
              write(i, ' ');

   readln();
end.

Добавлено условие:

что об ошибке надо сообщать в случаях если: вводимое число не только меньше единицы, но и если больше единицы, и при этом не делится на 5

Решение:

program U101Z2;
var a,i:integer;
begin
  writeln('Cheloe chislo:');
  readln(a);
   if (a <= 1) OR
      ((a>1) AND ((a mod 5) <> 0)) then
             write('oshibka')
   else
       for i:=a downto 1 do
           if ((i mod 5) = 0) then
              write(i, ' ');
   readln();
end.                          
vedro-compota's picture

решение засчитано

_____________
матфак вгу и остальная классика =)