Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2011, 23:51   #1
mexx1337
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 22
По умолчанию Записи(record)

Помогите плиз доделать такую задачу:

На диске в файле хранится информация об учениках класса по следующей структуре :
Фамилия Пол Рост Вес

1.)Вывести на экран 1-ые пять фамилий юношей самых высоких в классе..
2.)Вывести на экран список девушек ,у которых вес<роста -100

Вот попытался сам начать делать,но не получается :
Код:
program z1;
type sp=record
nm:string;
v:byte;
h:byte;
end;
var a:array[1..100] of sp;
n,p,i,j:integer;
pv:string;
 
begin
assign(input,'lol.txt');
reset(input);
n:=0;
while not eof(input) do begin inc(n);
with a[n] do begin
read(input,nm,p,v,h);
end;
end;
for i:=1 to n-1 do begin
for j:=i+1 to n do begin
if a[i].v>a[j].v then begin
pv:=a[j].v;
a[j].v:=a[i].v;
a[i].v:=pv;
 
pv:=a[j].nm;
a[j].nm:=a[i].nm;
a[i].nm:=pv;
end;
end;
end;
close(input);
for i:=1 to 5 do writeln(output,a[i].nm);
readln
end.
mexx1337 вне форума Ответить с цитированием
Старый 19.05.2011, 10:10   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) ВЫ ЗАБЫЛИ ПОЛ в типе запись!

2) обычно для чтения данных используют типизированные файлы. Это намного проще и удобнее!

3) рекомендую в описании типа запись указать размер строки для имени
например, так
Код:

type 
TypePol = (male, female);
sp=record
  nm:string[40];
  pol:TypePol;    
  v:byte;
  h:byte;
end;
почему не сходили в поиск по форуму?! Тут этих бедных школьников (и студентов) в записи засовывают по десять раз в неделю!!!

ну и последнее. чтобы по простому решить первую часть задачи:
прочитайте в массив записи.
Отсортируйте его по росту (в порядке убывания роста).
возьмите первые пять записей о юношах.

если будут проблемы - пишите сюда, в тему, разберём..

задача про девушек - это вообще элементарщина:
Код:
for i:=1 to N {количество записей в массиве} do
    if (a[i].pol = female) and
         (a[i].h<100) then
      WriteLn(a[i].nm:40,' | ',a[i].v:3);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.05.2011, 14:59   #3
mexx1337
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 22
По умолчанию

вот сделал немного легче...как исправить ,чтобы корректно работало :
1.
Код:
program m19z1;
var a:array[1..100] of record
s:string[10];
p:char;
r,v:integer;
end;
i,N:integer;
f:text;
j,max:integer;
begin
n:=1;
assign(f,'lol.txt');
reset(f);
for i:=1 to N do
with a[i] do readln(f,s,p,r,v);
close(f);
max:=0;
for i:=1 to n do
with a[i] do if r>max then max:=r;
j:=0;
for i:=1 to n do begin
with a[i] do if r=max then begin inc(j);
writeln(s);
end;
if j>=5 then break;
end;
readln;
end.

2.
Код:
program m19z2;
var a:array[1..100] of record 
s:string[10];
p:char;
r,v:integer;
end;
i,N:integer;
f:text;
begin
n:=1;
assign(f,'lol.txt');
reset(f);
for i:=1 to N do 
with a[i] do readln(f,s,p,r,v);
close(f);
for i:=1 to N do
with a[i] do
if (v<r-100) and (p='J') then writeln(s) else writeln('HET');
readln;
end.
mexx1337 вне форума Ответить с цитированием
Старый 20.05.2011, 05:41   #4
mexx1337
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 22
По умолчанию

upupup
help me
mexx1337 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записи (record) mexx1337 Паскаль, Turbo Pascal, PascalABC.NET 1 12.05.2011 23:43
В чём различие записей Record от Packed Record? Terran Общие вопросы Delphi 7 08.06.2010 17:14
Record / Packed Record Alex Cones Общие вопросы Delphi 7 11.11.2009 10:43
Сложная структура записи (record+array) Alex Cones Общие вопросы Delphi 20 20.10.2009 19:10
Внести в задачу пару условий,пожалуйста помогите(Pascal-record)тип записи... Andrux Помощь студентам 2 15.02.2009 17:51