Записи в виде массивов полей. - 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.

Объяснение кода листинга программы

  1. В начале кода объявляются переменные N, CURRENTYEAR, v, p, s, i, k55, kAll, c.
  2. Затем происходит инициализация переменных: k55 и kAll устанавливаются равными 0, а в v[i] записывается год рождения сотрудника.
  3. Далее идет цикл for, который выполняется для каждого сотрудника от 1 до N. Внутри цикла выводятся данные о сотруднике: его номер, пол и семейное положение. Переменная p[i] устанавливается равной 1, если сотрудник женат, и считывается значение переменной c. Переменная s[i] также устанавливается равной 1, если сотрудник женат.
  4. После этого проверяется, не состоит ли сотрудник в браке (проверка выполняется через значение переменной p[i]). Если сотрудник не женат, то увеличивается значение переменной kAll. Если текущий год меньше возраста сотрудника, то увеличивается значение переменной k55.
  5. По окончании цикла for выводится сообщение о количестве женщин в списке. Если kAll равно 0, то выводится сообщение Ни одной женщины в списке!.
  6. Код завершается вызовом функции WriteLn.

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы