Você está na página 1de 51

COTIL Colgio Tcnico de Limeira da Unicamp

Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

ndice
1. Introduo ____________________________________________________________ 3
1.1 Conceitos Bsicos __________________________________________________________ 3
Exerccios ___________________________________________________________________ 6
1.2 Por que programar computadores? ___________________________________________ 7
1.3 Como programar? _________________________________________________________ 7
1.4 Algoritmos _______________________________________________________________ 8
Exerccios __________________________________________________________________ 12
1.5 Obstculos para um programador ___________________________________________ 13
1.6 Mtodos para construo de algoritmos ______________________________________ 13
1.7 Formas de Representao __________________________________________________ 14
1.7.1 Linguagem natural ____________________________________________________________ 14
1.7.2 Pseudocdigo ou Portugus estruturado ____________________________________________ 14
1.7.3 Fluxograma __________________________________________________________________ 15
Exerccios __________________________________________________________________ 18
2. Tipos Primitivos de Dados _______________________________________________ 19
2.1 Tipos de Dados ___________________________________________________________ 19
2.2 Constantes_______________________________________________________________ 19
2.3 Variveis ________________________________________________________________ 19
2.4 Identificadores ___________________________________________________________ 19
2.5 Declarao de constantes___________________________________________________ 20
2.6 Declarao de variveis ____________________________________________________ 21
Exerccios:__________________________________________________________________ 22
3. Terminador de Linha ___________________________________________________ 24
4. Comentrios __________________________________________________________ 24
5. Expresses e Operadores aritmticos ______________________________________ 25
Exerccios __________________________________________________________________ 26
6. Expresses Lgicas e Operadores Relacionais _______________________________ 27
Exerccios __________________________________________________________________ 28
7. Operadores lgicos ____________________________________________________ 29
7.1 Tabelas-Verdade _________________________________________________________ 29
7.1.1. Operao de negao __________________________________________________________ 29
7.1.2. Operao de Conjuno ________________________________________________________ 29
7.1.3. Operao de Disjuno ________________________________________________________ 29

Pgina: 1/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

7.2. Prioridade dos operadores lgicos ___________________________________________ 30


7.3. Prioridade entre todos os operadores ________________________________________ 30
Exerccios __________________________________________________________________ 31
8. Entrada e Sada de Dados _______________________________________________ 32
Exerccios __________________________________________________________________ 33
9. Estruturas de Seleo __________________________________________________ 35
9.1 Estrutura de Seleo Simples _______________________________________________ 35
9.2 Estrutura de Seleo Composta _____________________________________________ 36
Exerccios __________________________________________________________________ 37
9.3 Estrutura de Seleo de Mltipla Escolha _____________________________________ 40
Exerccios:__________________________________________________________________ 41
10. Estruturas de Repetio________________________________________________ 43
10.1 Repetio com teste no incio ______________________________________________ 43
Exerccios:__________________________________________________________________ 44
10.2 Repetio com teste no final _______________________________________________ 46
Exerccios:__________________________________________________________________ 47
10.3 Repetio com varivel de controle _________________________________________ 48
Exerccios __________________________________________________________________ 49
Exerccios Extras: _______________________________________________________ 51

Pgina: 2/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

1. Introduo

1.1 Conceitos Bsicos

A disciplina tcnicas de programao consiste em ensinar a organizar as idias


para que o programa a ser desenvolvido se torne simples e eficiente.

Para tanto existe a necessidade de primeiro organizar as idias de uma forma


LGICA. Sendo assim faremos uso da lgica de programao para criar
programas com facilidade.

Como a idia da disciplina fazer uso da lgica de programao, vamos iniciar


nossos estudos procurando entender o que lgica de uma forma geral. A seguir
sero dadas algumas definies que procuram elucidar o termo lgica.

[do grego logik, que significa "arte de raciocinar"]. Na tradio clssica,


aristotlico-tomista, conjunto de estudos que visam a determinar os processos
intelectuais que so condio geral do conhecimento verdadeiro. (1a definio
encontrada no Dicionrio Aurlio da Lngua Portuguesa)

Coerncia de raciocnio, de idias. (6a definio encontrada no Dicionrio


Aurlio da Lngua Portuguesa)

Maneira de raciocinar particular a um indivduo ou a um grupo: a lgica da


criana, a lgica primitiva, a lgica do louco. (7a definio encontrada no
Dicionrio Aurlio da Lngua Portuguesa)

A lgica trata da correo do pensamento. Como filosofia ela procura saber por
que pensamos de uma forma e no de outra. Poderamos dizer tambm que a
lgica a arte de pensar corretamente e, visto que a forma mais complexa de
pensamento o raciocnio, a Lgica estuda ou tem em vista a "correo do
pensamento". A Lgica ensina a colocar Ordem no Pensamento.

Exemplo:

1) Todo vulcano tem orelhas pontudas.


Spock vulcano.
Logo, Spock tem orelhas pontudas.

2) Todo Jedi possui a Fora.


Luke Skywalker se tornou uma Jedi.
Logo, Luke Skywalker possui a Fora.

Pgina: 3/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

3) Quando chove, no preciso regar as plantas do jardim.


Hoje choveu.
Logo, hoje no preciso regar as plantas do jardim.

Neste outro exemplo, esto descritas as aes de quem vai a um banco,


entretanto, veja se seria possvel retirar o dinheiro obedecendo a seguinte
seqncia:

1. Sair do banco.
2. Aguardar a vez de ser atendido.
3. Entrar na fila do caixa.
4. Digitar a senha.
5. Entrar no banco.
6. Informar o valor a ser retirado.
7. Procurar a fila do caixa.
8. Pegar o comprovante do saque, o carto eletrnico e o dinheiro.
9. Entregar o carto eletrnico ao funcionrio que atende no caixa.
10. Conferir o valor em dinheiro.

Voc conseguiria retirar o dinheiro? Com certeza no, pois embora as aes
estejam corretas, a seqncia est errada. Agora observe as mesmas aes na
seqncia correta:

1. Entrar no banco.
2. Procurar a fila do caixa.
3. Entrar na fila do caixa.
4. Aguardar a vez de ser atendido.
5. Entregar o carto eletrnico ao funcionrio que atende no caixa.
6. Informar o valor a ser retirado.
7. Digitar a senha.
8. Pegar o comprovante do saque, o carto eletrnico e o dinheiro.
9. Conferir o valor em dinheiro.
10. Sair do Banco.

Normalmente somos bem sucedidos na execuo de uma tarefa quando


empregamos raciocnio lgico (lgica). Se quisermos ter bons resultados numa
prova escolar, devemos estudar o assunto que ser tratado na prova (isto lgico,
pois o objetivo da prova fazer com que o aluno apreenda o contedo em pauta,
ao passo que "colar" seria ilgico, pois o aluno est enganando a si mesmo, no
apreendendo o contedo necessrio). Se quisermos ter sucesso numa
modalidade esportiva, devemos treinar, descansar e nos alimentarmos
adequadamente. Se quisermos desenvolver bons programas de computador,
devemos program-lo logicamente, para que este possa resolver o problema

Pgina: 4/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

desejado da forma mais otimizada possvel, dado um conjunto de restries.


neste ponto que entra o conceito de lgica de programao.

Lgica de Programao: raciocnio lgico empregado no desenvolvimento de


programas de computador, fazendo uso ordenado dos elementos bsicos
suportados por um dado estilo de programao.

Pgina: 5/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios

1. Uma pessoa precisa trocar o pneu furado de um carro. Quais as


aes necessrias para realizar essa tarefa e em qual seqncia?

2. Qual a seqncia para se obter a resposta da operao matemtica 5


