Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2014, 20:59   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
нужно исправить ошибки,
А какие ошибки-то? В чем они проявляются?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2014, 20:59   #12
Dina 85
Пользователь
 
Регистрация: 09.10.2012
Сообщений: 49
Вопрос

ну ладно хватит уже латинских выражений
я немного попыталась навести порядок с переменными, вот что получилось, но ошибка "Неопределенный тип в определении указателя S", в чем и где проблема?
Код:
Program PR5;
Uses crt;
type PNT=^S;
LerBook = record
Fam: String [20];
Year: 1..10;
Ch: Char;
next: PNT;
end;
var rec, beg, endd, paux, current: PNT;im:string[20];

Procedure  CreateLL(var beg, endd: PNT; var Fam: String [20] );
begin
New(beg);
beg^.Next:=NIL; beg^.Fam:=current;
endd:=Beg
end;

Procedure AddLL(var Endd: PNT; var current: PNT);
var  pAux: PNT;
begin
New(pAux);
pAux^.Next:=NIL; Endd^.Next:=pAux; Endd:=pAux;
endd^.Fam:=current;
end;

procedure okno;
begin
textbackground(0);
clrscr;
window(2,2,79,24);
textbackground(11);
textcolor(15);
clrscr;
end;

Begin
clrscr;
okno;
writeln('|    God obychenia   |  Familia  |');
writeln(' ---------------------------------');
for rec:=1 to n do
                begin
                beg:=rec+2;
                write(' ');
                gotoXY(15,beg); readln(LerBook[i].Fam);
                gotoXY(27,beg); readln(LerBook[i].Year);
 
                end;
End;
BEGIN
write('Vvedite familiy: ');readln(im);
endd:=0;
for rec:=1 to n do begin
                 if ord(im[1])=ord(LerBook[rec].Fam[1]) then
                 if ord(im[2])=ord(LerBook[rec].Fam[2]) then
                 if ord(im[3])=ord(LerBook[rec].Fam[3]) then
                 endd:=endd+1;
                 end;
writeln('kolichestvo odnofamilcev, 'im', = ',endd);
pAux:=Beg;
repeat
writeln(pAux^.Fam); pAux:=pAux^.Next;
until pAux=NIL
readln;
END.
Dina 85 вне форума Ответить с цитированием
Старый 09.02.2014, 21:01   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Неопределенный тип в определении указателя S
Правильно. Типа S у тебя нет.
Но похоже тебе нужно писать
Код:
PNT=^LerBook;
LerBook = record
Fam: String [20];
Year: 1..10;
Ch: Char;
next: PNT;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2014, 21:03   #14
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Вот, так уже лучше )
Следующий левел: на какой тип должен указывать pnt? Что значит эта буква s после ^?

Цитата:
Сообщение от Stilet Посмотреть сообщение
Правильно. Типа S у тебя нет.
Но похоже тебе нужно писать
Код:
PNT=^LerBook;
LerBook = record
Fam: String [20];
Year: 1..10;
Ch: Char;
next: PNT;
end;
Эх, вся интрига разрушена

Последний раз редактировалось Stilet; 09.02.2014 в 21:12.
Son Of Pain вне форума Ответить с цитированием
Старый 09.02.2014, 21:12   #15
Dina 85
Пользователь
 
Регистрация: 09.10.2012
Сообщений: 49
По умолчанию

Вот вы интригант!

Так исправила, осталась ошибка, в чем здесь подвох?(см.изображение)
Код:
Program PR5;
Uses crt;
type PNT=^lerbook;
LerBook = record
Fam: String [20];
Year: 1..10;
Ch: Char;
next: PNT;
end;
var rec, beg, endd, paux, current: PNT;im:string[20];

Procedure  CreateLL(var beg, endd: PNT; var Fam: String[20]);
begin
New(beg);
beg^.Next:=NIL; beg^.Fam:=current;
endd:=Beg
end;

Procedure AddLL(var Endd: PNT; var current: PNT);
var  pAux: PNT;
begin
New(pAux);
pAux^.Next:=NIL; Endd^.Next:=pAux; Endd:=pAux;
endd^.Fam:=current;
end;

procedure okno;
begin
textbackground(0);
clrscr;
window(2,2,79,24);
textbackground(11);
textcolor(15);
clrscr;
end;

Begin
clrscr;
okno;
writeln('|    God obychenia   |  Familia  |');
writeln(' ---------------------------------');
for rec:=1 to n do
                begin
                beg:=rec+2;
                write(' ');
                gotoXY(15,beg); readln(LerBook[i].Fam);
                gotoXY(27,beg); readln(LerBook[i].Year);
 
                end;
End;
BEGIN
write('Vvedite familiy: ');readln(im);
endd:=0;
for rec:=1 to n do begin
                 if ord(im[1])=ord(LerBook[rec].Fam[1]) then
                 if ord(im[2])=ord(LerBook[rec].Fam[2]) then
                 if ord(im[3])=ord(LerBook[rec].Fam[3]) then
                 endd:=endd+1;
                 end;
writeln('kolichestvo odnofamilcev, 'im', = ',endd);
pAux:=Beg;
repeat
writeln(pAux^.Fam); pAux:=pAux^.Next;
until pAux=NIL
readln;
END.
Изображения
Тип файла: jpg 2.jpg (101.4 Кб, 12 просмотров)
Dina 85 вне форума Ответить с цитированием
Старый 09.02.2014, 21:13   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Эх, вся интрига разрушена
Ну извини Предупреждать-то надо
Цитата:
var Fam: String[20]);
Убери [20] в параметры такое передавать нельзя.
Цитата:
Procedure CreateLL(var beg, endd: PNT; var Fam: String);
begin
New(beg);
beg^.Next:=NIL; beg^.Fam:=current;
endd:=Beg
end;
Что это за beg^.Fam:=current;? Может надо beg^.Fam:=Fam; ?
Цитата:
endd^.Fam:=current;
Аналогичный вопрос.

