Найти среднюю длину - Pascal
Формулировка задачи:
В двоичной последовательности (состоящей из нулей и единиц) найти среднюю длину связной группы нулей.
Сам я знаю только как найти среднее арифметическое а как дальше делать без понятия
var a : array [1..10] of integer; s : real; sum,n,i : integer; begin clrscr; write('n=');readln(n); for i:=1 to n do begin write('a[',i,']='); readln(a[i]); end; sum:=0; for i:=1 to n do sum:=sum+a[i]; s:=sum/n; writeln('ср ариф= ',s); readln; end.
Решение задачи: «Найти среднюю длину»
textual
Листинг программы
{ В двоичной последовательности (состоящей из нулей и единиц) найти среднюю длину связной группы нулей. } var s: string; ZeroLen, nGroups: integer; i, StrLen: integer; begin readln(s); i:= 1; StrLen := length(s); ZeroLen := 0; nGroups := 0; while i<=StrLen do begin if s[i]='0' then begin while (i<=StrLen) and (s[i]='0') do begin inc(i); inc(ZeroLen); end; inc(nGroups); end else inc(i); end; if (nGroups=0) then writeln('Нет последовательностей') else writeln('Средняя длина последовательности ', ZeroLen / nGroups:0:3); readln; end.
Объяснение кода листинга программы
- Ввод строки s с помощью функции readln.
- Инициализация переменных:
- ZeroLen - количество нулей в строке (средняя длина связной группы нулей).
- nGroups - количество связных групп нулей в строке.
- i - индекс текущего символа в строке.
- StrLen - длина строки s.
- Цикл while, выполняющийся до тех пор, пока i не превысит StrLen.
- Если s[i] равен '0', то:
- Цикл while, выполняющийся до тех пор, пока i не превысит StrLen и s[i] не станет равным '1'.
- Увеличение i и ZeroLen на 1.
- Увеличение nGroups на 1 после выхода из цикла (так как мы нашли новую группу нулей).
- Увеличение i на 1.
- Если nGroups равно 0, то вывод 'Нет последовательностей'.
- Если nGroups больше 0, то вывод 'Средняя длина последовательности ' и ZeroLen / nGroups (с округлением до трех знаков после запятой).
- Завершение программы с помощью функции readln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д