Buscar

ALGORITIMOS E PROGRAMAÇÃO I

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 119 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 119 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 119 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Ariel da Silva Dias
Algoritmos e 
programação I: introdução 
à programação com C#
Dados Internacionais de Catalogação na Publicação (CIP)
(Simone M. P. Vieira – CRB 8a/4771)
Dias, Ariel da Silva
 Algoritmos e programação I : introdução à programação com C# / 
Ariel da Silva Dias. – São Paulo : Editora Senac São Paulo, 2022. (Série 
Universitária)
	 Bibliografia.
 e-ISBN 978-85-396-3471-2 (ePub/2022)
 e-ISBN 978-85-396-3472-9 (PDF/2022)
 1. Desenvolvimento de sistemas 2. Linguagem de programação 3. 
Algoritmos – Conceitos 4. Pensamento computacional 5. Programação 
estruturada I. Título. II. Série 
22-1583t CDD – 005.13
 003 
 BISAC COM051300
COM051230
Índice para catálogo sistemático:
1. Linguagem de programação : Algoritmos 005.13
2. Desenvolvimento de sistemas 003
M
at
er
ia
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Ariel da Silva Dias
ALGORITMOS E 
PROGRAMAÇÃO I: 
INTRODUÇÃO À 
PROGRAMAÇÃO COM C#
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
Administração Regional do Senac no Estado de São Paulo
Presidente do Conselho Regional
Abram Szajman
Diretor do Departamento Regional
Luiz Francisco de A. Salgado
Superintendente Universitário e de Desenvolvimento
Luiz Carlos Dourado
Editora Senac São Paulo
Conselho Editorial
Luiz Francisco de A. Salgado 
Luiz Carlos Dourado 
Darcio Sayad Maia 
Lucila Mara Sbrana Sciotti 
Luís Américo Tousi Botelho
Gerente/Publisher
Luís Américo Tousi Botelho
Coordenação Editorial/Prospecção
Dolores Crisci Manzano 
Ricardo Diana
Administrativo
grupoedsadministrativo@sp.senac.br
Comercial
comercial@editorasenacsp.com.br
Acompanhamento Pedagógico
Mônica Rodrigues dos Santos
Designer Educacional
Estenio Azevedo
Revisão Técnica
Celso Vital Crivelaro
Preparação e Revisão de Texto
Karen Daikuzono
Projeto Gráfico
Alexandre Lemes da Silva
Emília Corrêa Abreu
Capa
Antonio Carlos De Angelis
Editoração Eletrônica
Marcella Rigazzo Maiolino
Ilustrações
Marcella Rigazzo Maiolino
Imagens
Adobe Stock Photos
E-book
Rodolfo Santana
Proibida a reprodução sem autorização expressa.
Todos os direitos desta edição reservados à
Editora Senac São Paulo
Rua 24 de Maio, 208 – 3o andar
Centro – CEP 01041-000 – São Paulo – SP
Caixa Postal 1120 – CEP 01032-970 – São Paulo – SP
Tel. (11) 2187-4450 – Fax (11) 2187-4486
E-mail: editora@sp.senac.br 
Home page: http://www.livrariasenac.com.br
© Editora Senac São Paulo, 2022
M
at
er
ia
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Capítulo 1
Introdução ao pensamento 
computacional, 7
1 Habilidades, contribuições e pilares 
do pensamento computacional, 9
2 Resolução de um problema usando 
pensamento computacional, 13
Considerações	finais,	16
Referências, 16
Capítulo 2
Introdução aos algoritmos e 
programação por blocos, 17
1 Introdução e conceitos de 
algoritmos, 18
2 Descrição narrativa de um algoritmo 
e implementação por blocos, 23
Considerações	finais,	29
Referências, 30
Capítulo 3
Variáveis e programação 
por blocos, 31
1 Programação por blocos: variáveis 
e entrada de dados, 32
2 Programação por blocos: operações 
aritméticas com as variáveis, 42
Considerações	finais,	44
Referências, 45
Capítulo 4
Tomando decisões e repetindo 
instruções, 47
1	Expressões	lógicas	e	fluxo	 
de controle, 48
2 Programação por blocos: se (if) 
e se/senão (if/else), 52
3 Programação por blocos: 
repetição, 55
Considerações	finais,	57
Referências, 57
Capítulo 5
Linguagem de programação 
imperativa, 59
1 Programação imperativa, 61
2 Variáveis e constantes, 64
3 Entrada e saída de dados, 67
Considerações	finais,	71
Referências, 71
Capítulo 6
Estruturas condicionais, 73
1 Programação imperativa: estrutura 
de controle linear e condicional, 75
2 Expressões relacionais e lógicas, 78
3 Condicional simples (if) e composta 
(if/else), 81
Considerações	finais,	88
Referências, 89
Capítulo 7
Estruturas de repetição, 91
1 Programação imperativa: estrutura 
de repetição (while e do/while), 92
2 Programação imperativa: estrutura 
de repetição (for), 97
3 Exemplo de um caso com laço 
de repetição, 99
Considerações	finais,	104
Referências, 104
Capítulo 8
Programação estruturada, 105
1 Conceito de programação 
estruturada (funções), 106
2 Exemplos e aplicações da utilização 
de funções, 113
Considerações	finais,	121
Referências, 122
Sobre o autor, 125
Sumário
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
M
at
er
ia
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
7
Antes de iniciarmos a nossa ação de programar, a primeira etapa 
a ser considerada é ter o pensamento computacional. Trata-se de um 
processo responsável por decompor um determinado problema em eta-
pas	simples	o	suficiente	para	que	até	um	computador	possa	entender	
(lembre-se	que	um	computador	só	entende	zeros	e	uns,	ou	seja,	quanto	
mais simples para ele, melhor).
Os computadores, como deve ser de seu conhecimento, seguem lite-
ralmente	as	instruções	que	damos	e,	às	vezes,	os	resultados	são	inespe-
rados.	Afinal,	se	não	fornecermos	aos	computadores	instruções	precisas 
Capítulo 1
Introdução ao 
pensamento 
computacional
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
8 Algoritmos e programação I: introdução à programação com C# Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.e detalhadas, seu algoritmo pode não ter o mesmo comportamento e as 
ações	vitais	que	a	maioria	das	pessoas	considera	natural.
Vejamos um exemplo de uma atividade rotineira como escovar os 
dentes.	Observe	que,	 a	princípio,	 parece	uma	 tarefa	um	 tanto	quanto	
simples,	mas	que,	na	verdade,	engloba	muitas	etapas.	Primeiro,	precisa-
mos de uma escova e creme dental, além de uma pia com água corren-
te. O próximo passo é colocar o creme dental na escova. É importante 
não	nos	esquecermos	de	abrir	a	água	e	passar	a	escova	com	o	creme	
dental	por	baixo.	E	assim	prosseguimos	até	a	finalização	do	processo,	
que	 já	 é	de	conhecimento	geral.	 Enfim,	 como	pode-se	observar,	 uma	
atividade simples envolve muitas etapas, se perdermos uma etapa ou 
colocarmos uma fora de ordem, poderá acabar em confusão.
Assim, o computador (não limitando apenasa ele, mas também aos 
dispositivos móveis como smartphones e tablets) é fortemente apli-
cado na resolução de problemas em diversas áreas: educação, saúde, 
transporte,	financeiro,	entre	outras.	Por	exemplo,	as	planilhas	eletrôni-
cas, os aplicativos de pedir refeição ou de solicitar um transporte, todos 
eles	possuem	uma	lógica	que,	por	trás,	nos	ajudam	a	resolver	proble-
mas.	No	entanto,	antes	que	um	problema	possa	ser	resolvido,	o	próprio	
problema	e	as	maneiras	pelas	quais	ele	pode	ser	resolvido	precisam	ser	
compreendidos.
O pensamento computacional ajuda as pessoas a desenvolverem 
habilidades	que	sejam	atraentes	para	futuras	oportunidades	de	empre-
go (mesmo se você não almejar ser um programador ou programado-
ra).	Afinal,	embora	as	habilidades	de	tecnologia	sejam	muito	importan-
tes, são as habilidades mais suaves de raciocínio (como organização 
de itens em uma lista de compras ou planejar o melhor caminho para 
se deslocar de casa para o trabalho) e a solução de problemas (como 
montar	um	checklist	de	tópicos	para	uma	reunião)	que	os	empregado-
res realmente consideram atraentes. Desse modo, ter habilidade para 
resolver problemas é o princípio essencial para compreender o pensa-
mento computacional.
9Introdução ao pensamento computacional
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
1 Habilidades, contribuições e pilares do 
pensamento computacional
O	pensamento	computacional	pode	ser	dividido	em	quatro		habilidades	
essenciais: decomposição, reconhecimento de padrões, abstração de 
padrão e projeto de algoritmos (FORBELLONE; EBERSPACHER, 2005). 
A	seguir,	veremos	cada	uma	dessas	habilidades,	que	são	pilares	funda-
mentais do pensamento computacional.
1.1 Decomposição
O primeiro pilar é a decomposição. A decomposição é a habilidade 
de	dividir	problemas	complexos	em	pedaços	menores	e	que	possam	
ser mais bem gerenciados.
Qualquer	atividade,	das	mais	simples,	como	escovar	os	dentes,	pre-
parar o café da manhã ou ler um livro, até as mais complexas, como o 
processo de logística de entrega de produtos por uma empresa, fun-
cionará.	Precisamos	apenas	dividir	a	tarefa	em	pequenos	passos	sim-
ples. Quanto mais pudermos decompor um problema, mais fácil será 
 resolvê-lo. Essa habilidade permite compreender como é importante 
dar	instruções	que	sejam	exatas.
Um ótimo exercício de decomposição é decompor os componentes 
de	uma	bicicleta.	Se	tentarmos,	observaremos	que,	em	um	primeiro	mo-
mento,	podemos	decompor	uma	bicicleta	em	quadro,	rodas,	guidom	e	
engrenagens.	Mas	é	só	isso?	Não!	Podemos	ainda	quebrar	cada	com-
ponente um pouco mais, por exemplo, uma roda é composta por raios, 
aro,	pneu	e	válvula.	Logo,	podemos	quebrar	a	roda	nestes	componen-
tes.	Podemos	 fazer	o	mesmo	com	o	quadro,	guidom	e	engrenagens.	
Esse estágio também permite desenvolver uma melhor compreensão 
do	problema	que	 você	enfrenta,	 identificando	 todos	os	 componentes	
em detalhes.
10 Algoritmos e programação I: introdução à programação com C# Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.Importante	 salientar	 que	 a	 decomposição	 nos	 permite	 avaliar	 um	
problema	 e	 descobrir	 todas	 as	 etapas	 necessárias	 para	 que	 a	 tarefa	
aconteça. Então, a decomposição é uma habilidade importante para a 
vida	no	futuro,	quando	precisarmos	assumir	tarefas	maiores,	sejam	elas	
de	programação	ou	de	qualquer	outra	área	em	que	estejamos	atuan	do.	
Com	isso,	seremos	capazes	de	delegar	melhor	tarefas	para	uma	equipe	
ou grupo de trabalho, bem como saber gerenciar melhor o nosso tempo.
NA PRÁTICA
Quando vamos a um restaurante, o problema principal a ser resolvido é 
a fome. Logo, para que a fome seja aliviada, colocamos no prato peque-
nas porções das opções do buffet, como arroz, feijão e uma proteína. 
Observe que o problema foi decomposto, afinal, cada um desses ele-
mentos, quando forem digeridos, serão responsáveis por saciar a fome.
 
1.2 Reconhecimento de padrões
O segundo pilar é o reconhecimento de padrões, semelhanças e ten-
dências dentro de um determinado problema. Essa habilidade é essen-
cial, pois, se alguns problemas são de natureza semelhante (tanto no 
problema	atual	que	está	sendo	enfrentado	quanto	nos	problemas	ante-
riores),	há	uma	boa	chance	de	que	eles	possam	ser	resolvidos	usando	
técnicas semelhantes ou repetidas.
Certamente,	você	já	viajou	para	algum	lugar	que	nunca	tinha	ido	an-
teriormente. Já percebeu como, em sua primeira ida, o caminho pare-
ceu	mais	longo	que	nas	idas	posteriores?	Isso	ocorre	porque	você	não	
reconhecia padrões na primeira viagem. No entanto, após já conhecer o 
caminho,	identificou	padrões	em	suas	viagens	seguintes.
Podemos notar essa habilidade nos atletas. Quando eles se prepa-
ram para uma corrida de 50 km, por exemplo, a primeira tentativa nunca 
é muito bem-sucedida: ou começou muito rápido e no meio do caminho 
11Introdução ao pensamento computacional
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
já estava cansado, ou começou muito devagar e acabou não conseguin-
do completar o trajeto em um bom tempo.
Em uma próxima tentativa, nos recordamos da experiência anterior 
e certamente isso nos ajuda a ter um desempenho diferente da primeira 
vez.	Essa,	então,	é	a	habilidade	essencial	para	criar	soluções	eficientes	
e economizar tempo no longo prazo. Durante a corrida, o atleta pode 
ajustar seus passos mediante a memória da primeira tentativa.
Também	é	possível	notar	essa	habilidade	no	dia	a	dia.	Para	quem	
anda	 de	 bicicleta,	 por	 exemplo,	mesmo	 depois	 de	 ficar	 longo	 tempo	
sem	 praticar,	 quando	 retoma	 a	 atividade,	 lembra-se	 de	 como	 fazer.	
Observe	que	a	pessoa	não	 regride	ao	estado	 inicial	 de	quando	ainda	
estava aprendendo a andar.
O	 reconhecimento	 de	 padrões	 é	 uma	 habilidade-chave	 quando	 se	
trata	de	criar	soluções	eficientes	e	eficazes	para	determinados	proble-
mas. Essencialmente, é dar uma resposta para a seguinte pergunta: 
o	 que	 aprendemos	 no	 passado	 que	 pode	 nos	 ajudar	 a	 resolver	 esse	
problema?
NA PRÁTICA
Já observou a agilidade das crianças em interagir com um smartphone? 
Elas rapidamente acessam os aplicativos e interagem com eles. O mais 
interessante é que muitas delas não sabem ler (em razão da pouca ida-
de), mas conseguem acessar plataformas de vídeo, como o YouTube ou 
YouTube Kids e os seus jogos favoritos. Isso ocorre pelo reconhecimen-
to de padrões. Elas sabem que, toda vez que clicarem em um ícone ver-
melho em formato de seta, será aberto um local cheio de vídeos. Assim, 
rapidamente encontram os seus personagens favoritos para assisti-los.
 
12 Algoritmos e programação I: introdução à programação com C# Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
1.3 Abstração
Qual	a	função	de	um	arquiteto?	Colocar	no	papel	uma	casa	ou	um	
edifício.	Observe	que	não	podemos	morar	em	um	papel	ou	explorar	cada	
canto	daquele	desenho,	caminhando	internamente	por	aquela	constru-
ção (no papel). Essa é a terceira habilidade do pensamentocomputacio-
nal	que	diz	que,	em	vez	de	olhar	para	detalhes	específicos,	devemos	ter	
a	capacidade	de	filtrar	os	elementos	desnecessários	de	um	problema	
para	que	você	se	concentre	apenas	nos	elementos	importantes.	Em	ou-
tras	palavras,	esqueça	o	fato	de	ser	apenas	um	desenho,	abstraia	o	fato	
de estar apenas em um papel.
Qual	a	vantagem	da	abstração?	Bem,	nesse	exemplo	do	arquiteto,	
a planta desenhada por ele incluirá todos os principais elementos de 
design	que	serão	 incluídos	na	construção	final.	Quaisquer	ajustes	ou	
acréscimos podem ser discutidos com os clientes nessa fase, antes 
do início do trabalho de construção. Com isso, economiza-se dinheiro 
e tempo de obra.
Voltando	ao	exemplo	anterior,	um	corredor	quando	treina	abstrai	al-
guns elementos como temperatura, clima (chuva ou sol), vento, se exis-
te	algum	atleta	mais	veloz	que	ele,	entre	outros.	Todo	o	foco	dele	está	
na corrida, ou seja, em desempenhar o seu papel de corredor, ignorando 
assim	qualquer	outro	elemento.
De modo semelhante, no exemplo da bicicleta, se uma pessoa apren-
deu	a	andar	em	uma	bicicleta	pequena,	não	terá	dificuldade	de	andar	em	
uma bicicleta de tamanho maior. Também abstrai outros fatores como 
espessura dos pneus, se a bicicleta possui ou não marcha, entre outros.
Identificar	as	informações	cruciais	em	um	problema	e	desconsiderar	
as informações irrelevantes é uma das partes mais difíceis do pensa-
mento computacional.
13Introdução ao pensamento computacional
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
NA PRÁTICA
Montar um projeto utilizando peças Lego é uma ótima maneira de re-
solver problemas. As lojas vendem kits com algumas dezenas ou até 
mesmo com milhares de peças. No entanto, se seu objetivo é construir 
um carro com Lego, você certamente não utilizará todas as mil peças de 
um kit. Existem muitas peças que você poderá ignorar, ou seja, poderá 
abstrair aquelas menos importantes e que não contribuem com a solu-
ção do seu problema.
 
