- •ЛАБОРАТОРНАЯ РАБОТА № 1
- •Теоретический материал
- •1.2. Интерфейс IDE
- •1.3. Комбинации клавиш
- •2. Подготовка текста программы
- •2.5. Удаление фрагмента текста
- •ЛАБОРАТОРНАЯ РАБОТА № 2
- •Теоретический материал
- •Константа (англ. constant) – это величина, значения которой не изменяются в период ее существования. Значения переменных предварительно описываются в разделе описания переменных CONST.
- •2.1. Простые типы данных
- •5. Вычисление выражений
- •Задача 2
- •Задача 3
- •Необходимо ввести и вывести на печать два целых числа и два вещественных числа:
- •ЛАБОРАТОРНАЯ РАБОТА № 3
- •Теоретический материал
- •Допускается опускать служебное слово ELSE:
- •Задача 2
- •Задача 3
- •Program Lab3_3_2; {Случай 2}
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Теоретический материал
- •ЛАБОРАТОРНАЯ РАБОТА № 5
- •ОРГАНИЗАЦИЯ РАБОТЫ ПРОГРАММ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ
- •Теоретический материал
- •Задача 1
- •Задача 2
- •Рассмотрим программу с использованием оператора цикла с предусловием, когда в качестве логического < Условия > стоит выражение 2*A < = 3*N +1.
- •Program Lab5_2;
- •Задача 4
- •6. Вложенные циклы
- •8. Практическое задание – решение задач с использованием операторов цикла
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •ОРГАНИЗАЦИЯ ИТЕРАЦИОННЫХ ЦИКЛОВ В ПРОГРАММЕ
- •Теоретический материал
- •Задача 1
- •Задача 2
- •Пояснения к задаче 2
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Теоретический материал
- •Таблица 14
- •Задача 3
- •Задача 4
- •Задача 5
- •Умножить на 3 каждый элемент массива и получить результат на экране дисплея распечатанным по строкам.
- •5. Практическое задание – решение задач с использованием массивов
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант16
- •ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ НА ЯЗЫКЕ TURBO PASCAL
3.В открывшемся окне набрать текст программы: Program Lab_1;
Begin
WriteLn (‘Good luck’); ReadLn;
End.
4.Программу Lab_1 надо сохранить в вашем корневом каталоге, который находится на диске H. Для того чтобы сменить каталог, необходимо:
–вызвать команду Change dir;
–перейти на строку Drives и выбрать диск H;
–нажать OK.
5.Созданный файл сохранить под именем Lab_1.PAS. Для этого надо вызвать меню File, в открывшемся меню выбрать команду Save As. В появившемся диалоговом окне ввести в поле Name имя программы Lab_1.PAS.
ЛАБОРАТОРНАЯ РАБОТА № 2
ОРГАНИЗАЦИЯ РАБОТЫ ПРОГРАММ ЛИНЕЙНОЙ СТРУКТУРЫ
Цели работы
1.Освоение построения программы линейной структуры.
2.Знакомство с простыми типами данных (real, integer, boolean, char).
3.Знакомство с работой оператора присваивания, арифметическими операциями и встроенными функциями для работы с числовыми типами данных.
4.Получение навыков в организации ввода/вывода значений стандартных типов данных.
5.Получение практических навыков работы в диалоговом режиме.
6.Подключение модуля CRT, изучение порядка действий при выводе данных на экран дисплея (управление курсором, задание цвета фона экрана и цвета текста, выводимого на экран).
Теоретический материал
1. Структура программы на Паскале
В программе могут быть следующие разделы, каждый из которых, кроме последнего, завершается точкой с запятой:
–заголовок программы;
–раздел объявления типов;
15
– раздел объявления переменных;
–раздел операторов (обязательная
часть).
Кроме операторов программа будет содержать комментарии. В языке Паскаль комментарии заключают в фигурные скобки, которые при выполнении программы никаких действий не выполняют.
1.1. Операторные скобки
В языке Паскаль под операторными скобками понимают два служебных слова: Begin (открывающая скобка) и End (закрывающая скобка).
Составной оператор – это последовательность произвольных операторов программы, заключенная в операторные скобки BEGIN и END. Следует отметить, что составные операторы – важный инструмент языка, дающий возможность писать программы по современной технологии структурного программирования.
На характер операторов, входящих в составной оператор, не накладывается никаких ограничений. Среди них могут быть и другие составные операторы языка. Допускается также произвольная глубина вложения составных операторов. Фактически весь раздел операторов представляет собой один составной оператор.
Количество слов «Begin» совпадает с количеством слов «End». Для того чтобы избежать ошибки при составлении программы, пишите каждую пару «Begin–End» с одной позиции. При наличии большого количества подобных пар можно ставить номера в комментарии так, как показано на схеме.
2. Структура данных на Паскале. Типы данных
Данные – это информация, представленная в формальном виде, который обеспечивает возможность ее хранения, обработки и передачи. В языке Паскаль любая константа, переменная, значение функции или выражения характеризуется своим типом. Используемые различные типы данных в PASCAL имеют огромное значение при программировании, так как определяют способы и алгоритмы обработки этих данных.
Под типом данных понимается множество допустимых значений переменных, а также совокупность операций над ними.
Константа (англ. constant) – это величина, значения которой не изменяются в период ее существования. Значения переменных предварительно описываются в разделе описания переменных CONST.
Переменная (англ. variable) – это некоторая величина, значения которой могут изменяться, принимая в процессе изменения некоторые значения.
16
Приступая к решению задач , следует помнить, что:
–каждая переменная программы должна быть объявлена;
–объявления переменных помещают в раздел описания переменных, который начинается словом Var;
–инструкция объявления переменной выглядит так: Имя Перемен-
ной: Тип;
–в имени переменной можно использовать буквы латинского алфавита
ицифры (первым символом должна быть буква);
–основными числовыми типами языка Turbo Pascal являются Integer (целый), Real (вещественный);
–после инструкции объявления переменной рекомендуется указывать назначение переменной.
2.1. Простые типы данных
Кпростым относятся:
–целые типы – Shortint, Integer, Longint, Byte, Word;
–вeщественныe типы – Real, Single, Double, Extended, Comp;
–логические типы – Boolean;
–символьный тип – Char.
Простые типы данных можно разделить на порядковые и вещественные. Все простые типы, кроме вещественных, называются порядковыми. Здесь каждое значение можно сопоставить с некоторым целым числом – порядковым номером значения.
2.2. Целые типы данных
В Pascal 7.0 введено 5 стандартных целых типов, которые отличаются форматами и диапазонами допустимых значений (табл. 4).
|
|
|
Таблица 4 |
|
|
|
|
|
|
Тип |
Значение |
Формат |
Характеристика |
|
Shorint |
–128…127 |
Знаковый |
Короткое целое (8 бит) |
|
Integer |
–32 768…32 767 |
Знаковый |
Целое (16 бит) |
|
Longint |
–2 147 483 648…2 147 483 647 |
Знаковый |
Длинное целое (32 бит) |
|
Byte |
0…255 |
Беззнаковый |
Короткое целое (8 бит) |
|
Word |
0…65 535 |
Беззнаковый |
16 бит |
|
В последней колонке табл. 4 показано, что числу каждого диапазона отводится фиксированное количество разрядов в памяти ЭВМ. Это позволяет эффективно использовать память и влиять на скорость вычислений. Все целые типы являются упорядоченными, поэтому к их значениям применимы две специальные функции Succ(I) и Pred(I), где I – целое, возвращающие следующее и предшествующее I целые числа.
Чаще всего целые числа используются в простых арифметических выражениях и выступают в программах в качестве различных счетчиков и значений индексов. Над ними определены пять основных операций, результатами которых являются также целые числа:
17
–сложение (+);
–вычитание (–);
–умножение (*)
–частное от деления (div);
–остаток от деления (mod).
Все пять операций – двухместные (бинарные), т. е. применимы к двум аргументам, но операции сложения и вычитания могут использоваться и как одноместные (унарные). При изменении знака числа, например, допустима запись: а: = – а.
При делении с точностью до целых получаются два результата: частное и остаток. Операция div обозначает целочисленное деление. Знак результата берется по обычным правилам, а полученный остаток игнорируется, например:
15 div 2 = 7;
3 div 7 = 0; (–9) div 4 = –2;
(–9) div (–4 ) = 2.
Операция mod дает остаток при делении двух целых чисел: 15 mod 2 = 1;
3 mod 7 = 3; (–9) mod 4 = –1; 9 mod 3 = 0.
Операции *, div, mod имеют одинаковый, более высокий приоритет, а операции (+) и (–) имеют также одинаковый, но более низкий приоритет. Приоритеты можно менять с помощью круглых скобок.
2.3. Вещественный тип данных
В Pascal 7.0 определено 5 стандартных вещественных типов, которые отличаются форматами и диапазонами допустимых значений (табл. 5).
|
|
|
Таблица 5 |
|
|
|
|
|
|
Тип |
Значение |
Число значащих цифр |
Длина байт |
|
Real |
2.9*10–39…1.7*1038 |
11–12 |
6 |
|
Single |
1.5*10–45 ...3.4*1038 |
7–8 |
4 |
|
Double |
5.0*10–324...1.7*10308 |
15–16 |
8 |
|
Extended |
3.4*10–4932..1.1*104932 |
19–20 |
10 |
|
Comp |
–2–63+1...2 +63–1 |
19–20 |
8 |
|
Результат работы функций сложения, умножения, деления, вычитания и возведения в квадрат вещественных чисел дает вещественное число.
Областью значений вещественного типа является подмножество множества всех вещественных чисел. Оно не является упорядоченным. Для представления чисел из широкого диапазона, от очень маленьких до очень больших, привычное представление с фиксированной запятой не подходит, так как любой вещественный тип в ЭВМ должен иметь ограничение на количество знаков. Если выводятся числа шириной 12 знаков, то, например, число
18
2 001 000 000 000 555 уже не будет изображено. Поэтому вещественные числа
представляются в ЭВМ в форме с плавающей точкой, называемой экспонен-
циальной. Они имеют цифровую часть (мантиссу) и порядок, следующий за знаком е. Приведенное выше число примет вид 2.001е + 15. Ясно, что такая форма представления чисел дает возможность выполнять операции над веще-
ственными числами только приближенно. Вообще-то нельзя предполагать точное равенство никаких двух чисел с плавающей точкой. Количество цифр в мантиссе характеризует точность. Чем больше цифр имеет мантисса, тем погрешность меньше.
Стандартный вещественный тип Real используется без математического сопроцессора, а типы Single, Double, Extended относятся к расширенному на-
бору вещественных типов и рассчитаны на работу с сопроцессором, приме-
нение которого значительно увеличивает точность расчетов и ускоряет их выполнение. Паскаль дает возможность при отсутствии математического сопроцессора эмулировать его работу программным путем с помощью директив компилятора {$N+, E+}, которые заключаются в фигурные скобки и имеют отличительный признак $.
Новый знак ( / ) вводится только для операции деления вещественных чисел, причем результат операции всегда вещественный, даже когда оба операнда – целые числа (9/3).
Операции возведения в степень в Паскале нет. Значение степени ax = (elna)x дает выражение exp (x*ln (a)), использующее две встроенные функции Exp и Ln, например:
37 = Exp(7*Ln(3));
(–4)5 = –Exp(5*Ln(4)), так как Ln(–4) не существует.
3. Математические (встроенные) функции
Решая различные задачи, мы сталкиваемся с необходимостью извлекать квадратные корни, вычислять значения тригонометрических функций и т. д. Для облегчения работы наиболее употребительные алгоритмы разработаны фирмой-производителем и поставляются вместе с языком. Они хранятся в специальной библиотеке и называются стандартными, или встроенными,
функциями.
Чтобы обратиться к встроенной функции, нужно назвать ее имя (аргумент пишется в скобках). Углы для вычисления тригонометрических функций задаются в радианах.
Применяя встроенные функции в выражениях или для конструирования новых функций, необходимо следить за типами аргументов и возвращаемых значений. Выполняя действия с любыми числами, следует помнить основные математические факты:
–нельзя делить на ноль;
–не существует квадратный корень из отрицателъного числа;
–не существует логарифм числа, которое меньше или равно нулю.
Для числовых данных стандартные функции представлены в табл. 6.
19
|
|
|
Таблица 6 |
|
|
|
|
|
|
Функция |
Обозначение |
Тип аргумента |
Тип результата |
|
Абсолютное значение x |
Abs(x) |
Integer или Real |
Integer или Real |
|
Арктангенс x |
Arctan(x) |
Integer или Real |
Real |
|
Косинус x |
Cos(x) |
Integer или Real |
Real |
|
Экспонента |
Еxp(x) |
Integer или Real |
Real |
|
Выделение дробной части |
Frac(x) |
Real |
Real |
|
аргумента |
|
|
|
|
Выделение целой части |
Int(x) |
Real |
Real |
|
аргумента |
|
|
|
|
Натуральный логарифм |
Ln(x) |
Real |
Real |
|
Значение |
Pi |
– |
– |
|
PI = 3.1415926535897932385 |
|
|
|
|
Проверка четности |
Odd(x) |
Longint |
Boolean(true, если |
|
|
|
|
число нечетное) |
|
Предшествующее значение |
Pred(x) |
INTEGER |
Integer |
|
аргумента |
|
|
|
|
Инициализация датчика |
Randomize |
– |
– |
|
случайных чисел |
|
|
|
|
Формирование случайного |
Random(x) |
Word |
Integer |
|
числа |
|
|
|
|
Формирование случайного |
Random |
Аргумент не задан |
Real |
|
числа |
|
|
|
|
Округление вещественного |
Round(x) |
Real |
Integer |
|
числа до целого |
|
|
Longint |
|
Синус х |
Sin(x) |
Integer или Real |
Real |
|
Квадрат х |
Sqr(x) |
Integer или Real |
Integer или Real |
|
Квадратный корень x |
Sqrt (x) |
Integer или Real |
Real |
|
Следующее значение аргу- |
Susc(x) |
Integer |
Integer |
|
мента |
|
|
|
|
Выделение целой части ве- |
Trunc(x) |
Real |
Integer |
|
щественного числа |
|
|
Longint |
|
Для вещественного типа количество принимаемых значений очень велико. Все простые типы данных, кроме вещественных, называются порядковыми. Для них определены следующие функции.
Функции Int(x) и Frac(x) похожи на математические функции [х] и {х}, обозначающие соответственно целую и дробную части числа, но совпадают с ними только на множестве неотрицательных чисел. Если аргумент отрицательный, то они просто отбрасывают дробную или целую часть: [–5,8] = –6, Int (–5.8) = –5; {–5,8} = 0,2, Frac(–5.8) = –0.8.
Функция Trunc(x) отличается от Frac(x) типом возвращаемого значения, Round(x) – функция округления, Odd(x) возвращает логическое значение true, если аргумент х – нечетное число.
Функции Random, Random(x) и сопутствующая им процедура Randomize предназначены для получения псевдослучайных чисел.
Целочисленные значения можно присваивать вещественным перемен-
ным, а присваивание вещественного значения целочисленной переменной яв-
20