Консультация № 138078
27.05.2008, 14:01
0.00 руб.
0 1 1
В текстовом файле храниться список служащих. Для каждого указаны фамилия, имя, название занимаемой должности,год поступления на работу и оклад.
Написать программу,выполняющую:
- Вывод на экран информацию о сотрудниках,оклад которых не превышает 2000рублей;
- Вывод на экран информацию о сотрудниках,занимаемых должность,вводимую с клавиатуры.

Обсуждение

давно
Профессор
401888
1232
27.05.2008, 15:53
общий
это ответ
Здравствуйте, Пухов Никита Евгеньевич!
Решение задачи в приложении. Не забудьте создать текстовый файл, в котором в строку через пробел запишите данные точно, как в условии. Каждого служащего с новой строки без отступа. Пишите в файле английскими буквами, иначе программа ничего, кроме чисел не прочитает.

Приложение:
uses crt;var f:text; {текстовый файл} s,s1:string;{основная и вспомогательная строки} dlz:string; {вводимая с клавиатуры должность} i,k:byte; c:integer; okl:word; {оклад}beginclrscr;assign(f,‘spisok.txt‘);{связываем переменную f с именем файла}reset(f); {открываем его для чтения}writeln(‘Oklad<2000:‘);writeln;k:=0;while not eof(f) do begin readln(f,s); {считываем очередную строку} s1:=s; {запоминаем ее} while pos(‘ ‘,s)>0 do delete(s,1,pos(‘ ‘,s)); {удаляем из строки все, кроме последнего слова(оклад)} val(s,okl,c); {преобразуем строку в число} if okl<2000 then begin k:=k+1; {считаем строку} writeln(s1); {выводим запомненную строку на экран} end; end;if k=0 then writeln(‘Takih net!‘); {если к=0, выводим сообщение}close(f); {закрываем файл}reset(f); {снова открываем}writeln;write(‘Dolznost: ‘);readln(dlz);{}writeln;k:=0;while not eof(f) do begin readln(f,s); s1:=s; delete(s,1,pos(‘ ‘,s)); {удаляем первые два слова} delete(s,1,pos(‘ ‘,s));{если введенная должность = третьему слову, то считаем и выводим} if dlz=copy(s,1,pos(‘ ‘,s)-1) then begin k:=k+1; writeln(s1); end; end;if k=0 then writeln(‘Takogo net!‘);readln;close(f);end.
Форма ответа