Задачи по Pascal. Вывести все нечетные числа с помощью цикла.

pascalУсловие задачи : Вывести на экран все нечетные числа с помощью цикла for и while, промежуток задаёт пользователь.

Сложность : легкая .

Из условия сразу ясно что нам понадобиться две переменные для промежутка, пусть A и B. Для цикла for нам понадобиться переменная i (счетчик).

Создадим каркас :

uses crt;
var 
   A, B , i : integer;
begin
end.

Теперь попросим пользователя ввести наш промежуток :

write('Введите первую границу промежутка(A): '); readln(A);
write('Введите вторую границу промежутка(B): '); readln(B);

Но пользователи бывают разные, так что можно прописать условие на случай если пользователь введет A больше чем B :

if (A > B) then 
   begin
      writeln('А должно быть меньше B');
      Halt; // выходим из программы
   end;

Вот теперь можно работать с циклом, как определить четное число или нет вы можете почитать (тут).

Сначала сделаем для for :

В цикле мы будем брать первое число из промежутка затем проверять на четность и если оно нечетное, выводить.

for i:=A to B do
   begin
      if i mod 2 <> 0 then
         writeln(i);
   end;

Вот и всё довольно простой цикл.

Теперь для while, условие выхода у нас будет равенство промежутков, т.е. A = B

while(A <> B) do
   begin
      if (A mod 2 <> 0) then writeln(A);
      A := A + 1;
   end;

Т.е. пока A не равно мы B мы будем выполнять цикл. В самом цикле мы будем делать следующее. Просто берем переменную A и работаем уже с ней, т.е. если текущее значение A нечетное то его выводим, и в любом случаи увеличиваем A.

Вот и вся задача :

Весь код для цикла for :

uses crt;
var 
   A, B , i : integer;
begin
clrscr; // очищаем экран

write('Введите первую границу промежутка(A): '); readln(A);
write('Введите вторую границу промежутка(B): '); readln(B);

if (A > B) then 
   begin
      writeln('А должно быть меньше B');
      Halt; // выходим из программы
   end;

for i:=A to B do
   begin
      if i mod 2 <> 0 then
         writeln(i);
   end;

readln; // чтобы программа не закрывалась
end.

Весь код для цикла while :

uses crt;
var 
   A, B, i : integer;
begin
clrscr; // очищаем экран

write('Введите первую границу промежутка(A): '); readln(A);
write('Введите вторую границу промежутка(B): '); readln(B);

if (A > B) then 
   begin
      writeln('А должно быть меньше B');
      Halt; // выходим из программы
   end;

while(A <> B) do
   begin
      if (A mod 2 <> 0) then writeln(A);
      A := A + 1;
   end;

readln; // чтобы программа не закрывалась
end.

Вот результат :

ris13

Написать ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *