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

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

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

 
 Ответить  Открыть новую тему 
> Ссылочный тип данных, Нужно...очень..работа с ссылками
сообщение
Сообщение #1


Новичок
*

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

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


Очень нужна во вторник задача, точнее лаба. Без неё на экзамен не допустят mega_chok.gif

Задача на ссылки.

Составить список группы, содержащей 15 человек. Указать для каждого студента оценки, полученные на последних экзаменах. Разработать программу, позволяющую вводить данные о студентах, заносить эту инфу в файл dan.dat.
Включить в список инфу, относящуюся к студентам, у которых больше одной 2. Добавить в конец списка студентов, имеющих хотябы 1 двойку. Удалить из начала списка 2 студентов.

Вот сдесь я пытался чтото делать, но ничего не выходить good.gif Выручайте...

program ddddddddd;
uses crt;
type point=^stud;
stud=record
fam:string[25];
mat:integer;
rus:integer;
istor:integer;
him:integer;
fiz:integer;
next:point;
end;
point1=^stud1;
stud1=record
fam:string[25];
mat:integer;
rus:integer;
istor:integer;
him:integer;
fiz:integer;
next:point;
end;
point2=^stud2;
stud2=record
fam:string[25];
mat:integer;
rus:integer;
istor:integer;
him:integer;
fiz:integer;
next:point;
end;
point3=^stud3;
stud3=record
fam:string[25];
mat:integer;
rus:integer;
istor:integer;
him:integer;
fiz:integer;
next:point;
end;
var
f: text;
n,n1,n3,i:integer;
d,tmp,p,t:point;
d1,tmp1,p1,t1:point;
d2,tmp2,p2,t2:point;
d3,tmp3,p3,t3:point;
k:integer;
begin
clrscr;
t:=nil;
t1:=nil;
assign(f,'den.dat'); rewrite(f);
writeln('Vvedite kolichestvo studentov[15..]');readln (n);
for i:=1 to n do begin
new(tmp);
write ('Fam=> ');readln(tmp^.fam); writeln(f,tmp^.fam);
write ('Mat=> ');readln(tmp^.mat);writeln(f,tmp^.mat) ;
write ('Rus=> ');readln(tmp^.rus);writeln(f,tmp^.rus) ;
write ('Istor=> ');readln(tmp^.istor);writeln(f,tmp^.istor) ;
write ('Him=> ');readln(tmp^.him); writeln(f,tmp^.him) ;
write ('Fiz=> ');readln(tmp^.fiz);writeln(f,tmp^.fiz) ;
tmp^.next:=t;
t:=tmp;
end;
close(f);
clrscr;
while (t<>nil) do begin
writeln(t^.fam,' ', t^.mat,' ', t^.rus,' ', t^.istor,' ', t^.him ,' ',t^.fiz);
t:=t^.next;
end;
{Formirovanie new}
t:=tmp;
n1:=1;
for i:=1 to n do begin
k:=0;
if (t^.mat=2) then k:=k+1;
if (t^.rus=2) then k:=k+1;
if (t^.istor=2) then k:=k+1;
if (t^.him=2) then k:=k+1;
if (t^.fiz=2) then k:=k+1;
if (k>1) then begin
new (tmp1);
tmp1^.fam:=tmp^.fam;
tmp1^.mat:=tmp^.mat;
tmp1^.rus:=tmp^.rus;
tmp1^.istor:=tmp^.istor;
tmp1^.him:=tmp^.him;
tmp1^.fiz:=tmp^.fiz;
tmp1^.next:=t1;
t1:=tmp1;
n1:=n1+1;
end;
end;

{Dobavlenie}
for i:=1 to n do begin
k:=0;
if (t^.mat=2) then k:=k+1;
if (t^.rus=2) then k:=k+1;
if (t^.istor=2) then k:=k+1;
if (t^.him=2) then k:=k+1;
if (t^.fiz=2) then k:=k+1;
if (k>0) then begin

new (tmp1);
tmp1^.fam:=tmp^.fam;
tmp1^.mat:=tmp^.mat;
tmp1^.rus:=tmp^.rus;
tmp1^.istor:=tmp^.istor;
tmp1^.him:=tmp^.him;
tmp1^.fiz:=tmp^.fiz;
tmp1^.next:=Nil;
t1:=tmp1;
n1:=n1+1;
end;
end;

{ud-e zad-go el-ta}
t1:=tmp1;
n3:=1;
for i:=1 to n1 do begin
if (i<=2) then begin
new (tmp2);
tmp2^.fam:=tmp1^.fam;
tmp2^.mat:=tmp1^.mat;
tmp2^.rus:=tmp1^.rus;
tmp2^.istor:=tmp1^.istor;
tmp2^.him:=tmp1^.him;
tmp2^.fiz:=tmp1^.fiz;
tmp2^.next:=t2;
t2:=tmp2;
end;
if (i>2) then begin
new (tmp3);
tmp3^.fam:=tmp1^.fam;
tmp3^.mat:=tmp1^.mat;
tmp3^.rus:=tmp1^.rus;
tmp3^.istor:=tmp1^.istor;
tmp3^.him:=tmp1^.him;
tmp3^.fiz:=tmp1^.fiz;
tmp3^.next:=t3;
t3:=tmp3;
n3:=n3+1;
end;
end;
readkey;
clrscr;
for i:=1 to 2 do begin
writeln(t2^.fam,' ', t2^.mat,' ', t2^.rus,' ', t2^.istor,' ', t2^.him ,' ',t2^.fiz);
t2:=t2^.next;
end;
readkey;
clrscr;
writeln;
for i:=1 to n3 do begin
writeln(t3^.fam,' ', t3^.mat,' ', t3^.rus,' ', t3^.istor,' ', t3^.him ,' ',t3^.fiz);
t3:=t3^.next;
end;
readkey;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


давай по порядку.
1) чем отличаются типы stud,stud1,stud2?
2) {Dobavlenie}. Почему
tmp1^.next:=Nil;
?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Цитата(мисс_граффити @ 18.12.2006 19:00) *

давай по порядку.
1) чем отличаются типы stud,stud1,stud2?
2) {Dobavlenie}. Почему
tmp1^.next:=Nil;
?


Писал эту лабу я давно, а сдаю только щас и понял, что ошибок много. Про ссылки всё забыл wacko.gif
Насколько помню, студы одинаковые ставил, т.к. хотел СТАРУЮ запись не портить НОВОЙ. Т.е. редактировать новую запись студ 1 и тп. Нил не помню yes2.gif

П.С. Если не трудно, дайте ссылку на какойнить исходник по ссылкам(о как), лаба горит, а сдавать завтра((

Сообщение отредактировано: MyNameIs -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


так это ж не переменные, а типы....
тип ничем не испортишь.

ссылки... это, вообще-то, в данном случае указатели.
почитай в FAQ про них.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


Да, и ещё:
1. как отсортировать матрицу по столбцам.
2. как удалить указанную строку из матрицы.

Сортировать по строкам научился, а по столбцам нет).
А при удалении столбца, получается придётся записывать в новую матрицу??

П.С. Надеюсь это не нарушение правил форума.. rolleyes.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 29.03.2024 18:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name