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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2010, 19:28   #1
prem1era
Пользователь
 
Аватар для prem1era
 
Регистрация: 16.11.2009
Сообщений: 33
По умолчанию Работа с файлами

Помогите кто может у меня задание было составить 3 таблицы 1)сформировать и распечатать таблицы для рабочих цеха-массив записей,2)отсортировать массив по дате изготовления ,3)определить кол-во изготовленых деталей в каждом месяце .С которым я справился а теперь эту программу надо переделать что-бы она работала не с записями а файлами:
program practika3;
uses crt;
type
sp1=record
mes:string[15];
wifr:integer;
koll:integer;
end;
spisok=record
fio:string[30];
end;
date=record
den:byte;
mes:integer;
god:integer;
end;
var
sot:array[1..12] of date;
sor : array [1..20] of spisok;
me : array [1..12] of sp1;
o:boolean;
d:spisok;
y:sp1;
wate;
mes1:integer;
ito,s:real;
i,n,k,f,t,j:byte;
pr:real;
begin
clrscr;
me[1].mes:='январь';
me[2].mes:='февраль';
me[3].mes:='март';
me[4].mes:='апрель';
me[5].mes:='май';
me[6].mes:='июнь';
me[7].mes:='июль';
me[8].mes:='август';
me[9].mes:='сентябрь';
me[10].mes:='октябрь';
me[11].mes:='ноябрь';
me[12].mes:='декабрь';
repeat
write('введите количество сотрудников:');
readln(n);
o:=(n>0);
if o=false then writeln('неверное количество сторудников!');
until o=true;
for i:=1 to n do
begin
writeln('введите информацию о',i,'-ом сотруднике');
write('vvedite Fio:');
readln(sor[i].fio);
repeat
writeln('введите дату изготовления детали');
write('введите день:');
readln(sot[i].den);
o:=(sot[i].den>0) and (sot[i].den<=31);
if o=false then writeln('неверный день!');
until o=true;
repeat
write('введите месяц:');
readln(sot[i].mes);
o:=( sot[i].mes>0 ) and (sot[i].mes<=12) ;
if o=false then writeln('неверный месяц');
until o=true;
write('введите год:');
readln(sot[i].god);
repeat
write('введите шифр:');
readln(me[i].wifr);
o:=me[i].wifr>0;
if o=false then writeln('неверный шифр!');
until o=true;
end;
clrscr;
writeln('┌───────────────────────── ───────┬────┬─────────────┐');
writeln('│ Фио │шифр│дата │ ');
writeln('├──┬────────────────────── ───────┼────┼─────────────┤ ');
for i:=1 to n do
writeln('│',i:2,'│',sor[i].fio:20,' │',me[i].wifr:4,'│',sot[i].den:5,sot[i].mes:3,' ',sot[i].god:2,'│');
writeln('└──┴────────────────────── ───────┴────┴─────────────┘');
k:=1;
repeat
i:=1;
repeat
if sot[i].mes > sot[i+1].mes then
begin
d:=sor[i];
sor[i]:=sor[i+1];
sor[i+1]:=d;
w:= sot[i];
sot[i]:=sot[i+1] ;
sot[i+1]:=w;
f:=1;
end;
i:=i+1;
until i>n-k;
k:=k+1;
o:=(k<=n-1) and (f=1);
until o=false;
for i:=1 to 12 do
me[i].koll:=0;
for j:=1 to n do
begin
mes1:=sot[j].mes;
me[mes1].koll:=me[mes1].koll+1;
end;
readkey;
writeln('┌───────────────────────── ──────┬────┬─────────────┐ ');
writeln('│ ФИО │шифр│ дата │ ');
writeln('├──┬────────────────────── ──────┼────┼─────────────┤ ');
for i:=1 to n do
writeln('│',i:2,'│',sor[i].fio:20,' │',me[i].wifr:4,'│',sot[i].den:5,sot[i].mes:3,' ',sot[i].god:2,'│');
writeln('└──┴────────────────────── ──────┴────┴─────────────┘');
readkey;
writeln('┌──────────────┬────────── ───┬───────────┐');
writeln('│месяц рождения│количество │% к итого │');
writeln('│ │деталий │ │');
writeln('├──────────────┼────────── ───┼───────────┤');
for i:=1 to 12 do
begin
pr:=me[i].koll/n*100;
s:=s+pr;
if (me[i].koll<>0) then
begin
writeln('│',me[i].mes:14,'│',me[i].koll:13,'│',pr:11:0,'│');
writeln('│──────────────┼────────── ───┼───────────│');
end;
readkey;
end;
for i:=1 to n do
ito:=me[i].koll+ito;
writeln('│ итого │ │ │' );
writeln( '│ │ ',ito:11:0,'│' ,s:11:0 , '│');
writeln('└──────────────┴────────── ───┴───────────┘');
end.
Сказали чтобы было 2 файла входной куда вводиш все данные и выходной.
я незнау что с этим делать
prem1era вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлами basav1k Помощь студентам 2 19.05.2010 19:17
Работа с файлами в С++ ai\ekcah^p Помощь студентам 2 21.06.2009 16:16
Работа с файлами Technolog Microsoft Office Excel 1 27.03.2009 10:50
Работа с файлами Joxter Помощь студентам 4 08.10.2008 01:17