Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Реферат: Подпрограммы (процедуры и функции)

Название: Подпрограммы (процедуры и функции)
Раздел: Рефераты по информатике, программированию
Тип: реферат Добавлен 20:17:47 13 июля 2005 Похожие работы
Просмотров: 1533 Комментариев: 1 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

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

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

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

При использовании вспомогательных алгоритмов необходимо учитывать способ передачи значений исходных данных для них и получения результата от них. Аргументы вспомогательного алгоритма — это переменные, в которых должны быть помещены исходные данные для решения соответствующей подзадачи. Результаты вспомогательного алгоритма — это также переменные, где содержаться результаты решения этих подзадач, а также результатом может быть конкретное действие, которое совершает компьютер под действием подпрограммы.

Подпрограммы могут быть двух видов: подпрограмма без параметров и подпрограмма с параметрами. Обращение к подпрограмме может быть организовано из любого места основной программы или другой подпрограммы сколько угодно раз.

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

Подпрограмма с параметрами используется для записи многократно повторяющихся действий при разных исходных данных. Подпрограммы с параметрами можно разделить на два типа: подпрограммы-функции и просто подпрограммы с параметрами (их называют процедурами).

При составлении подпрограмм с параметрами надо соблюдать следующие правила:

1) каждая подпрограмма имеет свое имя и список формальных параметров;

2) процедура из основной программы вызывается командой вызова, которая по форме ничем не отличается от вызова команды исполнителя. Результат присваивается одной или нескольким переменным, которые находятся в списке формальных параметров. Но результатом могут быть, конечно, не только значения переменных, но какое либо действие, выполненное ЭВМ.

Пример 1. Используем алгоритм нахождения наибольшего общего делителя двух натуральных чисел в качестве вспомогательного при решении задачи: составить программу вычитания дробей (a, b, c, d — натуральные числа). Результат представить в виде обыкновенной несократимой дроби.

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

1) Ввести натуральные числа M, N.

2) Если M=N, перейти к п. 5, иначе к следующему пункту.

3) Если M>N, то M:=M-N, иначе N:=N-M.

4) Перейти к п. 2.

5) Передать значение M в основную программу.

6) Конец подпрограммы.

Основная программа.

1) Ввести значения A, B, C, D.

2) E:=A*D - B*C.

3) F:= B*D.

4) Если E=0, вывести значение E и перейти к п. 9, иначе перейти к следующему пункту.

5) M:=|E|, N:=F, перейти к подпрограмме вычисления НОД.

6) G := M.

7) E и F нацело разделить на G.

8) Вывести значения E и F на печать.

9) Конецпрограммы.

Program Sub;

Var A, B, C, D, G, E, F : Integer;

Procedure Nod(M, N : Integer; Var K : Integer);

Begin

While M <> N Do

If M > N Then M := M - N Else N := N - M;

K := M

End;

Begin

Write('Введите числители и знаменатели дробей:');

ReadLn(A, B, C, D);

E := A * D - B * C;

F := B * D;

If E = 0 Then WriteLn(E)

Else

Begin

Nod(Abs(E), F, G);

E := E Div G;

F := F Div G;

WriteLn('Ответ: ', E, '/', F)

End

End.

Как видно из примера, объявление и тело подпрограмм находится в разделе описаний. В заголовке подпрограммы содержится список формальных параметров с указанием их типа, которые условно можно разделить на входные и выходные (перед ними стоит служебное Var). При обращении к процедуре указывается ее имя и список фактических параметров. Формальные и фактические параметры должны соответствовать по количеству и по типу.

Вызов процедуры осуществляется следующим образом:

<Идентификатор (имя) процедуры>(<список фактических параметров>);

Например,

Nod(Abs(E), F, G);

По способу передачи фактических значений в подпрограмму в Turbo Pascal 7.0 выделяют параметры-переменные, параметры-значения, параметры-константы и массивы открытого типа, строки открытого типа, параметры-процедуры, параметры-функции (подробности — в литературе).

Функция (в отличие от процедуры) всегда возвращает единственное значение.

Покажем, как изменится подпрограмма из примера, если ее записать в виде функции.

Function Nod(M, N : Integer) : Integer;

