уау. Разветвляющиеся алгоритмы Домашняя работа 1 по дисциплине Алгоритмизация и программирование
Скачать 170.31 Kb.
|
Министерство образования и науки Российской Федерации ФГАОУ ВО «Уральский федеральный университет имени первого Президента России Б.Н. Ельцина» Департамент радиоэлектроники и связи Разветвляющиеся алгоритмы Домашняя работа №1 по дисциплине «Алгоритмизация и программирование» Вариант № 11 Студент Ершов Е.М. Роспись студ. Дата сдачи работы Гр. РИ-121111 ___20.03.2023___ ___________ Роспись препод. Дата приема работы Преподаватель ________________ ___________ Саблина Н.Г. Екатеринбург 2023 Задача №1. Вариант 11 Две точки плоскости заданы координатами. Определить, какая из них расположена ближе к началу координат и на сколько. Постановка задачи №1 Исходными данными в этой задаче являются значения ординат и абсцисс на плоскости (x1, y1) и (x2, y2) для каждой из двух точек A и B соответственно. x и y – действительные числа, вводятся с клавиатуры. Выходные данные - По значениям координат определить какая из точек ближе к началу координат и на сколько (q). Вывод с результатом q (действительной число) выводится на монитор. Краткое описание метода решения задачи №1 Программа вычисляет расстояние от точки A и от Б до начала координат по формулам: (1.1) (1.2) где a и b – расстояние от точек А и Б до плоскости, (x1,y1) и (x2,y2) - координаты точек А и Б соответственно. Далее программа сравнивает значения расстояний вычисляет их разницу в длине (из большего расстояния вычитает меньшую) и выводит результат. Начало Схема алгоритма Программа определения взаимного расположения точек А и В по отношению к началу координат Введите значения абсцисс и ординат точек А и В 1 1 x1,y1,x2,y2 a = b = Нет Да a = b a > b Нет Да q = b - a q = a - b Точки находятся на одинаковом расстоянии Точка Б ближе, чем точка A на q Точка А ближе, чем точка Б на q Конец Текст программы №1 #include #include using namespace std; int main() { float x1, y1, x2, y2, a, b, q; //Заставка printf("Программа определения взаимного расположения точек A и B по отношению к началу координат\nАвтор: студент гр. РИ-121111 Ершов Е.M. 2023 г.\n"); //Ввод Исходных данных printf("\nВведите значение (действительное) абсциссы точки A x = "); scanf("%f",&x1); printf("\nВведите значение (действительное) ординаты точки A y = "); scanf("%f",&y1); printf("\nВведите значение (действительное) абсциссы точки B x = "); scanf("%f",&x2); printf("\nВведите значение (действительное) ординаты точки B y = "); scanf("%f",&y2); //Вычисляемая часть a = (sqrt(x1*x1 + y1*y1)); b = (sqrt(y2*y2 + x2*x2)); if (a == b) { //Вывод результатов cout << "\nТочки находятся на одинаковом расстоянии"; }else if (a > b) { q = a - b; //Вывод результатов cout << "\nТочка B ближе, чем A на" << (" ") << (q); }else { q = b - a; //Вывод результатов cout << ("\nТочка А ближе, чем Б на") << (" ") << (q); } return 0; } Результаты работы программы №1 при различных исходных данных
Задача №2. Вариант 11 Составить программу, которая в зависимости от введенного номера месяца выводит название сезона, к которому он относится. Предусмотреть выбор одного из двух языков: а – английский, р - русский. Постановка задачи №2 Исходными данными для этой задачи является номер месяца (целое неотрицательное число) и символ отвечающий за выбор языка. Оба значения вводятся с клавиатуры. Выходными данными будет является название сезона на выбранном языке, к которому относится выбранный месяц, результат выводится на экран. Краткое описание метода решения задачи №2 Каждому месяцу присвоить номер и дать пользователю выбор языка, далее вывести на экран название сезона, принадлежащий выбранному месяцу, на нужном языке. Для Решения задачи используем оператор множественного выбора switch, с помощью которого сначала будем смотреть выбранный месяц, а потом также с помощью switch, будем выводить название сезона, в зависимости от выбранного языка. Схема алгоритма Начало Программа определяющая сезон в зависимости от выбранного месяца Введите номер месяца n Нет n 1 Language а р 2 Некорректный номер месяца Incorrect month number Конец 1 9, 10, 11 6, 7, 8 3, 4, 5 1, 2, 12 Language Language Language Language а а р р а а р р Лето Зима Summer Winter Весна Осень Spring Autumn 2 Текст программы №2 #include using namespace std; int main() { int n; char language; cout <<("Программа определяющая сезон в зависимости от выбранного месяца \nАвтор: студент гр. РИ-121111 Ершов Е.М. 2023 г."); //Заставка printf ("\n\n1 - Январь \n2 - Февраль \n3 - Март \n4 - Апрель \n5 - Май \n6 - Июнь \n7 - Июль \n8 - Август \n9 - Сентябрь \n10 - Октябрь \n11 - Ноябрь \n12 - Декабрь \n"); cout << "\nВыберите номер месяца: "; cin >> n; cout << "Язык вывода: а - английский р - русский\n"; cout << "Выберите язык: "; cin >> language; switch (n) { case 1: case 2: case 12: // Зима switch (language) { case 'а': // английский cout << "\nWinter\n"; break; case 'р': // русский cout << "\nЗима\n"; break; } break; case 3: case 4: case 5: // Весна switch (language) { case 'а': // английский cout << "\nSpring\n"; break; case 'р': // русский cout << "\nВесна\n"; break; } break; case 6: case 7: case 8: // Лето switch (language) { case 'а': // английский cout << "\nSummer\n"; break; case 'р': // русский cout << "\nЛето\n"; break; } break; case 9: case 10: case 11: // Осень switch (language) { case 'а': // английский cout << "\nAutumn\n"; break; case 'р': // русский cout << "\nОсень\n"; break; } break; default: switch (language) { case 'а': // английский cout << "\nIncorrect month number\n"; break; case 'р': // русский cout << "\nНекорректный номер месяца\n"; break; break; } } printf("\nДля выхода нажмите любую клавишу"); return 0; } Результаты работы программы №2 при различных исходных данных
|