IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Динамическая память
Anton
сообщение 9.12.2004 0:20
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Мужской

Репутация: -  0  +


Всем привет! 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.


Вот, помогите, плиз!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.12.2004 0:51
Сообщение #2


Гость






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.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 9:55
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"