ТОП 10:

writeln('Lev'); // вторая группа операторов



end;

8: if D<=22 then // анализ дня

Begin

Writeln('Lev'); // первая группа операторов

End

Else

Begin

Writeln('Deva'); // вторая группа операторов

end;

9: if D<=22 then // анализ дня

Begin

Writeln('Deva'); // первая группа операторов

End

Else

Begin

Writeln('Vesy'); // вторая группа операторов

end;

10: if D<=22 then // анализ дня

Begin

Writeln('Vesy'); // первая группа операторов

End

Else

Begin

Writeln('Skorpion'); // вторая группа операторов

end;

11: if D<=22 then // анализ дня

Begin

Writeln('Skorpion'); // первая группа операторов

End

Else

Begin

Writeln('Strelec'); // вторая группа операторов

end;

12: if D<=21 then // анализ дня

Begin

Writeln('Strelec'); // первая группа операторов

End

Else

Begin

Writeln('Kozerog'); // вторая группа операторов

end;

Else writeln('Oshibjchno vveden mesyac.'); // обработка ошибки ввода месяца

end;

 

В разделе объявления переменных программы должна содержаться следующая запись:

 

Var // объявление переменных

M,D:Integer;

 

Реализация программы в среде Delphi выглядит следующим образом:

 

Program lab5; // заголовок программы

// указание компилятору создать консольное приложение

{$APPTYPE CONSOLE}

Var // объявление переменных

M,D:Integer;

Begin // начало программы

// сообщение пользователю о цели программы

writeln('Programma dlya vvedenyh mesyaca i dnya opredelaet znak zodiaka.');

// сообщение пользователю о необходимости ввода переменной

write('Vvedite M: ');

Readln(M); // ввод переменной

// сообщение пользователю о необходимости ввода переменной

write('Vvedite D: ');

Readln(D); // ввод переменной

Case M of // анализ месяца

1: if D<=19 then // анализ дня

Begin

Writeln('Kozerog'); // первая группа операторов

End

Else

Begin

Writeln('Vodoley'); // вторая группа операторов

end;

2: if D<=18 then // анализ дня

Begin

Writeln('Vodoley'); // первая группа операторов

End

Else

Begin

Writeln('Ryby'); // вторая группа операторов

end;

3: if D<=20 then // анализ дня

Begin

Writeln('Ryby'); // первая группа операторов

End

Else

Begin

Writeln('Oven'); // вторая группа операторов

end;

4: if D<=19 then // анализ дня

Begin

Writeln('Oven'); // первая группа операторов

End

Else

Begin

Writeln('Telec'); // вторая группа операторов

end;

5: if D<=20 then // анализ дня

Begin

Writeln('Telec'); // первая группа операторов

End

Else

Begin

Writeln('Bliznicy'); // вторая группа операторов

end;

6: if D<=21 then // анализ дня

Begin

Writeln('Bliznicy'); // первая группа операторов

End

Else

Begin

Writeln('Rak'); // вторая группа операторов

end;

7: if D<=22 then // анализ дня

Begin

Writeln('Rak'); // первая группа операторов

End

Else

Begin

Writeln('Lev'); // вторая группа операторов

end;

8: if D<=22 then // анализ дня

Begin

Writeln('Lev'); // первая группа операторов

End

Else

Begin

Writeln('Deva'); // вторая группа операторов

end;

9: if D<=22 then // анализ дня

Begin

Writeln('Deva'); // первая группа операторов

End

Else

Begin

Writeln('Vesy'); // вторая группа операторов

end;

10: if D<=22 then // анализ дня

Begin

Writeln('Vesy'); // первая группа операторов

End

Else

Begin

Writeln('Skorpion'); // вторая группа операторов

end;

11: if D<=22 then // анализ дня

Begin

Writeln('Skorpion'); // первая группа операторов

End

Else

Begin

Writeln('Strelec'); // вторая группа операторов

end;

12: if D<=21 then // анализ дня

Begin

Writeln('Strelec'); // первая группа операторов

End

Else

Begin

Writeln('Kozerog'); // вторая группа операторов

end;

Else writeln('Oshibjchno vveden mesyac.'); // обработка ошибки ввода месяца

end;

Readln; // задерживаем закрытие консольного окна

End. // конец программы

 

Язык программирования C

Оператору выбора в языке C соответствует последовательность:

 

switch (анализируемая переменная)

{

case 1-е значение : 1-я группа операторов;

break;

case 2-е значение : 2-я группа операторов;

break;

case n-е значение : n-я группа операторов;

break;

default: обработка ошибки;

}

 

Руководствуясь блок-схемой, записываем алгоритм на языке C:

 

scanf("%d",&M); // ввод месяца

scanf("%d",&D); // ввод дня

