Данные о соотрудниках содержат фамилию и оклад.Ввести данные с клавиатуры в список записей и вывести список для премирования на экран.премия=3 окладам.
Вот что я написал.Подскажите что не правильно что надо доделать?
program zapisi;
type
pData=^Tdata;
TData=record{Tip zapisi o slugawem}
name:string[20];{imya}
oklad:longint;{oklad}
next:pdata;{Указатель на следующий элемент списка}
end;
function readdata(var rec:TData):integer;
var
s:string;{stroka vvoda}
p:integer;{nomer pozicii v stroke}
okladS:string[10];{stroka,sodergawaya oklad}
Error:inTeger;{kod owibki pri preobrazovanii stroki v 4islo}
begin
readln(s);
if s='' then
readdata:=-1
else
begin
p:=pos(' ',s);
if p = 0 then
readdata:=1
else
begin
rec.name:=copy(s,1,p-1);
delete(s,1,p);
okladS:=copy(s,1,255);
val(okladS,rec.oklad,error);
if error <> 0 then
readdata:=1
else
readdata:=0
end;
end;
end;
Var
Head:Pdata;{ukazatel' na golovu spiska}
tail:Pdata;{ukazatel' na xvost spiska}
P:PData;{ukazatel' na o4erednoi element spiska}
readresult:integer;{rezul'tat vvoda zapisi}
n:integer;{4islo slugawix}
premiya:longint;
Begin
{Vvod spiska zapisei}
writeln('Введите фамилии служащих и через пробел их оклад ');
writeln('Для окончания введите пустую строку ');
{na4al'nie ustanovki}
head:=nil;{spisok pust}
tail:=nil;{spisok pust}
n:=0;
{cikl do tex por,poka ne budet vvedena pustaya stroka}
repeat
{Цикл до тех пор, пока очередная строка не будет введена правильно}
repeat
new(p);{создать новый элемент списка}
readresult:=readdata(p^);{Ввести данные с клавиатуры и записать в новый элемент списка}
if Readresult=0 then {Если запись введена без ошибок}
{Добавить элемент в конец списка}
begin
if head=nil then
head:=p;
if tail <> nil then
tail^.next:=p;
tail:=p;
p^.next:=nil;
n:=n+1;
end
else if readresult=1 then
writeln('Ошибка! Повторите!');
{Вывод фамилий соотрудников}
writeln('Результат: ');
p:=head;
while p<>nil do
begin
writeln(p^.NAME,' ',p^.OKLAD,' ',PREMIYA);
p:=p^.next;
end;
end.
И ещё!!! Я не понимаю,почему:
Добавлено через 1 мин.
а ну всё.я нашёл все ошибки.можете удалять тему.спасибо за помощь!
а ещё вопрос.мне надо вывести элементы списка,расположенные в порядке возрастания оклада.то есть отсортировать? и как кста? помогите!
Добавлено через 16 мин.
помогите плизззззззззззззззззз!!!!!!!!!!!!!!!!!!!!!!
я понимаю,что можно,но когда я пытаюсь это сделать,то у меня не получается.напишите плиз сортировку для этой проги?или хотяб объясните,как?!
Добавлено через 10 мин.
блииииииинннннннннн.ну скажите,плиззззззззз!!!!!
может, покажешь, что у тебя не получается?
ну вот.я пишу
for i:=1 to n-1 do
for j:=1 to n-i do
if p^[i].okjad ......
но он сразу выписывает мне ошибку,а по другому,я не знаю,как делать((((
неужели никто не знает?!