Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.96/26: Рейтинг темы: голосов - 26, средняя оценка - 4.96
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212

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

05.10.2014, 00:23. Показов 5579. Ответов 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
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
05.10.2014, 00:31
C#
1
2
3
4
5
6
7
8
9
10
float minmax(float x, float y, bool z) {
 
  if(z) {    // max
    if (x > y) return x;
    else return y;
  } else {  // min
    if (x < y) return x;
    else return y;
  }
}
1
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212
05.10.2014, 00:36  [ТС]
Цитата Сообщение от RefSol Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
float minmax(float x, float y, bool z) {
if(z) { * *// max
* * if (x > y) return x;
* * else return y;
* } else { *// min
* * if (x < y) return x;
* * else return y;
* }
}
а как мне теперь в эту функцию передать 4 числа то)
4 раза по 3/2?
0
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
05.10.2014, 00:44
Попарно A B C D
C#
1
2
3
4
5
6
7
max1 = minmax(A, B, true);
max2 = minmax(C, D, true);
absolutemax = minmax(max1, max2, true); // здесь максимальное из набора A B C D
 
// что бы найти минимальное надо либо опять вызвать три раза функцию но уже с false
// либо использовать полученные данные при поиске максимума и дополнительные сравнения
// за один вызов найти минимум
1
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212
05.10.2014, 00:47  [ТС]
А как насчетт Math.Max b Math.Min ими можно воспользоваться? или не стоит?

Добавлено через 2 минуты
Цитата Сообщение от RefSol Посмотреть сообщение
Попарно A B C D
max1 = minmax(A, B, true);
max2 = minmax(C, D, true);
а как же другие комбинации? к примеру A C и B D и так далее?
0
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
05.10.2014, 00:48
Честно говоря я в С# не разбираюсь, больше в C и C++ поэтому могу подсказать только насчёт концепции решения задачи.
1
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212
05.10.2014, 00:49  [ТС]
Цитата Сообщение от RefSol Посмотреть сообщение
Честно говоря я в С# не разбираюсь, больше в C и C++ поэтому могу подсказать только насчёт концепции решения задачи.
И на этом спасибо.
0
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
05.10.2014, 00:49
Цитата Сообщение от CovCek Посмотреть сообщение
а как же другие комбинации? к примеру A C и B D и так далее?
А зачем другие комбинации, сравниваешь пару выбираешь больший, и больший из другой пары, больший из больших будет большим среди всех.
1
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212
05.10.2014, 00:59  [ТС]
Цитата Сообщение от RefSol Посмотреть сообщение
А зачем другие комбинации, сравниваешь пару выбираешь больший, и больший из другой пары, больший из больших будет большим среди всех.
Ну да, логично) тупанул немног.
НО!
Все бы было хорошо если бы меня не смущала эта фраза в задани.
Цитата Сообщение от CovCek Посмотреть сообщение
Описать функцию Minmax(X,Y,Z), определяющую минимальное или максимальное из значений X и Y в зависимости от значения Z
0
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
05.10.2014, 01:07
Цитата Сообщение от CovCek Посмотреть сообщение
Описать функцию Minmax(X,Y,Z), определяющую минимальное или максимальное из значений X и Y в зависимости от значения Z
Смотри функцию
float minmax(float x, float y, bool z)
при z = true функция ищет максимальное значение из x, y
при z = false функция ищет минимальное значение из x, y
1
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212
05.10.2014, 01:14  [ТС]
Цитата Сообщение от RefSol Посмотреть сообщение
Смотри функцию
float minmax(float x, float y, bool z)
при z = true функция ищет максимальное значение из x, y
при z = false функция ищет минимальное значение из x, y
А разве Z не должно быть числовым значением?
0
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
05.10.2014, 01:17
Лучший ответ Сообщение было отмечено CovCek как решение

Решение

Цитата Сообщение от CovCek Посмотреть сообщение
А разве Z не должно быть числовым значением?
z - это признак (логический) он определяет что искать мин или мах.

