Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Паскаль / Методические разработки Turbo Pascal

.pdf
Скачиваний:
19
Добавлен:
28.03.2015
Размер:
517.8 Кб
Скачать

При выполнении этого фрагмента переменная Y получит значение переменной Х, если это значение не превышает Z, в противном случае Y станет равно Z.

Часть ELSE ST2 может быть опущена. Тогда при значении TRUE условного выражения выполняется оператор ST1, в противном случае этот оператор пропускается:

В этом примере переменная Y всегда будет иметь значение переменной Х, а в MAX запоминается максимальное значение Х. Такую форму оператора IF называют сокращенной.

Пример 1. Значения переменных a, b и с - целые числа. Определить наибольшее из них. Рассмотрим три способа решения этой задачи.

1 способ.

Если a>b, то max ищется среди а и с, в противном случае - среди b и с (см. рисунок 2).

Рисунок 2 Блок-схема алгоритма решения задачи 1-м способом

2 способ.

Предварительно за max принимается большее из а и b, но если окажется, что с превышает принятую величину max, то последняя заменяется на с ( рисунок 3).

Рисунок 3. Блок-схема алгоритма решения задачи 2-м способом

3 способ.

Можно в качестве начального максимального значения max принять сначала любую из исходных величин (например, первую). Затем, если среди остальных величин будут встречаться величины, превышающие текущее значение max, заменять текущее значение max новым.

Рисунок 4. Блок-схема алгоритма решения задачи 3-м способом.

6 Методические рекомендации

При составлении программы следует использовать оператор READLN для ввода значений переменных a, b, c; следует ввести (и описать) переменную для обозначения искомого наибольшего (или наименьшего) значения (например, max или min). При решении задачи можно воспользоваться одним из способов, описанных в примере 1 п. 5.3. При выполнении задания п. 3.3, для проверки условия использовать оператор IF с логическим выражением, в котором используется операция AND.

7.Контрольные вопросы

7.1Что понимают под алгоритмом ветвления?

7.2Привести примеры случаев ветвления.

7.3Как обозначается ветвление в блок-схемах?

7.4Какие операторы ветвления существуют в языке Turbo Pascal?

7.5Какой формат имеет оператор IF?

7.6Какие различия между полной и сокращенной формой оператора IF?

 

Приложение

 

 

Номер

 

варианта

Искомое значение

 

 

 

1

max (a+b+c, abc, a-b)

 

2

min (a+2b, b+3c, c)

 

3

2

 

min (2a-b, c , b+c)

4

max (a/c, b+c, 5c)

 

5

min (3a, a+b+7c, 8c)

 

6

max (5a+7b, b-c, 3c)

 

7

2

 

min (a , a+2b-c, c)

8

max (a+b+c, 3a+8, a+7c)

 

9

min (ab, ac, bc)

 

10

2

 

max (a, a -b, ac)

11

min (a+7, b-4, 3c)

 

12

max (ab, b+5, ac)

 

13

min (a+2b, b-c, a+c)

 

14

2

 

max (4a, a +c, b+c)

15

min (a-b, a-c, b-c)

 

Библиография

1.Информатика. Базовый курс / Симонович С.В. и др.- СПб: Питер, 2000. - 640 с.

2.Семашко Г.Л., Салтыков А.И. Программирование на языке Паскаль - М.: Наука, 1998. - 128 с.

3.Фаронов В.В. Турбо Паскаль 7.0 - М.: Нолидж, 2000. - 576 с.

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

PASCAL

Часть 3

Операторы цикла языка PASCAL

1 Цель работы

Изучить операторы цикла языка PASCAL.

2 Задачи работы

Научиться работать с алгоритмами циклической структуры на языке PASCAL.

3 Порядок выполнения работы

3.1С использованием оператора цикла For cоставить и отладить программу для решения следующей задачи: Дано действительное число x. Вычислить сумму зависящего от x ряда в соответствии с указанным преподавателем вариантом приложения А.

3.2Провести вычисления для x=1, x=1.5, x=2.

3.3Решить поставленную в пункте 3.1 задачу с использованием цикла While (для нечетных номеров вариантов) или с использованием оператора цикла Repeat (для четных номеров вариантов). Провести

численные вычисления и сравнить полученные результаты с результатами пункта 3.2.

4 Требования к отчету

Отчет по работе должен содержать: -название, цель работы;

-номер варианта для выполнения задания и условие своего варианта; -блок-схему решения задачи; -текст (листинг) программы;

-полученные при расчетах численные результаты; -ответы на контрольные вопросы по указанию преподавателя.

5 Общие положения

5.1 Алгоритмы циклической структуры

Применительно к алгоритмическому языку циклом можно назвать повторение последовательности действий. При этом данные повторяющиеся действия составляют так называемое тело цикла. Условие прекращения повторений называется условием конца цикла.

С точки зрения программирования, цикл - повторяющиеся фрагменты программ. В языке Pascal имеются три различных оператора, служащих для программирования циклов: цикл с параметром For…to…Do, цикл с предпроверкой условия прекращения повторений While…Do и цикл с постпроверкой условия прекращения повторений Repeat…Until.

5.2 Оператор цикла с параметром

Блок-схема, соответствующая циклу с параметром, представлена на рис. 1.

Здесь i параметр цикла; i0 начальное значение параметра; iT конечное значение параметра; iS шаг приращения параметра (в случае языка Pascal +1 либо –1).

