Тема: Программирование циклических алгоритмов. Массив.

 

План:

  1. Назначение циклов.
  2. Цикл с предусловием.
  3. Примеры использования цикла с предусловием.
  4. Оператор цикла с постусловием.
  5. Примеры программ с использованием оператора цикла с постусловием.
  6. Оператор цикла с параметром.
  7. Примеры программ с использованием оператора цикла с параметром.
  8. Тип.
  9. Одномерные массивы.
  10. Описание одномерных массивов.
  11. Ввод и вывод одномерных массивов.
  12. Обработка массива.

Скачать:

ВложениеРазмер
Microsoft Office document icon lekciya_6.doc52 КБ

Предварительный просмотр:

Лекция№6

Тема: Программирование циклических алгоритмов.

План:

  1. Назначение циклов.
  2. Цикл с предусловием.
  3. Примеры использования цикла с предусловием.
  4. Оператор цикла с постусловием.
  5. Примеры программ с использованием оператора цикла с постусловием.
  6. Оператор цикла с параметром.
  7. Примеры программ с использованием оператора цикла с параметром.
  8. Тип.
  9. Одномерные массивы.
  10. Описание одномерных массивов.
  11. Ввод и вывод одномерных массивов.
  12. Обработка массива.

  1. Назначение циклов

Решение многих задач содержит повторяющиеся или похожие действия. Например, необходимо вычислить значение функции при десяти различных значениях аргумента. Чтобы не записывать десять раз функцию, в языке Паскаль предусмотрены операторы повторения, которые называются операторами цикла. Применение циклов в программе позволяет эффективно использовать машину, приводит к сокращению длины программы и времени на ее составление и отладку.

В языке Паскаль предусмотрено три вида операторов цикла:

  1. оператор цикла с предварительным условием;
  2. оператор цикла с последующим условием;
  3. оператор цикла с параметром.

Для всех трех операторов цикла характерна одна особенность: повторяющиеся действия записываются всего лишь один раз. Вход в цикл возможен только через его начало. Необходимо предусмотреть выход из цикла, в противном случае циклические действия будут повторяться бесконечно.

  1. Цикл с предусловием

Оператор цикла с предварительным условием записывается следующим образом:

While условие Do Оператор;

Здесь While и Do – служебные слова.

Условие – какое-либо логическое выражение.

Оператор – Простой или составной оператор.

Оператор цикла с предусловием действует следующим образом. Каждый раз предварительно проверяется условие, если оно истинно, то выполняется оператор, стоящий сразу за словом Do, после его выполнения, снова проверяется условие и так продолжается до тех пор, пока условие не станет ложным. Если условие ложно, то осуществляется переход на оператор, стоящий сразу после оператора цикла.

  1. Примеры использования цикла с предусловием

Пример1.

Вычислить у=х2 при х=2, 4, 6, 8, 10.

Program cikl1;

Var  X,Y:Integer;

Begin

X:=2;

While x<=10 Do

  Begin

Y:=Sqr(X);

Writeln(‘X=’,X:3, ‘Y=’,Y:5);

X:=X+2;

  End;

        End.

        Пример 2.

        Вычисление квадратного корня из вводимых чисел.

Program cikl2;

Var

X,Y:Integer;

C:Char;

B:Boolean;

  Begin

B:=True;

While B Do

Begin

Write(‘Введите число: ’);

Readln(X);

If X>=0 Then Writeln(‘Корень из ’, Х, ‘ равен ’, Sqrt(X))

            Else Writeln(‘Действительного ответа нет’);

