Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
№___230105__ МУ_лаб и пр_ОАиП_часть первая.docx
Скачиваний:
4
Добавлен:
26.04.2019
Размер:
383.97 Кб
Скачать

Краткие теоретические сведения

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

Условные операторы могут быть последовательными (идущими друг за другом) или «вложенными». При вложенных условных операторах самое главное – не запутаться в вариантах сочетаний условий (при этом очень помогает ступенчатая запись текста программы – запись «лесенкой»).

Найти минимальное и максимальное значения среди двух чисел a и b

При записи условий могут использоваться простые и сложные логические выражения: a > b { простое логическое выражение }

c+d*2 = a { тоже простое выражение }

Сложные логические выражения составляются при помощи логических операций and, or, not, xor.

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

Структура оператора варианта имеет вид:

Лабораторная работа №1(2 часа)

Тема: Составление и запись вычислительных алгоритмов в виде программы (линейно-разветвля­ющейся структуры). Компиляция и тестирование программы.

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

Задание: Разработать алгоритм решения задачи согласно варианту(см. практическую работу №3), представить его в виде программы на языке программирования Turbo Pascal. Провести компиляцию и тестирование программы.

Краткие теоретические сведения

Выделим главные этапы методики программирования задач.

  1. Постановка задачи. Основное требование к постановке задачи – достаточное количество информации для решения задачи. Очень часто постановка задачи выполняется не программистом, а некоторым Заказчиком. Программист является Исполнителем заказа. От него требуется добиться от Заказчика полной информации о решаемой задаче.

  2. Моделирование и формализация задачи. При моделировании важно иметь опыт программирования, знать возможности компьютера и языка программирования и выдвигать гипотезы с учетом этих возможностей. К разработке алгоритма следует приступать только после принятия гипотезы решения задачи. Помимо идеи решения задачи, результатами этого этапа должны быть формализованная постановка задачи типа "дано-найти" и достаточное количество контрольных примеров для последующего тестирования программы. К категории "Дано:" обычно относятся данные, вводимые в начале работы программы и обеспечивающие массовость алгоритма. К категории "Найти:" относятся данные, получаемые в результате работы программы.

  3. Разработка алгоритма. Этот этап представляет собой реализацию идеи решения задачи.

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

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

  2. Тестирование программы. Тестирование выполняется путем вывода промежуточных результатов работы программы и сравнения их с контрольным примером. Для этого либо используют специальные средства отладки программ, имеющиеся в интегрированной среде языка программирования, либо временно добавляют в программу команды вывода промежуточных значений. Уменьшить трудоемкость поиска ошибок в программе можно более тщательным проектированием алгоритма и планированием процесса тестирования на ранних стадиях разработки программы.

  3. Эксплуатация программы и интерпретация результатов. В сложных программах может быть недостаточно тестирования для устранения всех ошибок. Очень час-то они обнаруживаются на стадии эксплуатации Заказчиком. 

Успех в разработке программы зависит от двух основных факторов: соблюдения описанной выше методики и от опыта программирования. Не следует игнорировать или недооценивать этапы проектирования программы (1 – 5), выполняемые вне компьютера. "Час, потраченный на выбор алгоритма, стоит пяти часов программирования" (Д.Ван-Тассел. Стиль, разработка, эффективность, отладка и испытание программ.- М.: Мир, 1985).

Алфавит языка и зарезервированные слова

Как и любой язык программирования, Turbo Pascal имеет свой алфавит - набор символов, разрешенных к использованию и воспринимаемых компилятором. В алфавит языка входят:

Латинские строчные и прописные буквы

A, B, C . . .Z, a, b ,c, . . . z

Цифры

0, 1, …9

Символ подчеркивания

“_”

Символ «пробел»

является разделителем (код 32)

Символы с кодами ASCII от 0 до 31

непечатные(управляющие коды)

Специальные символы, участвующие в построении конструкций языка

+ - * / = < > [ ] . , ( ) ; : ^ @ { } $ # ‘

Составные символы, рассматриваемые как единое целое (пробелы между ними не допустимы)

<= >= := (* *) (. .) ..

Turbo Pascal имеет большое количество зарезервированных слов, которые не могут быть использованы в качестве идентификаторов, поэтому попытка нарушить этот запрет либо вызовет ошибку при обработке программы компилятором языка, либо семантическую ошибку (при выборе идентификатора, совпадающего с именем стандартных процедур и функций из библиотечных модулей). Зарезервированные слова выделяются редактором текста белым цветом, после зарезервированного слова символ “;” не ставится (кроме слова End).

Список зарезервированных слов

ABSOLUTE

EXTERNAL

MOD

SHR

AND

FILE

NIL

STRING

ARRAY

FOR

NOT

THEN

BEGIN

FORWARD

OBJECT

TO

CASE

FUNCTION

OF

TYPE

CONST

GOTO

OR

UNIT

CONSTRUCTOR

IF

PACKED

UNTIL

DESTRUCTOR

IMPLEMENTATION

PROCEDURE

USES

DIV

IN

PROGRAM

VAR

DO

INLINE

RECORD

VIRTUAL

DOWNTO

INTERFACE

REPEAT

WHILE

ELSE

INTERRUPT

SET

WITH

END

LABEL

SHL

XOR

Замечание: зарезервированное слово PACKED (упакованный) в Turbo Pascal’е игнорируется

Правила построения идентификаторов

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

Правила построения идентификаторов

п/п

Правило

Пример написания

Правильно

Неправильно

1.

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

X Y1 i5

CharVar

Task125

My_Int_Type

156_type

666Num

2.

ИД может состоять из произвольного числа символов, но компилятором различаются только первые 63 (остальные игнорируются)

3.

Все ИД должны быть уникальными

3.1.

ИД не может совпадать по написанию с зарезервированными словами, в случае необходимости к зарезервированному слову можно добавить символ подчеркивания

End_

_End

_End_

End

Procedure

3.2.

ИД не должен совпадать по написанию со стандартными операторами и встроенными (библиотечными) процедурами и функциями

Write_

_Write

_Window

Write

Window

3.3.

Прописные и строчные буквы не различаются

WRITE

Write

4.

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

OpenWindow

Algorithm

5.

При записи ИД необходимо выбирать английский вариант понятия

_Window

Count

OKNO

Chetchik

6.

При записи составных ИД (ИД, состоящих из нескольких понятий) желательно делать первую букву каждого слова строчной

CheckInFile

FileExist

checkinfile

fileexist

Правила 1, 2, 3.1. строго контролируются компилятором, поэтому при их нарушении компилятором будет выдано сообщение об ошибке и трансляция программы будет прервана. Остальные правила компилятор не контролирует, но соблюдать их желательно, так как они позволяют улучшить «читабельность»