Урок 11 (Решенные здачи)

Урок 11 (Решеннные задачи)

1)Пользователь вводит целые числа. Пока он не введёт число большее 15, в ответ на каждое введённое число выводите сумму этого числа и числа 7, если же введённое число больше 15, то цикл необходимо завершить.

var a: integer;

begin
  a := 1;
  while (a <= 15) do
  begin
    writeln('vvedite a');
    readln(a);
    writeln(a + 7, ' ');
  end;
  writeln('osibka');
end.  
2) Пользователь вводит целые числа. Пока он не введёт число большее 15, в ответ на каждое введённое число выводите сумму этого числа и предыдущего введённого им числа, если же введённое число больше 15, то цикл необходимо завершить.

Первое введенное пользователем число можно сложить с единицей.

var a,b: integer;

begin
  a := 1;
  b := 1;
  while (a <= 15) do
    begin
      writeln('vvedite celoe cislo');
      readln(a);
      writeln(a + b);
      b := a;
    end;
end. 
3)Решите с помощью цикла while:
Выведите на экран, все нечетные числа, делящиеся на 3 нацело, лежащие в диапазоне от 35 до 117.
var i: integer;

begin
  i := 35;
  while (i >= 35) and (i <= 117) do
   begin
     if ((i mod 2) = 1) and ((i mod 3) = 0) then
     writeln(i, ' ');
     i := i + 1;
   end;
end.
4) Решите с помощью цикла while:
Выведите на экран, все четные числа от 35 до 117 и нечетные числа, лежащие в диапазоне от 45 до 99.
Указание: сначала можно решить задачу двумя циклами, но потом перепишите с использованием одного цикла, в теле которого составьте логическое выражение, описывающее подходящие числа (используйте логические операции).
var i: integer;

begin
  i := 35;
  while (i >= 35) and (i <= 117) do
   begin
     i := i + 1;
     if ((i mod 2) = 0) then
      begin
        writeln(i, ' ');
      end
     else
     if (i >= 45) and (i <= 99) then
        begin
        writeln(i, ' ');
        end;
   end;
end.
5) Модификация одной из пред. задач: Пользователь вводит целые числа. Пока он не введёт число большее 15, в ответ на каждое введённое число выводите сумму этого числа и двух предыдущих введённых им чисел (предыдущего и пред-предыдущего), если же введённое число больше 15, то цикл необходимо завершить.

В первом витке цикла все "предыдущие" числа можно считать единицами.

var i,b, c: integer;

begin
  i := 1;
  b := 1;
  c := 1;
  while (i <= 15) do
    begin
      writeln('vvedite celoe cislo');
      readln(i);
      writeln(i + b + c);
      c := b;
      b := i;
    end;
  writeln('osibka');
end.
6) Модификация одной из пред. задач: Пользователь вводит целые числа. Пока он не введёт число большее 15, в ответ на каждое введённое число выводите сумму этого числа и пред-предыдущего введённого им числа, если это число чётное, иначе просто запрашивать новое число. Если же введённое число больше 15, то цикл необходимо завершить.

В первом витке цикла все "предыдущие" числа можно считать единицами.

var i, b,c: integer;

begin
  i := 2;
  b := 1;
  c := 1;
  while (i <= 15) do
    if ((i mod 2) = 0) then
      begin
        writeln('vvedite cislo');
        readln(i);
        writeln(i + b + c);
        c := b;
        b := i;
      end
    else
      begin
        writeln('vvedite cislo');
        readln(i);
      end;
   writeln('osibka');
end.
7)Пользователь вводит целые числа, в ответ выводите символ #. Если введенное пользователем число равно 22, то завершите цикл не выводя ничего в ответ. Решите эту задачу 2-мя способами:

С использованием if()
С использованием break;

Первый способ

(бонусный от меня:) самый простой)

var i: integer;

begin
  writeln('vvedite cislo');
  readln(i);
  while (i <> 22) do
   begin
     writeln('#');
     writeln('vvedite cislo');
     readln(i);
   end;
end.

Второй способ

(с "if")

var i: integer;

begin
  while (i <> 22) do
    begin
      writeln('vvedite cislo');
      readln(i);
      if (i <> 22) then
       writeln('#')
    end;
end.

Третий способ

(с break)


var i: integer;

begin
  writeln('vvedite cislo');
  readln(i);
  while (i <> 22) do
    if (i <> 22) then
     begin
       writeln('#');
       writeln('vvedite cislo');
       readln(i);
     end
    else break;
end.
9) Пользователь вводит в числа последовательно три произвольных целых числа. Заведите три переменных и сохраните эти числа в эти переменные. Пользовательский ввод обрабатывайте в цикле.
var i, b, c: integer;

begin
  while (true) do
   begin
     writeln('vvedite cislo');
     readln(i);
     writeln('vvedite cislo');
     readln(b);
     writeln('vvedite cislo');
     readln(c);
     writeln(i,' ', b,' ', c);
     break;
   end;
end.
vedro-compota's picture


var i: integer;
 
begin
  writeln('vvedite cislo');
  readln(i);
  while (i <> 22) do
    if (i <> 22) then
     begin
       writeln('#');
       writeln('vvedite cislo');
       readln(i);
     end
    else break;
end.

переделать так чтобы печать # была вне оператора if

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

Romakip's picture

var i: integer;
begin
    i:=1;
    while (i <> 22) do
    begin
      writeln('vvedite cislo');
      readln(i);
      if  ( i = 22) then
         break;
      writeln('#');
    end;
end.