Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

задание на выполнение контрольной работы

Работа добавлена на сайт samzan.net:


 

Министерство образования Российской Федерации

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«САМАРСКИЙ ГОСУДАРСТВЕННЫЙТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

А.Н. ПРОЦЕНКО

ИНФОРМАТИКА

Методические указания и задание на выполнение контрольной работы

Самара  2005


1. ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ ПРОГРАММ TURBO PASCAL

Среда разработки программ Turbo Pascal включает в себя

  •  многооконный текстовый редактор, который может редактировать файлы до 1Мб;
  •  поддержку мышки, меню, диалоговых окон;
  •  расширенные возможности отладки.

1.1. Компоненты

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

Многие элементы меню имеют соответствующие горячие клавиши; одно- или двух-ключевые сокращения, которые немедленно активизируют эту команду или диалоговое окно. Можно также отметить мышкой сокращения в строке статуса.

В следующих таблицах перечисляются наиболее используемые в Turbo Pascal горячие клавиши.

Общие горячие клавиши

Таблица 1.1.

Клавиша

Элемент меню

Функция

F1

Help

Показывает экран подсказки.

F2

File/Save

Сохраняет файл, находящийся в активном окне редактора.

F3

File/Open

Появляется диалоговое окно и возможность открыть файл.

F4

Run/Go to Cursor

Запускает Вашу программу до строки, на которой находится курсор.

F5

Window/Zoom

Масштабирует активное окно.

F6

Window/Next

Проходит через все открытые окна.

F7

Run/Trace Into

Запускает Вашу программу в режиме отладки с заходом внутрь процедур.

F8

Run/Step Over

Запускает Вашу программу в режиме отладки, минуя вызовы процедур.

F9

Compile/Make

Выполняет операцию Make (см. далее) над программой в текущем окне.

F10

Активизирует полосу меню.

Горячие клавиши меню

Таблица 1.2.

Клавиша

Элемент меню

Функция

Alt-С

Compile меню

Переносит Вас в Compile меню

Alt-D

Debug меню

Переносит Вас в Debug меню

Alt-E

Edit меню

Переносит Вас в Edit меню

Alt-F

File меню

Переносит Вас в File меню

Alt-H

Help меню

Переносит Вас в Help меню

Alt-O

Options меню

Переносит Вас в Options меню

Alt-R

Run меню

Переносит Вас в Run меню

Alt-S

Search меню

Переносит Вас в Search меню

Alt-W

Window меню

Переносит Вас в Window меню

Alt-X

File/Exit

Завершает Turbo Pascal с выходом в DOS

Горячие клавиши редактирования

Таблица 1.3.

Клавиша

Элемент меню

Функция

Ctrl-Del

Edit/Clear

Удаляет выбранный текст из окна

Ctrl-Ins

Edit/Copy

Копирует выбранный текст в карман

Shift-Del

Edit/Cut

Удаляет выбранный текст из окна и помещает его в карман

Shift-Ins

Edit/Paste

Помещает текст из кармана в активное окно

Ctrl-L

Search/Search Again

Повторяет последнюю команду Find или Replace

F2

File/Save

Сохраняет файл в активном окне редактора

F3

File/Open

Позволяет Вам открыть файл

Горячие клавиши управления окнами

Таблица 1.4.

Клавиша

Элемент меню

Функция

Alt-#

Показывает окно, где # - номер окна, которое Вы хотите посмотреть

Alt-0

Window/List

Показывает список открытых окон

Alt-F3

Window/Close

Закрывает активное окно

Alt-F5

Window/User Screen

Показывает экран пользователя

Shift-F6

Window/Previous

Проходит назад через все открытые окна

F5

Window/Zoom

Увеличивает/Уменьшает активное окно

F6

Window/Next

Проходит вперед через все открытые окна

Ctrl-F5

Window/Size/Move

Изменяет размер или позицию активного окна

Горячие клавиши встроенной справочной информации

Таблица 1.5.

F1

Help/Contents

Открывает контекстно-ориентирован-ный экран справочной информации

F1 F1

Help/Help on Help

Вызывает справочную информацию по справочной информации (нужно нажать только F1 если Вы уже находитесь в системе справочной информации)

Shift-F1

Help/Index

Вызывает оглавление справочной информации

Alt-F1

Help/Previous Topic

