Python

Как научиться понимать и решать поставленные задачи в программирование?

Сколько раз я не программировал всегда натыкался на одну и ту же проблему, а именно: Я не знаю как, и о чем, думать, что-бы придумать решение задачи, если бы я мог знать, тогда для меня бы не существовало никаких сложностей в решениях задачи по программированию, и я бы с легкостью пера создавал бы программы, к примеру вот вам задача, у неё такое условие:
На вход программе подается натуральное число n, а затем n целых чисел. Напишите программу, которая создает из указанных чисел список их кубов.

Формат входных данных
На вход программе подаются натуральное число n, а затем n целых чисел, каждое на отдельной строке.

Формат выходных данных
Программа должна вывести список, состоящий из кубов указанных чисел.

//n = int(input())
//a=[]
//for i in range(1, n + 1):
// a.append(pow(i, 3))
//print(a)

Я ввожу 2 -5 -2 но получаю [1, 8] а нужно [-125, -8] Я просто не знаю как нужно изменить~дополнить~алгоритм что-бы добиться поставленной цели, это практический единственная проблема у меня на пути, и я заметил что научиться программированию это плевое дело, а вот придумать алгоритм реализующий программу очень сложно, на это уходят часы. :/
Просто ты тупой, а ваще то задачи учат формулировать и решать в 5м классе на физике
Сиёвуши Хочабег
Сиёвуши Хочабег
62 333
Лучший ответ
Тагир Исмагилов Причем здесь это? Если ты о задачи да я просто забыл дополнить условия задачи это задача из степика ht t ps: //stepik.org/lesson/327207/step/9?unit=310501 :/ ну я дополнил.
Ну в данном случае ошибка очевидна:

>На вход программе подаются натуральное число n, а затем n целых чисел
Ввод числа n я вижу, а где ввод остальных? Почему ты его не сделал? Тут не надо даже думать, надо тупенько следовать заданию.

Ну а в принципе, конечно, программирование - это не для всех. Меня в школе всегда поражало, с какого ж перепуга там преподают рисование и программирование. Если мозги под это дело соответствующим образом не заточены - ну не будешь ты рисовать как Айвазовский и программировать как какой-нибудь ван Россум, даже близко не получится.
Тагир Исмагилов Это понятно, я имею ввиду должен же быть какой-то способ придумывать алгоритмы для решения задачи? Как надо думать что-бы создавать программы? И решать поставленные задачи.
Что делает твой алгоритм пошагово разбери.
Вводит число n, затем берёт числа от 1 до n, и для этих чисел вычисляет кубы.
А тебе нужно ввести n, затем ввести n чисел, и для этих чисел вычислить кубы.
Тагир Исмагилов Я пробовал делать так но все равно не догоняю:
//n = int(input())
//a=[]
//for i in range(1, n + 1):
//if i >= 0:
// a.append(pow(i, 3))
// else:
// a.append(pow(-i, 3))
//print(a)
Но вопрос то не в этом, есть же какой универсальный подход к программированию? Дай человеку рыбу и ты обеспечишь его на один день, научи человек ловить рыбку и ты обеспечишь его на всю жизнь.
1. Ты вводишь только одно число, а не список.
2. Учись пользоваться дебагом. В программировании никто не пользуется догадками или сверхъестественными способностями. Программа выполняется пошагово и ты просто смотришь за ходом выполнения и состоянием переменных.
Вот и вся твоя "мега-программа"...

print([int(input())**3 for i in range(1,int(input())+1)])

Займись тогда чем-то другим - системным администрированием, веб-дизайном, поисковой оптимизацией.. Да есть хренова туча областей информатики, не связанных со скучной писаниной кода...
Ренат Измайлов
Ренат Измайлов
94 216
Тагир Исмагилов Я изучаю программирование только с одной целью - создать программу создающую программу, у меня глобальные планы на все, и я надеюсь что их реализую... :/ Если повезет конечно.
Для того, чтобы научиться программировать, надо прежде всего научиться структурированно излагать свои мысли на своём родном языке, в нашем случае, по-русски.
Т. е. для того, чтобы решить задачу, надо её декомпозировать: разбить на набор более простых подзадач. Каждую подзадачу при необходимости снова декомпозировать и так до тех пор, пока любая из полученных подзадач не станет совершенно тривиальной + её реализация не займёт более 30-40 строк кода.
Это и есть программироване. А перевод этого всего в код есть кодирование :-)
Денис Макеев
Денис Макеев
21 953