Циклическая ветвь блок-схемы выполняется для всех i, начиная с i0 и кончая iT с шагом iS (т.е. для i0 , i0+iS , i0+2iS , i0+3iS , … ). Как только i выйдет за пределы интервала [i0 ,iT], повторения прерываются и программа выходит из цикла.

Пример. Вычислить функцию f=x+e -x виде.
Возможный текст программы:

Рис. 1 Блок-схема цикла с параметром

Оператор цикла с параметром на языке Pascal имеет следующий формат:

For i:=i0 to iT do <оператор>

Здесь For, to, do зарезервированные слова для», «до», «выполнить»);

i (параметр цикла) - переменная типа INTEGER (точнее, в общем случае, любого порядкового типа); i0 (начальное значение) и iT (конечное значение параметра) – константы или выражения того же типа;

<оператор> - произвольный оператор языка Pascal (тело цикла). В качестве оператора может выступать расширенный оператор с операторными скобками begin…end.

Шаг приращения параметра при этом постоянен и равняется +1.

При выполнении оператора For вначале вычисляется выражение i0 и выполняется присваивание i:=i0 . После этого циклически повторяется:

- проверка условия i<= iT ; если условие не выполнено, то оператор For прекращает свою работу; -выполнение тела цикла <оператор>; -наращивание переменной цикла на единицу.

Если условие не выполняется в самом начале работы оператора For, то исполняемый оператор не будет выполнен ни разу.

Существует и другая форма записи оператора For, при которой шаг приращения параметра принимает значение –1. В этом случае оператор For будет иметь следующий вид:

For i:=i0 downto iT do <оператор>

при х=0, 1, 2, …, 10 и распечатать полученные значения в табличном

5.3 Цикл с предпроверкой условия

Оператор цикла с предпроверкой условия While…Do схематично представлен в виде блок-схемы на рис.2 и имеет следующий формат:

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

Здесь While, Do зарезервированные слова Пока [выполняется условие]», «делать»); <условие> - выражение логического типа;

<оператор> - произвольный оператор, составляющий тело цикла (включая случай расширенного оператора). Если условие имеет значение Истинно” (True), то выполняется <оператор>, после чего проверка условия повторяется. Если условие имеет значение Ложь” (False), то оператор While прекращает свою работу.

Рис.2 Блок-схема цикла с предпроверкой условия

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

Пример. Дан бесконечный ряд вида

Найти сумму данного бесконечного ряда с заданной точностью e=0.01, т.е. продолжать процесс суммирования до тех пор, пока модуль разности между суммами для k-го и (k+1)-го шага не станет меньше e.

5.4 Цикл с постпроверкой условия

Оператор цикла с постпроверкой условия имеет следующий формат: Repeat <тело цикла> Until <условие>

Здесь Repeat, Until зарезервированные слова Повторять», «пока не [выполнится условие]»); <тело цикла> - произвольная последовательность операторов; <условие> - выражение логического типа.

Операторы тела цикла всегда выполняются хотя бы один раз, после чего вычисляется значение <условие>: если его значение ложно (FALSE), операторы тела цикла повторяются, в противном случае оператор Repeat завершает свою работу.

Блок-схема данного оператора представлена на рис. 3.

Рис. 3 Блок-схема цикла с постпроверкой условия

Пример. Дано натуральное число N>10. Найти первую цифру даного числа.

6 Методические указания к выполнению работы

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

cos(x)+cos(2x)+cos(3x)+…+cos(7x)

общий вид слагаемого с номером k будет иметь вид cos(k*x), где k изменяется от 1 до 7.

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

Фрагмент программы нахождения указанной выше суммы ряда с помощью оператора FOR может иметь, например следующий вид:

s:=0;

for k:=1 to 7 do s:=s+cos(k*x); writeln(‘сумма =’, s);

end.

Спомощью оператора While:

s:=0;

k:=1;

while k<=7 do begin s:=s+cos(k*x); k:=k+1;

end;

writeln(‘сумма =’, s); end.

Спомощью оператора Repeat:

s:=0;

k:=1; repeat

s:=s+cos(k*x);

k:=k+1; until k>7;

writeln(‘сумма =’, s); end.

7 Контрольные вопросы

7.1Что называется циклом, телом цикла?

7.2Какие операторы цикла языка Pascal Вы знаете?

7.3Приведите известные Вам форматы оператора For.

7.4С каким шагом может изменяться параметр оператора For?

7.5Как можно рассчитать число шагов в операторе For?

7.6Поясните отличия в операторах цикла с предпроверкой и постпроверкой условий.

7.7Какой формат имеет оператор While?

7.8Приведите пример, когда тело цикла в операторе While не выполняется ни одного раза.

7.9Приведите формат оператора Repeat.

7.10Поясните, в каком случае прекращаются повторения в операторе Repeat.

БИБЛИОГРАФИЯ

1.Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. – М.: Нолидж. – 2000. – 576 с.

2.Зуев Е.А. Система программирования Turbo Pascal. – М.: Радио и связь. – 1992. – 288 с.

3.Рубенкинг Н. Турбо Паскаль для Windows.– М.: Мир. - 1994. – 535 с.

4.Информатика. Базовый курс. Учебник для вузов/Под ред. С.В.Симонович СПб: Питер.- 2000. – С.560 - 611.

5. Приложение А Варианты заданий для выполнения