Вы находитесь на странице: 1из 31

E-book

E-mails do
Minicurso
de
Lgica
de
Programao

Sumrio

Email1Porqueaprenderprogramao?
Email2Criandoosseusprimeirosprograminhas.
Email3Variveis,constantesetiposdedados.
Email4Operadores
Email5Tomandodecises!
Email6Respostadoexerccio"paracasa"daAula(5/10)Tomandodecises!
Email7Tomandodecises!
Email8RespostadoexercciodaAula(6/10)
Email 9 Sacada! Soluo do exerccio de ontem sem usarESCOLHACASO
ouSEENTOSENO
Email10LoopsBsicos!
Email11RespostadoexercciodaAula(7/10)
Email12LoopsPrdefinido
Email13Algoritmonmerosprimos:ExercciodaAula(8/10)
Email14VetoreseMatrizes
Email15JogodaVelha:ExercciodaAula(9/10)
Email16FuneseProcedimentos
Email17JogodaVelhacomfuneseprocedimentos

Email1Porqueaprender
programao?
CliqueAQUIparaleraprimeiraaula!
Talvez voc j tenha acessado esta primeira aula, mas estou enviando este
e-mail s para garantir que voc realmente recebeu o link para a primeira aula
do minicurso de lgica de programao.
Nesta aula #1 do
minicurso de lgica de programao
voc ir aprender:
1. 4 Motivos para voc comear aprender programao AGORA!
2. Se precisa ou no saber ingls para aprender programao.
3. Com qual linguagem de programao voc deve comear.

AcessaraprimeiraauladominicursoGRTIS!
Espero que goste desta primeira aula.
Importante! As demais aulas sero enviadas automaticamente a cada 24 horas.
Voc receber a prxima aula amanh neste mesmo horrio.
Bons estudos!

Email2Criandoosseus
primeirosprograminhas.
CliqueAQUIparaleraaula#2
Nesta aula #2 do
minicurso de lgica de programao
voc ir aprender:
1. O que um Algoritmo
2. A melhor ferramenta para aprender lgica de programao
3. Criar os seus primeiros programas

AcessarasegundaauladominicursoGRTIS!

Espero que goste desta segunda aula.

Email3Variveis,constantese
tiposdedados.
CliqueAQUIparaleraaula#3
Nesta aula #3 do minicurso de lgica de programao voc ir aprender dois
assuntos bsicos, mas muito importantes para voc se tornar um bom
programador.
Voc vai aprender como armazenar dados na memria do computador.
Tambm aprender quais so os tipos de dados que podemos usar nos nossos
algoritmos, desde os tipos de dados primitivos at os tipos de dados
customizados.

AcessaraterceiraauladominicursoGRTIS!
Alm disso no final da aula voc ver a soluo do exerccio que eu pedi para
voc fazer ontem.
E a, est gostando deste minicurso? Convide os seus amigos para se
inscreverem neste minicurso 100% grtis de lgica de programao.
Boa aula!

Email4Operadores
CliqueAQUIparaleraaula#4
Chegamos a aula #4 do
minicurso de lgica de programao.
Hoje dia de voc aprender a usar os trs tipos operadores:
aritmticos
,
lgicos
e
relacionais

Um dos grandes motivos dos iniciantes em programao se enrolarem no


comeo no entender as expresses, como os valores se relacionam e o
resultado experado de operaes.
Precisa praticar bastante. como aprender a fazer contas na escola. Prtica!

AcessaraquartaauladominicursoGRTIS!
Boa aula!

Email5Tomandodecises!
CliqueAQUIparaleraaula#5
Nesta aula #5 do minicurso de lgica de programao vamos aprender a
deixar os nossos programas tomando decises sozinhos.
Voc vai aprender a utilizar a estrutura de deciso
SE-ENTO-SENO
.
Esta a estrutura de controle mais bsica da lgica de programao.
Para aprender bem, preciso praticar bastante. Ao final desta voc ter um
exerccio prtico. Amanh eu envio a resposta para voc conferir, mas muito
importante que voc tente resolv-lo sozinho antes.

AcessaraquintaauladominicursoGRTIS!
Boa aula!

Email6Respostadoexerccio
"paracasa"daAula(5/10)
Tomandodecises!
Ontem eu enviei pra voc a aula #5 do
minicurso de lgica de programao
.
No final da aula eu pedi pra voc tentar resolver um exerccio de lgica para
verificar se um aluno foi
aprovado
ou
reprovado
no final do ano.
Voc fez? Espero que sim! Teve alguma dificuldade? Bom, abaixo eu mostro
como eu escrevi um algoritmo para resolver esse exerccio. Compare com o que
voc fez. Se o seu no deu certo, continue lendo que eu explico cada parte do
algoritmo.
Esse o algoritmo.
algoritmo
"AprovacaoFinalDeAno"
var
nota1,nota2,nota3,nota4,media:real
inicio
escreva("Informeanota(de0a10)doprimeirobimestre:")
leia(nota1)
escreva("Informeanota(de0a10)dosegundobimestre:")
leia(nota2)
escreva("Informeanota(de0a10)doterceirobimestre:")
leia(nota3)
escreva("Informeanota(de0a10)doquartobimestre:")
leia(nota4)

media:=(nota1+nota2+nota3+nota4)/4
escreval("Suamdiafoi:",media)

se
media>=6
entao
escreva("VocfoiAPROVADO!")

senao
escreva("VocfoiREPROVADO!")


fimse
fimalgoritmo

Entendendooalgoritmo.
Primeiro eu declarei 5 variveis do tipo
REAL
. Elas tm que ser do tipo
REAL
porque as notas podem ter valores decimais, por exemplo
5.5
.

Depois eu escrevi na tela


"Digite a nota (de 0 a 10) do primeiro bimestre: " e
armazenei na varivel nota1 o valor que o usurio digitou. Fiz o mesmo para as
outras 3 notas.
Na sequncia e calculei a mdia das 4 notas e armazenei o resultado na varivel
"media". Importante colocar o parnteses para somar as notas ANTES de dividir
por 4.
Agora que vem a parte da deciso, o SE-ENTO-SENO.
Eu verifiquei se a mdia MAIOR OU IGUAL a 6. Se SIM
ENTO imprimi na tela a

mensagem informando que o aluno foi aprovado.


SENO imprimi a mensagem
informando que o aluno foi reprovado.

Veja abaixo o resultado da execuo do algoritmo no


Visualg
, quando a mdia
era menor que 6 e quando foi maior.


Viu como foi simples? Se voc teve dificuldades para resolver, no se preocupe.
No incio parece difcil mesmo. Mas como sempre digo,
preciso praticar
!
Se conseguiu resolver sem dificuldades
timo
, mas continue praticando.
Amanh vou te enviar a aula #6 do
minicurso de lgica de programao fique
atento sua caixa de entrada!
At l!

Email7Tomandodecises!
CliqueAQUIparaleraaula#6
Nesta aula #6 do
minicurso de lgica de programao vamos aprender uma
estrutura elegante para fazer nossos programas tomar decises quando temos
muitas opes.
Voc tambm vai aprender a diferna de um
HUB
e um
SWITCH
.
A estrutura de controle de fluxo que vamos estudar hoje a
ESCOLHA-CASO
.
Voc vai perceber a diferna gritante na legibilidade do cdigo entre o
SE-ENTO-SENO e o ESCOLHA-CASO quando temos muitas opes de escolha.
E como sempre digo, para aprender bem, preciso praticar bastante. Ao final
desta voc ter outro exerccio prtico. Amanh eu envio a resposta para voc
conferir, mas muito importante que voc tente resolv-lo sozinho antes de ver
a minha resoluo.

AcessarasextaauladominicursoGRTIS!
Boa aula!

Email8Respostadoexerccio
daAula(6/10)
Ontem eu enviei pra voc a aula #6 do minicurso de lgica de programao.
No final da aula eu pedi pra voc resolver um exerccio de lgica para informar a
posio de uma letra no alfabeto usando a estrutura ESCOLHA-CASO.
Espero que voc tenha tentado fazer sozinho.
Abaixo a soluo deste exerccio usando a estrutura ESCOLHA-CASO.
algoritmo
"Posiodaletranoalfabeto"
var
letra:CARACTERE
posicao:INTEIRO
inicio
ESCREVA("Digiteumaletra:")
LEIA(letra)
ESCOLHAletra

CASO
"a"
posicao:=1

CASO
"b"
posicao:=2

CASO
"c"
posicao:=3

CASO
"d"
posicao:=4

CASO
"e"
posicao:=5

CASO
"f"
posicao:=6

CASO
"g"
posicao:=7

CASO
"h"
posicao:=8


CASO
"i"
posicao:=9

CASO
"j"
posicao:=10

CASO
"k"
posicao:=11

CASO
"l"
posicao:=12

CASO
"m"
posicao:=13

CASO
"n"
posicao:=14

CASO
"o"
posicao:=15

CASO
"p"
posicao:=16

CASO
"q"
posicao:=17

CASO
"r"
posicao:=18

CASO
"s"
posicao:=19

CASO
"t"
posicao:=20

CASO
"u"
posicao:=21

CASO
"v"
posicao:=22

CASO
"w"
posicao:=23

CASO
"x"
posicao:=24

CASO
"y"
posicao:=25

CASO
"z"
posicao:=26

FIMESCOLHA
ESCREVA("Aletra",letra,"estnaposio",posicao,"doalfabeto.")

fimalgoritmo

Aqui um resultado da execuo deste algoritmo.

possvel implementar um algoritmo com a estrutura SE-ENTO-SENO, mas


ficaria bem maior. Veja um inicio deste algoritmo.

algoritmo
"PosiodaletranoalfabetocomSE"
var
letra:CARACTERE
posicao:INTEIRO
inicio
ESCREVA("Digiteumaletra:")
LEIA(letra)

SE
letra="a"
ENTO
posicao:=1

SENO

SE
letra="b"
ENTO
posicao:=2

SENO

SE
letra="c"
ENTO
posicao:=3

SENO

SE
letra="d"
ENTO
posio:=4

SENO

SE
letra="e"
ENTO
posicao:=5

SENO

SE
....
.....

FIMSE


FIMSE

FIMSE

FIMSE

FIMSE

FIMSE
ESCREVA("Aletra",letra,"estnaposio",posicao,"doalfabeto.")
fimalgoritmo

Surpresa! Se voc acompanhou esse exerccio at aqui e est gostando do


minicurso, eu vou te ensinar como fazer todo o trabalho dessa estrutura
ESCOLHA-CASO neste exerccio, com apenas
UMA LINHA de cdigo
!
Mas s vou mandar essa sacada amanh. Para que voc tende descobrir
sozinho.
Fazer um algoritmo para mostrar a ordem de uma letra no alfabeto sem usar as
estruturas SE-ENTO-SENO e ESCOLHA-CASO.
Amanh vou te mostrar como fazer isso. Mas fica o desafio, tende descobrir
antes que eu te envie e resposta
.
(Dica: Tabela ASCII)
Forte abrao e at amanh!

Email9Sacada!Soluodo
exercciodeontemsemusar
ESCOLHACASOou
SEENTOSENO
Ol nobre aluno(a). Lembra que prometi te enviar um algoritmo que resolva o
exerccio de ontem sem usar nenhuma estrutura de controle de fluxo.
Ficou curioso? Descobriu como fazer isso?
A vai! A malandragem a seguinte...
Na computao, todos caracteres tem um correspondente numrico para que
este caractere possa ser armazenado na forma de bits.
Existe uma tabela chamada
Tabela ASCII para sabermos qual o nmero de uma
letra. E as letras do alfabeto esto em sequncia nesta tabela.

Veja a baixo uma parte da tabela ASCII e identifique o valor numrico do


caractere "a".
Decimal

Caractere

Decimal

Caractere

32

espao

80

33

81

34

"

82

35

83

36

84

37

85

38

&

86

39

'

87

40

88

41

89

42

90

43

91

44

92

45

93

46

94

47

95

48

96

49

97

50

98

51

99

52

100

53

101

54

102

55

103

56

104

57

105

58

106

59

107

60

<

108

61

109

62

>

110

63

111

64

112

65

113

66

114

67

115

68

116

69

117

70

118

71

119

72

120

73

121

74

122

75

123

76

124

77

125

78

126

79

127

DEL

Viu que o valor do caractere "a" 97 e que as outras letras esto na sequncia?
b = 98, c = 99, d = 100, ...
Agora ficou fcil, s precisamos descobrir o valor da letra que o usurio digitou e
subtrair 96.
Para descobrir o valor ASCII de um caractere no Visualg, podemos utilizar a
funo ASC
, passando como parmetro a letra que o usurio digitou.
Importante! Vamos falar mais sobre
funes e
procedimento na aula 10. Por
hora s saiba que uma funo executa uma tarefa pra gente. (Talvez a funo

ASC use a estrutura ESCOLHA-CASO internamento para retornar o nmero ASCII


da letra.)

A funo ASC(caracter) retorna o nmero da tabela ASCII da letra que passamos


como parmetro.
Logo, o nosso algoritmo ficaria assim.

algoritmo
"Posiodaletranoalfabeto"
var
letra:CARACTERE
posicao:INTEIRO
inicio
ESCREVA("Digiteumaletra:")
LEIA(letra)

posicao:=ASC(letra)96
ESCREVA("Aletra",letra,"estnaposio",posicao,"doalfabeto.")
fimalgoritmo

O resultado o mesmo do algoritmo que fizemos ontem.


Gostou dessa sacada?
Na nossa prxima aula vamos aprender a usar as estruturas de repetio.
Fique atento ao seu e-mail que enviarei a prxima aula amanh!
At mais ...

Email10LoopsBsicos!
CliqueAQUIparaleraaula#7
Nesta aula #7 do minicurso de lgica de programao vamos aprender uma
estrutura MUITO utilizada na programao.
As
estruturas de repetio so muito utilizadas em desenvolvimento de
softwares. Entender como elas funcionam muito importante para resolver

problemas que precisam executar tarefas repetidas vezes. Acredite, existem


muitos!
E como sempre digo, para aprender bem, preciso praticar bastante. Ao final
desta aula voc tambm ter mais um exerccio prtico pra fazer. Amanh eu
envio a resposta para voc conferir, mas muito importante que voc tente
resolv-lo sozinho antes de ver a minha resoluo.

AcessarastimaauladominicursoGRTIS!
Boa aula!

Email11Respostadoexerccio
daAula(7/10)
Ol! Ontem eu enviei pra voc a aula #7 do minicurso de lgica de
programao. No final da aula eu pedi pra voc resolver um exerccio criando
uma algoritmo capaz de fazer multiplicao de qualquer nmero positivo.
Espero que voc tenha tentado fazer sozinho heim! Se no fez, tente fazer
primeiro pra depois olhar a resposta aqui neste e-mail.
Se voc se lembrar, eu mostrei esse algoritmo na primeira aula deste minicurso.
Lembra?
Abaixo o meu algoritmo de multiplicao entre nmeros positivos.

algoritmo
"Multiplicao"
var
numero1,numero2,resultado,contador:INTEIRO
inicio
ESCREVA("Informeoprimeironmero:")
LEIA(numero1)
ESCREVA("Informeosegundonmero:")
LEIA(numero2)
contador<0

ENQUANTO
(contador<numero2)
FACA
resultado<resultado+numero1
contador<contador+1

FIMENQUANTO
ESCREVA("Resultado:",resultado)

fimalgoritmo

Aqui um resultado da execuo deste algoritmo.

Inciodaexecuo
Informeoprimeironmero:6

Informeosegundonmero:8
Resultado:48
Fimdaexecuo.

Gostou do exerccio?
Na prxima aula voc vai aprender uma outra estrutura de repetio muito
usada na programao.
Vou mandar a aula por e-mail, aguarde.
Por hora tente praticar um pouco mais fazendo algoritmos que utilizam loops
At a prxima aula!

Email12
LoopsPrdefinido
CliqueAQUIparaleraaula#8
Nesta aula
#8 do
minicurso de lgica de programao vamos aprender a
estrutura de repetio mais utilizada na programao.
A estrutura
PARA-FAA
!
Na aula de hoje voc vai entender como ela funciona e porque ela a mais
usada.
Ah! Claro que tem um super exerccio pra voc resolver tambm. Amanh eu
envio a resposta para voc conferir, mas muito importante que voc tente
resolv-lo sozinho antes de ver a minha resoluo. Combinado?
Clica a pra ler a aula de hoje.

AcessaraoitavaauladominicursoGRTIS!
Boaaula!

Email13
Algoritmonmerosprimos:
ExercciodaAula(8/10)
Opa! Ontem eu enviei pra voc a aula
#8 do minicurso de lgica de
programao
. No final da aula eu pedi pra voc resolver um exerccio.

Fazer um algoritmo para dizer se um determinado nmero primo ou no.


E a, conseguiu fazer? Espero que voc tenha tentado e conseguido fazer
sozinho!
Se no conseguiu, tudo bem. Abaixo voc vai ver o algoritmo que eu fiz para
este problema.

Algoritmo
"NumeroPrimo"
Var
contador:INTEIRO
numero:INTEIRO
eprimo:LOGICO
Inicio

ESCREVA("Informeumnmeroparaverificarseeleprimo:")

LEIA(numero)

eprimo:=VERDADEIRO

PARA
contadorDE2ATnumero1
FAA
SE
(numeroMODcontador)=0
ENTAO

eprimo:=FALSO
FIMSE

FIMPARA

SE
eprimo=VERDADEIRO
ENTAO

SENAO

ESCREVA("Onmero",numero,"primo!")

ESCREVA("Onmero",numero,"NOprimo!")

FIMSE

Fimalgoritmo

Neste algoritmo eu fao um loop de 2 at o nmero imediatamente anterior ao


nmero que estou verificado se primo. Por qu? Evidentemente o nmero
primo divisivel (resto 0) por 1 e por ele mesmo. Ele no deve ser divisvel por
qualquer outro nmero.
Caso algum nmero entre 2 e "numero-1" seja capaz de dividir o nmero
verificado com resto zero (SE (numero MOD contador) = 0 ENTO ...), significa
que ele no primo (eprimo = FALSO).
Aqui um resultado da execuo deste algoritmo.

Inciodaexecuo
Informeumnmeroparaverificarseeleprimo:53
Onmero53primo!
Fimdaexecuo.

O que voc achou? Gostou da minha resoluo. O seu algoritmo pode ter sido
diferente. H vrias formas de se fazer algoritmos. No precisa estar igual o
meu. Precisa funcionar corretamente. ;)
Bom por hoje s.
Vou mandar prxima aula sobre arrays por e-mail, fique atento tua caixa de
entrada.
At l!

Email14
VetoreseMatrizes
CliqueAQUIparaleraaula#9
Nesta aula #9 do minicurso de lgica de programao vamos aprender uma
estrutura de dados bsica.
Existem vrias estruturas de dados no mundo da programao, mas a mais
conhecida e tambm a mais utilizada o
array
E este o assunto desta nona aula do nosso minicurso grtis de lgica de
programao.
Alm de aprender como funcionam os arrays, voc var uma aplicao para ele
e tambm um desafio para voc resolver.
Voc ser testado sobre todo o contedo do minicurso. Portanto eu te desafio a
resolver este problema. Leia a aula toda para ver que desafio esse.

AcessaranonaauladominicursoGRTIS!
Boa aula!

Email15
JogodaVelha:Exerccioda
Aula(9/10)
Ol! Estava ancioso por este e-mail?
Na aula
#9
eu prometi te enviar o meu algoritmo do jogo da velha.
No um algoritmo facinho, mas j estamos chegando ao final deste minicurso
e sei que voc tem capacidade de criar este algoritmo sozinho.
Mas tinha que quebrar a cabea um pouquinho. Neste exerccio, que passei
como um
desafio para voc, necessrio utilizar vrias estruturas, operadores,
variveis, etc. Tudo que j aprendemos nas aulas anteriores.

Ento vamos ao meu algoritmo do jogo da velha, mas antes vamos lembrar as
regras
:
1 - As jogadas do jogo da velha devero ser armazenadas numa matriz (3x3) de
caractere, chamada "tabuleiro", cada posio desta matriz armazenar um dos
valores: " ", "_", "X" ou "O". Abaixo uma representao grfica desta matriz.
1

1 ___|___|___
2 ___|___|___
3

2 - A cada jogada o programa dever mostrar na tela a situao atual do


tabuleiro.
Por exemplo:
1

1 ___|___|___
2 ___|_X_|___
3 O|

| O

3 - Tero dois jogadores no jogo. O programa deve solicitar o nome dos dois
jogadores antes de comear o jogo. A cada jogada o programa dever perguntar
separadamente as posies horizontal e vertical da jogada, nesta ordem.
4 - Quando um jogador vencer o jogo, o programa deve apresentar
imediatamente o vencedor e a situao do tabuleiro.
Estou te enviando em anexo o meu algoritmo, para visualiz-lo e execut-lo
abra-o no VisuAlg.
Para

baixar

Visualg

Acesse:

http://dicasdeprogramacao.com.br/download-visualg/
Abra o algoritmo, entenda, execute-o, veja porque usei cada estrutura
PARA-FAA, REPIRA-AT, SE-ENTO-SENO, cada varivel, operadores lgicos (E
e OU) etc.
Se tiver dvida, acesse as aulas anteriores onde falo sobre cada um desses
assuntos.
Aguarde a prxima aula de nmero #10 deste minicurso. Vamos ver como
podemos melhorar este algoritmo do jogo da velha utilizando
funes e
procedimentos
.
At l!
Gustavo


Email16
FuneseProcedimentos
CliqueAQUIparaleraaula#10
Nesta aula #10 do minicurso de lgica de programao vamos aprender o que
so funes e procedimentos e como us-los para melhorar os nossos
algoritmos.
Alm de ver algumas funes e procedimentos que so nativas em qualquer
linguagem de programao, vamos aprender a criar as nossas prprias funes
e procedimentos.
Voc poder aplicar isso no Jogo da Velha que te mandei ontem.
Amanh eu vou te mandar o mesmo algoritmo utilizando funes e
procedimentos, mas tente voc mesmo melhor-lo.

AcessaradcimaauladominicursoGRTIS!
Boa aula!

Email17
JogodaVelhacomfunes
eprocedimentos
Na ltima aula
#10 deste minicurso gratuito de lgica de programao, eu
prometi enviar um algoritmo do Jogo da Velha melhorado, usando Funes e
Procedimentos.
Estou te enviando o novo algoritmo em anexo
, para visualiz-lo e execut-lo
abra-o no VisuAlg.
Para

baixar

Visualg

Acesse:

http://dicasdeprogramacao.com.br/download-visualg/
Abra o algoritmo, entenda, execute-o.
O primeiro "procedimento" que podemos ver o imprimeTabuleiro, este
procedimento responsvel por mostrar na tela a situao atual do Jogo da
Velha. Repare que antes fazamos isso duas vezes no algoritmo, uma em cada
jogada e uma no final. Agora no tem mais essa duplicao no cdigo, a gente
s chama o procedimento "imprimeTabuleiro".

procedimento
imprimeTabuleiro
inicio
//Apresentaasituaoatualdotabuleiro
escreval("Nestemomentootabuleiroestassim:")
escreval("123")
escreval("1_",tabuleiro[1,1],"_|_",tabuleiro[1,2],"_|_",tabuleiro[1,3],
"_")
escreval("2_",tabuleiro[2,1],"_|_",tabuleiro[2,2],"_|_",tabuleiro[2,3],
"_")
escreval("3",tabuleiro[3,1],"|",tabuleiro[3,2],"|",tabuleiro[3,3],"
")
fimprocedimento

Alm disso eu tirei uma complexidade do cdigo criando uma funo chamada
"verificaVencedor" que responsvel por identificar se algum ganhou o jogo,
dessa forma o fluxo principal do algoritmo fica mais legvel.
Este foi o final da aula #10 do minicurso de lgica de programao. Mas no
acabou, voc deu o primeiro passo que aprender lgica de programao e
est pronto para evoluir mais. Lgica de programao deve ser praticada
para, de fato, aprender.
Vou continuar enviando contedo para voc, fique atento sua caixa de
entrada.
Se voc gostou deste minicurso,
indique-o para os seus amigos, gratuito.
Acredito que todos devem aprender programao.
At mais.
Gustavo

Вам также может понравиться