Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 242

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
проблема с задачкой на одномерные массивы.она звучит так: вычислить среднее арифметическое значение и количество элементов массива А(n) (1<=n<=80), которое больше за заданное число F. //что нужно исправить в коде чтоб она правильно работала? потому что сейчас она выводит несколько средних арифметических значений и соответственно несколько значений количества элементов.

Приложение:
  1. program lab14_z1_odn_massivu;
  2. {$APPTYPE CONSOLE}
  3. uses
  4. SysUtils;
  5. const n=5;
  6. var A:array[1..n] of integer;
  7. i:byte;
  8. sra:real;
  9. F:real;
  10. kol:integer;
  11. sum:real;
  12. begin
  13. writeln ('input F');
  14. readln (F);
  15. writeln ('input masiv A');
  16. for i:=1 to n do
  17. read (A[i]);
  18. sum:=0;
  19. kol:=0;
  20. for i:=1 to n do
  21. begin
  22. if A[i]>F then
  23. begin
  24. sum:=sum+A[i];
  25. kol:=kol+1;
  26. sra:=sum/kol;
  27. writeln ('sra=',sra,' kol=',kol);
  28. end;
  29. end;
  30. readln; readln
  31. { TODO -oUser -cConsole Main : Insert code here }
  32. end.


Nostalgia Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задала: Nostalgia (статус: Посетитель)
Вопрос отправлен: 27 декабря 2008, 19:51
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Nostalgia!
Обычное дело - попутали малось строки. Зачем выводить на каждый чих значение среднего...

program lab14_z1_odn_massivu;
{$APPTYPE CONSOLE}
uses
  SysUtils;
const n=5;
var A:array[1..n] of integer;
    i:byte;
    sra:real;
    F:real;
    kol:integer;
    sum:real;
begin
writeln ('input F');
readln (F);
writeln ('input masiv A');
for i:=1 to n do
read (A[i]);
sum:=0;
kol:=0;
for i:=1 to n do
begin
if A[i]>F then
begin
sum:=sum+A[i];
kol:=kol+1;
end;
if kol = 0 then 
writeln('vse ploho')
else begin
sra:=sum/kol;
writeln ('sra=',sra,' kol=',kol);
end;
end;
readln; readln
  { TODO -oUser -cConsole Main : Insert code here }
end.
Где то так.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 27 декабря 2008, 20:51
Оценка за ответ: 5


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:58
Выполнено за 0.03 сек.