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

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

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

 
 Ответить  Открыть новую тему 
> Вопрос по условию, непонятная задача...
сообщение
Сообщение #1


Пионер
**

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

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


Написать программу, которая в заданном массиве из n элементов (элементами являются целые числа, 0 < n < 100) находит:
Сумму первых положительных элементов;

Вот такая штука написана в условии sad.gif я не могу понять чего исколько брать sad.gif
мне кажется , что если например есть массив
-11 20 43 -54 11
то надо найти чтоли сумму первых встречающихся положительных чисел?! Если так , то помогите плз , как сделать так, чтобы при нахождении первого положительного числа , проверялось сколько потом идёт положительных. Просто у меня загвоздка в 2х местах:
1) как сделать чтобы при проверке и нахождении 1ого положительного эл-та останавливался поиск(без брейка)
2) нет конкретного значения сколько у нас полож. чисел есть, я не знаю как ето определить.
если 1ый пункт я ещё как нибудь бы через даунту сделал, то 2ой я вообще не знаю ((( Натолкните


--------------------
Цитата
          .     .
           \__/
          (**)
(>:=:=:~~ 
  ^ ^ ^ ^ 

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Смотрю...
*****

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

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


Тафталогия получается!
По условию "(элементами являются целые числа, 0 < n < 100)" - у нас все числа положительны


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


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

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

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


Цитата
Сумму первых положительных элементов

очень мутно ...

можно найти сумму первых K положительныйх элементов нарпимер ...


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


Смотрю...
*****

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

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


может что нибудь вроде этого...

Flag:=True;
Sum:=0;
i:=1;
While Flag do
Begin
If i<=n then
If m[i]>0 then Sum:=Sum+m[i]
else
If Sum>0 then Flag:=False;
else Flag:=False;
Inc(i);
End;


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

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

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


2 APAL
вово я тоже сначала так подумал, но 1е задание было такое:
Найти Первый отрицательный элемент;
ну чето подумал и решил, что ето количество елементов ну, типа если ставить const n , то любую от 1 до 99.
2 klem4
блин сам в шоке.. smile.gif
а всмысле первых К? индексов?

Кстати расшифруйте плз
Решить следующие задачи, используя алгоритмы: поиска делителей заданного натурального числа N и разложения числа на составляющие его цифры:
1. Составить программу нахождения количества делителей заданного натурального числа N, N <1000. (Само число и единица включаются в число делителей.).

я не пойму что надо сделать, а мне ещё 20 однотипных таких задач (
типа просто надо разбить число на цифры ( 2334 в 2 3 3 4) и найти делители( что такое делители? smile.gif )

2 APAL
а вроде получается сумма всех положительных чисел? или я просто не разобрался?


--------------------
Цитата
          .     .
           \__/
          (**)
(>:=:=:~~ 
  ^ ^ ^ ^ 

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Смотрю...
*****

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

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


Цитата
2 APAL
а вроде получается сумма всех положительных чисел? или я просто не разобрался?


Каюсь, не проверял, но по алгоритму должен найти сумму не всех, а только первых положительных чисел, т.е.:
Елси массив -1 -4 3 6 -2 3 5 -1
То должен получить сумму: 3+6 = 9

Задача по разложению числа на цифры уже была на форуме - воспользуйся поиском.

Сообщение отредактировано: APAL -


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Пионер
**

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

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


вернее я точно не разобрался smile.gif я вот щас посмотрел, вроде более понял, почему только во 2омм ифе и в then и в else стоит false?
и кстати While Flag ето типа условие пока переменная не изменится?

ок тнх!

ок тнх!

блин ответы в один сливаюцца :D


--------------------
Цитата
          .     .
           \__/
          (**)
(>:=:=:~~ 
  ^ ^ ^ ^ 

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Смотрю...
*****

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

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


Цитата(kr3v3tkus @ 15.12.2005 15:56) *

вернее я точно не разобрался smile.gif я вот щас посмотрел, вроде более понял, почему только во 2омм ифе и в then и в else стоит false?


В первом, это когда мы дошли до конца массива (n-элементов всего)
Во втором, это когда встретилось первое отрицательное число и к этому моменту мы уже имеем сумму отличную от нуля, т.е. мы уже сложили первые встретившиеся положительные элементы.


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






kr3v3tkus, если тебе надо найти
Цитата
сумму первых встречающихся положительных чисел
, то вот так, наверное, тоже можно? (без Flag):
  i := 1;
while a[i] < 0 do inc(i); { пропускаем отрицательные если есть }
if i <= n then
repeat
s := s + a[i];
inc(i)
until (a[i] < 0) or (i > n); { идем до отрицательного или до конца массива }
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Смотрю...
*****

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

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


можно и так...
на выбор... blum.gif


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Пионер
**

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

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


ууу :D всем БИГ СПС :D
вот прикол будет если я прийду и мне скажут , что ошибка в условии smile.gif убью yes2.gif
кстати я в жизни в нете не видел таких форумов , где люди с такой быстротой отвечают smile.gif программисты - самый дружный народ :D


--------------------
Цитата
          .     .
           \__/
          (**)
(>:=:=:~~ 
  ^ ^ ^ ^ 

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

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

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


понимаю,задрал уже blink.gif но ничё не могу поделаьб, уже глаза слезятся mega_chok.gif
как изменить код , чтобы найти сумму последних положительных элементов?


--------------------
Цитата
          .     .
           \__/
          (**)
(>:=:=:~~ 
  ^ ^ ^ ^ 

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Элементарно:
  i := n; s := 0;
while a[i] < 0 do dec(i);
if i > 0 then
repeat
s := s + a[i];
dec(i)
until (a[i] < 0) or (i < 1);
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Пионер
**

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

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


blink.gif у меня while заколдован smile.gif как только за него берусь, сразу прога виснет )
volvo последний вопросик не по этой задаче
Код
begin
s:=a[1];
for i:=1 to n do
  if a[i]>0 then
    if s>a[i] then s:=a[i];
end;

вот ето поиск минимального положительного элемента , скажи ето у меня паскаль глючит или я накосячил? потомучто у меня он выводит 1ый елемент(любой хоть + хоть - ) sad.gif
я и через while делал такаяже фиговина вышла (
ещё раз сори за назойливость :D просто задали для допуска на зачёт 160 задач, вот сижу делаю wacko.gif


--------------------
Цитата
          .     .
           \__/
          (**)
(>:=:=:~~ 
  ^ ^ ^ ^ 

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Автооответчик
*****

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

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


Цитата
begin
s:=a[1];
for i:=1 to n do if (a[i]>0) and (a[i]<s) then s:=a[i];
end;


то же что и у тебя... работать должно unsure.gif


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Гость






Ты ошибся...
  s := a[1]; { <--- Здесь !!! }
for i:=1 to n do
if a[i]>0 then
if s>a[i] then s:=a[i];

А вдруг первый же элемент будет отрицательным? И что, потом ты найдешь положительный, который меньше него? Вот так будет лучше:
  s := maxint; { Заведомо самый большой из всех возможных ПОЛОЖИТЕЛЬНЫХ }
for i:=1 to n do
if a[i]>0 then
if s>a[i] then s:=a[i];

Так все нормально отрабатывает...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Автооответчик
*****

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

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


volvo.... каюсь ибо грешен... sad.gif


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Пионер
**

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

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


я подозревал что это связано с присвоением :D
как плохо когда и логика и математика страдает )
volvo в который раз пасибки :D уже 44 задачи сделал осталось всего-то 116 :D


--------------------
Цитата
          .     .
           \__/
          (**)
(>:=:=:~~ 
  ^ ^ ^ ^ 

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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