- •Министерство образования российской федерации
- •Var X,y: real;
- •Var X,y: real;
- •Var t:integer; p:char;
- •0..17: Write('детство');
- •20..30: Write('молодость');
- •31..54: Write('зрелость');
- •Var s:char;
- • Оператор цикла с предусловием имеет вид
- •Program p5_8;
- •Var y,X,z: integer;
- •Var I,j:integer; X,y,r: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,n,m: integer;
- •X:array [1..10] of integer;
- •Var n,I,j,st,kl,k:integer;
- •Var st: char; sm: string[32]; ss: string;
- •Var n:integer;y:string;
- •Var k,I:integer; X: string;
- •Var X:string[1]; d:string; I:integer;
- •Var X:vr; y:array [1..5] of vr;
- •Ввод и вывод информации для типизированных и текстовых файлов производится процедурами:
- •X,y:real;
- •X,y:real; I:integer;
- •Im: string[4];
- •I: integer;
- •Im: string[4];
- •I: integer;
- •Im:string[4]
- •Im:string;
- •Var d,I,m,rx,ry:integer;
- •Var d,m,rx,ry:integer;
- •X,y,xn,xk,ymin,ymax,dx:real;
- •Ответы на тестовые задания, имеющиеся в тексте пособия:
- •& Тесты по курсу
- •Тираж: 150. Заказ №
X,y:real;
begin
{логический файл f связывается с физическим func.txt}
assign(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 9_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.
Пример 9-2. Посчитать зарплату рабочих. Сведения об их месячной выработке находятся в типизированном (типа record) файле VIR: табельный номер 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 реализует только два действия: вывод всей ведомости к оплате или вывод сведений только об одном работнике по запросу (по имени).
файл |
Vir |
|
|
|
файл |
Ved |
|
|
tab |
im |
Tarif |
dn |
|
im |
zar |
nalog |
vid |
таб |
имя |
тариф |
дни |
|
имя |
зарплата |
налог |
выдать |
35 |
Иван |
100 |
20 |
|
Иван |
2000 |
|
|
48 |
Петр |
150 |
30 |
|
Петр |
4500 |
|
|
15 |
Олег |
200 |
10 |
|
Олег |
3000 |
|
|
PROGRAM Vvod; {--ввод данных и сохранение результата----}
uses crt; {к примеру 9-2}
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; {---------вывод данных по запросу-----------}
uses crt; {к примеру 9-2}
const n=3;
label m;
type
vd=record {объявление записи для Ведомости}