По данным сведениям об участниках класса определить среднюю массу мальчиков и средний рост девочек - Turbo Pascal
Формулировка задачи:
Помогите ришить задачу пожалуйста.
По данным свединием об участниках класса определить среднюю массу мальчиков и средний рост девочек.Кто из участников класса самый высокий?
Заранее всем спасибо.
Решение задачи: «По данным сведениям об участниках класса определить среднюю массу мальчиков и средний рост девочек»
textual
Листинг программы
TYPE student=record fam,pol:string; rost:100..220; mas:30..200; end; var s:array[1..100] of student; i,n,u:integer; sr,sv,kd,km,max:real; begin write('Количество учеников= '); readln(n); writeln('Введите данные об учениках'); for i:=1 to n do begin writeln(i,' ученик'); with s[i] do begin write('Фамилия: '); readln(fam); write('Пол (М/Ж): '); readln(pol); write('Рост: '); readln(rost); write('Вес: '); readln(mas); end; end; sv:=0; sr:=0; kd:=0; km:=0; for i:=1 to n do begin with s[i] do begin if pol='М' then begin km:=km+1; sv:=sv+mas; end; if pol='Ж' then begin kd:=kd+1; sr:=sr+rost; end; end; end; sv:=sv/km; sr:=sr/kd; writeln('Средняя масса мальчиков= ',sv); writeln('Средний рост девочек= ',sr); max:=100; for i:=1 to n do begin with s[i] do if rost>max then begin max:=rost; u:=i; end; end; with s[u] do writeln('Самый высокий = ',fam); END.
Объяснение кода листинга программы
- Объявление переменных и типа данных:
TYPE student=record
- объявление типа данных для записи, представляющей ученика, включающей поляfam
(фамилия),pol
(пол),rost
(рост) иmas
(масса)var
- начало области переменныхs:array[1..100] of student;
- объявление массиваs
на 100 элементов типаstudent
i,n,u:integer;
- объявление целочисленных переменных для использования в циклахsr,sv,kd,km,max:real;
- объявление вещественных переменных для хранения результатов
- Ввод данных о количестве учеников и их характеристик:
write('Количество учеников= ');
- вывод сообщения для ввода количества учениковreadln(n);
- считывание количества учеников из ввода пользователяwriteln('Введите данные об учениках');
- вывод сообщения для ввода данных об ученикахfor i:=1 to n do
- начало цикла для обработки каждого ученикаwriteln(i,' ученик');
- вывод номера текущего ученикаwith s[i] do
- начало контекста для текущего элемента массиваs
write('Фамилия: '); readln(fam);
- ввод фамилии ученикаwrite('Пол (М/Ж): '); readln(pol);
- ввод пола ученикаwrite('Рост: '); readln(rost);
- ввод роста ученикаwrite('Вес: '); readln(mas);
- ввод массы ученикаend;
- конец контекста для текущего элемента массиваs
end;
- конец цикла для обработки каждого ученика
- Подсчет средней массы мальчиков и среднего роста девочек:
sv:=0;
- инициализация переменнойsv
для хранения суммы массkm:=0;
- инициализация переменнойkm
для хранения количества мальчиковfor i:=1 to n do
- начало цикла для обработки каждого ученикаwith s[i] do
- начало контекста для текущего элемента массиваs
if pol='М' then
- проверка пола ученикаbegin
- начало блока условий для мальчиковkm:=km+1;
- увеличениеkm
на единицу, если пол ученика - мужскойsv:=sv+mas;
- увеличениеsv
на массу ученика, если пол ученика - мужскойend;
- конец блока условий для мальчиковif pol='Ж' then
- проверка пола ученикаbegin
- начало блока условий для девочекsv:=sv+rost;
- увеличениеsv
на рост ученика, если пол ученика - женскийend;
- конец блока условий для девочекend;
- конец цикла для обработки каждого ученикаsv:=sv/km;
- вычисление средней массы мальчиковwriteln('Средняя масса мальчиков= ',sv);
- вывод средней массы мальчиков
- Подсчет самого высокого роста:
max:=100;
- инициализация переменнойmax
для хранения максимального ростаfor i:=1 to n do
- начало цикла для обработки каждого ученикаwith s[i] do
- начало контекста для текущего элемента массиваs
if rost>max then
- проверка роста ученикаbegin
- начало блока условий для учеников с большим ростомmax:=rost;
- обновление переменнойmax
ростом текущего ученикаu:=i;
- обновление переменнойu
индексом текущего ученикаend;
- конец блока условий для учеников с большим ростомend;
- конец цикла для обработки каждого ученикаwith s[u] do
- начало контекста для ученика с самым высоким ростомwriteln('Самый высокий = ',fam);
- вывод фамилии ученика с самым высоким ростом
- Завершение программы:
END.
- завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д