Файл: Разветвляющиеся алгоритмы Домашняя работа 1 по дисциплине Алгоритмизация и программирование.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.02.2024
Просмотров: 7
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство образования и науки Российской Федерации
ФГАОУ ВО «Уральский федеральный университет
имени первого Президента России Б.Н. Ельцина»
Департамент радиоэлектроники и связи
Разветвляющиеся алгоритмы
Домашняя работа №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 при различных исходных данных
Номер набора ИД | Значение x1 | Значение y1 | Значение x2 | Значение y2 | Результат |
№1 | 100 | 4 | 1 | 2 | Точка B ближе, чем A на 97.8439 |
№2 | 3 | 4 | 1 | 6 | Точка А ближе, чем Б на 1.08276 |
№3 | 213 | 23 | 5 | 4.56 | Точка B ближе, чем A на 207.471 |
№4 | 5 | 5 | 5 | 5 | Точки находятся на одинаковом расстоянии |
№5 | 3 | 3 | -3 | -3 | Точки находятся на одинаковом расстоянии |
Задача №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 при различных исходных данных
Номер набора ИД | Введённые данные | Результат вывода |
1 | 12 р | Зима |
2 | 4 а | Spring |
3 | 8 р | Лето |
4 | -3 а | Incorrect month number |
5 | 15 р | Ошибочный номер месяца |