Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Записи, Записи в ПАСКАЛЕ! 
:(
    Опции темы
Ira
Дата 7.12.2003, 16:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Помогите решыть задачу:Задание:
Составить програму упорядоченея списка бригады в порядке убывания производительности(ведомость сделать в файле);
Вот что я сделал:
Program Zapis;
Uses
Crt;
Const
N = 3;
HourCnt = 8;
WaitKey = True;
FileName = 'blank.bin';
Type
Blank = record
NN:Integer; {?®¬Ґа}
FIO:string[15]; {”?Ћ}
HCnt:Real; {Љ®«ЁзҐбвў® з б®ў ў ᬥ­г}
VP:array[1..8] of Real; {Љ®«-ў® Їа®¤гЄжЁЁ § !Є ¦¤л©! з б ўаҐ¬Ґ­Ё??}
DownTime:Real; {‚аҐ¬п Їа®бв®п}
Production:real; {?а®Ё§ў®¤ЁвҐ«м­®бвм ¤Ґв «Ґ© ў з б}
end;

Var
x:array[1..N] of Blank;
i,j:integer;
F:text;

Procedure InitData;
begin
assign(f,'c:\test.txt');
rewrite(f);
writeln('‘®§¤ Ґ¬ ‚Ґ¤®¬®бвм');
For i:=1 to n do
begin
x[i].nn:=1;
textcolor(3);
write('” ¬Ё«Ёп ?¬п ЋвзҐбвў® : ');
readln(x[i].fio);
writeln(f,x[i].fio);
writeln('Љ®«ЁзҐбвў® з б®ў § ᬥ­г : ');
readln(x[i].hcnt);
writeln(f,x[i].hcnt:4:2);
writeln('‚ЁЇгбЄ Ґ¬ п Їа®¤гЄжлп : ');
for j:=1 to HourCnt do
begin
writeln('§ ',j,' з б :');
readln(x[i].vp[j]);
writeln(f,x[i].vp[j]:4:2);
end;
writeln('‚аҐ¬п Їа®бв®п :');
readln(x[i].downtime);
writeln(f,x[i].downtime:4:2);
x[i].Production:=x[i].vp[HourCnt]/(x[i].HCnt-x[i].DownTime);
writeln('?தгЄжлп :',x[i].production:4:2);
writeln(f,x[i].production:4:22)
end;
close(f);
end;

Procedure ShowData;
begin
ClrScr;
assign(f,'c:\test.txt');
reset(f);
For i:=1 to n do
begin
TextColor(3);
WriteLn('======================================================');
readln(f,x[i].fio);
writeln('”?Ћ : ', x[i].fio);
readln(f,x[i].HCnt);
Writeln('Љ®«ЁзҐбвў® з б®ў § ᬥ­г : ',x[i].HCnt:4:2);
WriteLn('------------------------------------------------------');
for j:=1 to HourCnt do
begin
readln(f,x[i].vp[j]);
Writeln('‡ ',j,' з б®ў : ',x[i].vp[j]:4:2);
end;
readln(f,x[i].DownTime);
writeln('‚аҐ¬п Їа®бв®п : ', x[i].DownTime:4:2);
write('?а®Ё§ў®¤ЁвҐ«м­®бвм ¤Ґв «Ґ© § Ґ¤Ё­Ёж㠢६Ґ­Ё :');
readln(f,x[i].production);
WriteLn(x[i].Production:4:2);
If WaitKey then
begin
WriteLn('? ¦¬ЁвҐ ­ «оЎго Є« ўЁиг...');
ReadKey;
ClrScr;
end;
end;
end;
Как выдать упорядоченый список и какие в етой програме ошыбки?

  Вверх
Pakshin A. S.
  Дата 7.12.2003, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 21
Всего: 61



Первое: если работать с записями, то тогда лучше работать с типизированным файлом:
Код

f: file of Blank;


тогда

процедурку InitData можно переделать:
Код

Procedure InitData;
begin
assign(f,'c:\test.txt');
rewrite(f);
writeln('‘®§¤ Ґ¬ ‚Ґ¤®¬®бвм');
For i:=1 to n do
begin
x[i].nn:=1;
textcolor(3);
write('” ¬Ё«Ёп ?¬п ЋвзҐбвў® : ');
readln(x[i].fio);
writeln('Љ®«ЁзҐбвў® з б®ў § ᬥ­г : ');
readln(x[i].hcnt);
writeln('‚ЁЇгбЄ Ґ¬ п Їа®¤гЄжлп : ');
for j:=1 to HourCnt do
begin
writeln('§ ',j,' з б :');
readln(x[i].vp[j]);
end;
writeln('‚аҐ¬п Їа®бв®п :');
readln(x[i].downtime);
x[i].Production:=x[i].vp[HourCnt]/(x[i].HCnt-x[i].DownTime);
writeln('?தгЄжлп :',x[i].production:4:2);
write(f,x[i])
end;
close(f);
end;


Второе: для начала надо определиться с полем, по которому будет производиться сортировка, а потом уже сортировать

P. S.
[QOUTE]
Как выдать упорядоченый список и какие в етой програме ошыбки?
[/QUOTE]
Опиши, какие ошибки выдаёт программа; это для более быстрого ответа, а то проверять исходник как-то не всем хочется...

Это сообщение отредактировал(а) Pakshin A. S. - 7.12.2003, 21:05
PM   Вверх
Vit
Дата 8.12.2003, 04:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Пользователь вроде Ira, а говорит о себе в мужском роде... Расжалобить аудиторию хотите? Чтобы все бросились помогать бедной студентке, ай-ай, как не стыдно...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Paradox
Дата 8.12.2003, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1135
Регистрация: 18.11.2002
Где: Россия

Репутация: нет
Всего: 1



Vit может он(а) просто букву а не допечатала smile.gif

Это сообщение отредактировал(а) Paradox - 8.12.2003, 13:07


--------------------
---
PM MAIL WWW   Вверх
Unregistered
Дата 8.12.2003, 19:24 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Помогите зделать пожалуста!
  Вверх
p0s0l
Дата 8.12.2003, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Сделал. Изменения коснулись процедуры ShowData (выделено комментариями):
Код
Program Zapis;
Uses
Crt;
Const
N = 3;
HourCnt = 8;
WaitKey = True;
FileName = 'blank.bin';
Type
Blank = record
NN:Integer; {?®¬Ґа}
FIO:string[15]; {”?Ћ}
HCnt:Real; {Љ®«ЁзҐбвў® з б®ў ў ᬥ­г}
VP:array[1..8] of Real; {Љ®«-ў® Їа®¤гЄжЁЁ § !Є ¦¤л©! з б ўаҐ¬Ґ­Ё??}
DownTime:Real; {‚аҐ¬п Їа®бв®п}
Production:real; {?а®Ё§ў®¤ЁвҐ«м­®бвм ¤Ґв «Ґ© ў з б}
end;

Var
x:array[1..N] of Blank;
i,j:integer;
F:text;

Procedure InitData;
begin
assign(f,'c:\test.txt');
rewrite(f);
writeln('‘®§¤ Ґ¬ ‚Ґ¤®¬®бвм');
For i:=1 to n do
begin
x[i].nn:=1;
textcolor(3);
write('” ¬Ё«Ёп ?¬п ЋвзҐбвў® : ');
readln(x[i].fio);
writeln(f,x[i].fio);
writeln('Љ®«ЁзҐбвў® з б®ў § ᬥ­г : ');
readln(x[i].hcnt);
writeln(f,x[i].hcnt:4:2);
writeln('‚ЁЇгбЄ Ґ¬ п Їа®¤гЄжлп : ');
for j:=1 to HourCnt do
begin
writeln('§ ',j,' з б :');
readln(x[i].vp[j]);
x[i].vp[j] := j + random(5);
writeln(f,x[i].vp[j]:4:2);
end;
writeln('‚аҐ¬п Їа®бв®п :');
readln(x[i].downtime);
writeln(f,x[i].downtime:4:2);
x[i].Production:=x[i].vp[HourCnt]/(x[i].HCnt-x[i].DownTime);
writeln('?தгЄжлп :',x[i].production:4:2);
writeln(f,x[i].production:4:22)
end;
close(f);
end;

Procedure ShowData;
var
 j, max : integer;
 tmp : Blank;
begin
ClrScr;
assign(f,'c:\test.txt');
reset(f);
For i:=1 to n do
begin
readln(f,x[i].fio);
readln(f,x[i].HCnt);
for j:=1 to HourCnt do
 readln(f,x[i].vp[j]);
readln(f,x[i].DownTime);
readln(f,x[i].production);
end;
close(f);

{ SORTIROVKA !!! }
for i := 1 to n-1 do
begin
 max := i;
 for j := i+1 to n do
   if x[max].Production < x[j].Production then max := j;
 tmp := x[i];
 x[i] := x[max];
 x[max] := tmp;
end;
{ KONEC SORTIROVKI !!! }

for i := 1 to n do
begin
TextColor(3);
WriteLn('======================================================');
writeln('”?Ћ : ', x[i].fio);
Writeln('Љ®«ЁзҐбвў® з б®ў § ᬥ­г : ',x[i].HCnt:4:2);
WriteLn('------------------------------------------------------');
for j:=1 to HourCnt do
 Writeln('‡ ',j,' з б®ў : ',x[i].vp[j]:4:2);
writeln('‚аҐ¬п Їа®бв®п : ', x[i].DownTime:4:2);
write('?а®Ё§ў®¤ЁвҐ«м­®бвм ¤Ґв «Ґ© § Ґ¤Ё­Ёж㠢६Ґ­Ё :');
WriteLn(x[i].Production:4:2);
If WaitKey then
begin
WriteLn('? ¦¬ЁвҐ ­ «оЎго Є« ўЁиг...');
ReadKey;
ClrScr;
end;
end;
end;

begin
 InitData;
 ShowData;
end.

Если нужно сделать сортировку в другую сторону, то поменяй в строке:
if x[max].Production < x[j].Production then max := j;
знак "<" на ">".



--------------------
С уважением, г-н Посол.
PM   Вверх
Unregistered
Дата 8.12.2003, 23:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо!!!!
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0790 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.