SlideShare a Scribd company logo
1 of 9
LOGO
Лекция №6
Реализация структурного
подхода к построению программ
Пример разработки программы
LOGO
Методика кодирования и тестирования
"сверху вниз"
Структура программы является сложной,
состоит из трех уровней вложений. На
первом уровне в основной программе М1
вызываются три подпрограммы второго
уровня – М2, М3, М4, подпрограмма
второго уровня М4 вызывает две
подпрограммы третьего уровня – М5 и М6.
Схема структуры программы
LOGO
Методика кодирования и тестирования
"сверху вниз"
После того как блок М1 будет
протестирован, вместо заглушки
проектируется, кодируется и включается
подпрограмма М2; подпрограммы М3 и М4
по-прежнему заменены заглушками.
Аналогичным образом поступают при
включении в текст программы
подпрограммы М3. Тестирование главного блока программы
LOGO
Методика кодирования и тестирования
"сверху вниз"
Подпрограммы третьего уровня
кодируются и тестируются
аналогично подпрограммам второго
уровня.
Тестирование подпрограммы М4
LOGOПример разработки программы
Блок-схема программы "Калькулятор"
Конец
Начало
Ввод a, b
Ввод операции
Вычисление
результата
Постановка задачи:
даны два числа a и b вещественного
типа. Произведите с ними одно из
четырех арифметических действий
(сложение, вычитание, умножение
или деление).
LOGOПример разработки программы
Постановка задачи:
даны два числа a и b вещественного
типа. Произведите с ними одно из
четырех арифметических действий
(сложение, вычитание, умножение или
деление).
Начало
Конец
Операция
Сложение
Вычитание
Умножение
Деление
Схема блока "Вычисление результата"
LOGOПример разработки программы
Program Calculator;
Var
N : char; {выполняемое арифметическое действие}
a, b, {числа}
Rezult : real; {результат вычислений}
{-------------------------- Ввод a и b ------------------------------------}
Procedure Input(var a,b:real);
Begin
Writeln (‘ Ввод a и b ‘);
End;
{--------------- Ввод арифметического действия -----------------}
Procedure Operation(var N:char);
Begin
Writeln (‘ Ввод арифметического действия ‘);
End;
{------------------- Вычисление результата ------------------------}
Procedure Calculation(a,b:real; N:char; var Result:real);
Begin
Writeln (‘ Вычисление результата ‘);
End;
{--------------------- Управляющая программа --------------------}
BEGIN
Input(a,b);
Operation(N);
Calculation(a,b,N,Result);
END.
LOGOПример разработки программы
Program Calculator;
Var
N : char; {выполняемое арифметическое действие}
a, b, {числа}
Rezult : real; {результат вычислений}
{-------------------------- Ввод a и b ------------------------------------}
Procedure Input(var a,b:real);
Begin
Writeln;
Write (‘ Вводите значение a ‘);
Readln (a);
Write (‘ Вводите значение b ‘);
Readln (b);
End;
{--------------- Ввод арифметического действия -----------------}
Procedure Operation(var N:char);
Var Flag : Boolean;
Begin
Writeln;
Repeat
Write (‘ Введите требуемое действие ‘);
Readln (N);
Flag := N in [‘+’,’-‘,’*’,’/’];
If not Flag
then writeln (‘Ошибка! Повторите ввод’);
Until Flag;
End;
{-------------------------- Сложение -----------------------------}
Procedure Add(a,b:real);
Begin
Writeln (‘ Сложение ‘);
End;
LOGOПример разработки программы
{-------------------------- Вычитание ---------------------------}
Procedure Subtract(a,b:real);
Begin
Writeln (‘ Вычитание ‘);
End;
{-------------------------- Умножение---------------------------}
Procedure Multiplay(a,b:real);
Begin
Writeln (‘ Умножение ‘);
End;
{-------------------------- Деление-------------------------------}
Procedure Devision(a,b:real);
Begin
Writeln (‘ Деление ‘);
End;
{------------------------ Вычисление результата --------------------------}
Procedure Calculation(a,b:real;N: char; var Result:real);
Begin
Case N of
‘+’ : Add(a,b);
‘-‘ : Subtract(a,b);
‘*’ : Multiplay(a,b);
‘/’ : Devision(a,b);
end;
End;
{--------------------- Управляющая программа --------------------}
BEGIN
Input(a,b);
Operation(N);
Calculation(a,b,N,Result);
END.

