русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции


Дата добавления: 2015-01-08; просмотров: 634; Нарушение авторских прав


Если результатом подпрограммы является только одно значение, то имеет смысл оформить такую подпрограмму в виде функции.

Первая строка любой функции:

function <имя >(<список формальных параметров> ):<тип>;

где <список формальных параметров> - список имен переменных с указанием их типа, передающих информацию в функцию;

<имя> - возвращает результат в основную программу;

<тип> - тип возвращаемого результата.

Обращение из основной программы к функции возможно в структуре какого-либо оператора, например оператора присваивания:

<переменная>:= <имя> (список фактических параметров);

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

 

Примеры типовых задач на тему «Подпрограммы»

1. Задан одномерный массив вещественных чисел. Найти максимальный элемент массива и определить его номер.

Составим программу с использованием двух процедур:

· процедура ввода элементов массива;

· процедура поиска максимального элемента и определение его номера.

Для передачи массива в процедуру введем пользовательский тип mas.

Программа Пояснения
program PP; type mas=array[1..100] of integer; var a:mas; max:real; n,max,kmax:integer; procedure input_mas(n:integer ; var a:mas ); var i:integer; begin for i:=1 to n do readln(a[ i ]); end; procedure max_m(n:integer; a:mas; var max,kmax:integer ); var i:integer; begin max:=a[1];kmax:=1; for i:=1 to n do if a[i]>max then begin max:=a[i]; kmax:=i; end; end; begin writeln(‘ Введите n<=100’) ; readln( n ); writeln (‘ Введите элементы массива ‘); input_mas(n,a); max_m(n,a,max,kmax ); writeln(‘max=’,max,‘kmax=’,kmax); readln; end. Имя программы – РР {Описательная часть программы} Пользовательский тип данных   Глобальные переменные   Текст первой процедуры   {Описательная часть процедуры} {Исполнительная часть процедуры} Ввод элементов массива   Текст второй процедуры   {Описательная часть процедуры} {Исполнительная часть процедуры} Поиск максимального элемента     {Исполнительная часть программы} Вывод сообщения на экран Ввод размера массива Вывод сообщения на экран   Обращение к первой процедуре Обращение ко второй процедуре Вывод результатов на экран  

 



2. Составить программу вычисления n! с использованием функции, в которую вынесем подсчет факториала.

n! = 1* 2 * 3 * …* n

Введем обозначения:

n, k – размер и индекс массива, глобальные переменные.

p, i – значение факториала и индекс массива в функции, локальные переменные.

fun - имя функции, возвращает результат в основную программу.

 

Программа Пояснения
program factorial; var n,k:integer; function fun(k:integer):integer; var p,i:integer; begin p:=1; for i:=1 to k do p:=p*i; fun:=p; end; begin writeln('введите n'); readln(n); for k: = 1 to n do writeln(fun(k)); readln; end. Имя программы – factorial {Описательная часть программы} Глобальные переменные Текст функции {Описательная часть функции} {Исполнительная часть функции}   {Описательная часть процедуры} {Исполнительная часть процедуры}     {Исполнительная часть программы} Вывод сообщения на экран Ввод размера массива   Обращение к функции  

 

Имя функции в теле функции в операторах присваивания может стоять только слева от знака присваивания «:=», поэтому использована дополнительная переменная p для подсчета произведения.

 

3. Задан двумерный массив целых чисел. Определить количество четных чисел в массиве.

Составим программу с использованием двух процедур и функции :

· процедура ввода элементов массива input_mas;

· процедура вывода двумерного массива в виде матрицы print_mas;

· функция подсчета количества четных чисел kol_mas.

 

 

Программа Пояснения
program pp_1; type mas=array[1..10,1..10] of integer; var a:mas; n,m,i,j:integer ; procedure input_mas(n,m:integer; var a:mas); begin for i:=1 to n do for j:=1 to n do readln(a[i,j]); end; function kol_mas( n,m:integer; a:mas ):integer; var k:integer ; begin kol:=0; for i:=1 to n do for j:=1 to n do if not odd( a[ i,j ] ) then k:=k+1; kol:=k; end; procedure print_mas(n,m:integer; a:mas); begin for i:=1 to n do begin for j:=1 to n do write( a[i,j],‘ ‘); writeln; end; end; begin writeln(‘Введите n<=10 , m<=10’); readln (n,m); writeln(‘Введите элементы массива по строкам’); input_mas(n,m,a); writeln(‘Исходная матрица’); print_mas(n,m,a); writeln(‘Количество нечетных чисел =’,kol_mas(n,m,a)); readln; end. Имя программы – pp_1 {Описательная часть программы} Глобальные переменные     Процедура ввода матрицы   {Исполнительная часть процедуры}   Функция подсчета количества четных чисел {Описательная часть функции}   {Исполнительная часть функции}     Процедура вывода матрицы   {Исполнительная часть процедуры}     {Исполнительная часть программы} Вывод сообщения на экран Ввод размера массива Вывод сообщения на экран   Обращение к процедуре ввода массива   Обращение к процедуре вывода мас-ва Обращение к функции подсчета количества четных чисел в массиве  

 

Выражение not odd( a[ i,j ] ) – «истинно», если элемент массива четное число.

 

Вопросы для самоконтроля

1. В каких случаях прибегают к построению подпрограмм?

2. В каком месте программы располагаются функции или процедуры?

3. Что такое процедура?

4. Какова структура процедуры?

5. Как передается информация в процедуру?

6. Каким образом возвращаются результаты работы процедуры в основную программу?

7. Какое соответствие должно быть между формальными и фактическими параметрами?

8. Какие переменные называются глобальными? Время существования глобальных переменных?

9. Какие переменные называются локальными? Время существования локальных переменных?

10. Когда используют директиву forward?

11. В каких случаях целесообразно прибегать к построению функций?

12. Как передается информация в функцию?

13. Каким образом возвращается результат работы функции в основную программу?



<== предыдущая лекция | следующая лекция ==>
Процедуры | Эволюция языков программирования


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.203 сек.