- •Вопросы к экзамену по курсу «Программирование на языке высокого уровня» для потока а-4,6,7,8,9-06
- •Алгоритм и его основные свойства
- •Методы нисходящего и восходящего проектирования
- •Этапы разработки программ. Цикл разработки программного обеспечения
- •Критерии качества программного продукта
- •Виды циклов в языке Паскаль. Итерационные циклы
- •Операторы ветвления if и case Операторы ветвления
- •Условный оператор if
- •Оператор выбора case
- •Иллюстрация if и case
- •Способы структуризации алгоритмов
- •Классификация типов данных в Delphi. Тип Real
- •Порядковые типы. Целые типы в Delphi, тип диапазон
- •Порядковые типы. Символьный тип
- •Логический тип. Логические операторы и операции сравнения
- •Порядковые типы. Перечисляемый тип
- •Тип массив (статический): описание, ввод, вывод
- •Тип запись: описание, ввод, вывод. Оператор With
- •Тип множество: описание, ввод, вывод, операции над множествами
- •Текстовый файл: описание, основные операции. Использование параметров программы для передачи программе имен файлов
- •Назначение и отличия процедур общего вида и функций
- •Описание и вызов процедур
- •Описание и вызов функций
- •Классы формальных параметров: параметры-константы, параметры-значения и параметры переменные. Ключевые слова const, var, out при описании параметров
- •Массивы и записи как формальные параметры процедур и функций
- •Имена процедур и функций как формальные параметры. Процедурный тип
- •Модули в Паскале: назначение, описание, использование. Обязательные и дополнительные разделы
- •Составление функциональных и структурных тестов на примере разработанной процедуры
- •Нисходящее и восходящее тестирование программ
- •Описание констант, переменных и пользовательских типов. Области видимости констант и переменных
- •Описание констант структурированных типов: массивов, записей и множеств
Критерии качества программного продукта
Работоспособность.
Правильность.(программа должна решать именно поставленную, а не более широкую, более узкую или измененную задачу).
Надежность (программа должна работать при любых исходных данных – анализировать их правильность и выдавать результаты или диагностику ошибок).
Читабельность (текст программы – итоговый носитель всей информации о решении, поэтому он должен иметь четкую и ясную организацию, отображающую решение).
Легкость отладки и тестирования.
Модифицируемость (возможность внесения изменений в программу).
Документированность (наличие документации по всему процессу разработки, начиная от постановки задачи); документированность обеспечивает возможность передачи программы другим лицам, или отчуждение программы.
Простота пользования, наличие сервиса.
эффективность применительно к компьютеру (использование минимума машинных ресурсов – памяти и времени выполнения).
Базовые структуры алгоритмов. В виде блок-схем и на Паскале.
Название |
Блок-схема |
Операторы псевдокода |
|
1. Следование
|
|
S1; S2; … Sn; |
|
2 Развилка, ветвление, альтернатива |
2.1 если- то- иначе
|
|
если В то S1 иначе S2 кесли; |
2.2 если-то (обход) |
|
если В то S1 кесли;
|
|
2.3 выбор |
|
выбор <ключ> из <знач1>: S1; <знач2>: S2; …………. <значn>: Sn; [иначе Sn1;] квыб;
|
|
Оператор Sn1 может быть опущен. В программировании в том же смысле, что и термин «ключ», используется термин «селектор». |
|||
Таблица1. Базовые структуры алгоритмов (продолжение)
|
Кодирование в паскале |
Кодирование в Си |
|||
1
|
Последовательность операторов, простых или составных.
Составной оператор: begin S1; S2; … Sn; end;
Рассматривается как один оператор. Символ «;» - разделитель операторов. |
Последовательность операторов, простых или составных, или блоков.
Составной оператор: { S1 S2… Sn} Блок: {<описания> S1 S2… Sn} Рассматриваются как один оператор. Символ «;» - элемент любого простого оператора. |
|||
2 |
2.1
|
if B then S1 else S2;
|
if (k>0) then k:=k+1 else k:=k-1; |
if (B) S1 else S2 |
if (k>0) k=k+1; else k=k-1; |
2.2 |
if B then S1; |
if (B) S1 |
|||
2.3
|
сase <селектор > of <конст1>: S1; <конст2>: S2; …………. <констn>: Sn; [else Sn1;] end {case}; Выполняется только оператор, для которого значение селектора равно константе. |
Switch (<селектор >) { case <конст1>: S1 break; case <конст2>: S2 break; …………. case <констn>: Sn break; [default: Sn1] } |
|||
S1, S2, …, Sn, Sn1 - один оператор, простой или составной, или блок (в Си) |
|||||
Виды циклов в языке Паскаль. Параметрические циклы с шагом +1 и -1
Оператор цикла типа арифметической прогрессии используется, если заранее известно количество повторений цикла и шаг изменения параметра цикла +1 или –1.
FOR<параметр цикла>:=<выражение1> TO | DOWNTO <выражение2> DO < оператор > ;
< параметр цикла > - это переменная цикла любого порядкового типа (целого, символьного, перечисляемого, интервального);
TO – шаг изменения параметра цикла +1;
DOWNTO - шаг изменения параметра цикла -1;
< выражение 1> - начальное значение параметра цикла, выражение того же типа, что и параметр цикла;
< выражение 2> -конечное значение параметра цикла, выражение того же типа, что и параметр цикла;
< оператор>- тело цикла - простой или составной оператор.
При выполнении оператора FOR выполняются следующие действия:
- вычисляется < выражение 1> , которое присваивается параметру цикла;
- проверяется условие окончания цикла : <параметр цикла> больше <выражения 2> при использовании конструкции TO и <параметр цикла> меньше <выражения 2> при использовании конструкции DOWNTO;
- выполняется тело цикла;
- наращивается (TO) или уменьшается (DOWNTO) на единицу параметр цикла;
- все этапы, кроме первого, циклически повторяются.
При использовании оператора необходимо помнить :
- Внутри цикла FOR нельзя изменять начальное , текущее или конечное значения параметра цикла.
- Если в цикле с шагом +1 начальное значение больше конечного, то цикл не выполнится ни разу. Аналогично для шага -1, если начальное значение меньше конечного.
- После завершения цикла значение параметр цикла считается неопределенным, за исключением тех случаев, когда выход из цикла осуществляется оператором GOTO или с помощью процедуры BREAK.
- Телом цикла может быть другой оператор цикла.
Например, вычислить значение факториала F=N!
a) … F:=1; b) … F:=1;
FOR I:=1 TO N DO FOR I:=N DOWNTO 1 DO
F:=F*I; … F:=F*I; …
В следующем примере цикл выполняется 26 раз и SIM принимает значения всех латинских букв от ’A’ до ‘Z’.
…
FOR SIM:=’A’ TO ‘Z’ DO
WRITELN( SIM);
…
Если телом цикла является другой цикл, то циклы называются вложенными или сложными. Цикл, содержащий в себе другой цикл, называют внешним. Цикл, содержащийся внутри другого цикла, называется внутренним. Внутренний и внешний циклы могут быть любыми из трех видов: FOR, WHILE или REPEAT. При построении вложенных циклов необходимо, чтобы все операторы внутреннего цикла полностью находились в теле внешнего цикла. Возможная глубина вложенности циклов ограничивается объемом памяти компьютера.
