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

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

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

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


Пионер
**

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

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


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

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


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

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


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

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

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


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


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


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

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

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


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

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

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


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 15.12.2005 15:35
Сообщение #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 
 К началу страницы 
+ Ответить 
kr3v3tkus
сообщение 15.12.2005 15:42
Сообщение #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 
 К началу страницы 
+ Ответить 
APAL
сообщение 15.12.2005 15:53
Сообщение #6


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

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

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


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


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

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

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


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


Пионер
**

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

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


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

ок тнх!

ок тнх!

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


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

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


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

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

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


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

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


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


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 15.12.2005 16:05
Сообщение #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); { идем до отрицательного или до конца массива }
 К началу страницы 
+ Ответить 
APAL
сообщение 15.12.2005 16:12
Сообщение #10


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

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

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


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


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


Пионер
**

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

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


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


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

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


Пионер
**

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

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


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


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

Креветка присваивания :DDD
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 15.12.2005 22:58
Сообщение #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);
 К началу страницы 
+ Ответить 
kr3v3tkus
сообщение 15.12.2005 23:18
Сообщение #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 
 К началу страницы 
+ Ответить 
GoodWind
сообщение 15.12.2005 23:26
Сообщение #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 
 К началу страницы 
+ Ответить 
volvo
сообщение 15.12.2005 23:29
Сообщение #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];

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


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

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

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


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


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


Пионер
**

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

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


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


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

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

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

 



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