Лабораторная №4
.docxОдеський національний політехнічний університет
Інститут комп’ютерних систем
Кафедра інформаційних систем
Варіант №1
Лабораторна робота №4
По дисципліні “Алгоритмізація і програмування”
Тема:“ Програмування алгоритмів з використанням операторів умовної передачі управління «switch».”
Виконав:
Студент гр. АІ-171
Анищенко М.О.
Перевірили:
Шпиньковський О.А.
Одеса 2017
Завдання 4.1:
Дано номер місяця (1 – січень, 2 – лютий, ...). Вивести назву відповідної пори року («зима», «весна» і т.д.).
Блок схема:
Код програми:
#include <stdio.h>
#include <stdlib.h>
int main(){
int num;
printf("Enter month number\n");
scanf("%d", &num);
switch(num){
case 1: case 2: case 12:
printf("Winter\n");
break;
case 3: case 4: case 5:
printf("Spring\n");
break;
case 6: case 7: case 8:
printf("Summer\n");
break;
case 9: case 10: case 11:
printf("Autumn\n");
break;
default:
printf("Invalid input\n");
break; }
return 0; }
Приклад роботи:
Вхідні данні |
4 |
Enter month number
4
Spring
Process returned 0 (0x0) execution time : 1.927 s
Press any key to continue.
Вхідні данні |
12 |
Enter month number
12
Winter
Process returned 0 (0x0) execution time : 2.131 s
Press any key to continue.
Завдання 4.2:
Чоловік заповнює в військкоматі анкету, програма повинна в залежності від вказаного ним
віку виводити різні підказки, а саме:
– Якщо вказаний вік від 20 і до 28 років, то повідомляти, що заповнюючий підлягає
призову на строкову службу або може служити за контрактом.
– Якщо вказаний вік від 28 до 59 років, то повідомляти, що заповнюючий може служити
за контрактом.
– Якщо вказаний вік менше 20 або більше 59 років, то повідомляти про те, що
заповнюючий непризовного віку.
– Якщо вказано непозитивний вік або вік більше 100 років, то повідомити про помилку.
Код програми:
#include <stdio.h>
#include <stdlib.h>
int main(){
int age;
printf("Enter your age\n");
scanf("%d", &age);
switch(age){
case 20 ... 27:
printf("You can serve in the contract and urgent army\n");
break;
case 28 ... 59:
printf("You can serve in the contract army\n");
break;
case 0 ... 19:
case 60 ... 100:
printf("You are not subject to conscription\n");
break;
default:
printf("Error\n");
break; }
return 0;}
Приклад виконання:
Вхідні данні |
26 |
Enter your age
26
You can serve in the contract and urgent army
Process returned 0 (0x0) execution time : 2.779 s
Press any key to continue.
Вхідні данні |
80 |
Enter your age
80
You are not subject to conscription
Process returned 0 (0x0) execution time : 3.793 s
Press any key to continue.
Контрольні запитання:
-
Розгалужений процес вміщує декілька шляхів. Вибір того чи іншого шляху залежить від виконання деяких умов. У багатьох випадках виникає потреба в зміні послідовного порядку операторів, що стає можливим завдяки операторам управління. До них в першу чергу відносяться IF та CASE.Оператор IF реалізує операцію умовного переходу (операцію розгалуження на два напрямки). В умовному виразі задається умова розгалуження. При виконанні оператора IF цей вираз обчислюється з отриманням логічного результату. Якщо результат True, то виконується простий або складний оператор після слова Then. Якщо результат False, то виконується оператор після Else.
-
Логічні вирази — це вирази, що складаються з висловлювань, які можуть бути з’єднані логічними зв’язками. Ці вирази набувають логічного значення («хибне» або «істинне»). Логічні вирази можуть бути простими та складеними
-
-
Нижче наведені логічні операції в порядку зменшення їх пріоритету, причому операції, записані в одному пункті мають однаковий пріоритет: 1) Not; 2) And; 3) Or, Xor; 4) =, <>, <, >, <=, >=.. Якщо у виразі не використовують круглі дужки, то логічні операції виконуються в порядку зменшення їх пріоритетів. Операції однакового рангу виконуються зліва направо. Для зміни порядку виконання операцій в логічних виразах використовують круглі дужки.
-
За допомогою операторів if та else
-
За допомогою операторів switch та case