- •Министерство образования и науки российской федерации
- •Оглавление предисловие
- •Составление структурных схем алгоритмов и программ
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Пример 4
- •Пример 5
- •Задания
- •Алфавит языка pascal. Типы данных. Раздел описаний. Оператор присваивания. Ввод-вывод. Составление простейших программ
- •Стандартные процедуры
- •Стандартные функции
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Задания
- •Использование переменных логического типа. Логический оператор присваивания
- •Логический оператор присваивания
- •R операция_сравнения s
- •Пример 1
- •Задания
- •4. Программирование разветвляющихся структур
- •4.1. Использование в программах условного оператора
- •Пример 1
- •Задания
- •4.2. Использование в программах оператора варианта
- •Case выражение-селектор of метка_случая : оператор;
- •Пример 1
- •Задания
- •5. Использование переменных типа char
- •Задания
- •6. Реализация циклических структур
- •6.1. Применение оператора цикла с параметром
- •Шаг изменения параметра цикла:
- •Пример 1
- •Задания
- •Пример 2
- •Пример 3
- •Задания
- •Пример 4
- •Задания
- •Таким образом изображаются циклы в структурных схемах (в лабораторных работах, курсовых работах и т.Д.). Пример 5
- •Задания
- •Задания
- •Пример 6
- •Задания
- •Не смотря на то, что есть еще другие операторы цикла, обычно вводят и выводят массивы с помощью оператора цикла с параметром.
- •6.2. Применение оператора цикла с постусловием
- •Пример 1
- •Задания
- •6.3. Применение оператора цикла с предусловием
- •Основные различия между операторами циклов с постусловием и предусловием
- •Пример 1
- •Задания
- •6.4. Работа с двухмерными массивами.
- •Задания
- •Пример 1
- •Задания
- •7. Поиск и сортировка числовых данных
- •Пример 1
- •Задания
- •8. Решение задач с применением подпрограмм
- •Procedure имя(список параметров);
- •Var идентификаторы:имя типа;...; var идентификаторы: имя типа
- •Var идентификаторы:имя типа;...;var идентификаторы: имя типа;...; идентификаторы:имя типа;...;идентификаторы:имя типа
- •Идентификаторы:имя типа;идентификаторы:имя типа; ...;идентификаторы:имя типа
- •Локальные переменные доступны только внутри процедур, в которых они определены!
- •Пример 1
- •Задания
- •9. Использование переменных перечисляемого типа
- •Ввод и вывод значений переменных перечисляемого типа запрещен.
- •Задания
- •10. Использование переменных ограниченного типа
- •Задания
- •11. Использование переменных множественного типа
- •Var идентификатор : set of порядковый тип;
- •Запрещен.
- •Правила приоритета для множественных операций:
- •Задания
- •12. Использование записей
- •With префикс[,префикс [...]] do оператор
- •Пример 1
- •Задания
- •13. Работа со строками
- •Каждая переменная типа string вводится отдельной процедурой readln
- •Пример 1
- •Задания
- •14. Работа с файлами
- •Пример 1
- •Пример 2
- •Пример 3
- •Задания
- •Библиографический список
Var идентификаторы:имя типа;...;var идентификаторы: имя типа;...; идентификаторы:имя типа;...;идентификаторы:имя типа
либо
Идентификаторы:имя типа;идентификаторы:имя типа; ...;идентификаторы:имя типа
Идентификаторы записываются через запятую.
В программе может содержаться несколько описаний различных функций и процедур. Все они располагаются друг за другом.
Примеры описания заголовков функций:
тип t определен
ввызывающей программе тип функцииf
function f(a:real;var b:t):real;
function g(var a,b:integer):integer;
function h(a:integer):char;
Имя функции выступает в теле функции в качестве имени переменной указанного типа. Имени функции в теле функции присваивается значение, которое передается в главную программу.
Советуем вам использовать для функций третий вид описания формальных параметров, т.е. в качестве формальных параметров использовать параметры-значения, так как в других случаях используют обычно процедуры.
Итак, когда в результате хотят получить одно значение, обычно используют function, в противном случае используют обычно procedure.
Рассмотрим значение термина «формальные параметры».
Пусть в различных местах программы необходимо вычислять следующее арифметическое выражение:
10x2+4y2+8xy+21,5
Для определения этого выражения используем функцию с именем qvad(x,y).
функция зависит от двух переменных:x и y
Функция будет иметь вид:
function QVAD(x,y:real):real; {Заголовок функции}
begin
QVAD:=10*sqr(x)+4*sqr(y)+8*x*y+21.5 { Имени функции
присваивается результат}
end;
Это просто определение, описание. На этом этапе никаких вычислений не выполняется.
Пусть надо вычислить значение данной функции в трех различных точках в разных местах программы: (X1,Y1), (X2,Y2), (X3,Y3). Для этого необходимо записать
QVAD(X1,Y1), QVAD(X2,Y2), QVAD(X3,Y3)
в соответствующих местах программы.
Например:
REZALT:=X4+QVAD(X1,Y1)-QVAD(X3,Y3);
Аргументы X,Y в функции QVAD являются формальными. Над ними не выполняется никаких арифметических операций. Вычисления проводятся с фактическими параметрами X1,Y1 и т.д., которые ставятся на место формальных.
Давайте вспомним тригонометрические функции.
Например, синус:
Y=Sin(x).
Этой функцией, как многими другими, пользуются часто, поэтому, чтобы каждый не писал в программе, как вычислять Sin (а Sin вычисляется, например, с помощью ряда), написали один раз подпрограмму-функцию для вычисления синуса, назвали ее SIN, параметр - один аргумент, записали ее (как и другие часто используемые функции) в библиотеку. И когда нам надо вычислить значение синуса, например при X=-2,5, мы в соответствующем месте программы напишем:
Y1:=SIN(-2.5);
совершенно не интересуясь, как этот синус будет вычисляться. Именно потому, что SIN(Х) - это подпрограмма-функция, а мы, записав этот оператор, обращаемся к ней, аргумент Х пишется в круглых скобках, как и во всех стандартных функциях.
Если мы что-либо захотим нарисовать, мы обратимся к соответствующей процедуре графического модуля GRAPH по имени и зададим свои параметры. Например, когда захотим нарисовать линию, мы обратимся к процедуре LINE и в скобках (всегда в круглых скобках) зададим свои параметры (координаты тех точек, которые мы хотим соединить линией), например:
LINE(30,80,120,160);
Процедура CLRSCR - очистка экрана - это стандартная процедура модуля СRT, которой многие пользуются. Там, где нам надо очистить экран, мы просто к ней обращаемся по имени. Эта процедура без параметров.
Обратите внимание, обращение к функции может быть использовано в различных операторах, например, присваивания. Обращение к процедуре - самостоятельный оператор, в котором нет, например, никаких присваиваний или проверок условий.
Рассмотрим следующий пример процедуры.
Пусть у нас есть процедура:
PROCEDURE af(z,v:real;var d:real);
var
p:real;
begin
p:=sqr(z+v);
d:=sqrt(p+1)-p+sin(p)
end;
Переменная p, описанная в процедуре, называется локальной по отношению к этой процедуре. Если в главной программе существует переменная с таким же именем - p, то это будет совсем другая переменная (т.е. изменение одной из них не повлечет изменения другой). Локальная переменная p действует только внутри процедуры, в которой она определена, и, как только эта процедура будет выполнена, значение локальной переменной p забудется.