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

Регистрация
6 Ноя 2012
Сообщения
103
Репутация
0
Спасибо
2
Монет
0
Сколько раз я не программировал всегда натыкался на одну и ту же проблему, а именно: Я не знаю как, и о чем, думать, что-бы придумать решение задачи, если бы я мог знать, тогда для меня бы не существовало никаких сложностей в решениях задачи по программированию, и я бы с легкостью пера создавал бы программы, к примеру вот вам задача, у неё такое условие:
На вход программе подается натуральное число 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] Я просто не знаю как нужно изменить~дополнить~алгоритм что-бы добиться поставленной цели, это практический единственная проблема у меня на пути, и я заметил что научиться программированию это плевое дело, а вот придумать алгоритм реализующий программу очень сложно, на это уходят часы. :/
 
1. Ты вводишь только одно число, а не список. 2. Учись пользоваться дебагом. В программировании никто не пользуется догадками или сверхъестественными способностями. Программа выполняется пошагово и ты просто смотришь за ходом выполнения и состоянием переменных.
 
Для того, чтобы научиться программировать, надо прежде всего научиться структурированно излагать свои мысли на своём родном языке, в нашем случае, по-русски. Т. е. для того, чтобы решить задачу, надо её декомпозировать: разбить на набор более простых подзадач. Каждую подзадачу при необходимости снова декомпозировать и так до тех пор, пока любая из полученных подзадач не станет совершенно тривиальной + её реализация не займёт более 30-40 строк кода. Это и есть программироване. А перевод этого всего в код есть кодирование :)
 
Что делает твой алгоритм пошагово разбери. Вводит число n, затем берёт числа от 1 до n, и для этих чисел вычисляет кубы. А тебе нужно ввести n, затем ввести n чисел, и для этих чисел вычислить кубы.
 
Вот и вся твоя "мега-программа"... print([int(input())**3 for i in range(1,int(input())+1)]) Займись тогда чем-то другим - системным администрированием, веб-дизайном, поисковой оптимизацией.. Да есть хренова туча областей информатики, не связанных со скучной писаниной кода...
 
Ну в данном случае ошибка очевидна: >На вход программе подаются натуральное число n, а затем n целых чисел Ввод числа n я вижу, а где ввод остальных? Почему ты его не сделал? Тут не надо даже думать, надо тупенько следовать заданию. Ну а в принципе, конечно, программирование - это не для всех. Меня в школе всегда поражало, с какого ж перепуга там преподают рисование и программирование. Если мозги под это дело соответствующим образом не заточены - ну не будешь ты рисовать как Айвазовский и программировать как какой-нибудь ван Россум, даже близко не получится.
 
Назад
Сверху