Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-9.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
200.05 Кб
Скачать

Требования, предъявляемые к алгоритму

Первое правило – при построении алгоритма прежде всего необходимо задать множество объектов, с которыми будет работать алгоритм. Формализованное (закодированное) представление этих объектов носит название данных. Алгоритм приступает к работе с некоторым набором данных, которые называются входными, и в результате своей работы выдает данные, которые называются выходными. Таким образом, алгоритм преобразует входные данные в выходные. Это правило позволяет сразу отделить алгоритмы от “методов” и “способов”. Пока мы не имеем формализованных входных данных, мы не можем построить алгоритм.

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

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

Третье правило – дискретность. Алгоритм строится из отдельных шагов (действий, операций, команд). Множество шагов, из которых составлен алгоритм, конечно.

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

 

2)Простой и составной операторы Паскаля.

Простой оператор не содержит в себе составных операторов.

Составной оператор: если при некотором условии надо выполнить определенную последовательность операторов, то их объединяют в один составной оператор. Составной оператор начинается ключевым словом BEGIN и заканчивается словом END. Между этими словами помещаются составляющие операторы, которые выполняются в порядке их следования. После END ставится точка с запятой, а после BEGIN - только пробелы.

Замечение редактора: составной оператор можно использовать не только внутри условного оператора, после BEGIN тоже можно ставить ;, хотя это и не принято, после END ; может и не ставится. Такое происходит, например, в случае наличия ещё одного END сразу после него.

Пример:

BEGIN

I:=2;

K:=I/5;

END;

Слова BEGIN и END играют роль операторных скобок. Тело самой программы также имеет вид составного оператора. После последнего END ставится точка. Нельзя извне составного оператора передавать управление внутрь его.

Примечание редактора: имеется в виду неизучаемый нами оператор GOTO (безусловного перехода).

БИЛЕТ 3

1)Данные и операции алгоритмов

Для получения функции трудоемкости алгоритма, представленного в формальной системе введенной абстрактной машины необходимо уточнить понятия «элементарных» операций, соотнесенных с языком высокого уровня.

В качестве таких «элементарных» операций предлагается использовать следующие:

  1. Простое присваивание: а <-- b;

  2. Одномерная индексация a[i] : (адрес (a)+i*длинна элемента);

  3. Арифметические операции: (*, /, -, +);

  4. Операции сравнения: a < b;

  5. Логические операции (l1) {or, and, not} (l2);

Опираясь на идеи структурного программирования, исключим команду перехода по адресу, считая ее связанной с операцией сравнения в конструкции ветвления.

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

  1. Конструкция «Следование»

    Трудоемкость конструкции есть сумма трудоемкостей блоков, следующих друг за другом. , где k – количество блоков.

  2. Конструкция «Ветвление»

    if( l ) then

    else

  3. Общая трудоемкость конструкции «Ветвление» требует анализа вероятности выполнения переходов на блоки «Then» и «Else» и определяется как:

  4. Конструкция «Цикл»

  5. После сведения конструкции к элементарным операциям ее трудоемкость определяется как:

2) Оператор условного перехода в Турбо Паскаль имеет вид:

if условие then оператор 1 else оператор 2;

условие - это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1 пропускается. После выполнения указанных операторов программа переходит к выполеннию команды, стоящей непосредственно после оператора if.

Необходимо помнить, что перед ключевым словом else точка с запятой никогда не ставится!

else - часть в операторе if может отсутствовать:

if условие then оператор 1;

Тогда в случае невыполнения логического условия управление сразу передается оператору, стоящему в программе после конструкции if.

Следует помнить, что синтаксис языка допускает запись только одного оператора после ключевых слов then и else, поэтому группу инструкций обязательно надо объединять в составной оператор (окаймлять операторными скобками begin ... end). В противном случае возникает чаще всего логическая ошибка программы, когда компилятор языка ошибок не выдает, но программа тем не менее работает неправильно.

БИЛЕТ 4

1)

2) Цикл с параметром FOR

Оператор цикла for называют цикл с параметром. Цикл с параметром используется в том случае, когда требуется выполнить заданное количество шагов цикла. Нужно сказать, что for Pascal не слишком гибок (в отличие, например, от С), так как параметр цикла (или счетчик) изменяется на величину, равную единице. Таким образом, когда требуется выполнить дробный шаг необходимо использовать цикл типа while. Существует две разновидности цикла for: с увеличением и с уменьшением значений счетчика (или параметра).

Синтаксис:

for счетчик := начальное значение to конечное значение do

begin

      {Операторы}

end;

 

for счетчик := конечное значение downto начальное значение do

begin

      {Операторы}

end;

 Оператор for состоит из заголовка и тела цикла. Составной оператор, находящийся в теле цикла, должен быть заключен в операторные скобки begin и end.

 В качестве идентификатора счетчика обычно используется "i".

 Переменная счетчика должна быть порядкового типа. Например, целочисленного типа: byte, integer.

 Начальное и конечное значения параметра цикла нельзя изменять во время выполнения цикла.

 Оператор for используется для организации циклов с фиксированным, заранее известным или определяемым во время выполнения программы числом повторений.

Блок-схема

БИЛЕТ 5

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]