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

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

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

> Опять с динамической памятью
Child of Bodom
сообщение 7.04.2007 9:35
Сообщение #1


Новичок
*

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

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


Когда то я к вам уже обращался, но вы мне так и не дали jndtnf(FAQи я уже все перечитал и не понимаю все равно как мне сделать). А вот и само задание : Реализовать на базе массива динамическую структуру, указанную в варианте: Дан массив записей, содержащий данные: ФИО, стаж работы, ставка. Создать упорядоченный по ФИО список, не перемещая записи.
Меня надо немного подправить в самой процедуре сортировке(надеюсь остальное то правильно будет). Вот что я наработал:
Program Spisok;
uses crt;
const n=5;
type uk=^zapis;
zapis=record
Fio:string[20];
Stavka,Stazh:integer;
next:uk;
end;
Mas=array [1..n] of zapis;

var a:mas;
s:zapis;
i:integer;
z,beg:uk;
Procedure vvod (var s:zapis;var a:mas);
begin
for i:=1 to n do begin
Writeln ('Введите фамилию');
readln (s.Fio);
writeln ('Введите стаж работы');
readln (s.Stazh);
writeln ('Введите ставку');
readln (s.Stavka);
a[i]:=s;
end;
end;
Procedure sort (var a:mas;var s:zapis;var beg:uk);
var i,j:integer;
p,max,p1:uk;
begin
for i:=1 to n do begin
p^:=a[1];
if a[i].FIO>p^.FIO then
p^:=a[i];
end;
for j:=n downto 2 do begin
for i:=1 to n do begin
max^:=a[1];
if a[i].Fio>max^.FIO then
max^:=a[i];
end;
beg:=max; - вот с этими указателями не могу понять как их сделать чтоб работало
p1:=max;
beg^.next:=p;
end;
end;
Procedure vivod (var beg:uk);
var p:uk;
begin
writeln ('Фамилия Стаж работы Ставка ');
p:=beg;
while p<>nil do begin
write (p^.FIO:10);
write (p^.Stazh:20);
write (p^.stavka:25);
p:=p^.next;
end;
end;
BEGIN
clrscr;
VVod (s,a);
clrscr;
sort(a,s,beg);
vivod(beg);
readln;
end.

Помогите плиз, ну никак не пойму

Сообщение отредактировано: Child of Bodom - 7.04.2007 9:36


Прикрепленные файлы
Прикрепленный файл  RGR_ZAD_.PAS ( 1.12 килобайт ) Кол-во скачиваний: 176
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



- Текстовая версия 23.06.2025 19:39
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"