Показывает предыдущий экран справочной информации

Ctrl-F1

Help/Topic Search

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

Горячие клавиши отладки/запуска

Таблица 1.6.

Клавиша

Элемент меню

Функция

Alt-F9

Compile/Compile

Компилирует текст в активном окне редактора

Ctrl-F2

Run/Program Reset

Прекращает процесс отладки программы

Ctrl-F4

Debug/Evaluate/Modify

Вычисляет выражение

Ctrl-F7

Debug/Add Watch

Добавляет выражение для просмотра

Ctrl-F8

Debug/Toggle BreakPoint

Устанавливает или очищает условные точки прерывания

Ctrl-F9

Run/Run

Запускает программу

F4

Run/Go to Cursor

Запускает программу до позиции курсора

F7

Run/Trace Into

Выполняет прослеживание внутри процедур

F8

Run/Step Over

Осуществляет перескакивание через вызовы процедур

F9

Compile/Make

Выполняет Make (компилирует/ редактирует связи) программы

1.2. Создание программы

Нажмите F10, чтобы войти в полосу меню, а затем F3 (сокращение для File/Open) для показа диалогового окна Open a File. Вы находитесь в окне ввода, поэтому наберите название файла, в котором будет храниться программа, например MYFIRST (необязательно набирать расширение .PAS это предполагается) и нажмите Enter. Теперь можно приступить к набиранию текста программы, нажимая Enter в конце каждой строки:

Program MyFirst;

Var

 A, B: Integer;

 Ratio: Real;

Begin

 Write(‘Enter two numbers: ‘);

 ReadLn(A, B);

 Ratio := A/B;

 WriteLn(‘The ratio is ‘,Ratio);

 Write(‘Press <Enter> …’);

 ReadLn;

End.

1.3. Анализ программы

Поскольку Вы набираете и запускаете эту программу, не зная, что она делает, мы приведем здесь точное пояснение. Первая введенная строка задает имя программе MyFirst. Это утверждение необязательно, но неплохо включать его  в программу.

Следующие три строки объявляют несколько переменных, со словом var, говорящем о начале объявления переменных. А и В имеют тип Integer (целое число), то есть, они могут содержать целые числа, такие как 52, -421, 0, 32, 283 и так далее. Ratio объявлено как Real (действительное число), это означает, что оно может хранить дробные числа, такие как 423.328 и –0.032, в добавление к целым числам.

Остальная часть программы содержит выполняемые утверждения. Слово begin говорит о начале программы. Утверждения разделяются точкой с запятой и содержат инструкции записи на экран (Write и WriteLn), чтения с клавиатуры (ReadLn) и выполнения вычислений (Ratio := A/B). ReadLn в конце программы приводит к остановке выполнения (пока Вы не нажмете Enter), так что Вы сможете исследовать вывод программы. Выполнение программы начинается с первой инструкции после begin и продолжается до тех пор, пока не встретится end.

1.4. Сохранение программы

После введения Вашей первой программы было бы неплохо сохранить ее на диске. Для этого выберите команду Save из меню File, нажав F10, затем F для появления меню File  и S для выбора команды Save. Наиболее легкий способ – используйте сокращение для File/Save, F2.

1.5. Компиляция программы

Для компиляции своей первой программы идите к опции Compile в основном меню. Можно нажать F10 С, а Alt-C приведет Вас прямо к этой опции. Alt-F9 – это самый быстрый путь.

Turbo Pascal компилирует Вашу программу, изменяя ее с Паскаля (который можно читать)на машинный код для процессора (который может выполнить PC). Вы не увидите машинный код, он хранится в памяти (или на диске).

Как и английский язык, Паскаль имеет грамматические правила, которые нужно выполнять. Однако, в отличие от английского языка, структура языка Паскаль не допускает сленг или плохой синтаксис – компилятор должен всегда понимать, ЧТО Вы хотите сказать. В языке Паскаль, если Вы используете несоответствующие слова или символы в утверждении или если неправильно его организовали, то получите ошибку компиляции (синтаксическую).

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

  •  Unknown identifier (неизвестный идентификатор)
  •  ‘;’ expected (требуется ‘;’)

Паскаль требует, чтобы Вы объявили все переменные, типы данных, константы и подпрограммы – все идентификаторы – перед их использованием. Если Вы обратитесь к необъявленному идентификатору, то получите ошибку. Другой частой ошибкой является несоответствие пар begin .. end, присваивание несовместимым типам данных (например присваивание действительных чисел целому), число и тип параметров не соответствует в вызовах процедур и функций и т. д.

Когда Вы начинаете компиляцию, в центре экрана появляется окно, содержащее информацию о данной компиляции. Если во время компиляции не произошло никаких ошибок, то в этом окне появится сообщение “Compilation successful: press any key” (Компиляция успешна: нажмите любую клавишу). Окно остается на экране до тех пор, пока Вы не нажмете клавишу.

Если во время компиляции произошла ошибка, Turbo Pascal останавливается, устанавливает курсор на ошибку в редакторе и показывает сообщение об ошибке вверху редактора. Первое нажатие клавиши очистит это сообщение, а Ctrl-Q W будет показывать его до тех пор, пока Вы не измените файл или не перекомпилируете его. Сделайте исправления, сохраните обновленный файл и компилируйте снова.

1.6. Выполнение программы

После исправления ошибок идите в основное меню и выберите Run/Run (или нажмите Ctrl-F9). Вы находитесь на экране пользователя, и на этом экране появится сообщение:

Enter two numbers:

Наберите два любых целых числа с пробелом между ними и нажмите Enter. Появится следующее сообщение:

The ratio is

а за ним – отношение первого числа ко второму. В следующей строке появится сообщение “Press <Enter>…”, а программа будет ждать нажатия клавиши Enter. Чтобы посмотреть вывод своей программы, выберите Window/User Screen (или нажмите Alt-F5).

Если во время выполнения программы произошла ошибка, то на экране появится сообщение, которое выглядит следующим образом:

Run-time error <errnum> at <segment>:<offset>

где <errnum> - это соответствующий номер ошибки, а <segment>:<offset> - это адрес в памяти, где произошла ошибка. Вы окажетесь в точке расположения ошибки в своей программе с описательным сообщением об ошибке, показанным в строке статуса редактора. Пока сообщение находится в строке статуса редактора, можно нажать F1 для получения справочной информации по конкретной ошибке. Нажатие любой другой клавиши приводит к исчезновению сообщения об ошибке. Если Вам нужно будет найти местоположение ошибки снова, выберите Search/Find Error.

Когда Ваша программа закончит выполнение, Вы вернетесь в то место программы, с которого начинали. Теперь Вы можете модифицировать программу, если хотите, Если Вы выберете команду Run/Run перед внесением изменений в свою программу, Turbo Pascal немедленно выполнит ее снова без перекомпиляции.

2. ПРОГРАММИРОВАНИЕ НА TURBO PASCAL

Язык Паскаль был разработан Виртом в начале 70-х годов, как язык обучения программированию. Если у Вас есть опыт программирования, то Вам будет не трудно его освоить

2.1. Элементы программирования

Большинство программ создаются для решения какой-нибудь задачи. Решение задачи достигается обработкой информации или данных. Поэтому, как программисту, Вам необходимо знать, как:

  •  завести информацию в программу – ввод;
  •  сохранить информацию – данные;
  •  задать правильные команды обработки данных – операции;
  •  получить данные из программы – вывод.

Вы можете написать и упорядочить свои команды так, чтобы:

  •  некоторые из них выполнялись при выполнении некоторого условия или ряда условий – условное выполнение;
  •  другие выполнялись некоторое число раз – циклы;
  •  другие собирались в отдельные части, которые могут быть выполнены в нескольких местах программы – подпрограммы.

2.2. Типы данных

Целые числа – это числа, с помощью которых Вы учились считать (1, 5, и 752, например).

Вещественные числа имеют дробные части (3.14159) и экспоненты (2.579х10**24). Они также известны как числа с плавающей точкой.

Символы – это любые буквы алфавита, символы и цифры 0-9. Они могут использоваться отдельно (а, z, !, 3) или объединяться в символьные строки (‘Это только проверка’).

Целочисленные типы данных

Таблица 2.1.

Тип

Диапазон

Размер в байтах

Byte (целое длиной в байт)

0 .. 255

1

Shortint (короткое целое)

-128 .. 127

1

Integer (целое)

-32768 .. 32767

2

Word (длиной  в слово)

0 .. 65535

2

