- •Аннотация
- •Содержание
- •Интегрированная среда программирования Turbo Pascal 7.0
- •Основные понятия языка Turbo Pascal 7.0
- •Алфавит языка
- •Структура программы
- •Раздел объявления меток
- •Раздел объявления констант
- •Строковые и символьные константы
- •Простые типы данных
- •Выражения Арифметические выражения
- •Математические функции
- •Условные выражения и операции отношения
- •Логические выражения и операции
- •Процедуры ввода – вывода информации Процедуры ввода информации Read, ReadLn
- •Процедуры записи Write, WriteLn
- •Форматы процедуры вывода Write
- •Простые операторы
- •Оператор присваивания
- •Примеры решения задач
- •Оператор безусловного перехода Goto
- •Структурированные операторы
- •Составной оператор
- •Условный оператор If
- •Примеры решения задач
- •Условный оператор Case
- •Примеры решения задач
- •Оператор цикла For
- •Особенности выполнения оператора For
- •Примеры решения задач
- •Оператор цикла Repeat…Until
- •Особенности выполнения оператора Repeat
- •Примеры решения задач
- •Оператор повтора While
- •Особенности выполнения оператора While
- •Примеры решения задач
- •Вложенные циклы
- •Массивы
- •Одномерные массивы Основные понятия
- •Описание массива
- •Заполнение массива
- •6.1.4 Примеры решения задач
- •1. Алгоритмы поиска и присвоения значений элементам массива
- •2. Алгоритмы нахождения суммы, произведения и количества элементов массива. Работа с индексами элементов массива
- •3. Алгоритмы нахождения наибольшего или наименьшего элемента массива и его индекса
- •6.2 Двумерные массивы
- •6.2.1 Основные понятия
- •6.2.2 Описание массива
- •6.1.3 Заполнение и вывод элементов двумерного массива
- •6.1.4 Примеры решения задач
- •1. Алгоритмы действий над элементами двумерного массива
- •2 Алгоритмы формирования одномерного массива
- •3 Алгоритмы нахождения наибольшего и наименьшего элементов двумерного массива
- •7. Множества
- •7. 1 Операции над множествами
- •7.2 Примеры решения задач
- •8. Строки
- •8.1 Строковые выражения
- •8.2 Стандартные процедуры и функции для обработки строковых данных
- •Обнаруживает первое появление в строке St2 подстроки St1. Результат равен номеру той позиции, где находится первый символ подстроки St1.
- •8.3 Примеры решения задач
- •1.Задачи на подсчет символов.
- •2. Задачи на замену символов.
- •3. Задачи на удаление символов.
- •4. Задачи на вставку символов.
- •9. Процедуры и функции, определенные пользователем
- •9.1 Процедуры пользователя
- •1 Вариант
- •2 Вариант
- •9.2 Функции пользователя Формат описания функции:
- •9.3 Параметры
- •9.3.1 Параметры – значения
- •9.3.2 Параметры - переменные
- •10 Модуль crt. Процедуры и функции модуля crt
- •11 Модуль Graph
- •11.1 Классификация типов драйверов и видеорежимов
- •11.2 Инициализация графики
- •11.3 Переключение между текстовым и графическим режимами
- •11.4 Система координат
- •Отображение строк
- •11.5 Управление текущим указателем
- •11.6 Отображение точки на экране
- •11.7 Определение параметров пикселов
- •11.8 Отображение отрезков прямых линий
- •11.9 Вычерчивание линий различных стилей
- •11.10 Построение прямоугольников
- •11.10.1 Построение прямоугольника на плоскости
- •11.10.2 Построение закрашенного прямоугольника
- •11.11 Установка стиля заполнения
- •11.13 Построение заполненных областей изображения
- •11.13.1 Построение заполненного сектора эллипса
- •11.13.2 Построение заполненного эллипса
- •11.13.3 Построение заполненных сложных геометрических фигур
- •Список литературы
9.1 Процедуры пользователя
Формат описания процедуры:
Procedure <имя>{(формальные параметры)};
Пример описания процедуры:
Procedure Sort(A:Integer;B:Real);
Procedure Sum; {формальные параметры не требуются}
Procedure Kvadr(Al,Beta:Integer);
Имя процедуры – идентификатор, уникальный в пределах программы.
Тело процедуры по структуре аналогично программе:
Procedure <имя>{(формальные параметры)};
<раздел описания>
Begin
<раздел операторов>
End;
Для обращения к процедуре используется оператор вызова процедуры. Он состоит из имени процедуры и списка фактических параметров, отделенных друг от друга запятыми.
Формат:
<имя процедуры>{(параметр1, параметр2, …)};
Примеры вызова процедур:
Sort(A1,B1); {параметры – значения переменных}
Rvadr(14,25); {параметры – непосредственно значения }
Sum;
Между фактическими параметрами в операторе вызова процедуры и формальными параметрами в заголовке описания процедуры устанавливается взаимно–однозначное соответствие в результате их перебора слева направо. Количество и тип формальных параметров равны количеству и типу фактических параметров. При обращении к процедуре формальные параметры заменяются на соответствующие фактические параметры вызывающей программы.
Пример. В процедуре произвести очищение экрана, установку курсора в его центр и вывод слова «Справочник».
USES CRT;
Procedure Ekran;
Begin
ClrScr;
GotoXY(30,12);
WriteLn(‘Справочник’);
End;
Begin {начало программы}
…..
Ekran; {вызов процедуры Ekran}
End.
Задания для самостоятельной работы
1 Вариант
-
Дан массив с оценками учащихся. Найти средний балл учащихся. Подсчитать количество 5 и 4. Заполнение массива, подсчет среднего балла и подсчет количества оценок оформить отдельными процедурами.
-
Задана матрица W(5,6). Отрицательные элементы матрицы заменить на 0. измененный массив вывести на экран. Обработку элементов массива оформить в процедуре.
2 Вариант
-
Дан одномерный массив со значениями веса кур на птицефабрике. Найти средний вес кур. Найти вес самой тяжелой курицы. Заполнение массива, подсчет среднего веса и нахождение веса самой тяжелой курицы оформить отдельными процедурами.
-
Найти произведение элементов массива R(7,5) в строках с четными номерами. Обработку элементов массива оформить в процедуре.
9.2 Функции пользователя Формат описания функции:
Function <имя>{(формальные параметры)}:<тип результата>;
Примеры заголовка функции:
Function Prov(X,Y,T:integer):Real;
Function ZX:Real;
Возвращаемый результат может иметь любой скалярный тип.
Тело функции аналогично по структуре программе.
Function <имя>{(формальные параметры)}:<тип результата>;
<раздел описания>
Begin
<раздел операторов>
End;
В разделе операторов должен находиться, по крайней мере один оператор, присваивающий идентификатору функции значение. Если таких присваиваний несколько, то результатом выполнения функции будет значение последнего оператора присваивания.
Пример1. С использованием функции производить возведение в степень положительного или отрицательного числа.
Var
Z:Interer;
K:Real;
Function Step(F:Real; Exp:Integer):Real; {функция возведения в степень числа}
Var
C:Integer;
T:Real;
Begin
If Exp=0 Then Step:=1
Else Begin
T:=F;
For C:=2 To Abs(Exp) Do T:=T*F
If Exp >0 Then Step:=T Else Step:=1/T;
End;
End;
Begin
Write(‘Введите значение’);
Read(Z);
WriteLn(Step(Z,3)); {вызов функции Step и возведение числа Z в степень 3}
WriteLn(Step(Z,4)); {вызов функции Step и возведение числа Z в степень 4}
K:=1.4;
WriteLn(Step(K,3));
End.
Пример 2. Вычислить сложное выражение, используя функцию пользователя для вычисления повторяющейся в нем части.
K=(1+m^2)/cos(1-m)–5*(c+d^2)/cos(c-d)+(x+y^2)/cos(x-y)
Var
M,C,D,X,Y:Integer;
K:Real;
Function SV(A,B:Integer):Real;
Begin
SV:=Abs((A+Sqr(B)/Cos(a-b));
End;
Begin
WriteLn(‘Введите 5 значений’);
ReadLn(M,C,D,X,Y);
K:=SV(1,M)-5*Sqrt(SV(C,D))+SV(X,Y);
WriteLn(‘K=’,K);
End.
Пример 3. Вычислить сумму N членов ряда. Факториал вычислять с помощью функции пользователя.
S=1!/4!+4!/5!+9!/6!+16!/7!+…+(n^2)!/(n+3)!
Var
S:LongInt;
J:Byte;
Function Fact(M:Integer):Integer; {функция вычисления факториала}
Var
I:Byte;
P:Integer;
Begin
P:=1;
For I:=1 To M Do P=P*I;
Fact:=P;
End;
Begin
WriteLn(‘Введите N’);
RearLn(N);
S:=0;
For J:=1 To N Do S:=S+Fact(Sqr(J))/Fact(J+3);
WriteLn(‘S=’,S);
End.
Задания для самостоятельного решения.
-
Вычислить сложное выражение, используя функцию пользователя для вычисления повторяющейся в нем части.
C=(d+e)/tg(de)+(x+y)/tg(xy)-(z+t)/tg(zt)
-
Вычислить функцию: C = m!n!/(m-n)!. Для вычисления факториала использовать функцию пользователя.
В любой программе все переменные делятся на глобальные и локальные. Глобальные переменные описываются в разделе описаний основной части программы, а локальные – в разделах описаний процедур и функций. Локальные переменные существуют только в течение времени работы процедуры, определяются при ее вызове и «исчезают» после завершения работы процедуры.