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

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

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

> сортировка записей в файле
shutka
сообщение 13.05.2007 13:01
Сообщение #1





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

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


Ребята!!!Помогите пожалуйста!!!Мне необходимо отсортировать записи в типизированном файле по полю строкового типа.Вот листинг всей программы!Я не знаю,как вывести результаты на экран..Подскажите?!
program zadan2;
uses crt;
type Tanim=record
Fio:string;
Name:string;
Poroda:string;
age:byte;
end;
const n=3;adr:string='an.doc';
var anim:array[1..n]of Tanim;
fan:file of Tanim;i,a:byte;b:string;K:integer;
function Compare(a, b: String): Integer;
var
i, n, lA, lB: Integer;
function Min(a, b: Integer): Integer;
begin
if a < b then
Min := a
else
Min := b;
end;
begin
lA := Length(a);
lB := Length(b);
n := Min(lA, lB);
i := 1;
while (i <= n) and (a[i] = b[i]) do inc(i);
if (i > n) then begin
if (lA = lB) then Compare := 0
else
if lA > lB then Compare := - 1
else Compare := 1;
end
else
if ord(a[i]) < ord(b[i]) then
Compare := 1
else
Compare := -1
end;

begin
Assign(fan,adr);
rewrite(fan);
writeln('Введите данные по каждому животному');
for i:=1 to n do begin with anim[i] do
begin
write('Введите ФИО владельца животного: ');readln(FIO);
write('Введите кличку животного: ');readln(Name);
write('Введите породу: ');readln(Poroda);
write('Введите возраст: ');readln(age);
end;
write(fan,anim[i]);end;
close(fan);
reset(fan);
writeln;
writeln('Введите возраст животного ');readln(a);
for i:=1 to n do begin
with anim[i] do
if age=a then begin
writeln('Животные такого возраста:');
writeln('Фамилия владельца: ',Fio,';Кличка животного: ',Name,';порода: ',Poroda);
end;end;
writeln;
write('Введите кличку ');readln(b);
for i:=1 to n do begin
with anim[i] do
if Name=b then begin
writeln('Данные о животных с такой кличкой:');
writeln('ФИО владельца: ',Fio,';возраст животного: ',age,';порода: ',Poroda);
end;end;
writeln;

for i:=1 to n do {здесь надо зделать сортировку по породам животных}
begin
k:=compare(anim[i].poroda,anim[i+1].poroda);
if k=-1 then begin
writeln(fan,anim[i+1],anim[i]);end;

end;


Close(fan);
end.



--------------------
Shutka
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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