Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЗ.doc
Скачиваний:
86
Добавлен:
09.02.2016
Размер:
782.34 Кб
Скачать

Лабораторная работа №3 Программирование алгоритмов разветвляющей структуры

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

  1. Что такое алгоритм разветвляющей структуры?

  2. Какие виды разветвления вы знаете?

  3. Когда используется оператор безусловного перехода?

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

  5. Когда используется оператор выбора?

  6. Из чего состоит оператор выбора (варианта)?

  7. Что такое метка?

Задачи:

  1. Составить программу вычисления функции при изменении аргументаx в интервале с шагомh=0,1.

  2. Написать программу вычисления функции , для которой. Значениеy изменяется в интервале с шагом.

  3. Написать программу вычисления пары функций z и y: , . Значение x изменяется в интервале с шагом.

  4. Составить программу вычисления и печати среднего арифметического положительных значений функции . Аргументx изменяется в интервале с шагом.

  5. Рассчитать и выдать на печать таблицу значений функции . Шаг аргумента 0,1.

  6. Найти минимальную ординату функции в интервале, с шагом 0,1 и зафиксировать ее абсциссу.

  7. Составить программу вычисления сумму функции . Шаг аргумента 0,1.

  8. Составить программу вычисления функции при изменении аргументаx в интервале , с шагом. Печатать те значенияy, которые удовлетворяют условию .

  9. Найти сумму тех членов последовательности , которое по абсолютной величине больше 0,5;x и h задать вводом.

  10. Вычислить .

Для с шагом 0,5.b=3,5: c=1,8.

  1. Вычислить . Значенияa произвольны.

  2. Составить программу вычисления функций ипри изменении аргументаx в интервале [1,5…2,5] с шагом 0,1. Найти сумму тех значений z, которые удовлетворяют условию z<1, и сумму значений y, которые удовлетворяют условию 1<y<3.

  3. Составить программу вычисления переменной z по одной из формул: . Значенияy рассчитываются по формуле дляс шагом 0,5.

  4. Вычислить . Параметрa изменяется в интервале [1..12] с шагом 1,0.

  5. Вычислить сумму значений функции , если известно, что аргументx в интервале [0..1] изменяется с шагом 0,1, а в интервале [1..2] с шагом 0,2.

  6. Для произвольных чисел a, b подсчитать и напечатать , где с наибольшее по абсолютной величине из чиселa и b.

  7. Найти все значения функции в промежуткес шагом 0,1.

  8. Для 10 произвольных значений x подсчитать сумму всех чисел меньше 2.

  9. Составить программу вычисления суммы значений функции y, которые удовлетворяют условию y>5z, где ,. Аргументx изменяется в интервале [1,5…3,5] с шагом h=0,1.

  10. Вычислить дляс шагомh=0,5.

Литературы:

Основная литература:

  1. Глушаков С.В. TURBOPASCALХарьков, «Фолио» 2002 г.-492 с.

  2. Епанешников А.М. TURBOPASCAL7.0 .М: «Диалог» 2002 г.-367 с.

  3. Манежный О.А. TURBOPASCALМ: «Диалектика» 2001г.-446 с.

  4. Климова Л.М. PASCAL7.0/ Практическое программирование. Решение типовых задач- М: «КУДИЦ-ОБРАЗ»,2002 г.-517 с.

  5. Немнюгин С.А. TURBO PASCAL 7.0/Учебник. С-П: 2001 г.-491 с.

  6. Калдыбаев С.У., Ахмедиярова А.Т. Курс лабораторных работ по программированию на языке Паскаль. Алматы,2003 г. 43 с.

  7. Рапаков Г.Г. TURBOPASCAL7.0 Учебный курс. М: 2002 г.-349 с.

Дополнительная литература:

  1. Епанешников В. Программирование в среде Турбо Паскаль 7.0. - М.: ДИАЛОГ-МИФИ, 1993. - 288 с.

  2. Матчо Дж., Культин Н. TURBOPASCALв задачах и примерах. Киев-2002 г.-256 с.

  3. Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка: Пер. с англ. - М.: Финансы и статистика, 1982. - 151 с.

  4. Пестриков В.М., Маслобоев А.М. TURBOPASCAL7.0 изучаем на примерах. М: 2002 г.-456 с.

  5. Форсайт Р. Паскаль для всех: Пер. с англ.- М.: Машиностроение, 1986. - 288 с.

  6. Фаронов В.В. TURBOPASCAL7.0/Практика программирования. Учебное пособие.С-П:-2003 г.-1033 с.

  7. Юркин А.Г. Задачник по программированию. С-П: «Питер»-2002 г.

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

