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

Программирование в среде Turbo Pascal 7.0. В 3 ч. Ч. 2. Программирование типовых алгоритмов

.pdf
Скачиваний:
0
Добавлен:
29.11.2025
Размер:
2.18 Mб
Скачать

Задание на лабораторную работу

Объявить в программе константы и переменные для одного из вариантов значений из табл. 1.1 и 1.2.

Таблица 1.1

Значения констант и переменных интервального и перечислимого типов

 

Типизированная

Диапазон

Константа

значений

вар.

 

константа

переменной

 

 

 

1

Студент

–1,1

–15...55

 

 

 

 

2

Группа

2,2

12...53

 

 

 

 

3

ФГДЭ

–3,33

–99...11

 

 

 

 

4

Сессия

4,51

‘a’...’t’

5

Зачет

–5,18

‘б’...’ф’

6

Экзамен

6,37

66...87

7

Alpha

–7,77

‘г’...’ю’

8

Beta

8,39

13...27

9

Gamma

121

47...89

10

13,5

–13

‘д’…’я’

 

 

 

 

11

–123

0,0032

–50…50

 

 

 

 

12

5,67

–16,17

98…106

 

 

 

 

13

1000

18,96

‘p’...’z’

14

–0,00456

19,9

–3...44

 

 

 

 

15

12,8

–65

–27...37

 

 

 

 

Возможные

значения

переменной Idn1, Idn2, Idn3

Elem1, elem2, elem3

Zima, Vesna,

Leto, Osen Kot, dog, mouse Sm1, sm2, sm3 Elm1, elm2, elm3 Zima, vesna, leto Slon, lev, kot Al1, bet2, gam3

Razn1, Razn 2, Razn3, Razn4

Vesna, Leto,

Zima, Osen

Obj1, Obj2,

Obj3, Obj4

Kol, Kol1, Kol 2

Str0, Str1, Str2,

Str3, Str4

Per1, Per2, Per3

10

Таблица 1.2

Значения переменных

I

j

k

x

y

b1

ch

s

вар.

 

66

 

 

 

 

 

 

1

–123

71426

0,0032

–6,28

TRUE

Й

Alpha

2

–133

19

53678

–16,17

–999,77

FALSE

Ц

Beta

3

30246

–3456

69147

18,96

1234,56

TRUE

Н

Gamma

4

254

555

–6895

19,9

17,865

FALSE

Г

ГОРНЫЕ

5

107

–127

127

–7,77

56,432

TRUE

Ш

Машины

6

53678

71426

–127

8,39

0,0032

FALSE

Щ

Торф

7

69147

254

555

0,326

–16,17

TRUE

З

Порода

8

–6895

30246

–3456

–11,22

18,96

FALSE

Д

Минерал

9

71426

254

19

638,927

19,9

TRUE

Ж

Допуск

10

127

107

254

3,14

–7,77

FALSE

Э

Студент

11

–127

53678

107

–6,28

8,39

TRUE

Л

Группа

12

555

–133

53678

–999,77

0,326

FALSE

Ы

ФГДЭ

13

–3456

254

–123

1234,56

–11,22

TRUE

Ф

Сессия

14

19

–6895

–133

17,865

638,927

FALSE

Я

Зачет

15

66

–123

30246

56,432

3,14

TRUE

Ч

Экзамен

Присвоить им значения по варианту задания.

Используя взаимное переприсваивание, исследовать совместимость переменных разных типов. Если типы не совместимы, заключить эту строку программы в фигурные скобки (закомментировать), добавив напротив оператора присваивания примечание – несовместимы:

{ p:= x; несовместимы}.

Содержание отчета

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

2.Вариант задания на лабораторную работу.

3.Распечатка текста программы.

4.Выводы (о совместимости типов).

11

Лабораторная работа № 2

ВВОД-ВЫВОД ДАННЫХ

Цель работы: практически освоить процедуры ввода-вывода данных.

Вводная информация

Обмен данными с внешними файлами

ипериферийными устройствами

Вобмене данными в Паскале участвуют источник, канал переда-

чи и приемник. При вводе данных источником является файл, а приемником – ОЗУ. При выводе, наоборот, данные из ОЗУ пересылаются в файл. Под файлом понимается внешний (создаваемый вне программы) файл данных на каком-либо носителе или аппаратное устройство, имеющее в Турбо-системе статус файла (клавиатура, дисплей, принтер, параллельные и последовательные порты, фиктивное устройство).

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

