You are on page 1of 6

Лабораторна робота №3

Оператори безумовного переходу.


Оператори
Оператор - це частина програми, яка може бути виконана окремо. Це означає, що оператор
визначає деяку дію. У мові С існують такі групи операторів:
До умовних належать оператори if і switch. Іноді їх також називають операторами умовного
переходу. До міток відносяться оператори case, default
До операторів безумовного переходу відносяться: break, continue, goto і return.
Оператори циклу - це while, for і do-while.
Оператори-вирази - це оператори, що складаються з допустимих виразів.
Блок являє собою фрагмент тексту програми, обрамлений фігурними дужками {}. Блок іноді
називають складеним оператором.
Так як у багатьох операторах застосовуються умовні вирази, їх розгляд почнемо з короткої
характеристики значень ИСТИНА И ЛОЖЬ.
Оператор switch, загальний вигляд якого описано нижче:
switch (вираз) {
case значення1:
блок 1;
break;
case значення2:
блок 2;
break;
...
case значення N:
блокN;
break;
default:
блок N + 1;
}
Вираз, який повинен мати цілочисельний тип, порівнюється з усіма значеннями (теж
цілочисельними), зазначеними після ключових слів case. Якщо воно збігається з одним з них,
то
управління передається відповідному блоку операторів, а якщо збігу не виявляється, то
управління
передається блоку default (Якщо такий існує, бо він не є обов'язковим). Після виконання
того
блоку, на який було передано управління, оператор break викликає завершення виконання
оператора switch. При відсутності оператора break управління просто буде передано
наступному
блоку за щойно виконаним.
Приклад:
Написати програму, яка обчислює вартість 10 хвилинного міжміського розмови в
залежності від коду міста. (Київ (044) - 1.12 грн. Донецьк (062) - 1.13 грн. Луганськ (642) -
2.09грн. Львів (32) - 1.55грн.)
#include <stdio.h>
#include <conio.h>
int main (int argc, char * argv []) {
int kod;
scanf ( "% d", & kod);
switch (kod) {
case 044:
printf ( "вартість =% d грн." kod * 10);
break;
case 062: printf ( "вартість =% d грн." kod * 10);
break;
case 642:

printf ( "вартість =% d грн." kod * 10);


break;
case 32:
printf ( "вартість =% d грн." kod * 10);
break;
default:
printf << "Невірний код міста!";
}
Getch ();
return 0;
}

Завдання на лабораторну роботу


1) Виведення назви дня тижня за порядковим номером:
#include <stdio.h>

int main() {
int day_number;
char *days[] = {"понеділок", "вівторок", "середа", "четвер", "п'ятниця", "субота",
"неділя"};

printf("Введіть порядковий номер дня тижня (1-7): ");


scanf("%d", &day_number);

if (day_number >= 1 && day_number <= 7) {


printf("День тижня з номером %d - %s\n", day_number, days[day_number - 1]);
} else {
printf("Некоректний номер дня тижня.\n");
}

return 0;
}

2) Виведення кількості днів у місяці за порядковим номером місяця:


#include <stdio.h>

int main() {
int month_number;
int is_leap_year = 0; // 0 означає не високосний рік

printf("Введіть порядковий номер місяця (1-12): ");


scanf("%d", &month_number);
if (month_number >= 1 && month_number <= 12) {
if (month_number == 2) {
int year;
printf("Введіть рік: ");
scanf("%d", &year);
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
is_leap_year = 1; // Рік високосний
}
}

int days_in_month;
switch (month_number) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
days_in_month = 31;
break;
case 4: case 6: case 9: case 11:
days_in_month = 30;
break;
case 2:
days_in_month = is_leap_year ? 29 : 28;
break;
}

printf("Місяць з номером %d має %d днів.\n", month_number, days_in_month);


} else {
printf("Некоректний номер місяця.\n");
}

return 0;
}

3) Визначення дня тижня для k-го дня високосного року, коли 1 січня - вівторок:
#include <stdio.h>

int main() {
int k;
int is_leap_year = 1; // Рік високосний
char *days[] = {"понеділок", "вівторок", "середа", "четвер", "п'ятниця", "субота",
"неділя"};

printf("Введіть k (1 < k < 365): ");


scanf("%d", &k);

if (k > 1 && k < 365) {


int day_number = (k + 1) % 7; // Додаємо 1, оскільки 1 січня - вівторок
printf("%d-й день високосного року є %s.\n", k, days[day_number]);
} else {
printf("Некоректне значення k.\n");
}

return 0;
}

4) Визначення назви місяця після n місяців і 2 днів з початку 1990 року:


#include <stdio.h>

int main() {
int n;
int days = 2; // Дні, які треба додати
char *months[] = {"січень", "лютий", "березень", "квітень", "травень", "червень",
"липень", "серпень", "вересень", "жовтень", "листопад", "грудень"};

printf("Введіть кількість місяців і 2 дні: ");


scanf("%d", &n);

int total_days = (n * 30) + days; // Передбачаємо, що місяць має 30 днів

int current_month = 0; // Початковий місяць - січень


while (total_days >= 30) {
total_days -= 30;
current_month++;
}

printf("Після %d місяців і 2 днів буде місяць %s.\n", n, months[current_month]);

return 0;
}

5) Визначення назви року по старояпонському календарю:


#include <stdio.h>

char *cycle_names[] = {"зелений", "червоний"};


char *subcycle_names[] = {"жовтий", "білий", "чорний"};
char *animal_names[] = {"пацюк", "корова", "тигр", "заєць", "дракон", "змія", "кінь",
"вівця", "мавпа", "курка", "собака", "свиня"};

int get_japanese_year(int n) {
int cycle = (n - 1984) % 2;
int subcycle = (n - 1984) % 10;
int animal = (n - 1984) % 12;

printf("Рік %d за старояпонським календарем: %s %s (%s).\n", n, cycle_names[cycle],


subcycle_names[subcycle], animal_names[animal]);
}

int main() {
int n;
printf("Введіть номер року (

You might also like