Лабораторная работа №11 Создание процедур и функций, рекурсивные процедуры и функции

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

Пример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.

Заданы два символьных массива разной размерности. Отсортировать каждый массив по алфавиту методом выбора.