multiplicado por 6 mais 2, dividido por 3 em uma calculadora simples?

3. Qual a seqncia para se efetuar uma ligao telefnica local em sua cidade.

4. Qual a seqncia para se efetuar uma ligao telefnica de longa distncia em


seu estado.

5. Qual a seqncia de aes para se retirar R$ 100,00 de um caixa automtico


de banco.

Pgina: 6/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

1.2 Por que programar computadores?

Programa no dicionrio Aurlio da Lngua Portuguesa figura como escrito ou


impresso que contm os pormenores dum espetculo, festa, ou cerimnia, etc..

Ento, pode-se dizer que programar computadores dizer-lhes, aos pormenores,


como agir em determinadas situaes que podem ser criadas pelos usurios ou
por outros programas.

Sendo assim, desde os primeiros computadores, se no houvesse meio de


program-los, eles no adiantariam de nada. Como poderamos obter certos
resultados dos computadores se eles no soubessem o que fazer?

Programar computadores vem se tornando dia-a-dia uma necessidade, j que os


softwares tradicionais (que no deixaram de ser programados por algum)
atendem cada vez menos as necessidades mais especficas de certos tipos de
usurios, muito deles da rea cientfica acadmica. Ou seja, existe, por exemplo,
algum programa do pacote Microsoft Office que auxilie um fsico em seus clculos
complexos sobre a interao magntica de dois tomos? Com absoluta certeza a
resposta : nenhum.

O mais sensato seria que o nosso suposto cientista aprendesse a programar o


computador para que ele possa resolver tais clculos. Ou seja, que ele
aprendesse a dizer ao computador como se portar diante dos nmeros que lhe
sero apresentados, obtendo assim o resultado desejado.

Na verdade existem milhares de motivos para que algum queira aprender a


programar um computador, se o exemplo anterior no se aplica a voc, talvez
saber que uma das profisses mais rentveis no ramo de informtica hoje em
dia lhe anime.

1.3 Como programar?

Talvez essa no seja a pergunta ideal para agora, pois programar para valer
faremos somente depois de uma breve introduo programao de
computadores, porm o que se pode adiantar que para se programar um
computador necessrio adotar-se uma linguagem de programao.

Linguagem de programao um programa, que nos auxilia em dizer ao


computador o que fazer.

Uma linguagem de programao composta de vrios comandos pr-definidos


onde cada um representa uma ao do computador frente a uma determinada

Pgina: 7/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

ocasio. Sendo assim voc ter que escrever, literalmente, seus programas
usando os comandos da linguagem adotada.

Depois de escritos, os programas, que esto escritos numa linguagem qualquer,


tem que ser transformados, traduzidos, na linguagem do computador, que
chamamos de linguagem de mquina. Quem faz isso o compilador.

Aprendendo como programar corretamente com certeza voc no ter dificuldade


em aprender tambm uma linguagem de programao e em fazer seus
programas, uma vez que a lgica seja bem desenvolvida o restante est em
conhecer quais so e para o que servem os comandos.

Antes de colocarmos a mo na massa propriamente dita, precisamos saber o que


e quando dizer ao computador o que fazer, e essa a tarefa do tpico seguinte.

1.4 Algoritmos

Sendo assim, a primeira coisa a fazer colocar o nosso pensamento em ordem.


preciso ter em mente qual o objetivo final a ser alcanado, depois disso
cuidamos do caminho para se chegar l.

Por exemplo, a idia fazer o computador somar dois nmeros. Esse o nosso
objetivo final, agora como chegar l pode ser descrito primeiro na nossa
linguagem natural, no caso o portugus, e depois transformada na linguagem de
programao (geralmente muito perto do ingls), isso faz com que o resultado seja
alcanado mais rpida e eficazmente, e com um nmero reduzido de problema e
erros encontrados. Sendo assim, os passos que podem ser seguidos so os
seguintes:

Pegue um nmero.
Pegue outro nmero.
Some os dois.
Mostre-me o resultado.

O que acabamos de fazer foi um algoritmo lgico, que nada mais do que uma
seqncia de passos que seguem uma certa ordem lgica que descrevem em
pormenores alguma tarefa a ser realizada at o seu objetivo final.

importante que antes de realizarmos qualquer programao faamos os


algoritmos, mesmo que simples, para que no nos desviemos do objetivo final
desejado, e para facilitar chegarmos at l.

Pgina: 8/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Porm tambm importante que possamos detalhar cada vez mais o algoritmo,
para que cada vez mais possamos enxergar os mnimos detalhes dos caminhos a
serem percorridos at chegar-se ao objetivo pleiteado.

Outro bom exemplo pode ser a troca de uma lmpada queimada:

Pegue uma escada.


Posicione-a embaixo da lmpada.
Busque uma lmpada nova.
Suba na escada.
Retire a lmpada.
Coloque a lmpada nova.

Esse um bom algoritmo para a troca de uma lmpada queimada, mas que pode
ser melhorado e muito, ou seja, pode ser otimizado.

Otimizar detalhar o algoritmo at que, de maneira mais simples possvel,


descreva todos os passos necessrios a uma tarefa.

Uma questo que esse algoritmo deixa em aberto : como se sabe se a lmpada
est ou no queimada. Nesse caso, podemos utilizar uma estrutura de condio,
que diz o que fazer ou no se acontecer alguma coisa. Veja:

Ligue o interruptor.
Se a lmpada no acender:
Pegue uma escada.
Posicione-a embaixo da lmpada.
Busque uma lmpada nova.
Suba na escada.
Retire a lmpada.
Coloque a lmpada nova.

Essa estrutura condicional diz o que fazer se a lmpada no acender, mas no o


que fazer caso ela acenda, sendo assim, se ela estiver queimada, segue-se o
procedimento de troca, seno no se faz nada, acaba-se o algoritmo.

Note que a endentao muito importante, pois se pode deixar o algoritmo, e


mais tarde o programa, em nveis, digamos, hierrquicos, sabendo assim o que
est sob o controle de qu. No exemplo acima, o pegue a escada e etc.
dependem do Se a lmpada no acender.

O uso de indicativos para comeo e fim de passos pode ajudar. Veja:

Pgina: 9/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Incio.
Ligue o interruptor.
Se a lmpada no acender:
Incio do Se.
Pegue uma escada.
Posicione-a embaixo da lmpada.
Busque uma lmpada nova.
Suba na escada.
Retire a lmpada.
Coloque a lmpada nova.
Fim do Se.
Fim.

Assim mais fcil de visualizar o que deve ou no ser feito e at onde.

Mesmo assim o algoritmo pode ser melhorado, pensando-se em novas


possibilidades, de, por exemplo, a nova lmpada estar tambm queimada:

Incio.
Ligue o interruptor.
Se a lmpada no acender:
Incio do Se.
Pegue uma escada.
Posicione-a embaixo da lmpada.
Busque uma lmpada nova.
Suba na escada.
Retire a lmpada.
Coloque a lmpada nova.
Se a lmpada no acender:
Incio do Se.
Retire a lmpada.
Coloque a lmpada nova.
Fim do Se.
Fim do Se.
Fim.

Bom, veja que existe uma nova condio para se a nova lmpada tambm estiver
queimada, mas e se essa segunda nova lmpada tambm estiver queimada? At
quando colocaremos condies no algoritmo? Bom, nesse caso, como h a
possibilidade de infinitas lmpadas queimadas, podemos usar uma estrutura de
repetio. Veja:

Incio.
Ligue o interruptor.

