- •1. Введение
- •2. Простейшие операторы языка
- •3. Организация ветвлений
- •4. Логические функции
- •5. Организация циклов
- •Var X,I: integer;
- •Var X,y,I: integer;
- •Операторы итерационных циклов. Их несколько типов. Оператор цикла с предусловием имеет вид
- •С помощью этого оператора гораздо проще решить пример 5-2 (program p5_2n). Оператор цикла с постусловием:
- •6. Массивы
- •Var X,z: array [1..8] of real;
- •Var I,j: integer;
- •Var n,I,j:integer; s,y,sr:real; X: array [1..10,1..5] of real;
- •Var I,j,m,n: integer; X:array [1..10] of integer;
- •Var n,I,j,st,kl,k:integer; a:array [1..10,1..10] of integer;
- •7. Символьные данные
- •Var X:string[1]; d:string; I:integer;
- •Var X,n1,n2,k:integer; st,pr:string;
- •8. Графика
- •9. Подпрограммы
- •10. Записи
- •Var X:vr; y:array [1..5] of vr;
- •11. Файлы
- •Ввод и вывод информации для типизированных и текстовых файлов производится процедурами:
- •X,y:real;
- •X,y:real; I:integer;
- •Im: string[4];
- •I: integer;
- •Im: string[4];
- •I: integer;
9. Подпрограммы
Подпрограммы дают возможность делать приложения более компактными, позволяя для повторяющихся процессов писать код только один раз. Различают два вида подпрограмм: процедуры и функции.
PROCEDURE имя_процедуры (список_параметров)
FUNCTION имя_функции (список_параметров): тип_результата
Внутрь подпрограмм через список параметров передаются переменные для обработки. Для каждой из них указывается тип. Функция отличается от процедуры тем, что результат передается через ее имя. Ниже приведены примеры процедуры и функции, выполняющие одну и ту же операцию суммирования.
procedure Sum(x,y,s:real); function Sum(x,y:real):real;
begin begin
s:=x+y sum:=x+y
end; end;
Для обращения к процедуре нужно использовать оператор вида sum(a,b,c). Здесь переменные a,b,c называются фактическими параметрами, x,y,z – формальными. При исполнении процедуры значения a,b присваиваются переменным x,y и выполняются вычисления. Их результат через переменную с передается в вызывающую программу. К функции можно обращаться, используя оператор вида c:=sum(a,b).
Задание 9.1. Вычислить N элементов ряда: y=x11!/2!–x32!/3!+x43!/4!–x54!/5!+... для X<1 в двух вариантах:
При вычислении факториала использовать: 1) процедуру, 2) функцию.
10. Записи
М
TYPE
имя типа=RECORD
описание
элементов записи
END;
Пример (ниже). Здесь сначала описан тип записи Vr, состоящей из полей: tab, im, tarif, dn соответствующих типов. Затем в разделе Var описаны уже конкретные (рабочие) записи: X и массив записей Y. Обращаться к элементам записей нужно, используя полное имя (имя записи.имя поля), например x.tarif, x.im. А для массива записей нужно указывать и индекс: y[3].tarif. Записи удобно использовать при работе с файлами.
type vr=record {объявление типа записи}
tab: integer; {табель}
im: string[4]; {имя}
tarif, dn: real
end;
Var X:vr; y:array [1..5] of vr;
Задания для самостоятельного решения (данные использовать как записи).
10.1. Пусть имеется таблица-массив, содержащая сведения о работниках (всего K человек) бригады: Имя, Отработано дней, Должностной оклад, Фактическая зарплата. Рассчитать зарплату для каждого работника.
10.2. Усложним предыдущее задание. Пусть бригаде установлена премия в P=100000р., которая делится не поровну, а с учетом коэффициента трудового участи (КТУ). Рассчитайте размер премии для каждого.