Интрига сохранена и преумножена.
I'm learning to live...

Последний раз редактировалось Stilet; 09.02.2014 в 21:17.
Stilet вне форума Ответить с цитированием
Старый 09.02.2014, 21:32   #17
Dina 85
Пользователь
 
Регистрация: 09.10.2012
Сообщений: 49
По умолчанию

ах как жестоко!
Dina 85 вне форума Ответить с цитированием
Старый 09.02.2014, 21:40   #18
Dina 85
Пользователь
 
Регистрация: 09.10.2012
Сообщений: 49
По умолчанию

что-то наисправляла посмотрите люди добрые

очередная ошибка, я сдаюсь
Код:
Program PR5;
Uses crt;
type PNT=^lerbook;
LerBook = record
Fam: String [20];
Year: 1..10;
Ch: Char;
next: PNT;
end;
var rec, beg, endd, paux: PNT;im:string[20];

Procedure  CreateLL(var beg, endd: PNT; var Fam:String);
begin
New(beg);
beg^.Next:=NIL; beg^.Fam:=fam;
endd:=Beg
end;

Procedure AddLL(var Endd: PNT; var FAM:STRING);
var  pAux: PNT;
begin
New(pAux);
pAux^.Next:=NIL; Endd^.Next:=pAux; Endd:=pAux;
endd^.Fam:=FAM;
end;

procedure okno;
begin
textbackground(0);
clrscr;
window(2,2,79,24);
textbackground(11);
textcolor(15);
clrscr;
end;

Begin
clrscr;
okno;
writeln('|    God obychenia   |  Familia  |');
writeln(' ---------------------------------');
for rec:=1 to n do
                begin
                beg:=rec+2;
                write(' ');
                gotoXY(15,beg); readln(LerBook[i].Fam);
                gotoXY(27,beg); readln(LerBook[i].Year);
 
                end;
End;
BEGIN
write('Vvedite familiy: ');readln(im);
endd:=0;
for rec:=1 to n do begin
                 if ord(im[1])=ord(LerBook[rec].Fam[1]) then
                 if ord(im[2])=ord(LerBook[rec].Fam[2]) then
                 if ord(im[3])=ord(LerBook[rec].Fam[3]) then
                 endd:=endd+1;
                 end;
writeln('kolichestvo odnofamilcev, 'im', = ',endd);
pAux:=Beg;
repeat
writeln(pAux^.Fam); pAux:=pAux^.Next;
until pAux=NIL
readln;
END.
Изображения
Тип файла: jpg 3.jpg (99.5 Кб, 11 просмотров)
Dina 85 вне форума Ответить с цитированием
Старый 09.02.2014, 22:20   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Смотри внимательно:
Цитата:
for rec:=1 to n do begin
Цитата:
var rec, beg, endd, paux: PNT;
Цитата:
type PNT=^lerbook;
В цикл можно подставлять только целочисленную переменную. А теперь скажи какого типа у тебя rec.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2014, 22:41   #20
Dina 85
Пользователь
 
Регистрация: 09.10.2012
Сообщений: 49
По умолчанию

Там исправила, теперь новая ошибка несоответствие типа
Вы же разбираетесь можете уже окончательно исправить пожалуйста
Код:
Program PR5;
Uses crt;
type PNT=^lerbook;
LerBook = record
Fam: String [20];
Year: 1..10;
Ch: Char;
next: PNT;
end;
var beg, endd, paux: PNT;
im:string[20];
rec,n:integer;

Procedure  CreateLL(var beg, endd: PNT; var Fam:String);
begin
New(beg);
beg^.Next:=NIL; beg^.Fam:=fam;
endd:=Beg
end;

Procedure AddLL(var Endd: PNT; var FAM:STRING);
var  pAux: PNT;
begin
New(pAux);
pAux^.Next:=NIL; Endd^.Next:=pAux; Endd:=pAux;
endd^.Fam:=FAM;
end;

procedure okno;
begin
textbackground(0);
clrscr;
window(2,2,79,24);
textbackground(11);
textcolor(15);
clrscr;
end;

Begin
clrscr;
okno;
writeln('|    God obychenia   |  Familia  |');
writeln(' ---------------------------------');
for rec:=1 to n do
                begin
                beg:=rec+2;
                write(' ');
                gotoXY(15,beg); readln(LerBook[i].Fam);
                gotoXY(27,beg); readln(LerBook[i].Year);
 
                end;
End;
BEGIN
write('Vvedite familiy: ');readln(im);
endd:=0;
for rec:=1 to n do begin
                 if ord(im[1])=ord(LerBook[rec].Fam[1]) then
                 if ord(im[2])=ord(LerBook[rec].Fam[2]) then
                 if ord(im[3])=ord(LerBook[rec].Fam[3]) then
                 endd:=endd+1;
                 end;
writeln('kolichestvo odnofamilcev, 'im', = ',endd);
pAux:=Beg;
repeat
writeln(pAux^.Fam); pAux:=pAux^.Next;
until pAux=NIL
readln;
END.
Dina 85 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические структуры данных в Delphi.Список. JonnyFletcher Помощь студентам 6 20.05.2013 11:51
Динамические структуры, Pascal Live1SMR Помощь студентам 2 23.04.2013 21:30
Список (динамические структуры), выведение на экран molekyla Паскаль, Turbo Pascal, PascalABC.NET 4 21.03.2011 09:14
Динамические структуры (линейный список). Си Zaya007 Помощь студентам 4 12.03.2009 18:14