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

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

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

> Опять с динамической памятью
сообщение
Сообщение #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 -


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

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


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

 





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