Страница 1 из 2
Динамич массивы. Паскаль
Добавлено: 28 фев 2008, 20:10
C_O_D_E
Господа! Помогите пожалуйста! Сама просто физически не успеваю. Завтра сдавать динамические структуры данных!
#1 Постройте первые N строк треугольника Паскаля.
#2 Даны две последовательности. Проверьте, можно ли одну из них получить вычёркиванием некоторых элементов другой.
Только с помощью динамических структур.
Re: Динамич массивы. Паскаль
Добавлено: 28 фев 2008, 20:17
C_O_D_E
Уважаемый MOTOCoder!
Вы моя последняя надежда! мне еще 8 штук различных задач к завтраму делать!! ПОМОГИТЕ!!
Re: Динамич массивы. Паскаль
Добавлено: 28 фев 2008, 20:32
MOTOCoder
Вот Треугольник паскаля:
[syntax='Delphi']
Program TrigonPas;
uses Crt;
type
Mas=array [1..1]of integer;
p=^Mas;
c=array[1..1]of p;
var
A:^c;
n, i, j, y, x: integer;
Begin
ClrScr;
{$R-}
x := (80 - 1) div 2;
y := 2;
Write ('Введите натуральное число: ');
Readln (n);
GetMem (A, n * SizeOf (pointer));
GetMem (A^ [1], SizeOf (integer));
A^ [1]^ [1] := 1;
GotoXY (x, y);
Write (A^ [1]^ [1]);
for i := 2 to n do
begin
Dec (x);
Inc (y);
GotoXY (x, y);
GetMem (A^ , i * SizeOf (integer));
for j := 1 to i do
begin
if (j = 1)
or
(j = i)
then
A^ ^ [j] := 1
else
A^ ^ [j] := A^ ^ [j] + A^ ^ [j - 1];
Write (A^ ^ [j], ' ');
end;
end;
for i := 1 to n do
FreeMem (A^ , i * SizeOf (integer));
FreeMem (A, n * SizeOf (pointer));
Readln;
End.
[/syntax]
Re: Динамич массивы. Паскаль
Добавлено: 28 фев 2008, 20:36
C_O_D_E
Спасибо!!!! Искренне спасибо!!!!!!
Re: Динамич массивы. Паскаль
Добавлено: 28 фев 2008, 21:12
C_O_D_E
MOTOCoder, вторую пожалуйста!!!! Нет времени разбираться, только сегодня задали, а завтра уже сдавать!
Re: Динамич массивы. Паскаль
Добавлено: 28 фев 2008, 21:15
MOTOCoder
Со второй пока не разобраться.
Первую я решал довольно давно, и то часть алгоритма брал из какой-то книги.
Попробую сделать и вторую.
Re: Динамич массивы. Паскаль
Добавлено: 28 фев 2008, 21:19
C_O_D_E
спасибо. (если можно до 00.00 часов по Москве, а то у меня трафик ограничен!)
Re: Динамич массивы. Паскаль
Добавлено: 29 фев 2008, 00:01
MOTOCoder
Вроде так:
[syntax='Delphi']
program Sequense;
type
PItem=^Item;
Item=record
D:integer;
L:Pointer;
end;
var
A,B,X,Y:PItem;
SA,SB:integer;
i,J:integer;
index1,index2:integer;
function ReadSeq(Size:integer):PItem;
var
i:integer;
n:^integer;
begin
Y:=nil;
readln(n^);
for i:=1 to Size-1 do
begin
X:=Y;
New(Y);
Y^.D:=n^;
Y^.L:=X;
readln(n^);
end;
X:=Y;
New(Y);
Y^.D:=n^;
Y^.L:=X;
ReadSeq:=Y;
end;
function IsAfterIdx(Num:integer;idx:integer):integer;
var f:boolean;
id:integer;
i:integer;
begin
X:=A;
id:=0;
for i:=1 to SA do
begin
if i> idx then
begin
if X^.D=Num then
begin
id:=i;
end;
end;
X:=X^.L;
end;
IsAfterIdx:=id;
end;
begin
writeln('Введите размер последовательности A:');
readln(SA);
writeln('Введите размер последовательности B:');
readln(SB);
writeln('Введите элементы последовательности A:');
A:=ReadSeq(SA);
writeln('Введите элементы последовательности B:');
B:=ReadSeq(SB);
Y:=B;
for J:=1 to SB do
begin
index1:=IsAfterIdx(Y^.D,index2);
Y:=Y^.L;
if index1<>0 then
begin
index2:=index1;
end;
end;
if index2<sb-1 then writeln('no') else writeln('yes');
{X:=A;
for i:=1 to SA do
begin
write(X^.D,' ');
X:=X^.L;
end; }
readln;
end.
[/syntax]
Re: Динамич массивы. Паскаль
Добавлено: 29 фев 2008, 10:42
somewhere
Не успел )))
Re: Динамич массивы. Паскаль
Добавлено: 01 мар 2008, 20:49
C_O_D_E
MOTOCoder Спасибо.
Я Вам должна.
Спасибо.