1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
сохранение файла, каким образом это можно сделать для етой проги???
ХМ, люди, помогите все получившиеся данные записать в файл:
program control; uses crt; type spisok=record full:record fam:string[40]; end; mesto:record cex,tab:integer; end; razr:record razrad:byte; end; zarp:record stav,chas,zar:byte; end; vic:record nalog,prof,pens:byte; end; kon:record vidaca:real; end;end; mas=array[1..30] of spisok; procedure vvod(var pr:byte); const enter=#13; esc=#27; var f:file of spisok; a:spisok; n:byte;ch:char; begin assign(f,'d:\jj'); rewrite(f); repeat window(1,1,80,25);textbackground(3);clrscr; window(20,2,60,3);textbackground(5);clrscr;gotoxy(8,1);textcolor(15); writeln('Vvedite familiu iniciali'); window(30,5,50,5);textbackground(5);clrscr;gotoxy(6,1);readln(a.full.fam);gotoxy(6,1);write(a.full.fam); window(20,7,60,8);textbackground(5);clrscr;gotoxy(4,1);textcolor(15); writeln('Vvedite nomer ceha i tabelniy nomer'); window(20,10,32,10);textbackground(5);clrscr;gotoxy(6,1);readln(a.mesto.cex);gotoxy(6,1);write(a.mesto.cex); window(48,10,60,10);textbackground(5);clrscr;gotoxy(6,1);readln(a.mesto.tab);gotoxy(6,1);write(a.mesto.tab); window(20,12,60,13);textbackground(5);clrscr;gotoxy(13,1);textcolor(15); writeln('Vvedite razryad'); window(35,15,45,15);textbackground(5);clrscr;gotoxy(6,1);readln(a.razr.razrad);gotoxy(6,1);write(a.razr.razrad); window(15,17,65,18);textbackground(5);clrscr;gotoxy(1,1);textcolor(15); writeln('Vvedite razmer stavki za chas i kol-vo chasov(grn)'); window(17,20,30,20);textbackground(5);clrscr;gotoxy(5,1);readln(a.zarp.stav);gotoxy(5,1);write(a.zarp.stav); window(49,20,63,20);textbackground(5);clrscr;gotoxy(6,1);readln(a.zarp.chas);gotoxy(6,1);write(a.zarp.chas); a.zarp.zar:=a.zarp.stav*a.zarp.chas; window(9,22,71,23);textbackground(5);clrscr;gotoxy(2,1);textcolor(15); writeln('Vvedite razmer naloga,prof. vznosov,pensionix otchisleniy(%)'); window(10,25,20,25);textbackground(5);clrscr;gotoxy(5,1);readln(a.vic.nalog);gotoxy(5,1);write(a.vic.nalog); window(35,25,45,25);textbackground(5);clrscr;gotoxy(5,1);readln(a.vic.prof);gotoxy(5,1);write(a.vic.prof); window(60,25,70,25);textbackground(5);clrscr;gotoxy(5,1);readln(a.vic.pens);gotoxy(5,1);write(a.vic.pens); a.kon.vidaca:=a.zarp.zar-(a.zarp.zar*a.vic.nalog*0.01)-(a.zarp.zar*a.vic.prof*0.01)-(a.zarp.zar*a.vic.pens*0.01); write(f,a);pr:=1; window(20,2,60,3);textbackground(red);clrscr; gotoxy(2,1);textcolor(0+16); writeln(' Dlya prodolzeniya vvoda nazmite Enter'); write(' Dlya vixoda nazmite Esc '); ch:=readkey;window(1,1,80,25);textbackground(3);clrscr; until (ch<>#13) or (ch=#27); close(f);end;
procedure vvod_iz(var n:byte;var b:mas); var f:file of spisok; i:byte; begin assign(f,'d:\jj'); reset(f); n:=filesize(f); for i:=1 to n do read(f,b[i]); close(f);writeln;write('Kol=',n); end;
procedure nomer(b:mas;n:byte;var c:mas;var k:byte); var i:byte; f:file of spisok; begin assign(f,'d:\jj'); reset(f);k:=0; for i:=1 to n do begin read(f,b[i]); if b[i].razr.razrad>4 then begin k:=k+1; c[k]:=b[i];end;end;close(f); end; procedure cten(pr:byte); const esc=#27; var ch:char;n:integer; begin repeat if pr<>1 then begin window(1,1,80,25);textbackground(3);clrscr; window(25,3,55,5);textbackground(red);clrscr;textcolor(14+16);gotoxy(2,2); writeln(' Vvedite informaciyu');ch:=readkey; window(1,1,80,25);textbackground(3);clrscr;end else begin window(1,1,80,25);textbackground(3);clrscr; window(25,3,55,5);textbackground(red);clrscr;textcolor(14+16);gotoxy(2,2); writeln('Poisk zavershen, nazmite Esc');ch:=readkey; window(1,1,80,25);textbackground(3);clrscr;end; until ch=esc;end; procedure vivod(c:mas;k:byte); const esc=#27; var i:byte;ch:char; begin repeat window(1,1,80,25);textbackground(0);clrscr;textcolor(2); for i:=1 to k do begin writeln('Familia'); writeln(c[i].full.fam); writeln('ceh i tabelniy nomer'); write('ceh ',c[i].mesto.cex);writeln(' tab. nomer',c[i].mesto.tab); writeln(' Razryad '); writeln(c[i].razr.razrad); writeln('Chistaya zarplata'); writeln(c[i].zarp.zar,'grn'); writeln('Zarplata'); writeln(c[i].kon.vidaca:6:2,'grn');end; ch:=readkey; window(1,1,80,25);textbackground(3);clrscr; until ch=esc end; const enter=#13;esc=#27;up=#72;down=#80; punkt:array[1..4] of string=(' Nachat vvod', ' Poisk rabochix', ' Vivod rezultatov poiska', ' Vihod'); var a,d:mas;m,l,i,k:byte; nomd1:integer; pm:integer; c:char; begin window(1,1,80,25); textbackground(3);clrscr; pm:=1; repeat for i:=1 to 4 do begin if i=pm then begin textbackground(5);textcolor(15);end else begin textbackground(11);textcolor(0);end; window(27,4+2*i,55,4+2*i);clrscr; write(punkt[i]);end; c:=readkey; case c of up:if pm=1 then pm:=4 else pm:=pm-1; down:if pm=4 then pm:=1 else pm:=pm+1; enter:case pm of 1:begin vvod(k); end; 2:begin vvod_iz(m,a); nomer(a,m,d,l);cten(k); end; 3:begin vivod(d,l);end; 4:begin exit end; end;end;until c=esc; end.
вот условие: Записи о работающих с почасовой формой оплаты содержат номер цеха, табельный номер, фамилию и инициалы, размер ставки за час, количество отработанных часов, сумму зарплаты (рассчитывается в программе), процент налога(13), размер налога, процент профессиональных взносов(1), размер профессиональных взносов, процент пенсионных отчислений(1), размер пенсионных отчислений, сумму к оплате (рассчитывается в программе). Составить список рабочих с разрядом выше четвертого и определить сумму их зарплаты.
и каким образом необходимо заполнять данными исходный файл jj?
p.s. подскажите, пожалуйста
Сообщение отредактировано: NiMfetKa - 30.12.2008 1:59
получившиеся данные надо записать в файл, но когда записываем, то видно лиш фамилию, а там, где числа - там все закодировано...
не закодировано, а просто числа в машинном представлении, а не в виде текста. Если тебе нужно, чтобы этот файл было возможно читать в текстовом редакторе, то нужно во-первых описать его иначе (не как file of spisok, а как text), а во-вторых вывод (и ввод последующий) переделать. Надо будет сделать вывод отдельно для каждого параметра. Морока та еще.. Тебе оно точно надо? Насколько я понял задачу, чтение файла вне программы предусматривать необязательно.
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой