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.