1.4 Algoritmos
O pensamento computacional envolve o desenvolvimento de solu-
ções para um problema e, entre essas soluções, temos os algoritmos. 
Especificamente,	o	pensamento	algorítmico	cria	 regras	sequenciais	a	
serem seguidas para resolver um problema.
Um	bom	algoritmo	é	aquele	que	pode	ser	passado	para	outra	pessoa	
seguir sem a necessidade de nenhuma explicação extra (FORBELLONE; 
EBERSPACHER, 2005). O mundo está cheio de algoritmos: receitas culi-
nárias, montagem de móveis, trocar o pneu de um carro, escovar os 
dentes, comprar um produto em um mercado, entre outros.
Quanto mais pensamos sobre algoritmos, mais começamos a per-
ceber	que	seguimos	muitos	conjuntos	de	 instruções	 todos	os	dias.	Os	
exemplos	apresentados	são	claramente	sinalizados,	enquanto	outros	são	
mais inatos, como manter o limite de velocidade ao dirigir um carro, subir 
ou descer uma escada ou seguir um código de conduta em uma empresa.
2 Resolução de um problema usando 
pensamento computacional
Anteriormente,	 foi	 possível	 compreender	 que	 o	 pensamento	 com-
putacional	é	dividido	em	quatro	habilidades	essenciais:	decomposição,	
14 Algoritmos e programação I: introdução à programação com C# Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.reconhecimento de padrões, abstração de padrão e projeto de algorit-
mos. Agora, vamos pegar um exemplo do cotidiano, trocar o pneu de 
um	carro,	e,	de	posse	dessas	quatro	habilidades,	 resolvê-lo	usando	o	
pensamento computacional.
2.1 Exemplo: troca de pneu de um carro
Em uma viagem, o pneu do carro furou e, estando em um local to-
talmente deserto, sem borracharia, será necessário realizar a sua troca. 
Observe	que	temos	um	problema:	trocar	o	pneu	furado.
Primeiramente, vamos decompor esse problema em: abrir o porta-
-malas, retirar o estepe, colocar o macaco embaixo do carro, levantar 
o carro, remover os parafusos, retirar o pneu furado, colocar o estepe, 
abaixar o carro e guardar o macaco.
Observe	 que,	 nessa	 decomposição,	 muita	 coisa	 ficou	 faltando.	
Primeiramente,	 precisamos	 verificar	 se	o	 estepe	 está	 vazio	ou	 cheio.	
Afinal,	se	estiver	vazio,	a	melhor	saída	é	contactar	a	seguradora	para	
fazer	o	reboque	(o	que	pode	levar	horas).	No	entanto,	se	estiver	cheio,	
podemos começar a trocar.
Um passo importante é levantar o carro, porém, do lado onde está o 
pneu	furado.	Parece	óbvio,	mas	lembre-se	que	o	problema	deve	ser	de-
composto	em	instruções	simples	para	que	o	computador	possa	enten-
der	(ou,	neste	caso,	que	um	amador	possa	entender	a	troca	de	pneu).
Outro passo importante é a remoção dos parafusos. Precisamos 
desaparafusar as rodas, porém, os veículos em sua maioria possuem 
quatro	ou	cinco	parafusos	na	roda.	Logo,	precisamos	colocar	a	chave	
no primeiro parafuso, rotacionar a chave e desaparafusar. Em seguida, 
precisamos colocar a chave no segundo parafuso, rotacionar a chave e 
desaparafusar.	Observe	que	serão	quatro	(ou	cinco)	instruções	iguais,	
as	quais	seguem	um	padrão	que	é	colocar	a	chave	no	parafuso,	rotacio-
nar a chave e desaparafusar.
15Introdução ao pensamento computacional
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
Além disso, abstraia o fato de um parafuso demorar mais tempo do 
que	o	outro	para	ser	removido,	isso	não	afetará	a	resolução	do	proble-
ma.	Acrescenta-se	ainda	que,	mesmo	existindo	diferentes	tipos	de	car-
ros, o processo de troca de pneu é o mesmo, ou seja, segue a mesma 
sequência	lógica	de	instruções.
Após remover todos os parafusos, chega a hora de remover a roda 
que	possui	o	pneu	 furado.	Remova	e	coloque-a	de	 lado.	Em	seguida,	
vamos	colocar	o	estepe.	Observe	que	agora	colocaremos	os	parafusos.	
Apesar	de	ser	uma	instrução	diferente	(afinal,	antes	nós	removemos	os	
parafusos), a ação é semelhante, pois precisamos colocar a chave e 
parafusar	quatro	ou	cinco	vezes.	Novamente	nos	deparamos	com	ins-
truções-padrão	que	devem	ser	executadas.
Agora	que	o	estepe	está	no	lugar	do	pneu	furado,	podemos	remover	
o macaco, para isso, é necessário primeiramente abaixar o carro e, so-
mente	depois,	podemos	retirar	o	equipamento.
Por	fim,	será	possível	guardar	as	ferramentas	e	seguir	na	estrada,	afi-
nal, como temos as habilidades do pensamento computacional e como 
seguimos	os	quatro	pilares	fundamentais,	a	troca	do	pneu	foi	realizada	
com sucesso.
IMPORTANTE
Todo algoritmo é uma sequência finita de instruções. Observe que, na 
troca de pneu, tivemos um início, que foi verificar se o estepe estava 
cheio ou não, e o fim, que foi sair com o carro. Se estivesse cheio, o fim 
do algoritmo seria sair com o carro, e, se estivesse vazio, teríamos o 
mesmo fim (sair com o carro), porém levado pelo guincho.
 
16 Algoritmos e programação I: introdução à programação com C# Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Considerações finais
Neste capítulo, pudemos compreender o conceito de pensamento 
computacional.	 Inicialmente,	 observamos	que	pensar	 computacional-
mente	não	significa	pensar	igual	a	umcomputador	(rápido	e	com	pre-
cisão), mas, sim, dividir um problema em partes menores e, a partir de 
cada uma dessas partes menores, resolvê-lo.
Em	seguida,	conhecemos	os	quatro	pilares	do	pensamento	computa-
cional	e	quais	habilidades	estão	inerentes	a	esses	pilares.	Por	exemplo,	
vimos	que,	ao	decompor	um	problema,	podemos	 resolvê-lo	de	modo	
mais	 rápido	 e	direto.	Aprendemos	que	o	 reconhecimento	de	padrões	
auxilia na tomada de decisão com base em um conhecimento prévio, e 
abstrair padrões nos permite focar no problema, eliminando distrações. 
Além	disso,	 vimos	que	um	algoritmo	é	uma	sequência	de	 instruções	
que,	quando	bem	escrita,	permite	levar	à	solução	de	um	dado	problema.
Por	fim,	estudamos	um	caso	prático,	a	troca	de	pneu,	e	pudemos	co-
locar em prática cada uma das habilidades intrínsecas do pensamento 
computacional.
Referências
FEIJÓ, Bruno; CLUA, Esteban; SILVA, Flávio S. C. da. Introdução à ciência da 
computação com jogos: aprendendo a programar com entretenimento. Rio de 
Janeiro: Campus, 2009.
FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de 
programação: a construção de algoritmos e estruturas de dados. 3. ed. São 
Paulo: Pearson, 2005.
17
Durante todo o dia, nos deparamos com algoritmos, desde quando 
acordamos até quando estamos dormindo. Afinal, um algoritmo é uma 
sequência finita de ações que tem como objetivo produzir solução para 
um dado problema. Por exemplo, se lhe perguntar como você faz para 
escovar seus dentes, você me dará uma lista com um passo a passo 
que vai desde pegar o tubo do creme dental até enxaguar a boca, fe-
chando a torneira e guardando todos os itens no final do processo.
Capítulo 2
Introdução aos 
algoritmos e 
programação 
por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
18 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
Vamos pensar agora em como fazer um bolo: primeiramente, sepa-
ramos os ingredientes. Em seguida, quebramos os ovos e separamos 
as claras e das gemas. Depois, batemos a clara em neve. Misturamos 
os demais ingredientes. Untamos a forma e despejamos a massa. 
Assamos em forno preaquecido a 180 °C. Por fim, retiramos a forma 
com o bolo do forno. Eis uma sequência de instruções. Ela iniciou (se-
pare os ingredientes) e teve um fim (retire o bolo do forno).
A partir desses exemplos, é possível observar que, quando aborda-
mos o conceito de algoritmos, não estamos falando apenas sobre a 
programação de computadores, mas, sim, sobre uma técnica de pen-
samento computacional que pode ser utilizada na programação de 
computadores.
1 Introdução e conceitos de algoritmos
Os algoritmos estão presentes na base de muitas ações que são de-
sempenhadas no dia a dia. Por exemplo, uma pessoa chamada Ana, 
que mora na cidade de São Paulo, convida seu amigo Betto, que mora 
na cidade de Campinas, para visitá-la pela primeira vez. Como Betto não 
sabe como chegar até a residência de Ana, ela necessita desenvolver 
uma sequência finita de instruções para que ambos se encontrem. A 
figura 1 a seguir apresenta uma possível rota de Campinas até a casa 
de Ana em São Paulo.
19Introdução aos algoritmos e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
Figura 1 – Mapa de Campinas até a cidade de São Paulo
Fonte: adaptado de OpenStreetMap ([s. d.]).
Observe na figura 1 que, no lado esquerdo, temos o algoritmo com 
o passo a passo da rota que Betto deve seguir para chegar até a casa 
de Ana. Ainda na figura 1, temos no lado direito um algoritmo também, 
porém, este é gráfico e mostra o mapa com todo o trajeto a ser percorri-
do. Note, então, que se trata de uma sequência finita de ações que visa 
produzir um resultado (ou seja, evitar que seu amigo fique perdido e que 
chegue até a cidade sem erros). Esse é o conceito de algoritmos, uma 
sequência finita de instruções que visa resolver algum tipo de problema 
(FORBELLONE; EBERSPACHER, 2005).
1.1 Lógica computacional
Para entender corretamente como construir um algoritmo, primeira-
mente é necessário compreender a lógica de programação.
20 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
A lógica é uma parte da filosofia que tem como objetivo estudar e 
aplicar as leis do raciocínio humano. Com o estudo da lógica, torna-se 
possível afirmar que o trajeto (algoritmo) proposto na figura 1 é uma 
ótima opção, afinal, é um traçado direto que liga duas cidades. Agora, 
considere o algoritmo apresentado na figura 2 a seguir.
Figura 2 – Mapa com outra possível rota de Campinas até a cidade de São Paulo
Fonte: adaptado de OpenStreetMap ([s. d.]).
21Introdução aos algoritmos e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
Na figura 2, é possível observar que temos uma nova rota, agora des-
tacada em amarelo. Essa segunda rota não é o melhor caminho possí-
vel, afinal, é muito pior que o trajeto (algoritmo) apresentado na figura 
1. Assim, conclui-se que a lógica utilizada para desenvolver o primeiro 
algoritmo (figura 1) foi melhor que a lógica utilizada para desenvolver o 
segundo (figura 2).
Ainda sobre as rotas, Betto logicamente escolherá o primeiro algorit-
mo, afinal, o tempo que levará para chegar até o destino (bem como a 
distância a percorrer) é muito menor. Em outras palavras, os algoritmos 
são conjuntos de instruções lógicas que visam resolver um determina-
do problema.
Agora, vamos considerar um segundo exemplo, em que é dada a se-
quência numérica:
1 1 2 3 5 8 13 ?
Como definir qual será o próximo número da sequência? Nesse caso, 
o próximo valor é o 21. Isso pode ser afirmado em razão do valor atual 
ser sempre a soma dos dois números anteriores:
 • 1 + 1 = 2
 • 1 + 2 = 3
 • 2 + 3 = 5
 • 3 + 5 = 8
 • 5 + 8 = 13
 • 8 + 13 = 21
Para encontrar o valor da sequência, foi necessário encontrar um 
padrão lógico e, em seguida, criar uma sequência fixa e finita de ins-
truções. Assim, é possível concluir que um algoritmo deve possuir as 
seguintes características (FORBELLONE; EBERSPACHER, 2005; FEIJÓ; 
CLUA; SILVA, 2009):
22 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
 • Cada passo do algoritmo deve ser uma instrução possível de ser 
realizada: considere o exemplo da viagem de Campinas até São 
Paulo. Existeuma sequência lógica de instruções e todas elas 
precisam ser executadas, se uma dessas instruções não ocorrer, 
o algoritmo não será executado corretamente.
 • A ordem de cada uma das instruções deve ser respeitada: con-
sidere o segundo exemplo. Nele, o valor de um número X é obti-
do somando os dois valores anteriores a ele em uma sequência 
numérica. Se essa instrução não for obedecida (ou seja, se não 
somarmos os dois últimos valores para obter o próximo da se-
quência), o resultado não será conforme o esperado.
 • O algoritmo deve ser finito: considere ainda o segundo exemplo. 
O algoritmo pode ser descrito como “para obter um valor X, de-
vemos somar os dois valores imediatamente anteriores”. Então, 
apesar de ser possível obter uma sequência infinita de valores, o 
algoritmo é finito em suas instruções.
Outro exemplo que sintetiza essas três características de um algo-
ritmo é o processo de troca de pneu de um carro (considerando que o 
estepe está presente e em bom estado):
1. Levantar o carro do lado do pneu que está furado.
2. Desaparafusar cada um dos parafusos da roda.
3. Remover a roda.
4. Deixar a roda no chão.
5. Colocar o estepe no eixo que está sem a roda.
6. Parafusar cada um dos parafusos da roda.
7. Abaixar o carro.
Observe que alguns passos podem parecer óbvios para nós, como 
no caso das instruções 3 e 4. Para os seres humanos, é natural que a 
23Introdução aos algoritmos e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
roda do carro deve ser retirada e colocada no chão para que seja possí-
vel colocar o estepe. Isso ocorre porque pessoas possuem inteligência 
natural e habilidade racional, algo que o computador não é capaz de 
obter. Logo, é necessário que sejam escritas instruções explícitas (por 
mais óbvias que pareçam).
NA PRÁTICA
Considere que você é um confeiteiro e está prestes a fazer um bolo. 
Você pega a receita e observa que a sequência de instrução do modo 
de preparo é:
1. Leve ao forno por 30 minutos.
2. Separe os ingredientes.
3. Realize o preparo.
Bem, não é a melhor instrução, afinal, como posso levar ao forno algo 
que não preparei ainda? Logo, podemos concluir que essa instrução é 
ilógica. Torna-se, então, essencial compreender que a ordem das instru-
ções pode afetar o resultado final do seu algoritmo.
 
2 Descrição narrativa de um algoritmo e 
implementação por blocos
Até aqui pudemos compreender o que é um algoritmo, suas caracte-
rísticas e a necessidade de lógica para elaborá-lo. No exemplo de algorit-
mo para troca do pneu de um carro, foram descritas as principais instru-
ções, porém, seria possível detalhar ainda mais, indicando, por exemplo, 
quantos e qual a ordem dos parafusos a serem desaparafusados.
No entanto, como descrever um algoritmo? Existem pelo menos três 
formas principais para representação de um algoritmo: descrição narra-
tiva, fluxograma e pseudocódigo.
24 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
2.1 Descrição narrativa
Um algoritmo pode ser representado em linguagem natural, ou seja, 
como as pessoas em geral falam (FEIJÓ; CLUA; SILVA, 2009). Por exem-
plo, a receita de bolo a seguir:
 • Bata a clara de dois ovos em neve. Em seguida, coloque as ge-
mas e bata por 1 minuto em velocidade baixa. Adicione os demais 
ingredientes e bata em velocidade alta por 5 minutos. Enquanto 
bate, unte uma forma com manteiga e espalhe duas colheres de 
farinha de trigo. Despeje todo o conteúdo da batedeira na forma 
e, em seguida, leve ao forno por 30 minutos, o qual deve estar 
preaquecido a 180 °C.
Neste outro exemplo, trata-se de um algoritmo para troca de lâmpada:
 • Primeiramente, localize a lâmpada a ser substituída. Posicione 
uma escada logo embaixo da lâmpada a ser trocada. Suba os 
degraus da escada até alcançar a lâmpada. Gire-a no sentido 
 anti-horário até que seja possível retirá-la do soquete. Desça da 
