IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> ошибка в программе
Булавка
сообщение 4.06.2006 22:24
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

Репутация: -  0  +


программа считает все когда имеет вид :
Код
Program mass;
uses crt;
const n=30;
    var
i,p,k,S,C:integer;
Sa,Sg:real;
A:array[1..n] of integer;
  BEGIN

writeln ('введите массив А через пробел');
for i:=1 to n do
read (A[i]);

p:=0; S:=0;
for i:=1 to n do
   if  A[i]<0 then  
   begin
S:=S_A[i];
p:=p+1;
Sa:=S/p;
    end;

k:=0; C:=1;
for i:=1 to n do
   if A[i]>0 then
   begin
  C:=C*A[i];
  k:=k+1;
end;
Sg:=exp(ln(C)/k);




for i:=1 to n do
if A[i]<=-5 then
A[i]:=abs(A[i]);
for i:=1 to n do
write (A[i]:3);
writeln;

writeln ('среднее арифметическое отрицательных элементов Sa=', Sa:4);
writeln ('среднее геометрическое положительных элементов Sg=',Sg:4);
repeat until keypressed

END.



преподаватель сказал что в куске
k:=0; C:=1;
for i:=1 to n do
if A[i]>0 then
begin
C:=C*A[i];
k:=k+1;
end;
Sg:=exp(ln©/k);
Sg надо перед эндом впихнуть. но так ничего не работает. может вы подскажите как записать чтобы все по правилам?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.06.2006 22:31
Сообщение #2


Гость






Цитата
Sg надо перед эндом впихнуть.
Бред... Все правильно у тебя считается... Для подсчета среднего геометрического как раз и надо в цикле перемножить все элементы, и ПОСЛЕ цикла вычислить корень нужной степени...

А вот Sa напрасно внутри цикла изменяется ... По правилам его бы надо вынести:
for i:=1 to n do
if A[i]<0 then begin
S:=S+A[i];
p:=p+1;
end;
Sa:=S/p;
 К началу страницы 
+ Ответить 
Булавка
сообщение 4.06.2006 22:44
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

Репутация: -  0  +


спасибо большое! очень признательна
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 1:54
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"