
Вспомогательные алгоритмы (подпрограммы).
Задание 1. Написать программу для решения задачи. Оформить вычисление min и max из двух чисел в виде функций.
Образец выполнения задания.
Задача: Даны три числа найти попарные произведения этих чисел. Вычислить минимальное и максимальное из этих значений.
Этапы выполнения задания.
Определение исходных данных: переменные x, y, z.
Определение результатов: переменные minpr, maxpr, обозначающие минимальное и максимальное произведения соответственно.
Алгоритм решения задачи.
Ввод исходных данных.
Находим попарные произведения чисел x, y, z. Таких произведений будет три: xy, yz, xz. Для нахождения минимального (или максимального) значения из трех чисел воспользуемся следующим свойством: min(a1, a2, a3) = min(min(a1, a2), a3).
Вывод результата.
Описание переменных:
Все переменные имеют тип int.
Программа:
#include <iostream>
#include <windows.h>
using namespace std;
int max(int c,int d)
{ if (c>d)
return c;
else
return d;
}
int min(int c, int d)
{ if (c<d)
return c;
else
return d;
}
inr main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int x,y,z,a1,a2,a3,minpr,maxpr,s;
cout << "введите x=";
cin>>x;
cout << "введите y=";
cin>>y;
cout << "введите z=";
cin>>z;
a1=x*y;
a2=y*z;
a3=x*z;
s=min(a1,a2);
minpr=min(s,a3);
cout<<"минимальное произведение= "<<minpr<<endl;
s=max(a1,a2);
maxpr=max(s,a3);
cout<<"максимальное произведение= "<<maxpr<<endl;
}
Тестирование
Запустите программу и введите значение
x=3
y=-2
z=-4
Проверьте, результат должен быть следующим:
минимальное произведение=-12
максимальное произведение=8
Заполните таблицу
x
y
z
Минимальное произведение
Максимальное произведение
1
5
1
4
2
2
-5
3
3
-5
-12
-4
Добавьте в таблицу свои значения. Проверьте ситуацию, в которой одна из переменных (или не одна) равна нулю.
Что нужно изменить в программе, для того, чтобы можно было работать с дробными числами. В каких случаях полученные произведения будут больше(меньше) введенных чисел.
Добавьте в программу проверку какое из значений будет больше max(x, y, z) или maxpr. (Аналогично – меньше – min(x, y, z) или minpr.)
Индивидуальные задания.
Найти min и max из трех чисел.
Найти min и max для модулей трех чисел.
Даны три числа. Найти min и max из этих чисел. Затем найти сумму и произведение полученных значений, из вычислить min и max из суммы и произведения.
Найти min и max среди четырех чисел.
Найти min и max среди пяти чисел.
Даны три различных числа. Какое из этих чисел не является ни минимальным, ни максимальным?
Даны три числа. Распечатать их в порядке возрастания.
Даны 4 различных числа. Распечатать те из них, которые не равны min и max.
Даны 4 различных числа. Определить наибольшее и наименьшее среди тех двух чисел, которые не равны min и max.
Даны 4 различных числа. Распечатать их в порядке возрастания.
Даны 5 различных чисел. Распечатать их в порядке возрастания.
Даны 5 различных чисел. Распечатать их в порядке возрастания те 3 из них, которые не являются ни min ни max
Задание 2. Написать программу для решения задачи. Оформить вычисление указанных функций в качестве подпрограмм.
Образец выполнения задания.
Задача: Дано действительное число x. Получить
Этапы выполнения задания.
Определение исходных данных: переменная x
Определение результатов: переменная s (значение искомого выражения).
Алгоритм решения задачи.
Ввод исходных данных.
Для вычисления значения выражения опишем функцию f. Для вычисления значения функции опишем функции для вычисления min и max из двух чисел.
Вывод результата.
Описание переменных:
Переменные x и s имеют тип double.
Программа:
#include <iostream>
#include <windows.h>
using namespace std;
double max(double c,double d)
{ if (c>d)
return c;
else
return d;
}
double min(double c, double d)
{ if (c<d)
return c;
else
return d;
}
double f(double a, double b)
{ double q=min(a,b)/max(a,b);
return q;
}
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
double x,s;
cout << "введите x=";
cin>>x;
s=f(5*x,-3)+f(x*x*x,5*x);
cout<<"значение выражения= "<<s<<endl;
}