Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [FAQ][Pascal|C++] Нахождение максимального/минимального элемента массива 
:(
    Опции темы
THandle
Дата 17.3.2008, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



Примеры программ на Pascal и С++ находящие максимальный и минимальный элемент массива.
Нахождение максимального элемента реализовано в функции MaxElement. Минимального - в MinElement.


Код

program MaxMin;

const
  MAX = 5;
type
  TArray = array[1..MAX] of integer;

function MaxElement(iArray : TArray) : integer;
var
  i : integer;
  MaxE : integer;
begin
  MaxE := iArray[1];
  for i := 2 to MAX do
    if iArray[i] > MaxE then
      MaxE := iArray[i];
  MaxElement := MaxE;
end;

function MinElement(iArray : TArray) : integer;
var
  i : integer;
  MinE : integer;
begin
  MinE := iArray[1];
  for i := 2 to MAX do
    if iArray[i] < MinE then
      MinE := iArray[i];
  MinElement := MinE;
end;

var
  a : TArray;
  i : integer;
begin
  for i := 1 to MAX do
    begin
      Write('Enter next element: ');
      ReadLn(a[i]);
    end;
  WriteLn(MaxElement(a));
  WriteLn(MinElement(a));
  readln;
end.



Код


#include <iostream>

using std::cout;
using std::cin;
using std::endl;

const size_t MAX = 5;

int MaxElement(int iArray[])
{
    int MaxE = iArray[0];
    for(size_t i = 1; i < MAX; ++i)
    {
        if (iArray[i] > MaxE)
          MaxE = iArray[i];        
    }
    return MaxE;
}


int MinElement(int iArray[])
{
    int MinE = iArray[0];
    for(size_t i = 1; i < MAX; ++i)
    {
        if (iArray[i] < MinE)
          MinE = iArray[i];        
    }
    return MinE;
}


int main()
{
    int a[MAX];
    for(size_t i = 0; i < MAX; ++i)
    {
        cout << "Enter next element: ";
        cin >> a[i];
        }
    cout << "Max: " << MaxElement(a) << endl;
    cout << "Max: " << MinElement(a) << endl;
    char r;
    cin >> r;
}


PM   Вверх
Rififi
Дата 18.3.2008, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: 4
Всего: 36



для C++ все гораздо проще. Вот так:

Код

#include <algorithm>

template <typename T>
T MinElement(T Array[], size_t N)
{
    return *std::min_element(Array, Array + N);
}

template <typename T>
T MaxElement(T Array[], size_t N)
{
    return *std::max_element(Array, Array + N);
}


или даже так:

Код

#include <boost/algorithm/minmax_element.hpp>

int arr[] = {...};
const size_t N = sizeof(arr) / sizeof(arr[0]);
std::pair<int*, int*> minmax = boost::minmax_element(arr, arr+N);



PM MAIL   Вверх
Rrader
  Дата 22.3.2008, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 14
Всего: 191



Для VB:
Код

Option Explicit
Option Base 1
Const Max = 5
Dim A(1 To Max) As Long

Function MaxElement(Arr() As Long) As Long
  Dim I, MaxE As Long
  MaxE = Arr(1)
  For I = 2 To Max
    If Arr(I) > MaxE Then MaxE = Arr(I)
  Next I
  MaxElement = MaxE
End Function

Function MinElement(Arr() As Long) As Long
  Dim I, MinE As Long
  MinE = Arr(1)
  For I = 2 To Max
    If Arr(I) < MinE Then MinE = Arr(I)
  Next I
  MinElement = MinE
End Function


'Пример использования - по нажатию кнопки
Private Sub Command1_Click()
  Dim I As Long
  For I = 1 To Max
    A(I) = CLng(InputBox("Введите элемент:"))
  Next I
  'Показываем максимальный и минимальный элементы
  MsgBox ("Максимальный элемент: " & MaxElement(A))
  MsgBox ("Минимальный элемент: " & MinElement(A))
End Sub



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
THandle
Дата 23.3.2008, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 30
Всего: 372



Вот упрощенный вариант на Паскале, для тех кто еще не знаком с типами, константами, и функциями:

Код

program MaxMin;
var
  a : array [1..5] of integer;
  i : integer;
  MinE : integer;
begin
  for i := 1 to 5 do
    begin
      Write('Enter next element: ');
      ReadLn(a[i]);
    end;
  MinE := a[1];
  for i := 2 to 5 do
    if a[i] < MinE then
      MinE := a[i];
  WriteLn(MinE);
  readln;
end.

PM   Вверх
D3v1L0rN
  Дата 2.6.2009, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 2.6.2009

Репутация: нет
Всего: нет



Спасибо! Вот теперь зачет сдам.  smile 
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0854 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.