1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Ссылочный тип данных, Нужно...очень..работа с ссылками
Очень нужна во вторник задача, точнее лаба. Без неё на экзамен не допустят
Задача на ссылки.
Составить список группы, содержащей 15 человек. Указать для каждого студента оценки, полученные на последних экзаменах. Разработать программу, позволяющую вводить данные о студентах, заносить эту инфу в файл dan.dat. Включить в список инфу, относящуюся к студентам, у которых больше одной 2. Добавить в конец списка студентов, имеющих хотябы 1 двойку. Удалить из начала списка 2 студентов.
Вот сдесь я пытался чтото делать, но ничего не выходить Выручайте...
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
{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.