Нахождение максимального и минимального значения.

 (голосов: 14)
Нахождение максимального и минимального значения.

В этой статье мы рассмотрим сравнение чисел.

При сравнении чисел мы выбираем то число, которое банально больше. Ну, например, при сравнении числа 2 и 3 мы выберем максимальным числом 3, а минимальным 2. Графически 3 на числовой оси X находится правее, чем 2.

Я покажу один из самых рациональных алгоритмов выбора максимального и минимального числа, подходящего для общего случая. Это присвоение для переменных, выражающих минимальное и максимальное значение, значение одного из элементов заданных чисел/массива.

Ну теперь перейдем к практике.

Простая программка для сравнения 3 чисел(min_max_1):
Program Min_Max;
var a,b,c,min,max:integer;
begin
write('Введите 3 числа для сравнения (через пробел) : ');read(a,b,c);
min:=a;max:=a;
if b>max then max:=b;if b<min then min:=b;
if c>max then max:=c;if c<min then min:=c;
writeln('Максимальное число : ',max);
writeln('Минимальное число : ',min);
readln;
end.

Теперь подробнее.
var a,b,c,min,max:integer;
Ну смысл этой строки понятен, если хотите, можете выразить переменные через тип real, но особой разницы нету.
write('Введите 3 числа для сравнения (через пробел) : ');read(a,b,c);
Мы вводим три числа через пробел, т.к. здесь оператор write.
min:=a;max:=a;
Здесь мы присваиваем переменным min и max значение одного из введенных чисел, если вы хотите разнообразия, то можете вместо переменной a написать b или c.
if b>max then max:=b; if b<min then min:=b;
if c>max then max:=c; if c<min then min:=c;
Здесь происходит сравнение оставшихся введенных переменные со значениями переменных min и max.
writeln('Максимальное число : ',max);
writeln('Минимальное число : ',min);
Ну здесь у нас происходит вывод ответа, думаю, объяснять где, какое значение выводится не надо=)
readln;
Это используется для того, чтобы мы увидели результат программы.
end.
Ну собственно логическое завершение программы=)
Дополнение :
1)Кто хочет, чтобы экран самоочищался от результатов каждый раз, может добавить в начале программы
Uses crt; 
и
Begin clrscr;
Тогда код будет выглядеть примерно так:
Program Min_Max;
Uses crt;
var a,b,c,min,max:integer;
begin clrscr;


2)Если хотите добавить больше чисел для программы, то надо добавить новые переменные. Программа(min_max_2). Например так:
Var a,b,c,d,e,min,max:integer;

Потом вводим их :
write('Введите 5 чисел для сравнения (через пробел) : ');read(a,b,c,d,e);

Ну, а затем сравниваем с максимальным и минимальным числом:
if b>max then max:=b;if b<min then min:=b;
if c>max then max:=c;if c<min then min:=c;
if e>max then max:=e;if e<min then min:=e;
if d>max then max:=d;if d<min then min:=d;

Остальное в задаче можно оставить без изменения.
3)Однако бывают случаи, когда минимальное и максимальные значения необходимо найти из большого количества элементов. Тогда для рационального решения необходимо использовать массивы вместе с циклами и оператором рандом. Программа(min_max_3)
Код для одномерного массива :
Program Min_Max;
Const s=10;
var a:array[1..s] of integer;i,min,max:integer;
begin
randomize;
for i:=1 to s do a[i]:=random(89)+10;min:=maxint;max:=-maxint;
for i:=1 to s do begin writeln(a[i]);
if a[i]>max then max:=a[i];
if a[i]<min then min:=a[i];end;
writeln('Максимально число: ',max);
write('Минимальное число : ',min);
readln;
end.


Ну вот и все =) Спасибо за внимание. С вами был Vector.
Скачать программу в формате .pas
Вы не можете скачивать файлы с нашего сервера
Вы не можете скачивать файлы с нашего сервера
Вы не можете скачивать файлы с нашего сервера



Понравилась новость? Добавь в закладки!


Хочешь получать свежие новости? Подпишись на обновления с сайта!


Рекомендуем посмотреть:


#1 | написал: Topcoder | 13 апреля 2011 21:47 | ICQ: -- |

Группа: Администраторы
Публикаций: 14
Комментариев: 7
Вот теперь хорошая картинка!

#2 | написал: Mr.Cheater | 13 апреля 2011 21:54 | ICQ: 360239964 |

Группа: Администраторы
Публикаций: 32
Комментариев: 33
Да уж лучше предыдущей))

#3 | написал: Бывший блогер . . . | 14 апреля 2011 13:25 | ICQ: -- |

Группа: Гости
Публикаций: 0
Комментариев: 0
Угу взяли и убрали мою картинку. Побойся бога хоть копирайт поставь. А ну да можно просто не удалять вот эту строчку :
Ну вот и все =) Спасибо за внимание. С вами был Vector.

#4 | написал: Mr.Cheater | 14 апреля 2011 13:27 | ICQ: 360239964 |

Группа: Администраторы
Публикаций: 32
Комментариев: 33
Поэтому я и не убрал твою строчку
Статья твоя, это я не оспариваю

#5 | написал: Хаха | 23 апреля 2011 06:35 | ICQ: -- |

Группа: Гости
Публикаций: 0
Комментариев: 0
А все эти красивые кнопочки фейсбук куча всего, работают?

#6 | написал: Mr.Cheater | 24 апреля 2011 09:17 | ICQ: 360239964 |

Группа: Администраторы
Публикаций: 32
Комментариев: 33
да вроде

#7 | написал: Александр | 20 марта 2012 14:01 | ICQ: -- |

Группа: Гости
Публикаций: 0
Комментариев: 0

Veсtor!
Третий пример некорректен." Однако бывают случаи, когда минимальное и максимальные значения необходимо найти из большого количества элементов..."

... a[i]:=random(89)+10;min:=a[1];max:=a[1];...

8) if a[i]>max then max:=a[i];
9) if a[i]then min:=a[i];end;

В итоге мы получим максимальные и минимальные значения в сравнении с первым значением выборки, а не всех элементов. 

Добавление комментария

Ваше Имя:
Ваш E-Mail:

Код:
Включите эту картинку для отображения кода безопасности
обновить, если не виден код
Введите код: