В анкетах сотрудников некоторого учреждения имеются следующие сведения: фамилия, имя, отчество,год рождения, должность(мастер, инженер, рабочий), стаж, образование. Вывести фамилии, имена и отчества мастеров с высшим образованием и вычислить их средний стаж.
Ввод файла нужен из блокнота:
Ivanov Igor Bor 1970 master 20 vishee
Petrov Sergey Ser 1966 master 3 vishee
Но чтобы я не вводил, результат одинаковый: Нет мастеров с высшим образованием.
В чем ошибка?
Вот программа:
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type sved=record {zapis}
fam:string[10]; {polia zapisi}
im:string[10];
ot:string[10];
god:word;
dol:string[10];
staj:real;
obr:string[10];
end;
var b:sved; {peremen tipa zapis}
k:integer; {kol}
sr:real; {sred staj }
f:file of sved; {tipizip file }
imf:string[25]; {imia file}
begin {glav progr}
writeln('Vvedite imia file');
readln(imf); {vvod imia file}
assignfile(f,imf); {svias fil peremen s imen file}
{$I-}
reset(f);
{$I+}
if ioresult=2 then {result prover suchestv file}
writeln('File net')
else
begin
k:=0;
sr:=0;
while not eof (f) do {poka net konca file}
begin
read (f,b); {chiraem zapis is file}
with b do
begin
if (dol='master') and (obr='vishee') then {prover uslov}
begin
k:=k+1; {kol udovl uslov}
sr:=sr+staj; {summ staj udovl uslov}
Writeln(fam:10,im:10,ot:10); {vivod udovl uslov}
end;
end;
end;
if k=0 then
writeln('Net masterov s vishim obrazov')
else
begin
writeln('Kol-vo masterov s vishim obrazov=',k);
sr:=sr/k; {sred staj udovl uslov}
writeln('Sred staj masterov s vishim obrazov=',sr:6:2);
end;
end;
closefile(f);
readln;
end.
Админ: Пользуемся тегами для оформления кода!