escada e coloque a lâmpada queimada em um local seguro, como 
uma mesa. Agora, de posse da lâmpada nova, suba a escada até 
que consiga alcançar o local de instalação. Posicione a lâmpada 
nova no soquete e gire no sentido horário até sentir que ela está 
bem firme. Desça da escada.
Esse tipo de algoritmo é pouco usado na prática, afinal, pode gerar 
múltiplos sentidos de interpretação. No primeiro exemplo, está escrito 
que devemos “colocar” as gemas, porém, não é dito onde. Poderíamos 
dizer: “coloque na batedeira”, porém, ainda estaria errado, pois a batedei-
ra é um aparelho formado por um motor, uma tigela e um suporte. O ovo 
deve ser colocado e batido na tigela da batedeira.
25Introdução aos algoritmos e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
Como dito anteriormente, as instruções devem ser colocadas de 
modo explícito, sem dar abertura para mais de um sentido de interpre-
tação. Podemos resolver esse tipo de questão utilizando fluxogramas.
Já no exemplo da troca de lâmpada, é dito para posicionar a escada 
“logo embaixo da lâmpada a ser trocada”, entretanto, não é dito para 
apoiar ou para abrir a escada. Logo, dependendo de quem ouvir essa 
instrução, pode acarretar algum mal-entendido.
2.2 Fluxograma
O fluxograma é um conjunto de estados que é utilizado para represen-
tar graficamente um algoritmo (FORBELLONE; EBERSPACHER, 2005). 
Cada um desses estados (instruções e comandos) é representado por 
uma forma geométrica específica, conforme ilustrado na figura 3.
Figura 3 – Formas geométricas utilizadas em um fluxograma
Início/fim de um fluxograma
Operador de entrada de dados
Operador de saída de dados
Operador de atribuição
Condicional/decisão
26 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
Na figura 3, é possível observar que os principais elementos que 
compõem um fluxograma apresentam formas geométricas diferentes. 
Isso auxilia a interpretar suas diferentes ações em um algoritmo.
Para poder desenhar um fluxograma, é possível utilizar ferramen-
tas digitais, como Microsoft PowerPoint, Google Presentation ou qual-
quer outro editor de slides, que, em sua grande maioria, possuem um 
conjunto de formas específicas para isso. Além disso, é possível rea-
lizar o desenho manual ou, então, utilizar ferramentas digitais como o 
Flowgorithm, draw.io ou Diagrams, que são sistemas gratuitos para ela-
boração de fluxogramas.
Para obter o Flowgorithm, basta pesquisar pelo seu nome em qual-
quer site de busca e, em seguida, escolher o site do proprietário. O proces-
so de download e instalação é detalhado diretamente na página.
Por outro lado, há também a possibilidade de utilizar ferramentas 
on-lines gratuitas. Uma das principais e mais simples para se trabalhar 
é o draw.io. Para acessá-la, digite em qualquer site de busca o nome da 
ferramenta (draw.io) e, em seguida, acesse o site. O modo de operação 
para criar o seu primeiro fluxoé apresentado na tela do próprio desen-
volvedor da ferramenta.
Uma das propriedades ou características de um algoritmo é sua finitu-
de, ou seja, todo algoritmo é finito. Na figura 4 a seguir, é possível obser-
var que, quando criamos um fluxograma no Flowgorithm, ele já nos traz 
um nó inicial (principal) e um nó final (fim). Então, torna-se possível adi-
cionar elementos entre esses dois nós de modo a desenhar o algoritmo.
NA PRÁTICA
Ao utilizar o Flowgorithm, é possível observar que o programa já nos 
traz, de modo fixo, os dois nós de início e fim do algoritmo. Para adicio-
nar um novo nó, basta clicar sobre a linha que separa as duas formas 
geométricas e escolher a operação desejada.
 
27Introdução aos algoritmos e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
2.2.1 Algoritmo em uma representação por blocos (fluxograma)
Para que seja possível compreender a ideia das formas geomé-
tricas ou nós apresentados na figura 3, desenvolvemos no software 
Flowgorithm um fluxograma (ou representação por blocos) do algoritmo 
de troca de pneus, representado graficamente na figura 4 a seguir.
Figura 4 – Fluxograma de um algoritmo para troca de pneus de um carro
Início
Fim
Levantar o carro do lado 
do pneu que está furado
Desaparafuse cada um 
dos parafusos da roda
Remova a roda
Deixe a roda no chão
Coloque o estepe no eixo 
que está sem a roda
Parafuse cada um dos 
parafusos da roda
Abaixe o carro
28 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
Na figura 4, é descrito o algoritmo para o processo de troca de pneu 
que considera o fato de o estepe estar cheio (se o estepe estiver cheio, 
execute toda essa sequência do algoritmo). Observe que a sequência 
lógica está mantida, porém, agora não no formato descritivo, mas, sim, 
utilizando um fluxograma.
2.3 Pseudocódigo
Observe que, até o momento, o conceito de algoritmo não foi relacio-
nado à programação, mas, sim, a um procedimento para resolver pro-
blemas utilizando uma sequência lógica de instruções.
Além da representação narrativa ou textual de um algoritmo, uma 
outra maneira de representá-lo é em pseudocódigo, o que não vem a 
ser um código de programação (ainda), porém, contém instruções inte-
ligíveis por humanos e que se assemelha a códigos para computadores.
Trata-se, portanto, de uma linguagem intermediária entre a lingua-
gem de máquina e a linguagem de computador. O pseudocódigo a se-
guir ilustra o algoritmo para troca de pneu do fluxograma da figura 4.
Quadro 1 – Pseudocódigo do algoritmo para troca de pneu
início
 se estepe == "cheio" 
 escreva("levantar o carro do lado que está furado") 
 escreva("desaparafuse cada um dos parafusos")
 escreva("remova a roda")
 escreva("coloque o estepe no eixo que está sem a roda")
 escreva("parafuse cada um dos parafusos da roda")
 escreva("abaixe o carro")
(cont.)
29Introdução aos algoritmos e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 senão 
 escreva("levar o carro ao borracheiro")
 fim-se
fim 
Observe que o pseudocódigo apresenta uma sequência de instru-
ções estruturadas de como o algoritmo deve se comportar. Um pseudo-
código é muito útil em uma fase intermediária de aprendizado, principal-
mente para traduzir um algoritmo em uma linguagem de programação 
específica. Também é muito prático para quando tivermos uma ideia do 
que deve ser feito em um programa, porém, ainda não conhecemos os 
comandos de uma determinada linguagem.
NA PRÁTICA
Quando desenvolvemos um pseudocódigo, não precisamos nos preo-
cupar com a sintaxe, ou seja, com a forma de escrita das palavras. Ob-
serve no exemplo que foram utilizadas algumas palavras como “início”, 
“se”, “escreva”, “senão”, “fim-se” e “fim”. Estas palavras são encontradas 
na maioria das linguagens de programação. Logo, compreender o uso 
delas facilitará no processo de desenvolver códigos de computadores.
 
Considerações finais
Neste capítulo, compreendemos que os algoritmos são uma se-
quência lógica e finita de instruções, com início e fim bem definidos, e 
que esses algoritmos podem ser representados de três modos diferen-
tes: declaração narrativa, fluxograma ou pseudocódigo.
Compreendemos também que, em uma declaração narrativa, o algo-
ritmo é descrito textualmente, como uma receita de bolo ou como um 
guia explicativo de como montar um móvel. Além disso, vimos que os 
30 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
fluxogramas são representações gráficas de um algoritmo, que pode 
ser descrito com o uso de nós ou formas geométricas, as quais cada 
uma possui uma determinada característica ou aplicação.
Em seguida, tivemos contato com um pseudocódigo, uma declara-
ção em tópicos de um algoritmo, ou seja, uma representação interme-
diária entre uma descrição narrativa e uma linguagem de programação.
Por fim, estudamos um caso prático, que é o algoritmo para a troca de 
pneu, e desenvolvemos um fluxograma representando esse algoritmo.
Referências
FEIJÓ, Bruno; CLUA, Esteban; SILVA, Flávio S. C. da. Introdução à ciência da 
computação com jogos: aprendendo a programar com entretenimento. Rio de 
Janeiro: Campus, 2009.
FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de 
programação: a construção de algoritmos e estruturas de dados. 3. ed. São 
Paulo: Pearson, 2005.
OPENSTREETMAP. Home. OpenStreetMap, [s. d.]. Disponível em: https://www.
openstreetmap.org/#map=4/-15.13/-53.19. Acesso em: 8 nov. 2021.
 
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo. 
Capítulo 3 
Variáveis e 
programação 
por blocos 
Antes de iniciarmos o estudo sobre alguns conceitos relacionados 
às linguagens de programação, cabe aqui uma pergunta: qual a lingua-
gem do computador? Para respondê-la, precisamos mergulhar nos con-
ceitos fundamentais da computação: os bits. 
A arquitetura do computador é composta de circuitos eletrônicos. 
Esses circuitos operam com sinais binários (0 e 1). A principal razão 
para essa arquitetura ser binária, e não decimal, deve-se ao fato de ser 
mais simples e por possuir baixo custo de implementação. 
31 
32 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
acS
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
 
 
 
