Динамич массивы. Паскаль
-
- Сообщения: 296
- Зарегистрирован: 13 фев 2008, 20:10
- Откуда: Беларусь. Орша
- Контактная информация:
Господа! Помогите пожалуйста! Сама просто физически не успеваю. Завтра сдавать динамические структуры данных!
#1 Постройте первые N строк треугольника Паскаля.
#2 Даны две последовательности. Проверьте, можно ли одну из них получить вычёркиванием некоторых элементов другой.
Только с помощью динамических структур.
#1 Постройте первые N строк треугольника Паскаля.
#2 Даны две последовательности. Проверьте, можно ли одну из них получить вычёркиванием некоторых элементов другой.
Только с помощью динамических структур.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
-
- Сообщения: 296
- Зарегистрирован: 13 фев 2008, 20:10
- Откуда: Беларусь. Орша
- Контактная информация:
Уважаемый MOTOCoder!
Вы моя последняя надежда! мне еще 8 штук различных задач к завтраму делать!! ПОМОГИТЕ!!
Вы моя последняя надежда! мне еще 8 штук различных задач к завтраму делать!! ПОМОГИТЕ!!
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
Вот Треугольник паскаля:
[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]
[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]
Ни что так не ограничивает фантазию программиста, как компилятор...
-
- Сообщения: 296
- Зарегистрирован: 13 фев 2008, 20:10
- Откуда: Беларусь. Орша
- Контактная информация:
Спасибо!!!! Искренне спасибо!!!!!!
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
-
- Сообщения: 296
- Зарегистрирован: 13 фев 2008, 20:10
- Откуда: Беларусь. Орша
- Контактная информация:
MOTOCoder, вторую пожалуйста!!!! Нет времени разбираться, только сегодня задали, а завтра уже сдавать!
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
Со второй пока не разобраться.
Первую я решал довольно давно, и то часть алгоритма брал из какой-то книги.
Попробую сделать и вторую.
Первую я решал довольно давно, и то часть алгоритма брал из какой-то книги.
Попробую сделать и вторую.
Ни что так не ограничивает фантазию программиста, как компилятор...
-
- Сообщения: 296
- Зарегистрирован: 13 фев 2008, 20:10
- Откуда: Беларусь. Орша
- Контактная информация:
спасибо. (если можно до 00.00 часов по Москве, а то у меня трафик ограничен!)
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
Вроде так:
[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]
[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]
Ни что так не ограничивает фантазию программиста, как компилятор...
Не успел )))
It's a long way to the top if you wanna rock'n'roll
-
- Сообщения: 296
- Зарегистрирован: 13 фев 2008, 20:10
- Откуда: Беларусь. Орша
- Контактная информация:
MOTOCoder Спасибо.
Я Вам должна.
Спасибо.
Я Вам должна.
Спасибо.
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.