More Related Content

Similar to Lektsia 6

алг и прогр (11кл)
алг и прогр (11кл)алг и прогр (11кл)
алг и прогр (11кл)isva69
 
алг и прогр (11кл)
алг и прогр (11кл)алг и прогр (11кл)
алг и прогр (11кл)isva69
 
тема 2.операторы.линейный алгоритм
тема 2.операторы.линейный алгоритмтема 2.операторы.линейный алгоритм
тема 2.операторы.линейный алгоритмdasha2012
 
Огранизация ввода и вывода данных
Огранизация ввода и вывода данныхОгранизация ввода и вывода данных
Огранизация ввода и вывода данныхAndrey Dolinin
 
«функция вывода сообщений на экран Msg box.»
«функция вывода сообщений на экран Msg box.»«функция вывода сообщений на экран Msg box.»
«функция вывода сообщений на экран Msg box.»metodkopilka
 
методические указания по выполнению расчетно графической работы
методические указания по выполнению расчетно графической работыметодические указания по выполнению расчетно графической работы
методические указания по выполнению расчетно графической работыZhanna Kazakova
 
методические указания по выполнению расчетно графической работы
методические указания по выполнению расчетно графической работыметодические указания по выполнению расчетно графической работы
методические указания по выполнению расчетно графической работыZhanna Kazakova
 
методические указания по выполнению расчетно графической работы
методические указания по выполнению расчетно графической работыметодические указания по выполнению расчетно графической работы
методические указания по выполнению расчетно графической работыZhanna Kazakova
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмовAndrey Dolinin
 
Cреда программирования
Cреда программированияCреда программирования
Cреда программированияirina8682
 
паскаль. часть1
паскаль. часть1паскаль. часть1
паскаль. часть1igorm9so
 
СИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДСИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДIT_1315
 
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...OdessaFrontend
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1Michael Karpov
 

Similar to Lektsia 6 (20)

лекция 1
лекция 1лекция 1
лекция 1
 
алг и прогр (11кл)
алг и прогр (11кл)алг и прогр (11кл)
алг и прогр (11кл)
 
алг и прогр (11кл)
алг и прогр (11кл)алг и прогр (11кл)
алг и прогр (11кл)
 
тема 2.операторы.линейный алгоритм
тема 2.операторы.линейный алгоритмтема 2.операторы.линейный алгоритм
тема 2.операторы.линейный алгоритм
 
Огранизация ввода и вывода данных
Огранизация ввода и вывода данныхОгранизация ввода и вывода данных
Огранизация ввода и вывода данных
 
презентация1
презентация1презентация1
презентация1
 
«функция вывода сообщений на экран Msg box.»
«функция вывода сообщений на экран Msg box.»«функция вывода сообщений на экран Msg box.»
«функция вывода сообщений на экран Msg box.»
 
2011 диплом Чуркин А.А.
2011 диплом Чуркин А.А.2011 диплом Чуркин А.А.
2011 диплом Чуркин А.А.
 
пр 15.docx
пр 15.docxпр 15.docx
пр 15.docx
 
прак 15.docx
прак 15.docxпрак 15.docx
прак 15.docx
 
методические указания по выполнению расчетно графической работы
методические указания по выполнению расчетно графической работыметодические указания по выполнению расчетно графической работы
методические указания по выполнению расчетно графической работы
 
методические указания по выполнению расчетно графической работы
методические указания по выполнению расчетно графической работыметодические указания по выполнению расчетно графической работы
методические указания по выполнению расчетно графической работы
 
методические указания по выполнению расчетно графической работы
методические указания по выполнению расчетно графической работыметодические указания по выполнению расчетно графической работы
методические указания по выполнению расчетно графической работы
 
Программирование циклических алгоритмов
Программирование циклических алгоритмовПрограммирование циклических алгоритмов
Программирование циклических алгоритмов
 
Cреда программирования
Cреда программированияCреда программирования
Cреда программирования
 
паскаль. часть1
паскаль. часть1паскаль. часть1
паскаль. часть1
 
8 3-5
8 3-58 3-5
8 3-5
 
СИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОДСИМПЛЕКС-МЕТОД
СИМПЛЕКС-МЕТОД
 
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1
 

Lektsia 6

  • 1. LOGO Лекция №6 Реализация структурного подхода к построению программ Пример разработки программы
  • 2. LOGO Методика кодирования и тестирования "сверху вниз" Структура программы является сложной, состоит из трех уровней вложений. На первом уровне в основной программе М1 вызываются три подпрограммы второго уровня – М2, М3, М4, подпрограмма второго уровня М4 вызывает две подпрограммы третьего уровня – М5 и М6. Схема структуры программы
  • 3. LOGO Методика кодирования и тестирования "сверху вниз" После того как блок М1 будет протестирован, вместо заглушки проектируется, кодируется и включается подпрограмма М2; подпрограммы М3 и М4 по-прежнему заменены заглушками. Аналогичным образом поступают при включении в текст программы подпрограммы М3. Тестирование главного блока программы
  • 4. LOGO Методика кодирования и тестирования "сверху вниз" Подпрограммы третьего уровня кодируются и тестируются аналогично подпрограммам второго уровня. Тестирование подпрограммы М4
  • 5. LOGOПример разработки программы Блок-схема программы "Калькулятор" Конец Начало Ввод a, b Ввод операции Вычисление результата Постановка задачи: даны два числа a и b вещественного типа. Произведите с ними одно из четырех арифметических действий (сложение, вычитание, умножение или деление).
  • 6. LOGOПример разработки программы Постановка задачи: даны два числа a и b вещественного типа. Произведите с ними одно из четырех арифметических действий (сложение, вычитание, умножение или деление). Начало Конец Операция Сложение Вычитание Умножение Деление Схема блока "Вычисление результата"
  • 7. LOGOПример разработки программы Program Calculator; Var N : char; {выполняемое арифметическое действие} a, b, {числа} Rezult : real; {результат вычислений} {-------------------------- Ввод a и b ------------------------------------} Procedure Input(var a,b:real); Begin Writeln (‘ Ввод a и b ‘); End; {--------------- Ввод арифметического действия -----------------} Procedure Operation(var N:char); Begin Writeln (‘ Ввод арифметического действия ‘); End; {------------------- Вычисление результата ------------------------} Procedure Calculation(a,b:real; N:char; var Result:real); Begin Writeln (‘ Вычисление результата ‘); End; {--------------------- Управляющая программа --------------------} BEGIN Input(a,b); Operation(N); Calculation(a,b,N,Result); END.
  • 8. LOGOПример разработки программы Program Calculator; Var N : char; {выполняемое арифметическое действие} a, b, {числа} Rezult : real; {результат вычислений} {-------------------------- Ввод a и b ------------------------------------} Procedure Input(var a,b:real); Begin Writeln; Write (‘ Вводите значение a ‘); Readln (a); Write (‘ Вводите значение b ‘); Readln (b); End; {--------------- Ввод арифметического действия -----------------} Procedure Operation(var N:char); Var Flag : Boolean; Begin Writeln; Repeat Write (‘ Введите требуемое действие ‘); Readln (N); Flag := N in [‘+’,’-‘,’*’,’/’]; If not Flag then writeln (‘Ошибка! Повторите ввод’); Until Flag; End; {-------------------------- Сложение -----------------------------} Procedure Add(a,b:real); Begin Writeln (‘ Сложение ‘); End;
  • 9. LOGOПример разработки программы {-------------------------- Вычитание ---------------------------} Procedure Subtract(a,b:real); Begin Writeln (‘ Вычитание ‘); End; {-------------------------- Умножение---------------------------} Procedure Multiplay(a,b:real); Begin Writeln (‘ Умножение ‘); End; {-------------------------- Деление-------------------------------} Procedure Devision(a,b:real); Begin Writeln (‘ Деление ‘); End; {------------------------ Вычисление результата --------------------------} Procedure Calculation(a,b:real;N: char; var Result:real); Begin Case N of ‘+’ : Add(a,b); ‘-‘ : Subtract(a,b); ‘*’ : Multiplay(a,b); ‘/’ : Devision(a,b); end; End; {--------------------- Управляющая программа --------------------} BEGIN Input(a,b); Operation(N); Calculation(a,b,N,Result); END.