Содержимое таких файлов можно просматривать в окне редактора Турбо-системы Edit как обычный текст, поэтому текстовые файлы удобно использовать для вывода в них результатов работы Паскаль-программы.

Формат описания текстового файла в разделе описаний программы:

Var имя_файла: text;

Пример описания текстового файла:

Var

fp: text; {здесь fp – файловая переменная (логическое имя файла)}

12

В программном блоке необходимо выполнить процедуру связывания логического имени файла с физическим файлом на диске:

BEGIN

Assign (fp, ‘E:\ 102812\ Rez1. pas’); {связывание файла с логиче-

ским именем fp с физическим файлом на диске с полным именем ‘E:\102812\ Rez.pas}

…………………………………………

…………………………………………

END.

После выполнения процедуры Assign все операции, предписанные в Паскаль-программе файлу с логическим именем fp, будут выполняться над физическим файлом Rez.pas.

Типовые операции над текстовым файлом с логическим именем fp: Reset (fp) – открытие текстового файла с логическим именем fp (физического файла Rez1.pas) для чтения из него данных, начиная

с начала первой строки.

Read (fp, y1, y2, …, yn) чтение данных из открытого файла fp, прочитанные значения последовательно присваиваются переменным y1, y2, …, yn списка ввода без перехода в начало следующей строки.

Readln (fp, список_ввода) – то же, что и в предыдущем случае, но после чтение данных выполняется переход на новую строку (следующая процедура ввода будет вводить данные из новой строки).

Readln (fp); переход в начало новой строки в файле без чтения данных.

Rewrite (fp); – открытие файла fp для перезаписи в него с начала первой стоки, предыдущие данные стираются.

Append (fp); открытие ранее созданного текстового файла fp для дозаписи данных в конец файла, предыдущие данные сохраняются.

Write (fp, x1, x2, … xn); запись в текстовый файл fp значений переменных x1, x2, … xn списка вывода без перехода в начало следующей строки.

Writeln (fp, список_вывода); то же, что и в предыдущем случае, но с завершением записи в текущую строку и переходом в начало новой строки.

13

Writeln (fp); – переход в начало новой строки без записи данных (создание «пустой» строки в текстовом файле.

Close (fp); – закрытие файла).

Ввод данных с клавиатуры

Если в процедурах Read или Readln зывается логическое имя файла, то в Турбо-системе, файлом-источником можны три варианта записи:

перед списком ввода не укапо умолчанию, принятому является клавиатура. Воз-

Read (список_переменных); каждое вводимое с клавиатуры значение последовательно присваивается переменным, имена которых перечислены в списке ввода.

Readln (список_переменных); то же, но после ввода выполняется переход на новую строку на дисплее.

Readln; переход на новую строку без ввода данных. Примечание. При выполнении процедур Read или Readln Турбо-

система переходит в режим ожидания ввода данных (окно с черным цветом фона) и остается в нем до момента ввода последнего значения. Поэтому перед использованием этих процедур следует выводить на дисплей текстовую подсказку пользователю – в какой последовательности вводить значения переменных:

Write (‘Введите x, y, z’); {Вывод на дисплей строки «Введите x, y, z»}

Readln (x, y, z); {Присваивание вводимых значений переменным x, y, z}

В качестве разделителя вводимых значений используются:

при вводе значений в одной строке – один или несколько пробелов;

при вводе значений по-отдельности – признак конца строки (нажатие клавиши Enter).

Вывод данных на дисплей и в текстовый файл

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

14

символьные последовательности, заключенные в апострофы, либо их комбинация. В качестве разделителя элементов списка вывода используется символ «запятая»:

Writeln (‘Исходные данные:’); {Элемент списка – текст в апострофах}

Writeln (‘x =’, x, ‘y =’, y, ‘z =’, z); {Элементы списка – текст и имена переменных}

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

При использовании в списке вывода имен переменных без указания формата значения переменных выводятся с плавающей десятичной точкой. Количество позиций для вывода значений переменных устанавливается Турбо-системой по умолчанию.

Для форматного вывода значений переменных используются форматы:

P:M, где P – имя переменной; M – целое число, задающее количество позиций для вывода значения P;

P:M:N, где P – имя переменной; M – общее число позиций для вывода значения P, включая знак числа, десятичную точку и дробную часть;

N – целое число, задающее количество позиций для вывода дробной части.

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

Writeln (‘ x =’, x:5:2, ‘ y =’, y:7:3, ‘ z =’, z:7);

