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

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

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

 
 Ответить  Открыть новую тему 
> Задача с одномерным массивом
сообщение
Сообщение #1





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

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


Условие:
вычисление среднего значения в одномерном массиве для всех элементов между первым и вторым нулем в массиве (или от первого нулевого значения до конца массива). Длина и значения элементов массива вводятся с клавиатуры. Печатать элементы массива по: 5 штук, формату :12.

Долго мучаюсь, переделываю по-разному, но правильно никак не считает. Помогите, пожалуйста, найти ошибки:


PROGRAM LAB;
VAR
i, l, j, A, b, c, d :integer;
N, Sr, Sum :real;
Number :array[1..50] of real;
Fout :text;
BEGIN
Sum:=0;
writeln('Skolko budet chisel?');
readln(A);
for i:=1 to A do
begin
writeln('Vvedite ocherednoe chislo');
readln(Number[i]);
end;
assign(Fout,'A:\LAB.TXT');
rewrite(Fout);
writeln(Fout,'Ishodniy massiv iz ',A,' elementov');
for i:=1 to A do
begin
write(Fout,Number[i]:12);
if i mod 5 = 0 then writeln(Fout);
end;
writeln(Fout);
for i:=1 to A do
begin
if Number[i] = 0 then c:=i;
begin
for k:=c to A do
begin
if Number[k]>0 then
Sum:=Sum+Number[k];
if Number[k]=0 then d:=k;
b:=d-c-1;
Sr:=Sum/b
end;
end;
end;
write(Fout,'Srednee znachenie ravno ',Sr,'');
close(Fout);
END.



И еще вопрос, не относящийся к этой задаче: как сделать так, чтобы в массиве с произвольными символами программа находила только символы кириллицы?
Заранее спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской
Реальное имя: Дмитрий

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



for i:=1 to A do
begin
if Number[i] = 0 then c:=i;
break;
end;

for k:=c to A do
begin
if Number[k]<>0 then
Sum:=Sum+Number[k];
if Number[k]=0 then
begin
d:=k;
break;
end ;
end;
b:=d-c-1;
Sr:=Sum/b;




попробуй заменить на это часть где происходит нахождение 0-x элементов и вычисление среднего значения.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Человек_Без_Имени, твоя программа что-то совсем не то считает ... Проверил хотябы чтоли на парочке массивов, вот например

Цитата
(0,2,3,1,4,5,6,0,0,0);




i := 1;

while (i <= n - 1) and (x[i] <> 0) do inc(i);

if (i <= n - 1) and not ((x[i + 1] = 0) and (i + 1 <> n)) then begin

s := 0;
count := 0;
inc(i);

repeat
inc(count);
s := s + x[i];
inc(i);
until (i > n) or (x[i] = 0);

writeln((s / count):3:3);

end else writeln('В массиве нету искомого промежутка');


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской
Реальное имя: Дмитрий

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



Упс, извиняюсь... give_rose.gif
Вот еще как один вариант(все работает, проверил)



program suma;
uses crt;
var f:array[1..10] of integer;
k,s,i,n:integer;
begin
n:=0;
k:=0;
for i:=1 to 10 do read(f[i]);
for i:=1 to 10 do
begin
if f[i]=0 then k:=k+1 else
if (k<2)and(k>0) then begin
s:=s+f[i];
n:=n+1;
end;
end;
if (k<=1) then writeln('Net 0-x elov ili toka odin ');
if n=0 then writeln('pervix 2 0-x elementa ryadom');
writeln('Sum=',s/n:0:2);
readkey;
end.



P.S. я тут недавно, просьба не судить строго rolleyes.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





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

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


Спасибо большое за помощь smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Клавиатурный тиран
**

Группа: Пользователи
Сообщений: 79
Пол: Мужской
Реальное имя: Дмитрий

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


Цитата(Widess @ 19.03.2007 17:32) *

И еще вопрос, не относящийся к этой задаче: как сделать так, чтобы в массиве с произвольными символами программа находила только символы кириллицы?
Заранее спасибо.

По коду ищи:
if ord(Symbol:Char) in [128..175,224..241] then ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
как сделать так, чтобы в массиве с произвольными символами программа находила только символы кириллицы?
Вообще-то на этот вопрос уже ответили: Нахождение в массиве определенных символов
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 7.10.2024 9:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name