Показать сообщение отдельно
Старый 22.06.2009, 12:30   #123 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Бракс Посмотреть сообщение
2)Среди работников данного предприятия найти тех, чья заработная плата за месяц ниже средней по предприятию, а также распечатать список тех, кто проработал на предприятии более 10 лет, с указанием их фамилии, зарплаты, стажа работы и должности.

Мало информации. Нужна исходная база данных по работникам предприятия. В каком она виде? Таблица? Массив записей? Или ее нужно тоже формировать самостоятельно?

Самому нужнно вводить зароботную плату и через эти данные нужно найти среднию!!!
вот я начал был решать и неполучаеться и одного условия нет!!! вот примерно псмотрите!!!
program vtoroiBlok;
const n=10;
type pa6otnik=record
famili9:string[20];
zarplata:integer;
cTa>|<_pabotb|:integer;
DoJI>|<Hoctb:string[10];
end;
mas=array[1..n] of pa6otnik;
var
v:mas;
i,k,nn:integer;
{s:string;}
begin
write('Vvedute kol=');
readln(nn);
for i:=1 to nn do
begin
write('vvedite famili9 ',i,' pa6otnik='); readln(v[i].famili9);
write('vvedite zarplata ',i,' pa6otnik='); readln(v[i].zarplata);
write('vvedite cTa>|<_pabotb| ',i,' pa6otnik
='); readln(v[i].cTa>|<_pabotb|);
write('vvedite DoJI>|<Hoctb ',i,' pa6otnik='); readln(v[i].DoJI>|<Hoctb);
end;
write('kotorb|e pabotali bolee 10 let ');
{readln(s); }
k:=0;
for i:=1 to nn do
if v[i].cTa>|<_pabotb|='10' then begin with v[i] do begin
write(i,' ',famili9,' ');
writeln(zarplata,' ');
writeln(cTa>|<_pabotb|,' ');
writeln(DoJI>|<Hoctb,' ');
end;
k:=k+1; end;
write('Kol-vo pabotnikov ctaj rabotb| bolee 10 let =',k);
readln;
end.
Так, ну сразу видно - в 10-й снизу строке 2 ошибки:
1. Почему условие равенства? Надо ">".
2. Стаж работы вы задали, как INTEGER-тип, а не STRING, а поэтому брать 10 в кавычки - ошибка.
Отсюда условие должно быть таким:
if v[i].cTa>|<_pabotb|>10 then
Но, между прочим, всё равно будет сообщение об ошибке! Потому что у Вас, скажем так, весьма своеобразные идентификаторы. Ну как, скажите, бедному компьютеру разобраться, какой из знаков "<", ">" относится к условию, а какой описывает русскую букву "ж"? Поэтому уберите-ка все значки типа "<", ">", "|" из идентификаторов переменных и постарайтесь обойтись обычным транслитом. Выпендреж до добра не доведет.
В остальном вроде всё верно.
Дальше нужно прокрутить еще пару аналогичных циклов. Первый - чтобы определить среднюю зарплату, второй - чтобы выявить низкооплачиваемых работников. Нужно будет ввести переменную средней зарплаты.
Vladimir_S вне форума  
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070