Урок 12. Циклы и числовые последовательности

Урок их серии: «Язык программирования Паскаль«.

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

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

Алгоритм для обработки последовательнойтей относится к одному из двух типов: поиск, проверка условий.

Для последовательностей характерно, что в каждый момент времени нам доступен только один элемент последовательности. Поэтому все алгоритмы строятся с учетом однократного последовательного просмотра. 

На этом уроке рассмотрим несколько программ на языке программирования Паскаль. В каждой из них одновременно рассматривается только очередной элемент последовательности, без учета остальных (массивы не используются). Алгоритиы для решения таких задач называются алгоритмами с линейным поиском.

Пример 1. Вводится последовательность из N целых чисел. Найти сумму всех отрицательных чисел.

Переменные:

n — количество чисел;
i — переменная цикла;
x — очередное число;
sum — сумма отрицательных чисел.

program primer_1;
Var i,n,x,sum:integer;
Begin
  Writeln('Введите длину последовательности N= ');
  Readln(n);
  Sum:=0;
  For I:=1 to n do
    Begin
      Writeln('Введите ', i, '-ое число: ’);
      Readln(x);
      if x < 0 then sum:=sum+x
    end; 
  If sum = 0 
    then writeln('Отрицательных чисел нет.’)
    Else writeln(‘Сумма отрицательных чисел = ’, sum);
End.

Пример 2. Вводится последовательность ненулевых чисел, 0 – конец последовательности. Определить, сколько раз последовательность меняет знак.

Переменные:

old — предыдущее число;
new- обрабатываемое число;
k — количество смен знака ;
i — порядковый номер числа в последовательности.

program primer_2;
Var old, new: real;
    k: integer;
Begin
  Write('Введите первое число: ');
  Readln(old);
  Write('Введите второе число: ’);
  Readln(new);
  k:=0; i:=2;
  Repeat
    If new*old < 0 then k := k+1;
    old:=new;
    i:=i+1;
    Write(‘Введите ',i, '-ое число:’);
    Readln(new);
  Until new = 0;
  If k > 0 
    then  writeln('Последовательность меняет знак  ',k,'  раз')
    else writeln('Последовательность  не меняет знак ’);
end.

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

В следующем уроке будет описано использование подпрограмм.

Следующий урок: Подпрограммы в языке Паскаль

Подписаться
Уведомить о
guest

2 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Сергей
Сергей
7 лет назад

Здравствуйте! У вас в первой задаче есть небольшие ошибки. Когда пишем writeln то в скобочках вот такой знак должен быть (‘)

Arsen
Arsen
12 лет назад

Cпасибочки, вспомнил)