Проверить, есть ли в группе хотя бы два человека одного роста и вывести их имена - 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.
Объяснение кода листинга программы
- Создается тип данных TMan, который представляет собой запись с двумя полями: name (имя) и height (рост).
- Создается массив TArray, который представляет собой массив записей типа TMan.
- Создается тип данных TGroup, который представляет собой запись с двумя полями: ar (массив TArray), n (количество элементов в массиве TArray).
- Определяется функция SameHeigth, которая принимает объект типа TGroup в качестве аргумента и возвращает логическое значение true, если в группе есть хотя бы два человека одного роста, и false в противном случае.
- Внутри функции используется цикл while для проверки каждого элемента массива TArray на равенство его высоты с высотой следующего элемента. Если условие выполняется, то выводится имя текущего и следующего элемента, а затем увеличивается значение переменной j. Если условие не выполняется, то увеличивается значение переменной i.
- После завершения цикла while выводится сообщение о том, есть ли в группе люди с одинаковым ростом.
- Создается объект типа TGroup с помощью оператора with и заполняются его поля.
- Выполняется цикл for для каждого элемента массива TArray.
- Внутри цикла for считываются имена и росты каждого элемента массива TArray с помощью функций Write и ReadLn.
- После завершения цикла for выводится сообщение о том, сколько человек в группе и какие именно люди в ней находятся.
- Если функция SameHeigth возвращает false, то выводится сообщение о том, что в группе нет людей с одинаковым ростом.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д