- •Создание простых программ и программ с анализом данных
- •Введение
- •Лабораторная работа №1. Ввод и вывод данных
- •Задания
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Var // объявление переменных
- •Язык программирования c
- •Лабораторная работа №2. Целые числа
- •Задания
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Var // объявление переменных
- •Язык программирования c
- •Int a,X,y,z; // объявление переменных
- •Лабораторная работа №3. Логические выражения
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Var // объявление переменных
- •Var // объявление переменных
- •Язык программирования c
- •Лабораторная работа №4. Условный оператор
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Var // объявление переменных
- •Язык программирования c
- •If(логическое выражение) {первая группа операторов;} else {вторая группа операторов;}
- •Лабораторная работа №5. Оператор выбора
- •Выполнение лабораторной работы
- •Методические указания к выполнению лабораторной работы
- •Язык программирования Pascal
- •Var // объявление переменных
- •Var // объявление переменных
- •Язык программирования c
- •Библиографический список
Язык программирования 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)
Результаты работы программы совпадают с ожидаемыми результатами — программа работает правильно.