Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1] 2 3  Все   Вниз
  Печать  
Автор Тема: Нужны задачки  (Прочитано 76307 раз)
0 Пользователей и 14 Гостей смотрят эту тему.
Taurus727
Постоялец

ru
Offline Offline
Пол: Мужской

« : 14-05-2007 19:15 » 

Помогите начинающему программировать на Си++ с задачами. Может быть есть ссылки на сборники задач или у вас чего завалялось. Просто учить язык на примерах не реально. Необходима цель. Ее постановка. И решение, соответственно. Разработать логику (алгоритм) решения задачи мне не сложно.Опыт программирования на других языках имею, правда очень сложно перейти с прямых как палка ассемблера с его абсолютными и относительными переходами и бейсика, где goto один из основных операторов на объектно ориентированное программирование где goto вообще считается плохим стилем программирования. Только задачи нужны для консольных приложений - я пока на самом начале и в программирование оконных приложений не лезу иначе утону. В общем дайте задание Улыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 14-05-2007 19:16 » 

Taurus727, задание - напиши игру , скажем, тетрис )
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 14-05-2007 19:19 » 

насчёт goto - я начинал знакомство с языками в таком порядке - сначала бейсик, потом ассемблер, паскаль, си++.

на си++ мне просто ни разу даже в голову не пришло использовать goto - он там просто физически не нужен )  Вот так.
Записан

Taurus727
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 14-05-2007 19:43 » 

Я имел такой же порядок Улыбаюсь только на паскале почти не писал, так ознакомился чуть. Ну я ведь третий день им занимаюсь (Си++).. Мне простительно. А на счет тетриса - пока до графики не дошел. О тетрисе уже думал Ага
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 14-05-2007 19:49 » 

Taurus727, а зачем там тебе графикО ? )) Старые добрые букаффки подойдут Ага
Записан

nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 14-05-2007 19:49 » 

Я помню раза два использовал.
А начать можно с крестики нолики, или карточная игра в дурака, при этом минимум графики, а вместо карт обозначения буквенные. А если не игры, то можно реалихзовать метод Гауса для решения СЛАУ, вполне полезно, имхо Улыбаюсь
Записан

ещё один вопрос ...
Taurus727
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 14-05-2007 19:58 » 

Мне ближе игры Улыбаюсь а Гаус... СЛАУ... Сие понятия мне не знакомые Улыбаюсь думаю "дурак" тут есть о чем задуматься, спасибо. А тетрис алгоритм простой. Я писал на 2 языках в свое время. Пока не знаю как делать вывод в определенной области экрана (консольное приложение). Всякие printf() и cout<< не позволяют координатный вроде как. Как вариант подошло бы просто обновление экрана и начало вывода с верхнего левого угла, так можно координатную систему реализовать самостоятельно. Но пока не понял как делать нечто типа cls Улыбаюсь - беру лопату и копаю справочник дальше...
Записан
nikedeforest
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 14-05-2007 20:02 » 

Делай как чат.
Очистка экрана cltscr(); библиотеку надо еще подрубить, кажется conio.h, но не уверен.
Записан

ещё один вопрос ...
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #8 : 15-05-2007 08:39 » 

Я бы предложил такие задания для осваивания ООП. С увеличением сложности

1. Объект типа дробь (операции: ввод, вывод, мат. операции)

2. Строка (операции какие не лень Ага )

3. Графическая фигура (базовый класс) + производные от него - треугольник, линия и тд.

В последнем случае отображать графику не обязательно, можно просто отслеживать изменение данных. В дальнейшем можно перейти и к графическому отображению.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 15-05-2007 09:06 » 

не вижу разницу в оконных и консольных приложениях. Улыбаюсь

Задача - изучить ООП
для оконных приложений
1. принять как аксиому наличие объектов "окна"
2. создать СОБСТВЕННЫЙ объект, с характерными для него свойствами и методами
3 создать потомка

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

в консольных приложениях проверять работу объекта
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Taurus727
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 15-05-2007 10:04 » 

Для меня разница между консольным и оконным интерфейсом видится так, что когда я создаю консольное приложение я умещаю все в файле ххххх.срр и там ковыряю логику. Изучаю функции самого С++, а когда я делаю проект вин32 то VisualSTUDIO2005 создает мне гору файлов в которых я теряюсь. Ибо пока не разобрался что есть класс и так далее. А ВС генерирует мне по умолчанию все это и я даже пока не могу понять куда и что мне прописывать... Реакции на кнопки и так далее. Вот я и думаю что не зная самих принципов С++ сразу создавать окноное приложение равнозначно неумеющему плавать нырять с яхты Улыбаюсь //ЗЫ: про очистку консольного окна и позиционирование курсора функция clrscr() в борландовском conio, у меня ВС2005. Такого нет. В интернете накопал рукописные функции для этих целей. Эксперименты продолжаются.
Записан
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 12-07-2007 06:19 » 

Кстати, я тоже в свое время тетрис для консоли написал, было прикольно. Улыбаюсь
Записан
Taurus727
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 16-07-2007 20:34 » 

Щас временно был выброшен из темы программирования по причине сессии... Месяц вон из жизни. Плюс щас перспектива смены работы есть и поневоле пришлось начать изучение 1с Жаль блин такая это гадость... Поэтому моя активность попритухла Жаль
Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 17-07-2007 06:07 » 

