Introdução Bem-vindo Como Começar Meu Primeiro Programa     Resolvendo Problemas e Distribuindo Tranformando Dados Programas Interativos     Exercícios de Programação     Fazendo Games
Documentação Declarações     Procedimentos     Variáveis Construtores     Controle de Fluxo Expressões Bibliotecas     Print     IO     Random     Game Engine
Tutoriais Tutoriais Completos     Introdução à Programação     Guia Rápido     Exercícios de Programação     Programando Games

EXERCÍCIOS DE PROGRAMAÇÃO


Um hub completo de exercícios de programação, desafios e ideais;
cheio de dicas e links úteis para te ajudar a desenvolver suas habilidades





Como Usar Esse Hub da Melhor Forma

Bem-vindo(a), viajante, a este lugar exótico.
Aqui contêm informações úteis para pessoas de todos os níveis; especialmente para você.

A próxima seção vai te ajudar a começar a ter um mindset de resolução de problemas - essencial para criar softwares de computador incríveis.

O restante da página é dividida em diversas seções cheia de exercícios, aumentando a complexidade.
Isso não significa necessariamente que você precisa completar todos os exercícios, ou resolver eles nessain ordem. Apesar de ser de extremo benefício pelo menos passar pelo conteúdo de cada um e talvez resolver alguns exercícios antes de ir para os que você quer. E se você tiver tendo dificuldade, apenas volte alguns exercícios. Você pode progredir no seu próprio ritmo, indo mais devagar e refazendo os exercícios que você não tiver entendido completamente ou pulando os que você resolver facilmente.

Cada exercício contém uma explicação da interação pretendida e/ou saída do programa. Eles podem conter valores de entrada para você testar com casos diferentes, mostrando como o programa responde para diferentes entradas do usuário. Mas não sinta que você precisa fazer exatamente como os exercícios sugerem. Se você quiser tentar alguma coisa diferente, vá em frente. É assim que resultados novos e interessantes acontecem. Os exercícios servem mais como um guia ou um gerador de ideia se você não souber como progredir na sua própria jornada.
Depois de ler a explicação inicial, tente resolver o problema (mantendo em mente o mindset de resolução de problemas descrito na próxima seção).

Cada exercício contém uma série de dicas. Cada uma te ajuda a resolver o problema de forma cada vez mais explicita. Enquanto é desejável que você consiga resolver os exercícios com o mínimo de dicas possível, alguns problemas são realmente difíceis e as dicas estão lá para te ajudar! Mesmo se você conseguir resolver o exercício sem usar as dicas, você pode ler elas depois para insights valiosos. :)




Resolvendo Problemas de Programação

Quando você encontrar um problema de programação (ou qualquer tipo de problema, na verdade) pode ser muito útil quebrar ele em problemas menores e menores, até que eles sejam fácies o suficiente para você começar a resolver.
Por exemplo:
Crie um programa que some três números que o usuário digitar

Se você já resolveu problemas similares, já pode ter uma ideia de como começar; Preste atenção como (até automaticamente) você pensou sobre os passos necessários para resolver o problema.
Por exemplo, você pode escrever o mesmo problema de uma forma diferente:
1. Leia três valores
2. Some eles
3. Mostre o resultado

Isso pode ter sido suficiente para você começar mesmo que você não tinha certeza de como programar baseado somente na primeira descrição. Esses problemas podem ser quebrados ainda mais:
1. Declare uma variável
2. Atribua o resultado do
scan_int

3. Refaça os passos 1 e 2 para mais duas variáveis
4. Declare a variável resultado e atribua o seu valor para a soma das três primeiras variáveis
5. Chame
print_int
e passe a variável resultado

Dependendo do nível da sua habilidade, talvez você precise ir até o final e escrever uma descrição ainda mais detalhada do problema, ou talvez você consiga já ir escrevendo o código depois de ler o problema.
Não se deixe enganar, existem problemas que vão exigir que você os divida mesmo já tendo muita experiência em programação.

Vamos para um exemplo mais complicado:
Dado o número de segundos, mostre o equivalente em dias, horas, minutos e segundos
Exemplo:
Digite o número de segundos: 3812
Isso corresponde a: 0d 1h 3m 32s

Nesse caso, talvez você não tenha certeza de como resolver esse problema, então talvez seja necessário quebrar o problemas em partes menores.
Uma forma simples que você pode pensar sobre esse problema é entrada, processamento e saída, ou:
1. Ler o número de segundos
2. Calcular os dias, horas, minutos e segundos
3. Imprimir os dias, horas, minutos e segundos

Mesmo isso não te ajudando com a parte dos cálculos do problema, pelo menos você já sabe por onde começar!
É importante observar que você não precisa saber tudo sobre o que vai programar antes de começar, especialmente por conta de que a medida que for trabalhando em problemas mais específicos, você terá que ver eles de forma diferente e ganhar mais entendimento sobre. Tornando mais fácil se você quebrar em problemas menores e resolver. Então quebre o problema o suficiente para você começar. Comece da parte mais fácil de resolver, implemente uma solução simples e quando não conseguir progredir, quebre o problema específico que estiver tendo. (Esse exercício vai aparecer mais pra frente, então não vou entregar muito mais coisa! :) )

Um ultimo exemplo para te deixar pensando sobre quebra de problemas:
Faça um jogo de Space Invaders

Assim como os outros exemplos, podemos quebrar da seguinte forma:
Faça o usuário controlar a nave na parte de baixo da tela
Faça o usuário atirar pra cima
Faça um inimigo que se movimente de acordo
Faça o tiro destruir o inimigo e faça os outros acelerarem
Faça os inimigos atirarem de volta
Faça a condição de fim de jogo
Faça a condição de vitória

Como você pode ver, quebrar um problema em partes menores deixa ele muito mais fácil de resolver. Se precisar, você pode quebrar o problema ainda mais (você pode ver os passos reais para fazer um jogo na página Fazendo Jogos.

Espero que isso tenha alimentado suas ideias para te ajudar quando tiver dificuldade em algum problema. As dicas vão te ajudar a quebrar problemas mais complexos em partes menores para que você possa desenvolver essa habilidade. :)

Agora vamos programar!




Primeiros Passos

Esses problemas necessitam de um entendimento básico de programação e conhecimento do procedimento print.

Olá, Vizzcoder!     [mostrar]

Rosas são Vermelhas     [mostrar]


Entrada, Processamento, Saída

Agora é hora de colocar em teste as habilidades que você aprendeu nas ginas anteriores.
Você terá que ler dados, operar com eles e mostra-los.

Seu nome     [mostrar]

O Ano Mais Importante da Minha Vida     [mostrar]

Retângulo     [mostrar]

Retângulo Min-Max     [mostrar]

Par=0, Ímpar=1     [mostrar]

Par=1, Ímpar=0     [mostrar]

Segundos e Minutos     [mostrar]

Dias, Horas, Segundos e Minutos     [mostrar]

Sistema de Combate de um RPG     [mostrar]


Introduzindo Condições

Condições são ferramentas fundamentais na programação.
Elas permitem que alguns instruções sejam executadas apenas em casos específicos. Combinado com a entrada do usuário, elas podem resultar em programas interessantes e engajantes :)
Para testar uma condição, você pode utilizar o construtor “se” ou “if”. Se você nunca usou eles, talvez seja interessante ir na documentação para aprender um pouco sobre condições, ou fazer algum tutorial embutido no Vizzcode. De qualquer forma, esses exercícios vão começar bem simples e ir aumentando a complexidade (resultando em programas cada vez melhores!)

Vamos nessa!

Verdadeiro ou Falso     [mostrar]

Expressando Comparações     [mostrar]

Operações de Verdade e Falsidade     [mostrar]

Execução Condicional     [mostrar]

Cobrindo Todos os Casos     [mostrar]

O Maior de Todos     [mostrar]

Vamos Brincar     [mostrar]

Eu Vou Lembrar Disso     [mostrar]

Eu Vou Melhorar Isso     [mostrar]

Sua Vez     [mostrar]

Estou Indo para uma Aventura     [mostrar]

Sua Própria Aventura     [mostrar]


Loops

Uma outra poderosa ferramenta que você tem a sua disposição é a habilidade de criar loops.
Tanto repetir a mesma instrução um número de vezes (até com variações entre elas) ou ficar fazendo um grupo de instruções enquanto, ou “while” uma condição for válida; é importante conhecer profundamente os loops.
Assim como o construtor “if”, os loops te permitem controlar o fluxo do programa.
No Vizzcode, você pode usar os construtores while e for para fazer um loop pelo programa. É recomendado que você leia um pouco sobre eles nesses links antes de começar a resolver os exercícios, mas as dicas estão lá para te ajudar!

Por Favor Digite um Número     [mostrar]

Quebrando o Loop     [mostrar]

Escolha sua Sorte     [mostrar]

Calculadora Completa I     [mostrar]

Conte até 10,000     [mostrar]

For Cada...     [show]

Três e Seus Amigos     [mostrar]

Elevado a     [mostrar]

Elevado a Todos Eles     [mostrar]

Calculadora Completa II     [mostrar]

Fatorial     [mostrar]

Tabela de Multiplicação     [mostrar]


Transformando Vários Valores

Conforme nós conversamos anteriormente, programação é na maioria das vezes transformar dados.
Quando estamos lidando com uma grande quantidade de dados do mesmo tipo, pode ser bem útil guardar eles dentro de um array.
Eles permitem que você itere pelos itens e opere com eles de forma bem fácil.
Você pode aprender sobre arrays aqui e esses exercícios vão colocar seus conhecimentos a prova.

É Isso Que Eu Disse     [mostrar]

Tudo Ao Contrário     [mostrar]

Mestre dos Números     [mostrar]

Mudança de Planos     [mostrar]

Algoritmo de Ordenação     [mostrar]

Eu Quero Mudar ESTE Número     [mostrar]

Consultando Múltiplos Dados     [mostrar]

Envelhecendo Bem     [mostrar]

Lista de Compras 9000     [mostrar]

Mais do Mesmo (Itens de Compra)     [mostrar]

Removendo Elementos     [mostrar]

Transformação Linear     [mostrar]

Batalha Naval     [mostrar]