1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
1

Как сравнить несколько значений ?

22.11.2009, 21:11. Показов 15010. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как можно сравнить несколько значений так чтобы определить какое значение среди приведённых наибольшее , а какое наименьшее ?
Пример :
Под конец задания мне нужно сравнить a ,b и c , значения у которых разные , и определить какое значение наибольшее , а какое наименьшее . Подскажите пожалуйста как можно это реализовать кроме вот такого способа :
Pascal
1
2
3
4
5
6
     if (a>b) and (a>c) then max:=a;
     if (b>a) and (b>c) then max:=b;
     if (c>a) and (c>b) then max:=c;
     if (a<b) and (a<c) then min:=a;
     if (b<a) and (b<c) then min:=b;
     if (c<a) and (c<b) then min:=c;
?Ато ведь дальше значений то может попадаться и больше .
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.11.2009, 21:11
Ответы с готовыми решениями:

Как сравнить несколько значений в строке?
Здравия всем! Появился вопрос, который я не знаю как правильно згуглить или как правильно...

Сравнить последние несколько элементов. Как?
у меня счетчик нескольких событий. Скажем ++А1 и ++А2. Они могут поступать в разной...

Как сравнить несколько(>2) элементов в одном массиве?
Добрый день! Помогите, пожалуйста! Никак не могу разобраться, как сравнивать элементы одного и...

Как сравнить несколько переменных с одним и тем же числом?
Доброго дня. Есть несколько переменных a = int(input()) b = int(input()) c = int(input()) d =...

13
73 / 72 / 37
Регистрация: 21.11.2009
Сообщений: 258
22.11.2009, 21:18 2
Pascal
1
2
3
4
if a<b then s:=a else s:=b;
if s>c then s:=c
if a<b then max:=b else max:=a
if max<c then max:=c
1
Добрый самаритянин
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
22.11.2009, 21:28 3
v
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
ar
a,b,c:integer;
function min(a,b:integer):integer;
begin
if a<b then result:=a;
if b<=a then result:=b;
end;
begin
readln(a,b,c);
writeln('min');
writeln(min(min(a,b),c));
end.
1
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
22.11.2009, 22:18  [ТС] 4
Спасибо за ответы .Буду знать как альтернативно искать min и max .
0
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
22.11.2009, 23:17 5
John_Pa9JIbHuK, можете чуть пояснить как ваш код работает?
0
73 / 72 / 37
Регистрация: 21.11.2009
Сообщений: 258
22.11.2009, 23:25 6
А что там смотреть: создал функцию min, которая считает минимальное значение из двух чисел и сравнивает, как в моём примере, только у него немного длиннее!
0
localhost
58 / 58 / 9
Регистрация: 02.09.2009
Сообщений: 170
22.11.2009, 23:31 7
p@$#@, это я понял..что такое result ?
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
22.11.2009, 23:38 8
p@$#@, а как Вы считаете пример John_Pa9JIbHuK'a написан на 100 верно или же всё таки что-то можно исправить?

Добавлено через 4 минуты
Цитата Сообщение от p@$#@ Посмотреть сообщение
только у него немного длиннее!
это как посмотреть: есть чисел будет не 3 а 6, у John_Pa9JIbHuK'a останется столько же строк, а вот Ваш код заметно прибавится... так что у него действительно написан более верный вариант, но не для turbo pascal...
1
42 / 42 / 7
Регистрация: 08.11.2009
Сообщений: 167
22.11.2009, 23:41 9

есть такое ключевое слово else с которым функция min приобретет человеческий вид

function min(a,b: Integer): Integer;
begin
if a < b then
Result := a
else
Result := b;
end;
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
22.11.2009, 23:45 10
думаю что John_Pa9JIbHuK не будет против если я выложу правильный вариант для всех паскалей:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var
  a,b,c:integer;
{ôóíêöèÿ íàõîæäåíèÿ ìèíèìóìà äâóõ ÷èñåë}
function min(a,b:integer):integer;
begin
  if a<b then
    min:=a;
  else
    min:=b;
end;
{îñíîâíàÿ ïðîãðàììà}
begin
  readln(a,b,c);
  writeln('min');
  writeln(min(min(a,b),c));
end.
Добавлено через 37 секунд
Harlequin, чуть не успел...) но Result не во всех паскалях есть, поэтому в паскале правильно писать имя функции.
1
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
22.11.2009, 23:46  [ТС] 11
Harlequin, это если два значения всего , а если двадцать два ?
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
22.11.2009, 23:49 12
Цитата Сообщение от Gepar Посмотреть сообщение
Harlequin, это если два значения всего , а если двадцать два ?
а если двадцать два тогда вообще удобней сделать через цикл for(это если числа нам дальше не понадобятся) или через тот же for но с массивом(если числа нам дальше пригодятся)
1
42 / 42 / 7
Регистрация: 08.11.2009
Сообщений: 167
23.11.2009, 00:33 13
for, while, repeat..until
да хоть 22 миллиона чисел
0
storage09
24.05.2012, 20:59 14
Цитата Сообщение от Gepar Посмотреть сообщение
Как можно сравнить несколько значений так чтобы определить какое значение среди приведённых наибольшее , а какое наименьшее ?
Самое интересное, что конкретная задача не была здесь решена практически. Хватит ломать голову, вот я написал, самый простяцкий вариант, сравнивает практически любое количество чисел, только меняйте значение n на необходимое:

Pascal
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
PROGRAM Comparison;
USES Crt;
CONST
  n = 10;
 
VAR
  i: INTEGER;
  X: ARRAY[1..n] OF REAL;
  min, max: REAL;
 
BEGIN
  {Data input}
  WriteLn('Input X[1]..X[n]:');
  FOR i := 1 TO n DO
  BEGIN
    Write(' X[', i, ']= ');
    ReadLn(X[i]);
  END;
  WriteLn;
  
  {Comparison}
 
  {Search for the minimum}
  min:=X[1];
  FOR i := 1 TO n-1 DO
    BEGIN
      IF min < X[i+1] Then
        min := min
      else
        min := X[i+1]
    END;
 
  WriteLn(' min = ', min);
  
  {Maximum search}
  max:=X[1];
  FOR i := 1 TO n-1 DO
    BEGIN
      IF max > X[i+1] Then
        max := max
      else
        max := X[i+1]
    END;
 
  WriteLn(' max = ', max);
 
  ReadKey;
END.
24.05.2012, 20:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2012, 20:59
Помогаю со студенческими работами здесь

Как сравнить значение переменной с набором значений?
Как сравнить значение переменной с набором значений при условии, что они не лежат в одном...

Как ввести несколько значений
Как ввести несколько значений в функцию input() ? Мне нужно ввести неограниченное количество...

Как вернуть несколько значений
Всем привет! Помогите разобраться : как вернуть несколько значений из функции? public static...

Как сделать несколько значений
Здравствуйте , я ещё новичок и решил написать простую программу . b = int(input(&quot;Узнай какая...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru