Условие задачи : Вывести на экран все нечетные числа с помощью цикла 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.