Pgina: 10/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Se a lmpada no acender:
Incio do Se.
Pegue uma escada.
Posicione-a embaixo da lmpada.
Busque uma lmpada nova.
Suba na escada.
Retire a lmpada.
Coloque a lmpada nova.
Enquanto a lmpada no acender:
Incio do Enquanto.
Retire a lmpada.
Coloque a lmpada nova.
Fim do Enquanto.
Fim do Se.
Fim.

Apesar de estar bem otimizado, ou seja, prximo do timo, ainda o algoritmo pode
ser melhorado, e muito! Ainda existem vrias estruturas que podem ser usadas e
muitas coisas podem ser implementada, como por exemplo, e se a luz no
ascender porque falta energia eltrica? Veja que discutindo isso podemos chegar
a uma infinidade de operaes e condies, por esse motivo importante definir o
foco do algoritmo.

Pgina: 11/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios

1. Monte um algoritmo com a seqncia de aes para fazer uma


vitamina com um mamo, uma banana, uma ma, um pouco de leite
e acar.

2. Monte um algoritmo com as aes para fazer uma macarronada com molho de
tomate (em lata).

3. Considere que uma calculadora comum est com os botes de multiplicao e


diviso danificados. Escreva um algoritmo que resolva cada expresso
matemtica abaixo usando apenas adio e subtrao:

a) 12 x 4

b) 23 x 11

c) 10 2

d) 175 7

e) 28

f) 3 x 4

g) 8 2

h) 1000 3

i) 3

j) 15 x 7

4. Um homem precisa atravessar um rio com um barco que possui capacidade


apenas para carregar ele mesmo e mais uma de suas trs cargas, que so: um
lobo, um bode e um mao e alfafa. O que o homem deve fazer para conseguir
atravessar o rio sem perder suas cargas? Escreva um algoritmo mostrando a
resposta, ou seja, indicando todas as aes necessrias para efetuar uma
travessia segura.

Pgina: 12/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

1.5 Obstculos para um programador


Certamente, o maior problema que envolve a construo de algoritmos a
complexidade. Portanto, quando tentamos construir um, o objetivo principal
vencer a complexidade do problema a ser solucionado. Isto sim pode ser
considerado um pesadelo constante que nos acompanhar a cada momento. J
que to importante assim, afinal, o que complexidade?

Para ns, complexidade ser sempre encarada como sinnimo de variedade, que
por sua vez representa a quantidade de situaes diferentes que um problema
pode apresentar, as quais devem ser previstas na sua soluo.

J que saber conviver com a complexidade um mal necessrio, muito


saudvel fazer o possvel para diminu-la ao mximo, a fim de poder controlar o
problema e encontrar sua soluo. Existem diversas maneiras de reduzir a
complexidade, ou evitar que ela cresa. Para fins didticos, iremos concentrar-
nos, por enquanto, em impedir o crescimento da complexidade, a fim de que nos
habituemos desde cedo a control-la.

1.6 Mtodos para construo de algoritmos

Utilizando os conceitos j desenvolvidos, podemos especificar um mtodo que


traduza uma seqncia lgica que leve construo de algoritmos:

1) Ler atentamente o enunciado.


justamente o enunciado do exerccio que fornece o
encaminhamento necessrio resoluo do problema, que se torna,
portanto, dependente de sua completa compreenso.
2) Retirar do enunciado a relao das entradas de dados.
Atravs do enunciado podemos descobrir quais so os dados que
devem ser fornecidos, a partir dos quais desenvolveremos os
clculos.
3) Retirar do enunciado a relao das sadas de dados.
Atravs do enunciado podemos descobrir quais so os dados que
devem ser emitidos para compor o resultado final, objetivo do
algoritmo.
4) Determinar o que deve ser feito para transformar as entradas
determinadas na sadas especificadas.
Nesta fase que temos a construo do algoritmo propriamente dito,
pois, a partir de alguns requisitos especificados, devemos determinar
qual seqncia de aes capaz de transformar um conjunto
definido de dados nas informaes de resultado.
5) Construir o algoritmo.

Pgina: 13/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Com base no conhecimento disponvel a respeito do problema,


podemos montar o algoritmo definitivo.
6) Executar o algoritmo.
Implica executar todas as aes descritas seguindo o fluxo de
execuo estabelecido, verificando se os resultados obtidos
correspondem ao esperado quando da montagem do algoritmo,
detectando ento algum possvel erro no desenvolvimento deste.
Essa atividade conhecida como teste de mesa.

1.7 Formas de Representao

Existem vrias ferramentas que podem ser utilizadas para a representao de


algoritmos, entre elas: linguagem natural, pseudocdigo, fluxograma etc..

Estas ferramentas procuram padronizar formas de representao, facilitando a


posterior transformao do algoritmo para um conjunto de cdigos1.

1.7.1 Linguagem natural


A representao de algoritmos atravs de linguagem natural a forma mais
espontnea de representao de algoritmos, pois descrevemos os passos do
algoritmo utilizando o nosso linguajar cotidiano, escrevendo o algoritmo como um
texto simples.

Por exemplo, queremos resolver o seguinte problema: Calcular a mdia de todos


os alunos que cursaram uma disciplina X, a partir da leitura das notas da 1 e 2
prova, passando por um clculo de mdia aritmtica. Aps a mdia calculada,
devemos anunciar se aluno foi aprovado ou reprovado por nota. Somente esto
aprovados alunos com mdia maior ou igual a 5,0.

Representao do algoritmo em linguagem natural: Para todos os alunos da


disciplina X, faa: ler as notas da 1a e 2a prova, somar as notas e dividir por dois,
chegando assim, ao resultado da mdia do aluno. Se a mdia do aluno for maior
ou igual a 5,0, ento o aluno est aprovado, seno o aluno est reprovado. Fazer
para o prximo aluno.

O problema da representao de algoritmos com linguagem natural que quanto


maior a complexidade do problema, maior a dificuldade de entendermos o texto
que procura descrever os passos do algoritmo, pois no se emprega nenhum
recurso diagramtico, e no h uma rigidez na estruturao das aes.

1.7.2 Pseudocdigo ou Portugus estruturado

1
Smbolos que fazem sentido dentro do contexto de uma linguagem de programao.

Pgina: 14/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

O pseudocdigo vem sendo amplamente utilizado por projetistas de software e


programadores, pois obriga o uso de estruturas que facilitam o entendimento do
algoritmo, e tambm facilitam a transformao do mesmo em cdigos reais. O
pseudocdigo tambm recebe outros nomes, como: portugus estruturado, PDL
(Program Design Language), pascalide etc.. Utilizaremos neste curso o
pseudocdigo como a forma de representao padro para algoritmos. O exemplo
anterior ser representado atravs de pseudocdigo.

Incio
real: nota1, nota2, media;
Enquanto no for fim da lista de alunos, faa
Incio
Leia nota1;
Leia nota2;
mdia = (nota1 + nota2) / 2;
Se mdia >= 5,0 ento
Incio
Escreva Aluno aprovado;
Fim
Seno
Incio
Escreva Aluno reprovado;
Fim
Fim
Fim

Observe que no pseudocdigo, somos obrigados a utilizar algumas estruturas


bsicas de controle (seqncia, seleo e repetio), de forma a estruturar e
organizar melhor os passos do algoritmo.

1.7.3 Fluxograma

O fluxograma foi utilizado por muito tempo para a representao de algoritmos. No


entanto, o seu grande problema permitir o desenvolvimento de algoritmos no
estruturados. Com o advento das linguagens de programao orientada a objetos
o fluxograma caiu em desuso.

O fluxograma utiliza-se de smbolos especficos para a representao de


algoritmos. Existe certa variao na simbologia empregada, apresentamos a
seguir uma simbologia tradicionalmente usada:

Pgina: 15/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Processo

Deciso

Leitura

Escrita

Conector

Terminal

Setas de fluxo
de controle

Pgina: 16/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exemplo de Representao com Fluxograma:

Incio

Sim
Fim da lista
Fim
de alunos ?
No

nota
1

mdia = (nota1 +
nota2) /2

No
Aluno mdia >=
reprovado 5,0

Sim

Aluno
aprovado

Pgina: 17/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios

1. Utilize pseudocdigo para representar o algoritmo do clculo


matemtico (5+6)/2, feito em uma calculadora comum. Use termos
como Aperte a tecla x nas aes.

2. Utilize um fluxograma para representar o algoritmo de conserto de um pneu


furado.

3. Crie um algoritmo para colocar um carro em movimento. Represente este


algoritmo em pseudocdigo e fluxograma.

4. Pense em um algoritmo e construa-o, o mais completo possvel, para a troca de


um pneu furado. Comece da situao que quiser (saindo de casa, j na rua ou
estrada, etc.).

5. Construa um algoritmo explicitando todos os passos que devem ser seguidos


para encontrar um livro em uma biblioteca.

6. Elabore um algoritmo que mova trs discos de uma Torre de Hani, que
consiste em trs hastes (a, b, c), uma das quais serve de suporte para trs discos
de tamanhos diferentes (1, 2, 3), os menores sobre os maiores. Pode-se mover
um disco de cada vez para qualquer haste, contanto que nunca seja colocado um
disco maior sobre um menor. O objetivo transferir os trs discos para a haste c,
usando a b como intermediria.

1
2

a b c

OBS: Monte o fluxograma de todos os exerccios acima.

Pgina: 18/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

2. Tipos Primitivos de Dados

2.1 Tipos de Dados

Informao a matria-prima que faz com que seja necessria a existncia dos
computadores, pois eles so capazes de manipular e armazenar um grande
volume de dados com alta performance, liberando o Homem para outras tarefas
nas quais o seu conhecimento indispensvel. A cincia que estuda a automao
da informao a Informtica.

Aproximando-nos da maneira pela qual o computador manipula as informaes,


vamos dividi-las em quatro tipos primitivos:

1. Inteiro: Toda e qualquer informao numrica sem casas decimais, ou


seja, sem nmeros aps a vrgula.
2. Real: Tambm toda e qualquer informao numrica, porm as que
fazem uso da casa decimal, ou seja, que possuem nmeros aps a
vrgula.
3. Caracter: Toda e qualquer informao alfanumrica.
4. Lgico: Toda informao que pode ser biestvel, ou seja, que pode
assumir dois estados. Os mais usados so o verdadeiro e o falso.

2.2 Constantes

Entendemos por constante a informao que no sofre alteraes durante a


execuo do algoritmo. Ela declarada e permanece imutvel.

2.3 Variveis

Variveis so as informaes que podem assumir vrios valores durante a


execuo do algoritmo, ou seja, podem ter seus valores alterados vrias vezes
durante um programa.

Um exemplo para ilustrar a diferena entre valores constantes e variveis seria a


construo de um algoritmo para calcular o valor da rea de uma circunferncia.
Naturalmente, teramos de usar a frmula que expressa que rea igual a x r,
na qual (pi) tem valor constante de 3,1416..., independente de qual seja a
circunferncia (vale para todas as ocasies em que calcularmos a rea); j o valor
de r, que representa o raio, dependente da circunferncia que estamos
calculando, logo varivel a cada execuo do algoritmo.

2.4 Identificadores

Pgina: 19/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Como na matemtica tradicional utilizamos identificadores para referirmos


variveis ou constantes.

Os identificadores podem ser compostos de um caracter ou de um conjunto deles,


como por exemplo:

X=9

Onde X o identificador da constante, que no caso pode ser do tipo inteiro, e 9


que o seu valor.

Identificadores vlidos para referir-se constantes e variveis devem


obrigatoriamente ser iniciados com uma letra seguida em at por 7 caracteres,
excluindo-se os caracteres especiais (!@#$%&* e etc.), totalizando 8 caracteres
no mximo por identificador.

Exemplos:

Identificadores vlidos: Identificadores invlidos:

X 547X
Alpha #56
Controle X#55
UMT25 A\?
A55 Kilo%22

2.5 Declarao de constantes

As constantes devem sempre ser declaradas no incio de qualquer algoritmo (e


programa).

No necessrio exprimir o tipo da constante, apenas o seu valor precedido pelo


smbolo de igualdade (=). Veja alguns exemplos:

Nome = Fernando
X = 10
Salrio = 1005
Escola = Colgio Tcnico de Limeira

Pgina: 20/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

2.6 Declarao de variveis

As variveis devem ser declaradas quanto ao seu tipo para que sejam reservadas
a elas posies de memria onde possam armazenar seus valores durante a
execuo do algoritmo.

Para se declarar uma varivel coloca-se primeiro o tipo a que ela pertence, depois
o seu identificador, sendo que tipo e identificador devem ser separados por dois-
pontos (:).

Depois de declaradas as variveis podem receber valores quaisquer, desde que


se respeitando o tipo, dentro do algoritmo. Veja alguns exemplos:

Inteiro: X
Caracter: Nome
Real: Salrio
Lgico: Resposta

Para declarar mais de uma varivel do mesmo tipo, basta separa-las por vrgula
(,). Veja:

Inteiro: X, Y, Cont
Caracter: Nome, Empresa
Real: Salrio, ISS, Dlar
Lgico: Resposta, Desconto

Pgina: 21/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios:

1. Assinale todas as variveis do tipo Real.

a) x T f) DEF "OK"

b) y F g) Nome "Carlos"

c) Salrio 10,56 h) Cont 47,5

d) Desconto 1 i) ABC 15493

e) Casa 1,00

2. Sendo:

Inteiro: a, b, c;
Real: x, y, z;
Lgico: r, s;
Caracter: n, t;

Quais as atribuies a variveis esto incorretas?

a) a 10 f) n T k) y 17,3

b) x 11 g) n 15,5 l) t "Certo"

c) r T h) r F m) b 17,5

d) b 15 i) c "Jorge" n) x 19,345678

e) n "Oi" j) z 55,55 o) s "T"

3. Assinale os identificadores vlidos:

a) (X) f) B52 k) AB*C

b) KM/L g) AH! l) CEP

c) P{O} h) ASDRUBAL m) #55

d) U2 i) Rua n) O&O

Pgina: 22/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

e) UYT j) ALUNO o) dia/ms

4. Supondo que as variveis NB, NA, NMat, SX sejam utilizadas para armazenar a
nota do aluno, o nome do aluno, o nmero de matrcula e o sexo, declare-as
corretamente, associando o tipo primitivo adequado ao dado que ser
armazenado.

5. Encontre os erros da seguinte declarao de variveis:

Inteiro: Endereo, NFilhos, 5quantidade;


Caracter: Idade, X;
Real: XPTO, C, Peso, R$;
Lgico: Lmpada, C;

6. Supondo que as variveis COD, NOME, SEXO, DEPTO, FUNO, SAL, NDEP, ADIC,
VALE, TIPO, sejam utilizadas para armazenar informaes referentes a um funcionrio de
uma empresa, a saber: cdigo, nome, sexo, departamento em que trabalha, funo que
exerce, salrio mensal, nmero de dependentes, adicional de funo, se tem direito a vale
transporte e tipo sangneo, declare-as corretamente.

7. Determine qual o tipo primitivo das informaes:

a) 'Pare' f) falso

b) 2 g) 57,3

c) 100.59 h) -5000