Longint (длинное целое)

-2147483648 .. 21474833647

4

2.3. Тип массив

Массивы содержат фиксированное число компонент одного типа – тип компоненты. В типах индекса, по одному для каждой размерности массива, указывается число элементов. Допустимыми типами индекса являются все порядковые типы, за исключением Longint. Массив может быть проиндексирован по каждой размерности всеми значениями соответствующего индекса; число элементов поэтому равно числу значений каждого индекса. Максимальное число размерностей – четыре.

Приведем пример объявления переменной типа массив:

Var

 Mas1: array[1..100] of Real;

В приведенном примере объявлена матрица вектор из ста элементов вещественного типа.

Mas2: array[1..10, 1..10] of Integer;

В обоих случаях объявляется матрица целых чисел размером 10х10.

Для доступа к элементам массива необходимо использовать идентификатор массива за которым указывается индекс (или набор индексов), задающий элемент. Например:

Mas1[8] - указывает на восьмой элемент;

I := 4; J := 5;

Mas2[I, J] - указывает на пятый элемент в четвертой строке.

2.4. Операторы

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

Большинство операторов в Паскале бинарные, имеют два операнда; унарные операторы имеют один операнд. Бинарные операторы имеют обычно алгебраическую форму, например a+b. Унарный оператор предшествует своему операнду, например –b.

В сложных выражениях порядок выполнения операций определяется правилами приоритета.

Основной операцией является операция присваивания: Ratio := A/B. В Паскале оператор присваивания – это комбинация двоеточия и знака равенства: “:=”. В примере значение выражения A/B, стоящее справа от “:=”, присваивается переменной Ratio, стоящей слева.

Паскаль поддерживает обычный стандартный набор бинарных арифметических операторов, которые выполняются над целыми и вещественными числами:

  •  умножение (*);
  •  деление целых (div);
  •  деление вещественных с остатком (/);
  •  остаток от деления (mod);
  •  сложение (+);
  •  вычитание (-).

2.5. Вывод

Программа, которая не выводит какую-либо информацию, не имеет смысла.

2.5.1. Процедура WriteLn

Назначение ее – запись (вывод) информации на экран.

WriteLn(элемент, элемент, …);

Каждый элемент – это то, что Вы хотите вывести на экран и может быть: значением, таким как целое или вещественное число (3, 42, -1732.3), символом (‘a’, ‘Z’), строкой (‘Здравствуй мир’), булевским значением (True). Кроме того, может быть именованная константа (имя константы), переменная, вызов функции, если она возвращает значение целого типа, вещественное число, символ, строку или булевский тип. Все элементы печатаются в строку в заданном порядке. После вывода курсор устанавливается на начало следующей строки. Если есть необходимость оставить курсор в этой же строке после послед

Следующими операторами описывается вывод:

A := 1; B := 2; C := 3;

Name := ‘Frank’;

WriteLn(A, B, C);   123

WriteLn(A, ‘ ‘, B, ‘ ‘, C);  1 2 3

WriteLn(‘Hi’, Name);   HiFrank