Смотри функцию
float minmax(float x, float y, bool z)
при z = true функция ищет максимальное значение из x, y
при z = false функция ищет минимальное значение из x, y
1
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212
05.10.2014, 01:21  [ТС]
Цитата Сообщение от RefSol Посмотреть сообщение
z - это признак (логический) он определяет что искать мин или мах.
Смотри функцию
float minmax(float x, float y, bool z)
при z = true функция ищет максимальное значение из x, y
при z = false функция ищет минимальное значение из x, y
Ок, спс.
0
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
05.10.2014, 01:21
Цитата Сообщение от RefSol Посмотреть сообщение
либо использовать полученные данные при поиске максимума и дополнительные сравнения
а почему нельзя найти минимум и максимум используя только вызовы minmax (4 штуки)? Или можно? как доказать?
1
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
05.10.2014, 01:26
Цитата Сообщение от rRczZZ Посмотреть сообщение
а почему нельзя найти минимум и максимум используя только вызовы minmax (4 штуки)? Или можно? как доказать?
есть четыре числа A B C D
сравниваем попарно:
A и B
С и D
из каждого сравнения одно будет максимальны другое минимальным
сравниваем максимальные из каждой пары получаем абсолютный максмум;
сравниваем минимальные из каждой пары получаем абсолютный минимум.
Всё. Четыре сравнения.
1
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
05.10.2014, 01:30
Цитата Сообщение от RefSol Посмотреть сообщение
из каждого сравнения одно будет максимальны другое минимальным
это два вызова, т.е. 6 вызовов в таком случае всего:
C#
1
2
3
4
5
6
7
maxAB = minmax(a,b,true);
minAB = minmax(a,b,false);
maxCD = minmax(c,d,true);
minCD = minmax(c,d,false);
 
maxABCD = minmax(maxAB,maxCD,true);
minABCD = minmax(minAB,minCD,false);
1
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
05.10.2014, 01:37
Цитата Сообщение от RefSol Посмотреть сообщение
// что бы найти минимальное надо либо опять вызвать три раза функцию но уже с false
// либо использовать полученные данные при поиске максимума и дополнительные сравнения
// за один вызов найти минимум

Об этом я уже писал выше.
Если вы сравниваете два числа и одно из них больше, то другое соответственно меньше.
но четырьмя вызовами возможно обойтись используя дополнительное сравнение (на равенство или неравенство) вне функции сравнения.

Цитата Сообщение от rRczZZ Посмотреть сообщение
это два вызова, т.е. 6 вызовов в таком случае всего:
без сравнений вне функции понадобиться 6 вызовов, совершенно верно
1
814 / 422 / 169
Регистрация: 08.02.2013
Сообщений: 711
05.10.2014, 01:40
RefSol, да я понимаю, но Очевидное - не то,что сложно опровергнуть, а то что легко доказать. Как доказать, что без лишнего вызова оператора сравнения (или полусуммы +- модуля полуразности) нельзя обойтись именно четырьмя вызовами minmax? Ведь она не сортирует переменные и после minmax(a,b,...) не понятно где максимум - в а или в b.
1
 Аватар для CovCek
6 / 5 / 8
Регистрация: 23.05.2014
Сообщений: 212
05.10.2014, 01:45  [ТС]
Ребят, я обойду задание, сравнение сделаю в другой функции, так что норм будет)
0
504 / 247 / 75
Регистрация: 31.10.2010
Сообщений: 747
05.10.2014, 01:48
Цитата Сообщение от rRczZZ Посмотреть сообщение
это два вызова, т.е. 6 вызовов в таком случае всего:
Доказательство:
Если пользоваться только возможностями функции, то для максмума:
maxABCD = minmax(minmax(a,b,true),minmax(c,d,true) , true);
что является минимальной функциональной конструкцией и упрощению не подлежит что и требовалось доказать.

то для минимума:
minABCD = minmax(minmax(a,b,false),minmax(c,d,fals e), false);
что является минимальной функциональной конструкцией и упрощению не подлежит что и требовалось доказать.


следовательно: для определения максимума 3 вызова, для определения минимума 3 вызова.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.10.2014, 01:48
Помогаю со студенческими работами здесь

Описать процедуру 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. Входные параметры этих...

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru