Lab 1 Ex 2

Run Settings
LanguageC
Language Version
Run Command
/** * @file Ex2.cpp * @author Лєонов В.В, гр. 515і2 * @date 15 лютого 2024 * @brief Лабороторна робота N 1, Варіант 11 * * Розгалуження та вибір завдання 2 */ // підключення заголовних файлів стандартних бібліотек мови C #include <stdio.h> #include <locale.h> #include "Train_info.h" #include "Train_func.cpp" int main() { //Оголошення змінних int place, which_sit,com_side_sit, which_com, toilet; setlocale(LC_ALL, "rus");//Підключення російської мови //Введеня даних printf("Введите номер места: "); scanf("%d", &place); which_sit = downup_sit(place); //Виведення помикли if (which_sit == ERR) { printf("Информация введена не правильно\n"); return ERR; } //Виведення покли if (which_sit == 0) { printf("\nВаше место: Верхнее\n"); } else printf("\nВаше место: Нижнее\n"); com_side_sit = compart_r_side(place); //Виведення положення місця if (com_side_sit == 0) { printf("\nРасположение места: Боковое\n"); } else printf("\nРасположение места: Купе\n"); which_com = which_compart(place); //Виведення номеру купе switch (which_com) { default: printf("\nВаше место не находиться в купе\n"); break; case 1: printf("\nВаше место находиться в купе №: I\n"); break; case 2: printf("\nВаше место находиться в купе №: II\n"); break; case 3: printf("\nВаше место находиться в купе №: III\n"); break; case 4: printf("\nВаше место находиться в купе №: IV\n"); break; case 5: printf("\nВаше место находиться в купе №: V\n"); break; case 6: printf("\nВаше место находиться в купе №: VI\n"); break; case 7: printf("\nВаше место находиться в купе №: VII\n"); break; case 8: printf("\nВаше место находиться в купе №: VIII\n"); break; case 9: printf("\nВаше место находиться в купе №: IX\n"); break; } toilet = walk_to_toilet(place); //Виведення відстані до найближчого туалета printf("\nРасстояние от купе до ближайшего туалета: %d м\n", toilet); //Завершення роботи return 0; }
#ifndef TRAIN_INFO_H #include <stdio.h> #include <locale.h> #define ERR -1 #define MAX_PLACE 54 #define MIN_PLACE 1 #define PUBLIC #define PRIVATE static #define metres_of_compart 2 PRIVATE int after_place_check(int place); PUBLIC int downup_sit(int place); PUBLIC int compart_r_side(int place); PUBLIC int which_compart(int place); PUBLIC int walk_to_toilet(int place); #endif
#include "Train_info.h" PRIVATE int after_place_check(int place)//Функція для перевірки коректності введеного { return place <= MAX_PLACE && place >= MIN_PLACE; } PUBLIC int downup_sit(int place)//Функція знаходження полки і виведення помикли { return after_place_check(place) ? place % 2 != 0 : ERR; } PUBLIC int compart_r_side(int place)//Функція знаходження чи місце знаходиться в купе чи бокове { return place > 36 ? 0 : 1; } PUBLIC int which_compart(int place)//Функція знаходження номеру купе { return place <= 36 ? (place + 3) / 4 : ERR; } PUBLIC int walk_to_toilet(int place)//Функція знаходження відстані до найближчого туалету { if (compart_r_side(place) == 1) { return which_compart(place) <= 4 ? which_compart(place) * metres_of_compart + 1 : (9 - which_compart(place)) * metres_of_compart + 1; } else return place >= 47 ? (((MAX_PLACE - place) / 2) + 1) * metres_of_compart + 1 : place == 37 ? 1 : place % 2 == 0 ? place - 37: place - 37 + 1; }
Editor Settings
Theme
Key bindings
Full width
Lines