d) 'Preserve o meio ambiente' i) COTIL

e) 'S' j) 0,001

Pgina: 23/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

3. Terminador de Linha

interessante sempre terminar qualquer linha de um algoritmo com o ponto-e-


vrgula (;), sabendo-se que numa folha de papel o mesmo comando pode ocupar
vrias linhas, o que no ocorreria no computador.

Sendo assim, os algoritmos devem ter essa aparncia:

Incio
Ligue o interruptor;
Se a lmpada no acender;
Incio do Se
Pegue uma escada;
Posicione-a embaixo da lmpada;
Busque uma lmpada nova;
Suba na escada;
Retire a lmpada;
Coloque a lmpada nova;
Enquanto a lmpada no acender;
Incio do Enquanto
Retire a lmpada;
Coloque a lmpada nova;
Fim do Enquanto
Fim do Se
Fim

O uso de variveis

As variveis devem receber seu contedo (valor) usando-se o sinal de atribuio


que uma seta para a esquerda (), o sinal de igualdade (=) usado somente na
declarao de constantes.

Veja:

x 10 Varivel inteira
y "Fernando" Varivel caractere

4. Comentrios

Muitas das vezes muito til inserir comentrios no algoritmo, para que se possa
saber, mais tarde, do que se tratam certas linhas de comando, para isso usamos
dupla barras (//). Veja:

Pgina: 24/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Escreva(Comentrio); // Escreve na tela a palavra Comentrio


5. Expresses e Operadores aritmticos

Denominamos expresso aritmtica aquelas cujos operadores so aritmticos e


cujos operandos so constantes ou variveis do tipo numrico, sendo inteiro ou
real.

Denominamos de operadores aritmticos o conjunto de smbolos que representa


as operaes bsicas da matemtica, sendo elas:

Operador Funo Exemplos


+ Adio 1 + 1, X + Y
- Subtrao 4 2, O P
* Multiplicao 3 * 4, A * B
/ Diviso 10 / 2, X / Y
^ Potenciao 2 ^ 4, 3 ^ X
Raiz Radiciao Raiz(9), Raiz(T)
Mod Resto da Diviso 10 mod 7
Div Quociente da diviso 27 div 5

Cada operador, na resoluo das expresses aritmticas guarda uma hierarquia


entre si.

Ordem Operador
1 Parnteses mais internos
2 ^ (Potenciao)
3 Raiz
4 * (Multiplicao)
5 / (Diviso)
6 Div (Quociente da diviso)
7 Mod (Resto da diviso)
8 + (Adio)
9 - (Subtrao)

Pgina: 25/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios

1. Quais os resultados das expresses aritmticas abaixo?

a) 1 + 1 * 2 d) 2 * 9 mod 3 10 g) Raiz(3 ^ 2 / 2) + 4 * 7
1

b) (1 + 1) * 2 e) Raiz(3 * 3) div 4 h) 10 8 mod 4 / 3 * 2 + 5 ^ 2

c) 1 4 * 3 / 6 f) ((20 div 3) div 3) + 2 ^ 4 / 2 i) 1 + 1 * 2 * 2 / Raiz(64) div 8

2. Ligue o operador a sua ordem de precedncia na resoluo de expresses


aritmticas:

Ordem Operador
4 Parnteses mais internos
6 ^ (Potenciao)
1 Raiz
5 * (Multiplicao)
3 / (Diviso)
8 Div (Quociente da diviso)
9 Mod (Resto da diviso)
7 + (Adio)
2 - (Subtrao)

3. Supondo A, B e C variveis do tipo inteiro, com valores 5, 10 e -8, e D varivel do tipo


real com valor 1,5, quais os resultados das expresses abaixo:

a) 2 + A * 3^2 + C
b) 3 + 2 // (2 * Raiz(C)) / 2
c) (B -6 * 2)^2 * D + 2
d) B mod 3 + A mod 2
e) 2 * A mod 3-C
f) 3+(3//(C+16))*((3 mod A)+0.5*2)

Pgina: 26/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

6. Expresses Lgicas e Operadores Relacionais

Denominamos expresso lgica aquela cujos operadores so lgicos ou


relacionais e cujos operandos so relaes ou variveis ou constantes do tipo
lgico.

Utilizamos os operadores relacionais para realizar comparaes entre dois valores


de mesmo tipo primitivo. Tais valores so representados por constantes, variveis
ou expresses aritmticas.

Os operadores relacionais so comuns para construirmos equaes. Adotaremos


como conveno para esses operadores os smbolos abaixo:

Operador Funo Exemplos


= Igual a 3 = 3, X = U
> Maior que 5 > 4, X > Y
< Menor que 3 < 6, Y < P
>= Maior ou igual a 5 >= 3, T >= A
<= Menor ou igual a 3 <= 5, I <= E
<> Diferente de 8 <> 9, L <> G

O resultado obtido de uma relao sempre um valor lgico. Por exemplo,


analisando a relao numrica A + B = C, o resultado ser verdade ou falsidade
medida que o valor da expresso aritmtica A + B seja igual ou diferente do
contedo da varivel C, respectivamente.

Pgina: 27/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios

1. Descubra se as expresses abaixo so verdadeiras ou falsas:

a) 1 = 1 f) 5 mod 3 = 2 k) 1 + 1 * 2 = 3

b) 2 = 4 g) 10 div 2 = 5 l) Raiz(64) + 2 = 9

c) 6 < 8 h) 2 ^ 3 = 3 ^ 2 m) 9 >= 7 * 2 + 2 - 7

d) 10 >= 4 i) 2 + 8 mod 7 >= 3 * 6 15 n) 6 * 4 ^ 2 <> 9 5 / 3

e) 4 <= 4 j) 3 * 5 div 4 <= 3 ^ 2 / 0,5 o) 15 mod 4 < 19 mod 6

Pgina: 28/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

7. Operadores lgicos

Utilizaremos trs operadores lgicos bsicos para a formao de novas


proposies lgicas compostas a partir de outras proposies lgicas simples. Os
operadores lgicos so:

Operador Funo
No Negao
E Conjuno
Ou Disjuno

7.1 Tabelas-Verdade

Tabela-verdade o conjunto de todas as possibilidades combinatrias entre os


valores de diversas variveis lgicas, as quais se encontram em apenas duas
situaes (V ou F Verdadeiro ou Falso), e um conjunto de operadores lgicos.

7.1.1. Operao de negao

A No A
F V
V F

7.1.2. Operao de Conjuno

A B AeB
F F F
F V F
V F F
V V V

7.1.3. Operao de Disjuno

A B A ou B
F F F
F V V
V F V
V V V

Pgina: 29/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

7.2. Prioridade dos operadores lgicos

Ordem Operador
1 No
2 E
3 Ou

7.3. Prioridade entre todos os operadores

Ordem Operador
1 Parnteses mais internos
2 Operadores aritmticos
3 Operadores relacionais
4 Operadores lgicos

Pgina: 30/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios

1. Resolva as seguintes operaes com operadores lgicos:

a) 2 < 5 e 15 / 3 = 5 e) no V ou 3 ^ 2 / 3 < 15 35

b) 2 < 5 ou 15 / 3 = 5 f) no (5 <> 10 / 2) ou V e 2 5 > 5

c) 2 < 3 ou 14 * 2 = 10 g) 2 ^ 4 <> 4 + 2 ou 2 + 3 * 5 / 3

d) F ou 20 div (18 / 3) <> (21/3) div 2 h) V e V ou F no V

2. Determine os resultados (verdadeiro ou falso) obtidos na avaliao das expresses


