![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() В анкетах сотрудников некоторого учреждения имеются следующие сведения: фамилия, имя, отчество,год рождения, должность(мастер, инженер, рабочий), стаж, образование. Вывести фамилии, имена и отчества мастеров с высшим образованием и вычислить их средний стаж.
Ввод файла нужен из блокнота: 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. Последний раз редактировалось Admin, 16.12.2014 в 20:50. |