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

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

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

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





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

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


Пожалуйста помогите решить задачу!
Вычислить сумму положительнх элементов до первого отрицательного и произведение отрицательных элементов до первого положительного элемента в массиве A(n), n<=20.Вывести массив, сумму и прозведение.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Я.
****

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

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


Вот что-то похожее. в теги кода это взять не насмелюсь lol.gif
Код
s = 0
i = 1
wile i<=20 and 0<a(i) do s = s + a(i)
d = 1
i = 1
wile i<=20 and a(i)<0 do d = d / a(i)
for i = 1 to 20 do writln[a(i)]
write{s;" ";d}

Берем книжку и учимся.

Сообщение отредактировано: Lapp -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(sheka @ 19.05.2011 23:54) *
Вот что-то похожее. в теги кода это взять не насмелюсь lol.gif
Шека, вообще-то это раздел по Паскалю.. Но даже если пишешь на "псевдокоде", используй неспециальные теги.

Цитата(Ekaterina @ 19.05.2011 22:42) *
Пожалуйста помогите решить задачу!
Вычислить сумму положительнх элементов до первого отрицательного и произведение отрицательных элементов до первого положительного элемента в массиве A(n), n<=20.Вывести массив, сумму и прозведение.
Показывай, что самой удалось сделать, и говори, с чем затык. Поможем.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Злостный любитель
*****

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

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


Фу, в твоём псевдокоде для присваивания используется еретичное = вместо единственно верного :=


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Я.
****

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

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


Это Я его псевдокодом назвал?
Это хуже _._._кода! lol.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6





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

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


program z2;                                                                   
label M1, M2;
const
t=20;
var
A:array [1..t] of integer;
N,i,s,p:integer;
begin
writeln ('N=');
readln(N);
writeln('vvod massiva A');
for i:=1 to N do
readln(A[i]);
S:=0;
P:=1;
for i:=1 to N do
if A[i]>0 then S:=S+A[i]
else
begin
writeln('s=',s);
goto M1;
end;
M1: for i:=1 to N do
if A[i]<0 then P:=P*A[i]
else
begin
writeln('P=', P);
goto M2
end;
M2:end.

Программа не считает сумму и произведение(

М
Теги!!
- Lapp

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Я.
****

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

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


Попробуй, пожалуйста, написать без goto - и все получится. Если не получится - выкладывай.

Добавлено через 2 мин.
И обрати внимание какие я циклы написал. Не проще ли?

ЗЫ:
Для выхода из цикла используется break. О goto - забудь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Сейчас попробую, спасибо)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

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

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


Цитата

goto M2
end;
M2:end.

Вот это убило мой мозг совсем.
А еще не понятно,а если первая серия состоит из отрицательных элементов,то надо считать серию из положительных или уже нет?
Кстати посмотри на свой код,пускай у тебя серия 2 3 4 -10 -4 ты считаеш в цикле и проверяеш первые 3 элемента все ок, они положительны сумма накапливается ты идеш на 4 элемент,он отрицателен и тут отрабатывает кусок else,но что в нем? В нем печать суммы и переход на проверку отрицательности в цикле,но ты опять начинает с первого элемента,а он у нас 2 и он положительный, как мы уже выяснили, и вполне логично, что строчка P:=P*A[i] никогда не отработает и ты сразу переходиш на еlse который печатает неверный p и тд,еще я лично не понял почему у каждой строчки кроме begin, else, for есть ";",а у
S:=S+A[i]
P:=P*A[i]
их как не странно нету.

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





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

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


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

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

 





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