Записи в виде массивов полей. - Turbo Pascal
Формулировка задачи:
Помогите написать программку
Условия задачи:
В Автоматизированной информационной системе содержатся анкетные данные сотрудников учреждения.
В Массиве V(8) содержаться года рождения сотрудников,
В Массиве P(8) - Сведения о поле,
В Массиве S(8) - Сведения о семейном положении.
Элемент массива V с номером N- год рождения сотрудника N,
Элемент массива P с номером N - Сведения о поле сотрудника N,
Элемент S с номером N - сведения о семейном положении сотрудника N/
P(N) = 0, сотрудник N женского пола
P(N) = 1, Сотрудник N мужского пола
S(N) = 0, сотрудник N холост(не замужем)
S(N) = 1, сотрудник N Женат (Замужем)
определить процентное соотношение
k = количество женщин в возрасте до 55/общее количество женщин х 100
Решение задачи: «Записи в виде массивов полей.»
textual
Листинг программы
const
N = 8;
CURRENTYEAR = 2016;
var
v: Array[1..N] Of 1899..2016;
p: Array[1..N] Of Boolean;
s: Array[1..N] Of Boolean;
i: 1..N;
k55, kAll: 0..N;
c: Char;
begin
k55 := 0;
kAll := 0;
for i := 1 to N do
begin
Write(i, '-й сотрудник:');
Write('Год рождения: '); ReadLn(v[i]);
repeat
Write('Пол сотрудника (0 - женский | 1 - мужской): ');
Read(c);
until (c in ['0', '1']);
p[i] := (c = '1');
repeat
Write('Семейное положение сотрудника (0 - не в браке | 1 - в браке): ');
Read(c);
until (c in ['0', '1']);
s[i] := (c = '1');
if (Not p[i])
then
begin
Inc(kAll);
if (CURRENTYEAR - v[i] < 55)
then
Inc(k55);
end;
end;
WriteLn;
if (kAll <> 0)
then
WriteLn('k=', (100*k55/kAll):0:2)
else
WriteLn('Ни одной женщины в списке!');
end.
Объяснение кода листинга программы
- В начале кода объявляются переменные N, CURRENTYEAR, v, p, s, i, k55, kAll, c.
- Затем происходит инициализация переменных: k55 и kAll устанавливаются равными 0, а в v[i] записывается год рождения сотрудника.
- Далее идет цикл for, который выполняется для каждого сотрудника от 1 до N. Внутри цикла выводятся данные о сотруднике: его номер, пол и семейное положение. Переменная p[i] устанавливается равной 1, если сотрудник женат, и считывается значение переменной c. Переменная s[i] также устанавливается равной 1, если сотрудник женат.
- После этого проверяется, не состоит ли сотрудник в браке (проверка выполняется через значение переменной p[i]). Если сотрудник не женат, то увеличивается значение переменной kAll. Если текущий год меньше возраста сотрудника, то увеличивается значение переменной k55.
- По окончании цикла for выводится сообщение о количестве женщин в списке. Если kAll равно 0, то выводится сообщение
Ни одной женщины в списке!. - Код завершается вызовом функции WriteLn.