Общие сведения о подпрограммах

Лабораторная работа № 4

Массивы.

Процедуры и функции.

Цель работы: научиться правильно описывать различные массивы, уметь инициализировать массивы, распечатывать содержимое массива; научится решать задачи на использование массивов и подпрограмм.

Общие сведения.

Массив - это структурированный тип данных, который используется для описания упорядоченной совокупности фиксированного числа элементов одного типа, имеющих общее имя. Для обозначения элементов массива используются имя переменной-массива и индекс.

В практике программирования часто складываются ситуации, когда одну и ту же группу операторов, реализующих определенную цель, требуется повторить без изменений в нескольких местах программы. Для избавления от столь нерациональной траты времени была предложена концепция подпрограммы.

Подпрограмма – именованная, логически законченная группа операторов языка, которую можно вызвать для выполнения любое количество раз из различных мест программы. В языке Free Pascal существуют два вида подпрограмм: процедуры и функции. Главное отличие процедуры от функции заключается в том, что результатом исполнения операторов, составляющих тело функции, всегда является некоторое значение, поэтому функцию можно использовать непосредственно в выражениях, наряду с переменными и константами.

Перед выполнением работы необходимо изучить правила описания и использования переменных типа массив, правила описания подпрограм [см. Приложения].

Пример Найти сумму положительных элементов в массиве.
Этапы решения задачи:

1. Алгоритм решения довольно прост - в цикле будем "пробегать" массив, сравнивая его ячейки с 0 и суммировать, если они >0.

2. Составим блок-схему программы


Уточним из каких блоков состоит блок"Суммирование положительных ячеек"


Содержание этих блоков простое, поэтому не стоит их уточнять.

3. Напишем программу на языке Паскаль

program example;

type

Tarray = array[1..100] of integer;

Var v: Tarray;

N,i,s:integer;

Procedure vvod_data(var m:Tarray;n:integer);

Var i:integer;

Begin

Writeln('Введите ',n,' чисел через пробел');

For i:= 1 to n do read(m[i]);

End;

Function summ(m:TArray):integer;

Var s:integer;

Begin

S:=0;

For i:= 1 to n do if m[i]>0 then s:= s+m[i];

Summ:=s;

End;

begin

write('Введите размерность массива N= '); readln(n);

vvod_Data(v,n);

s:= summ(v);

writeln('Сумма= ',s);

end.

Задания

Вариант 1

1. Вводится массив из N целых чисел. Определить, содержит ли последовательность хотя бы одно число, сумма цифр в котором равна их количеству. Создать подпрограмму, которая возвращает сумму и количество цифр в числе.

Вариант 2

1. Вводится массив из N целых положительных чисел. Определить, в каком из чисел наибольшая сумма всех его цифр. Для подсчета суммы цифр числа использовать подпрограмму.

Вариант 3

1. Вводится матрица из NхМ целых положительных чисел. Найти число с наибольшим количеством нулей. Составить подпрограмму для подсчета нулей в числе.

Вариант 4

1. Вводится массив из N целых положительных чисел. Определить наименьшую цифру у каждого числа. Написать подпрограмму, которая для заданного числа возвращает в нем наименьшую цифру.

Вариант 5

1. Вводится матрица из NхМ целых положительных чисел. Заменить все простые числа матрицы на 0. Определение простых чисел выполнить в подпрограмме.

Контрольные вопросы

1. Каким образом определяются переменные типа массив (одномерный и двумерный)?

2. Как осуществляется доступ к отдельному элементу одномерного и двумерного массива?

3. Каким образом выводятся элементы массива на экран?

4. Для чего нужны в программе процедуры и функции?

5. В чем отличие между процедурой и функцией?

6. Чем отличаются формальные и фактические параметры?

7. Чем отличаются параметры-значения и параметры-переменные?

8. Как объявляются глобальные и локальные переменные? Каково правило видимости этих переменных?


Приложение 1.

Подпрограммы

Общие сведения о подпрограммах.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: