Проверить, есть ли в группе хотя бы два человека одного роста и вывести их имена - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Написать программу, использующую логическую функцию rost(gr), проверяющую, есть ли в группе gr хотя бы два человека одного роста и вывести их имена

Решение задачи: «Проверить, есть ли в группе хотя бы два человека одного роста и вывести их имена»

textual
Листинг программы
{$MODE TP}
type
    TMan = record
        name: String;
        height: Byte;
    end;
    TArray = Array[Byte] Of TMan;
    TGroup = record
        ar: TArray;
        n: Byte;
    end;
function SameHeigth(const gr: TGroup): Boolean;
var
    Result: Boolean;
    i, j: Byte;
begin
    with gr do
    begin
        Result := (n < 2);
        if (Not Result)
        then
        begin
            i := 0;
            while ((i < n - 1) And (Not Result)) do
            begin
                j := i + 1;
                while ((j < n) And (Not Result)) do
                begin
                    Result := (ar[i].height = ar[j].height);
                    if (Result)
                    then
                        WriteLn(ar[i].name, ' & ', ar[j].name);
                    Inc(j);
                end;
                Inc(i);
            end;
        end;
    end;
    SameHeigth := Result;
end;
var
    gr: TGroup;
    i: Byte;
begin
    with gr do
    begin
        repeat
            Write('Сколько человек в группе? ');
            ReadLn(n);
        until (n > 0);
        for i := 0 to n - 1 do
            with ar[i] do
            begin
                Write('Введите имя: '); ReadLn(name);
                Write('Введите рост: '); ReadLn(height);
            end;
    end;
    if (Not SameHeigth(gr))
    then
        Write('Нет людей с одинаковым ростом');
end.

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

  1. Создается тип данных TMan, который представляет собой запись с двумя полями: name (имя) и height (рост).
  2. Создается массив TArray, который представляет собой массив записей типа TMan.
  3. Создается тип данных TGroup, который представляет собой запись с двумя полями: ar (массив TArray), n (количество элементов в массиве TArray).
  4. Определяется функция SameHeigth, которая принимает объект типа TGroup в качестве аргумента и возвращает логическое значение true, если в группе есть хотя бы два человека одного роста, и false в противном случае.
  5. Внутри функции используется цикл while для проверки каждого элемента массива TArray на равенство его высоты с высотой следующего элемента. Если условие выполняется, то выводится имя текущего и следующего элемента, а затем увеличивается значение переменной j. Если условие не выполняется, то увеличивается значение переменной i.
  6. После завершения цикла while выводится сообщение о том, есть ли в группе люди с одинаковым ростом.
  7. Создается объект типа TGroup с помощью оператора with и заполняются его поля.
  8. Выполняется цикл for для каждого элемента массива TArray.
  9. Внутри цикла for считываются имена и росты каждого элемента массива TArray с помощью функций Write и ReadLn.
  10. После завершения цикла for выводится сообщение о том, сколько человек в группе и какие именно люди в ней находятся.
  11. Если функция SameHeigth возвращает false, то выводится сообщение о том, что в группе нет людей с одинаковым ростом.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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