Помощь - Поиск - Пользователи - Календарь
Полная версия: сохранение файла
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
NiMfetKa
ХМ, люди, помогите все получившиеся данные записать в файл:
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. подскажите, пожалуйста
Lapp
Цитата(NiMfetKa @ 30.12.2008 1:28) *
ХМ, люди, помогите все получившиеся данные записать в файл:
и каким образом необходимо заполнять данными исходный файл jj?

p.s. подскажите, пожалуйста

Непонятно, что ты хочешь. Файл jj записывается вроде. Скажи точнее, и желательно что-то одно, а не все сразу.
Программа твоя?
NiMfetKa
получившиеся данные надо записать в файл, но когда записываем, то видно лиш фамилию, а там, где числа - там все закодировано...
Lapp
Цитата(NiMfetKa @ 30.12.2008 2:57) *
получившиеся данные надо записать в файл, но когда записываем, то видно лиш фамилию, а там, где числа - там все закодировано...
smile.gif не закодировано, а просто числа в машинном представлении, а не в виде текста. Если тебе нужно, чтобы этот файл было возможно читать в текстовом редакторе, то нужно во-первых описать его иначе (не как file of spisok, а как text), а во-вторых вывод (и ввод последующий) переделать. Надо будет сделать вывод отдельно для каждого параметра. Морока та еще.. Тебе оно точно надо? Насколько я понял задачу, чтение файла вне программы предусматривать необязательно.
NiMfetKa
пасибки, Lapp, за беспокойство)) уже все переделала(просто чтение результируещего файла было требование препода) и сдала!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.