Проверить, есть ли в группе хотя бы два человека одного роста и вывести их имена - 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, то выводится сообщение о том, что в группе нет людей с одинаковым ростом.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д