Documente Academic
Documente Profesional
Documente Cultură
Cuiab-MT
2014
Presidncia da Repblica Federativa do Brasil
Ministrio da Educao
Secretaria de Educao Profissional e Tecnolgica
Diretoria de Integrao das Redes de Educao Profissional e Tecnolgica
Este caderno foi elaborado pelo Instituto Federal de Educao, Cincia e Tecnologia
de Rondnia-RO, para a Rede e-Tec Brasil, do Ministrio da Educao em parceria
com a Universidade Federal de Mato Grosso.
Reviso Final
Neusa Blasques
Projeto Grfico
Rede e-Tec Brasil / UFMT
Lgica de programao /Liluyoud Cury de Lacerda, Jos Marcio Benite Ramos, Sara Luize
Oliveira Duarte. Cuiab: Ed.UFMT, 2014.
117 p.
Curso Tcnico Rede E- Tec. (IFRO)
CDU 004.42
Prezado(a) estudante,
Voc faz parte de uma rede nacional de ensino que, por sua vez, constitui uma das aes do
Pronatec - Programa Nacional de Acesso ao Ensino Tcnico e Emprego. O Pronatec, institudo
pela Lei n 12.513/2011, tem como objetivo principal expandir, interiorizar e democratizar
a oferta de cursos de Educao Profissional e Tecnolgica (EPT) para a populao brasileira
propiciando caminho de acesso mais rpido ao emprego.
neste mbito que as aes da Rede e-Tec Brasil promovem a parceria entre a Secretaria de
Educao Profissional e Tecnolgica (Setec) e as instncias promotoras de ensino tcnico,
como os institutos federais, as secretarias de educao dos estados, as universidades, as es-
colas e colgios tecnolgicos e o Sistema S.
A Rede e-Tec Brasil leva diversos cursos tcnicos a todas as regies do pas, incentivando os
estudantes a concluir o ensino mdio e a realizar uma formao e atualizao contnuas. Os
cursos so ofertados pelas instituies de educao profissional e o atendimento ao estudan-
te realizado tanto nas sedes das instituies quanto em suas unidades remotas, os polos.
Os parceiros da Rede e-Tec Brasil acreditam em uma educao profissional qualificada in-
tegradora do ensino mdio e da educao tcnica capaz de promover o cidado com ca-
pacidades para produzir, mas tambm com autonomia diante das diferentes dimenses da
realidade: cultural, social, familiar, esportiva, poltica e tica.
Ns acreditamos em voc!
Desejamos sucesso na sua formao profissional!
Ministrio da Educao
Abril de 2014
Nosso contato
etecbrasil@mec.gov.br
Indicao de cones 7
Apresentao da Disciplina 11
Sumrio 13
Aula 1. Lgica 15
Aula 2. Algoritmos 21
3.1 Introduo 27
4.1 Introduo 33
5.1 Introduo 43
5.2 Variveis 43
Caro(a) estudante,
Bons estudos.
Professores-autores.
Para alcanar esse objetivo, a disciplina foi estrutura em dez aulas. A primei-
ra aborda a lgica no dia a dia e na informtica. Na segunda, trataremos dos
algoritmos e as formas de represent-lo. Na terceira aula, mostraremos as
ferramentas usadas para a criao dos algoritmos. J na quarta aula, discor-
reremos sobre a estrutura bsica de um algoritmo, em pseudocdigo com
VisualG, e em Java com Eclipse. Na sequncia, veremos o conceito de vari-
veis, sua nomenclatura e os tipos primitivos de dados. Na sexta aula, estuda-
remos os conceitos de operadores e expresses, como empregar operadores
aritmticos, relacionais e lgicos para criar expresses complexas e, final-
mente, nas quatro ltimas aulas, trataremos das estruturas de sequncia,
deciso, seleo e repetio.
Por fim, podemos dizer que um programa nada mais do que instrues para
armazenar, processar e recuperar dados em computador, e as tcnicas usadas
para escrever essas instrues influi diretamente na qualidade do programa.
essencial que voc dedique uma parcela significativa de seu tempo para
assimilar todo o contedo abordado, pois esta disciplina a base para as
prximas disciplinas relacionadas a programao, e mais ainda, a porta de
entrada do mundo das Tecnologias de Informao e Comunicao.
Bons estudos!
Aula 1. Lgica 15
1.1 O que lgica? 15
1.2 Lgica no dia a dia 16
1.3 Lgica na Informtica 17
Aula 2. Algoritmos 21
2.1 O que um algoritmo? 21
2.2 Tipos de algoritmos 22
Objetivos:
Caro(a)estudante,
Fonte: www.ahistoria.com.br
Tarefa: vestir-se.
O armrio est fechado.
A roupa est dentro do armrio.
Primeiro preciso abrir o armrio para pegar a roupa.
Depois de pegar a roupa, posso me vestir.
X passou no vestibular.
Todos que passam no vestibular so Y.
Logo, X Y.
Resumo
Voc teve o primeiro contato com os conceitos de lgica e constatou que ela
a base para a resoluo de problemas computacionais. Vimos, tambm,
que, para realizarmos uma atividade com sucesso (resoluo de um proble-
ma), executamos vrios passos de acordo com uma ordem, seguindo um
raciocnio lgico, raciocnio esse que pode ser representado formalmente
para resolver outros problemas semelhantes.
Atividades de aprendizagem
1. A partir do que leu nesta aula, explique com suas palavras a importncia
da lgica para a Informtica.
III Voc est dirigindo sua moto. Se frear rapidamente, um carro bater
em sua traseira. Se no frear rapidamente, voc atropelar uma senhora
que est atravessando a rua. Logo:
5. Trs senhoras: Dona Branca, Dona Rosa e Dona Violeta, passeavam pelo
parque, quando Dona Rosa disse:
Fonte: autores
Caro(a) estudante,
Objetivos:
conceituar algoritmos;
Caro(a) estudante,
Pea para um(a) amigo(a) descrever os passos que faz para trocar o pneu do
carro. Compare com os passos que voc faria e verifique se so iguais. bem
possvel que os algoritmos sejam diferentes.
descrio narrativa;
fluxograma;
pseudocdigo.
Vantagens:
Muito simples de usar j que bem conhecida pela pessoa que analisa o
problema.
Desvantagens:
Exemplo:
2.2.2 Fluxograma
O fluxograma uma representao grfica de um algoritmo. Utiliza alguns
smbolos pr-definidos, mostrados na Tabela 2.1, para identificar os passos a
serem seguidos para chegar ao resultado.
Vantagens:
Desvantagens:
Exemplo:
Fonte: Autores.
Vantagens:
Desvantagens:
Exemplo:
ALGORITMO
DECLARE N1, N2, SOMA: NUMRICO;
ESCREVA Digite dois nmeros;
LEIA N1, N2;
SOMA N1 + N2;
ESCREVA O resultado da soma igual a: , SOMA;
FIM_ALGORITMO.
Resumo
No desenvolvimento desta aula, voc teve a oportunidade de aprender o
que um algoritmo. Discorremos sobre os tipos de algoritmo. Os trs mais
utilizados so a descrio narrativa, o fluxograma e o pseudocdigo. Mostra-
mos tambm as vantagens e as desvantagens de cada um desses algoritmos.
Esperamos que voc esteja apto a escrev-los ou desenh-los, mesmo sem
Atividades de aprendizagem
1. Descreva qual a principal funo dos algoritmos.
Caro(a) estudante,
Objetivos:
Caro(a) estudante,
3.1 Introduo
Qualquer dispositivo eletrnico que manipula informaes, seja de pequeno
porte, como um celular; de mdio porte, como um computador desktop; ou
de grande porte, como os servidores de datacenters, todos eles executam
basicamente trs aes:
entrada de dados;
processamento de dados;
sada de dados.
pseudocdigo; e
A priori, para voc conseguir trabalhar com o Eclipse, vamos descrever ape-
nas algumas reas do mesmo:
Para cada problema dado, a partir de agora vamos resolv-los de duas for-
mas, com as dobradinhas VisualG/pseudocdigo e Eclipse/Java.
Resumo
No decorrer da aula, tratamos das ferramentas que iremos usar para criar
nossos algoritmos ao longo da disciplina. Desenvolvemos algoritmos com
pseudocdigos usando o visual G e em Java com o Eclipse, uma ferramenta
de uso profissional que permite desde a criao de programas bem simples
at os mais complexos.
Atividades de aprendizagem
1. Alm das IDEs citadas na aula, pesquise mais quatro usadas para progra-
mao e identifique as linguagens que elas utilizam.
Caro(a) estudante,
Objetivo:
Caro(a) estudante,
4.1 Introduo
Os algoritmos so feitos para serem executados por mquinas, e sabemos
que as mquinas ainda esto muito longe de ter uma inteligncia compa-
rada do ser humano.
Voc, ao estabelecer uma conversa com outra pessoa, usando a lngua por-
tuguesa, pode no seguir todas as regras gramaticais que ela exige, mas,
mesmo assim, o dilogo acontece.
Veja o exemplo:
por isso que essa comunicao deve ser bem definida, sem erros, em uma
linguagem bem limitada e simples (poucas regras, pequeno vocabulrio).
Cada linguagem de programao tem suas prprias regras e seu prprio
vocabulrio, mas elas, em sua maioria, so muito semelhantes.
Por essa razo, nesta aula, vamos explicar detalhadamente essa estrutura
de comunicao com o computador, que, como j dissemos antes, por ser
limitada e simples, fica fcil de aprender s no se esquecer dos detalhes.
Fonte: Autores.
Fonte: Autores.
} }
Pseudocdigo Java
algoritmo "AloMundo" public class AloMundo
inicio Escopo do { Escopo do
fimalgoritmo algoritmo } algoritmo
Fonte: Autores.
Fonte: Autores.
}
TABELA 4.5 - Escopos e indentao em um cdigo Java
public class AloMundo Indentao
{
}
public static void main(String[] args)
{ Escopo do
Escopo do programa
System.out.print("Al mundo!"); subprograma AloMundo
} Main
}
Fonte: Autores.
4.2.4 Comentrios
Imagine que voc tenha desenvolvido um algoritmo bem complexo h um
ano, e, por acaso, voc precisa us-lo para resolver outro problema. Se o al-
goritmo no estiver documentado, voc certamente ter um trabalho enor-
me em compreend-lo novamente, perdendo assim um tempo precioso.
Mas, caso voc o tenha documentado, ser possvel identificar o que ele faz,
as estruturas de programao que foram usadas e o porqu, entre muitas
outras informaes teis acerca dele, de suas alteraes (histrico) e dos
autores do mesmo.
Fonte: Autores.
Fonte: Autores.
Resumo
Voc acaba de adquirir novos conhecimentos, pois, nesta aula, apontamos
como definir um algoritmo. Vimos que, para criar um algoritmo, precisamos
dar um nome a ele dependendo do seu objetivo, e que esse nome deve estar
de acordo com os padres internacionais de nomenclatura de smbolos para
Atividades de aprendizagem
1. Crie um algoritmo que fornea a seguinte sada na tela do computador
(seria interessante para seu aprendizado, criar o algoritmo tanto em pseudo-
cdigo quanto em Java):
+----------------------------------+
| Programa Al Mundo |
+----------------------------------+
| Seja bem-vindo ao maravilhoso |
| mundo da programao. |
| |
| Aproveite!!! |
+----------------------------------+
Objetivos:
Caro(a) estudante,
5.1 Introduo
Antes de iniciar os estudos sobre variveis, precisamos entender o conceito
de dado na computao. Segundo Puga e Rissetti (2009), dados so valores
que sero utilizados pelo algoritmo para a resoluo de um problema. Esses
valores podem ser fornecidos pelo usurio atravs de dispositivos de entrada
de dados, ou originados a partir de outros programas (inclusive ele prprio).
5.2 Variveis
Os dados de um algoritmo, para serem utilizados e processados, precisam
estar previamente armazenados na memria do computador. A varivel en-
to seria o nome dado a um espao da memria que contm o dado a ser
utilizado pelo algoritmo.
No usar espao;
Fonte: Autores.
por esse motivo que, quando definimos uma varivel, necessrio dizer
de que tipo ela para que o programa consiga converter esses bits no dado
que desejamos. O byte 10010101 pode tanto representar a letra A quanto
o nmero 149 ou o nmero -21 (o primeiro bit pode representar o sinal po- A menor unidade de informao
reconhecida pelo computador
sitivo ou negativo). o bit, que pode ser 0 (representa
o estado desligado) ou 1
(representa o estado ligado). Um
Isto , no exemplo acima, um nico byte pode representar trs valores dife- conjunto de oito bits (oito zeros
rentes, dependendo do tipo de dado. ou uns) chamado de byte. Em
um computador padro de 64
bits, significa que cada endereo
de memria contem oito bytes (8
5.3.1 Tipos de dados primitivos x 8 bits).
A definio do tipo de dado de uma varivel primordial para garantir a
resoluo do algoritmo. As linguagens de programao tm alguns tipos j
definidos em sua estrutura eles so chamados de tipos de dados primitivos.
Literal: tipo de dado que pode receber letras, nmeros e smbolos. Esses
tipos de dados no podem ser usados para fazer clculos, apenas para
Real: tipo de dado que pode receber nmeros reais, isto , com casas
decimais, positivos ou negativos. Ex.: 3,1415; 9,8; 123,45.
Lgico: tipo de dado que pode receber apenas dois tipos de informao
verdadeiro (1) ou falso (0).
5.4.1 Pseudocdigo
Em pseudocdigo:
O sinal de dois pontos (:) serve para separar o tipo do nome da varivel;
Fonte: autores
5.4.2 Java
Em Java:
possvel declarar diversas variveis em uma linha, desde que sejam se-
paradas por ponto e vrgula;
Fonte: autores
Resumo
Acabamos de estudar o conceito de variveis e tipos de dado, primordiais
para a elaborao de algoritmos. Juntamente com eles, mostramos como
nomear uma varivel, distinguir os tipos de dados primitivos existentes e,
principalmente, como us-los em algoritmos, seja em pseudocdigo, seja
em Java.
Vamos praticar!
Atividades de aprendizagem
1. Assinale os nomes de variveis vlidas e invlidas. Quando invlida, infor-
mar o porqu:
a) XXX
b) a123
c) (A)
d) NOME
e) #66
f) dia/ano/ms
h) Ol Pessoal
i) a.b
j) c*d
Caro(a) estudante,
Objetivos:
Caro(a) estudante,
6.1 Introduo
Um processador basicamente uma mquina que processa instrues de
armazenamento e recuperao de valores, faz clculos matemticos e efetua
comparao de valores.
Operao de atribuio;
Expresses aritmticas; e
Expresses lgicas.
variavel valor
Fonte: autores
Por que o tipo literal (caractere e String) recebe valores entre as-
pas duplas?
Por que o salrio tem um ponto (.) e no uma vrgula (,) no nme-
ro?
Fonte: autores
media = n1 + n2 / 2
Para garantir que uma determinada expresso seja executada antes da ou-
tra, basta coloc-la entre parnteses. No exemplo da mdia, para o compu-
tador calcular corretamente, a expresso deveria ser:
Fonte: autores
EXEMPLO 1
2 * 4 = 4 + 4
8 = 4 + 4
8 = 8
verdadeiro
EXEMPLO 2
3 + 3 * 2 <= 3 * 3 E 3 + 2 <= 15 MOD 3
3 + 6 <= 3 * 3 E 3 + 2 <= 15 MOD 3
9 <= 3 * 3 E 3 + 2 <= 15 MOD 3
9 <= 9 E 3 + 2 <= 15 MOD 3
9 <= 9 E 5 <= 15 MOD 3
9 <= 9 E 5 <= 0
verdadeiro E 5 <= 0
verdadeiro E falso
falso
EXEMPLO 4
NO (5 + 3 <> 8 OU (2 + 3 * 2 <= 3 * 3 / 2 OU (5 MOD 2 = 1 E 4 MOD 2 = 0)))
NO (5 + 3 <> 8 OU (2 + 3 * 2 <= 3 * 3 / 2 OU (1 = 1 E 4 MOD 2 = 0)))
NO (5 + 3 <> 8 OU (2 + 3 * 2 <= 3 * 3 / 2 OU (1 = 1 E 0 = 0)))
NO (5 + 3 <> 8 OU (2 + 3 * 2 <= 3 * 3 / 2 OU (verdadeiro E 0 = 0)))
NO (5 + 3 <> 8 OU (2 + 3 * 2 <= 3 * 3 / 2 OU (verdadeiro E verdadeiro)))
NO (5 + 3 <> 8 OU (2 + 3 * 2 <= 3 * 3 / 2 OU (verdadeiro)))
NO (5 + 3 <> 8 OU (2 + 3 * 2 <= 3 * 3 / 2 OU verdadeiro))
NO (5 + 3 <> 8 OU (2 + 6 <= 3 * 3 / 2 OU verdadeiro))
NO (5 + 3 <> 8 OU (8 <= 3 * 3 / 2 OU verdadeiro))
NO (5 + 3 <> 8 OU (8 <= 9 / 2 OU verdadeiro))
NO (5 + 3 <> 8 OU (8 <= 4,5 OU verdadeiro))
NO (5 + 3 <> 8 OU (falso OU verdadeiro))
NO (5 + 3 <> 8 OU (verdadeiro))
NO (5 + 3 <> 8 OU verdadeiro)
NO (8 <> 8 OU verdadeiro)
NO (falso OU verdadeiro)
NO (verdadeiro)
NO verdadeiro
falso
Resumo
Nesta aula, estudamos os conceitos de operadores, operandos e expresses,
que podem ser aritmticas, relacionais e lgicas, e o mais importante: mos-
tramos como resolv-las. Agora sua vez praticar! Vamos l!
a) b * 2 a * c
b) b + a * 2 a + c * 3
c) (b + a) * (2 a) + c * 3
d) (b + a) * ((2 a) + c) * 3
e) (c + a * a a + 1) / (c * b * a + c a * c)
a) v E f OU f E v
b) (v E f) OU (f E v)
c) (NO (v E f)) E (f E v)
d) NO ((v E f) OU (f E v))
Objetivos:
Caro(a) estudante,
7.1 Introduo
A arquitetura bsica dos computadores, baseada na arquitetura de John von
Neumann, at hoje tem influncia direta nas linguagens de programao.
Entretanto, o estilo (modelo ou paradigma) de programao sofreu algumas
evolues, de um formato simples (sem muitos recursos e de difcil percep-
o por parte dos leigos) da dcada de 50, para um formato mais completo
(com muitos recursos e de fcil entendimento) nos dias atuais.
Programao tradicional;
Programao estruturada;
Programao modular;
A programao estruturada
uma das variantes da linguagem Nesta disciplina, vamos abordar exclusivamente aspectos da programao
imperativa, que baseada na
arquitetura von Neumann, na
estruturada, que tem como base as estruturas de controle, que so:
qual tanto os dados quanto os
programas so armazenados na
mesma memria, que, por sua Estruturas sequenciais;
vez, separada da CPU (Unidade
de Processamento de Dados),
necessitando, assim, que tanto Estruturas de deciso; e
os dados quanto as instrues
sejam transmitidos da memria
para a CPU e vice-versa. Estruturas de repetio.
Segundo Sebesta (2011, p. 38):
Nesta aula, voc ver como funciona uma estrutura sequencial.
por causa da arquitetura de
von Neumann, os recursos
centrais das linguagens
imperativas so:
As variveis, que modelam 7.2 Estrutura sequencial
as clulas de memria;
As sentenas de A estrutura sequencial em um algoritmo se d quando um conjunto de aes
atribuio, baseadas na executado em uma sequncia linear de cima para baixo, e da esquerda
operao de envio de dados
e instrues; e para a direita, na mesma ordem em que foram escritas.
A forma iterativa de
repetio nessa arquitetura.
A estrutura sequencial a base do algoritmo, pois, como vimos anterior-
Os operandos em expresses
so enviados da memria mente, so aes executadas passo a passo, em uma sequncia definida
para a CPU, e o resultado para atender a um determinado objetivo.
da avaliao da expresso
enviado de volta clula de
memria representada pelo
lado esquerdo da atribuio.
Em uma estrutura sequencial, podemos definir instrues de declarao de
variveis, atribuio, operaes aritmticas e lgicas, de entrada e de sada.
A iterao rpida em
computadores von Neumann Todas essas instrues j foram vistas, menos as duas ltimas, que veremos
porque as instrues so a seguir.
armazenadas em clulas
adjacentes de memria,
e repetir a execuo de
uma seo de cdigo
7.2.1 Sada de dados
requer apenas uma simples Para que serviria a capacidade de processar dados do computador se no
instruo de desvio.
fosse possvel mostrar os resultados? exatamente isso que os comandos de
sada fazem, enviam informaes processadas do algoritmo.
Fonte: autores
Escrever um texto;
nome = entrada.next();
Ler um texto;
Figura 7.6: Algoritmo completo em Java que calcula o salrio lquido de um funcionrio.
Fonte: Autores.
Resumo
Voc complementou seus conhecimentos bsicos acerca da elaborao de
algoritmos. Nesta aula, tratamos da estrutura sequencial em um algoritmo,
ou seja, um conjunto de aes executadas em sequncia linear. Vimos tam-
bm os comandos de sada e entrada de dados em pseudocdigo e em Java.
E, finalmente, mostramos um algoritmo completo que calcula o salrio lqui-
do de um funcionrio, em pseudocdigo e em Java.
Atividades de aprendizagem
1. Faa um algoritmo em VisualG ou em Java que receba trs nmeros intei-
ros e calcule a soma deles.
Caro(a) estudante,
Objetivos:
Caro(a) estudante,
8.1 Introduo
Estrutura de deciso ou estrutura condicional basicamente um mecanismo
capaz de verificar previamente determinadas condies, baseadas em ex-
presses lgicas, para a realizao de uma ou mais instrues.
Para uma melhor visualizao de como esse desvio acontece (como o com-
putador toma decises), vamos comparar o fluxograma de execuo de um
algoritmo com estrutura sequencial com o da estrutura condicional:
Fonte: Autores.
Fonte: Autores.
Para voc ter uma melhor visualizao de como essa escolha de fluxo acon-
tece, vamos comparar o fluxograma de execuo de um algoritmo com es-
trutura Se com o da estrutura Se - Seno:
if (expresso lgica) {
Bloco de Comandos 1;
} else {
Bloco de Comandos 2;
}
Fonte: Autores.
Mesmo sendo complexo, s vezes a soluo mais fcil para alguns tipos
de algoritmo, que precisam testar diversas condies e tomar uma deciso
sobre qual fluxo de comandos seguir, que s pode ser um (ou nenhum),
justamente aquele cuja condio for satisfeita, isto , cuja expresso lgica
for verdadeira.
Para voc ter uma melhor visualizao de como essa estrutura encadeada de
Se organizada, a seguir temos um exemplo de fluxograma de execuo de
um algoritmo com estrutura Se Seno - Se:
Fonte: Autores.
Resumo
Adicionamos nesta aula conhecimentos importantssimos para a elaborao
de algoritmos mais complexos. Tratamos das estruturas de deciso simples,
compostas e encadeadas. Vimos que a estrutura Se a mais simples, pois
h apenas um desvio de fluxo na execuo do algoritmo. Esse desvio est
condicionado a uma expresso booleana: quando verdadeira, no h desvio,
mas, caso seja falsa, o desvio efetuado. A estrutura de deciso composta
Se Ento mais completa, pois permite dois fluxos de execuo do algo-
ritmo, um quando a expresso booleana for verdadeira e outra para quando
for falsa. J a estrutura encadeada Se - Seno - Se a mais complexa,
pois permite o encadeamento de um se logo aps o Seno de outro Se,
isto, possvel encadear um Se dentro de outro, formando, assim, uma
nica estrutura.
Atividades de aprendizagem
1. Faa um algoritmo em VisualG ou em Java que, dados dois nmeros,
mostre qual o maior deles.
Ol, viu como possvel um computador tomar decises e assim executar ta-
refas mais complexas? Muito legal, no? Na prxima aula, voc ir comple-
mentar os seus conhecimentos de algoritmos com as estruturas de seleo,
um conceito bem parecido com o da estrutura de deciso. At a prxima!
Objetivos:
Caro(a) estudante,
9.1 Introduo
A estrutura de seleo muito utilizada em programao, pois serve para
controlar vrias aes diferentes, de acordo com o valor de um parmetro
(varivel) definido dentro dele. Diferentemente das estruturas de deciso, a
de seleo tem nmero pr-definido de escolhas possveis, e, consequente-
mente, de caminhos possveis.
Fonte: Autores.
Cada case recebe um valor nico, ou seja, que no pode ser repetido no
mesmo bloco de dados;
Aps o valor nico, colocamos todo cdigo que dever ser executado
(pode haver quantas linhas de cdigo forem necessrias);
Baseado no valor da varivel, ele verifica qual case tem esse valor e exe-
cuta o cdigo correspondente;
Com essa estrutura, fica fcil manipular vrios fluxos de comandos, des-
de que consigamos quantificar as opes possveis de execuo sem usar
expresses lgicas, usando somente valores de variveis. Agora, vamos ao
resumo da aula.
Resumo
Nesta aula, vimos mais uma estrutura de linguagem, a de seleo. Mostra-
mos que a estrutura de seleo permite manipular vrios fluxos de coman-
dos, usando como parmetro o valor de uma varivel. Agora sua vez de
praticar.
Objetivos:
Caro(a)estudante,
10.1 Introduo
Em nosso cotidiano comum executarmos a mesma ao repetitivamente
at chegar a um objetivo, por exemplo, fixar um prego na madeira, quando
temos que bater no prego repetidas vezes at que ele esteja fixo o suficiente
para no cair.
Para exemplificar esse conceito, imagine que seu treinador pea para que
voc faa 10 abdominais. O que mais importante para voc conseguir fa-
zer esse exerccio? Se voc respondeu estar em forma, apesar de ter certa
relevncia, essa no a resposta correta. O mais importante nesse caso
saber contar at 10.
Algoritmo "ExemplosPara"
var i: inteiro
inicio
// contar de 1 at 10
para i de 1 ate 10 faca
escreva (j:3)
fimpara
// contar de 10 at 1
para i de 10 ate 1 passo -1 faca
escreva (j:3)
fimpara
fimalgoritmo
// contar de 1 at 10
for (int i = 1; i <= 10; i = i + 1) {
System.out.println(i);
}
// contar 10 vezes
for (int i = 0; i < 9; i++) {
System.out.println(i);
}
// contar de 10 at 1
for (int i = 10; i >= 1; i = i - 1) {
System.out.println(i);
}
Onde:
int a = 10;
int b = 20;
// o loop ir executar enquanto a for menor ou igual a b
while(a <= b) {
System.out.println(a + " " + i);
a++; // incrementa o valor de a em 1
b--; // decrementa o valor de b em 1
}
A nica diferena entre eles que o Enquanto testa a expresso lgica an-
tes de executar o cdigo e tanto o Faa quanto o Repita testam somente
depois de executar o cdigo. A principal consequncia dessa diferena
que o bloco de comandos em Faa ou Repita ser sempre executado pelo
menos uma vez. J no comando Enquanto pode acontecer que seu bloco
de comandos no seja executado nem uma vez.
Repita
<bloco de comandos>
Ate <expresso logica>// repete at a expresso for ver-
dadeira
Onde:
Onde:
Fonte: Autores.
Resumo
Essa foi a nossa ltima aula. Voc estudou as estruturas de repetio para
aperfeioar determinados tipos de processo. Mostramos que, na estrutura
de deciso, o computador executa o mesmo bloco de comando quantas
vezes forem necessrias, baseado em controles bem definidos de repetio
para se chegar ao resultado pretendido.
No se esquea de realizar as atividades especficas desta aula para um me-
lhor entendimento do assunto abordado.
Atividades de aprendizagem
1. Faa um algoritmo em VisualG ou em Java que calcule o saldo atual de
uma poupana, dado o total depositado, a porcentagem do rendimento
mensal e o nmero de meses que o valor est no banco.
Caro(a) estudante,
Aula 1
1. Resposta pessoal.
2.
4.
I-B
II - B
III - C
6. http://www.youtube.com/watch?v=UUd3cucmL2A
Aula 2
Abrir o navegador.
3.
NetBeans Java
Delphi Pascal
XCode Objective C
using System;
namespaceMeusProjetos
{
classProgram
{
staticvoid Main(string[] args)
{
Console.Write("Digiteseunome: ");
string nome = Console.ReadLine();
Console.WriteLine("Seja bem vindo {0}", nome);
Console.ReadKey();
}
}
}
ProgramOla_Mundo;
begin
WriteLn('Ol, Mundo!');
end.
#import <stdio.h>
int main(void)
{
puts("Ol, Mundo!");
return 0;
}
Aula 4
1 e 2.
algoritmo "Mensagem"
// Autor: Liluyoud, Sara e Jos Marcio
var
// declarao de variveis
Inicio
// Algoritmo para mostrar uma mensagem
Escreva("+-------------------------------+")
Escreva("| Programa Al, Mundo |")
Escreva("+-------------------------------+")
Escreva("| Seja bem-vindo ao maravilhoso |")
Escreva("| mundo da programao. |")
Escreva("| |")
Escreva("| Aproveite!!! |")
Escreva("+-------------------------------+")
Fimalgoritmo
3.
Funo do Algoritmo Nome
Transformar dlar em real Cambio
Calcular o ndice de massa corporal de uma pessoa CalculoIMC
Calcular a rea de um tringulo AreaTriangulo
Efetuar um saque na conta-corrente ContaSaque
algoritmo "Cambio"
var
valorReal, valorDolar, cotacao: real
Inicio
Escreva("Informe o valor em Dolar: ")
Leia(valorDolar)
Escreva("Informe a cotao do dia: ")
Leia(cotacao)
valorReal := valorDolar * cotacao
Escreva("O valor em real ", valorReal)
Fimalgoritmo
algoritmo "CalculoIMC"
var
peso, altura, imc: real
Inicio
Escreva("Informe seu Peso: ")
Leia(peso)
Escreva("Informe sua Altura: ")
Leia(altura)
imc := peso / (altura * altura)
Escreva("Seu IMC ", imc)
Fimalgoritmo
algoritmo "AreaTriangulo"
var
base, altura, area: real
Inicio
Escreva("Informe o largura da base do tringulo: ")
Leia(base)
Escreva("Informe sua Altura: ")
Leia(altura)
area := (base * altura) / 2
Escreva("A rea do tringulo ", area)
Fimalgoritmo
algoritmo "ContaSaque"
var
saldo, valorSaque: real
Inicio
Escreva("Informe o saldo atual da conta: ")
Leia(saldo)
Escreva("Informe o valor do Saque: ")
Leia(valorSaque)
saldo := saldo - valorSaque
Escreva("O novo saldo de ", saldo)
fimalgoritmo
1. a) XXX vlido
b) a123 vlido
c) (A) invlido
d) NOME invlido
e) #66 invlido
f) dia/ano/ms invlido
g) 1abc invlido
h) Ol Pessoal invlido
i) a.b invlido
j) c*d invlido
Aula 6
Exemplo: a * b
a e b so os operandos
* o operador
a * b a expresso
(a + b) / 2
Expresses lgicas
3. Sendo a = 2, b = 5 e c = 3, temos:
b) b + a * 2 a + c * 3=>5 + 2 * 2 2 + 3 * 3=> 5 + 4 2
+ 9 => 16
c) (b + a) * (2 a) + c * 3=>(5 + 2) * (2 2) + 3 * 3 =>
7 * 0 + 9 => 9
e) (c + a * a a + 1) / (c * b * a + c a * c)=> (3 + 2 *
2 2 + 1) / (3 * 5 * 2 + 3 2 * 3) = > (3 + 4 2 + 1) /
(30 + 3 6) => 6/27
4.
d) NO ((v E f) OU (f E v))
NO (6<> 8 OU v) OU (f)
NO (v OU v) OU (f)
NO (v) OU (f)
f OU f
Aula 7
1.
Algoritmo "Prog_7_1"
Var
n1, n2, n3, soma: Inteiro
Inicio
Leia(n1)
Leia(n2)
Leia(n3)
soma:= n1 + n2 + n3
Escreva(soma)
FimAlgoritmo
2.
Algoritmo "Prog_7_2"
Var
n1, n2, n3, n4, media: Real
Inicio
Leia(n1)
Leia(n2)
Leia(n3)
Leia(n4)
media := (n1 + n2 + n3 + n4) / 4
Escreva(media)
FimAlgoritmo
Algoritmo "Prog_7_3"
Var
n1, n2, p1, p2, media: Real
Inicio
Leia(n1)
Leia(n2)
Leia(p1)
Leia(p2)
media := ((n1 * p1) + (n2 * p2))/ (p1 + p2)
Escreva(media)
FimAlgoritmo
4.
Algoritmo "Prog_7_4"
Var
salario, porcentagem: Real
Inicio
Leia(salario)
Leia(porcentagem)
salario := salario + salario * porcentagem / 100
Escreva(salario)
FimAlgoritmo
5.
Algoritmo "Prog_7_5"
Var
salario, imposto: Real
dependentes: Inteiro
Inicio
Leia(salario)
Leia(dependentes)
salario := salario + dependentes * 32
imposto := salario * 0.275
salario := salario - imposto
Escreva(salario)
FimAlgoritmo
Algoritmo "Prog_7_6"
Var
valorAntigo, valorNovo, diferenca: Real
Inicio
Leia(valorAntigo)
Leia(valorNovo)
diferenca := (valorNovo - valorAntigo) / valorAntigo
diferenca := diferenca * 100
Escreva(diferenca, "%")
FimAlgoritmo
7.
Algoritmo "Prog_7_7"
Var
raio, diametro, perimetro, area, volume: Real
Inicio
Leia(raio)
diametro := 2 * raio
perimetro := 2 * 3.1415 * raio
area := 3.1415 * raio * raio
volume := 4 / 3 * 3.1415 * raio * raio *raio
Escreval(diametro)
Escreval(perimetro)
Escreval(area)
Escreval(volume)
FimAlgoritmo
8.
Algoritmo "Prog_7_8"
Var
valocidadeKM, velocidadeMS: Real
Inicio
Leia(valocidadeKM)
velocidadeMS := valocidadeKM * 1000 / (60 * 60)
Escreval(velocidadeMS)
FimAlgoritmo
1.
Algoritmo "Prog_8_1"
Var
n1, n2: inteiro
Inicio
Leia(n1)
Leia(n2)
Se (n1 > n2) Entao
Escreva("O primeiro nmero maior")
Senao
Escreva("O segundo nmero maior")
FimSe
FimAlgoritmo
2.
Algoritmo "Prog_8_2"
Var
n: inteiro
Inicio
Leia(n)
Se (n mod 3 = 0) Entao
Escreva(" divisvel por 3")
Senao
Escreva("No divisvel por 3")
FimSe
FimAlgoritmo
3.
Algoritmo "Prog_8_3"
Var
lado1, lado2, lado3: inteiro
Inicio
Leia(lado1)
Leia(lado2)
Leia(lado3)
Se ((lado1 + lado2 > lado3) E (lado2 + lado3 > lado1) E
(lado1 + lado3 > lado2)) Entao
Escreva(" possvel criar um tringulo")
Senao
Escreva("No possvel criar um tringulo")
FimSe
FimAlgoritmo
Algoritmo "Prog_8_1"
Var
n: inteiro
Inicio
Leia(n)
Se (n % 3 = 0) E (n % 4 = 0) E (n % 5 <> 0) Entao
Escreva(" divisvel por 3 e 4 e no por 5")
Senao
Escreva("No obedece as regras")
FimSe
FimAlgoritmo
5.
Algoritmo "Prog_8_5"
Var
n1, n2, n3, aux: inteiro
Inicio
Leia(n1)
Leia(n2)
Leia(n3)
Se (n1 > n2) Entao
aux := n1
n1 := n2
n2 := aux
FimSe
Se (n2 > n3) Entao
aux := n2
n2 := n3
n3 := aux
FimSe
Se (n1 > n2) Entao
aux := n1
n1 := n2
n2 := aux
FimSe
Escreva(n1, n2, n3)
FimAlgoritmo
Algoritmo "Prog_8_6"
Var
salarioBruto, irpf, inss, salarioLiquido: Real
Inicio
Leia(salarioBruto)
irpf := 0
inss := salarioBruto * 0.11
Se (inss> 400) Entao
inss := 400
FimSe
Se (salarioBruto>= 3000) Entao
irpf := salarioBruto * 0.275
Senao
Se (salarioBruto>= 1500) Entao
irpf := salarioBruto * 0.15
FimSe
FimSe
salarioLiquido := salarioBruto - irpf - inss;
Escreval(irpf)
Escreval(inss)
Escreval(salarioLiquido)
FimAlgoritmo
Aula 9
1.
Algoritmo "Prog_9_1"
Var
numero: Inteiro
Inicio
Leia(numero)
Escolha numero
Caso 1
Escreva("Janeiro")
Caso 2
Escreva("Fevereiro")
Caso 3
Escreva("Maro")
Caso 4
Escreva("Abril")
Caso 5
Escreva("Maio")
Caso 6
Escreva("Junho")
Caso 7
2.
Algoritmo "Prog_9_2"
Var
uf: caractere
Inicio
Leia(uf)
Escolha uf
Caso "RO"
Escreva("Porto Velho")
Caso "AC"
Escreva("Rio Branco")
Caso "AM"
Escreva("Manaus")
Caso "AP"
Escreva("Amap")
OutroCaso
Escreva("UF Inexistente")
FimEscolha
FimAlgoritmo
3.
Algoritmo "Prog_9_3"
Var
posicao: Inteiro
Inicio
Leia(posicao)
Escolha posicao
Caso 1
Escreva("Parabns, voc o melhor.")
4.
Algoritmo "Prog_9_4"
Var
n1, n2, resultado: Real
opcao: Caractere
Inicio
Leia(n1)
Leia(n2)
Leia(opcao)
Escolha opcao
Caso "+"
resultado := n1 + n2
Caso "*"
resultado := n1 * n2
Caso "-"
resultado := n1 - n2
Caso "/"
resultado := n1 - n2
FimEscolha
Escreva(resultado)
FimAlgoritmo
Aula 10
1.
Algoritmo "Prog_10_1"
Var
valor, rendimento: Real
i, meses: inteiro
Inicio
Leia(valor)
Leia(rendimento)
Leia(meses)
Para i de 1 ate meses faca
valor := valor + valor * rendimento / 100
FimPara
Escreva(valor)
FimAlgoritmo
Algoritmo "Prog_10_2"
Var
i, n, soma: inteiro
Inicio
Leia(n)
soma := 0
Para i de 1 ate n faca
soma := soma + i
FimPara
Escreva(soma)
FimAlgoritmo
3.
Algoritmo "Prog_10_3"
Var
i, n, fatorial: inteiro
Inicio
Leia(n)
fatorial := 1
Para i de n ate 2 passo -1 faca
fatorial := fatorial * i
FimPara
Escreva(fatorial)
FimAlgoritmo
4.
Algoritmo "Prog_10_4"
Var
i, a, b, potencia: inteiro
Inicio
Leia(a)
Leia(b)
potencia := 1
Para i de 1 ate b faca
potencia := potencia * a
FimPara
Escreva(potencia)
FimAlgoritmo
Algoritmo "Prog_10_5"
Var
n, fatorial, i, j: inteiro
neper: real
Inicio
Leia(n)
neper := 1
Para i de 1 ate n faca
fatorial := 1
Para j de 1 ate i faca
fatorial := fatorial * i
FimPara
neper := neper + (1 / fatorial)
FimPara
Escreva(neper)
FimAlgoritmo
MANZANO, Jos Augusto N. G; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lgica para
desenvolvimento de programao de computadores. 22. ed. So Paulo: Erica, 2009.
Obras Consultadas
ARAJO, Everton Coimbra. Algoritmos: fundamento e prtica. 3. ed. So Paulo: Visual
Books, 2007.
SOARES, Mrcio Vieira; GOMES, Marcelo Marques; SOUZA, Marco Antnio. Algoritmos
e Lgica de Programao. 2. ed. So Paulo: Cengage Learning, 2011.