Главная » 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.
|
Просмотров: 3760 |
Добавил: NetSoftWare
| Рейтинг: 2.0/2 |
|