Лабораторная работа №11 Создание процедур и функций, рекурсивные процедуры и функции
Содержание
Пример1
Даны два числа. Поменять местами их значения.
Program ex1; Var a,b:integer;{ описание глобальных переменных} Procedure swap(var x,y:integer);{ описание процедуры ; x, y-формальные параметры процедуры } Var z:integer ; { описание локальной переменной } Begin Z:=x; x:=y; y:=z;{ тело процедуры} End; Begin { начало программы } Write(' Введи два числа: '); readln(a,b); Writeln('A= ',a,'B= ',b); Swap(a,b); { вызов процедуры; а, в - фактические значения формальных параметров процедуры } Writeln(' После перестановки:'); Writeln('A= ',a,' B= ',b); Readln; End.
Пример 2
Определить наибольший элемент в трех массивах одинаковой размерности.
Program ex2; type MArray= array[1..5] of byte; const mas1:MArray=(3,7,1,2,4); mas2:MArray=(5,2,1,6,3); mas3:MArray=(6,8,6,4,5); var i:byte; mas_max:MArray; function max( var mas: MArray ): byte;{ описание функции } var j,m:byte; Begin m:=mas[1]; for j:=2 to 5 do if mas[j] > m then m:=mas[j] ; max:=m; End; Begin mas_max[1]:=max(mas1); writeln('Max1=',mas_max[1]); mas_max[2]:=max(mas2); writeln('Max2=',mas_max[2]); mas_max[3]:=max(mas3); writeln('Max3=',mas_max[3]); write(' Наибольший элемент среди трех массивов =',max(mas_max) ); readln; End.
Пример 3
Рекурсивная функция.Вычисление факториала числа.
Function factorial(n:word):word; Begin If n<>1 then factorial:=n*factorial(n-1) Else factorial:=1; End;
Задания к работе
Составьте блок-схемы и программы к задачам своего варианта:
Вариант 1.
Заданы три строки. Определить количество точек в первой строке, запятых во второй и пробелов в третьей.
Вариант 2.
Заданы три массива разной размерности. Определить, в котором массиве максимальный элемент меньше.
Вариант 3.
Заданы три числа А, В, С. Если А>В, вычислить К=(А-В)!. Если В=С, вычислить К=А!+С!. В противном случае вычислить К=С!+(А+В)!
Вариант 4.
Сформировать три текстовых файла. Каждый файл содержит случайные числа. Количество чисел в каждой строке файла и во всём файле вводятся с клавиатуры.
Вариант 5.
Заданы три натуральных числа А, В, С. Представить каждое число в восьмеричной системе.
Вариант 6.
Сформировать три файла целого типа. Определить имя файла, сумма чисел которого больше.
Вариант 7.
Заданы три строки разной длины. Определить, сколько слов в каждой строке.
Вариант 8.
Заданы три массива разной размерности. Отсортировать каждый массив по убыванию методом "пузырька".
Вариант 9.
Сформировать три множества: букв, цифр, знаков препинания. Вывести на экран каждое множество в [] скобках.
Вариант 10.
Заданы два символьных массива разной размерности. Отсортировать каждый массив по алфавиту методом выбора.