и поневоле пришлось начать изучение 1с Жаль блин такая это гадость...
Это жизнь такая Улыбаюсь

Гадость.... предложи лучшее
и найдутся  люди которые скажут "Гадость"
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Taurus727
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #14 : 17-07-2007 06:55 » 

Гадость не потому, что продукт плохой Улыбаюсь а потому что... Действительно... Почему гадость...
Записан
Sardukar
Гость
« Ответ #15 : 11-02-2008 13:54 » 

в общем тема немного устарела, но если понадобится выкладываю задачи по С С++ Приднестровского Государственного Университета им. Шевченко.

* задачи_С_С++.rar (79.4 Кб - загружено 4755 раз.)
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #16 : 11-02-2008 14:33 » 

Зачем сразу тетрисы и прочие аркады, карты? Можно ведь попроще: консольные приложения с потоковым вводом-выводом делать. Диалоговые. Морской бой - типичная игра, в которой картинка н экране не обязательна (юзер может и на листочке нарисовать, а компьютеру картинка вообще не нужна). Чистое программирование с минимумом зависимостей от всяких левых библиотек и графическими мучениями. Ещё разные логические задачки встречаются.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
rumpelstilzchen
Тролль
*
ru
Offline Offline

« Ответ #17 : 20-02-2008 12:03 » 

Taurus727, Вот есть очень интересная задача.
Мы имеем кучу камней. Масса каждого камня идивидуальна. Колличество камней - произвольное и меняющееся. Нужно разделить кучу, на две кучи так, чтобы по массе, эти две кучи отличались минимально.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #18 : 20-02-2008 12:17 » 

это тип "транспортная задача" , если не ошибаюсь )) Решается тупо перебором
Записан

rumpelstilzchen
Тролль
*
ru
Offline Offline

« Ответ #19 : 20-02-2008 12:19 » 

ну реши )
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #20 : 20-02-2008 12:26 » new

сейчас решу
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #21 : 20-02-2008 12:52 » 

перебор даже не потребовался )

имеется две пустые кучки.
Код:
//M - номер кучки, с которой работаем, 1 или 2 , переключается по команде "инвертируем".

int M=1;
for(;;)
{
   ищем в оставшихся свободными камнях камень максимальной массы, кладём в кучку M;

   int W1=масса 1 кучки;
   int W2=масса 2 кучки;

   if(M==1)   
  {
    if(W1>W2)
    {
        инвертировать M;
    }
  }
  else
  {
    if(W2>W1)
    {
        инвертировать M;
    }
  }

  if(камни кончились?) break;

}
« Последнее редактирование: 20-02-2008 12:53 от Алексей1153++ » Записан

rumpelstilzchen
Тролль
*
ru
Offline Offline

« Ответ #22 : 20-02-2008 13:31 » 

где гарантия что это самое оптимальное решение? И где гарантия, что другая конфигурация камней, не являеется более приближенной к требуемому решению?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #23 : 20-02-2008 13:40 » 

rumpelstilschen, Если по быстрому, то это "жадный алгоритм". По медленому, как сказал Леша, перебор. Кстати, гарантии только страховые компании дают, и то не всегда выполняют.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #24 : 20-02-2008 14:04 » 

Массу камней делим пополам. Получаем идеальную массу Ми. Теперь из всех камней выбираем те, сумма которых ближе всего подходит к Ми. Остаток кидаем во вторую кучу.
« Последнее редактирование: 20-02-2008 14:06 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #25 : 20-02-2008 15:03 » 

где гарантия что это самое оптимальное решение?

своё в студию.

И где гарантия, что другая конфигурация камней, не являеется более приближенной к требуемому решению?

такой алгоритм - чуть вышли за краешек - меняем полюс, и туда добавляем. А то, что добавляем каждый раз самый тяжёлый из камней, обеспечивает, что дальше весА будут только меньше (хоть и похоже на каламбур Улыбаюсь ) Нарисуй на бумажке весА в виде отрезков - и поймёшь, о чём я Улыбаюсь
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #26 : 20-02-2008 15:57 » 

Не Лёш, может получится так, что лучше было бы взять 99 маленьких, чем один большой. Поэтому надо стремиться набрать точную половину, это и будет гарантией выполнения условия, в идеале у тебя гарантированно получатся две равные по массе кучки. Если же это в прниципе невозможно, то разница между ними будет минимальной.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #27 : 20-02-2008 16:02 » 

Джон, в условии задачи - подобрать массу , то есть один параметр, а про количество (второй параметр) не сказано Улыбаюсь
Записан

Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #28 : 20-02-2008 23:10 » 

А где я говорю про количество? У меня тоже один параметр. А количество - это следствие. Ты можешь в одну кучу положить N-1 камней, а во второй останется только N-ый. САмое главное что выборка происходит из всех изначальных камней - этим достигается максимальная точность.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #29 : 21-02-2008 04:56 » 

Джон, а пока ты будешь подбирать две кучки камней с примерно одинаковой массой - сколько кода при этом выполнится? Мынога. А у меня к этому времени уже будет решение
Записан

Страниц: [1] 2 3  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines