
- •1) Предмет и задачи информатики.
- •2) Истоки и предпосылки информатики.
- •3) Структура современной информатики.
- •4. Понятие информации.
- •5.Количество информации.
- •7..Свойства информации
- •8. Устройство персонального компьютера. Основные узлы компьютера и их назаначение.
- •9. Основные принципы построения и работы компьютера
- •10.Хранение информации в компьютере. Понятие файла. Файловая система
- •11. Понятие информационной технологии
- •12. Понятие о компьютерных сетях. Локальные и глобальные сети
- •13.Основы интернета.Основные протоколы
- •14.Службы интернета
- •17. Методы проектирования алгоритмов.
- •18. Способы описания алгоритмов. Основы графического способа.
- •19. Типовые структуры алгоритмов. Основные виды вычислительных процессов. Примеры.
- •20 Вычисление суммы числового ряда
- •22 Сортировка элементов в массиве
- •3.6.1. Сортировка методом "пузырька"
- •3.6.2. Сортировка выбором
- •3.6.3. Сортировка вставкой
- •23 Системы программирования и их состав.
- •24. Программирование, языки, уровни языков
- •25..По, классификация
- •26. Ос, назначение, примеры
- •28.Прикладное по. Примеры.
- •29. Паскаль, характеристика, основные правила, структура, примеры.
- •30. Основные элементы языка паскаль, описание констант и переменных, примеры
- •31. (Паскаль) Типы данных. Объявление типа данных в тексте программы. Преобразования типов.
- •32 .Выражения паскаль. Основные операции, их приоритет.
- •33. Операторы паскаль, составной оператор, операторные скобки, опер-р присваивания значений, примеры
- •34.Ввод/вывод данных паскаль. Использ-е стандартных процедур ввода/вывода. Примеры использ-я Ввод данных
- •Вывод данных
- •35.Условный оператор паскаль, ветвление программы, примеры
- •37. Метки паскаль, оператор безусловного перехода, примеры
- •42.Процедуры и функции. Правила записи в программе. Примеры.
- •43. Процедуры, правила обращения к процедурам, передача данных в процедуру и обратно. Отличие функции от процедуры, примеры.
- •59.Интерполяция по Лагранжу.
- •60. Метод разделенных разностей.
42.Процедуры и функции. Правила записи в программе. Примеры.
Относительно самостоятельные фрагменты проги, особым способом оформленные и снабженные именем.
Для обмена даннми м/у основной прогой и подпрогами использ-ся одни или неск-ко параметров вызова (они могут передавать данные в подпроги или вохвращать результ вычислений в основную прогу)
Синтаксически процедуры и функции состоят из заголовка (содержащего ключевое слово procedure или function, имени, за которым может следовать описание передаваемых параметров в скобках, тип возвращаемого значения через символ двоеточия для функций и точки с запятой для процедур), после заголовка следует тело, после которого ставится символ;.
Процедуры и функции
Процедуры и функции в Паскале (как и во почти всех остальных языках программирования) являются комфортным средством для однократного автономного описания тех фрагментов метода, которые повторяются в различных его частях. Такие описания образуют раздел, который должен быть крайним из числа разделов описаний программы. Для выполнения обрисованных в этом разделе фрагментов метода в разделе операторов программы должны содержаться обращения к подходящим процедурам и функциям.
В неких языках программирования (к примеру, Бейсик, Фортран) такие автономные описания частей метода именуют подпрограммами. Тут этот термин, стало быть, будет употребляться для общего обозначения процедур и функций.
Описание подпрограммы состоит из заголовка и блока. Заголовок процедуры имеет вид:
Procedure < имя > (< список формальных параметров >);
Заголовок функции:
Function < имя >(< список формальных параметров >): < тип >;
Перечень формальных характеристик необязателен и может отсутствовать. Ежели же он есть, то в нем должны быть перечислены, мягко говоря, имена формальных характеристик и их тип. Несколько однотипных характеристик можно объединять в подсписки, к примеру:
Procedure SB( a : Real; b,d : Integer; c : Char);
Операторы подпрограммы как раз разглядывают перечень формальных характеристик как типичное расширение раздела описаний: все переменные из этого перечня могут употребляться снутри подпрограммы.
Обращение к подпрограммам осуществляется указанием имени подпрограммы и перечня фактических характеристик, в качестве которых могут так сказать выступать константы, переменные и выражения, отделяемые друг от друга запятой. Количество и типы фактических характеристик при обращении к подпрограмме должны точно соответствовать количеству и типам ее формальных характеристик. В момент обращения к подпрограмме происходит подмена формальных характеристик на фактические. Таковым образом осуществляется настройка метода подпрограммы на определенную задачку. Само обращение к процедурам и функциям происходит по различному. Для обращения к процедуре употребляется особый оператор, состоящий из имени процедуры и перечня фактических характеристик. Для обращения к функции ее имя со перечнем фактических характеристик обязано войти как операнд в некое выражение. Отсюда, в конце концов, вытекает несколько различий описания функции от описания процедуры:
- в виде функции, вообщем то, описывается метод, результатом выполнения которого является скалярная величина;
- в блоке функции должен быть хотя бы один оператор присваивания с именованием функции в левой части;
- в заголовке функции должен быть указан тип функции (тип возвращаемого через имя функции результата).
Хоть какой из формальных характеристик подпрограммы быть может или параметром-значением, или параметром-переменной.
В прошлом примере характеристики были определены как параметры-значения. Ежели характеристики определяются как параметры-переменные, перед ними нужно ставить зарезервированное слово Var, к примеру:
Procedure FF( Var a : Real);
Если формальный параметр объявлен как параметр-переменная, то при обращении к подпрограмме ему должен соответствовать фактический параметр в виде переменной нужного типа; если формальный параметр объявлен как параметр-значение, то при обращении ему может соответствовать выражение.
Для того, чтобы понять, в каких случаях использовать параметры-значения, а в каких - параметры переменные, рассмотрим, как осуществляется замена формальных параметров на фактические в момент обращения к подпрограмме.
Если параметр определен как параметр-значение, то перед вызовом подпрограммы это значение вычисляется, полученный результат копируется во временную память и передается подпрограмме. Если же параметр определен как параметр-переменная, то при вызове подпрограммы передается сама переменная, а не ее копия. Любые возможные изменения в подпрограмме параметра-значения никак не воспринимаются вызывающей программой, так как в этом случае изменяется копия фактического параметра, в то время как изменения параметра-переменной приводит к изменению самого фактического параметра в вызывающей программе.
Поэтому параметры-переменные могут использоваться как "средство связи" алгоритма, реализованного в подпрограмме, с "внешним миром”, в частности, с помощью этих параметров процедура передает результаты своей работы вызывающей программе.
Однако, злоупотребление этими возможностями делает программу, как правило, трудной в понимании и сложной в отладке. В соответствии с требованиями хорошего стиля программирования рекомендуется использовать передачу результатов через фактические параметры для процедур и через имя для функций.
Переменные, описанные в разделе описаний переменных подпрограммы, называются локальными переменными этой подпрограммы и доступны только в ней.
Концепция глобальных и локальных имен относится не только к переменным но и к другим описываемым объектам Паскаля: константам, типам, процедурам и функциям.
Program Calc;
Var n,m: Integer; f: Real;
Function fact(n: Integer): Integer;
Var i,p : Integer;
Begin p:=1;
For i:=2 To n do p := p* i;
fact:= p
End;
Begin
Read(m,n);
f:= fact(n) * fact(m) / fact(n+m);
Writeln(f)
End.