- •Основы программирования на турбо паскале методические указания
- •Введение
- •Знакомство со средой программирования Turbo Pascal 7.0
- •Лабораторная работа №1 Структура программы на Паскале. Организация ввода-вывода данных. Использование стандартных функций.
- •Основные стандартные функции
- •Выражения
- •Задания для самостоятельной работы
- •Лабораторная работа №2 Программы разветвляющейся структуры
- •Практические задания
- •Var c: char;
- •I: integer;
- •Практические задания
- •Var a,b,c,X: integer;
- •Var X,y,r:real;
- •Задания для самостоятельной работы
- •Лабораторная работа №3 Программы циклической структуры
- •Практические задания
- •Var X,y,a, x1, x2, h, xmin, ymin, sa: real;
- •Задания для самостоятельной работы
- •Лабораторная работа №4 Работа с массивами и строками
- •1) Тип «массив»
- •Var a: Vector;
- •2) Тип «строка»
- •Var s: String[80];
- •Практические задания
- •Var a: array[1..100] of real;
- •I,j,n: integer;
- •Var a: array [1..10,1..10] of real;
- •I,j,n,m,m1,m2: integer;
- •Var s: string;
- •I: integer;
- •Задания для самостоятельной работы
- •Лабораторная работа №5 Процедуры и функции
- •1) Процедуры
- •Var a: mass;
- •Var I: integer;
- •2) Функции
- •Var a: mass;
- •Практические задания
- •Var a,b,c,s: real;
- •Var p: real;
- •If exist(a,b,c) then
- •Var a,b: vect;
- •Задания для самостоятельной работы
- •Лабораторная работа №6 Типизированные и текстовые файлы
- •Var f: File of real;
- •Var t: text80;
- •1) Типизированные файлы
- •2) Текстовые файлы
- •Практические задания
- •Var n,I,X,xmax: integer;
- •Var I,j,n:integer;
- •Задания для самостоятельной работы
- •Лабораторная работа №7 Графика в Турбо Паскале
- •Практические задания
- •Var gd,gm,n,I: integer;
- •Var I,X,y: integer;
- •Initgraph(gd,gm,'');
- •Задания для самостоятельной работы
- •394026 Воронеж, Московский просп., 14
Var a: mass;
Procedure MinMax(z: mass; n: integer; var min, max: real);
В случае параметров-констант перед их именами ставится слово Const. При их использовании в подпрограмму также передается ссылка, т.е. адрес параметра в памяти, однако компилятор блокирует все попытки изменить его в подпрограмме, т.е. присвоить ему какое-либо значение.
Если формальный параметр является нетипизированным параметром-переменной, то соответствующий ему фактический параметр может представлять собой любую ссылку на переменную, независимо от ее типа. Описание таких параметров выглядит как группа параметров с ключевым словом Var впереди, за которыми не следует указание типа, например:
Function Fun(var First, Second): Boolean;
Если некая переменная объявлена в разделе Var основной программы, то ее называют глобальной переменной. Она существует от места описания до конца программы (эту область называют областью видимости данной переменной). Таким образом, она видна и может быть использована и во всех подпрограммах этой программы.
Если некая переменная объявлена в разделе Var какой-либо подпрограммы, то она считается локальной переменной этой подпрограммы. Она существует от места описания до конца этой подпрограммы, т.е. только в этой подпрограмме.
Если некоторое имя определено в скобках в заголовке подпрограммы, то это формальный параметр этой подпрограммы.
Встретив в тексте подпрограммы какой-либо идентификатор, компилятор начинает искать его описание сначала в разделе Var этой подпрограммы, затем в списке формальных параметров, и если не находит, то продолжает поиск во внешнем по отношению к этой подпрограмме блоке, пока не доберется до раздела Var основной программы. Таким образом, если имя некоторой глобальной переменной совпадет с именем локальной переменной подпрограммы, то в этой подпрограмме можно будет обращаться только к локальной переменной, а глобальная будет недоступна. Говорят, что в этих случаях локальное имя закрывает (маскирует) глобальное.
Считается, что в подпрограммах использовать глобальные переменные следует с осторожностью, так как это может привести к ошибкам.
Практические задания
1. Изучить и запустить программу вычисления площади треугольника, заданного тремя сторонами a, b, c, по формуле Герона, в которой проверка существования треугольника и вычисление площади реализованы в виде функций.
Program Geron;
Var a,b,c,s: real;
function exist(x,y,z: real): boolean;
begin
if (x<=0) or (y<=0) or (z<=0) or
(x+y<z) or (x+z<y) or (y+z<x) then
exist:=false
else exist:=true;
end;
function square(x,y,z: real): real;
Var p: real;
begin
p:=(x+y+z)/2;
square:=sqrt(p*(p-x)*(p-y)*(p-z))
end;
Begin
writeln(’Введите длины сторон a,b,c:’);
readln(a,b,c);
If exist(a,b,c) then
begin
s:=square(a,b,c);
writeln(’Площадь S=’,s:9:6)
end
else writeln(’Треугольник не существует’);
readln
End.
2. Изучить и запустить программу вычисления длины вектора, заданного в виде массива из 3 чисел, в которой вычисление длины вектора реализовано в виде функции. С ее помощью составить программу обработки векторов, заданных в виде массива из 3 чисел, выполняющую следующие действия: а) вычисление скалярного произведения двух векторов; б) вычисление угла между двумя векторами; в) вычисление векторного произведения двух векторов.
Указание.
Функцию arcсos(t)
вычислять как
.
Program Vectors;
type vect=array[1..3] of real;
