Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Основные различия между функциями и процедурамиСодержание книги
Поиск на нашем сайте
1. Функция, как правило, возвращает одно единственное значение, например Sin (x). Процедура может возвращать сложные структуры, например массивы. 2. Заголовок функции (ее первая строка) завершается указанием типа возвращаемого значения (например, real, integer и т.д.). В заголовке процедуры такая информация не требуется. 3. В конце тела функции ей присваивается то значение, для вычисления которого она предназначена, например, Sum_Mas:=S; 4. Функция может быть операндом математического выражения. Процедура не может быть частью выражения.
Правила применения подпрограмм
Нельзя в заголовке подпрограммы описывать сложные структуры, необходимо ссылаться на описание типов этих структур в основной программе. Например, Procedure pr1(a: array [1..n] of integer); - нельзя! Можно: Procedure pr1(a: Mas_Type);, где Mas_Type – имя типа, описанного в основной программе: const n=100; Type Mas_Type= array[1..n] jf integer; 2. Типы формальных и фактических параметров должны быть согласованными. 3. Подпрограммы с параметром-значением не возвращают этот параметр главной программе, параметр значение копируется в стек; им может быть переменная, константа или математическое выражение. 4. Процедуры с параметром-переменной возвращают этот параметр программе, в стек копируется только адрес параметра-переменной. Фактическими параметрами параметров переменных могут быть только переменные. 5. Подпрограммы с параметром-константой не могут изменить этот параметр в главной программе, в стек копируется только адрес параметра-константы, она может быть переменной, константой или математическим выражением. 6. Желательно, чтобы имена формальных и фактических параметров были различными. Глобальная переменная в подпрограмме становится локальной, если она объявлена в заголовке подпрограммы или в её разделе описания переменных. 7. В подпрограммах могут быть объявлены локальные метки, константы, переменные, процедуры и функции, но не может быть объявлена директива компилятора Uses.
Примеры
type CalsData: TFileData; procedure NAME; //Описание процедуры var p: Real; u: Byte; begin If FileExists(Cals) then Reset(cals) else Rewrite(cals); // установим позицию чтения в конец файла seek (cals,filesize(cals)); CalsData.Name:= 'название параметра'; CalsData.ExtDat:= {сами данные}; Write(Cals,CalsData); ShowMessage('При выполнении файловой операции возникла ошибка'+ ' № '+ IntToStr(E. ErrorCode)+': '+SysErrorMessage(GetLastError)); on E: EAccessViolation do ShowMessage('Ошибка!: '+SysErrorMessage(GetLastError)); end; открытый файл end; Перепишем файл a.dat в файл b.dat, удалив признаки конца файла: Proedure MyWrite; var a:Byte; i:Longint; begin AssignFile(f2, 'b.dat'); Reset(f1); begin if a <> 26 then Write(f2, a); end; Файл записей. Пишем и читаем любую: Procedure MyBook; type TR=Record Name:string[100]; r:TR; assignFile(f, 'MyFileName'); //open file if FileExists('MyFileName') then reset(f) seek(f,10); seek(f, 20); write(f,r); 3.3. Контрольные вопросы
12. В каких случаях применимы параметры – константы? 13. Почему в функциях нежелательно использовать параметры – переменные?
Задания к лабораторной работе № 3 Подпрограммы Вариант 1. 1.Треугольник задан координатами своих вершин. Составить программу для вычисления его площади. 2.Даны две дроби А/В и С/D (A,B,C,D-натуральные числа). Составить программу для вычитания из первой дроби второй. Результат должен быть несократимой дробью.
Вариант 2. 1.Заменить отрицательные элементы линейного массива их модулями, не пользуясь стандартной функцией вычисления модуля. Подсчитать количество произведенных замен. 2.Даны две дроби A/В и С/D (A,B,C,D-натуральные числа). Составить программу для сложения дробей. Результат должен быть несократимой дробью.
Вариант 3. 1.Сформировать массив X(N), N-й член которого определяется формулой X(N)=1/N!. 2.На плоскости заданы своими координатами n точек. Создать массив размером n(n-1), элементами которого являются расстояния от каждой из точек до n-1 других.
Вариант 4. 1.Даны числа X,Y,Z,T – длины сторон четырехугольника. Вычислить его площадь, если угол между сторонами длиной X и Y –прямой. 2.Составить программу для вычисления суммы факториалов всех чётных чисел от m до n.
Вариант 5. 1.Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке (например, дано число 156, нужно получить 651). 2.Дано простое число. Составить функцию, которая будет находить следующее за ним простое число.
Вариант 6. 1.Написать программу вычисления суммы p/q=1-1/2+1/3-…+((-1)^(n+1))/n для заданного числа n. Дробь p/q должна быть несократимой(p, q – натуральные). 2.Составить функцию для нахождения наименьшего нечётного натурального делителя k (k≠1) любого заданного натурального числа n.
Вариант 7. 1.Напечатать все пары чисел-близнецов из отрезка [n,2n], где n – заданное натуральное число больше 2. 2.Дано натуральное число N. Составить программу для формирования массива, элементами которого являются цифры числа N.
Вариант 8. 1.Найти все пары дружественных чисел, которые не больше данного числа К. 2.Составить программу, определяющую, в каком из данных двух чисел больше цифр. Написать программу вычисления суммы 1+1/2+1/3+…+1/n для зааданного числа n. Результат представить в виде несократимой дроби p/q (p, q – натуральные).
Вариант 9. 1.Составить программу для нахождения чисел из интервала [M,N], имеющих наибольшее количество делителей. 2.Найти все числа Армстронга от 1 до К написать программу, которая находит и выводит на печать все четырехзначные числа вида abcd, для которых выполняется: 1) a, b, c, d – разные цифры; 2) ab - cd = a+ b+ c+ d.
Вариант 10. 1.Даны числа X,Y,Z,T-длины сторон четырёхугольника. Вычислить его площадь, если угол между сторонами X и Y- прямой. 2.Составить программу для вычисления суммы факториалов, всех чисел, кратных 3, от А до В.
Вариант 11. 1.Сформировать массив X(N), N-ый член которого определяется формулой X(N)=1/N! 1.Дано простое число. Составить функцию, которая будет находить следующие К простых чисел. 2.Заменить отрицательные элементы линейного массива их модулями, не пользуясь стандартной функцией вычисления модуля. Подсчитать количество произведённых замен.
Вариант12. 1.Найти все натуральные числа, не превосходящие заданного n, которые делятся на каждую из своих цифр. 2.Найти все простые натуральные числа, не превосходящие n, двоичная запись которых представляет собой палиндром.
Вариант 13. 1.Составить подпрограмму, которая будет находить корни квадратного уравнения. 2.Написать программу вычисления суммы 1+1/2+1/3+…+1/n для заданного числа n. Результат представить в виде несократимой дроби p/q (p,q-натуральные).
Вариант 14. 1.Даны натуральные числа K и N. Составить программу формирования массива А, элементами которого являются числа, сумма цифр которых равна K и которые не больше N. 2.Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789).
Вариант 15. 1.Дано простое число. Составить функцию, которая будет находить следующие за ним последнее простое число.. 2. Имеется часть катушки с автобусными билетами. Номер билета шестизначный. Составить программу, определяющее количество счастливых билетов на катушке, если меньший номер билета – N, больший – М(билет является счастливым, если сумма первых трех его цифр равнв сумме последних трех).
|
||||
Последнее изменение этой страницы: 2016-07-16; просмотров: 922; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.171.71 (0.007 с.) |