Begin

While M <> N Do

If M > N Then M := M - N Else N := N - M;

Nod := M

End;

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

Вызов функции будет следующим:

G := Nod(Abs(E), F);

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

При решении задач целесообразно проанализировать условие, записать решение в крупных блоках (не являющихся операторами Pascal), детализировать каждый из блоков (записав в виде блоков, возможно, по-прежнему не операторов Pascal), и т.д., продолжать до тех пор, пока каждый из блоков не будет реализован с помощью операторов языка.

Пример 2. Дано натуральное число n. Переставить местами первую и последнюю цифры этого числа.

Program Integ;

Var N : Integer;

Begin

Write('Введите натуральное число: ');

ReadLn(N);

If Impossible(N)

Then WriteLn('Невозможно переставить цифры, возникнет переполнение')

Else Begin

Change(N);

WriteLn('Ответ: ', N)

End;

End.

Можно заметить, что необходимо детализировать логическую функцию Impossible, которая диагностирует, возможна ли перестановка, и процедуру Change, которая эту перестановку (в случае, если она возможна) выполняет.

Function Impossible(N : Integer) : Boolean;

Begin

If Number(N) < 5

Then Impossible := False

Else Impossible := (N Mod 10 > 3) Or

(N Mod 10 = 3) And

(N Mod 10000 Div 10 * 10 + N Div 10000 > MaxInt Mod 10000)

End;

Здесь необходимо детализировать функцию Number, возвращающую количество цифр в записи натурального числа (т.к. функция Impossible содержит ее вызов, то в разделе описаний функция Number должна ей предшествовать).

Function Number(N : Integer) : Integer;

Var Vsp : Integer;

Begin

Vsp := 0;

While N > 0 Do

Begin

Vsp := Vsp + 1; N := N Div 10

End;

Number := Vsp

End;

Наконец, последняя процедура.

Procedure Change(Var N : Integer);

Var Kol, P, S, R : Integer;

Begin

Kol := Number(N);

P := N Mod 10; {последняяцифра}

If Kol > 1 Then

S := N Div Round(Exp((Kol - 1) * Ln(10)))

Else S := 0; {перваяцифра}

R := N Mod Round(Exp((Kol - 1) * Ln(10))) Div 10;

N := P * Round(Exp((Kol - 1) * Ln(10))) + R * 10 + S

End;

Возможны также подпрограммы, которые вызывают сами себя. Они называются рекурсивными. Создание таких подпрограмм является красивым приемом программирования, но не всегда целесообразно из-за чрезмерного расхода памяти ЭВМ.

Пример 3. Найти максимальную цифру в записи данного натурального числа.

Program MaxDigit;

Type NaturLong = 1..(High(LongInt));

Digit = 0..9;

Var A : LongInt;

Function Maximum(N : LongInt) : Digit;

Begin

If N < 10

Then Maximum := N

Else If N Mod 10 > Maximum(N Div 10)

Then Maximum := N mod 10

Else Maximum := Maximum(N Div 10)

End;

Begin

Write('Введите натуральное число: ');

ReadLn(A);

WriteLn('Максимальнаяцифраравна ', Maximum(A))

End.

При создании функции Maximum было использовано следующее соображение: если число состоит из одной цифры, то она является максимальной, иначе если последняя цифра не является максимальной, то ее следует искать среди других цифр числа. При написании рекурсивного алгоритма следует позаботиться о граничном условии, когда цепочка рекурсивных вызовов обрывается и начинается ее обратное «раскручивание». В нашем примере это условие N < 10.

Более подробно о рекурсии говорится в следующей статье.

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
01:10:52 24 ноября 2015

