Скачиваний:
83
Добавлен:
10.02.2014
Размер:
271.36 Кб
Скачать

Центральный институт

непрерывного образования

(Общество «Знание» России)

БАЛАКОВСКИЙ ИНСТИТУТ

БИЗНЕСА И УПРАВЛЕНИЯ

Программирование алгоритмов разветвляющейся структуры на языке turbo pascal

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

для студентов специальностей:

220201. 65 - Управление и информатика в технических системах;

080507. 65 – Менеджмент организации;

080801. 65 – Прикладная информатика (в автомобилях и

автомобильном хозяйстве).

Одобрено

Редакционно-издательским советом

Балаковского Института

Бизнеса и Управления

Балаково 2007

Цель работы: овладение практическими навыками разработки алгоритмов и программ с разветвляющейся структурой.

Основные понятия

В языке Pascal имеются две реализации одной из основных алгоритмических структур – ветвления – условный оператор (if) и оператор выбора (case).

Условный оператор ifthenelse.

Условный оператор if служит для организации процесса вычислений в зависимости от какого-либо логического условия.

Оператор if может принимать имеет две формы записи (полную и короткую):

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

else <оператор2>;

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

В блок-схемах разветвленные алгоритмы изображаются так, как показано на рис.1.

Рис.1. Фрагменты алгоритма разветвленной структуры

Оператор условия if выполняется следующим образом. Сначала вычисляется выражение, записанное в условии. В результате его вычисления получается значе­ние булевского типа. В первом случае, если значение выражения есть True (истина), выполняется <оператор1>, указанный после слова then. Если результат вычисления выражения в условии есть False (ложь), то выполняется <оператор2>. Во втором случае — если результат выражения Тгuе, выполняется <оператор>, если False — выполняется оператор, следующий сразу за оператором if. По правилам каждая из ветвей может содержать либо один выполняемый оператор, либо несколько, объединенных в составной оператор. Точка с запятой перед else не ставится.

Операторы if могут быть вложенными. Формат записи:

if <условие1> then

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

else <оператор2>;

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

Составной оператор begin…end.

Составной оператор представляет собой группу из произвольного числа опера­торов, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками begin и end.

Формат:

begin

<оператор 1>;

<оператор 2>;

<оператор N>;

end;

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

Оператор выбора case…ofend.

Если один оператор if может обеспечить выбор из двух альтернатив, то оператор выбора case позволяет сделать выбор из произволь­ного числа имеющихся вариантов. Он состоит из выражения, называемого селекто­ром (selection — выбор альтернативы), и списка параметров, каждому из которых предшествует список констант выбора (список может состоять и из одной константы).

Формат:

case <выражение-селектор> of

<список1>: <оператор1>;

<список2>: <оператор2>;

<списокN>: <операторN>;

[else <оператор0>;]

end;

Здесь <выражение-селектор> - это выражение порядкового типа, в зависимости от значения которого принимается решение;

<список1>.. <списокN> - значения, с которыми сравнивается значение <селектора>;

<оператор1>,..., <операторN> - оператор (возможно составной), из которых выполняется тот, с константой которого происходит первое совпадение значения <селектора>, <оператор0> выполнится, если значение ключа не совпадает ни с одной из констант <список1>.. <списокN>.

Ветвь else не обязательна, и в отличие от оператора if, перед ней можно ставить точку с запятой. Если для нескольких значений <селектора> действия совпадают, то эти константы можно перечислить через запятую перед двоеточием или даже задать диапазон значений (нижняя граница .. верхняя граница).

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

Порядковый номер студента по списку группы соответствует номеру варианта. По заданию требуется:

        1. Определить порядок реализации вычислений.

        2. Составить графическую схему алгоритма.

        3. Записать программу на языке Turbo Pascal.

        4. Выполнить расчеты на ЭВМ.

        5. Написать отчет по лабораторной работе.

Пример выполнения работы

Задание1: Вычислить и вывести на экран значение заданной функции

,

где a = 15; b = 3.

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

Рис.2. Блок-схема алгоритма

Текст программы:

Program lab_21;

Const a = 15; b = 3;

Var f, x : real;

Begin

