Получить последовательность по правилу - Turbo Pascal (29578)
Формулировка задачи:
Дано натуральное число N. Получить последовательность b1...bn, Где i= 1,2,3,4...,n.
Значение bi равно:
Сделать динамическим списком! Помогите, не получается
Решение задачи: «Получить последовательность по правилу»
textual
Листинг программы
type
PList = ^TList;
Tlist = record
bi: Real;
next: Plist;
end;
var
N, i: Integer;
A, p: Plist;
procedure addtolist(anum: real);
var
p: plist;
begin
new(p);
p^.bi := anum;
p^.next := a;
a := p;
end;
procedure printlist;
var
p: plist;
begin
p := a;
while p <> nil do
begin
write(' ',p^.bi:0:2);
p := p^.next;
end;
end;
begin
a := nil;
write(' n= ');
readln(N);
for I := 1 to N do
begin
addtolist(i);
end;
printlist;
end.
Объяснение кода листинга программы
- Создается тип данных
PList, который является указателем на структуруTList. - Создается переменная
NтипаIntegerи инициализируется значением 0. - Создается переменная
iтипаIntegerи инициализируется значением 1. - Создается переменная
AтипаPList. - Создается переменная
pтипаPList. - В процедуре
addtolistсоздается экземпляр структурыTListи присваивается переменнойp. - Значение поля
biструктурыTListприсваивается переменнойanumи равно 1.0. - Значение поля
nextструктурыTListприсваивается переменнойa. - Значение переменной
aприсваивается значению поляnextструктурыTList. - Значение поля
nextструктурыTListприсваивается переменнойp. - Значение поля
biструктурыTListприсваивается значению поляnextструктурыTList. - Значение поля
nextструктурыTListприсваивается переменнойa. - Переменная
aстановится указателем на новый экземпляр структурыTList. - Выполняется цикл
while p <> nil do- Выводится пробел, соответствующий значению поля
biструктурыTList. - Переменная
pприсваивается значению поляnextструктурыTList. - Цикл
while p <> nil doповторяется.
- Выводится пробел, соответствующий значению поля
- Завершается цикл
while p <> nil do. - Выполняется цикл
for I := 1 to N do- Создается экземпляр структуры
TListи присваивается переменнойp. - Значение поля
biструктурыTListприсваивается переменнойanumи равно i. - Значение поля
nextструктурыTListприсваивается переменнойa. - Значение поля
biструктурыTListприсваивается значению поляnextструктурыTList. - Значение поля
nextструктурыTListприсваивается переменнойa. - Переменная
aстановится указателем на новый экземпляр структурыTList. - Выполняется цикл
while p <> nil do - Выводится пробел, соответствующий значению поля
biструктурыTList. - Переменная
pприсваивается значению поляnextструктурыTList. - Цикл
while p <> nil doповторяется. - Завершается цикл
while p <> nil do. - Выполняется процедура
printlist. - Переменная
aстановится указателем на первый элемент списка. - Выводится список чисел, разделенных пробелами.
- Завершается программа.
- Создается экземпляр структуры