![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Ekaterina |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Женский Репутация: ![]() ![]() ![]() |
Пожалуйста помогите решить задачу!
Вычислить сумму положительнх элементов до первого отрицательного и произведение отрицательных элементов до первого положительного элемента в массиве A(n), n<=20.Вывести массив, сумму и прозведение. |
sheka |
![]()
Сообщение
#2
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Вот что-то похожее. в теги кода это взять не насмелюсь
![]() Код 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 - |
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Вот что-то похожее. в теги кода это взять не насмелюсь Шека, вообще-то это раздел по Паскалю.. Но даже если пишешь на "псевдокоде", используй неспециальные теги.![]() Пожалуйста помогите решить задачу! Показывай, что самой удалось сделать, и говори, с чем затык. Поможем.Вычислить сумму положительнх элементов до первого отрицательного и произведение отрицательных элементов до первого положительного элемента в массиве A(n), n<=20.Вывести массив, сумму и прозведение. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
TarasBer |
![]()
Сообщение
#4
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Фу, в твоём псевдокоде для присваивания используется еретичное = вместо единственно верного :=
-------------------- |
sheka |
![]()
Сообщение
#5
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Это Я его псевдокодом назвал?
Это хуже _._._кода! ![]() |
Ekaterina |
![]()
Сообщение
#6
|
|||
Группа: Пользователи Сообщений: 3 Пол: Женский Репутация: ![]() ![]() ![]() |
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.
Программа не считает сумму и произведение(
|
|||
sheka |
![]()
Сообщение
#7
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Попробуй, пожалуйста, написать без goto - и все получится. Если не получится - выкладывай.
Добавлено через 2 мин. И обрати внимание какие я циклы написал. Не проще ли? ЗЫ: Для выхода из цикла используется break. О goto - забудь. |
Гость |
![]()
Сообщение
#8
|
Гость ![]() |
Сейчас попробую, спасибо)
|
Krjuger |
![]()
Сообщение
#9
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Цитата 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 - |
Ekaterina |
![]()
Сообщение
#10
|
Группа: Пользователи Сообщений: 3 Пол: Женский Репутация: ![]() ![]() ![]() |
sheka, спасибо, вроде все получилось
|
![]() ![]() |
![]() |
Текстовая версия | 21.04.2025 19:25 |