Problemas com Lógica e não com Java

Sou estudante de Ciência da Computação na Unifor/Ceará.
Sou novo aqui no GUJ e não sei se esta é a seção certa para minha dúvida. Caso contrário favor mover.

Estou fazendo a cadeira de logica de programação. O professor usa portugol na sala de aula, e Java no laboratorio.
Eu ja tinha feito um curso de java basico antes de entrar na faculdade, então a sintaxe e noções de OO não são um problema para mim.

Mas aula passada, o professor passou um problema, e eu logo abri o eclipse e fui querer resolver, escrevendo código java. Na certa não me dei bem.
O monitor da turma me disse o seguinte: esquece o java, pega uma caneta e papel, pensa em como resolver o problema, sem pensar em código, que tudo se resolve".

Alguma dica para um novato? Acho que esse deve ser um erro comum para quem esta iniciando.

[quote=thiagoponte]Sou estudante de Ciência da Computação na Unifor/Ceará.
Sou novo aqui no GUJ e não sei se esta é a seção certa para minha dúvida. Caso contrário favor mover.

Estou fazendo a cadeira de logica de programação. O professor usa portugol na sala de aula, e Java no laboratorio.
Eu ja tinha feito um curso de java basico antes de entrar na faculdade, então a sintaxe e noções de OO não são um problema para mim.

Mas aula passada, o professor passou um problema, e eu logo abri o eclipse e fui querer resolver, escrevendo código java. Na certa não me dei bem.
O monitor da turma me disse o seguinte: esquece o java, pega uma caneta e papel, pensa em como resolver o problema, sem pensar em código, que tudo se resolve".

Alguma dica para um novato? Acho que esse deve ser um erro comum para quem esta iniciando.[/quote]

Essa dica que o seu monitor te deu é a melhor! Realmente é isso, esquece o Java, pega papel e caneta e faz.

Tenta criar instâncias pequenas do seu problema e resolve-las manualmente, por exemplo, se envolve vetores, com 1 elemento, depois com 2, 3 e assim por diante até vc se sentir confortável com a ressolução. Depois tenta entender o que você tá fazendo pra resolver o problema e transformar isso em passos, feito isso, passe esses passos pra algoritmo e pronto!! :smiley:

Boa sorte!

Olá,

Realmente concordo com seu monitor e com o amigo acima. Divida o problema para resolver. Pense em partes, em passos.
Lembre-se: dividir para conquistar!

[]´s

Papel e caneta realmente são importantes ae, pois você pode visualizar melhor o seu problema. Passe o algoritmo para o papel, e reproduza a execução por partes. Isso te dará visão da resolução do problema.

Se aceita mais uma dica: compre uma prancheta!
Sério, me ajudou absurdamente!
Uso a mesma prancheta desde a disciplina de Estrutura de Dados, onde fiz meus testes de mesa e desenvolvimento do raciocínio de “milhares” de códigos, já tem até um valor sentimental =P (a prancheta to poder! ooooooooooOOOOOOOOOOOOHHH!!)

Ter uma régua de fluxograma ajuda bastante.

Ai ja prefiro fazer na mão, particularmente eu perderia muito tempo usando essa régua pra esboços e como ninguém mais faz os fluxogramas (quando fazem) na mão acabaria servindo de enfeite na minha mesa =P

Obrigado pelas dicas.
Eu vou dar um tempo no Head First Java, e focar mais na lógica por enquanto.
Nas férias de fim de ano, eu volto pra ele.

Não se preocupe. Com a experiência, esse tipo de recurso diminui para algoritmos mais simples.

Entretanto, quando a coisa pega, a gente sempre volta pra ele. Nós aprendemos a pensar em portguês desde pequeno. E java é uma linguagem de programação, não uma natural. É por isso que não conseguimos exprimir certas complexidades diretamente em Java.

Eu mesmo escrevo pseudocódigo diretamente no lugar onde deveria ter o programa, em forma de comentários.

Depois, para cada linha do pseudo-código, eu vou divindo em novas linhas, detalhando, refinando. em determinado momento, o algoritmo está ali, claro, na minha frente. Então vasta escrever as instruções correspondentes aos comentários logo abaixo deles e voilá! Temos um algoritmo comentado, de quebra!