switch(M) { // анализ месяца

case 1:

if(D<=19) { // анализ дня

printf("Kozerog\n"); // первая группа операторов

} else {

printf("Vodoley\n"); // вторая группа операторов

}

break;

case 2:

if(D<=18) { // анализ дня

printf("Vodoley\n"); // первая группа операторов

} else {

printf("Ryby\n"); // вторая группа операторов

}

break;

case 3:

if(D<=20) { // анализ дня

printf("Ryby\n"); // первая группа операторов

} else {

printf("Oven\n"); // вторая группа операторов

}

break;

case 4:

if(D<=19) { // анализ дня

printf("Oven \n"); // первая группа операторов

} else {

printf("Telec\n"); // вторая группа операторов

}

break;

case 5:

if(D<=20) { // анализ дня

printf("Telec\n"); // первая группа операторов

} else {

printf("Bliznicy\n"); // вторая группа операторов

}

break;

case 6:

if(D<=21) { // анализ дня

printf("Bliznicy\n"); // первая группа операторов

} else {

printf("Rak\n"); // вторая группа операторов

}

break;

case 7:

if(D<=22) { // анализ дня

printf("Rak\n"); // первая группа операторов

} else {

printf("Lev\n"); // вторая группа операторов

}

break;

case 8:

if(D<=22) { // анализ дня

printf("Lev\n"); // первая группа операторов

} else {

printf("Deva\n"); // вторая группа операторов

}

break;

case 9:

if(D<=22) { // анализ дня

printf("Deva\n"); // первая группа операторов

} else {

printf("Vesy\n"); // вторая группа операторов

}

break;

case 10:

if(D<=22) { // анализ дня

printf("Vesy\n"); // первая группа операторов

} else {

printf("Skorpion\n"); // вторая группа операторов

}

break;

case 11:

if(D<=22) { // анализ дня

printf("Skorpion\n"); // первая группа операторов

} else {

printf("Strelec\n"); // вторая группа операторов

}

break;

case 12:

if(D<=21) { // анализ дня

printf("Strelec\n"); // первая группа операторов

} else {

printf("Kozerog\n"); // вторая группа операторов

}

break;

default: printf("Oshibjchno vveden mesyac.\n"); // обработка ошибки ввода месяца

}

 

В разделе объявления переменных программы должна содержаться следующая запись:

 

int M,D;

 

Реализация программы в среде С Builder выглядит следующим образом:

 

#pragma hdrstop

// подключение модуля, в котором определены функции ввода и вывода

#include <stdio.h>

#pragma argsused

int main(int argc, char* argv[]) {

// объявление переменных

int M,D;

// сообщение пользователю о цели программы

printf("Programma dlya vvedenyh mesyaca i dnya opredelaet znak zodiaka.\n");

// сообщение пользователю о необходимости ввода переменной

printf("Vvedite mesyac M: ");

scanf("%d",&M); // ввод месяца

// сообщение пользователю о необходимости ввода переменной

printf("Vvedite den D: ");

scanf("%d",&D); // ввод дня

switch(M) { // анализ месяца

case 1:

if(D<=19) { // анализ дня

printf("Kozerog\n"); // первая группа операторов

} else {

printf("Vodoley\n"); // вторая группа операторов

}

break;

case 2:

if(D<=18) { // анализ дня

printf("Vodoley\n"); // первая группа операторов

} else {

printf("Ryby \n"); // вторая группа операторов

}

break;

case 3:

if(D<=20) { // анализ дня

printf("Ryby \n"); // первая группа операторов

} else {

printf("Oven \n"); // вторая группа операторов

}

break;

case 4:

if(D<=19) { // анализ дня

printf("Oven \n"); // первая группа операторов

} else {

printf("Telec\n"); // вторая группа операторов

}

break;

case 5:

if(D<=20) { // анализ дня

printf("Telec\n"); // первая группа операторов

} else {

printf("Bliznicy\n"); // вторая группа операторов

}

break;

case 6:

if(D<=21) { // анализ дня

printf("Bliznicy\n"); // первая группа операторов

} else {

printf("Rak\n"); // вторая группа операторов

}

break;

case 7:

if(D<=22) { // анализ дня

printf("Rak\n"); // первая группа операторов

} else {

printf("Lev\n"); // вторая группа операторов

}

break;

case 8:

if(D<=22) { // анализ дня

printf("Lev\n"); // первая группа операторов

} else {

printf("Deva\n"); // вторая группа операторов

}

break;

case 9:

if(D<=22) { // анализ дня

printf("Deva\n"); // первая группа операторов

} else {

printf("Vesy\n"); // вторая группа операторов

}

break;

case 10:

if(D<=22) { // анализ дня

printf("Vesy\n"); // первая группа операторов

} else {

printf("Skorpion\n"); // вторая группа операторов

}

break;

case 11:

if(D<=22) { // анализ дня

printf("Skorpion\n"); // первая группа операторов

} else {

printf("Strelec\n"); // вторая группа операторов

}

break;

case 12:

if(D<=21) { // анализ дня

printf("Strelec\n"); // первая группа операторов

} else {

printf("Kozerog\n"); // вторая группа операторов

}

break;

default: printf("Oshibjchno vveden mesyac.\n"); // обработка ошибки ввода месяца

}

scanf("%d",&D); // задерживаем закрытие консольного окна

return 0;

}

 

Этап 5. Тестирование и отладка. Проверяем работу программы. Составляем тесты и запускаем по ним программу.

В формализованное решение задачи подставляем параметры M, D и получаем результат.

Составляем три теста:

1) M = 5; D = 25; Близнецы

2) M = 16; D = 24; Ошибка ввода месяца

3) M = 3; D = 4; Рыбы

Запускаем программу и подставляем тестовые переменные:

 

1)

 

2)

 

3)

 

Результаты работы программы совпадают с ожидаемыми результатами — программа работает правильно.

 

Библиографический список

 

1. Пильщиков В.Н. Сборник упражнений по языку Паскаль : учеб. пособие для вузов. — М.: Наука, 1989 . -160 с.

2. М.Э.Абрамян. Электронный задачник. – М.,2006 . - 200 с.







Последнее изменение этой страницы: 2016-08-26; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.235.30.155 (0.024 с.)