Forum Webscript.Ru
Программирование => Perl => Тема начата: G-Gudok от 28 Мая 2002, 13:40:37
-
Очень нужно решить задачу на паскале. Имеется список фамилий(который читается из файла), который упорядочен по алфавиту. Мне нужно добавить новую фамилию. Все спокойно добавляет, но! Мне нужно, чтоб и "моя" фамилия автоматический заняла правильно место в списке. А то пишу Павлов, а он в конец отображает. Помоготи, очень надо!!!
program St;
uses Crt;
type
student=record
name:string[50];
group:byte;
mark:char;
end;
var
f:file of student;
Procedure Menu;
forward;
Procedure Viewlist;
var i:byte;
s:student;
begin
reset(f);
Clrscr;
writeln(\'‘Имя \');
writeln(\'N\':3,\'” ¬Ё«Ёп\':31,
\'Возраст\':7,\'Пол\':8);
i:=0;
while not eof(f) do
begin
i:=i+1;
read(f,s);
writeln(i:3,s.name:31,s.group:7,s.mark:7);
end;
menu;
end;
Procedure add;
var s:student;
begin
write(\'имя \');
readln(s.name);
write(\'‚возраст \');
readln(s.group);
write(\'пол \');
readln(s.mark);
while not eof(f) do
read(f,s);
writeln(s.name, s.group);
seek(f,filesize(f));
write(f,s);
menu;
end;
Procedure Menu;
var c:char;
begin
writeln(\'0-выход\');
writeln(\'1-просмотр\');
writeln(\'2-добавить \');
c:=readkey;
case c of
\'0\':exit;
\'1\':Viewlist;
\'2\':add;
end;
end;
begin
assign(f,\'exam2.dat\');
reset(f);
clrscr;
menu;
end.
к сожалению, у меня нет файла exam2.dat, но смысл в том, что там стояли фамилии в алфавитном порядке.
Ребят, очень надо!!! извините за оффтопик!!!
-
Всё, что тебе нужно, это найти место для новой записи. Делается это элементарно:
1. Иванов
1. Партийцын
3. Петров
4. Рабинович
5. Сидоров
6. Хлюздин
Добавить Пупкина
Ищем. Пупкин должен быть ниже Иванова, ниже Партийцина, ниже Петров, выше Рабиновича. Делаем выводы. Пупкин должен быть 4-м. Открываем файл на запись и спокойно пишем туда Иванова, Партийцына, Петрова. Теперь пишем Пупкина, а затем уже Рабиновича, Сидорова и Хлюздина. Всё. Код мне писать влом. Кстати, пол это gender или sex, а не mark...