WriteLn((‘Hi’,’, ‘, Name, ‘.’);  Hi, Frank.

При выводе можно дополнительно использовать параметры определения ширины поля для данного элемента.

WriteLn(элемент: длина, …);

Рассмотрим следующую программу и полученный в результате вывод:

A := 10; B := 2; C := 100;

WriteLn(A, B, C);   102100

WriteLn(A:2, B:2, C:2);  10 2100

WriteLn(A:3, B:3, C:3);  10  2100

WriteLn(A, B:2, C:4);   10 2 100

X := 421.53;

WriteLn(x:6:2);  421.53

WriteLn(x:8:2);  421.53

WriteLn(x:8:4);  421.5300

2.5.2. Ввод

ReadLn(элемент, элемент, …); ,

В этой процедуре каждый элемент – это переменная целого, вещественного, символьного типа или строка. Числа должны отделяться друг от друга пробелами или нажатием клавиш Enter.

2.6. Условные операторы

Иногда бывает необходимо выполнить часть программы, если заданное условие имеет значение True или False, или когда заданное выражение принимает определенное значение.

2.6.1. Оператор If

Общий формат оператора:

If выражение

 Then оператор 1

 Else  оператор 2,

Два важных момента, на которые следует обратить внимание при использовании If/then/else.

Во-первых, оператор else не является обязательным, другими словами, допустимо использовать оператор if в следующем виде:

If выражение
Then оператор 1.

В этом случае оператор 1 выполняется только тогда, когда выражение имеет значение True. В противном случае оператор 1 пропускается и выполняется следующий оператор.

Во-вторых, если необходимо выполнить более одного оператора, в случае, когда выражение принимает значение True или False, то следует использовать составной оператор.

Составной оператор – это ключевое слово Begin, несколько операторов разделенных точкой с запятой и ключевое слово End.

В примере используется один оператор:

If B = 0.0 Then
 
WriteLn(‘Деление на нулю невозможно.’)

Использование составного оператора в предложении Else:

Else

Begin

 Ratio := A/B;

 Writeln(‘Отношение =’, Ratio)

End;

2.6.2. Оператор выбора Case

Оператор Case – мощное средство выбора альтернатив. Он позволяет уменьшить количество операторов If.

Оператор Case состоит из выражения (селектора) и списков операторов, каждому из которых предшествует метка того же типа, что и селектор. Это значит, что в данный момент выполняется тот оператор, у которого значение совпадает с текущим значением селектора. Если совпадения значений не происходит, то не выполняется ни один из операторов, входящих в case

Case BirdSight of

‘C’, ‘c’: Curlens := Curlens + 1;

‘H’, ‘h’: Herons := Herons + 1;

‘E’, ‘e’: Egrets := Egrets + 1;

‘T’, ‘t’: Terns := Terns + 1;

end; {case}

2.7. Цикл.

В случае, когда при выполнении какого-либо условия (или невыполнения), необходимо выполнить группу операторов повторно, используются циклы.

Существует три основных вида циклов: цикл while, цикл repeat и цикл for. Рассмотрим их.

2.7.1. Цикл while.

Цикл while используется для проверки некоторого условия в начале цикла. Введите следующую программу:

Program Hello;

Var

     Count: Integer;

Begin

      Count: = 1;

      While (Count <= 10) do

      Begin

             Writeln (‘ Здравствуй и прощай !’ );

              Inc (Count);

      End;

      Writeln (‘ Это конец’);

End.

Во-первых, сначала переменной Count присвоится значение равное 1. Затем, при входе в цикл проверяется условие: значение Count меньше или равно 10. Если да, то выполняется тело цикла (операторы, находящиеся между ключевыми словами begin…end.) На экран выводится сообщение «Здравствуй и прощай». Значение Count увеличивается на 1. Возврат на начало цикла. Значение Count проверяется заново и тело цикла выполняется вновь, до тех пор пока значение переменной Count удовлетворяет условию. Как только значение Count  становится равным 11, цикл завершается, и на экран выводится сообщение «Это конец».

2.7.2. Цикл Repeat … Until

Второй цикл RepeatUntil рассмотрим на примере программы DORATIO.PAS:

Program DoRatio;

Var

 A, B: Integer;

 Ratio: Real;

 Ans: Char;

Begin

 Repeat

   Write(‘Введите два числа’);

   ReadLn(A, B);

   Ratio := A/B;

   WriteLn(‘Отношение равно’, Ratio);

   WriteLn(‘Повторить? (Y/N)');

   ReadLn(Ans);

 Until UpCase(Ans) = ‘N’;

End.

Как описывалось ранее, в этой программе повторяется выполнение операторов, пока ответ на вопрос – n или N (Повторить? Y/N). Другими словами, Repeat и Until повторяются до тех пор, пока значение выражения при Until не будет True.

Существуют три основных отличия от цикла While:

  •  операторы в цикле Repeat выполняются хотя бы один раз, потому что проверка выражения осуществляется в конце тела цикла. В цикле While, если значение выражения False, тело его пропускается сразу.
  •  цикл Repeat выполняется пока выражение не станет True, в то время, как цикл While выполняется до тех пор, пока выражение имеет значение True. При замене одного типа цикла на другой необходимо на это обращать особое внимание. Рассмотрим программу HELLO, где цикл While заменен на цикл Repeat:

program Hello;

var

 Count: Integer;

Begin

 Count := 1;

 Repeat

   WriteLn(‘Здравствуй и прощай!’);

   Inc(Count);

 Until Count > 10;

 WriteLn(‘Это конец”);

End.

Отметим, что теперь переменная Count проверяется на значение больше 10 (а в While было Count <= 10).

В заключение, в цикле Repeat может использоваться просто группа операторов, а не составной оператор. При использовании этого цикла не используются слова BeginEnd, как в случае с циклом While.

Запомните, что цикл Repeat выполнится хотя бы один раз, в то время, как цикл While может ни разу не выполниться в зависимости от значения выражения.

2.7.3. Цикл For

Цикл For существует во многих языках программирования. В Паскале тоже. Однако, вариант этого цикла в Паскале как эффективен, так и ограничен.

Обычно, набор операторов выполняется фиксированное число раз, пока переменная (индексная) принимает значение в указанном диапазоне. Модифицируем знакомую программу HELLO следующим образом:

Program Hello;

Var

 Count: Integer;

Begin

 For Count := 1 to 10 Do

   WriteLn(‘Здравствуй и прощай!’);

 WriteLn(‘Это конец’);

End.

При выполнении этой программы видно, что цикл For выполняется так же, как и циклы While и Repeat. Фактически эквивалентно циклу While.

Формат цикла For:

For индекс:= выражение 1 to выражение 2 do оператор

Где индекс – скалярная переменная (целого типа, символьного, булевского и любого перечисленного типа);

Выражение 1 и выражение 2 – выражения типа, совместимого с типом индекса; оператор – одиночный или составной оператор. Индекс увеличивается на 1 после каждого выполнения цикла Индекс можно уменьшить на 1. Для этого ключевое слово to заменяется на downto.

Цикл for эквивалентен следующей программе с циклом while:

Index :=expr1;

While index <= expr2 do

Begin

      Оператор;

      Inc (index)

End;

Главный недостаток цикла for – это возможность уменьшить или увеличить индекс только на 1.

Основные преимущества – краткость, возможность использования символьного и перечислимого типа в диапазоне значений.

2.8. Процедуры и функции.

Вы изучили условное и итеративное выполнение операторов программы. Теперь посмотрим, как можно выполнить один и тот же набор команд в разных местах программы и с разными данными. Можно объединить эту группу операторов в подпрограмму, которую можно вызвать по необходимости.

В Паскале есть два вида подпрограмм: процедуры и функции.

Главное различие между ними – это то, что функция возвращает значение и может быть использована в выражении:

X := sin(A);

В то время, как процедура может быть вызвана:

WriteLn (“это проверка”);

Однако перед знакомством с процедурами и функциями, необходимо рассмотреть структуру программ.

2.9. Структура программ.

В стандартном Паскале программы имеют жесткий формат:

Program    имя программы

Label

    Метки;

Const

    Объявление  констант;

Type

    Объявление типов данных;

Var

    Объявление переменных;

Procedure и function;

Begin

    Тело программы

End.

Наличие всех пяти секций объявлений – Label, Const, Type, Var, Procedure и function – в Вашей программе необязательно. Однако для стандартного Паскаля, если они присутствуют, порядок их следования строго регламентирован, и в программе они должны присутствовать только один раз. За секцией объявлений, следуют процедуры и функции, и только затем тело программы.

Turbo Pascal обеспечивает более гибкую структуру программы. Главное – это оператор program должен быть первым, а тело программы последним. Порядок описания остальных секций жестко не регламентирован, но идентификаторы должны быть объявлены до их использования во избежание ошибок компиляции.

2.10. Структура процедуры и функции.

Процедуры и функции, известные под общим именем как подпрограммы могут быть описаны в любом месте программы, но до тела главной программы. Формат процедур:

Procedure    имя процедуры (параметры);

 Label

 Метки;

 Const

   Объявление  констант;

 Type

   Объявление типов данных;

 Var

   Объявление переменных;

 Procedure, function;

Begin

   Тело главной процедуры;

End.

Функции имеют такой же формат, как и процедуры, только они начинаются с заголовка function и заканчиваются типом данных возвращаемого значения:

Function   имя функции (параметры): тип данных;

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

  •  процедуры и функции имеют заголовок procedure или function, соответственно, а не program;
  •  процедуры и функции заканчиваются точкой с запятой (;), а не точкой (.).

Процедуры и функции могут иметь описание своих констант, типов данных, переменных и свои процедуры и функции. Но все эти элементы могут быть использованы только в тех процедурах и функциях, где они объявлены.

2.11. Пример программы.

Рассмотрим версию программы DORATIO, в которой используются процедура получения двух значений и функция, определяющая их отношение:

Program DoRatio;

Var

    A, B: Integer;

    Ratio: Real;

Procedure GetData (var X, Y: Integer);

Begin

    Writeln (‘Введите два числа:’);

    Readln (X, Y);

End;

Function GetRatio (I, J: Real);

Begin

    GetRatio := I / J;

End;

Begin

    GetData (A, B);

    Ratio:= GetRatio (A, B);

    Writeln (‘Отношение равно’, Ratio);

End.

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

КОНТРОЛЬНЫЕ ЗАДАНИЯ

Номер варианта выбирается по последней цифре номера зачетной книжки. Контрольную работу оформить в виде распечатки текстов программ.

Вариант №0

  1.  Составить программу вычисления площади равностороннего  треугольника, вписанного в окружность радиусом r.

Ввести с клавиатуры три пары чисел. Найти произведение каждой пары и определить, какое из них минимально. Предусмотреть вывод данных на дисплей.

  1.  Вычислить функцию у = Sin 3х   (-3 х 3). Вывести данные в виде таблицы. В программе использовать подпрограмму-функцию

Дано действительное b. Найти среди чисел

1, 1+1/2, 1+1/3....

    первое большее b. Определить номер этого числа.

Вариант №1

  1.  Составить программу определения катета прямоугольного треугольника по известным значениям гипотенузы и второго катета В.
  2.  Разработать программу вычисления функции

Предусмотреть вывод данных на дисплей.

  1.  Вычислить функцию у = 2х2 - 8Sinх   (-2 х 3). Найти ее минимум и максимум. Вывести в виде таблицы результаты вычислений. В программе использовать подпрограмму-функцию
  2.  С клавиатуры задается последовательность чисел. Найти сумму чисел, предшествующих первому отрицательному в задаваемой последовательности. Вывести сумму чисел, а также те из них, которые лежат в интервале от 1 до 5. Найти число таких чисел.

Вариант№2

  1.  Составить программу вычисления объема полого цилиндра с внешним радиусом R и внутренним r. Высота цилиндра H.
  2.  Ввести с клавиатуры 3 числа, найти среди них наименьшее. Предусмотреть вывод данных на дисплей.
  3.  Вычислить функцию у = Sin 3х   (- х  ). Предусмотреть вывод данных в виде таблиц. В программе использовать подпрограмму-функцию
  4.  Дано положительное число , и последовательность а1, а2, а3. . . , образованная по следующему закону:

 

    Найти первый член последовательности, для которого выполняется    условие: abs(an-an-1). Вывести на экран an  и n.

Вариант №3

  1.  Составить программу для определения расстояния пройденного физическим телом за время t. Тело движется с постоянным ускорением А и имеет начальную скорость V.
  2.  Ввести с клавиатуры 4 числа. Найти среди них числа, больше полусуммы введенных чисел. Предусмотреть вывод данных на дисплей.
  3.  Вычислить функцию у = Cos2x   (- х  ). Предусмотреть вывод данных в виде таблиц. В программе использовать подпрограмму-функцию

4.3. Начав тренировки, спортсмен в первый день пробежал х км. Каждый следующий день он увеличивал норму на 10 % от предыдущего дня. Через сколько дней спортсмен будет пробегать больше у км.?

Вариант №4

  1.  Составить программу для определения площади поверхности цилиндра с радиусом основания R и высотой H.

Ввести с клавиатуры 7 чисел. Вывести на дисплей четные и нечетные числа, указать число четных и нечетных чисел.

  1.  Вычислить функцию у = 2х2 - 6Sinх   (-2 х 3). Найти ее минимум и максимум. Вывести таблицу функции. В программе использовать подпрограмму-функцию

4.4. Составить таблицу степеней числа 3:

3n, n=1, 2, 3...i

    Прекращать печатать таблицу, когда 3n превысит заданное число D.      Вычисления проводить, не используя операцию возведения в степень.

Вариант №5

  1.  Составить программу для определения расстояния на плоскости между двумя точками М11, у1) и М22, у2).
  2.  Ввести с клавиатуры 8 чисел. Найти их среднее значение. Найти числа большие среднего значения и меньшие среднего значения, подсчитать  количество тех и других. Предусмотреть вывод данных на дисплей.
  3.  Задать двумерный массив размером 4*3. Просуммировать элементы его столбцов. Результаты представить в виде одномерного массива размером 3. Вывести исходный массив в виде таблицы, полученный в виде строки.

