Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212

Описать функцию, определяющую минимальное или максимальное из значений X и Y в зависимости от значения Z

05.10.2014, 00:23. Показов 6001. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
есть такое задание:
Кликните здесь для просмотра всего текста
Описать функцию Minmax(X,Y,Z), определяющую минимальное или максимальное из значений X и Y в зависимости от значения Z. Используя четыре вызова этой функции, найти минимальное и максимальное из данных чисел A, B,C, D.


как я понял нужно из 4 чисел найти минимальное и максимальное за 4 вызова функции. НО! вот почему в функции Minmax(X,Y,Z) всго 3 переменные. это получаеться за 4 вызова можно успеть проверить только 3 числа, посчитав, я понял что 4 вызова будет мало.


Все что пока есть:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Задание_3__A7_
{
    class Program
    {
        static void Minmax(int X, int Y, int Z )
        {
            //int max = Math.Max(Math.Max(A, B),Math.Max(C, D));
            //int min = Math.Min(Math.Min(A, B), Math.Min(C, D));
            return;
        }
 
        static void Main(string[] args)
        {
            double A, B, C, D;
            Console.WriteLine("Введите A:");
            A = double.Parse(Console.ReadLine());
            Console.WriteLine("Введите B:");
            B = double.Parse(Console.ReadLine());
            Console.WriteLine("Введите C:");
            C = double.Parse(Console.ReadLine());
            Console.WriteLine("Введите D:");
            D = double.Parse(Console.ReadLine());
            Console.ReadKey();
        }
    }
}



Что доскажите? как лучше будет сделать.
И еще вопрос можно будет ли за 1 вызов все проверить, и выдать результат?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2014, 00:23
Ответы с готовыми решениями:

Описать функцию Minmax(X,Y,Z), определяющую минимальное или максимальное из значений X и Y
Описать функцию Minmax(X,Y,Z), определяющую минимальное или максимальное из значений X и Y в зависимости от значения Z. Используя четыре...

Создать программу, определяющую максимальное и минимальное значения массива.
Создать программу, определяющую максимальное и минимальное значения массива.

Создать программу, определяющую максимальное и минимальное значения массива.
Создать программу, определяющую максимальное и минимальное значения массива. с помощью функций

33
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
05.10.2014, 01:49
Студворк — интернет-сервис помощи студентам
RefSol, Дело в том, что я предлагаю дословно решить задачу. Не уверен в решении, но идея такая (использовать Z):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
int minmax(int a, int b, int z)
{
   if (z>=0) return a > b ? a : b;
   return a > b ? b : a;
}
 
далее
int m1 = minmax(a,  b, c-d);
int m2 = minmax(a,  b, d-c);
 
int M1 = minmax(m1, c, true);
int M2 = minmax(m1, d, false);
Console.WriteLine("Минимум и максимум: " + M1 + " " + M2);
Неопределенность в порядке вывода, но не противоречит условию. Возможно неправильное решение, сейчас проверю, мозги уже не варят - ночь)
2
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212
05.10.2014, 01:50  [ТС]
Цитата Сообщение от RefSol Посмотреть сообщение
для определения максимума 3 вызова, для определения минимума 3 вызова.
Но по условию то нужно 4, значит как то можно используя 4 вызова.
0
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
05.10.2014, 02:00
Лучший ответ Сообщение было отмечено CovCek как решение

Решение

Цитата Сообщение от RefSol Посмотреть сообщение
что является минимальной функциональной конструкцией и упрощению не подлежит что и требовалось доказать.
Серьезно?) ну ok. А вдруг, например, сравнивая суммы или какие другие функции (как на весах с гирями, но без гирь ... ) можно добиться желаемого за четыре minmax ? Ну ok, ладно, это не важно в принципе, не заморачивайтесь.

Добавлено через 8 минут
CovCek, Вот, проверьте еще раз, два случая
Пусть c > d, тогда c-d > 0

C#
1
2
3
4
5
int m1 = minmax(a,  b, c-d);  // максимум a и b
int m2 = minmax(a,  b, d-c);  // минимум a и b 
 
int M1 = minmax(m1, c, c-d); // сравниваем максимумы - максимум 4х чисел
int M2 = minmax(m2, d, d-c); // сравниваем минимумы- минимумы 4х чисел

Пусть c < d, тогда c-d < 0

C#
1
2
3
4
5
int m1 = minmax(a,  b, c-d)  // минимум a и b
int m2 = minmax(a,  b, d-c) //  максимум a и b 
 
int M1 = minmax(m1, c, c-d); // сравниваем минимумы- - минимум 4х чисел
int M2 = minmax(m2, d, d-c); // сравниваем максимумы - максимум 4х чисел
Код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
int minmax(int a, int b, int z)
{
   if (z>=0) return a > b ? a : b;
   return a > b ? b : a;
}
 
далее
int m1 = minmax(a,  b, c-d);
int m2 = minmax(a,  b, d-c);
 
int M1 = minmax(m1, c, c-d);
int M2 = minmax(m2, d, d-c);
Console.WriteLine("Минимум и максимум: " + M1 + " " + M2);
1
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
05.10.2014, 02:00
Цитата Сообщение от rRczZZ Посмотреть сообщение
Неопределенность в порядке вывода, но не противоречит условию. Возможно неправильное решение, сейчас проверю, мозги уже не варят - ночь)
в коде есть ошибки, во первых int и bool это разные типы, кроме того формально и true и false вместе удовлетворяют условию >= 0.

В связи с неопределённостью разности c-d и d-c вы не будете знать что у вас в m1 m2 мин или мах,
далее есть вероятность потери истинного минимума и истинного максимума.
C#
1
2
int m1 = minmax(a,  b, c-d);
int m2 = minmax(a,  b, d-c);
1
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
05.10.2014, 02:03
RefSol, да, посмотрите последний вариант, я исправил bool на int и если z >= 0 функция вернет максимум, если z< 0 - вернет минимум.

