Базы данных Access,нужно написать ход выполнения задачи(подробно) Сотрудники разных категорий (1-й, 2-й, 3-й) аудиторской фирмы осуществляют проверку предприятий в течение года. Работа сотрудников оплачивается за каждый час в зависимости от категории сотрудника.Необходимо спроектировать базу данных Аудит, информация которой будет использоваться для автоматизации начисления зарплаты сотрудникам.
В БД должна храниться информация:
• О СОТРУДНИКАХ аудиторской фирмы (код сотрудника, Ф.И.О. сотрудника, номер паспорта, дата рождения, рабочий телефон);
• О КАТЕГОРИЯХ СОТРУДНИКОВ: (категория, ставка за 1 час (тыс. руб.));
• О РАБОТЕ, выполненной сотрудниками на предприятиях (название предприятия, код сотрудника, дата выполнения работы, количество отработанных часов).
При проектировании БД необходимо учитывать следующее:
• определенную категорию могут иметь несколько сотрудников. Сотрудник имеет квалификацию только одной категории;
• сотрудник может выполнять несколько работ по проверке на разных предприятиях. Работу по проверке предприятия могут проводить несколько сотрудников.
Кроме того следует учесть:
• каждый сотрудник обязательно имеет категорию. Определенная категория не обязательно может быть у сотрудников аудиторской фирмы;
• сотрудник не обязательно выполняет работу по проверке на предприятии. Каждая работа по проверке на предприятии обязательно выполняется сотрудниками.
var
c, a: array[1..20] of integer;
i: integer;
begin
write('Первый массив ');
for i := 1 to 20 do begin
c[i] := i * (-5);
write(c[i], ' ');
end;
writeln;
write('Преобразованный массив ');
for i := 1 to 20 do begin
a[i] := c[20 - i + 1];
write(a[i], ' ');
end;
end.
ИЛИ Программа не использующая два массива, а просто переворачивающая первый
var
c: array[1..20] of integer;
i: integer;
begin write('Первый массив ');
for i := 1 to 20 do begin
c[i] := i * (-5);
write(c[i], ' ');
end;
writeln;
write('Преобразованный массив ');
for i := 20 downto 1 do write(c[i], ' ');
end.
Обе программы работают!
Пусть ΔABC - равнобедренный, АВ = с - его основание, АС = ВС = b - боковые стороны. По условию треугольник симметричен относительно горизонтальной оси, так что его основание АВ должно быть перпендикулярно горизонтальной оси и при этом АО = ОВ, а вершина С попадет на горизонтальную ось. Разместим ΔABC так, чтобы основание попало на вертикальную ось.
Окружность, описанная вокруг треугольника, пройдет через все три его вершины. Точка М - центр описанной окружности, - лежит на пересечении перпендикуляров, проведенных из середин сторон треугольника. Поскольку ΔABC равнобедренный, то ОС - его высота и отрезок МС, равный радиусу окружности R, также лежит на горизонтальной оси.
Найдем высоту ОС, обозначив её через h, по теореме Пифагора.
ОС - это катет ΔAOC, AO ⊥ OC.
Площадь ΔABC находим по формуле
Для нахождения радиуса R = MC рассмотрим прямоугольные ΔAOC и ΔMDC, имеющие общий угол АСО = α
Теперь легко сделать необходимое построение.
Для этого откладываем от начала координат по горизонтальной оси отрезок ОМ и проводим из него, как из центра, окружность радиуса R. Соединяем между собой три точки пересечения окружностью осей координат и получаем треугольник с длинами сторон, равными заданным.
Ниже приводится программа на языке Microsoft QBasic, позволяющая рассчитать длину отрезка ОМ (Mx - координату х точки М) и радиус описанной окружности R по заданной длине основания с и длине боковой стороны b.
INPUT "Основание: ", c
INPUT "Боковая сторона: ", b
h = SQR(b ^ 2 - (c / 2) ^ 2)
R = b ^ 2 / (2 * h)
Mx = h - R
PRINT "Радиус равен "; R, "Координата центра равна "; Mx
Тестовое решение:
Y:\qbasic>QBASIC.EXE
Основание: 6
Боковая сторона: 5
Радиус равен 3.125 Координата центра равна .875
Чтобы продолжить, нажмите любую клавишу