Файл: Разветвляющиеся алгоритмы Домашняя работа 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

р

Ошибочный номер месяца