Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> определить максимальный компонент вектора, значение и индекс 
:(
    Опции темы
koljan
Дата 5.5.2006, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


VIP
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 18.12.2005
Где: г.Архангельск

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



задача такая
Пусть 
const
max=10000;
var
vector : array[1. .max] of Integer;

Напишите процедуру, которая определяет значение максимального компонента вектора и его индекс.



Код

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
procedure MaxElem(var vector);
var
i:integer;
Max_Elem:integer;
    begin
      for i:=1 to 10000 do
        if vector[i]>Max_Elem  then
          Max_Elem:=vector[i];
      writeln('Max element=',Max_Elem,'    index=',i);
    end;
const
max=10000;
var
vector:array[1..max] of integer;
begin
MaxElem(vector);
readln;
end.

в строках 
Код

if vector[i]>Max_Elem  then
          Max_Elem:=vector[i];

выдаёт ошибку
Цитата

array type required
 


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


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

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



Цитата(koljan @  5.5.2006,  19:54 Найти цитируемый пост)
procedure MaxElem(var vector);


Похоже на Open array parameter. Можно попробовать тип указать. Например
Код

procedure MaxElem(var vector: array of integer);

or
Код

type TIntArray = array of integer;
...
procedure MaxElem(var vector: TIntArray);

 
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
Vit
Дата 5.5.2006, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



ДЫк вроде в модуле Math определены такие операции над массивами...


PS. Mechanic, рад приветствовать Вас на этом форуме! 


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Ryn
Дата 5.5.2006, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



всетаки тип Vector'а надо указать 
PM MAIL   Вверх
Dynamic
Дата 6.5.2006, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Vit @  5.5.2006,  21:27 Найти цитируемый пост)
ДЫк вроде в модуле Math определены такие операции над массивами...

что-то мне не попадалось такого (Д6)....
 


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
Mechanic
Дата 6.5.2006, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

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



Цитата(Vit @  5.5.2006,  21:27 Найти цитируемый пост)
PS. Mechanic, рад приветствовать Вас на этом форуме!

Да уж, нет худа без добра.. smile Кабы Исходники не лежали в руинах несколько дней, может, и не нашёл бы сюда дорогу..  smile 

Кстати, интересно, по сабжу, ведь в хелпе сказано, что передавать open array можно и untyped.. Почему же тогда ошибка?  smile  
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
Dynamic
Дата 6.5.2006, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Mechanic @  6.5.2006,  09:52 Найти цитируемый пост)
Почему же тогда ошибка?

передавать можно, а в процедуре все равно нужно приводить к какому-нить типу. Как в хелпе:
Код

function Equal(var Source, Dest; Size: Integer): Boolean;

type
  TBytes = array[0..MaxInt - 1] of Byte;
var
  N: Integer;
begin
  N := 0;
  while (N < Size) and (TBytes(Dest)[N] = TBytes(Source)[N]) do
    Inc(N);
  Equal := N = Size;
end;

 


--------------------
Было бы о чем молчать, а уж что сказать – всегда найдется...
PM MAIL WWW   Вверх
Mechanic
Дата 6.5.2006, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

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



Цитата(Dynamic @  6.5.2006,  10:18 Найти цитируемый пост)
передавать можно, а в процедуре все равно нужно приводить к какому-нить типу. Как в хелпе


Точно. Тогда "Program Solve" будет выглядеть примерно так?
Код

program Project1;
{$APPTYPE CONSOLE}

uses SysUtils;

const
  max=10000;

type 
  TMaxArray = array[1..max] of integer;

procedure MaxElem(var vector);
var i:integer; Max_Elem:integer;
begin
      for i:=1 to 10000 do
        if TMaxArray(vector[i])>Max_Elem  then
          Max_Elem:=TMaxArray(vector[i]);
      writeln('Max element=',Max_Elem,'    index=',i);
end;

var 
 vector: TMaxArray;

begin
  MaxElem(vector);
  readln;
end.

 smile Кстати, не уверен, но там сдается есть еще тонкость по поводу индекса. Кажись в этом случае vector будет индекситься с 0, хоть в типе прописано [1..max]. Проверить, жаль,  не на чем.  
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
koljan
Дата 6.5.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


VIP
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 18.12.2005
Где: г.Архангельск

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



Цитата(Sunvas @  6.5.2006,  07:46 Найти цитируемый пост)
Цитата(koljan @  5.5.2006,  19:54 )    
Тебе не в этот форум! 

а в какой?


Цитата
Напишите процедуру, которая определяет значение максимального компонента вектора и его индекс.

это просто фрмулировка задания 
 


--------------------
PM MAIL ICQ   Вверх
volvo877
Дата 6.5.2006, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

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



Цитата(Mechanic @  6.5.2006,  12:52 Найти цитируемый пост)
Тогда "Program Solve" будет выглядеть примерно так?

Не совсем... Твой код не будет компилироваться... Типы приводятся неверно. Я бы сказал, так:
Код
program Project1;
{$APPTYPE CONSOLE}
uses SysUtils;
const
  max=10000;
type
  TMaxArray = array[1..max] of integer;

procedure MaxElem(var vector);
var i:integer; Max_Elem:integer;
begin
      max_elem := 0;
      for i:=1 to pred(max) do
        if TMaxArray(vector)[i] > TMaxArray(vector)[Max_Elem] then
          Max_Elem:=i;
      writeln('Max element=',TMaxArray(vector)[Max_Elem],'    index=',max_elem);
end;
var 
  vector: TMaxArray;
begin
  MaxElem(vector);
  readln;
end.
 
PM MAIL   Вверх
Mechanic
Дата 6.5.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

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



Цитата(volvo877 @  6.5.2006,  13:30 Найти цитируемый пост)
Код

TMaxArray(vector)[i]

Ну конечно же! Не элемент, но массив приводится.  smile 
Просто без компилера об этом напомнить некому.. Хорошо, когда есть друзья! ;) 
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


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

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


 




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


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

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