4.5.В очередном году урожайность ячменя составила 20ц с гектара. В среднем каждые два года урожайность увеличивается на 5%. Определить через сколько лет урожайность превысит Nц с га.

Вариант №6

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

Задать двумерный массив размером 4*4. Вывести массив в виде таблицы. Предусмотреть вывод элементов задаваемого столбца и задаваемой строки массива.

4.6.Среди последовательности чисел

1, 1+1/2, 1+1/2+1/3, . . .

    найти первое , большее заданного числа а. Вывести на экран само число и его номер.

Вариант №7

  1.  Разработать программу вычисления объема цилиндра с радиусом основания R и высотой H.
  2.  Ввести с клавиатуры 3 числа. Найти среди них число, расположенное между наименьшим и наибольшим. Предусмотреть вывод данных на дисплей.
  3.  Задать двумерный массив размером 5*5. Вывести массив в виде таблицы. Предусмотреть вывод элементов задаваемого столбца и задаваемой строки массива.

4.7.Вычислить сумму последовательности натуральных чисел. Вычисления прекратить, когда сумма превысит заданное значение N. Вывести сумму и число натуральных чисел, вошедших в вычисленную сумму.

Вариант №8

  1.  Составить программу для определения площади трапеции с высотой h, основанием a и противолежащей стороной b.

