Информатика ПРАКТИЧЕСКАЯ РАБОТА № 3
СОСТАВЛЕНИЕ ШТАТНОГО РАСПИСАНИЯ ХОЗРАСЧЕТНОЙ БОЛЬНИЦЫ
Цели работы:
научиться использовать электронные таблицы для автоматизации расчетов;
закрепить приобретенные навыки по заполнению, форматированию и печати таблиц.
Постановка задачи:
Заведующий хозрасчетной больницей должен составить штатное расписание, т.е. определить, сколько сотрудников, на каких должностях и с каким окладом он должен принять на работу. Общин месячный фонд зарплаты составляет $10 000.
Построим модель решения этой задачи.
Поясним, что является исходными данными. Казалось бы, что ничего не дано, кроме общего фонда заработной платы. Однако заведующему больницей известно больше: он знает, что для нормальной работы больницы нужно:
5-7 санитарок;
8-10 медсестер;
10-12 врачей;
1 заведующий аптекой;
3 заведующих отделениями;
1 главный врач;
1 завхоз,
1 заведующий больницей.
На некоторых должностях число людей может меняться. Например, зная, что найти санитарок трудно, руководитель может принять решение сократить число санитарок, чтобы увеличить оклад каждой из них.
Итак, заведующий принимает для себя следующую модель задачи. За основу берется оклад санитарки, а все остальные вычисляются через него: во столько-то раз или на столько-то больше. Говоря математическим языком, каждый оклад является линейной функцией от оклада санитарки:
А • С + В,
где С - оклад санитарки;
А и В - коэффициенты, которые для каждой должности определяются решением совета трудового коллектива.
Допустим, совет решил, что медсестра должна получать в 1,5 раза больше санитарки,
врач - в 3 раза больше санитарки,
заведующий отделением - на 30 $ больше, чем врач заведующий аптекой - в 2 раза больше санитарки, завхоз - на 40 $ больше медсестры,
главный врач - в 4 раза больше санитарки, заведующий больницей - на 20 $ больше главного врача.
Задав количество человек на каждой должности, можно составить уравнение:
N1 *(А1 *C+B1)+N2 * (А2 *C+B2)+...+N8 *(А8 * С+В8)=10000,
Где:
N1 - количество санитарок
N2 - количество медсестер
А1...А8 и В1...В8; и т.д. - коэффициенты для каждой должности.
В этом уравнении нам известны А1...А8 и В1...В8, а не известны С и N1...N8.
Ясно, что решить такое уравнение известными методами не удается, да и единственно верного решения нет. Остается решать уравнение путем подбора.
Взяв первоначально какие-либо приемлемые значения неизвестных, подсчитаем сумму. Если эта сумма равна фонду заработной платы, то вам повезло. Если фонд заработной платы превышен, то можно снизить оклад санитарки, либо отказаться от услуг какого-либо работника и т. д. Проделать такую работу вручную трудно. Но вам электронная таблица.
ХОД РАБОТЫ:
ЗАДАНИЕ 1. Заполните таблицу (см. рис. пример заполнения таблицы).
1.1. Заполните шапку таблицы.
1.2.Отведите для каждой должности одну строку и занесите
название должностей в столбец С.
1.3.В столбцах А и В укажите коэффициенты А и В, соответствующие каждой должности.
1.4.В ячейку НЗ занесите значение заработной платы санитарки 150 и установите для нее формат 0,00 — два знака после
запятой.
ЗАДАНИЕ 2. В столбце D вычислите заработную плату для каждой
должности.
В постановке задачи было объяснено, что заработная плата вычисляется по формуле А*С+В. В нашей таблице коэффициенты А и В находятся в столбцах А и В, а С - зарплата санитарки указана в ячейке НЗ.
Внимание! Столбец D должен заполняться формулами с использованием абсолютной ссылки на ячейку НЗ. Изменение содержимого этой ячейки должно приводить к изменению содержимого всего столбца D. Аналогично в работе №2(1) в задании 3 изменение значения шага во вс таблице приводило к пересчету в основной. В данной задаче удобно использовать еще один абсолютной адресации - именованную ячейку.
Именованная ячейка
В Excel можно присвоить имя любой ячейке или области. Чтобы присвоить имя ячейке, ее необходимо выделить и выполнить команду Вставка – Имя - Присвоить. На экране появится диалоговое окно с полем ввода, где необходимо набрать имя и нажать кнопку <ОК>
<p>program xxx;</p><p> var i, k, d, e, s : integer;</p><p>begin</p><p> k:=0;</p><p> for i:= 10 to 99 do</p><p> begin</p><p> d:= i div 10;</p><p> e:= i mod 10;</p><p> s:=d + e;</p><p> if i mod s = 0 then k:=k+1</p><p> end;</p><p> write ('кол-во чисел которые делятся на сумму своих цифр=', k);</p><p> readln</p><p>end.</p>
Var a1,a2,a3,a4,t1,t2,t3,p,d,vp,b: Integer;
begin
writeln ('программа вычисляет норму для данного ученика');
writeln ('введи массу учебника 1');readln (a1);
writeln ('введи массу учебника 2');readln (a2);
writeln ('введи массу учебника 3');readln (a3);
writeln ('введи массу тетради 1');readln (t1);
writeln ('введи массу тетради 2');readln (t2);
writeln ('введи массу тетради 3');readln (t3);
writeln ('введи массу пенала');readln (p);
writeln ('введи массу дневника');readln (d);
writeln ('введи массу портфеля');readln(vp);
b:=a1+a2+a3+a4+t1+t2+t3+p+d+vp;writeln ('общая масса портфеля= ' b);
if (b<=5) then writeln ('норма') else writeln ('ненорма');
readln;
end.