While Not((C=’Y’)Or(C=’N’) Do

   Begin

        Write(‘Желаете ввести еще одно число? (Y/N) ’);

        Readln(C);

   End;

If C= ‘N’ Then B:=False;

End;

  End.

  1. Оператор цикла с постусловием

Оператор цикла с последующим условием выглядит следующим образом:

Repeat

     Операторы циклической

      части программы

Until Условие выхода из цикла;

Слова Repeat (повторять) и Until (До тех пор) являются служебными словами. Условие выхода из цикла – любое логическое выражение. Операторы циклической части программы -–любое количество любых операторов.

Оператор цикла с последующим условием действует следующим образом. Операторы циклической части программы выполняются повторно (по крайней мере один раз) до тех пор, пока значение логического выражения ложно. Условием прекращения циклических вычислений является истинное значение условия. В отличие от изученного нами оператора While в операторе цикла с постусловием сначала выполняются циклические вычисления, а затем уже производится проверка условия.

  1. Примеры программ с использованием оператора цикла с постусловием.

Вычислить у=х2 при х=2, 4, 6, 8, 10.

Program cikl3;

Var x,y:Integer;

Begin

 X:=2;

  Repeat

                Y:=Sqr(x);

                 Writeln(x:3,y:5);

                  X:=x+2;

  Until x>10;

End.

Сначала задается первое значение аргумента х=2, затем внутри циклической части выполняются следующие действия:

  1. Вычисляется значение у при текущем значении х;
  2. Значения х и у выводятся на экран монитора;
  3. Вычисляется новое значение х прибавлением к нему двойки.
  4. Производится проверка: если х>10, то конец цикла, иначе переходим на шаг  циклической части алгоритма.
  1. Оператор цикла с параметром

Оператор цикла с параметром используется в том случае, когда заранее известно, сколько раз должен повториться цикл. Оператор цикла с параметром имеет следующую форму записи:

For i:=m1 To(DownTo) m2 Do Оператор;

Здесь For (для), То(до), Do(делать) – служебные слова;

I – параметр цикла, (счётчик цикла);

m1, m2 – соответственно начальное и конечное значение параметра цикла;

Оператор – любой простой или составной оператор.

Циклическая часть программы выполняется для каждого значения i от его начального m1 до конечного m2 включительно.

В качестве параметра цикла, из уже изученых типов могут использоваться только переменные типа Integer или Char. В качестве m1, m2 могут использоваться любые выражения того же типа, что и счётчик цикла.

Чаще всего параметр цикла – переменная целого типа, а шаг ее изменения равен +1 или –1.

Если значение параметра возрастает (шаг=+1), то используется служебное слово То, если убывает (шаг=-1), используется слово DownTo.

Например оператор

For i:= 1 To 10 Do Write(i);

Означает, что для всех значений i от 1 до 10 выводятся на экран значение i.

Замечание: Параметр цикла не должен переопределяться внутри цикла.

  1. Примеры пролграмм с использованием оператора цикла с параметром

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

Пример 1.

Program cikl4;

Var x,y,i:Integer;

Begin

   X:=2;

   For i:=1 To 5 Do

         Begin

                Y:=x*x;

                Writeln(x:3,y);

                X:=x+2;

                 End;

End.

Или возможен также другой вариант решения задачи:

Program cikl4;

Var x,y,i:Integer;

Begin

  For i:=1 To 5 Do

       Begin

                X:=2*i;

                Y:=Sqr(x);

                Writeln(x:3,y:5);

               End;

End.

Пример2

Вывести на экран все буквы латинского алфавита.

Так как все буквы латинского алфавита упорядочены, можно поступить следующим образом:

Program Cikl5;

Var c:Char;

Begin

  For c:=’a’ To ‘z’ Do Write(c);

  Writeln;

End.

  1. Тип

Тип в программировании – это множество, для которого оговорён некоторый набор операций над элементами – значениями, которые могут принимать переменные этого типа. Сами элементы множества называются объектами или значениями данного типа.

Типы real, integer – это числовые множества. Вместе с ними рассматривают соответствующие арифметические операции. Тип char – это множество символов. Вместе с ними рассматривают функции, для работы с символами. Тип Boolean – множество, состоящее их двух элементов: True, False. Для него определены соответствующие логические операции.

Эти четыре типа – стандартные типы Паскаля. В Паскале имеются средства, позволяющие определять, исходя из имеющихся типов, новые нестандартные типы. Мы остановимся сейчас на одном из этих средств.

  1. Одномерные массивы

В математике наряду со множеством часто рассматривают упорядоченные наборы чисел (например координаты точки в двумерном, трехмерном пространстве). Упорядоченные двойки, тройки и т.д. чисел в языке Паскаль удобно задавать с помощью массивов длины 2, 3 и т.д.

Массив – это упорядоченный набор однотипных элементов определенной длины. Каждый элемент массива имеет свой номер (индекс). К каждому элементу массива имеется прямой доступ. Это означает, что для того, чтобы обратиться к какому-либо элементу массива, нет нужды перебирать все его предыдущие элементы, нам достаточно указать номер этого элемента.

  1. Описание массивов

Описать массив можно двумя способами.

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

В разделе описания переменных мы можем описать массив следующим образом:

Var A:Array[n1..n2] Of базовый тип;

        Здесь А – название массива;

Array – служебное слово (англ. массив).

n1,n2- соответственно номер первого и последнего элемента массива.

Базовый тип – любой из уже изученных типов.

Количество элементов массива будет равно n2-n1+1.

Например, запись

Var Massiv:Array[1..20] Of Real;

означает что полученный массив будет состоять из 20 вещественных чисела, первое из которых будет иметь номер 1, последнее – 20. Наш массив будет иметь название Massiv.

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

Описание массива заключаеся в создании нового оригинального типа. Для того, чтобы программист мог создавать свои новые типы данных в Паскале существует раздел описания типов Type. Этот раздел находится между разделом описания констант и разделом описания переменных.

Type

<Имя типа>=Array[n1..n2]Of  Базовый тип;

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

Type

Mas=Array[10..19] Of  Integer;

Var B:Mas;

В данном случае мы сначала описали новый тип Mas – массив из десяти целых чисел с номерами от 10 до 19, затем описали переменную B типа Mas. Переменная В – переменная типа Mas.

Чтобы обратиться к какому либо элементу массива, необходимо указать имя массива и в квадратных скобках номер элемента. В[5], A[i] и т.д. Номером элемента может быть любое целочисленное выражение.

Замечание: номерами элементов могут быть не только выражения типа Integer, но так же и типа Char, перечисления и диапазоны.

  1. Ввод и вывод одномерных массивов

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

Для ввода массива с клавиатуры может быть использован цикл следующего вида: пусть у нас имеется массив с именем А, состоящий из n элементов, тогда:

For i:=1 To n Do Read(A[i]);

В этом случае, пользователь вводит через пробел n элементов массива.

Ввод данных в массив происходит следующим образом: сначала значение счётчика цикла равно 1; выполняется операция read (A[1]); после чего счётчик цикла становится равным 2; выполняется операция Read(A[2])… и т.д. до значения i=n включительно.

Для вывода массива на экран используется следующий цикл:

For i:=1 To n Do Write(A[i]);

Writeln;

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

  1. Обработка массива

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

Пример.

Пусть имеется массив М, состоящий из n элементов с номерами от 1 до n. Найти Сумму элементов массива, вывести ее на экран.

Sum:=0;

For i:=1 To n Do Sum:=Sum+M[i];

Writeln(‘Сумма элементов мапссива = ’ ,Sum);