Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Метод последовательной детализацииСодержание книги
Поиск на нашем сайте
x:=101; Следующим шагом детализируем действие "x-простое". Переборные задачи Задача. Вывести все тройки целых положительных a, b, c <100: a2+b2=c2 for a:=1 to 99 do Решение 1а. for a:=1 to 99 do Решение 1б. for a:=1 to 99 do Но! Нельзя заниматься преждевременной оптимизацией! Оператор безусловного перехода goto Оператор безусловного перехода goto служит для того, чтобы прервать естественную последовательность выполнения операторов и указать, какой из операторов программы должен выполняться следующим. Чтобы на некоторый оператор можно было совершить переход, его метка: оператор Метка представляет собой идентификатор и должна быть описана в разделе описания меток в виде: label имя [, имя ] Сам оператор goto имеет следующий синтаксис: goto метка Переход внутрь другого оператора запрещен: С помощью оператора goto можно моделировать все другие управляющие операторы языка. Пример 1. Цикл... эквивалентно Цикл... Пример 2. Цикл... эквивалентно Цикл... Пример 3. repeat эквивалентно lbl: Пример 4. while B do эквивалентно lbl1: Пример 5. if A then эквивалентно if not A then goto lbl1; Пример 6. case i of эквивалентно if i=1 then goto lbl1; Использовать оператор goto в программах небезопасно и нежелательно. Во всех случаях программу с использованием оператора goto можно заменить на эквивалентную программу без использования goto. В частности, процедуры break и continue введены в язык, чтобы заменить наиболее часто используемые случаи оператора goto перехода на оператор, следующий за циклом, и перехода на конец тела цикла. Следует отметить, что команда безусловного перехода (JMP) обязательно присутствует в языке ассемблера и интенсивно используется. По существу, приведенные выше примеры показывают, как на языке ассемблера моделируются те или иные управляющие конструкции языка программирования высокого уровня. Подпрограммы. Процедуры и функции Подпрограммой называется последовательность операторов, оформленная специальным образом, имеющая имя и список параметров. Подпрограмма может вызываться многократно с различными параметрами. Цели введения подпрограмм:
Процедуры Пример. Составить процедуру вычисления среднего арифметического и среднего геометрического А и В. С ее помощью найти среднее арифметическое и среднее геометрическое пар A,B; A,C; B,C. procedure Mean(A,B: real; var MA,MG: real); var A,B,C: real; begin Синтаксис описания процедуры procedure имя [(список формальных параметров)] Оператор вызова процедуры имя [(список фактических параметров)] Количество и типы фактических параметров при вызове процедуры должны соответствовать количеству и типам формальных параметров. Функции Функция - это подпрограмма, возвращающая одно значение особым образом так, что это значение может быть непосредственно использовано в выражении. Пример. Функция function sign(x: real): integer; Для того, чтобы функция вернула значение необходимо в её теле имени функции присвоить некоторое значение. Имя функции в этом контексте ведет себя как обычная переменная, но имя функции нельзя использовать в правой части оператора присваивания в качестве значения этой переменной. var s,a: real; Для сравнения реализуем вычисление sign в виде процедуры. procedure CalcSign(x: real; var sign: integer); var a: real; begin Переменная Result В Delphi и FreePascal неявно определена переменная Result, присваивание которой равносильно и хранит результат функции. function Sum(n: integer): integer; Локальные переменные подпрограмм не инициализируются (место на программном стеке под них отводится при выделении памяти под запись активации), поэтому их явная инициализация обязательна. Способы передачи параметров
|
||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 467; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.169.14 (0.007 с.) |