lgicas seguintes, sabendo que A, B, C, D e E contm respectivamente 2, 7, 3.5, 'noite' e
'frio' e que existe uma varivel lgica L cujo valor falso:

a) (B = A * C) e L ou verdadeiro

b) ('dia' = D) xou ('frio' <> 'clima')

c) L e (B / A >= C) ou no (A <= C)

d) L e (C >= B / A) ou no A<= C

e) 2//(7**2)=14/A xou (B-3 <= C+0.5)

Pgina: 31/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

8. Entrada e Sada de Dados

Para que o computador possa realizar qualquer operao ele tem que receber
dados do mundo exterior, o nosso mundo, para isso existe o teclado, e para
apresentar-nos os resultados de seus processamentos o computador faz uso, na
maioria das vezes do monitor de vdeo.

Em algoritmo tambm admitimos esses dois perifricos e para receber dados do


teclado usando o comando LEIA (varivel), onde a varivel aquela onde ser
armazenado aquilo que for digitado.

Para exibir dados no monitor de vdeo usamos o comando ESCREVA (["texto" ou


varivel]), onde como argumento pode ser passado tanto uma cadeia de
caracteres, uma varivel ou uma combinao de ambos.

Veja os exemplos:

Leia(x) // L o que for digitado e armazena


// na varivel x
Escreva(x) // Exibe o contedo da varivel x
Escreva("Aulas de programao") // Exibe a frase na tela
Escreva("O que foi digitado foi:" + x) // Exibe a frase mais o contedo da
// varivel x

Pgina: 32/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios

1. Construa um algoritmo que calcule a mdia entre dois nmeros


quaisquer.

2. Construa um algoritmo que calcule o valor de y como funo de x, segundo a


funo y(x) = 3*x+2, num domnio real.

3. Construa um algoritmo que calcule o consumo mdio de um automvel (medido


em Km/l), dado que so conhecidos a distncia total percorrida e o volume de
combustvel consumido para percorr-la (medido em litros).

4. Construa um algoritmo que calcule o quadrado de um nmero qualquer.

5. Construa um algoritmo que leia uma determinada hora, seus minutos e


segundos e converter tudo para segundos. Mostrar no vdeo quantos segundos
correspondem a hora lida.

6. Construa um algoritmo que leia uma temperatura em graus centgrados e


apresenta-la convertida em graus Fahrenheit. Fahrenheit =
(9*Centgrados+160)/5.

7. Construa um algoritmo que calcule a quantidade de latas de tinta necessrias e


o custo para pintar tanques cilndricos de combustvel, em que so fornecidos a
altura e o raio desse cilindro.

Sabendo que:

A lata de tinta custa 50,00;


Cada lata contm 5 litros;
Cada litro de tinta pinta 3m;
Frmula: 2**r;

8. Construa um algoritmo para calcular as razes de uma equao do 2 grau (Ax


+ Bx + C), sendo que os valores A, B e C so fornecidos pelo usurio (considere
que a equao possui duas razes reais).

9. Faa um algoritmo para calcular o volume de uma esfera de raio R, em que R


um dado fornecido pelo usurio. Vol = 2**r*h;

10. Construa um algoritmo que leia dois valores, um para a varivel A e outro para
a varivel B, e efetue a troca dos valores de forma que a varivel A passe a

Pgina: 33/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

possuir o valor da varivel B e que a varivel B passe a possuir o valor da varivel


A.

Pgina: 34/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

9. Estruturas de Seleo

As estruturas de seleo visam permitir-nos determinar e controlar o fluxo de


execuo e dados do algoritmo.

9.1 Estrutura de Seleo Simples

Quando precisamos testar certa condio antes de executar uma ao, usamos
uma seleo simples, como mostra o modelo abaixo:

se <condio> ento
C;
fimse;

<condio> uma expresso lgica que, quando inspecionada, pode gerar um


resultado verdadeiro ou falso.

Se <condio> for verdadeira, a ao primitiva sob a clusula ento (C) ser


executada ; caso contrrio (<condio> for falsa), encerra-se a seleo (fimse),
neste caso, sem executar nenhum comando.

Note que quando existir apenas uma ao aps a clusula, basta escrev-la; j
quando precisamos colocar diversas aes necessrio usar um bloco, delimitado
por inicio e fim, conforme o modelo abaixo:

se <condio> ento
incio
C1;
C2;
.
.
Cn;
Fim;
Fimse;

Pgina: 35/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

9.2 Estrutura de Seleo Composta

Quando tivermos situaes em que duas alternativas dependem de uma mesma


condio, uma da condio ser verdadeira e outra da condio ser falsa, usa-se a
estrutura de seleo composta. Supondo que um conjunto de aes dependa da
avaliao verdadeiro e uma nica ao primitiva dependa da avaliao falso, usa-
se uma estrutura de seleo semelhante ao modelo abaixo:

Se <condio> ento
Incio //incio do bloco verdade
C1;
C2; //seqncia de comandos
.
.
Cn;
Fim; //fim do bloco verdade
seno
C; //comando caso resultado seja falso
Fimse;

Para o seno vale a mesma regra usado no se de que quando for ser executado
um conjunto de comando seja marcado o inicio do bloco com a palavra incio e o
fim do bloco com a palavra fim.

Se <condio> ento
Incio //incio do bloco verdade
C1;
C2; //seqncia de comandos
.
.
Cn;
Fim; //fim do bloco verdade
seno
Incio //incio do bloco falso
D1; //seqncia de comandos
D2;
Fim; //fim do bloco falso
Fimse;

Pgina: 36/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios

1. Construa um algoritmo que leia dois nmeros e verifique qual


menor e qual maior.

2. Construa um algoritmo que leia os nomes e os pesos de duas pessoas e


imprima os dados da pessoa mais gorda.

3. Construa um algoritmo que leia um nmero e verifique se ele par ou mpar.

4. Escreva um algoritmo que leia trs valores inteiros e mostre-os em ordem


crescente.

5. Sobre um aluno e suas notas:

a) ler o nome do aluno;


b) ler trs notas do aluno e fazer a mdia aritmtica entre elas.
c) verificar se o aluno foi aprovado (mdia maior ou igual a 6) e imprima a
mensagem o aluno <nome do aluno> foi aprovado com mdia <valor da mdia>.
d) verificar se o aluno foi reprovado (mdia menor que 6) e imprima a mensagem
o aluno <nome do aluno> foi reprovado com mdia <valor da mdia>.
e) colocar as trs notas do aluno em ordem decrescente.

6. Uma empresa paga a seus funcionrios R$ 1,00 de comisso para cada


produto vendido, entretanto, se forem vendidos mais de 250 produtos, o valor
aumenta para R$ 1,50. Se a quantidade for superior a 500 produtos, o valor da
comisso sobe para R$ 2,00. Monte um algoritmo para ler o nome de um
funcionrio e a quantidade de produtos que ele vendeu. Esse algoritmo tambm
dever imprimir o nome do funcionrio e o total de comisso que ele vai receber.

7. Construa um algoritmo que verifique se um tringulo e issceles, eqiltero ou


escaleno e que some os ngulos verificando se forma um ngulo de 180.

8. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um


algoritmo que calcule seu peso ideal , utilizando as seguintes frmulas:

Para homens: (72.7 * h) 58;


Para mulheres: (62.1 * h) 44.7;

9. Faa um algoritmo que leia o ano de nascimento de uma pessoa, calcule e


mostre sua idade e, tambm, verifique e mostre se ela j tem idade para votar (16
anos ou mais) e para conseguir a Carteira de Habilitao (18 anos ou mais).

Pgina: 37/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

10. Ler o pedido de um cliente de fast food, baseado no menu abaixo, e imprimir o
preo e a opo que ele escolher.

