Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Среднее арифметическое


Автор: kyubii 28.12.2006, 16:54
Определить и напечатать среднее арифметическое отрицательных элементов массива P(10). Если в массиве нет отрицательных элементов,напечатать соответствующий текст.

СУВ.

Автор: mr.Anderson 28.12.2006, 19:12
Код

Program Arrays;
Var P: Array[ 1..10 ] of Integer;
      i,howmuch: Integer;
      sum,average: Real;
Begin

 howmuch := 0;
 sum := 0;
 For i:=0 To 9 Do
  If( P[ i ] < 0 ) Then
  begin
   Inc( howmuch );
   sum := sum + P[ i ];   
  end;

 If( howmuch > 0 ) Then
 begin
  average := sum / howmuch;
  WriteLn( average );
 end
 Else
  WriteLn( 'В массиве отсутствуют отрицательные элементы.' );

 ReadLn;

End.

Автор: kyubii 28.12.2006, 23:48
а как же осуществить ввод массива,а то сразу выдаёт что нет отрицательных эллементов...

Автор: mr.Anderson 29.12.2006, 12:05
Ой, точно. smile Ну это можно двумя способами - заполнение случайными числами или ввод с клавиатуры.

Если первое, то сразу после BEGIN пиши следующее:
Код

Randomize;
For i:=0 To 9 Do P[ i ] := Random( 11 ) - 5;

Этот код заполнит весь массив случайными числами от -5 до 5.

Если второе, то после BEGIN пиши следующее:
Код

For i:=0 To 9 Do
begin
 Write( 'Enter ', i, ' element of array: ' );
  ReadLn( P[ i ] );
end;

Автор: TBase 2.1.2007, 02:16
mr.Anderson, у вас массив определен, как P[1..10], потому начинать заполнение с нуля не корректно...

Правильно так:
Код

Randomize;    
For i:=1 To 10 Do P[ i ] := Random( 11 ) - 5;

Второй случай:
Код

For i:=1 To 10 Do    
begin    
 Write( 'Enter ', i, ' element of array: ' );    
  ReadLn( P[ i ] );    
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)