Добавлено через 1 минуту
т.е. еще раз - в конечном счете мы не знаем где в M1 и M2 именно максимум а где минимум, но значем точно, что это крайние значения, как и нужно в условии
Цитата Сообщение от CovCek Посмотреть сообщение
Описать функцию Minmax(X,Y,Z), определяющую минимальное или максимальное из значений X и Y в зависимости от значения Z. Используя четыре вызова этой функции, найти минимальное и максимальное из данных чисел A, B,C, D.
1
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
05.10.2014, 02:09
rRczZZ, да, согласен идея с разностью интересна.
2
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212
05.10.2014, 02:09  [ТС]
Цитата Сообщение от rRczZZ Посмотреть сообщение
Пусть c > d, тогда c-d > 0
int m1 = minmax(a, b, c-d); // максимум a и b
int m2 = minmax(a, b, d-c); // минимум a и b
int M1 = minmax(m1, c, c-d); // сравниваем максимумы - максимум 4х чисел
int M2 = minmax(m2, d, d-c); // сравниваем минимумы- минимумы 4х чисел
Пусть c < d, тогда c-d < 0
int m1 = minmax(a, b, c-d) // минимум a и b
int m2 = minmax(a, b, d-c) // максимум a и b
int M1 = minmax(m1, c, c-d); // сравниваем минимумы- - минимум 4х чисел
int M2 = minmax(m2, d, d-c); // сравниваем максимумы - максимум 4х чисел
M1 и M2, как я понял взаимо заменяемые максимумы и минимумы, верно?
Изображения
  
0
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
05.10.2014, 02:13
CovCek, ну смысл что в том, что в моем решении ищутся крайние значения 1 и 4, не обязательно сначала минимум, а потом максимум - в условии, не сказано, что сначала нужно вывести минимум, ведь так? Если хотите иначе - используйте решение RefSol с 6ю вызовами.
1
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212
05.10.2014, 02:17  [ТС]
Цитата Сообщение от rRczZZ Посмотреть сообщение
Если хотите иначе - используйте решение RefSol с 6ю вызовами.
Тогда быдет нарушено условие 4-х вызовов.

Спасибо вам.

По желанию:
Кликните здесь для просмотра всего текста
Вот только остался вопрос первоначальный, можно ли за меньшее количество вызовов определить где что.

Ведь в условии не сказано использовать именно 1 функцию.
0
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
05.10.2014, 02:19
Проверил с разностью работает, только не определяет где min а где max.
0
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
05.10.2014, 02:20
CovCek, Но, кстати, есть еще один вариант - с сортировкой
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static int minmax(ref int x, ref int y, bool z)
{
    if (z)
    {
        if (x > y) x = y + 0 * (y = x);
        return y;
    }
    if (y < x) x = y + 0 * (y = x);
    return x;
}
 
static void Main(string[] args)
{
    int a = 4, b = 3, c = 1, d = 2;
    minmax(ref a, ref b, true);
    minmax(ref c, ref d, true);
 
    Console.WriteLine("Максимум: " + minmax(ref b, ref d, true));
    Console.WriteLine("Минимум: " + minmax(ref a, ref c, false));
 
    Console.ReadLine();
}
1
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212
05.10.2014, 02:26  [ТС]
Цитата Сообщение от RefSol Посмотреть сообщение
Проверил с разностью работает, только не определяет где min а где max.
По идее этого и не надо делать.

Добавлено через 5 минут
Цитата Сообщение от rRczZZ Посмотреть сообщение
ref
В двух словах что ref делает? что то вроде ссылки на значение, или передача значения по ссылке?
как работает?
0
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
05.10.2014, 02:31
CovCek, поменяются значения в вызывающем коде, т.е. в переменных метода Main(). например
C#
1
2
3
4
int a = 2; // В а лежит двойка
int b=1;
minmax (ref a, ref b, true); //сортируем по возрастанию
Console.WriteLine("В а лежит " + a); // уже единица
Добавлено через 2 минуты
передает аргумент по ссылке (а не по значению).
1
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212
05.10.2014, 02:35  [ТС]
Цитата Сообщение от rRczZZ Посмотреть сообщение
передает аргумент по ссылке (а не по значению).
Понятно, Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2014, 02:35

Описать процедуру Minmax(X, Y), записывающую в X минимальное из значений X и Y, а в переменную Y — максимальное
Описать процедуру Minmax(X, Y), записывающую в переменную X минимальное из значений X и Y, а в переменную Y — максимальное из этих...

Описать процедуру Minmax(x,y) записывающую в переменную Х минимальное из значений Х и Y, а в переменную Y – максимальное из этих значений.
Описать процедуру Minmax(x,y) записывающую в переменную Х минимальное из значений Х и Y, а в переменную Y – максимальное из этих значений...

Описать процедуру Minmax(A,B), записывающую в переменную A минимальное из значений A и B, а в переменную B — максимальное из этих значений
В заданиях данной подгруппы требуется реализовать процедуры или функции с числовыми параметрами типа integer и real. Входные параметры этих...

Используя очередь или стек, описать процедуру или функцию, определяющую число вхождений элемента Е в дерево Т
Народ помогите пожалуйста! Проблема в том, что не понимаю суть задания. Прошу не код, а объяснения принципа реализации. С чего начать? как...

Найти и выделить цветом минимальное или максимальное (в зависимости от установленного переключателя) из введенных чисел
Зраствуйте )))я не знаю как решить задачку(((помогите пожалуйста((( Написать программу решения задачи. В текстовые поля вводятся три...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Опции темы

Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru