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

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

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

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> задача на поиск среди чисел первого положительного, (с помощью цикла)
Reflex
сообщение 24.10.2006 13:24
Сообщение #21


Пионер
**

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

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


она проверяет является ли число суммой двух предыдущих, я надеюсь, что автор этой темы догадаетьси как это исправить в сумму трех предыдущих.


--------------------
Нам не дано предугадать как наше слово отзовется...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 24.10.2006 17:42
Сообщение #22


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


а по-моему, она проверяет не совсем то....
ты же проходишь от начала массива, то есть речь не обязательно о последних 2.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 24.10.2006 19:01
Сообщение #23


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

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

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


18192123, Сколько можно мусолить этот маразм ?! Функция, которая ищет нужный по твоему заданию элемент, если такого элемента нет, ф-я возвращает - 1.

function Find(const v: PVector; n: Integer): Integer;
var
s, i, j: Integer;
flag: Boolean;
begin
i := 4;
flag := false;
while (i <= n) and not(flag) do begin
if v^[i] > 0 then begin
j := i - 3;
s := 0;
while (j < i) and (s <= v^[i]) do begin
s := s + v^[j];
inc(j);
end;
flag := (s = v^[i]);
end;
if not(flag) then inc(i);
end;
if flag then Find := i else Find := - 1;
end;


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


Профи
****

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

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


Цитата(klem4 @ 24.10.2006 20:01)
18192123, Сколько можно мусолить этот маразм ?! Функция, которая ищет нужный по твоему заданию элемент, если такого элемента нет, ф-я возвращает - 1.

мне такой способ не подходит!
в этом задании мне нельзя использовать массивы, в основе решения должен лежать цикл.
наверняка, в этом задании все гораздо проще.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 25.10.2006 10:58
Сообщение #25


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

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

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


uses crt;

var
x, x1, x2, x3, s : Integer;
count: Integer;
find: Boolean;

begin
clrscr;
count := 0;
find := false;
repeat
write('x = '); readln(x);
inc(count);
case count of
1: x1 := x;
2: x2 := x;
3: x3 := x;
else
if (x > 0) and (x1 + x2 + x3 = x) then find := true
else begin
x1 := x2;
x2 := x3;
x3 := x;
end;
end;
until (x = 0) or (find);

if find then writeln('Find')
else writeln('Not find');

readln;
end.


?


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


Профи
****

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

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


klem4, "Найти первый положительный член", раз первый, значит могли бы быть и другие, значит прерывать ввод по find не надо. 0 тоже положительное число.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 25.10.2006 11:41
Сообщение #27


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

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

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


Malice, а как же быть с
Цитата
пользователь вводит последовательнось целых чисел, признак окончания ввода - 0.


?

Если делать выход по find, может возникнуть зацикленность, так как искомого числа до того как введен 0 может просто не быть ...

Если уточнить условие так что среди введенных чисел _точно_ есть искомое, то это меняет дело.


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


Профи
****

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

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


Цитата(klem4 @ 25.10.2006 12:41) *

Если делать выход по find, может возникнуть зацикленность, так как искомого числа до того как введен 0 может просто не быть ...

А ты говоришь "Маразм". smile.gif По find выходите _не надо_, об этом я и написал.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 25.10.2006 12:43
Сообщение #29


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

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

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


Все, понял smile.gif

uses crt;
var
x, x1, x2, x3, s : Integer;
count: Integer;
find: Integer;

begin
clrscr;
count := 0;
find := -maxint;
repeat
write('x = '); readln(x);
inc(count);
case count of
1: x1 := x;
2: x2 := x;
3: x3 := x;
else
if (x > 0) and (x1 + x2 + x3 = x) and (find = -maxint) then find := x
else begin
x1 := x2;
x2 := x3;
x3 := x;
end;
end;
until (x = 0);

if find <> -maxint then writeln('Find = ', Find)
else writeln('Not find');

readln;
end.


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


Профи
****

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

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


Цитата(klem4 @ 25.10.2006 13:43)
Все, понял smile.gif

скажи пожалуйста, что такое find := -maxint в твоей программе
и что такое count?

Сообщение отредактировано: volvo - 2.11.2006 12:55
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 25.10.2006 21:32
Сообщение #31


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


0 - это не положительное число! и не отрицательное.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 25.10.2006 21:42
Сообщение #32


Профи
****

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

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


Цитата(мисс_граффити @ 25.10.2006 22:32) *

0 - это не положительное число! и не отрицательное.

может ты мне объяснишь, что такое в последней проге klem4 count, find:=-maxint
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 25.10.2006 21:55
Сообщение #33


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


find:=-maxint
это мы присваиваем самое маленькое возможное значение. если find равен такой бяке, значит, подходящее число мы еще не нашли.

count - количество введенных чисел. если оно меньше 3, мы просто записываем новое число в подходящую переменную, а если больше - сдвигаем имеющиеся и в последнюю записываем.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 25.10.2006 22:49
Сообщение #34


Профи
****

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

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


Цитата(мисс_граффити @ 25.10.2006 22:55) *

find:=-maxint
это мы присваиваем самое маленькое возможное значение. если find равен такой бяке, значит, подходящее число мы еще не нашли.

count - количество введенных чисел. если оно меньше 3, мы просто записываем новое число в подходящую переменную, а если больше - сдвигаем имеющиеся и в последнюю записываем.

большое спасибо, что объяснила, теперь с заданием все ясно!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 25.10.2006 22:59
Сообщение #35


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


пожалуйста.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Reflex
сообщение 27.10.2006 14:03
Сообщение #36


Пионер
**

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

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


а... извините, неправильно поняла задачу я думал трех чисел, которые до этого числа встречались в массиве.


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

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

 



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