Средний рост - Pascal
Формулировка задачи:
Рост учеников класса представлен в виде массива. Рост девочек кодируется знаком «+», рост мальчиков – знаком «-». Определить средний рост мальчиков.
Вот такое мне задание попалось на контрольную работу, первый курс еще не проходили паскаль и толком ни чего не понимаю но алгоритм представляю себе.
Помогите пожалуйста.
Решение задачи: «Средний рост»
textual
Листинг программы
const nd = 180; n = 25; var a: array [1..n] of string[255]; r, j, i, k: integer; s: real; st: string; begin s := 0; r := 0; for i := 1 to n do begin j := random(2) + 1; k := random(nd + 1 - 120) + 120; if j = 1 then for j := 1 to k do a[i] := a[i] + '+' else for j := 1 to k do a[i] := a[i] + '-'; if a[i][1] = '+' then //мальчик begin inc(r); s := s + length(a[i]); end; writeln(i:3, ' ', a[i], ' ', Length(a[i])); end; if r <> 0 then begin s := s / r; writeln('Средний рост мальчиков: ', s) end else writeln('Мальчиков нет') end.
Объяснение кода листинга программы
- Объявлены константы: nd = 180, n = 25.
- Объявлены переменные: a: array [1..n] of string[255], r, j, i, k: integer, s: real, st: string.
- Переменная s инициализируется значением 0, переменная r - значением 0.
- Цикл for i := 1 to n выполняет следующие действия: 4.1. Внутри цикла определяется переменная j, которая принимает случайное значение от 1 до 2. 4.2. Определяется переменная k, которая принимает случайное значение от 120 до nd + 1. 4.3. Если j = 1, то к строке a[i] добавляется символ '+', иначе добавляется символ '-'. 4.4. Если a[i][1] = '+', то увеличивается значение переменной r, значение переменной s увеличивается на длину строки a[i], и выводится значение переменной s. 4.5. Выводится значение переменной i и значение строки a[i].
- Если значение переменной r не равно 0, то выполняются следующие действия:
5.1. Значение переменной s делится на значение переменной r.
5.2. Выводится значение переменной s с текстом
Средний рост мальчиков:
. - Если значение переменной r равно 0, то выводится текст
Мальчиков нет
.