|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
18.05.2011, 22:29 | #1 (permalink) |
Новичок
Регистрация: 13.05.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите найти ошибку
Не могу отсортировать min количество кв.метров на человека. Что-то с выводом.Спасибо! program sp; uses crt; const n=3; type spisok=record fio:string; kolchel:integer; kolkvmetrov:real; metrnachel:real; end; var i,j,K,num:integer; min:real; rabotnik:array[1..n] of spisok; begin clrscr; for i:=1 to n do with rabotnik[i] do begin writeln('vvedite svedenia o rabotnike'); writeln('vvedite fam, name, otch'); readln(fio); writeln('vvedite kolichestvo chel'); readln(kolchel); writeln('vvedite kolichestvo kvad.metrov'); readln(kolkvmetrov); metrnachel:=kolkvmetrov/kolchel; end; write('K:='); readln(K); writeln('spisok rabotnikov:'); for i:=1 to K do begin min:=rabotnik[i].metrnachel; for j:=1 to n do begin if rabotnik[j].metrnachel>=min then begin min:=rabotnik[j].metrnachel; num:=j; write(rabotnik[j].fio,' '); write('kolichestvo kvadrat. metrov na 1 cheloveka: '); writeln(min:5:1); end; num:=j; end; end; rabotnik[i].metrnachel:=1.7e38; readln; end. |
18.05.2011, 22:29 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ваша проблема будет решаться значительно легче, если ознакомиться с похожими темами Помогите найти ошибку в программе Помогите найти ошибку, Pascal abc Задача на массивы, Pascal. Помогите найти ошибку |
18.05.2011, 23:03 | #2 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Не очень понял, зачем было новую тему открывать, если есть эта:
Помогите отсортировать. Записи , ну да ладно. Здесь Вам надо просто упорядочить по возрастанию обеспеченностей методом "пузырька" массив записей и внести в список претендентов первые К. P.S. А вообще-то неплохо люди обеспечены, если у кого-то приходится сколько-то там квадратных мегапарсеков на человека. Цитата:
|
|
20.05.2011, 21:34 | #5 (permalink) |
Новичок
Регистрация: 13.05.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Почему-то не меняет фамилии местами и не всегда выводит все min.
program sp; uses crt; const n=3; type spisok=record fio:string; kolchel:integer; kolkvmetrov:real; metrnachel:real; end; var i,j,K,num:integer; min:real; rabotnik:array[1..n] of spisok; begin clrscr; for i:=1 to n do with rabotnik[i] do begin writeln('vvedite svedenia o rabotnike'); writeln('vvedite fam, name, otch'); readln(fio); writeln('vvedite kolichestvo chel'); readln(kolchel); writeln('vvedite kolichestvo kvad.metrov'); readln(kolkvmetrov); metrnachel:=kolkvmetrov/kolchel; end; write('K:='); readln(K); writeln('spisok rabotnikov:'); for i:=1 to K-1 do begin min:=rabotnik[i].metrnachel; for j:=1 to n do if rabotnik[i].metrnachel>rabotnik[j].metrnachel then begin min:=rabotnik[i].metrnachel; rabotnik[i].metrnachel:=rabotnik[j].metrnachel; rabotnik[j].metrnachel:=min; end; write(rabotnik[i].fio,' '); write('kolichestvo kvadrat. metrov na 1 cheloveka: '); writeln(min:5:1); end; readln; end. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
21.05.2011, 19:34 | #6 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
program sp; uses crt; const n=3; type spisok=record fio:string; kolchel:integer; kolkvmetrov:real; metrnachel:real; end; var i,j,K:integer; rabotnik:array[1..n] of spisok; rab:spisok; begin clrscr; for i:=1 to n do with rabotnik[i] do begin writeln('vvedite svedenia o rabotnike'); writeln('vvedite fam, name, otch'); readln(fio); writeln('vvedite kolichestvo chel'); readln(kolchel); writeln('vvedite kolichestvo kvad.metrov'); readln(kolkvmetrov); metrnachel:=kolkvmetrov/kolchel; end; write('Kolichestvo kvartir= '); readln(K); for i:=1 to n do for j:=n downto i+1 do if rabotnik[j-1].metrnachel>rabotnik[j].metrnachel then begin rab:=rabotnik[j-1]; rabotnik[j-1]:=rabotnik[j]; rabotnik[j]:=rab; end; clrscr; writeln('Spisok rabotnikov:'); writeln; writeln('Pretendenty:'); for i:=1 to K do with rabotnik[i] do begin write(fio); for j:=Length(fio)+1 to 40 do write(' '); writeln(kolchel:3,kolkvmetrov:7:1,metrnachel:7:1); end; writeln; writeln('Prochie:'); for i:=K+1 to n do with rabotnik[i] do begin write(fio); for j:=Length(fio)+1 to 40 do write(' '); writeln(kolchel:3,kolkvmetrov:7:1,metrnachel:7:1); end; readln; end. |
|
23.05.2011, 18:20 | #7 (permalink) |
Новичок
Регистрация: 13.05.2011
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо!!!
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|