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

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

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

 
 Ответить  Открыть новую тему 
> Сортировка записей.
JacobLOST
сообщение 19.05.2013 12:31
Сообщение #1





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

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


Ребят, нужна помощь. Есь задача
uses crt;
type
   clinic = record
      sur, add, diag : string;
      sex: char;
      age: byte;
      end;
var
   a: array[1..100] of clinic;
   i,n,kol,x: byte;
   key: char;
   filename, town, y: string;
   f: text;
begin
   clrscr;
   write('введите имя файла: ');
   readln(filename);
   assign(f,filename);
   rewrite(f);
   repeat
      inc(i);
      with a[i] do begin
         write('фамилия пациента: ');
         readln(sur);
         writeln(f,'фамилия: ',sur);
         write('пол (м/ж): ');
         readln(sex);
         writeln(f,'пол: ',sex);
         write('возраст: ');
         readln(age);
         writeln(f,'возраст: ',age);
         write('место проживания: ');
         readln(add);
         writeln(f,'город: ',add);
         write('диагноз: ');
         readln(diag);
         writeln(f,'диагноз: ',diag);
      end;
         writeln('Выход? (д/н) ');
         readln(key)
   until upcase(key)='Д';
   close(f);
   n:=i;
   write('введите наш город: ');
   readln(town);
   for i:=1 to n do
   with a[i] do
      if add<>town then inc(kol);
   writeln('количество иногородних: ',kol);
   writeln('введите X: ');
   readln(x);
   writeln('введите Y: ');
   readln(y);
   for i:=1 to n do
   with a[i] do
      if (age>x) and (diag=y) then
         writeln('фамилия: ',sur);
   readkey
end.


Нужно вывести:
1) список иногородних с указанием городов в алфавитном порядке и для каждого города – список фамилий в алф. порядке (сортировка вставками по индексам по двум араметрам одновременно, индекс- номер позиции в файле)
2) список всех диагнозов, поставленных пациентам старше заданного возраста, в алфавитном порядке(челночная сортировка).

Помогите пожалуйста !
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 

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