Работы, похожие на Реферат: Подпрограммы (процедуры и функции)
Основы дискретной математики
Федеральное агентство по образованию Новомосковский институт (филиал) Государственного образовательного учреждения высшего профессионального ...
В тексте программы в блоке непосредственного алгоритма сортировки в фигурных скобках находится строка, которая при удалении скобок выполнит требуемое (параметр k необходимо описать ...
m:=(L+R) div 2; if a [m] <=x then L:=m+1 else R:=m;
Раздел: Рефераты по информатике, программированию
Тип: учебное пособие Просмотров: 4173 Комментариев: 2 Похожие работы
Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать
Алгоритмический язык Паскаль
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ЧЕРЕПОВЕЦКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ им. А.В. ЛУНАЧАРСКОГО КАФЕДРА ИНФОРМАТИКИ Дипломная ...
Уточним еще раз, что локальные переменные объявляются внутри блока процедуры и они бывают двух видов: формальные параметры заголовка процедуры и вспомогательные переменные в ...
PROCEDURE PRIMER(VAR a,b,c:INTEGER; VAR m:CHAR; VAR i,j:REAL);
Раздел: Рефераты по информатике, программированию
Тип: дипломная работа Просмотров: 2870 Комментариев: 2 Похожие работы
Оценило: 1 человек Средний балл: 4 Оценка: неизвестно     Скачать
Защита информации в системах дистанционного обучения с монопольным ...
АННОТАЦИЯ Данная диссертация посвящена вопросам построения систем защиты информации для программных пакетов, используемых в монопольном доступе. В ...
Данная подпрограмма предназначена для генерации 4 алгоритмов шифрования/расшифрования.
else if (operation == EO_DIV)
Раздел: Рефераты по информатике, программированию
Тип: реферат Просмотров: 1381 Комментариев: 2 Похожие работы
Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать
Object Pascal
1. Основы языка Object Pascal 1.1. Алфавит языка Основными символами языка Object Pascal являются: - символы _ - 26 больших и 26 малых латинских букв ...
Наружный цикл со счетчиком i в теле цикла содержит два оператора - оператор присваивания (вычисление значения вспомогательной переменной R с целью сокращения времени вычислений) и ...
Процедура c именем ByRef содержит три параметра - переменную X и две константы L и K. Тело процедуры состоит из операторов, заключенных в операторных скобках begin - end.
Раздел: Рефераты по информатике
Тип: реферат Просмотров: 2118 Комментариев: 4 Похожие работы
Оценило: 2 человек Средний балл: 4 Оценка: неизвестно     Скачать
Семантический анализ структуры EXE файла и дисассемблер (с примерами и ...
НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ УЗБЕКИСТАНА ИМЕНИ МИРЗО УЛУГБЕКА ФАКУЛЬТЕТ КОМПЬЮТЕРНЫХ ТЕХНОЛОГИИ На тему: Семантический разбор EXE-файла . Выполнил ...
procedure HexString(var Str; N: INTEGER);
end else begin
Раздел: Рефераты по информатике, программированию
Тип: реферат Просмотров: 913 Комментариев: 2 Похожие работы
Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать
Основные понятия алгоритмического языка
Iмперiя Рефератiв online! http://www.ssft.net/imperia/ Основные понятия алгоритмического языка 1. О С Н О В Н Ы Е П О Н Я Т И Я А Л Г О Р И Т М И Ч Е ...
var P,Q,R: Integer;
begin.......end
Раздел: Рефераты по информатике, программированию
Тип: реферат Просмотров: 1109 Комментариев: 7 Похожие работы
Оценило: 4 человек Средний балл: 4.8 Оценка: неизвестно     Скачать
Языки и технология программирования
Министерство науки и образования Кыргызской Республики Кыргызский Экономический Университет Курсовая работа На тему: "Языки и технология ...
var i:integer;
R : record m : string[10]; d,y : integer; end =
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа Просмотров: 397 Комментариев: 2 Похожие работы
Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать
Вопросы и ответы к экзаменам В-1
1999) 1. Алгоритм. Свойства алгоритма. Способы записи алгоритма (общ.) Алгоритм - это система формальных правил однозначно приводящая к решению ...
var matrix [1..10,1..15] of integer
Объявление подпрограмм в интерфейсной части авто компилируется с использованием дальней модели памяти {far и near}, что обеспечивает доступ к подпрограмме из основной программы и ...
Раздел: Рефераты по информатике, программированию
Тип: шпаргалка Просмотров: 171 Комментариев: 2 Похожие работы
Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

Все работы, похожие на Реферат: Подпрограммы (процедуры и функции) (3284)

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

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



Результаты(150330)
Комментарии (1830)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru