Методические указания к лабораторной работе по курсу «Информатика» Основы алгоритмизации и программирования на языке Pascal

Вид материалаМетодические указания

Содержание


5.5 Оператор цикла с предусловием
Program primer1
5.6 Оператор цикла с постусловием
Repeat Until
Repeat ... Until
Program primer1
5.7 Решение задач «Операторы цикла»
6 Тип данных массив
6.1 Решение задач «Массивы»
Правила пользования электронным учебным пособием «Основы алгоритмизации и программирования»
Список использованных источников
Подобный материал:
1   2   3   4   5   6   7   8   9

5.5 Оператор цикла с предусловием


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

Данный оператор имеет следующую структуру:

While <условие> do <оператор>;

Здесь While, do - зарезервированные слова (пока [выполняется условие], делать);   <условие> - выражение логического типа; <оператор> - произвольный оператор Turbo Pascal.

Работает оператор следующим образом. Вначале вычисляется условие, если результат вычисления имеет значение ИСТИНА, то выполняется оператор в цикле, после чего вычисление выражения <условие> и его проверка повторяются. Если логическое выражение имеет значение ЛОЖЬ, оператор While прекращает свою работу.

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

Пример 1.

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



Program primer1;

Var i, a, s : integer;

Begin

  s := 0;

  Read (a);

  While a <> 0 do

    begin

      s := s + a;

      Read (a);

    end;

  Write ('Сумма элементов равна ', s);

End.



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


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

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

Repeat <тело_цикла> Until <условие>;

Здесь: Repeat, Until - зарезервированные слова (повторять до тех пор, пока не будет выполнено условие); <тело_цикла> - произвольная последовательность операторов Turbo Pascal; <условие> - выражение логического типа.

Оператор Repeat ... Until работает следующим образом. В начале выполняется тело цикла, после чего вычисляется логическое выражение следующее за словом Until, если результатом вычисления выражения является ЛОЖЬ, то операторы в теле цикла будут выполнены повторно. в противном случае, если логическое выражение имеет значение ИСТИНА, оператор цикла с постусловием прекратит свою работу.

Пример 1.

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



Program primer1;

Var i, a, s, x : integer;

Begin

  s := 0;

  x := 0;

  Repeat

    Read (a);

    s := s + a;

    x := x + 1;

  Until a = 100;

  s := s / x;

  Write ('среднее арифметическое: ', s);

End.

Обратите внимание, что в данном случае мы не использовали логические скобки, в операторе цикла с постусловием их заменяет пара Repeat ... Until.

5.7 Решение задач «Операторы цикла»


Оператор цикла с параметром
  1. Задано 10 целых чисел. Найти сумму не четных.
  2. Задано 15 целых чисел. Найти максимальное число из последовательности.
  3. Из чисел от 0 до 99 вывести те, которые равны трем.
  4. Задана переменная x целого типа. Вывести факториал xi.
  5. Задано 20 целых чисел и число x. Найти разницу для каждого элемента и x.

Оператор цикла с условием
  1. Дана последовательность целых чисел, которая заканчивается нолем. Найти разницу между минимальным и максимальным элементами последовательности.
  2. Задана последовательность вещественных значений последнее значение отрицательное число. Определить сумму элементов последовательности, которые входят в промежуток от 10 до 100.

 

6 ТИП ДАННЫХ МАССИВ



Рассмотренные выше простые типы данных позволяют работать с одиночными объектами. В Turbo Pascal могут использоваться также объекты, содержащие множество однотипных элементов. Массив - это формальное объединение нескольких однотипных объектов, рассматриваемых как одно целое. К необходимости использования массива мы приходим всякий раз, когда требуется связать и неоднократно использовать в программе целый, ограниченный по количеству элементов, ряд родственных величин.

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

a : array [<тип индекса>] of <тип элементов>;

Здесь: a - имя переменной массива; array, of - зарезервированные слова (массив, из); <тип индекса> - любой упорядоченный тип, указывающий на кол-во элементов массива; <тип элементов> - тип данных элементов массива.

Зачастую для задания количества элементов массива используется тип-диапазон. Тип-диапазон задается левой и правой границами изменения индекса массива. Например:

Var

    a : array [1..10] of Integer;

    b : array [0..50] of Real;

    c : array [-3..4] of Integer;

Из примера мы видим, что массив A состоит из 10 элементов, массив B - из 51 элемента, а массив C - из 8 элементов.

В программе ко всему массиву одновременно обратиться нельзя, возможно обращение только к элементу массива. Доступ к элементу массива осуществляется с помощью задания его индекса - целого числа, служащего своеобразным именем элемента в массиве. При упоминании в программе любого элемента массива сразу за именем массива должен следовать индекс элемента в квадратных скобках: a[1], b[0], c[-3].

В правильно составленной программе индекс не должен выходить за пределы, определенные типом диапазон. Так для тех же массивов A, B, C ошибочными будут обращения a[11], b[-1], c[5].

Для иллюстрации работы данного типа рассмотрим несколько примеров.

Пример 1.

Задана последовательность из 10 целых чисел. Вычислить отклонение от среднего арифметического для каждого элемента последовательности.



Program p1;

Var

     s, i : Integer;

     sr, a : Real;

     b : array [1..10] of Integer;

Begin

  s := 0;

  For i := 1 to 10 do

    begin

     Read (b[ i ]);

     s := s + b[ i ];

    end;

  sr := s / 10;

  For i := 1 to 10 do

    begin

    a := abs (sr - b[ i ]);

    Write (a : 5 : 1);

    end;

End.

 

Пример 2.

Задана последовательность из 10 целых чисел. Распечатать их в обратном порядке.



Program p2;

Var

     i : Integer;

     a : array [-3..6] of Integer;

Begin

  For i := -3 to 6 do

    Read (a[ i ]);

  For i := 6 downto -3 do

    Write (a[ i ] : 4);

End.


Пример 3.

Задана последовательность из 10 целых чисел. Вывести номер тех, которые больше среднего арифметического.



Program p3;

Var

     s, i : Integer;

     sr : Real;

     c : array [1..10] of Integer;

Begin

  s := 0;

  For i := 1 to 10 do

    begin

     Read (c[ i ]);

     s := s + c[ i ];

    end;

  sr := s / 10;

  For i := 1 to 10 do

    If c[ i ] > sr then

                      Write (i : 4);

End.



6.1 Решение задач «Массивы»

  1. Задано 10 целых чисел. Напечатать сначала все отрицательные, затем все остальные.
  2. Задано 10 целых чисел. Найти отклонение каждого из них от максимального.
  3. Дано 10 вещественных чисел. Определить количество элементов, которые меньше последнего.
  4. Задана последовательность из 10 целых чисел. Вывести на экран сначала четные, затем все остальные.
  5. Дано 15 целых чисел. Вывести только те, которые меньше среднего арифметического.
  6. Задана последовательность из 15 целых чисел. Заменить нулями те числа, которые превосходят минимальное больше чем на 100.
  7. Дана последовательность из 16 целых чисел. вывести на экран числа в следующем порядке:

a[1], a[16], a[2], a[15], a[3], a[14], a[4], a[13], a[5], a[12], a[6], а[11], a[7], a[10], a[8], a[9].
  1. Дана последовательность из 16 целых чисел. вывести на экран числа в следующем порядке:

a[8], a[7], a[6], a[5], a[4], a[3], a[2], a[1], a[9], a[10], a[11], а[12], a[13], a[14], a[15], a[16].
  1. Дано 10 вещественных чисел. Вывести сначала те, которые стоят на не четных местах, затем все остальные.
  2. Задана последовательность из 10 целых чисел. Для каждого элемента начиная со второго найти разницу с предыдущим элементом (ai - ai - 1)



Правила пользования электронным учебным пособием «Основы алгоритмизации и программирования»



Для установки учебного пособия необходимо распоковать SFX-архив.

Также, если это необходимо, установить bde и K-lite Codec Pack.

Доступ ко всем основным разделам и подразделам пособия осуществляется через главное меню программы. Подводя курсор мыши к соответствующему пункту, можно выбрать его двойным кликом. Кроме теоретической информации каждый раздел содержит практические задания по выбранной тематике. Например, в разделе «Правила записи выражений на языке Pascal» описаны основные положения по этому вопросу и имеется возможность выполнить задания на запись математических выражений и функций на языке Pascal. Для этого необходимо просто выбрать соответствующий пункт в меню «Задание «Запись арифметических выражений» или «Задание «запись функций». При выборе того или иного пункта, на экране появиться окно ввода выражений либо функций. Необходимо в соответствующую позицию ввести заданное выражение и нажать ОК. При этом фиксируется правильность выполнения задания и общее количество правильных ответов. Аналогично следует выполнять задания и по другим представленным тематикам.

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

Список использованных источников


 
  1. Милюков И.В. «Основы алгоритмизации и программирования», Электронное учебное пособие, Профессиональный лицей № 92, г. Челябинск, 2006 г.
  2. Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль. – Томск: МП «РАСКО», 1991. – 272 с.
  3. Абрамов В.Г., Трифонов М.П., Трифонова Г.Н. Введение в язык Паскаль. – М.: Наука, 1988. – 320 с.
  4. Фигурнов В.Э. IBM PC для пользователя. Изд. 5-е, исправл. и доп. – Уфа, ПК «Дегтярев и сын», НПО «Информатика и компьютеры», 1993. –352 с.
  5. Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0. – М.: «ДИФЛОГ-МИФИ», 1993. – 288 с.
  6. Оузьер Дэн и др. Delphi 3. Освой самостоятельно. Пер. с англ. – М.: «Издательство БИНОМ», 1998 г. – 560 с.: ил.
  7. Фаненштих Клаус, Хаселир Райнер. Текстовый процессор Word 6.0 для Windows. – Изд. 2-е, исправл. и доп.: Практ. Пособ./ Пер. с нем. – М.: ЭКОМ., 1995. – 352 с.



Основы алгоритмизации и программирования на языке Pascal


Методические указания


Составители: Эмилия Дмитриевна Иванчина

Елена Николаевна Ивашкина