Разработать программу вычисления корней квадратного уравнения

ax2+bx+c=0.

  1.  Вычислить функцию у = Sin 3х   (- х  ). Предусмотреть вывод данных в виде таблицы из трех столбцов. В программе использовать подпрограмму-функцию.

4.8. Вычислять произведение последовательности натуральных чисел. Вычисления прекратить, когда произведение превысит заданное значение N. Вывести значение произведения и количество натуральных чисел, вошедших в произведение.

Вариант №9

  1.  Составить программу вычисления площади квадрата, вписанного в окружность радиусом r.
  2.  Ввести с клавиатуры три пары чисел. Определить сумма какой из пар чисел больше. Предусмотреть вывод данных на дисплей.
  3.  Вычислить функцию у = Cos2x   (- х  ). Предусмотреть вывод данных в виде таблицы из трех столбцов. В программе использовать подпрограмму-функцию.
  4.  Цена некоторого изделия ежемесячно возрастает на n%. Определить через сколько месяцев она возрастет в P раз.




1. тематика з економіки підприємства для студентів економічного факультету за напрямами підготовки 0502
2. Миссионерская стратегия апостола Павла
3. Гомсельмаш 2
4. Античні держава і право Давня Греція- Афіни, Спартао
5. Тема 2152 Раздел- Особенности психического развития на разных возрастных этапах
6. на тему- Правове становище Гетьманщини у складі Російської держави студентки І курсу гр
7. а Специфика разработки маршрутных листов и формирования электронного ресурса на примере территории арх
8. Методические рекомендации по применению Классификации запасов месторождений и прогнозных ресурсов твердых
9. В 1932 году общее количество безработных в капиталистических странах превышало 30 млн
10.  по 200 г
11. на тему- ldquo;Социологическое исследование экологического состояния окружающей среды
12. КОНСПЕКТ ЛЕКЦИЙ по мировым информационным ресурсам Владикавказ 2006
13. КОНТРОЛЬНАЯ работа по дисциплине Механика жидкости и газов Вариант 9 Студент гр
14. Основные средства предприятия и эффективность их использования
15. . Окно в интерактивной программе которое владеет такими элементами как поля ввода и редактирования данных
16. Статья 1 Внести изменения и дополнения в Закон Российской Федерации ldquo;О государственной пошлинеrdquo; Ведом
17. ПЕСТИЦИДЫ И УДОБРЕНИЯ. ИХ РОЛЬ
18. Реферат- Общая характеристика и классификация программного обеспечение и базовых технологий управления информационными ресурсами
19. Расчет калькуляции полной себестоимости синтетического моющего средства марки
20. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата економічних наук Ки