Обычно формат P:M используется для вывода целых чисел, при этом избыточные позиции заменяются символами пробела перед числом. При использовании этого формата для вывода вещественных чисел по умолчанию реализуется представление числа с плавающей десятичной точкой.

При выводе вещественных чисел по формату P:M:N избыточные позиции в целой части заменяются символами пробела перед числом, а избыточные позиции в дробной части заполняются нулями в конце дробной части.

15

При выполнении процедуры Writeln; выполняется переход в начало новой строки (разделение выводимых на дисплей строк «пустой» строкой).

Пример вывода данных в текстовый файл (перед списком вывода следует указать логическое имя файла):

Writeln (fp, ‘x =’, x:5:2, ‘y =’, y:7:3, ‘z =’, z:7);.

Процедура Writeln(fp); пропускает строку в текстовом файле. Для пропуска нескольких строк следует повторить эту процедуру несколько раз.

Задание на лабораторную работу

Составить программу, которая обеспечивает:

ввод с клавиатуры значений переменных для указанного преподавателем варианта из табл. 1.1 и 1.2 задания на лабораторную работу № 1;

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

Определить, данные каких типов нельзя ввести с клавиатуры. Определить, данные каких типов нельзя вывести на дисплей.

Содержание отчета

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

2.Задание на лабораторную работу

3.Распечатка текста программы

4.Выводы

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

16

Лабораторная работа № 3

ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ

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

Вводная информация

Понятие линейного алгоритма

Алгоритм – это понятное и точное предписание исполнителю (человеку или вычислительной машине) последовательности действий (команд), направленных на решение поставленной задачи.

Алгоритм называется линейным, если его команды выполняются в порядке их естественного следования друг за другом независимо от каких-либо условий.

Математические выражения

Вязыке Турбо Паскаль могут быть реализованы два вида математических выражений арифметические или логические. Результат арифметического выражения число, результат логического выражения TRUE (истинно) или FALSE (ложно).

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

изнаков арифметических или логических операций. Большинство операций в языке Турбо Паскаль являются бинарными и содержат как минимум два операнда:

x +y/z {x, y и z операнды, + и / знаки арифметических операций}

a or b. {a и b операнды, or знак логической операции «Или»}

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

–y {присваивание отрицательного значения переменной y} not (a) {логическая операция not над значением переменной a}

17

При вычислениях сначала выполняются операции наивысшего

приоритета, затем более низкого.

Приоритет операций в математических выражениях:

1)not (и другие унитарные операции);

2)вычисление значений стандартных функций;

3)*, /, div, mod, and;

4)+, –, or, xor;

5)операции отношения (<, >, =, <>, <=, >=).

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

Пример вычисления арифметического выражения. Составить программу для вычисления выражения

ex a

y 3 1 1 1x tg(a x)

при a = 3,45 и x = 0,514.

Program pr1;

Const a = 3.45;

Var x: real;

BEGIN

Write (‘Введите значение x > 0‘); Readln (x);

Y:= exp(1/3 * ln(exp(x + a)/(1 – 1/(1 + x)))) + sin(a + x)/cos(a + x); Writeln (‘При a =’, a, ‘x =’, x:5:3, ‘ y =, y:7:3)

END.

Пример вычисления логического выражения. Составить програм-

му для определения результата логического выражения:

b = (a > 3) and (c <= 5) or not (a – c > x) при a = 1,2; x = 3,3; c = 0,5.

Program pr2;

Var

a, x, c: real; b: boolean;

18

BEGIN

a:= 1.2; x:= 3.3; c:= 0.5;

b:= (a > 3) and (c <= 5) or not (a – c > x);

Writeln (‘При a =’, a, ‘c =, c ‘,x =’, x, ‘результат b =’, b)

END.

Пояснения. При заданных значениях переменных логическое выражение

(1.2 > 3.3) and (0.5 <= 5) or not (1.2 – 0.5 < 0).

Результаты операций отношения в скобках:

(FALSE) and (TRUE) or not (FALSE).

В соответствии с приоритетами последовательность выполнения логических операций будет not and or. Тогда: not (FALSE) =

=TRUE, FALSE and TRUE = FALSE, FALSE or TRUE = TRUE

ирезультат вычисления логического выражения будет равен TRUE.

Задания на лабораторную работу

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

Задание А.

Разработать алгоритм и составить программу вычисления арифметического выражения по варианту задания из табл. 3.1. Исходные данные вводятся с клавиатуры по запросу программы. На дисплей и в текстовый файл c указанием имен переменных выводятся значения исходных данных и результат вычислений.

19

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]