- •Содержание:
- •Порядок выполнения лабораторных работ
- •Оператор присваивания
- •Операторы ввода-вывода
- •Условный оператор
- •Задание к лабораторной работе
- •Программирование разветвляющегося
- •Оператор цикла for
- •Нестандартные типы данных
- •Ограниченные типы данных
- •Оператор выбора варианта
- •Задание к лабораторной работе
- •Лабораторная работа 3 регулярные типы данных. Селективная обработка массивов
- •Регулярные типы данных
- •Сортировка массивов
- •Примеры выполнения задания лабораторной работы
- •Задание к лабораторной работе
- •Лабораторная работа 4 вложенные циклы. Обработка двумерных массивов
- •Общие указания
- •Задания к лабораторной работе
- •Лабораторная работа 5 процедуры и функции
- •Процедуры
- •Функции
- •Задание к лабораторной работе
- •Лабораторная работа 6 обработка символьных данных
- •Символьный тип данных
- •Строковый тип данных
- •Процедуры
- •Функции
- •'Abcdef' copy(s,2,3) 'bcd'
- •'System' length(s) 6;
- •Задание к лабораторной работе
- •Лабораторная работа 7 комбинированные типы данных
- •Задание к лабораторной работе
- •Лабораторная работа 8 файлы и файловые типы данных
- •Файловый тип данных
- •Процедуры обработки файлов
- •Файлы с типом
- •Процедуры для работы с файлами с типом
- •Функции для обработки файлов с типом
- •Задание к лабораторной работе
- •Список рекомендованной литературы
Функции
Функции отличаются от процедур тем, что в них результат вычислений присваивается непосредственно имени функции.
Описание функции должно начинаться со служебного слова function и заканчиваться указанием типа функции:
function f(x:matr; var y:real):real;
Среди операндов функции обязательно должно быть присваивание имени функции некоторого значения: f:=<значение>;
Формальные параметры функций вводятся по тем же правилам, что и формальные параметры процедур.
Пример выполнения задания лабораторной работы
Пример 29. Вычислить значения выражения
.
Элементы массивов a(10) и b(5) определяются по формулам:
ai=3,1i2+4,9i-5, bi=10ln(i+5)+cos2(i).
Вычисление произведения модулей элементов оформим в виде процедуры, а вычисление суммы квадратов элементов - в виде функции. Программа имеет вид:
program pr29;
uses crt;
const m=10; n=5;
type raz=1..m; mac=array[raz] of real;
var a,b:mac; pa,pb,sa,sb,z:real;i:integer; w:char;
procedure pro(x:mac;k:integer; var p:real);
var i:integer;
begin p:=1;
for i:=1 to k do p:=p*abs(x[i])
end;
function sum(x:mac;k:integer):real;
var i:integer; s:real;
begin s:=0;
for i:=1 to k do s:=s+sqr(x[i]); sum:=s
END;
BEGIN CLRSCR;
WRITELN(' ':10,'МАССИВ А ');
for i:=1 to m do begin
a[i]:=3.1*sqr(i)+4.9*i-5;
Write(a[i]:8:2,' ':4);
IF I MOD 5 = 0 THEN WRITELN; END;
WRITELN; WRITELN(' ':10,'МАССИВ B ');
for i:=1 to n do begin
b[i]:=10*ln(i+5)*sqr(cos(pi*i));
write(b[i]:8:2,' ':4); end; writeln;
pro(a,m,pa); pro(b,n,pb);
sa:=sum(a,n); sb:=sum(b,n);
z:=(pa+pb)/(sa+sb); writeln;
WRITELN(' PA = ',PA:8:2,' PB = ',PB:8:2);
WRITELN(' SA = ',SA:8:2,' SB = ',SB:8:2);
WRITELN(' Z = ',Z:8:2);
w:=readkey
end.
Задание к лабораторной работе
Составьте программы для решения следующих задач, используя обращения к подпрограммам типа процедура или функция.
Даны массивы X(8), Y(8), Z(10), W(15), элементы которых определяются по формулам:
xi=a1и2-a2(5-i); yi=b1sin(2и)+b2ei-5;
zi=c1(и-4)+c2sin2(1,5и); wi=d1ln(0,1и)+d2cos3(и-2,5).
Значение коэффициентов a1,...,d2 приведены в таблице 6.
Таблица 6
Варианты |
a1 |
a2 |
b1 |
b2 |
c1 |
c2 |
d1 |
d2 |
01-05 |
2 |
10 |
4 |
6 |
8 |
3 |
5 |
12 |
06-10 |
3 |
9 |
6 |
5 |
6 |
5 |
6 |
10 |
11-15 |
4 |
8 |
9 |
4 |
2 |
7 |
8 |
6 |
16-20 |
5 |
7 |
10 |
3 |
4 |
9 |
7 |
8 |
21-25 |
6 |
5 |
12 |
2 |
3 |
11 |
9 |
4 |
26-29 |
7 |
6 |
14 |
1 |
5 |
13 |
10 |
2 |
Вариант m1. Подсчитайте процент <условие А> элементов в массивах Х,Y,Z. Определите минимальный из них.
Вариант m2. Подсчитайте общее количество <условие А> элементов в массивах Y,Z,W.
Вариант m3. Найдите сумму минимальных <условие А> элементов массивов X,Y,W.
Вариант m4. Найдите произведение максимальных <условие А> элементов массивов Y,Z,W.
Вариант m5. Сформируйте массив из разностей между суммами элементов <условие А> с четными и нечетными индексами в массивах Х,Y,Z.
Вариант m6. Найдите средние арифметические <условие А> элементов массивов Х,Y,Z и определите максимальное из них.
Вариант m7. Найдите сумму произведений квадратов <условие А> элементов массивов Х,Z,W.
Вариант m8. Сформируйте массив из разностей между максимальным <условие А> и минимальным элементами массивов Х,Y,Z.
Вариант m9. Сформируйте массив из сумм <условие А> элементов массивов Х,Y,W. Найдите максимальную сумму.
Вариант m0. Сформируйте новые массивы, которые состоят из <условие А> элементов массивов Y,Z,W.
Условие А приведенная в таблицы 7.
Таблица 7
m |
Условие А |
0,3 |
отрицательных |
1 |
положительных |
2 |
принадлежащих интервалу [-10;20] |