Opo Preo
Promoo Especificao
(nica) (R$)
Big Super 2 hambrgueres, queijo, batata
1 5,00
Sanduba frita e refrigerante
Quase Super 1 hambrguer, batata frita e
2 3,00
Sanduba refrigerante
Mirradus
3 1 misto quente e refrigerante 1,50
Sanduba

11. Construa um algoritmo que verifique se um nmero fornecido pelo usurio


primo ou no.

12. Seja o seguinte algoritmo:

incio
inteiro: x,y,z;
caracter:resposta;
{preparar a tela}
leia (x);
leia (y);
z (x*y) + 5;
se z <= 0
ento resposta A
seno se z <= 100
ento resposta B
seno resposta C;
escreva (z,resposta);
fim

Faa um teste de mesa e complete o quadro a seguir para os seguintes valores:

x y z resposta
3 2
150 3
7 -1
-2 5
50 3

13) Seja o seguinte algoritmo:

Pgina: 38/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

inicio
inteiro: a, b, c;
caracter: mens;
{preparar tela}
leia (a);
leia (b);
leia (c);
se (a<b+c) e (b<a+c) e (c<a+b)
ento se (a=b) e (b=c)
ento mens 'Tringulo Equiltero'
seno se (a=b) ou (b=c) ou (a=c)
ento mens 'Tringulo Issceles'
seno mens 'Tringulo Escaleno'
seno mens 'No e possvel formar um tringulo';
escreva (mens);
fim.

Faa um teste de mesa e complete o quadro a seguir para os seguintes valores:

a b c mens
1 2 3
3 4 5
2 2 4
4 4 4
5 3 3

Pgina: 39/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

9.3 Estrutura de Seleo de Mltipla Escolha

A estrutura de seleo de mltipla escolha permite o controle do fluxo de


execuo do algoritmo pela comparao, geralmente do contedo de uma
varivel, com vrios estados que ela possa vir a assumir.

Ao contrrio da estrutura de seleo simples, que pode dividir o fluxo de execuo


em dois estgios, a estrutura de mltipla escolha o faz em dois ou mais estgios.

Denominamos esse tipo de estrutura de controle de ESCOLHA ... CASO ..., ou


melhor, fazemos com que a estrutura selecione a varivel, por exemplo, e teste o
seu contedo frente a vrios casos possveis.

Analisemos o exemplo:

Incio
Inteiro: x;
Leia(x);
Escolha(x);
Inicio
Caso 1: y 10;
Caso 2: y 20;
Caso 3: y 30;
Caso 4: y 40;
Fim Escolha
Escreva("O valor : "+y);
Fim

Pgina: 40/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios:

1. Construa um algoritmo que, tendo como dados de entrada o preo


de um produto e seu cdigo de origem, mostre o preo junto de sua
procedncia. Caso o cdigo no seja nenhum dos especificados, o produto
deve ser encarado como importado. Siga a tabela de cdigos a seguir:

Cdigo de origem Procedncia


1 Sul
2 Norte
3 Leste
4 Oeste
5 ou 6 Nordeste
7, 8 ou 9 Sudeste
10 at 20 Centro oeste
25 at 30 Nordeste

2. Escreva um algoritmo que leia o cdigo de um determinado produto e mostre a


sua classificao. Utilize a seguinte tabela como referncia:

Cdigo Classificao
1 Alimento no perecvel
2, 3 ou 4 Alimento perecvel
5 ou 6 Vesturio
7 Higiene pessoal
8 at 15 Limpeza e utenslios domsticos
Qualquer outro cdigo Invlido

3. Elabore um algoritmo que, dada a idade de um nadador, classifique-o em uma


das seguintes categorias:

Idade Categoria
5 at 7 anos Infantil A
8 at 10 anos Infantil B
11 at 13 anos Juvenil A
14 at 17 anos Juvenil B
Maiores de 18 anos Adulto

4. Elabore um algoritmo que leia o valor de dois nmeros inteiros e a operao


aritmtica desejada; calcule, ento, a resposta adequada. Logo aps o clculo,
verifique se o resultado um nmero primo. Utilize os smbolos da tabela a seguir
para ler qual operao aritmtica escolhida.

Pgina: 41/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Smbolo Operao Aritmtica


+ Adio
- Subtrao
* Multiplicao
/ Diviso

5. Construa um algoritmo que seja capaz de concluir qual dentre os seguintes


animais foi escolhido, atravs de perguntas e respostas. Animais possveis: leo,
cavalo, homem, macaco, morcego, baleia, avestruz, pingim, pato, guia,
tartaruga, crocodilo e cobra.

Quadrpedes Carnvoro Leo


Herbvoro Cavalo
Mamferos Bpede Onvoro Homem
Frutfero Macaco
Voadores Morcego
Aquticos Baleia

No-voadores Tropical Avestruz


Polar Pingim
Aves Nadadoras Pato
De rapina guia

Com casco Tartaruga


Rpteis Carnvoros Crocodilo
Sem patas Cobra

Pgina: 42/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

10. Estruturas de Repetio

10.1 Repetio com teste no incio

Consiste numa estrutura de controle do fluxo lgico que permite executar diversas
vezes um mesmo trecho do algoritmo, porm, sempre verificando antes de cada
execuo se permitido repetir o mesmo trecho.

Para realizar tal repetio usamos a estrutura ENQUANTO, que permite que um
bloco seja repetido enquanto uma condio seja verdadeira.

Veja:

Inteiro: x;
x 0;
Enquanto x < 5 faa
incio
Leia(x);
Escreva (Mais uma repetio);
Fimenquanto;

Sendo assim, o algoritmo acima repetir a impresso da frase Mais uma


repetio at que seja digitado um nmero maior ou igual 5. Mas veja que a
varivel X foi inicializada com o valor 0 porque se contivesse um valor maior ou
igual 5 a condio j seria falsa, sendo assim nenhuma repetio seria
executada.

Pgina: 43/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios:

1. Cadastrar e imprimir os dados das disciplinas de uma escola:


nome, descrio do contedo, freqncia e nota mnimas para
aprovao do aluno.

2. Uma empresa decidiu fazer um recrutamento para preencher algumas vagas.


Os candidatos sero cadastrados por computador. Faa um algoritmo para:

a) ler o nmero do candidato, a idade, o sexo, a experincia profissional


(Sim/No);
b) mostrar a idade mdia dos candidatos;
c) mostrar o nmero total de candidatos e candidatas;
d) mostrar os candidatos (homens e mulheres) maiores de idade que tenham
experincia no servio.

3. Construa um algoritmo que, dado um conjunto de valores inteiros e positivos,


determine qual o menor valor do conjunto. O final do conjunto de valores
conhecido atravs do valor zero, que no deve ser considerado.

4. Construa um algoritmo que permita fazer o levantamento do estoque de vinhos


de uma adega, tendo como dados de entrada tipos de vinho, sendo: t para tinto,
b para branco e r para ros. Especifique a porcentagem de cada tipo sobre o
total geral de vinhos; a quantidade de vinhos desconhecida, utilize como
finalizador f de fim.

5. Cadastrar e imprimir os dados das disciplinas de uma escola: nome, descrio


do contedo, freqncia e nota mnimas para aprovao do aluno.

6. Na declarao de imposto de renda devem constar os dados: nome do


contribuinte, CPF, renda anual e nmero de dependentes. Os clculos so feitos
da seguinte forma:

a) Desconto de R$ 110,00 por dependente.


b) Com base na renda lquida (renda anual menos descontos) calculada a
alquota de contribuio de acordo com a tabela:

