Exercícios de lógica de programação iniciante

Seja bem vindo(a) a seção Lógica de programação!

Eu criei essa seção (re)pensando uma forma mais eficiente de ensinar a lógica de programação.

Este curso é diferente de tudo o que você viu sobre lógica (bem diferente daqueles exercícios toscos da faculdade).

Veremos lógica do ponto de vista de 3 linguagens: C (e C++), Python e JavaScript (Node.js) todas elas acompanhadas de testes unitários. Ou seja, você saberá que o seu código está certo quando os testes estiverem passando.

Se precisa de informações sobre as linguagens, veja as seções abaixo…

  • C
  • Python
  • JavaScript
  • Node.js

Talvez você precise saber um pouco sobre testes unitários e também um pouco sobre o Linux pois iremos utilizar muito o terminal.

Lista de Exercícios nível 0

Mais fácil que a Seleção Brasileira…

Lista de Exercícios nível 1

Vai exigir um pouco mais de atenção.

Lista de Exercícios nível 2

Lista de Exercícios nível 3

Exercícios para treinar laços de repetição.

Lista de Exercícios nível 4

Exercícios para treinar vetores.

Ainda exercícios para treinar vetores, mas desta vez utilizando strings.

Lista de Exercícios nível 5

Exercícios para treinar programação orientada a objetos.

Neste nível veremos como aliar os exercícios de lógica com a programação orientada a objetos. Você perceberá que os exercícios são de fácil resolução, pois o objetivo é mais entender o paradigma OOP do que exercitar o raciocínio lógico.

Lista de Exercícios nível 6

Exercícios para treinar recursividade.

Lista de Exercícios nível 7

Exercícios para treinar algoritmos já consagrados.

Lista de Exercícios nível 8

Exercícios para treinar ponteiros.

Ponteiros Trocar o valor de duas variáveis utilizando ponteiros

Lista de Exercícios nível 9

Introdução ao Projeto Euler.

Apresentando o projeto Euler Problema 01 do Projeto Euler

Chuck Norris

Se você chegou até aqui e não se deu por satisfeito é porque você é discípulo de Chuck Norris, rssssss.

Bom, aconselho os trabalhos do professor de Ciência da Computação da USP Paulo Feofiloff.

  • Projeto de Algoritmos em C

Mas esse não é o único, veja outras publicações do professor no link abaixo.

  • http://www.ime.usp.br/~pf/

Exercícios de lógica de programação iniciante

Fonte da imagem: Vida de programador

Meu objetivo ao criar o blog { Dicas de Programação } era ajudar pessoas interessadas em aprender programação compartilhando dicas e ensinamentos sobre desenvolvimento de softwares em geral.

Com o tempo, foquei em criar mais conteúdo voltado para iniciantes em desenvolvimento de softwares. E hoje vejo que meus posts ajudaram (e ainda ajudam) muita gente ao redor do mundo. Regularmente recebo e-mails com agradecimentos e isso é muito gratificante!

Exercícios de lógica de programação iniciante

Mas infelizmente fiquei um longo tempo sem criar novos conteúdos aqui no blog. E agora estou voltando a criação de conteúdos por aqui.

E nada melhor para recomeçar os trabalhos do que a criação de um e-book gratuito. Concorda?

Continue lendo para saber como ter acesso a um minicurso e um e-book GRATUITO sobre Lógica de Programação.

Primeiro uma pesquisa!

Antes de voltar a escrever qualquer conteúdo por aqui, eu queria saber que assunto eu deveria focar mais.

E para começar bem eu fiz uma pesquisa entre os alunos inscritos no meu minicurso GRATUITO de lógica de programação para saber que tipo de conteúdo eu deveria criar.

Dentre as centenas de respostas, o resultado variou bastante e no final eu agrupei nos seguintes tópicos:

  • Programação do Zero (Lógica de programação)
  • Programação Backend (Java, C#, PHP, Python, Ruby) - Web/Desktop
  • Bancos de Dados (MySQL, Oracle, SQL Server, Postgres)
  • Programação Frontend (HTML5, CSS3, Javascript (EC6), SASS) - Web
  • Desenvolvimento Mobile (Android, IOS, Híbrido, PWAs, etc.)

O resultado foi uma grande margem para os interessados em aprender Programação do Zero. Conforme você pode ver a distribuição das respostas no gráfico abaixo.

Exercícios de lógica de programação iniciante

Ok, agora já sei quais assuntos devo focar para a retomada da produção de conteúdos para o blog.

E para começar, revisitei o meu bom, velho e ainda muito atual ...

Minicurso GRATUITO de Lógica de Programação para Iniciantes

Talvez você já saiba, mas há um tempo atrás eu criei um minicurso GRATUITO de lógica de programação.

Este minicurso acontece por e-mail e a cada dia você recebe uma lição direto na sua caixa de entradas. Ou seja, ao invés de você receber todo o conteúdo de uma vez, você recebe as lições a cada 24 horas. Dessa forma você tem tempo para digerir a lição aprendida, com calma.

Além do conteúdo teórico, o minicurso também tem alguns exercícios sugeridos que vão fazer você exercitar o que acabou de aprender, você terá tempo de resolver o exercício e em seguida eu envio no seu e-mail a minha própria solução para o exercício proposto. No final do minicurso você ainda é desafiado a criar um jogo da velha sozinho!

Por estar configurado para funcionar de forma automática, este minicurso já conta com dezenas de milhares de alunos ao redor do mundo.

Muitos inscritos são alunos de fora do Brasil, países que também falam português como Angola e Portugal.

E para ajudar ainda mais os iniciantes em programação eu revisitei todo o conteúdo do minicurso, melhorei algumas partes com o feedback que recebi ao longo do tempo e agora decidi incrementar este minicurso criando um e-book!

E-book GRATUITO de Lógica de Programação para Iniciantes

Um dos feedbacks que mais recebi dos alunos é que o conteúdo está todo dissolvido nos e-mails.

Muitos alunos estavam tão empolgados com as primeiras lições que estavam com "sangue nos olhos" para acessar as próximas lições e o e-mail não chegava logo, rs.

Nem sempre isso é bom, mas eu fui convencido a entregar todo o conteúdo de uma vez!

Criei um e-book com todo o conteúdo do minicurso. Isso mesmo, todo o conteúdo do minicurso está concentrado no e-book que você receberá logo na primeira lição.

Os alunos antigos já receberam o e-book e muitos deles acabaram confessando que não terminaram o minicurso no passado. Mas estão super empolgados novamente para retomar os estudos.

E agora chegou a sua vez! Você também pode receber GRATUITAMENTE o minicurso por e-mail e o e-book de lógica de programação. Basta clicar no link abaixo e se inscrever!

>>Quero receber o minicurso e o e-book GRATUITO de lógica de programação

Espero que aproveite! Bons estudos!

Exercícios de lógica de programação iniciante

Nas primeiras aulas desse capítulo, ficamos conhecendo os tipos básicos de dados, o que são variáveis e como podemos declarar identificadores para elas. Em seguida, estudamos os operadores aritméticos, relacionais e lógicos e qual a prioridade de execução de cada uma deles. Para que possamos dominar esses conceitos, preparamos para você alguns exercícios de lógica de programação para iniciantes.

1 – Responda às questões apresentadas a seguir (Conteúdo abordado em “Tipos de dados, variáveis e identificadores“):

a) Quais os 4 tipos básicos de dados? Dê exemplos.
b) O que são identificadores e quais regras devemos seguir ao criá-los? Dê exemplos.

Respostas

a) Os quatro tipos de dados básicos são os números inteiros, reais, lógicos e os caracteres. O tipo inteiro representa informações numéricas que pertencem aos números inteiros, como 10, -6, 8, 1 etc. Os dados do tipo real são os números decimais, como por exemplo, 10.0, 3.14, 1E3, -5.5, etc. Já os tipos de dados lógicos representam informações que podem assumir apenas dois valores, como 0 e 1, verdadeiro ou falso, ligado ou desligado, aberto ou fechado, etc. Por fim, os caracteres representam as informações no formato de símbolos e letras, como “0”, “A”, “&”, “*”, etc.

b) De forma geral, os identificadores são os nomes que damos às variáveis dos nossos algoritmos. Eles devem sempre começar com um caracter alfabético, não podem conter caracteres especiais ou símbolos de operações aritméticas, como “*”, “&”, “>”, “/”, “*”,”+”,”-“, e nem podem utilizar palavras reservadas a outros comandos do algoritmo, como “pot”, “rad”, “sqrt” e outros comandos que veremos nas próximas aulas.

2 – Assinale quais os identificadores da lista abaixo podem e quais não podem ser utilizados em algoritmos, justificando sua resposta no caso do identificador ser inválido (Conteúdo abordado em “Tipos de dados, variáveis e identificadores“):

Respostas

a) Identificador inválido por utilizar o símbolo reservado para a divisão: “/”

c) Identificador inválido por iniciar com um caracter numérico

f) Identificador inválido por conter um hifen, mesmo caracter reservado para a subtração

h) Identificador inválido, por conter um caractere especial: “#”

j) Identificador inválido, por já estar reservado à função que tira a raiz quadrada de um número: sqrt(x)

k) Identificador inválido, por já estar reservado à função que obtém o quociente da divisão: x div y

3 – Identifique o tipo (inteiro, real, caracter ou lógico) de cada um dos dados abaixo (Conteúdo abordado em “Tipos de dados, variáveis e identificadores“):

Respostas

4 – Reescreveeva as expressões matemáticas abaixo, empregando os operadores utilizados em pseudolinguagem (Conteúdo abordado em “Operadores aritméticos, relacionais e lógicos”):

a)

b)

c)

d)

e)

f)

Respostas

a) pot(4,2)+8/4+sqrt(5*2-1)

b) Delta = pot(b,2)-4*a*c

c) x = (-b + sqrt(pot(b,2)-4*a*c))/(2*a)

d) D >= sqrt(pot(x2-x1,2)+pot(y2-y1,2))

f) y <= pot(x,4) + 4*pot(x,3) + 6*pot(x,2) + 4*x + 1

5 – Supondo que A, B e C são variáveis do tipo inteiro, com valores iguais a 5, 10 e -8, respectivamente, e D uma variável real com valor de 1.5, efetue as expressões aritméticas a seguir (Conteúdo abordado em “Operadores aritméticos, relacionais e lógicos”):

c) ((20 div 3) div 3) + pot(2,8) / 2

d) (30 mod 4 * pot(3,3))*(-1)

f) sqrt(pot(A,B/A)) + C * D

g) B div A + pot(C,1/(2*D))*((2*D) mod 3)

Respostas

2 * A mod 3 – C 2 * 2 – C 4 – C 4 – (-8) 4 + 8

12

sqrt(-2*C) div 4 sqrt(-2*(-8)) div 4 sqrt(16) div 4 4 div 4

1

((20 div 3) div 3) + pot(2,8)/2 (6 div 3) + pot(2,8)/2 2 + pot(2,8)/2 2 + 256/2 2 + 128

130

(30 mod 4 * pot(3,3))*(-1) (30 mod 4 * 27)*(-1) (2 * 27)*(-1) 54*(-1)

-54

pot(C,2) + (D*10)/A pot(C,2) + 15/A pot((-8),2) + 15/A 64 + 15/A 64 + 3

67

sqrt(pot(A,B/A))+C*D sqrt(pot(5,2))+C*D sqrt(25) + C*D 5 + C*D 5 – 12

-7

g) B div A + pot(C,1/(2*D))*((2*D) mod 3) B div A + pot(C,1/3.0)*(3.0 mod 3) B div A + pot(C,0.33333)*(0) B div A – 2 * 0 2 – 2 * 0

2

6 – Supondo que A, B, C são variáveis do tipo real, com valores iguais a 2.0, 7.0 e 3.5, respectivamente, e L uma variável do tipo lógica cujo valor é F (falso), determine o resultado das expressões lógicas abaixo (Conteúdo abordado em “Operadores aritméticos, relacionais e lógicos”):

c) L e B div A >= ou não A <= C

d) Não L ou V e sqrt(A+B) >= C

f) L ou pot(B,A) <= C * 10 + A*B

Respostas

B = A * C e (L ou V) B = A * C e V 7.0 = 7.0 e V V e V

V

B > A ou B = pot(A,A) B > A ou B = 4.0 V ou F

V

L e B div A >= C ou não A <= C L e 3.0 >= C ou não A <= C L e F ou não V L e F ou F F e F ou F F ou F

F

não L ou V e sqrt(A+B) >= C não L ou V e 3.0 >= C não L ou V e F V ou V e F V ou F

V

B/A = C ou B/A <> C 3.5 = C ou 3.5 <> C V ou F

V

L ou pot(B,A) <= C*10 + A*B L ou 49.0 <= C*10 + A*B L ou 49.0 <= 35.0 + 14.0 L ou 49.0 <= 49.0 L ou V F ou V

V

Deixe abaixo o seu comentário em caso de qualquer dúvida! Precisamos ter esses exercícios de lógica de programação para iniciantes bem compreendidos, para que possamos avançar no mundo da computação e nos tornarmos grandes programadores. Para não perder nenhum dos próximos materiais, acesse agora esse link e faça parte do nosso time. Estamos empolgados em ter você com a gente!