- •Содержание
- •Методические рекомендации по оформлению отчета по практическим и лабораторным работам
- •Тематика практических и лабораторных работ
- •Перечень практических и лабораторных работ
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Методика разработки алгоритмов
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Структура программы на Турбо Паскаль
- •Операторы ввода и вывода Ввод данных:
- •Вывод данных:
- •Оператор условного перехода
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Расположение матрицы в памяти компьютера
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Краткие теоретические сведения
- •Тема: Организация процедур и функций.
- •Краткие теоретические сведения
- •Передаваемые параметры процедур и функций
- •Параметры-значения
- •Параметры-переменные
- •Краткие теоретические сведения
- •Оператор with
- •Краткие теоретические сведения
- •Стандартные процедуры и функции
- •Краткие теоретические сведения Организация работы с файлом
- •Организация работы с файлом
- •Запись в файл
- •Чтение из файла
- •Общие процедуры работы с файлами
- •Процедура открытия
- •Процедура закрытия
- •Процедура переименования
- •Функция анализа состояния файла
- •Чтение и запись в текстовых файлах
- •Процедуры Write / WriteLn
- •Чтение и запись в компонентном файле
- •Лабораторная работа №15(2 часа)
- •Рекомендуемая литература
Структура программы на Турбо Паскаль
Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов.
Заголовок программы содержит имя программы, например: Program PRIM;
Описания могут включать в себя:
раздел подключаемых библиотек (модулей);
раздел описания меток;
раздел описания констант;
раздел описания типов;
раздел описания переменных;
раздел описания процедур и функций.
Раздел операторов представляет собой составной оператор, который содержит между служебными словами
begin.......end
последовательность операторов. Операторы отделяются друг от друга символом ;. Текст программы заканчивается символом точка.
Кроме описаний и операторов Паскаль - программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев { и закрывающей скобкой комментариев }.
Операторы ввода и вывода Ввод данных:
Для ввода исходных данных чаще всего используется процедура ReadLn:
ReadLn(A1,A2,...AK);
Процедура производит чтение К значений исходных данных и присваивает эти значения переменным А1, А2, ..., АК.
При вводе исходных данных происходит преобразование из внешней формы представления во внутреннюю, определяемую типом переменных. Переменные, образующие список ввода, могут принадлежать либо к целому, либо к действительному, либо к символьному типам. Чтение исходных данных логического типа в языке Паскаль недопустимо.
Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.
Не допускается разделение вводимых чисел запятыми!
Вывод данных:
Для вывода результатов работы программы на экран используются процедуры:
Write(A1,A2,...AK);
WriteLn(A1,A2,...AK);
Первый из этих операторов производит вывод значений переменных А1, А2,...,АК в строку экрана. Второй оператор, в отличие от первого, не только производит вывод данных на экран, но и производит переход к началу следующей экранной строки. Если процедура writeln используется без параметров, то она просто производит пропуск строки и переход к началу следующей строки.
Оператор условного перехода
Оператор условного перехода в Турбо Паскаль имеет вид:
if условие then оператор 1 else оператор 2;
условие - это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1 пропускается. После выполнения указанных операторов программа переходит к выполеннию команды, стоящей непосредственно после оператора if.
Необходимо помнить, что перед ключевым словом else точка с запятой никогда не ставится!
else - часть в операторе if может отсутствовать:
if условие then оператор 1;
Тогда в случае невыполнения логического условия управление сразу передается оператору, стоящему в программе после конструкции if.
Базовые операции и математические процедуры и функции
Математические выражения в алгоритмической записи состоят из операций и операндов. Большинство операций является бинарными, т.е. содержат два операнда (унарные операции содержат один операнд, например : -а, взятие адреса @В).
Арифметические операции:
+, -, /, *, div (целочисленное деление), mod (остаток от деления),
Логические: not, and, or, xor,
Операции отношения: >, <, >=, <=, <>, =.
Логические вычисления и операции отношения
Наличие типа Boolean и операций с ним позволяет программировать логические вычисления, в основу которых заложена Булева алгебра. Введены четыре логических операции, результат которых всегда имеет тип Boolean и может иметь только одно из двух значений (Trueº1 (истинно) или Falseº0 (ложно)).
-
P=A or B
P= A and B
P=A xor B
P= not B
P
A
B
P
A
B
P
A
B
P
B
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
Чтобы не было ошибок, при логических вычислениях лучше расставлять скобки самим. Так, например, запись Not A And B будет воспринята компилятором как (Not A )And B, а, может быть, необходимо было бы так: Not (A And B).
Математические процедуры и функции
Системная библиотека Turbo Pascal’я приведена в таблице:
Математические функции |
|||||
Вызов аргумента |
Тип аргумента |
Тип значения |
Назначение функции |
Вызов функции |
Результат |
Abs(x) |
целый/вещ. |
как у аргумента |
Абсолютное значение Х |
Y:=Abs(x); |
Abs(-6.5) = 6.5 |
Pi |
- |
Вещественный |
Значение числа «Пи» 3,141592… |
Y:=Pi; |
- |
Тригонометрические функции |
|||||
Sin(x) |
Вещественный |
Вещественный |
Синус Х радиан |
Y:=Sin(x); |
Sin(Pi)=0 Sin(-3*pi)=0 |
Cos(x) |
Вещественный |
Вещественный |
Косинус Х радиан |
Y:=Cos(x); |
Cos(0)=1 Cos(-Pi)=-1 |
ArcTan(x) |
Вещественный |
Вещественный |
Арктангенс Х радиан |
Y:=ArcTan(x) |
ArcTan(0)= |
Sqrt(x) |
целый/вещ. |
Вещественный |
Квадратный корень из Х, Х>0 |
Y:=Sqrt(x); |
Sqrt(4)=2.0 Sqrt(-4)-ошибка |
Sqr(x) |
целый/вещест. |
как у аргумента |
Значение квадрата Х |
Y:=Sqr(x); |
Sqr(3.0)=9.0 Sqr(4)=16 |
Exp(x) |
Вещественный |
Вещественный |
Значение е в степени Х |
Y:=Exp(x); |
Exp(0)=1.0 |
Ln(x) |
Вещественный |
Вещественный |
Натуральный логарифм Х, Х>0 |
Y:=Ln(x); |
Ln(1)=0.0 Ln(0)- ошибка |
Trunc(x) |
Вещественный |
Целый |
Целая часть значения Х |
Y:=Trunc(x); |
Trunc(3.3)=3 Trunc(3.99)=3 Trunc(-4.5)=-4 |
Frac(x) |
Вещественный |
Вещественный |
Дробная часть значения Х |
Y:=Frac(x); |
Frac(6.89)=0.89 Frac(-6.89)=-0.89 |
Int(x) |
Вещественный |
Вещественный |
Целая часть значения Х |
Y:=Int(x); |
Int(-8.9)=-8.0 Int(8.9)=8.0 |
Round(x) |
Вещественный |
LongInt |
Правильное округление Х до ближайше-го целого |
Y:=Round(x) |
Round(3.45)=3 Round(3.5)=4 Round(-3.45)=-3 Round(-3.51)=-4 |
Random |
- |
Вещественный |
Случайное число (0…1) |
Y:=Random; |
- |
Random(x) |
Word |
Word |
Случайное число (0…Х) |
Y:=Random(x); |
- |
Odd(x) |
Целый |
логический |
Возвращает True, если Х – нечетное число. |
Z:=Odd(x); |
Odd(3)=True Odd(-3)=True Odd(4)=False |
Математические процедуры |
|||||
Randomize |
Гарантирует неповторяемость значений в случайной последовательности |
||||
Inc( Var X:целое) |
Увеличивает х на 1 |
||||
Dec( Var X:целое) |
Уменьшает х на 1 |
||||
Inc(Var X:целое; N:целое) |
Увеличивает х на N |
||||
Dec(Var X:целое; N:целое) |
Уменьшает х на N |
Математические функции очень чувствительны к диапазону своих аргументов. Кроме того, возвращаемые значения целых типов должны в них умещаться, иначе возможны фатальные последствия
Большинство функций являются стандартными и не нуждаются в комментариях. Отдельно хотелось бы остановиться на специфических.
Функция PI генерирует число «Пи» с точностью, зависящей от наличия сопроцессора и содержит от 10 до 14 значащих цифр после запятой, она может использоваться в вычислениях как константа, но не может быть поставлена в вычислимые константы блока Const.
Набор тригонометрических функций ограничен, но дает возможность расширить математическую библиотеку путем введения своих собственных функций, определяющих стандартные математические
Типы данных
Идентификатор |
Длина (байт) |
Диапазон значений |
Операции |
Целые типы |
|||
integer |
2 |
-32768..32767 |
+, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
byte |
1 |
0..255 |
+, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
word |
2 |
0..65535 |
+, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
shortint |
1 |
-128..127 |
+, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
longint |
4 |
-2147483648..2147483647 |
+, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
Вещественные типы |
|||
real |
6 |
2,9x10-39 - 1,7x1038 |
+, -, /, *, >=, <=, =, <>, <, > |
single |
4 |
1,5x10-45 - 3,4x1038 |
+, -, /, *, >=, <=, =, <>, <, > |
double |
8 |
5x10-324 - 1,7x10308 |
+, -, /, *, >=, <=, =, <>, <, > |
extended |
10 |
3,4x10-4932 - 1,1x104932 |
+, -, /, *, >=, <=, =, <>, <, > |
Логический тип |
|||
boolean |
1 |
true, false |
Not, And, Or, Xor, >=, <=, =, <>, <, > |
Лабораторная работа №2(2 часа)
Тема: Составление и запись алгоритмов для вычисление суммы числового ряда в виде программы (циклической структуры). Компиляция и тестирование программы.
Цель: Приобрести навыки составления и анализа алгоритмов обработки (нахождение суммы и произведения элементов), представления их в виде программ.
Задание: Разработать алгоритм вычисления значения У согласно варианта для заданного n ( ) и представить его в виде блок-схемы и программы на языке программирования Turbo Pascal. Провести компиляцию и тестирование программы.
Вариант 1
Вариант 2
Вариант 3
Вариант 4
В ариант 5
Y=
Вариант 6
Вариант 7
Вариант 8
Вариант 9
Вариант 10
Y=