Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VOPROSY_DLYa_PODGOTOVKI_K_EKZAMENU_1.docx
Скачиваний:
74
Добавлен:
13.03.2016
Размер:
127.83 Кб
Скачать

51. Структурирование циклов. Метод объединения условий при решении задачи информационного поиска в файле.

(поиск 1 к\ф вышедшего в 1990)

repeat

Readln(fin,name,year);

Until eof(f) or (year=1990);

If eof(fin) then

Writeln(fout, ‘net takogo’);

Else

Writeln(fout, name);

Close (fin); close (fout);

End.

53. Структурирование циклов. Метод флажка на примере организации надежного ввода с детальным анализом каждой переменной.

Метод флажка (метод булева признака).

Этот метод более универсальный, чем предыдущий. Он применяется в случаях, когда количество условий выхода из цикла довольно велико и при их объединении получается громоздкое логическое выражение. Кроме того, его удобно использовать, если требуется выполнить в цикле дополнительные действия при некоторых условиях.

Метод состоит в том, что вводится дополнительная переменная-флажок (булева переменная), имеющая два значения, которая управляет циклом: при одном значении переменной цикл продолжается, при другом -завершается.

flag:=true;

repeat

writeln ('Введите правильно x,eps);

readln (x,eps);

if(abs(x)<=1)then

begin

writeln ('Ошибка в x'); flag:=false

end

else

if ((eps<=0) or (eps>=1)) then

begin

writeln ('Ошибка в eps'); flag:=false

end

until flag;

Повторяется ввод данных с детальным анализом правильности х и eps и выводом сообщений об ошибке.

Для завершения цикла используется переменная-флажок flag, которая принимает значения:

flag = true, если данные правильные и flag = false, если данные неправильные.

При flag = true цикл завершается.

54. Организация процесса нисходящей разработки многомодульных программ. Самодокументирование процесса.

Этапы проектирования

Проектирование выполняется на основе спецификации.

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

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

Основные этапы

  1. Разработка интерфейса задачи. Записываем Заголовок программы и Данные, которые берутся из Состава данных Спецификации.

  2. Разработка проекта алгоритма. Вначале отделяется ввод – вывод - обработка на основе Выходной формы. Если выбран Вариант1 , то мы можем записать в правой части структуру главной программы. При этом проводим декомпозицию задачи на более простые подзадачи. Эти подзадачи формулируем (как цель задачи) в виде абстракций на естественном (русском) языке. Абстракции записываем в программу в виде комментариев и оставляем пустое место для вызова процедур. Например,

___________________________

{Преобразование матрицы А}│

__________________________

Причем, это применимо как к procedure, так и для function.

  1. Разработка интерфейса каждой процедуры (только заголовок и в/в данные). Раскрываем абстракции в виде процедур. Переходя к левой части программы, уточняем входные, выходные данные подзадачи и записываем их в виде комментариев. Даем имя процедуре (отражающий смысл задачи) и записываем заголовок процедуры, включающий данные подзадачи в виде формальных параметров.

  2. Запись операторов процедур и указателей функций. В правой части теперь можно записать обращение к процедуре (функции), представленной своим интерфейсом в левой части. При этом вместо формальных параметров подставляем фактические параметры в соответствии с правилами и способами их подстановки.

Мы получили эскизный проект программы, без тела процедур.

Структуру программы можно представить в виде td-графа (top-down графа), (см. выше). Он отражает нисходящий способ разработки программы. Об этом было рассказано в лекции.

  1. Разработка тела процедур. Тело процедуры – это блок.

<блок> ::= <описание локальных переменных> ; <составной оператор>

Мы получили

<описание процедуры> ::= <заголовок> <блок>

После завершения описаний процедур получаем полную программу.

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