Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вспомогательные алгоритмы1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
155.14 Кб
Скачать

Вспомогательные алгоритмы (подпрограммы).

Задание 1. Написать программу для решения задачи. Оформить вычисление min и max из двух чисел в виде функций.

Образец выполнения задания.

Задача: Даны три числа найти попарные произведения этих чисел. Вычислить минимальное и максимальное из этих значений.

Этапы выполнения задания.

  1. Определение исходных данных: переменные x, y, z.

  2. Определение результатов: переменные minpr, maxpr, обозначающие минимальное и максимальное произведения соответственно.

  3. Алгоритм решения задачи.

    1. Ввод исходных данных.

    2. Находим попарные произведения чисел x, y, z. Таких произведений будет три: xy, yz, xz. Для нахождения минимального (или максимального) значения из трех чисел воспользуемся следующим свойством: min(a1, a2, a3) = min(min(a1, a2), a3).

    3. Вывод результата.

  4. Описание переменных:

Все переменные имеют тип int.

  1. Программа:

#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;

}

  1. Тестирование

    1. Запустите программу и введите значение

x=3

y=-2

z=-4

Проверьте, результат должен быть следующим:

минимальное произведение=-12

максимальное произведение=8

    1. Заполните таблицу

      x

      y

      z

      Минимальное произведение

      Максимальное произведение

      1

      5

      1

      4

      2

      2

      -5

      3

      3

      -5

      -12

      -4

    2. Добавьте в таблицу свои значения. Проверьте ситуацию, в которой одна из переменных (или не одна) равна нулю.

    3. Что нужно изменить в программе, для того, чтобы можно было работать с дробными числами. В каких случаях полученные произведения будут больше(меньше) введенных чисел.

    4. Добавьте в программу проверку какое из значений будет больше max(x, y, z) или maxpr. (Аналогично – меньше – min(x, y, z) или minpr.)

Индивидуальные задания.

  1. Найти min и max из трех чисел.

  2. Найти min и max для модулей трех чисел.

  3. Даны три числа. Найти min и max из этих чисел. Затем найти сумму и произведение полученных значений, из вычислить min и max из суммы и произведения.

  4. Найти min и max среди четырех чисел.

  5. Найти min и max среди пяти чисел.

  6. Даны три различных числа. Какое из этих чисел не является ни минимальным, ни максимальным?

  7. Даны три числа. Распечатать их в порядке возрастания.

  8. Даны 4 различных числа. Распечатать те из них, которые не равны min и max.

  9. Даны 4 различных числа. Определить наибольшее и наименьшее среди тех двух чисел, которые не равны min и max.

  10. Даны 4 различных числа. Распечатать их в порядке возрастания.

  11. Даны 5 различных чисел. Распечатать их в порядке возрастания.

  12. Даны 5 различных чисел. Распечатать их в порядке возрастания те 3 из них, которые не являются ни min ни max

Задание 2. Написать программу для решения задачи. Оформить вычисление указанных функций в качестве подпрограмм.

Образец выполнения задания.

Задача: Дано действительное число x. Получить

Этапы выполнения задания.

  1. Определение исходных данных: переменная x

  2. Определение результатов: переменная s (значение искомого выражения).

  3. Алгоритм решения задачи.

    1. Ввод исходных данных.

    2. Для вычисления значения выражения опишем функцию f. Для вычисления значения функции опишем функции для вычисления min и max из двух чисел.

    3. Вывод результата.

  4. Описание переменных:

Переменные x и s имеют тип double.

  1. Программа:

#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;

}