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

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

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

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


Новичок
*

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

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


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

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


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

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

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


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

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

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


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


Новичок
*

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

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


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


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

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

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


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


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


Новичок
*

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

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


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


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

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

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


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


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


Новичок
*

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

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


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


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

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

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


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

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


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


Новичок
*

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

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


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

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


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

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

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


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

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

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


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


Новичок
*

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

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


циклы можно разумеется оператором case можно пользоваться если он тут нужен но единственное нельзя через go to решать препод тогда пристрелит на месте)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 3.12.2009 23:59
Сообщение #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 
 К началу страницы 
+ Ответить 
Zigfried
сообщение 4.12.2009 21:24
Сообщение #13


Новичок
*

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

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


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


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

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

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


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


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Zigfried
сообщение 6.12.2009 16:23
Сообщение #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 
 К началу страницы 
+ Ответить 
Lapp
сообщение 6.12.2009 19:47
Сообщение #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 
 К началу страницы 
+ Ответить 
Zigfried
сообщение 6.12.2009 20:21
Сообщение #17


Новичок
*

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

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


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


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

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

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


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


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


Бывалый
***

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

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


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

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

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


--------------------
Само знание есть сила
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 7.12.2009 19:20
Сообщение #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

 



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