Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не могу решать задачи по программированию! Помогите!

Еретик Знаток (452), на голосовании 4 года назад
Всем привет! Я студент 1 курса информационных технологий. Мы изучаем C++. Когда нас обучают этому языку, то я всё понимаю абсолютно всё. Усваиваю все темы от А до Я. Но когда дело доходит до задач, то я сразу же встаю в ступор. Не знаю с чего начать, или не знаю алгоритм кода. Чувствую себя каким то жалким на фоне других. То есть в какой то задаче надо решить то что не объяснялось в какой либо теме про c++. Будь то массивы, циклы и т. д. То есть мы сами должны как то догадаться как решать задачу, какой именно должен быть код и алгоритм. И тут дело не в моей логике. С логикой у меня все хорошо, могу решить любую логическую задачу, только ту которая не связано с программированием. Я знал на что иду, и на кого поступаю учиться. Когда мои одногруппники набираю высокие баллы по тестам, а я меньше всех, то мне становиться очень обидно и я как бы психологически и морально ломаюсь. Ну как так? Я не глупый, не отсталый... Что со мной не так? Как другие решают ОДНУ задачу за 5 минут? Почему я решаю ОДНУ задачу целый час? Просто не понимаю.... Может, кто то знает как с этим справиться?
Голосование за лучший ответ
Alexey Prochorenko Оракул (55128) 4 года назад
решай типовые задачи и потом само начнет получаться
ЕретикЗнаток (452) 4 года назад
Что за типовые задачи?
Alexey Prochorenko Оракул (55128) ну типа сортировка разными методами итп
Jurijus Zaksas Искусственный Интеллект (424050) 4 года назад
А с математикой у тебя как?
Решение задач в программировании ничем не отличается от решения математических задач. Сначала выполняется декомпозиция задачи (разбиение на простые действия), потом рекомпозиция этих действий в готовое решение. Либо твои мозги умеют это делать, либо у тебя ГСМ и ничего не поделаешь.

Примерчик.

Кусок мыла имеет форму прямоугольного пяраллелепипеда. Мылом мылись 7 дней. При этом его длина, высота и ширина сократились вдвое. На сколько дней хватит остатка мыла?

Декомпозиция:

1. Узнать остаток мыла.
2. Узнать расход мыла за 7 дней
3. Узнать расход за день (общий расход / 7 дней)
4. Поделить остаток на дневной расход

Рекомпозиция:

1/2*1/2*1/2=1/8
1-1/8=7/8
7/8:7=1/8
1/8:1/8=1
Заур ЯндарбиевУченик (248) 2 года назад
гсм что это?
Заур Яндарбиев, Гуманитарный склад ума
... Мыслитель (8101) 4 года назад
Как то не задумывался над этим. А при решении думаю вот как: какое условие задачи, что известно, например, какие либо данные, как при помощи этих данных могу решить данную задачу. Если имеется инструмент для решения, это либо мат. формулы, или яз. программирования, то исходя из знаний инструмента уже применяешь к данной задачи. Почитай книги по алгоритмам.
Я Красавчег Мыслитель (8252) 4 года назад
Приведите пример задач, на которых у вас ушло много времени на решение. Так тяжело судить, не зная от чего толкаться.
Victor Surozhtsev Просветленный (34193) 4 года назад
Надо просто этого "чёртика" из головы убрать, который тебе то и дело нашёптывает: "Не могу решать задачи по программированию!".

Компьютер есть? Пусть даже карманный - например, тот же смартфон с приложением для С++. Берёшь любые задачи - на площади и объёмы фигур, на поиск пифагорейских трóек для целых чисел (k²+l²=m²), на вероятность и статистику, на решение разного рода уравнений и их систем, на поиск оптимумов, на симуляцию физических явлений и процессов - и спокойненько решаешь их на компьютере. С этим вообще никаких проблем возникать не должно!..
Лайт Ягами Искусственный Интеллект (281792) 4 года назад
Программа - это, грубо говоря, последовательность действий.
Подумай, как бы ты решил бы задание по шагам, и точно то же напиши в программе на нужном тебе языке программирования.
Григорий Каринов Мастер (2396) 4 года назад
Умение решать задачи по программированию придёт не сразу, а после некоторого опыта. Чтобы решить какую-то задачу, необязательно изобретать свой алгоритм, большинство алгоритмов были разработаны ещё до появления программирования. Если я хочу приготовить салат оливье зачем мне изобретать рецепт для этого салата, если он уже есть? Я могу просто открыть книгу с рецептами и найти там рецепт салата оливье, согласно этому рецепту я приготовлю салат. Тоже самое и в программировании. Например, поставлена такая задача найти наибольший общий делитель для двух чисел, мне нужно написать код который бы вычислял из двух целых чисел НОД, есть несколько алгоритмов чтоб вычислить НОД, я просто захожу в Google и пишу запрос "алгоритмы нахождения НОД" и первым в списке попадается алгоритм Евклида, захожу на сайт и изучаю реализацию алгоритма, и на основе этого начинаю писать код. Можно также найти готовый пример с кодом, но прежде чем смотреть готовый пример, надо попробовать самому написать код, если не можешь, в Google ищешь готовые примеры и изучаешь их, важно не просто скопировать и вставить, а именно изучить код и понять что делает каждая строчка кода. Вообщем изучай не просто язык программирования, а само программирование. Есть учебники по программированию где обучают именно программированию, а есть учебники с конкретным языком программирования, различие между ними в том что в первом случае, в учебнике уделяется больше всего именно основам программирования и разным её приемам, там тоже используется язык программирования, но больше всего уделяется обучению программированию. Во втором случае в учебнике уделяется именно языку программирования, обычно в таких учебниках предполагается что читатель уже знаком с программированием, но хочет изучить язык программирования. Когда ты пытаешься изучать программирование, купив книгу по конкретному языку ты по сути изучаешь сам язык а не программирование, там программирование ток отчасти. С++ сложный язык для первого обучения, лучше начать с чистого C хотя он тоже сложный, но если постараться то его можно изучить, C является структурным языком программирования, языки вышедшее после него такие как C++, Java, C#, PHP унаследовали синтаксис от чистого C так что изучив C ты не теряешь ничего, изучив C можно изучить и др языки вышедшее после него.

Несколько источников которые помогут тебе изучать программирование:
1. Основы программирования от Гарвардского университета CS50, цель этого курса не научить тебя программировать на каком то конкретном языке, а научить мыслить тебя алгоритмически и познакомить с программированием и что из этого представляет. Все лекции по CS50 находятся тут bit.ly/2QxDQnF дополнительные видео к лекциям можно найти тут bit.ly/2MX9YAV Посмотри хоть один урок из этого курса, и ты поймешь что обучении в твоей шараге не сравнится с этим.
2. Книга "КАК ПРОГРАММИРОВАТЬ НА С авторы Харви Дейтел, Пол Дейтел" чтобы научиться программировать недостаточно смотреть видеолекции но надо и читать, эта книга поможет изучить язык и научит различным способам программирования, каждая глава имеет контрольные вопросы и упражнения, чтобы читатель мог закрепить изученную тему. Скачать её можно тут bit.ly/31r6dJc
Похожие вопросы