27.08.2024

Задачи на циклы (Питон, Паскаль)

Приведем решения задач на языках программирования Паскаль и Питон с применением операторов цикла.

Задача 1. Дана непустая последовательность целых чисел оканчивающаяся нулем. Найти сумму всех чисел.

Как будем решать задачу:

Количество чисел в последовательности не известно, но известно, что последнее вводимое число это 0.

  1. Примем сумму за 0 (переменная s).
  2. Введем первое число из последовательности (переменная x).
  3. Запустим цикл с условием продолжения: число x не равно 0.
  4. В теле цикла будем копить сумму чисел s и вводить число x.
  5. За циклом выведем сумму чисел на экран.

Программа решения задачи на языке Питон

s = 0

x = int(input())

while x!=0:

    s+=x

    x = int(input())

print('сумма чисел',s)

Результат запуска программы:

Программа решения задачи на языке Паскаль

var x,s:integer;

begin

  readln(x);

  s:=0;

  while x<>0 do

  begin

    s+=x;

    readln(x);

  end;

  print('сумма чисел',s);

end.

Задача 2. Найти сумму всех трехзначных четных чисел.

Пусть числа натуральные.

Будем решать задачу "в лоб".

  1. Примем сумму трехзначных четных чисел за 0.
  2. Запустим цикл с счетчиком n по промежутку трехзначных чисел (от 100 до 999)
  3. Проверим, кратно ли значение счетчика цикла n числу 2 (то есть, четно ли оно), если да, то будем копить сумму s.
  4. За циклом выведем искомую сумму чисел на экран.

Программа решения задачи на языке Питон

s = 0

for n in range(100,1000):

    if n % 2 == 0:

        s+=n

print('сумма трехзначных четных чисел',s)

Результат запуска программы

сумма трехзначных четных чисел 247050

Программа решения задачи на языке Паскаль

var n,s:integer;

begin

  s:=0;

  for n:=100 to 999 do

  begin

    if n mod 2 = 0 then s+=n;

  end;

  print('сумма трехзначных четных чисел',s);

end.

Как можно решить задачу быстрее?

Запустим цикл по заведомо четным числам, то есть от 100 до 999 с шагом 2 (100, 102, 104...), проверка четности числа не нужна.

В языке Питон

for n in range(100,1000,2):

    s+=n

В языке Паскаль

for n:=100 to 999 step 2 do

  begin

     s+=n;

  end;

Задачи на цикл в другой публикации.