Помощь - Поиск - Пользователи - Календарь
Полная версия: Динамическая память
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Anton
Всем привет! smile.gif

Народ, реально зашиваюсь, ничего не успеваю... до утра надо!!!

Если реально, можете помочь написать програмку на динамическую память, вот условие:
3. Даны натуральное число n, действительные числа a1, ..., a2n. Получить:
а) (a1 - a2n)(a3 - a2n-2)(a5 - a2n-4) … (a2n-1 - a2); б) a1a2n + a2a2n-1 + … + anan+1;
в) min(a1 + an+1, a2 + an+2, …, an + a2n); г) max (min(a1, a2n), min(a2, a2n-1), …, min(an, an+1)).

Мдя, условие немного искажено, но это не важно.
Вот мои наброски, а задать условие не получается, туплю что-то:
Код
uses crt;
type  floatArr = array[1 .. maxint div sizeof(integer)] of integer;
var i,n:integer;
  pArr: ^floatArr;
  p:integer;

BEGIN
 ClrScr;
 getmem(pArr, sizeof(integer));
 Write('Vvedite n='); Readln(n);
 writeln('Ishodniy massiv:');
 for i:=1 to 2*n do
    begin
  pArr^[i]:=random(10);
  write(pArr^[i],' ');
    end;
 writeln;


readkey;
END.


Вот, помогите, плиз!
volvo
Anton
Я бы так делал:
Код

Uses Crt;

Function rmin(a, b: Real): Real;
 Begin
   rmin := a;
   If b < a Then rmin := b
 End;

Const
 n: Integer = 20;
Type
 floatArr =
   Array[1 .. maxInt div SizeOf(Real)] Of Real;

Var
 i: integer;
 pArr: ^floatArr;

 min, max, p, x: Real;

begin

 ClrScr;
 Write('Vvedite n='); Readln(n);
 GetMem(pArr, 2*n*SizeOf(Real));
 Writeln('Ishodniy massiv:');
 For i := 1 To 2*n Do
   Begin
     pArr^[i] := Random(10);
     Write(pArr^[i]:5:0)
   End;
 WriteLn;


 (* A part *)
 p := 1;
 i := 1;
 While i <= (2*n - 1) Do
   Begin
     p := p * (pArr^[i] - pArr^[2*n - i + 1]);
     Inc(i, 2)
   End;
 Writeln('a) p = ', p:10:5);

 (* B part *)
 p := 0;
 For i := 1 To n Do
   p := p + pArr^[i]*pArr^[2*n - i + 1];
 Writeln('b) p = ', p:10:5);

 (* C part *)
 min := maxInt;
 For i := 1 To n Do
   Begin
     x := pArr^[i] + pArr^[n + i];
     If min > x Then min := x;
   End;
 Writeln('c) min = ', min:10:5);

 (* D part *)
 max := -maxInt;
 For i := 1 To n Do
   Begin
     x := rmin(pArr^[i], pArr^[2*n - i + 1]);
     If max < x Then max := x
   End;
 Writeln('d) max = ', max:10:5);
 ReadLn
end.
what does plaquenil do to your b
Cialis Generico 40 Mg
buy prednisone online without pr
Keflex Is Making Me Itch
proscar order best on line pharm
Kamagra Acheter En Belgique
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.