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

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

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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Гири, Составить нужный вес
сообщение
Сообщение #1


Новичок
*

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

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


Пусть имеется 10 гирь весом а1,а2,...,а10.Обозначим через Ск число способов,которыми можно составить вес к,
то есть Ск-это число решений уравнения а1х1+а2х2+...+а10х10=к,где Хi может принимать значения 0 или 1
(i=1,...,10).Получите с1,с2,...,с10.
Помогите написать пожалуйста))))

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


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

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

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


При чем тут массивы???

Прочти Правила и измени название на ИНФОРМАТИВНОЕ.
Иначе закрою.

Добавлено через 12 мин.
Кошмар. Нет слов.
ладно, вижу, что ошибка была не в названии, а в генокоде. Изменяю название сам.
Все-таки прочти Правила, а?..


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


Новичок
*

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

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


ладно ступил blush.gif
Главное помогите))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


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

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

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


Цитата(Zigfried @ 3.12.2009 20:41) *
Главное помогите))
А сам начинал делать?
Если да - покажи, что написал. Даже если мало и неправильно.


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


Новичок
*

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

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


начинал но всё что накатал у меня на компе в универе. Как я понял тут точно нужен массив из весов гирь больше ничего я непонимаю как это делать полностью. Особенно мне итрересно как тут можно перебирать все варианты корней уравнения(т.к. они зависят от того какой будет хi).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


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

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

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


Цитата(Zigfried @ 3.12.2009 20:59) *
Особенно мне итрересно как тут можно перебирать все варианты корней уравнения(т.к. они зависят от того какой будет хi).
Проще всего тут это делать рекурсией. Вы ее проходили? Вообще, процедуры проходили?


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


Новичок
*

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

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


нет я на 1 курсе учусь мы проходим массивы так что надо как то с их помощью решить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


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

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

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


Цитата(Zigfried @ 3.12.2009 21:17) *
нет я на 1 курсе учусь мы проходим массивы так что надо как то с их помощью решить...
БЕЗ помощи массивов никто ничего делать не будет, это само собой. Я тебя спрашиваю что ЕЩЕ можно использовать.

Можешь просто ответить, процедуры проходили? Ответь ДА или НЕТ, плз.


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


Новичок
*

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

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


нет процедуры не проходили

Сообщение отредактировано: Zigfried -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


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

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

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


Цитата(Zigfried @ 3.12.2009 21:58) *
нет процедуры нельзя

Ну а циклы? можно?

Я бы очень хотел посмотреть на твои попытки, которые у тебя в универе..


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


Новичок
*

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

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


циклы можно разумеется оператором case можно пользоваться если он тут нужен но единственное нельзя через go to решать препод тогда пристрелит на месте)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


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

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

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


Цитата(Zigfried @ 3.12.2009 22:04) *
циклы можно разумеется
Хорошо, пусть будет с циклами. Вот тебе решение (см. ниже), но в нем я специально испортил кое-что - одно выражение заменил на другое (кстати, замена получилась значимая). Сумеешь исправить - хорошо, нет - приходи, попробуем разобраться..

Цитата
но единственное нельзя через go to решать препод тогда пристрелит на месте)
За кого ты меня принимаешь?? norespect.gif я еще подойду и контрольный в голову сделаю.. adm.gif

const
n= 10;
w: array[1..n]of word= (1,2,3,4,5,6,7,8,9,0);

var
c: array[1..n+1]of word;
i,s,w0: word;


begin
Write('Available weights are: ');
for i:=1 to n do if w[i]>0 then Write(w[i],' ');
Write('Type in the weight to meet: ');
for i:=1 to n+1 do c[i]:=0;
ReadLn(w0);

for i:=1 to n+1 do c[i]:=0;
repeat
Inc(c[1]);
for i:=1 to n do if c[i]=2 then begin
c[i]:=0;
Inc(c[i+1])
end;
s:=0;
for i:=1 to n do s:=s+c[i]*w[i];
if s=w0 then begin
for i:=1 to n do if (c[i]>0)and(w[i]>0) then Write(w[i],' ');
WriteLn
end
until false;
ReadLn
end.

Успехов! smile.gif


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


Новичок
*

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

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


Спасибо за помощь всё испарвил и с успехом сдал задачу)))))))))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


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

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

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


Цитата(Zigfried @ 4.12.2009 21:24) *
Спасибо за помощь всё испарвил и с успехом сдал задачу)))))))))
Пожалуйста! smile.gif
Если тебя не затруднит, скажи, пожалуйста, тут, в теме, что нужно исправить и как, чтобы программа была правильной. Для потомков )).


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


Новичок
*

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

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


Я исправил until c[i]=10, и поставил ещё 1 условие if w[i]>0 then перед for i:=1 to n do s:=s+c[i]*w[i]; ну и по мелочи вес гирь с константы на ввод исправил)))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


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

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

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


Цитата(Zigfried @ 6.12.2009 16:23) *
Я исправил until c[i]=10,
Нет, не так no1.gif .
Слушай внимательно: в этот момент у тебя переменая i вообще не определена! Никогда не надейся на то, что по выходе из цикла она будет равна максимальному значению. Всегда используй переменные, которые САМ определяешь.
Дальше - откуда взялась 10 ?? Это что ли n? Ну так так и пиши тогда.
И последнее: я сделал, как ты написал - не-а, не пашет! smile.gif
Но место правильное, да.
Еще одна попытка..? smile.gif
Можешь задавать вопросы (кроме "что там написать" smile.gif).

Цитата
и поставил ещё 1 условие if w[i]>0 then перед for i:=1 to n do s:=s+c[i]*w[i];
А разве вес гири может быть отрицательным? blink.gif Извини, но я рассчитывал на нашу старую добрую Вселенную с нашей старой доброй физикой.. smile.gif


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


Новичок
*

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

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


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


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

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

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


Цитата(Zigfried @ 6.12.2009 20:21) *
Нет просто там при вводе нужно учесть всё и если пользователь ошибётся и введёт отрицательный вес гири он должен его отбросить
Просто нужно добавить проверку при вводе и заставлять перевводить, если отрицательное. Игнорировать отрицательные значения - это как-то странно выглядит.. Типа не ставить заплатки на штаны, а каждому встречному говорить: "здесь у меня дырка, вы туда не смотрите" smile.gif


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


Бывалый
***

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

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


Извиняюсь, за встревание, но мне нужна аналогичная проверка. Вот так возможно это сделать?:
...
repeat
writeln('vvedite neotrizatelnoe 4islo');
readln(i);
until i>=0;
...

Или, предполагалось как-то по другому?

Цитата
Типа не ставить заплатки на штаны, а каждому встречному говорить: "здесь у меня дырка, вы туда не смотрите"
lol.gif


--------------------
Само знание есть сила
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


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

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

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


Цитата(Вячеслав Людской @ 7.12.2009 13:01) *
так возможно это сделать?:
...
repeat
writeln('vvedite neotrizatelnoe 4islo');
readln(i);
until i>=0;
...

Или, предполагалось как-то по другому?
Конечно. Можно еще добавить что-то типа вывода "недопустимое число; повторите ввод:".

А по-другому - это только если отказываться от ReadLn и делать посимвольный ввод. Тут это абсолютно лишнее.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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