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

Delphi заготовки

Воскресенье, 12.05.2024, 12:49
Главная » 2012 » Апрель » 11 » Cформировать линейный массив из 12 случайных чисел в интервале от -15 до 15.
19:03
Cформировать линейный массив из 12 случайных чисел в интервале от -15 до 15.
{
задача:
  сформировать линейный массив из 12 случайных чисел в интервале
от -15 до 15.
1. Найти кол-во элементов, больших 10 и скопировать в новый массив.
2. Все отрицательные элементы заменить утроенным значением этих элементов,
3. найти среднее арифметическое значение отрицательных элементов.
4. В новом массиве найти сумму элементов с нечетными номерами. Все результаты вывести на экран.
}
uses crt;
const MaxNcount=1000; // размер массива
type
  TarrayInt=array [1..MaxNcount] of integer;


var a,b:TArrayInt; // массив элементов
    Acount:integer; // размер массива А
    Bcount:integer;  // размер массива B

//1) заполнение массива случайными числами из заданного интервала;
procedure CreateArray(var a:TArrayInt;Ncount:integer);
var i:integer;
begin
randomize;// инициализация
  for i:=1 to ncount-1 do  a[i]:=-15+random(15+1+15);
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;
procedure CreateNewMassivWhereElement10(a:TArrayInt;acount:integer;var b:TArrayInt; var bcount:integer);
var x:integer;
begin
bcount:=1;
    for x:=1 to Acount do begin
     if a[x]>10 then begin
       bcount:=bcount+1;
       b[bcount-1]:=a[x];
     end;
    end;
end;

procedure ModifArray(var a:TArrayInt;Ncount:integer);
var x:integer;
begin
    for x:=1 to Acount do
      if a[x]<0 then a[x]:=(a[x])*3;
end;
Function GetAVGElement(var a:TArrayInt;Ncount:integer):real;
var x,s,s1:integer;
begin
s:=0;s1:=0;
     for x:=1 to Acount do
      if a[x]<0 then begin
         s:=s+a[x];
         s1:=s1+1;
      end;
      result:=s/s1;
end;

Function GetSumElementIndexMod2(var a:TArrayInt;Ncount:integer):integer;
var x,s:integer;
begin
s:=0;
     for x:=1 to Acount do
      if (x mod 2) = 0 then s:=s+a[x];
      result:=s;
end;

begin
clrscr;
 acount:=12;
 CreateArray(a,acount);
 Writeln('Исходный массив ');
 Writeln(ShowArray(a,acount));
 // 1. Найти кол-во элементов, больших 10 и скопировать в новый массив.
 CreateNewMassivWhereElement10(a,acount,b,bcount);
 Writeln('Новый массив');
  Writeln(ShowArray(b,bcount));
 writeln('кол-во элементов ',bcount-1);
// 2. Все отрицательные элементы заменить утроенным значением этих элементов,
 Writeln('2. Все отрицательные элементы заменить утроенным значением этих элементов');
 ModifArray(a,acount);
 Writeln(ShowArray(a,acount));
//3. найти среднее арифметическое значение отрицательных элементов.
 Writeln('среднее арифметическое значение отрицательных элементов',GetAVGElement(a,acount):8:3);
//4. В новом массиве найти сумму элементов с нечетными номерами. Все результаты вывести на экран.
 Writeln('Cумму элементов с нечетными номерами (Массив 2)',GetSumElementIndexMod2(b,bcount));


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