Программирование разветвленных алгоритмов. Задача. Лабораторная работа 2 Программирование разветвленных алгоритмов
Скачать 65.94 Kb.
|
Лабораторная работа 2 Программирование разветвленных алгоритмов. Операторы передачи управления Структура условного оператора передачи управления: if (<выражение>) <оператор 1> else <оператор 2>; (Если) (иначе) - ключевые слова, где <условие> - это произвольное выражение логического типа, которое может принимать два значения: истина (TRUE) и ложь (FALSE); <оператор> - любой оператор языка СИ, заканчивается точкой с запятой. Сокращенная форма условного оператора: if (<выражение>) <оператор>; Оператор безусловного перехода: goto <идентификатор-метка>; Меткой является идентификатор. Метка размещается перед оператором С/С++, к которому выполняется переход и отделяется двоеточием (:). Пример 1. Составить программу для начисления базовой зарплаты согласно следующему правилу: если стаж работы сотрудника менее трех лет, то зарплата равна 100$, при стаже работы от трех до 5 лет - 150$, свыше 5 лет зарплата повышается с каждым годом на 10$, причем при стаже, превышающем 20 лет, она составляет 300$. Для программирования решения этой задачи определим математическую формулировку задачи: 100, если ST < 3; ZP= 150, если 3 ≤ST 5; 150+ (ST -5)*10, если 5 < ST≤ 20; 300, если ST > 20; где ZP - зарплата, ST - стаж работы. Далее построим СА (рис.2,а), ей соответствует следующая программа: #include #include void main () { int ST; // ST - стаж (байтовый (целый) тип беззнаковый) float ZP; // ZP - зарплата (плавающий тип) printf ("\n Введите стаж "); scanf ("%d",&ST); if (ST<3) ZP = 100; else if (ST<5) ZP = 150; else if (ST>=20) ZP=300; else ZP=150+(ST- 5)*10; printf ("\n Зарплата = %10.2f$\n",ZP); getch(); } Оператор выбора switch позволяет в зависимости от значения какой-либо переменной или выражения (ключа выбора) выполнить те или иные операторы, помеченные соответствующими константами. Структура оператора: switch (<выражение> ) { case <константа 1>: <группа операторов 1>; case <константа 2>: <группа операторов 2>; . . . case <константа N>: <группа операторов N> default: <операторы>; } где <выражение> - выражение (переменная) любого порядкового типа; <константа> - константа того же типа, что и <выражение>; <оператор> - произвольный оператор C/C++. Пример 2.Напечатать в зависимости от числа углов название фигуры (треугольник, четырехугольник, пятиугольник, шестиугольник, многоугольник). Вариант реализации задачи с применением оператора выбора представлен СА (рис.2,б) и следующей программой: #include #include void main () { int T; // T – число углов clrscr(); // очистка экрана printf ("Введите число углов "); scanf ("%d",&T); switch (T) { case 1: case 2 : printf ("Это не фигура\n "); break; case 3: printf ("С %d углами - треугольник\n ", T); break; case 4: printf ("С %d углами - четырехугольник\n ", T); break; case 5 : printf ("С %d углами - пятиугольник\n ", T ); break; case 6: printf ("С %d углами - шестиугольник\n ", T ); break; default : printf ("С %d углами - многоугольник\n ", T ); } getch(); } Задача С клавиатуры ввести число k (1..30). Определить, какому дню недели оно соответствует, если первое число - понедельник. Текст программы: #include #include #include void main() { int k,s; clrscr(); printf("vvedite den"); scanf("%d",&k); s= fmod(k,7); switch(s) { case 1: printf("ponedelnik"); break; case 2: printf("vtornik"); break; case 3: printf("sreda"); break; case 4: printf("chetverg"); break; case 5: printf("pjatnitcsa"); break; case 6: printf("subbota"); break; case 0: printf("voskresenie"); } getch(); } |