Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2013, 23:00   #1
locked
Новичок
Джуниор
 
Регистрация: 08.10.2013
Сообщений: 4
По умолчанию Расположить 3 числа в порядке возрастания

Нужно написать программу (используя промежуточные переменные min, mid, max), которая бы выводила 3 числа в порядке возрастания.
Помогите разобраться с промежуточным числом mid, как его обозначить в программе...

Код:
uses crt;
var a,b,c,max,mid,min: real;
begin
  clrscr;
  writeln('Input a,b,c');
  readln(a,b,c);
  if (a>=b) then max:=a
               else max:=b;
  if (max<c) then max:=c;
  if (a>=b) then min:=b
               else min:=a;
  if c<min then min:=c;
  ??????????????????????
  writeln(min:5:2, mid:5:2, max:5:2);
  readln
end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 09.10.2013 в 09:08.
locked вне форума Ответить с цитированием
Старый 09.10.2013, 16:38   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

очевидно, что данную задачу можно решить множеством способов.

вот один из таких способов, близкий к вашему алгоритму:
Код:
uses crt;
var a,b,c,max,mid,min: real;
begin
  clrscr;
  writeln('Input a,b,c');
  readln(a,b,c);
  if (a>b) and (a>c) then max:=a
  else
    if (b>a) and (b>c) then max:=b
    else max := c;

  if (a<b) and (a<c) then min:=a
  else
    if (b<a) and (b<c) then min:=b
    else min := c;

  if (a>min) and (a<max) then mid := a
  else 
    if (b>min) and (b<max) then mid := b
    else mid := c;

  writeln(min:5:2,' ', mid:5:2,' ', max:5:2);
  readln
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 09.10.2013, 18:37   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Кстати, нахождение экстремального значения из N чисел, которые записаны в несвязные переменные (не массив), подобно нахождению экстремального значения в массиве. Например, для нахождения максимума из трёх чисел вполне подойдёт такой код:
Код:
max:=a;

if b > max then max:=b;
if c > max then max:=c;
ну, а найти среднее можно тогда
Код:
mid:=a+b+c - max - min
Вадим Мошев вне форума Ответить с цитированием
Старый 09.10.2013, 22:51   #4
locked
Новичок
Джуниор
 
Регистрация: 08.10.2013
Сообщений: 4
По умолчанию

большое спасибо!
locked вне форума Ответить с цитированием
Старый 10.10.2013, 09:36   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
ну, а найти среднее можно тогда
Код:
mid:=a+b+c - max - min
Остроумно!!

Только хочу предостеречь.
Такой код может выдать в качестве среднего не одно из чисел, а ПРИБЛИЖЁННОЕ значение (это может произойти из-за потери точности).
Например, проверьте для таких чисел: 10000000000 0.1 9999999
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расположить в порядке возрастания их абсолютных величин. Camelot_2012 Паскаль, Turbo Pascal, PascalABC.NET 3 13.04.2012 08:33
расположить элементы матрицы в порядке возрастания. Cer)I(ik Паскаль, Turbo Pascal, PascalABC.NET 2 07.04.2011 00:29
расположить числа в порядке возрастания Julila Помощь студентам 4 04.01.2011 19:32
Расположить элементы массива в порядке возрастания Klik_1602 Помощь студентам 2 04.01.2011 14:59
Си -Расположить элементы в порядке возрастания от первого нулевого элемента до отрицательного элемента Freia Помощь студентам 17 13.12.2009 15:41