Nos projetos de circuitos computacionais, são usados chips, os 
quais são compostos de um material semicondutor denominado tran-
sistores. Os transistores possuem a propriedade de conduzir energia 
elétrica apenas quando uma tensão conveniente é empregada em seus 
terminais. Os transistores são utilizados em um chaveamento como 
“liga-desliga”, assim, quando está ligado, é representado por 1, e quando 
está desligado, é representado por 0. 
O agrupamento de transistores permite outras funções lógicas. 
Como não é o objetivo deste livro se aprofundar nessas funções, basta 
sabermos que tudo o que é armazenado e processado no computador 
se trata de um conjunto finito de zeros e uns, e isso nos leva ao conceito 
de bits. 
Para que seja possível compreender a linguagem do computador, 
o primeiro passo é entender as técnicas de desenvolvimento de algo-
ritmos. Desse modo, este capítulo se destina a elucidar os principais 
conceitos da programação: entrada e saída de dados, variáveis e opera-
dores aritméticos para a manipulação desses dados e variáveis. 
1 Programação por blocos: variáveis e 
entrada de dados 
Antes dos anos 1940, os computadores não eram programados, 
mas, sim, projetados para desempenhar uma única (e específica) fun-
ção. Por exemplo, poderíamos projetar um computador para realizar o 
cálculo de distância entre uma cidade A e uma cidade B. No entanto, se 
desejássemos mudar a função do computador, adicionando uma tercei-
ra cidade para cálculo de distância, era necessário desligá-lo, adicionar 
algum componente novo ou alterar a máquina fisicamente. 
Ou seja, era algo ineficaz e pouco produtivo. Analisando todo esse 
cenário, o cientista da computação John von Neumann criou a arqui-
tetura que consiste principalmente em chips de memória capazes de 
33 Variáveis e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
armazenar e processar dados (OLIVEIRA, 2019). Cada chip tem a ca-
pacidade de realizar diferentes tarefas, dependendo de como é afetado 
pela operação executada antes dele. Nessa arquitetura, cada computa-
dor teria memória, mecanismos de entrada e saída, um controle central, 
um local para aritmética central e armazenamento externo. 
Os computadores com arquitetura von Neumann (figura 1) são co-
nhecidos como programas armazenados. Isso significa que o compu-
tador não precisa de interruptores externos ou outras influências para 
funcionar. Todas as instruções e os dados são armazenados na memó-
ria de acesso aleatório (RAM). 
Figura 1 – Arquitetura de von Neumann 
Memória 
Unidade de 
controle 
Unidade lógica 
e aritmética 
Entrada Saída 
Na figura 1, é possível observar a memória (RAM, cache, registrado-
res, disco), local onde ficam armazenados os dados; a CPU ou unidade 
central de processamento (aqui representados pela unidade de controle 
e unidade lógica e aritmética), responsável por processar as entradas 
do usuário ou o conteúdo em memória; e por fim, o canal de entrada 
(mouse, teclado, câmera, microfone) e de saída (monitor, impressora, 
caixa de som). 
Para ler um documento, é necessário que o programa de leitura pro-
cesse a requisição (entrada, solicitando que se abra o documento), que 
o programa procure na memória (disco rígido) o arquivo solicitado, e 
34 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
 
 
 
 
 
 
 
 
por fim, que apresente o arquivo na tela (saída). Assim, sempre teremos: 
entrada, processamento e saída. 
Apesar de ter sido criada em 1940, a arquitetura de von Neumann, 
em razão de sua simplicidade e funcionalidade, é empregada até hoje 
por ser um formato mais acessível, principalmente para programadores 
iniciantes. 
Trabalharemos, aqui, a programação por blocos, sempre respeitan-
do o conceito por trás da arquitetura de von Neumann. Será utilizado a 
plataforma Scratch, um ambiente de desenvolvimento em blocos criada 
pelo Massachusetts Institute of Technology (MIT), por ser um dos mais 
práticos e intuitivos ambientes para desenvolvimento de programas uti-
lizando a linguagem de blocos. 
1.1 Hello World 
A figura 2, a seguir, apresenta a interface inicial do Scratch. 
Essencialmente, ele possui oito categorias de blocos: 
• movimento (motion) – blocos responsáveis por movimentar ou 
deslocar o personagem pelo cenário; 
• aparência (looks) – blocos de saída, que modificam a aparência 
do personagem ou da cena, ou apresentam a mensagem na tela; 
• som (sound) – blocos que manipulam sons do projeto; 
• eventos (events) – blocos que definem as instruções de entrada 
do projeto; 
• controle (control) – blocos que realizam o controle de fluxo; 
• sensores (sensing) – blocos com sensores para capturar a 
entrada de clique de mouse, teclado, entre outros; 
35 Variáveis e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
• operadores (operators) – blocos com operadores aritméticos, ló-
gicos e de comparação; e 
• variáveis (variables) – blocos para criar variáveis. 
Figura 2 – Interface com as ferramentas do Scratch 
36 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
 
 
 
O primeiro passo para entender o funcionamento da programação 
com blocos é mostrar uma mensagem na tela. Aqui, utilizaremos a 
mensagem Hello World, ou “Olá, mundo”. Para isso, utilizaremos um blo-
co da categoria evento e um da categoria aparência, a figura 3 mostra 
como fica essa montagem. 
Figura 3 – Primeiro código 
No lado esquerdo da figura 3, temos a organização dos blocos. 
Note que encaixamos um bloco no outro como se encaixam peças de 
quebra-cabeça. O comando de eventos escolhido é o Quando alguém 
clicar em bandeira verde. Ou seja, quando há o clique, o personagem à 
direita apresenta a mensagem. Desse modo, temos uma entrada (clicar 
na bandeira), um processamento (recebendo a requisição) e uma saída 
(a mensagem apresentada). 
1.2 Movimentando o personagem 
Podemos melhorar nosso código. Faremos que, ao pressionar a te-
cla a, o personagem se desloca para a esquerda e, ao pressionar a tecla 
d, o personagem se desloca para a direita. A figura 4 apresenta como 
ficam os blocos. É possível observar que foram utilizados os blocos das 
categorias evento e movimento. 
37 Variáveis e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
Figura 4 – Segundo código 
Na figura 4, temos 3 comandos diferentes. O primeiro já foi visto na 
figura 3, os outros comandos são dados quando se pressiona a tecla 
a ou a tecla d. Observe que foi adicionado o bloco anda da categoria 
movimento. 
Ocenário onde fica o personagem é formado por dois eixos, o x (na 
horizontal) e o y (na vertical). Para o personagem se deslocar para a 
direita, é necessário adicionar passos, ou seja, caminhar sobre o eixo x 
em direção a um valor positivo. Por outro lado, para ele se deslocar para 
trás (ou para esquerda), é necessário ir em direção ao valor negativo do 
eixo x. Por esse motivo, temos –10 e 10 nos valores de movimento. 
Ao testar, será possível observar que o personagem se desloca de 
acordo com a entrada ao pressionar as teclas a ou d. 
38 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
 1.3 Entrada: blocos de sensor e variáveis 
Em um processo de desenvolvimento, é possível solicitar dados do 
usuário. No exemplo a seguir, o personagem perguntará ao usuário qual 
o seu nome e, após receber essa informação, ele realizará uma sauda-
ção. O exemplo de como ficou o código está na figura 5. 
Figura 5 – Terceiro código 
É possível observar na figura que o primeiro bloco é o de evento, logo, 
quando clicar na bandeira verde, o programa entra em execução. Em se-
guida, temos um bloco pergunta (bloco azul), que será o bloco utilizado 
quando desejarmos alguma entrada de texto por parte do usuário. 
O terceiro bloco já é conhecido, ele faz parte da categoria aparência 
e é responsável por mostrar uma saída do tipo texto na tela. No entanto, 
agora, em vez de digitarmos um texto, nós estamos aproveitando um 
tipo especial de bloco que é chamado de resposta. Esse bloco armaze-
na o valor digitado pelo usuário. Observe que esse bloco resposta, no 
conjunto de blocos à esquerda, está logo abaixo do bloco pergunta. 
Aqui temos um pequeno problema. Vamos supor que o personagem 
realize duas perguntas ao usuário: qual o seu nome e qual a sua idade, 
conforme a figura 6 a seguir. 
39 Variáveis e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
 
Figura 6 – Quarto código 
Ao desenvolver o programa da figura 6, o personagem perguntará 
o nome e apresentará o valor do bloco resposta (com o valor do nome 
digitado), em seguida, perguntará a idade e apresentará o valor do bloco 
resposta. No entanto, como podemos mostrar na tela o nome da pes-
soa após ela digitar a idade? Uma vez que digitamos a idade, o bloco 
resposta teve seu valor substituído, ou seja, reescrito. Existe uma ma-
neira de guardarmos ou armazenarmos tanto o nome quanto a idade, 
de modo que possamos reaproveitar esse valor posteriormente? Sim, e 
esse é o conceito de variável. 
Considere a memória do computador como uma rua. Essa rua é mui-
to longa e possui diversas casas, desde a casa 0 até a casa n, em que n 
é a capacidade máxima da memória RAM do computador. 
Agora, considere que cada casa comporta apenas uma única pessoa 
morando nela por vez. Então, podemos dizer que na casa número 6.552 
mora uma pessoa chamada José, na casa 4.251 mora a Ana. Pode ser 
que, em algum momento, outra pessoa entre na casa 6.552, logo, José 
precisa sair para que essa pessoa possa entrar. O mesmo pode acon-
tecer na casa 4.251: Paula pode entrar na casa e, de modo automático, 
Ana precisará sair. 
40 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
 
 
 
 
 
 
 
Se em algum dia quisermos saber quem mora na casa 6.552, basta 
irmos até essa casa e perguntar quem está lá. Além disso, enquanto 
não desocuparmos a casa, os moradores continuarão morando lá, por 
tempo indeterminado. 
Na memória do computador é da mesma maneira: temos casas onde 
armazenamos valores. Podemos armazenar valores por tempo indeter-
minado, até que o computador ou o programa seja encerrado. Quando 
isso ocorrer, aquela casa (espaço em memória) será desalocada. 
Observe que o morador da casa não é um elemento fixo, ou seja, ele 
varia de tempo em tempo. Então, podemos dizer que essa casa é uma 
variável. Em uma variável, podemos colocar diversos tipos de valores, 
sejam eles textos (sequência de letras), sejam eles números. 
Outra característica de uma variável é que nós podemos dar um nome 
a ela e invocá-la por esse nome (FORBELLONE; EBERSPACHER, 2005). 
Em uma analogia com a rua, suponha que alguém lhe dê a seguinte atri-
buição: vá até a avenida Paulista, número 1.578, em São Paulo. De certo 
modo, você conseguirá se deslocar até esse endereço sem muita dificul-
dade, porém, olhando os números de todos os prédios dessa avenida. Ao 
chegar, se deparará com o prédio do Museu de Arte de São Paulo (Masp). 
Por outro lado, considere que a orientação fosse: vá até o prédio do 
Masp na avenida Paulista. Talvez seja mais fácil localizar o prédio pelo 
nome a ele atribuído do que pelo endereço e número, afinal, na própria 
fachada do prédio, existe uma grande placa com o nome do museu, 
porém, o número está escrito em letras bem menores. 
Voltando ao mundo computacional, Masp é o nome daquele edifício. 
Computacionalmente, Masp seria o nome da variável, afinal, para um 
programador, é mais fácil usar um nome para referenciar uma região 
da memória do que usar o endereço (numérico) da região de memória. 
41 Variáveis e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 1.3.1 Usando variáveis 
Após compreender o conceito de variável, utilizaremos a programa-
ção em blocos para exemplificar seu uso e manipulação. Para criar uma 
variável, vá até a categoria variáveis e, em seguida, clique no botão Criar 
uma variável. Com isso, será apresentada uma tela para você informar 
o nome da variável. Esse nome deve começar obrigatoriamente com 
letras (maiúsculas ou minúsculas) ou com underscore (traço como 
este: _) e pode ser seguido por uma ou mais letras e números, sem es-
paço (FORBELLONE; EBERSPACHER, 2005; FEIJÓ; CLUA; SILVA, 2009). 
Coloque o nome da variável como nome_pessoa. Crie uma outra variá-
vel chamada idade_pessoa. A figura 7 ilustra todo esse código. 
Figura 7 – Quinto código 
Conforme apresenta a figura 7, não estamos mais mostrando o valor 
do bloco resposta. Agora, chamamos o bloco altera (responsável por 
alterar o valor de uma variável), selecionamos o nome da variável e atri-
buímos a ela o valor do bloco resposta. Esse processo foi feito tanto 
para o nome quanto para a idade. 
42 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
 
 
 
 
Mas, o que mudou? A partir de agora, os valores do nome e da 
idade da pessoa ficarão armazenados na memória do computador e, 
assim, será possível invocar essas variáveis aqualquer tempo para 
manipulá-las. 
NA PRÁTICA 
Considere criar um programa que seja responsável por receber o nome 
dos cinco melhores filmes ou séries que você já assistiu. Observe que, 
para cada filme, você necessitará de uma variável diferente para arma-
zenar os valores na memória do computador. Após digitar o nome dos 
filmes ou séries, experimente mostrá-los na tela. Importante: somente 
com a prática você obterá a proficiência em programação. 
2 Programação por blocos: operações 
aritméticas com as variáveis 
No princípio, os computadores foram desenvolvidos para realizarem 
cálculos. Essencialmente, eram gigantescas calculadoras que auxilia-
vam o serviço de tributação governamental, bem como cientistas que 
buscavam realizar cálculos matemáticos complexos. Desse modo, é 
possível utilizar os operadores aritméticos tradicionais da matemática: 
a soma (+), a subtração (–), a divisão (/) e a multiplicação (*). Esses 
operadores na programação têm a mesma saída das operações mate-
máticas tradicionais (FEIJÓ; CLUA; SILVA, 2009). 
Na programação com o Scratch, os operadores aritméticos estão 
localizados na categoria operadores. Inicialmente, será criada uma va-
riável chamada total que, como o nome indica, receberá o resultado de 
uma das operações. Também serão criadas duas variáveis chamadas 
operandoA e operandoB, ambas receberão do usuário um valor. 
43 Variáveis e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
 
 
 
O código a seguir representa um programa que solicita dois valores 
para o usuário e realiza os cálculos utilizando os operadores aritméticos. 
Figura 8 – Sexto código 
O código da figura 8 é o mais complexo apresentado até o momento, 
por isso requer um pouco mais de detalhamento, observe, então, que fo-
ram colocados cinco números no código para que seja possível acom-
panhar o que está ocorrendo, conforme se segue: 
1. O número digitado pelo usuário é armazenado na variável ope-
randoA para que este seja aproveitado na soma posteriormente. 
2. O segundo número informado pelo usuário é armazenado na 
variável operandoB para ser utilizado na soma a seguir. 
3. Observe que os operadores aritméticos têm o formato oval e se 
encaixam em blocos de saídas de texto e também no bloco altera 
44 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
 
 
 
 
 
 
 
 
(responsável por alterar o valor da variável). Logo, este bloco verde 
de soma foi adicionado ao bloco altera. Observe que o operador 
aritmético de soma possui dois espaços ovais. Um à esquerda do 
operador de soma e outro à direita, assim como é feito na mate-
mática. Note que nesses espaços foram colocados os operandos, 
ou seja, as variáveis com os números digitados pelo usuário. 
4. Observe que, neste momento, o resultado da soma (passo ante-
rior) será atribuído para a variável total. 
5. Por fim, na etapa 5, será apresentado na tela o valor da variável 
total. 
Observe, então, que estamos utilizando três variáveis e as manipu-
lando. O mesmo processo feito para realizar a soma também pode ser 
feito para realizar as outras operações aritméticas. 
NA PRÁTICA 
Considere que você deseja saber a soma de todas as suas despesas 
mensais: aluguel, combustível, faturas de água, luz, telefone, entre ou-
tras. Cada uma dessas despesas pode ser declarada como uma variá-
vel, afinal, o valor delas não é fixo (na maior parte do tempo). Desse 
modo, para a prática constante da programação, experimente criar um 
programa que, dada essas entradas das suas despesas, ele calcule o 
valor total de gastos em um mês. Lembre-se: somente com a prática 
você obterá a proficiência em programação. 
Considerações finais 
Neste capítulo, pudemos conhecer o Scratch, um ambiente de 
desenvolvimento em blocos muito prático e intuitivo, o qual permite 
desenvolver programas e compreender os conceitos fundamentais da 
programação. 
45 Variáveis e programação por blocos
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
Compreendemos que o computador segue a arquitetura de von 
Neumann, recebendo uma entrada, processando essa entrada e geran-
do uma saída. Em seguida, conhecemos o conceito de variável que, em 
uma comparação prática, é como uma casa em uma rua, sendo res-
ponsável por armazenar temporariamente um valor. Compreendemos 
também que uma variável possui um único valor, logo, se tentarmos 
atribuir outro valor a ela, o antigo será sobrescrito. 
Além disso, aprendemos que, em programação, podemos utilizar os 
operadores aritméticos para realizar as operações básicas da matemá-
tica como adição, subtração, multiplicação e divisão. 
Por fim, cabe destacar que é fortemente recomendável que se de-
senvolva os códigos aqui apresentados, testando inclusive outros valo-
res de entrada. Apenas com a prática constante será possível alcançar 
a proficiência em uma linguagem de programação. 
Referências 
FEIJÓ, Bruno; CLUA, Esteban; SILVA, Flávio S. C. da. Introdução à ciência da 
computação com jogos: aprendendo a programar com entretenimento. Rio de 
Janeiro: Campus, 2009. 
FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de 
programação: a construção de algoritmos e estruturas de dados. São Paulo: 
Pearson, 2005. 
OLIVEIRA, Márcio Lucas R. A arquitetura de von Neumann. Medium, 18 jul. 
2019. Disponível em: https://medium.com/trainingcenter/a-arquitetura-de-von-
neumann-121489873fd4. Acesso em: 25 out. 2021. 
SCRATCH. Acerca do Scratch. Scratch, [s. d.]. Disponível em: https://scratch. 
mit.edu/about. Acesso em: 25 out. 2021. 
https://mit.edu/about
https://scratch
https://medium.com/trainingcenter/a-arquitetura-de-von
 
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo. 
Capítulo 4 
Tomando decisões 
e repetindo 
instruções 
Algoritmo é definido como uma sequência de instruções que possui 
um início e fim bem delimitados. Até esse ponto, é possível compre-
ender bem. Mas vamos analisar a palavra “sequência”. Os algoritmos 
mais simples, como aqueles para realizar uma operação aritmética so-
bre dois números, por exemplo, possuem a entrada (os números que 
vamos realizar a operação), um processamento (que é a soma) e uma 
saída (que é o resultado). 
Analisando de perto, temos uma sequência encadeada de instru-
ções. No entanto, e se o usuário não informar um número ou, então, 
em vez de informar um número ele informar uma letra? E se o valor 
informado for negativo? São muitos “ses” que podemos considerar, ou 
seja, muitas condições que podem ser impostas em um único código. 
47 
48 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
 
 
 
Ainda é possível ir mais além. Considere um algoritmoque deva 
apresentar na tela uma sequência com os 5 primeiros números ímpares 
positivos. Trata-se de algo simples, basta colocar na tela 5 instruções 
para apresentar os valores 1, 3, 5, 7 e 9, respectivamente. No entanto, 
considere que agora esse mesmo algoritmo deva apresentar na tela os 
mil primeiros números ímpares positivos. 
Observe que, nesse caso, não seria prático e nem elegante inserir mil 
instruções em um algoritmo para mostrar valor por valor. Imagine como 
seria um código com mil linhas, em que cada uma teria a ação apenas 
de apresentar um número! Talvez fosse melhor criar um código que, 
automaticamente, gerasse esses números e os apresentasse na tela. 
Note que foram apresentados dois problemas, porém, ambos pos-
suem a mesma característica: eles estão modificando a sequência de 
execução do código. O primeiro tem o objetivo de validar a entrada do 
usuário mediante as condições (se for um número, execute uma instru-
ção x, se for uma letra, execute uma instrução y). O segundo problema 
visa apresentar um conjunto de valores na tela, no caso, os mil primei-
ros números ímpares. 
Neste capítulo, conheceremos as ferramentas necessárias para re-
solver esses tipos de problemas. Começaremos a estudar o conceito 
de fluxo de código e a entender que esse fluxo pode ser quebrado em 
diversos outros fluxos, formando algumas ramificações. Além disso, ve-
remos que é possível iterar um trecho (ou todo o código) várias vezes. 
1 Expressões lógicas e fluxo de controle 
Antes de apresentar o conceito de estrutura de decisão e também 
sobre estrutura de repetição, vamos entender um pouco mais sobre o 
fluxo de um algoritmo. Considere o algoritmo da figura 1 a seguir. 
49 Tomando decisões e repetindo instruções
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
 
Figura 1 – Algoritmo sequencial 
Principal 
Real nota1 
Real nota2 
Real nota3 
nota1 = 4.5 
nota2 = 5.7 
nota3 = 5.5 
Real media 
media = (nota1 + nota2 + nota3) / 3 
Fim 
Escrever media 
Na figura 1, o algoritmo é responsável por declarar e receber três notas 
de um aluno, em seguida, é realizado o cálculo para obter a média final. 
Por fim, a média é apresentada na tela para o usuário. Trata-se de uma 
sequência linear de instruções, a qual chamamos de fluxo. 
50 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
 
 
 
 
 
 
 
 
No entanto, qual a razão de se calcular uma média se não for para 
dizer se o aluno está com desempenho satisfatório ou insatisfatório? 
Em outras palavras, se a média foi calculada, logo é desejável saber se 
o aluno está aprovado ou reprovado. Aqui, será utilizado um conceito 
de controle de fluxo, em que ele será alterado de acordo com a média 
do aluno. Por exemplo, se a nota for maior ou igual a 6, significa que ele 
está aprovado, caso contrário, ele estará reprovado. 
Dito isso, considere que esse é o algoritmo de um programa que ge-
rencia as notas dos mais de 2 mil alunos de uma escola. As pessoas 
que lançam as notas as devem lançar uma a uma. No entanto, como 
deve ser esse código? Pelo que tudo indica, o fluxo apresentado na figu-
ra 1 deve ser executado para cada um dos 2 mil alunos, ou seja, assim 
que a média é apresentada, o fluxo do algoritmo volta para o início de 
onde declaramos a variável nota1. 
Neste pouco texto, já tratamos do principal conceito em programa-
ção: o controle de fluxo de um algoritmo. Note que é possível (e, em 
alguns casos, necessário) alterar o fluxo de execução de um algo-
ritmo ou, então, fazer com que um fluxo seja repetido diversas vezes 
(FORBELLONE; EBERSPACHER, 2005). 
NA PRÁTICA 
Observe que utilizamos neste capítulo o ambiente de programação em 
blocos Scratch, uma ferramenta desenvolvida pelo MIT que torna mais 
didático e visual o processo de aprendizagem de criação de algoritmos. 
1.1 Operadores de comparação e operadores lógicos 
Os operadores de comparação, como o nome indica, compara um 
valor/expressão do lado esquerdo com um valor/expressão do lado 
direito. O resultado de qualquer operação de comparação será true 
51 Tomando decisões e repetindo instruções
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
 
 
 
 
 
 
 
 
 
 
 
(verdadeiro) ou false (falso) (FEIJÓ; CLUA; SILVA, 2009). São exemplos 
de operadores de comparação: 
• > (maior); 
• < (menor); 
• >= (maior ou igual); 
• <= (menor ou igual); 
• == (igual); 
• != (diferente, que, em algumas linguagens, é representado por <>). 
Os operadores lógicos realizam uma conexão entre duas expres-
sões, é o que se denomina expressões lógicas ou expressões booleanas 
(FORBELLONE; EBERSPACHER, 2005; OLIVEIRA, 2019). O quadro 1 re-
presenta a tabela verdade das operações lógicas com os dois principais 
operadores, que são os operadores e e ou. 
Quadro 1 – Tabela lógica 
E XPRESSÃO 1 E XPRESSÃO 2 O P. E OP. OU 
true true true true 
true false false true 
false true false true 
false false false false 
Observe que o operador e, para que tenha uma saída verdadeira (true), 
precisa que todas as expressões ligadas por esse operador também se-
jam verdadeiras (true), caso contrário teremos a saída falsa (false). Por 
outro lado, ao utilizar um operador ou, para que a saída seja verdadeira 
(true), basta que qualquer expressão tenha o valor verdadeiro (true). 
52 Ma
te
ria
l p
ar
a 
us
o 
ex
cl
us
ivo
 d
e 
al
un
o 
m
at
ric
ul
ad
o 
em
 c
ur
so
 d
e 
Ed
uc
aç
ão
 a
 D
is
tâ
nc
ia
 d
a 
Re
de
 S
en
ac
 E
AD
, d
a 
di
sc
ip
lin
a 
co
rre
sp
on
de
nt
e.
 P
ro
ib
id
a 
a 
re
pr
od
uç
ão
 e
 o
 c
om
pa
rti
lh
am
en
to
 d
ig
ita
l, s
ob
 a
s 
pe
na
s 
da
 L
ei
. ©
 E
di
to
ra
 S
en
ac
 S
ão
 P
au
lo
.
Algoritmos e programação I: introdução à programação com C#
 
 
 
 
 
2 Programação por blocos: se (if) e se/senão
(if/else) 
A estrutura condicional se tem o objetivo de dividir o fluxo do có-
digo, conforme pode ser observado na figura 2, a qual representa um 
programa desenvolvido no Scratch. Trata-se de um jogo de adivinhação 
em que o usuário é chamado para adivinhar um número sorteado. Se o 
usuário acertar, ele receberá uma mensagem de parabéns. 
Figura 2 – Utilizando o bloco se 
O código da figura 2 apresenta o primeiro contato com uma es-
trutura condicional. Inicialmente, foi criada uma variável chamada 
numeroSorteado. A esta variável foi atribuída o valor 21. Em seguida, 
observe que temos um bloco azul que é responsável por solicitar ao 
usuário que digite um número. Observe também que há um bloco laran-
ja escrito se. Dentro dele, temos um bloco verde, o qual recebe dois valo-
res, um à esquerda e outro à direita do sinal de igualdade. Desse modo, 
estamos comparando o valor do conteúdo da variável numeroSorteado 
53 Tomando decisões e repetindo instruções
M
aterial para uso exclusivo de aluno m
atriculado em
 curso de Educação a Distância da Rede Senac EAD, da disciplina correspondente. Proibida a reprodução e o com
partilham
ento digital, sob as penas da Lei. ©
 Editora Senac São Paulo.
 
 
 
 
 
 
 
 
 
com o número digitado pelo usuário. Lê-se: “se o valor da variável 
numeroSorteado for igual ao número digitado pelo usuário, então faça”. 
Dentro do bloco laranja,

Continue navegando