Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2210.doc
Скачиваний:
10
Добавлен:
13.08.2019
Размер:
973.82 Кб
Скачать

Язык программирования 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)

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

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