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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2012, 14:46   #1
uHkBu3uTop
Пользователь
 
Регистрация: 19.01.2012
Сообщений: 12
Стрелка процедура-функция для нахождения Произведения элементов массива, расположенных между максимальным и ми-нимальным элементами

Произведение элементов массива, расположенных между максимальным и ми-нимальным элементами.
uHkBu3uTop вне форума Ответить с цитированием
Старый 12.04.2012, 15:32   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вам нужно сделать два прохода по массиву - за первый найти индексы минимального и максимального значения.
за второй проход - найти произведение.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2012, 19:18   #3
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
вам нужно сделать два прохода по массиву - за первый найти индексы минимального и максимального значения.
за второй проход - найти произведение.
Код:

  {
  Произведение элементов массива, расположенных между максимальным и ми-нимальным элементами.
}
uses crt;
const MaxNcount=1000; // размер массива
type
  TarrayInt=array [1..MaxNcount] of integer;


var b:TArrayInt; // массив элементов
    bcount:integer;
    
//1) заполнение массива случайными числами из заданного интервала;
procedure CreateArray(var a:TArrayInt;Ncount:integer);
var i:integer;
begin
randomize;// инициализация
  for i:=1 to ncount do  a[i]:=1+random(5);
end;
//2) вывод массива на экран;
Function ShowArray(const a:TArrayInt;Ncount:integer):string;
var s:string;
    i:integer;
begin
s:='';
 for i:=1 to ncount-1 do
 if s='' then s:=s+inttostr(a[i])
 else
  s:=s+','+inttostr(a[i]);
  result:=s;
end;
//3) заполнение массива нулями (инициализация);
procedure CreateArrayInit(var a:TArrayInt;Ncount:integer);
var i:integer;
begin
randomize;// инициализация
  for i:=1 to ncount-1 do  a[i]:=0;
end;
// 4) сохранение массива в текстовый файл;
Procedure SaveArrayToFile(const a:TArrayInt;Ncount:integer;FileName:string);
var F:file of string;
begin
 assign(f,FileName);
 rewrite(f);
 write(f,ShowArray(a,ncount));
 close(F);
end;
//5) чтение массива из текстового файла;
Procedure LoadArrayFromFile(var a:TArrayInt;var Ncount:integer;FileName:string);
var F:file of string;
    s2,s:string;
    x,y:integer;
begin
 assign(f,FileName);
 reset(f);
 read(f,s);
 s2:='';
 y:=1;
 for x:=1 to length(s) do begin
   if (s[x]=',') or (x=length(s)) then begin
   if s2<>'' then begin
     a[y]:=strtoint(s2);
     y:=y+1;
   end;
   s2:='';
   end
   else s2:=s2+s[x];
 end;
 close(F);
 Ncount:=y;
end;


Function GetFirstIndexMaxElementFromArray(a:TArrayInt;acount:integer):integer;
var x:integer;
begin
 result:=1;
  for x:=1 to Acount do begin
    if a[result]<a[x] then result:=x;
  end;
end;
Function GetFirstIndexMinElementFromArray(a:TArrayInt;acount:integer):integer;
var x:integer;
begin
 result:=1;
  for x:=1 to Acount do begin
    if a[result]>a[x] then result:=x;
  end;
end;

Function Max(a,b:integer):integer;
begin
  if a>b then result:=a
  else result:=b;
end;
Function Min(a,b:integer):integer;
begin
  if a<b then result:=a
  else result:=b;
end;

Function MultyArrayElementToElement(a:TArrayInt;acount:integer;Index1,index2:integer):integer;
var x:integer;
    multy:integer;
begin
  multy:=1;
  for X:=Min(index1,index2) to max(index2,index1) do begin
     multy:=multy*a[x];
  end;
  result:=multy;
end;


var minElemntIndex,MaxElemntIndex:integer;
begin
clrscr;
 bcount:=5;
// Сформировать линейный массив из 30 случайных чисел в интервале от -16 до 16.
 CreateArray(b,bcount);
 Writeln('Исходный массив ');
 Writeln(ShowArray(b,bcount));
 minElemntIndex:=GetFirstIndexMinElementFromArray(b,bcount);
 MaxElemntIndex:=GetFirstIndexMaxElementFromArray(b,bcount);
 Writeln('Минимальный элемент №',minElemntIndex);
 Writeln('Максимальный элемент №',MaxElemntIndex);
 Writeln('Произведение между элементами ',MultyArrayElementToElement(b,bcount,minElemntIndex,MaxElemntIndex));

end.
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype

Последний раз редактировалось denisbrain; 12.04.2012 в 19:30.
denisbrain вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедура для нахождения суммы элементов главной диагонали Lizonka-88 Паскаль, Turbo Pascal, PascalABC.NET 5 26.01.2012 13:14
Вычислить сумму элементов массива, расположенных между первым и последним положительными элементами Fitch573 Помощь студентам 4 09.01.2012 18:04
Является ли последовательность арифметической, заключенной между минимальным и максимальным элементами NeRRouZ Помощь студентам 2 12.11.2011 18:38
Посчитать произведение эл-ов массива, расположенных между максимальным и минимальными элементами. Fri Помощь студентам 4 23.10.2011 20:35
Найти сумму чисел последовательности, расположенных между максимальным отрицательным и минимальным положи Maks6169 Помощь студентам 6 02.12.2009 10:38