На практике часто возникает необходимость в зависимости от значений исходных данных или промежуточных результатов осуществлять дальнейшие вычисления по двум или нескольким вычислительным схемам. Такой вычислительный процесс называется разветвляющийся. При программирование в этом случае используется операторы переходов (условный –if, оператор выбораcaseи безусловный –gotoпередачи управления). Они позволяют выбрать для выполнения один из простых или составных операторов или не выбрать ни одного в зависимости от условия разветвления.

Условный оператор. Иногда требуется, чтобы часть программы выполнялась не всегда, а лишь при выполнении некоторого условия (а при невыполнении этого условия выполнялась другая часть программы). В этом случае пользуются оператором условного выполнения, который записывается в следующем виде:

if <условие> then <оператор1> else <оператор2>;

Под оператором понимается либо одиночный оператор (например, присваивания, вызова процедуры), либо составной оператор, состоящий из нескольких простых операторов, помещённых между словами begin и end. Важно заметить, что перед else не ставится точка с запятой. Часть else может и отсутствовать.

Пример: пусть требуется найти число m=max(a,b). Этой задаче соответствует следующий фрагмент программы на Паскале:

if a>b then m:=a else m:=b;

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

Оператор выбора (case). Кроме оператора условного выполнения и циклов в Турбо Паскале имеется ещё одна управляющая конструкция, одно из названий которой — оператор выбора. На самом деле это усложнённый оператор if, он позволяет программе выполняться не двумя способами, в зависимости от выполнения условия, а несколькими, в зависимости от значения некоторого выражения. В общем виде этот оператор выглядит так:

case Выражение of

Вариант1: Оператор1;

Вариант2: Оператор2;

...

ВариантN: ОператорN;

[else ОператорN1;]

end;

Квадратные скобки означают то, что часть else может отсутствовать.

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

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

  2. Интервал, например: 1..5, 'a'..'z'.

  3. Список значений или интервалов, например: 1,3,5..8,10,12.

Выполняется оператор case следующим образом: вычисляется выражение после слова case и по порядку проверяется, подходит полученное значение под какой-либо вариант, или нет. Если подходит, то выполняется соответствующий этому варианту оператор, иначе — есть два варианта. Если в операторе case записана часть else, то выполняется оператор после else, если же этой части нет, то не происходит вообще ничего.

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

Каждая метка, которая представляет собой целое число без знака, должна быть объявлена в разделе объявления меток до того, как она появится в тексте программы. На Паскале они объявляется в разделе описания переменных (через запятую) label 1,2,3.

Метка – натуральное число от 1 до 9999. Метка должна быть описана в разделе описания меток.

Решение одного варианта: Написать программу вычисления функции , для которой. Значениеy изменяется в интервале с шагом.

Блок-схема:

Описание блок-схемы:

1-блок – начало алгоритма

2-блок – ввод начальное значение интервала y=0 и шаг

3-блок – проверка условий, если y<1 то происходит передача управление к 4-блоку, иначе выполняется 10-блок, т.е. конец алгоритма.

4-блок – проверка условий, если y>=0,5 то происходит передача управление к 6-блоку, иначе выполняется 5-блок

5-блок и 6-блок – вычисление значение функции x в зависимости от значения аргумента y

7-блок - вычисление значение функции z в зависимости от значения x

8-блок – печать полученного результата, значение z.

9-блок - нахождение следующего значения y. После нахождения следующего значения происходит передача управления к 3-блоку, т.е. проверяем, находится ли полученное значение в данной отрезке.

10-блок - конец алгоритма

Программа:

Program PRS;

Label 1;

Var z,x,y,h:real;

Begin

y:=0; h:=0.05;

1: if y<1 then begin

if y>=0.5 then x:=sqr(y)+y+1

else x:=y-1;

z:=2*x-7;

write (‘z=’,z);

y:=y+h; goto 1;

end;

end.