Renda lquida Alquota (%)


At R$ 900,00 Isento
De R$ 901,00 at R$ 5.000,00 5
De R$ 5.001,00 at R$ 10.000,00 10

Pgina: 44/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Acima de R$ 10.001,00 15

Faa um algoritmo para calcular os valores dos impostos a serem pagos por um
nmero indeterminado de contribuintes. No se esquea que, para facilitar seu
trabalho, voc deve adotar um flag.

7. Uma fbrica tem uma linha de produo capaz de produzir 400 peas/dia. Um
funcionrio controla a qualidade, cadastrando o nmero da pea e o seu estado
(aprovado ou reprovado). Criar um algoritmo para cadastrar o controle de
qualidade, imprimir os nmeros das peas reprovadas, e o total de peas
aprovadas e reprovadas no final do dia.

Pgina: 45/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

10.2 Repetio com teste no final

Para realizar a repetio com teste no final, utilizamos a estrutura REPITA, que
permite que um bloco ou ao primitiva seja repetido at que uma condio
determinada seja verdadeira.

Veja o exemplo:

Inteiro: x;
Repita
Leia(x);
Escreva(Mais uma repetio);
At x = 1;

Analisando o algoritmo acima se pode notar que at que a varivel x contenha o


nmero 1 a execuo do bloco entre o REPITA e o AT no parar.

Esse tipo de estrutura garante que o bloco ser executado pelo menos uma vez.

Pgina: 46/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios:

1. Simular o jogo de adivinhao: o jogador 1 escolhe um nmero


entre 1 e 10; o jogador 2 insere nmeros na tentativa de acertar o
nmero escolhido pelo jogador 1. Quando ele acertar, o algoritmo deve
informar que ele acertou o nmero x (escolhido pelo jogador 1) em x tentativas
(quantidade de tentativas do jogador 2).

2. Desenvolva um algoritmo onde solicitada, para o usurio, a escolha de uma


opo de clculo de: raiz quadrada, elevar ao quadrado ou elevar ao cubo. Em
seguida, o usurio dever digitar o nmero para clculo. Alm das opes de
clculo, existe uma quarta opo que causa o fim do algoritmo.

3. Um professor resolveu fazer o levantamento do desempenho de seus alunos,


de acordo com os conceitos obtidos no exame final. Para cada aluno, fornecido
o nome e o conceito (A, B, C, D ou E). Escreva um algoritmo que leia o nome e o
conceito dos alunos e, no final, escreva o nmero total de alunos da turma e o
nmero total de alunos em cada conceito.

4. Uma loja adota os seguintes critrios para calcular o salrio final bruto de seus
vendedores: cada vendedor recebe um salrio fixo de R$ 300,00, mais uma
comisso sobre as vendas realizadas no ms, obedecendo as seguintes regras:

a) Para total de vendas abaixo de R$2.000,00, comisso de 2%;


b) Para total de vendas entre R$2.000,00 e 4.000,00, comisso de 3%;
c) Para total de vendas entre R$ 4.000,00 e 8.000,00, comisso de 4%;
d) Para vendas acima de R$ 8.000,00, comisso de 5%.

Escreva um algoritmo que recebe o nome e o valor das vendas de uma srie de
vendedores (ao ser digitado FIM no nome, ser indicado o fim dos vendedores).
Para cada vendedor, o algoritmo deve calcular o salrio final bruto. No final, o
algoritmo deve imprimir um relatrio com o nome do vendedor, o valor vendido, o
valor calculado de comisso e o salrio final bruto.

5. Dada descrio de um produto e o preo desenvolver um algoritmo que


calcule e mostre o novo preo do produto com um aumento de 30%. Repetir o
processo enquanto o usurio desejar.

Pgina: 47/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

10.3 Repetio com varivel de controle

Nas estruturas de repetio vistas at agora, ocorrem casos em que se torna difcil
determinar quantas vezes o bloco ser executado. Sabemos que ele ser
executado enquanto uma condio for satisfeita enquanto -, ou at que uma
condio seja satisfeita repita. A estrutura PARA repete a execuo do bloco um
nmero definido de vezes, pois ela possui limites fixos:

Inteiro: x;
Para x de 1 at 10 faa
Escreva(Mais uma repetio);
FimPara;

Note que no algoritmo acima o comando Escreva ser executado 10 vezes.

Neste tipo de estrutura tambm podemos determinar qual o passo a ser dado,
ou seja, de quanto em quanto que a estrutura deve contar:

Inteiro: x;
Para x de 1 at 10 passo 2
Faa Incio
Escreva(Mais uma repetio);
Fim para;

Sendo assim o comando Escreva ir ser executado 5 vezes, j que ser contado
de dois em dois.

Pgina: 48/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios

1. Imprimir o total da seqncia: 1, 1/2, 1/3 [...] 1/20.

2. Imprimir os nmeros pares entre 100 e 1.

3. Elabore um algoritmo que efetue a soma de todos os nmeros mpares que so


mltiplos de 3 e que se encontram no conjunto dos nmeros de um at 500.

4. A srie de Fibonacci formada pela seguinte seqncia: 1, 1, 2, 3, 5, 8, 13, 21,


34, 55 ... etc. Escreva um algoritmo que gere a srie de Fibonacci at o vigsimo
termo.

5. Elabore um algoritmo com trs estruturas de controle que imprima a tabuada do


nmero 5.

6. Somar os nmeros de 1 a 10, apresentando as somas parciais e, no final, o


total. A impresso deve seguir o padro abaixo.

3 (soma do nmero 1 com o nmero 2)


6 (soma parcial com o nmero 3)
10 (soma parcial com o nmero 4)
[...]
55 (soma parcial com o nmero 10)
Soma total 55

7. A avaliao de um aluno nas disciplinas de uma escola segue os critrios


abaixo.

Em toda disciplina so aplicadas trs provas


A mdia final obtida com a mdia aritmtica das trs notas.
Para que o aluno seja aprovado, a sua mdia deve ser igual ou superior a
7,0 e ter a freqncia mnima de 80% das 32 aulas ministradas.

Faa um algoritmo para:

a) ler os nmeros das matrculas de 70 alunos, as trs notas de cada um e o


nmero de aulas freqentadas por eles;
b) calcular e imprimir o nmero da matrcula do aluno, a sua mdia final e o
resultado (se aprovado ou no);
c) imprimir a mdia da turma, a maior e a menor mdia da turma de alunos;
d) Imprimir o total de alunos aprovados;

Pgina: 49/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

e) Imprimir o total de alunos reprovados por falta e por nota.

Pgina: 50/51
COTIL Colgio Tcnico de Limeira da Unicamp
Profs. Priscila Keli de Lima Pinto e Fernando Bryan Frizzarin

Exerccios Extras:

1. Elabore um algoritmo que calcule um nmero inteiro que mais se


aproxima da raiz quadrada de um nmero fornecido pelo usurio.

2. Elabore um algoritmo que calcule N! (fatorial de N), sendo que o


valor inteiro de N fornecido pelo usurio.
Sabendo que:
N! = 1 x 2 x 3 x ... x n;
0! = 1, por definio.

3. Escreva um algoritmo que leia um conjunto de 20 nmeros inteiros e mostre


quais foram o maior e o menor valor fornecido.

4. Elabore um algoritmo que imprima todos os nmeros primos existentes entre N1


e N2, em que N1 e N2 so nmeros naturais fornecidos pelo usurio.

5. Escreva um algoritmo que calcule e escreva a soma dos dez primeiros termos
da seguinte srie:

2/500 5/450 + 2/400 5/350 + ...

Pgina: 51/51

Você também pode gostar