Приветствую Вас Гость | RSS

Delphi заготовки

Воскресенье, 12.05.2024, 11:13
Главная » 2012 » Апрель » 12 » Произведение элементов массива, расположенных между максимальным и минимальным элементами.
20:29
Произведение элементов массива, расположенных между максимальным и минимальным элементами.
  {
  Произведение элементов массива, расположенных между максимальным и минимальным элементами.
}
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.


Просмотров: 3688 | Добавил: NetSoftWare | Рейтинг: 2.0/2
Всего комментариев: 0
Имя *:
Email *:
Код *: