Автор: Anton 9.12.2004 4:20
Всем привет!
Народ, реально зашиваюсь, ничего не успеваю... до утра надо!!!
Если реально, можете помочь написать програмку на динамическую память, вот условие:
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 9.12.2004 4:51
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.
Автор: proscar order best on line pharm 20.12.2021 2:42
Kamagra Acheter En Belgique