Writeln ( 'Введите x ’);

Read(x);

If x <= 0 then f : = a*x

else if (x>0) and (x<=5) then f : = b*ln(x)

else f : = 0;

Write( ' f = ’, f:8:3);

End.

Задание2: Вводится целое число, если оно от 0 до 9, то определить четное оно или нечетное, если введенное число попадает в диапазон от 10 до 100 выдать соответствующее сообщение и если не попадает тоже вывести сообщение.

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

Рис.3. Блок-схема алгоритма

Текст программы:

Program lab_22;

Var i:integer;

Begin

Write('Введите целое число i');

Readln(i);

Case i of

0,2,4,6,8 : writeln('Четная цифра');

1,3,5,7,9 : writeln('Нечетная цифра');

10..100 : writeln('Число от 10 до 100');

else writeln('Число либо отрицательное, либо > 100');

End;

End.

варианты заданий для оператора if

№ вар.

Функция

Условие

Исходные данные

1

2

3

4

1

1 ≤ t ≤ 2

t < 1

t > 2

a = - 0,5

b = 2

2

x < 1.3

x = 1.3

x > 1.3

a = 1.5

3

x < 1.2

x = 1.2

x > 1.2

a = 2.8

b = -0.3

c = 4

4

x < 1.4

x = 1.4

x > 1.4

a = 1.65

5

x < 1

x = 1

1< x< 2

x > 2

a = 2.3

1

2

3

4

6

x < a

x = a

x > a

a = 2.5

7

bx < 1

bx = 1

bx > 1

b = 1.5

8

x > 3.5

x ≤ 3.5

__

9

x > 1

x ≤ 1

a = 20.3

10

x < 0.5

x = 0.5

x > 0.5

t = 2.2

11

x < 2.8

2.8 ≤x< 6

x ≥ 6

a = 2.6

b = -0.39

12

x > 1

x ≤ 1

a = 0.9

1

2

3

4

13

i < 4

4 ≤i≤ 6

i > 6

a = 2.1

b = 1.8

c = -20.5

14

≥0

≤0

a = 0.3

n = 10

15

x ≤ 2

2 <x< 5

x ≥ 5

__

16

x > 0

x < 0

x = 0

__

17

y ≠ 0

y = 0

x = 0.5

18

x < -1

-1 ≤x≤ 1

x > 1

__

19

t < 0.1

t = 0.1

t > 0.1

a = 2.5

b = 0.4

1

2

3

4

20

>0

<0

c = 0.5

n = 10

21

x<4

x=4

x>4

__

22

x<0

x0

b=0.25

23

x<0

x0

c=0.3

24

x<2

x=2

x>2

__

25

x<1

x=1

x>1

__

26

x0

0<x1

x>1

__

1

2

3

4

27

x<3

x3

__

28

x0

0<x1

x>1

b = 2

29

x  -

x > -

__

30

x-1

-1<x1

x>1

__

варианты заданий для оператора case

  1. В зависимости от того введена ли открытая скобка или закрытая, напечатать "открытая круглая скобка" или "закрытая фигурная скобка". (Учитывать круглые, квадратные, фигурные скобки).

  2. В зависимости от введённого символа L, S, V программа должна вычислять длину окружности; площадь круга; объём цилиндра.

  3. Определить, является ли введенная буква русского алфавита гласной.

  4. Напишите программу, которая по введенному числу из промежутка 0..24, определяет время суток.

  5. Пусть имеются данные об автомобилях четырех моделей. Как входное данное ввести номер модели и получить характеристики: год выпуска и цену.

  6. Ввести первую букву названия страны. Вывести название ее столицы.

  7. Ввести телефонный код города. Вывести название города.

  8. Дано целое число в диапазоне 1–7. Вывести строку — название дня недели, соответствующее данному числу (1 — «понедельник», 2 — «вторник» и т. д.).

  9. Вычислить значение функции по одной из формул (x  0):

  1. Ввести число от 0 до 5. Вывести его название на английском (или другом) языке.

  2. Пусть время суток обозначено номерами: 1 – утро, 2 – день, 3 – вечер. Билет в кино на утренний сеанс стоит 50 р., на дневной сеанс – 70 р., а на вечерний – 100 р. Какова выручка кинотеатра в одно из время суток, если в кино пришло n посетителей.

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

  4. Элементы окружности пронумерованы следующим образом: 1 — радиус R, 2 — диаметр D = 2·R, 3 — длина L = 2··R, 4 — площадь круга S = ·R2. Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данной окружности.

  5. Дано целое число K. Вывести строку-описание оценки, соответствующей числу K (1 — «плохо», 2 — «неудовлетворительно», 3 — «удовлетворительно», 4 — «хорошо», 5 — «отлично»). Если K не лежит в диапазоне 1–5, то вывести строку «ошибка».

  6. Дан номер месяца — целое число в диапазоне 1–12 (1 — январь, 2 — февраль и т. д.). Вывести название соответствующего времени года («зима», «весна», «лето», «осень»).

  7. Пусть время суток обозначено номерами: 1 – утро, 2 – день, 3 – вечер. Билет в кино на утренний сеанс стоит (детский – 25 р., взрослый – 70 р.), на дневной сеанс (детский – 50 р., взрослый – 100 р.), а на вечерний (детский – 70 р., взрослый – 100 р.). Какова выручка кинотеатра в одно из время суток, если в кино пришло n детей и m взрослых.

  8. Робот может перемещаться в четырех направлениях («С» — север, «З» — запад, «Ю» — юг, «В» — восток) и принимать три цифровые команды: 0 — продолжать движение, 1 — поворот налево, –1 — поворот направо. Дан символ C — исходное направление робота и целое число N — посланная ему команда. Вывести направление робота после выполнения полученной команды.

  9. Дан номер месяца — целое число в диапазоне 1–12 (1 — январь, 2 — февраль и т. д.). Определить количество дней в этом месяце для невисокосного года.

  10. Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление. Дан номер действия N (целое число в диапазоне 1–4) и вещественные числа A и B (B не равно 0). Выполнить над числами указанное действие и вывести результат.

  11. Элементы равнобедренного прямоугольного треугольника пронумерованы следующим образом: 1 — катет a, 2 — гипотенуза c = a·(2)1/2, 3 — высота h, опущенная на гипотенузу (h = c/2), 4 — площадь S = c·h/2. Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника.

  12. Единицы длины пронумерованы следующим образом: 1 — дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр. Дан номер единицы длины (целое число в диапазоне 1–5) и длина отрезка в этих единицах (вещественное число). Найти длину отрезка в метрах.

  13. Элементы равностороннего треугольника пронумерованы следующим образом: 1 — сторона a, 2 — радиус R1 вписанной окружности (R1 = a·(3)1/2/6), 3 — радиус R2 описанной окружности (R2 = 2·R1), 4 — площадь S = a2·(3)1/2/4. Дан номер одного из этих элементов и его значение. Вывести значения остальных элементов данного треугольника.

  14. Единицы массы пронумерованы следующим образом: 1 — килограмм, 2 — миллиграмм, 3 — грамм, 4 — тонна, 5 — центнер. Дан номер единицы массы (целое число в диапазоне 1–5) и масса тела в этих единицах (вещественное число). Найти массу тела в килограммах.

  15. Пусть населенные пункты обозначены номерами от 1 до 8. стоимость одного билета к пункту k определяется так:

Сколько стоит m билетов к населенному пункту, номер которого пользователь должен ввести с клавиатуры?

  1. Вводится целое положительное число. Определить четное оно или нет.

  2. Для целого числа N от 20 до 30 напечатать фразу "Мне N лет", учитывая при этом, что при некоторых значениях N слово "лет" надо заменить на слово "год" или "года".

  3. Напечатать слово СТУДЕНТ в заданном падеже (И - именитель­ный, Р - родительный, Д - дательный, В - винительный, Т - твори­тельный, П - предложный) единственного числа.

  4. Для целого числа N от 1 до 8 напечатать фразу "Мы нашли N грибов", согласовав окончание слова "гриб".

  5. Вычислить значение функции по одной из формул (x  0):

  1. Мастям игральных карт присвоены порядковые номера: 1 — пики, 2 — трефы, 3 — бубны, 4 — червы. Достоинству карт, старших десятки, присвоены номера: 11 — валет, 12 — дама, 13 — король, 14 — туз. Даны два целых числа: N — достоинство (6  N  14) и M — масть карты (1  M  4). Вывести название соответствующей карты вида «шестерка бубен», «дама червей», «туз треф» и т. п.

СОДЕРЖАНИЕ И ОФОРМЛЕИНЕ ОТЧЕТА

ПО ЛАБОРАТОРНОЙ РАБОТЕ

Отчет оформляется в текстовом редакторе MS Word в формате А4 и должен содержать:

  1. Название лабораторной работы.

  2. Цель работы.

  3. Задание.

  4. Графическую схему алгоритма с учетом требований ГОСТ 19.701-90.

  5. Программу на алгоритмическом языке Turbo Pascal.

  6. Результаты выполнения работы.

  7. Проверку в математическом редакторе Mathcad.

ВОПРОСЫ для самоконтроля

  1. Какие виды ветвлений реализованы в Turbo Pascal?

  2. Для чего используются ветвления? Приведите примеры.

  3. Две формы записи условного оператора If.

  4. Формат записи вложенного оператора If.

  5. Формат записи оператора выбора Case?

  6. В каких случаях используется составной оператор Begin…end?

  7. Как в блок-схемах изображаются разветвленные алгоритмы?

ВРЕМЯ, ОТВЕДЕННОЕ НА выполнение

ЛАБОРАТОРНОЙ РАБОТЫ

Подготовка к работе – 1,0 акад. часа.

Выполнение работы – 1,0 акад. часа.

Расчеты на ЭВМ – 0,5 акад. часа.

Оформление работы – 0,5 акад. часа.

ЛИТЕРАТУРА

  1. Алексеев Е.Р. Turbo Pascal 7.0. Численные методы. – М.: АСТ, 2004.

  2. Гусева А.И. Учимся программировать: Pascal 7.0. Задачи и методы их решения. – М.: Диалог-МИФИ, 1997.

  3. Емелина Е.И. Основы программирования на языке Паскаль. – М.: Финансы и статистика, 1997.

  4. Немнюгин С.А. Turbo Pascal. – СПб.: Питер, 2001.

  5. Попов В.Б. Turbo Pascal для школьников. - М.: Финансы и статистика, 2001.

  6. ГОСТ 19.701-90. Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения.