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

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

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

> Задача с массивом
Ekaterina
сообщение 19.05.2011 21:42
Сообщение #1





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

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


Пожалуйста помогите решить задачу!
Вычислить сумму положительнх элементов до первого отрицательного и произведение отрицательных элементов до первого положительного элемента в массиве A(n), n<=20.Вывести массив, сумму и прозведение.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 9)
sheka
сообщение 19.05.2011 22:54
Сообщение #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 - 19.05.2011 23:39
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 19.05.2011 23:44
Сообщение #3


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

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

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


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

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


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


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

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

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


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


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


Я.
****

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

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


Это Я его псевдокодом назвал?
Это хуже _._._кода! lol.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ekaterina
сообщение 20.05.2011 14:46
Сообщение #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 
 К началу страницы 
+ Ответить 
sheka
сообщение 20.05.2011 15:14
Сообщение #7


Я.
****

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

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


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

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

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


Гость






Сейчас попробую, спасибо)
 К началу страницы 
+ Ответить 
Krjuger
сообщение 20.05.2011 15:59
Сообщение #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 - 20.05.2011 16:07
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ekaterina
сообщение 20.05.2011 16:11
Сообщение #10





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

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


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

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

 



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