- •1. Введение
- •2. Простейшие операторы языка
- •3. Организация ветвлений
- •4. Логические функции
- •5. Организация циклов
- •Var X,I: integer;
- •Var X,y,I: integer;
- •Операторы итерационных циклов. Их несколько типов. Оператор цикла с предусловием имеет вид
- •С помощью этого оператора гораздо проще решить пример 5-2 (program p5_2n). Оператор цикла с постусловием:
- •6. Массивы
- •Var X,z: array [1..8] of real;
- •Var I,j: integer;
- •Var n,I,j:integer; s,y,sr:real; X: array [1..10,1..5] of real;
- •Var I,j,m,n: integer; X:array [1..10] of integer;
- •Var n,I,j,st,kl,k:integer; a:array [1..10,1..10] of integer;
- •7. Символьные данные
- •Var X:string[1]; d:string; I:integer;
- •Var X,n1,n2,k:integer; st,pr:string;
- •8. Графика
- •9. Подпрограммы
- •10. Записи
- •Var X:vr; y:array [1..5] of vr;
- •11. Файлы
- •Ввод и вывод информации для типизированных и текстовых файлов производится процедурами:
- •X,y:real;
- •X,y:real; I:integer;
- •Im: string[4];
- •I: integer;
- •Im: string[4];
- •I: integer;
X,y:real;
begin
assign(f,'func.txt'); {логический файл f связывается с физическим func.txt}
rewrite(f); {файл f открывается для записи в него данных}
x:=0;
while x<=4 do begin {вычисление в цикле функции}
y:=x/2; x:=x+0.5; writeln(f,x:3:1,y:4:1); {запись в файл переменных х и у}
end;
close(f); {закрытие файла}
end.
program 11_1b;{чтение записанных ранее данных из файла}
var f:text; {объявлен текстовый файл f}
X,y:real; I:integer;
begin
assign(f,'func.txt');
reset(f); {открытие файла для чтения}
for i:=1 to 9 do begin
read(f,y,x); {чтение из файла в память}
writeln('y=',y:3:1,' x=',x:4:1); {вывод на монитор, считанной из файла информации}
end;
close (f); {закрытие файла}
end.
б). Cоставить программу чтения из файла func.txt записанной ранее в него информации.
Пример 11-2. Посчитать зарплату рабочих. Сведения об их месячной выработке находятся в типизированном (типа record) файле VIR (рис. 11.1).
Он содержит поля: табельный номер tab, имя im (длиной до 4-х знаков), дневной тариф tarif работника, число отработанных им за месяц дней dn. Эти данные вводятся оператором. На основании их компьютером подсчитывается и заполняется файл ведомости VED, содержащий имя im, зарплату zar (=tarif*dn), налог nalog (=13%*zar) и сумму к выдаче vid (=zar-nalog). Далее содержимое файла выводится с подсчетом итоговых сумм. Здесь придется написать две программы. Программой Vvod выполняется следующая последовательность действий: 1). Заполняется файл Vir. 2). Считывается содержимое Vir в массив V. 3). Выполняются все расчеты и заносятся в массив R. 4). Данные из R сохраняются в файле Ved. Программа Vivod реализует только два действия: вывод всей ведомости к оплате или вывод сведений только об одном работнике по запросу (по имени).
program Vvod; {ввод данных и сохранение результата к примеру 11-2}
uses crt;
const n=3;
type vr=record {объявление записи для Выработки}
tab: integer; {табель}
im: string[4]; {имя}
tarif, dn: real;
end;
vd=record {объявление записи для Ведомости}
Im: string[4];
zar, nalog, vid: real;
end;
var vir: file of vr; {объявление файла Выработки}
ved: file of vd; {объявление файла Ведомости}
v: array[1..n] of vr; {массив V для ввода}
r: array[1..n] of vd; {массив R для расчета}
I: integer;
begin
clrscr;
assign(vir,'vir'); assign(ved,'ved'); {связывание логического и физического файлов}
rewrite(vir); {открытие файла Vir для записи}
writeln('введите!'); writeln('табель, имя, тариф, дни');
for i:=1 to n do begin
readln(v[i].tab); readln(v[i].im); readln(v[i].tarif); readln(v[i].dn);
writeln(v[i].tab:2, v[i].im:6, v[i].tarif:3:0, v[i].dn:4:0);
write(vir,v[i]); {занесение в файл Vir очередной записи}
end;
reset(vir); {открытие файла Vir для чтения}
rewrite(ved); {открытие файла Ved для записи}
for i:=1 to n do begin {вычисления}
read(vir,v[i]); {чтение записи из файла Vir}
r[i].im:=v[i].im; r[i].zar:=v[i].tarif*v[i].dn; r[i].nalog:=0.13*r[i].zar; r[i].vid:=r[i].zar-r[i].nalog;
write(ved,r[i]); {занесение записи в файл Ved}
end;
reset(ved); {открытие файла Ved для чтения}
for i:=1 to n do begin {печать}
read(ved,r[i]); {чтение записи из файла Ved}
writeln(r[i].im:4, r[i].zar:5:0, r[i].nalog:7:2, r[i].vid:8:2);
end;
close(ved);close(vir); {закрытие файлов}
end.
program Vivod; {вывод данных по запросу к примеру 11-2}
uses crt;
const n=3;
label m;
type
vd=record {объявление записи для Ведомости}