Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.12.2014, 21:35
Razoor333 Razoor333 вне форума
Прохожий
 
Регистрация: 18.12.2014
Сообщения: 2
Версия Delphi: Delphi
Репутация: 10
По умолчанию Для целочисленного массива вычислить среднее из элементов, больших 50

Для заданного целочисленного массива вычислить среднее из элементов, больших 50.Если таких элементов нет, вывести в компонент вывода строку (Элемент не найден). И надо обязательно использовать компонент memo. Помогите доделать завтра надо сдать((((((


Код:
 procedure TForm1.Button1Click(Sender: TObject);
var
k,sum:real;
i,a,b:integer;
a:array [1..100] of integer;
begin
 
k:=0;
sum:=0;
for i := 1 to a do
 
begin
if (b>50) then
 
begin
 
k:=k+1;
sum:=sum+b;
end;
end;
 
if (sum=0) then
else
 
end;
 
end.
Ответить с цитированием
  #2  
Старый 18.12.2014, 21:37
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Код оформляйте тегом CODE!
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 19.12.2014, 02:20
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

На форму нужно кинуть кнопку и мемо
Код:
uses Math;
...
procedure TForm1.Button1Click(Sender: TObject);
var
 a  : array [1..100] of integer;
 tmp: array of double;
 i,b: integer;
begin
 Memo1.Clear;
 Randomize;
 for i := 1 to 100 do
  begin
   a[i]:= Random(100);
   Memo1.Lines.Add(IntToStr(a[i]));
  end;

 Memo1.Lines.Add('');
 b:= 0;

 for i := 1 to 100 do if a[i] > 50 then inc(b);

 if b > 0 then SetLength(tmp, b) else
  begin
   Memo1.Lines.Add('Элемент не найден');
   Exit;
  end;

 b:= 0;

 for i := 1 to 100 do if a[i] > 50 then
  begin
   tmp[b]:= a[i];
   inc(b);
  end;

 Memo1.Lines.Add(FloatToStr(Mean(tmp)));
end;
Ответить с цитированием
  #4  
Старый 19.12.2014, 04:40
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Alegun, ну ты совсем обленился, в лоб решаешь
2й и 3й циклы можно ж объединить:
Код:
s := 0;
b := 0;
for i := 1 to 100 do
  if a[i] > 50 then
    begin
      s := s + a[i];
      inc(b);
    end;

if b = 0
  then memo1.lines.add('Элемент не найден')
  else memo1.lines.add(FloatToStr(s/b));
Ответить с цитированием
  #5  
Старый 19.12.2014, 06:00
Razoor333 Razoor333 вне форума
Прохожий
 
Регистрация: 18.12.2014
Сообщения: 2
Версия Delphi: Delphi
Репутация: 10
По умолчанию

Спасибо огромное!!!!!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:27.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025