You are on page 1of 87

ALGORITMOS

EDIO N 1 - 2007

PROF. CLUDIA WERLICH

_________________________________________________________________
Apoio

Gesto e Execuo

Contedo e Tecnologia

SOCIESC Sociedade Educacional de Santa Catarina

SUMRIO

AULA 1 - NOES BSICAS SOBRE ALGORITMOS......................................... 7


AULA 2 - VARIVEIS, OPERADORES E CONSTANTES .................................. 14
AULA 3 - ALGORITMO SEQENCIAL ................................................................ 20
AULA 4 - ESTRUTURA DE SELEO ................................................................ 29
AULA 5 - SELEO COMPOSTA ....................................................................... 39
AULA 6 - SELEO MLTIPLA ESCOLHA ....................................................... 47
AULA 7 - ESTRUTURA DE REPETIO ............................................................ 53
AULA 8 - VETORES ............................................................................................. 67

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

Apresentao

Este livro-texto contm a disciplina de Algoritmos.


Este material disponibiliza aos alunos do EAD tcnicas para a construo de
algoritmos, pois criar algoritmos essencial para o desenvolvimento e aperfeioamento da lgica do programador.
Para sua melhor compreenso, o livro est estruturado em 8 captulos, com
vrios exemplos e exerccios.
Lembre-se de que a sua passagem por esta disciplina ser tambm acompanhado pelo Sistema de Ensino Tupy Virtual, seja por correio postal, fax, telefone, email ou Ambiente Virtual de Aprendizagem.
Sempre entre em contato conosco quando surgir alguma dvida ou dificuldade.
Toda a equipe ter a maior alegria em atend-lo, pois a sua aquisio de conhecimento nessa jornada o nosso maior objetivo.
Acredite no seu sucesso e bons momentos de estudo!
Equipe Tupy Virtual.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

Carta do Professor

O grande amor nasce, do grande conhecimento da coisa amada. (Leonardo Da Vinci)

Caro aluno,
No decorrer dos captulos, voc aprender a criar algoritmos.
Nesta disciplina, as principais estruturas bsicas utilizadas na programao
de computadores sero demonstradas, visando sempre ao aperfeioamento de sua
lgica de programao, que essencial sua qualificao profissional.
Iniciantes no mundo da programao devem resolver algoritmos. Alguns alunos conseguem resolver os problemas rapidamente. Outros, porm, podem ter mais
dificuldades e se este for o seu caso, tenho uma sugesto: repita, repita e repita os
exemplos e exerccios.
Todos os algoritmos apresentados neste livro possuem uma verso na linguagem de programao C++, para que voc possa digitar e testar. Dessa forma,
voc conseguir aprimorar a sua lgica, facilitando o aprendizado das prximas disciplinas.
Vamos agora para um novo desafio: a programao de computadores!

Professora Cludia Werlich

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

Cronograma de Estudo
Acompanhe no cronograma os contedos das aulas e atualize as possveis
datas de realizao de aprendizagem e avaliaes.
Semana

Carga horria

Aula

Data/ Avaliao

Noes Bsicas de
Algoritmos

_/_ a _/_

Variveis, Operadoes e
Constantes

2
2

2
2
2

2
2
2
3

Algorimo Seqencial
Algoritmo Seleo
Simples
Algoritmo Seleo
Composta
Algoritmo Seleo Mltipla Escolha
Algortimo de Repetio
Para..Faa
Algortimo de Repetio
Repita ... At
Algortimo de Repetio
Enquanto...Faa

_/_ a _/_
_/_ a _/_
_/_ a _/_
_/_ a _/_

_/_ a _/_
_/_
_/_
_/_

Algortimo com Vetores


_/_

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

Plano de Estudo
Ementa
Objetivos da Disciplina

Geral
Utilizar ambientes de programao com edio, compilao, testes e gerao de
cdigos integrados, inclusive aqueles que acompanham programas aplicativos, a
partir de especificaes.

Especficos
Desenvolver programas e a lgica; definir algoritmos, estabelecendo natureza, origem e estrutura de dados; utilizar ambientes de programao com edio, compilao, testes e gerao de cdigos integrados, inclusive aqueles que acompanham
programas aplicativos, a partir de especificaes; atender necessidade do usurio
em sua estao de trabalho.

.
Carga Horria: 40 horas/aula.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

Aula 1

NOES BSICAS SOBRE


ALGORITMOS
Objetivos da aula

Ao final desta aula, voc dever ser capaz de:


Estabelecer a relao entre algoritmo e linguagem de programao, conhecendo os prinicpais conceitos sobre o assunto;
Conhecer a estrutura bsica do algoritmo.

Contedos da aula

Acompanhe os assuntos desta aula, se preferir, aps o


trmino, assinale o contedo j estudado.


Definio de algoritmo;

Conceitos bsicos do ambiente de programao;

Estrutura bsica do algoritmo;

Linguagem de programao;

Exerccios propostos.

Prezado aluno, seja bem vindo a nossa primeira aula!


Iremos dar incio a disciplina de algoritmos comeando
pelas noes bsicas sobre algoritmos.
Boa aula!

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

1. NOES BSICAS SOBRE ALGORITMOS

Segundo Forbellone (2000, p.03), algoritmo pode ser definido como uma seqncia de passos que visam atingir um objetivo bem definido. Quando elaboramos
um algoritmo, devemos especificar aes claras e precisas que possam resultar na
soluo de um problema proposto.
Podemos criar algoritmos de qualquer situao. Uma receita de bolo um exemplo muito claro de algoritmo. Primeiramente separamos os ingredientes e aps
devemos, passo-a-passo, juntar os ingredientes. No caso do bolo, a seqncia de
passos fundamental. Imagine: se primeiro misturarmos o leite com o fermento. Aps, colocamos o trigo, ovos e por ltimo o acar. Qual seria o resultado dessa mistura? Um bolo fofinho com certeza no seria! O sucesso do bolo est justamente na
seqncia de passos corretos. Surge ento uma palavra chave: lgica.
A lgica est na correta seqncia de passos, que deve ser seguida para ter
um objetivo especfico. No exemplo do bolo, a lgica inserir o fermento por ltimo,
seno o bolo no ir crescer.
Outro exemplo que pode ser analisado: fazer um ovo frito. Os passos a serem feitos poderiam ser:
Aquecer a frigideira;
Adicionar leo para fritar o ovo;
Quebrar o ovo;
Colocar o ovo na frigideira;
Esperar fritar;
Virar o ovo para fritar do outro lado;
Servir o ovo frito.
Os itens listados para fritar o ovo, j do uma idia de todo o processo bsico
de fritar um ovo. Porm, outra pessoa que fosse fazer a mesma atividade, poderia
acrescentar mais opes. Como por exemplo: verificar se existe um ovo para ser
frito, adicionar sal ou utilizar algum utenslio para virar o ovo. O grau de detalhamento pode ou no ser indispensvel no desenvolvimento de um algoritmo, tudo depende da situao que dever ser muito bem observada pelo programador.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

A experincia do programador reflete diretamente em uma lgica mais apurada, no desenvolvimento de um algoritmo. Para conseguir mais experincia e
uma lgica mais refinada s h um caminho: fazer algoritmos!
Um algoritmo, se digitado no computador, no ir funcionar. Cada pessoa pode elaborar o seu prprio algoritmo. Com a finalidade de padronizar, devemos utilizar
uma linguagem denominada pseudocdigo, que nada mais do que utilizarmos regras para a criao dos algoritmos. Regras essas, que no so rgidas, pois, conforme mencionado, o algoritmo servir somente para o apoio no aprendizado e no
aperfeioamento da lgica dos programadores.
Os algoritmos criados com o pseudocdigo devem ser independentes da linguagem de programao. Para isso, devemos converter o algoritmo para uma linguagem de programao. O objetivo de criarmos algoritmos a base de conhecimento de outras linguagens de programao. Ser a nossa referncia para aprendermos outras linguagens de computadores.
O algoritmo flexvel e, dessa forma, estaremos utilizando algumas regras
voltadas linguagem de programao C++, sem perder as principais caractersticas
de sua finalidade, que a prtica da programao.

1.1 CONCEITOS BSICOS

Alguns termos sero freqentemente utilizados nesse livro-texto e nos outros


que estaro por vir, para isso fundamental que alguns conceitos estejam bem claros em nossas mentes, so eles:
Linguagem de Programao: comandos especficos utilizados para o ser
humano programar o computador, para que seja executada alguma tarefa especfica. As linguagens de programao podem ser divididas em duas categorias: Linguagens de Baixo Nvel e Linguagens de Alto Nvel.
Linguagem de Baixo Nvel: so linguagens voltadas para a mquina, so
escritas usando as instrues do microprocessador do computator.
Linguagem de Alto Nvel: utilizam uma sintaxe, ou seja, comandos que so
facilmente interpretados pelos humanos. Para que o computador as compreenda, precisamos utilizar: os compiladores ou interpretadores.
Compiladores: fazem a traduo de todas as instrues do programa-fonte,
criando um programa executvel.
Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

10

Interpretadores: fazem a traduo de cada instruo do programa-fonte,


executando-a dentro de um ambiente de programao.
Programa-fonte: a passagem ou a traduo do algoritmo para uma linguagem que o computador compreenda. Existem diversas linguagens de programao como: C, C++, Delphi, Cobol, Java, etc... Cada linguagem possui caractersticas particulares, como smbolos e palavras especficos que devem
ser rigorosamente respeitados.
Compilao: Aps a passagem do algoritmo para o programa-fonte, devemos compilar o programa (usando os compiladores no nosso caso estaremos utilizando a linguagem Turbo C++). O programa ir verificar se voc cometeu erros ao transformar o algoritmo em um programa-fonte. Nessa fase,
muito comum a ocorrncia de erros, por isso essencial muita ateno na digitao. A maioria dos erros so comandos digitados errados.
Programa objeto: aps a compilao, realizada pelo computador, gerado
um cdigo que somente o computador entende: a linguagem de mquina.
Nessa fase, o computador transforma todos os cdigos digitados para uma
linguagem binria (composta de 1 e 0), que a linguagem que o computador
entende.
Programa executvel: aps a realizao do programa objeto, ser criado um
programa executvel e este o programa que voc ter como resultado de
seu algoritmo. Um programa executvel no depende da linguagem de programao. Isso significa que o programa poder funcionar independente de
termos ou no o software que utilizamos para criar o programa fonte.
H muitos outros termos que aparecero no decorrer do livro e todos sero abordados no momento oportuno.

Dica: Os programas-fonte so fceis de serem identificados. Sempre que voc


salvar o programa digitado, ele ter a extenso .CPP, assim que for feita a compilao, o programa passar a ter a extenso .EXE .

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

11

1.2 ESTRUTURA BSICA DO ALGORITMO

O que pretendemos neste livro-texto criar algoritmos e fazer a converso


para uma linguagem de programao.
Para atingirmos tal objetivo, observe, na figura 1, o primeiro exemplo de um
algoritmo no Algoritmo Soma_de_dois_numeros. A proposta pedir dois nmeros para que possam ser somados e, aps, imprimir o resultado dessa operao.

Algoritmo Soma_de_dois_numeros;
Variveis numero1,numero2,soma: inteiro;
Inicio
Escreva ( Informe um nmero: );
Leia (numero1);
Escreva ( Informe outro nmero: );
Leia (numero2);
soma = numero1 + numero2;
Escreva ( O resultado da soma dos nmeros informados : , soma);
Fim.
Figura 1 - Algoritmo Soma_de-dois_numeros

No exemplo do Algoritmo Soma_de_dois_numeros, podemos observar os seguintes


itens que aparecem em todos os algoritmos:
Sempre iniciam com a palavra Algoritmo. O nome do algoritmo, que no exemplo Soma_de_dois_numeros, deve sempre comear com uma letra e nunca
ter espaos entre as palavras e jamais dever comear com nmero;
O nome do algoritmo dever ter um significado de acordo com o objetivo do
algoritmo, no caso do exemplo, como o objetivo somar dois nmeros, o nome mais apropriado : Soma_de_dois_numeros;
Ao final, as frases devero sempre terminar com porto e vrgula, com excees que futuramente sero discutidas;
Todo algoritmo tem um incio e um fim, que deve terminar com um ponto final;
O comando Escreva (), ir imprimir na tela do computador tudo do que estiver
entre as aspas.
O comando Leia (), serve para que o computador receba um valor, que dever ser inserido numa varivel;

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

12

Todo programa possui variveis que devem ser declaradas, no caso do exemplo, foram criadas trs variveis que armazenaram valores.

Uma dica importante: antes de comear a fazer um algoritmo, voc deve analisar o que dever ser feito. A leitura e a compreenso do enunciado o ponto inicial
da resoluo do algoritmo. O ideal a separar por partes. No caso da nossa proposta inicial, que : pedir dois nmeros para que possamos som-los e depois, imprimir
o resultado da operao. Separando por partes:

Primeiro, devemos pedir para que os dois nmeros sejam informados;


Segundo, devemos calcular a soma dos dois nmeros e guardar o resultado;
Terceiro, imprimir o resultado.

Separar e escrever por tpicos o que deve ser feito num programa ajudar na
soluo. O ideal escrever num papel esses tpicos, mas com prtica voc ir fazer
isso mentalmente com muita facilidade.

1.3 LINGUAGEM DE PROGRAMAO C++

Os algoritmos elaborados neste livro sero implementados, ou seja, convertidos para a linguagem de programao C++ (fala-se C plus plus ). Utilizaremos para
isso o software TC++ 3.0 da Borland, que est na biblioteca.
A linguagem de programao C++ originou-se da linguagem C, inventada por
Dennis Ritchie. Essa linguagem, a C, ficou muito conhecida por se tratar de uma linguagem para programadores profissionais. Segundo Cordeiro (1998, p.10), por volta
de 1985, Bjarne Stroustrup comeou a desenvolver algumas extenses linguagem
C com o objetivo de prover suporte ao paradigma de orientao a objetos. Esse conjunto de extenses determinou o surgimento da linguagem C++, em 1986. O nome
"C++" advm do fato de que esta linguagem tida como uma extenso da linguagem C, onde o primeiro "+" representa as melhorias realizadas na linguagem C, e o
segundo "+" representa o acrscimo de funcionalidades para suportar o paradigma
de orientao a objetos.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

13

Exerccios propostos

1) Defina algoritmo.
2) Qual a diferena entre um programa-fonte e um executvel?
3) Defina linguagem de Programao.
4) Pesquise e descubra o nome de no mnimo cinco linguagens de programao
para computadores.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

14

Aula 2

VARIVEIS, OPERADORES E
CONSTANTES
Objetivos da aula
Ao final desta aula, voc dever ser capaz de:

Conhecer a importncia da declarao das variveis nos algoritmos e programas, bem como a definio de um tipo para cada tipo de varivel;
Diferenciar os operadores: aritmticos, lgicos e relacionais;
Estabelecer a importncia da constante em algoritmos.

Contedos da aula
Acompanhe os assuntos desta aula, se preferir, aps o seu trmino, assinale
o contedo j estudado.


Definio de variveis e de seus tipos bsicos;

Utilizao de operadores em expresses;

Exemplificao de constantes;

Exerccios propostos.

Seja bem vindo a nossa segunda aula!


Iremos dar incio ao assunto variveis, operadores e
constantes.
Boa aula!

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

15

2. VARIVEIS, OPERADORES E CONSTANTES

O sucesso de um algorimto ou programa depende da correta declarao de


variveis e constantes. A utilizao de operadores fundamental, se utilizados erroneamente, o programa pode apresentar o famoso: erro de lgica.
Erro de lgica significa: o programa no tem erro nos comandos, porm
apresenta um resultado inesperado ou errado. A grande possibilidade do erro
estar no uso errado dos operadores. Ressaltando assim a importncia dessa aula.

2.1 VARIVEIS

Segundo ASCENCIO (1999, p.10), quando fazemos um programa, este recebe os dados que devem ser armazenados no computador para que possam ser utilizados no processamento e armazenado na memria do computador.
Um dado classificado como varivel quando tem a possibilidade de ser alterado em algum determinando momento do programa, conforme Forbellone (2000,
p.17). Toda varivel dever ser declarada antes de ser utilizada. Na sua declarao, informaremos um tipo para ela. Um tipo significa informar ao computador o
que essa varivel poder receber e armazenar na memria do computador.
Muitos so os tipos de variveis. Neste livro utilizaremos principalmente os tipos:

Inteiros - para valores inteiros (nmeros positivos ou negativos - sem vrgulas);


Caracter - para valores que recebero somente um caracter (letra ou nmero
de 0 a 9 ou um sinal);
Real - para valores decimais (nmeros com vrgulas);
Lgico - para retornar os valores Falso ou Verdadeiro e, no caso de C++, retornar 1 ou 0.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

16

Algumas regras na criao das variveis:


Utilize nomes significativos para as variveis, de preferncia nomes curtos;
Nunca utlize nomes para variveis comeando com nmeros, exemplo:
1numero, o certo numero1 sem espaos e nem acento. No utilize caracteres especiais como: * , @ ou {, etc...
Em C++, letras maisculas so diferentes de letras minsculas, ou seja, A
diferente de a. Portanto, nos programas, evite utilizar nomes de variveis com
letras maisculas, isso s ir atrapalhar voc.

2.2 TIPOS DE OPERADORES

Os operadores so utilizados nas expresses matemticas, lgicas e relacionais. A maioria dos operadores soa igual nas linguagens de programao. Em C++,
a linguagem que utilizaremos possui algumas diferenas. Observe com ateno as
tabelas nos prximos tpicos. Voc, com certeza, ir utilizar os operadores em todos
os programas.

2.2.1 OPERADORES ARITMTICOS

Segundo Forbellone (2000, p.20), chamamos de operadores aritmticos o conjunto


de smbolos que representa as operaes bsicas da matemtica. Confira na Tabela
1, os operadores aritmticos.
Tabela 1 Operadores Aritmticos

Algoritmos

Algoritmo

C++

Funo

Adio

Subtrao

Mutiplicao

Diviso

mod

Resto da diviso

div

Quociente da diviso

SOCIESC Sociedade Educacional de Santa Catarina

17

A utilizao do operador MOD (em algoritmo) ou % (em C++) ser da seguinte forma:
15 MOD 2, resulta em 1 o MOD sempre ir retornar o resto da diviso que,
no caso do exemplo: 15 dividido por 2, o resto desta diviso 1 ignorando
assim o resultado da diviso que 7,5.
O mesmo exemplo aplicado ao operador % em C++. Nas linguagens de programao, deveremos utilizar o % somente para variveis do tipo inteiro (isso
ser devidamente explicado no tpico sobre variveis).

2.2.2 OPERADORES RELACIONAIS

Toda vez que precisamos comparar valores, utilizaremos os operadores relacionais, que esto na Tabela 2:

Tabela 2 Operadores Relacionais

Algoritmo

C++

Funo

>

>

Maior que

<

<

Menor que

>=

>=

Maior ou igual a

<=

<=

Menor ou igual a

<>

!=

Diferente de

==

Igual a

Os operadores relacionais sero utilizados praticamente em todos os programas. Exemplicando, observe o resultado: Verdadeiro ou Falso e poderemos ter as
respostas se atribuirmos valores para X e Y. O X receber o valor de 2 e Y receber
o valor de 10.
Ento teremos: X=2 e Y=10.
Agora observe as comparaes abaixo:

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

18

X > Y, resposta: falso


X >= Y, resposta: falso
X < Y, resposta: verdadeiro
X <=Y, resposta: verdadeiro
X = Y, resposta: falso
X<>Y, resposta: verdadeiro

2.2.3 OPERADORES LGICOS

Segundo Mizrahi (1994, p.53), operadores lgicos fazem comparaes. A


diferena entre comparaes lgicas e relacionais est na forma como os operadores avaliam seus operandos, esta avaliao resulta em verdadeiro ou falso, conforme poder ser visto na Tabela 3.

Tabela 3 Operadores Lgicos

Algoritmo

C++

Funo

&&

Ser verdadeiro o resultado somente se na comparao


todos os valores forem verdadeiros

OR

||

Ser verdadeiro o resultado se um dos valores na comparao for verdadeiro

No

Ser verdadeiro somente se a expresso for falsa

Da mesma forma que os operadores relacionais, os lgicos sero intensamente utilizados nos algoritmos de seleo.

2.3 CONSTANTES

A utilizao de constantes nos programas muito til. Imagine uma situao


onde voc precisaria informar a todo o momento um valor especfico como:
45,12453698. Este nmero imenso, a todo o momento deve ser digitado, facilitando
a ocorrncia de erro. Uma vez definida a varivel como sendo uma constante, o seu
valor no poder ser modificado. Exemplos de variveis:
Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

19

Nome = Claudia Werlich


Pi= 3,14

Dica:
Quando houver uma expresso aritmtica com parnteses. Sempre tero precedncia os parnteses de dentro para fora.
Observe a expresso:
(9 + ( ( 10 * 2 ) + (14 -10 ) ) o resultado ser igual a 33

Exerccios propostos
1. Analise as expresses aritmticas e d o resultado:
a) X = ( 10 * ( (100 -90) -10) ) o valor de X :_______
b) W = ( 14 + ( 13 * (13 8) ) o valor de W

2. O valor de X igual a 15 e o valor de W igual a 23, agora analise expresses abaixo e informe se a expresso falsa ou verdadeira.
1. ( X < Y ) a expresso :
2. ( Y > X ) a expresso :
3. ( X = Y ) a expresso :

3. Indique o tipo da varivel Valor, conforme o valor que a varivel receber.


Voc dever informar se a varivel ser do tipo: inteiro, real, caracter ou lgico.
a) Valor = A o tipo ser:
b) Valor = 15,65 o tipo ser:
c) Valor = 47 o tipo ser:
d) Valor = 3 o tipo ser:

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

20

Aula 3

ALGORITMO SEQENCIAL
Objetivo da aula
Ao final desta aula, voc dever ser capaz de:

Criar algoritmos seqenciais e convert-los para a linguagem de programao


C++.

Contedos da aula

Acompanhe os assuntos desta aula, se preferir, aps o


seu trmino, assinale o contedo j estudado.


Exemplicando a estrutura do algoritmo;

Converso do algoritmo para a linguagem C++;

Exerccios propostos.

Prezado aluno!
Chegamos na terceira aula. Agora voc ir aprender
como desenvolver algoritmos seqenciais e converte-los
para a linguagem C++.
Boa aula!

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

21

3. ALGORITMO SEQENCIAL

Relembrando: alguns princpios bsicos sobre o algorimto j foram passados


na primeira aula.
Vamos observar na figura 2, o algoritmo 2 - Soma_de_ Dois_Numeros

Algoritmo Soma_de_dois_numeros;
Variveis numero1, numero2, soma: inteiro;
Inicio
Escreva ( Informe um nmero: );
Leia (numero1);
Escreva ( Informe outro nmero: );
Leia (numero2);
soma = numero1 + numero2;
Escreva (O resultado da soma dos nmeros informados : , soma);
Fim.
Figura 2 - Algoritmo 2 - Soma_de-dois_numeros

Comentrios fundamentais:
Primeiramente voc deve fazer uma releitura do item 1.3, da pg. .
Os nomes das variveis, se precisarem de nmeros, devem ser usados sem
espaos, como no caso: numero1 e numero2.
Observe que, na hora de somar os numero1 e numero2, utilizamos o sinal de
igual, que no representa igualdade. Representa a atribuio, ou seja, a
varivel soma recebe o valor da soma de numero1 e numero2.
Definimos trs variveis: soma, numero1 e numero2. Todas so do tipo inteiro, pois somente queremos utilizar nmeros sem a parte decimal, sem vrgulas.
No ltimo comando Escreva (), observe que o que est dentro das aspas: O
resultado da soma dos nmeros informados : obseve que agora vem a
vrgula para separar o que ser escrito na tela do computador e a varivel.
Se, porventura voc esquecer e deixar as aspas em toda a frase, nenhum valor ser impresso, aparecer na tela a palavra soma. Se isso acontecer, voc
j sabe: errou algo importante: o lugar das aspas.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

22

Num terceiro algoritmo estaremos utilizando tipos de variveis diferentes, conforme


demontra a figura 3.

Algoritmo Variveis_diferentes;
Variveis idade: inteiro;
nome: caracter;
nota1, nota2, media: real;
Inicio
Escreva ( Informe o seu nome: );
Leia (nome);
Escreva ( Informe a sua idade: );
Leia (idade);
Escreva ( Informe a sua primeira nota: );
Leia (nota1);
Escreva ( Informe a sua segunda nota: );
Leia (nota2);
media = nota1 + nota2;
Escreva ( Nome, Voc tem: , idade, anos e sua mdia : , media);
Fim.
Figura 3 Algoritmo 3 - Variveis_diferentes

Comentrios importantes sobre o Algoritmo:


Variveis do mesmo tipo podem ser declaradas juntas somente se forem separadas por vrgula, como no caso: nota1, nota2, mdia: real; o ponto e vrgula deve sempre estar no final.
Nunca utilize a mesma linha para declarar variveis de tipos diferentes. Isso
evitar futuros problemas. Mas, se forem do mesmo tipo no h problemas,
desde que separados por vrgulas.
Observe o ltimo comando Escreva (), dentro dos parnteses toda a vez que
voc deseja imprimir o contedo da varivel, as aspas no podem ser usadas.
E a varivel deve estar entre vgulas, um exemplo seria a varivel idade, que
est entre as vrgulas.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

23

3.1 CONVERSO DO ALGORITMO PARA O C++

Transformar o algoritmo para uma linguagem de programao requer muita


ateno de sua parte. Os detalhes so muitos. E, pior, qualquer engano ou esquecimento o programa simplesmente no ir funcionar.
Na biblioteca voc ir encontrar o programa TC ++, junto haver um roteiro
para utilizar a ferramenta adequadamente. Alguns detalhes sempre devem ser muito
observados:

Na hora que voc for salvar o programa, salve-o com somente um nome e
com a extenso .CPP que indicar que o programa do C++. Por exemplo:
programa1.cpp ou exemplo.cpp ou teste.cpp .
Quando for realizada a compilao, podem aparecer diversas mensagens. Se
apareceu uma ou mais mensagens, isso ocorreu porque h erros. O programa somente ir funcionar se todos os erros forem corrigidos.
Praticamente, a maioria dos erros na compilao devido a erros de digitao. Tenha muito cuidado durante a digitao, qualquer deslize provocar erros no programa.
Antes de compilar e testar o programa, tenha o hbito de salv-lo. Ocorrem
muitos erros durante o teste do programa que podem travar o TC ++ e, com
isso, voc poder perder o programa que fez, pois no salvou. Acredite isso
ocorre com muita freqncia.

Um exemplo de programa em C++ pode ser observado no programa Exemplo.cpp, conforme mostra a figura 4.

// Exemplo.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
int numero1, numero2, soma;
cout<< \n Informe o primeiro nmero: ;
cin>> numero1;
cout<< \n Informe o segundo nmero: ;

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

24

cin>> numero2;
soma = numero1 + numero2;
cout<< A soma dos dois nmeros : << soma;
getch( );
}
Figura 4 - Programa Exemplo.cpp

Comentrios sobre o primeiro programa em C++:


Todos os comandos da sintaxe devem ser digitados em letras minsculas.
Aps cada comando, dever ser usado o ponto e vrgula. Ele indica que o
comando terminou e o computador deve ler o prximo comando.
Utilizamos bibliotecas, que possuem diversas funes j definidas. Para chamarmos uma biblioteca devemos utilizar: #include <nome da biblioteca> .
Todos os programas que faremos tero as duas bibliotecas: #include
<iostream.h> e #include <conio.h> . A primeira possui as funes bsicas de
leitura e escrita e a segunda possui recursos de tratamento de tela. Num programa, poderemos utilizar muitas bibliotecas.
O comando cout << (lemos: c out) equivalente ao comando Escreva () do
algoritmo, ao invs de parnteses, precisamos utilizar o << , assim como no
algoritmo, as aspas devem ser utilizadas quando queremos escrever algo na
tela do computador. Sempre que desejar imprimir uma varivel, voc deve fazer como no exemplo: cout<< A soma dos dois nmeros : << soma;
No comando cout<< entre as aspas utilizamos o \n isso significa: pular a linha. Se voc no utilizar o \n tudo na tela ir ficar amontoado. Podemos utilizar vrios \n, pulando assim vrias linhas, a nica ressalva que devem ser
usadas no cout e entre aspas.
O comando cin>> (lemos: c in) equivalente ao comando Leia() do algoritmo.
Poderemos ler vrias variveis, veja: cin>> n1 >> n2 >> n3;
A funo main () marca o ponto inicial do programa. S poder haver uma
funo main () no programa. O tipo void, indica que no haver retorno de
valor para a funo main (). Lembre-se: escreva sempre com letra minscula.
As chaves indicam o Incio e o Fim.
A funo getch() serve para o programa esperar algo a ser digitado. Se no
houver uma parada, o programa executado de forma to rpida que voc

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

25

nem ir ver o resultado. Usando o getch(), voc far com que o programa
pare at voc digitar algo.
Para a declarao das variveis, no C++, o tipo sempre colocado no incio,
sem os dois pontos, exemplo: int numero1.
Para comentar algum item, demos usar: // e tudo que for escrito aps // ser
ignorado pelo compilador.

Na tabela 4, podemos encontrar uma comparao das variveis e de comandos entre algorimtos e C++. Observe que h alguns tipos de variveis que sero usados mais adiantes.

Tabela 4 Comparao de Comandos


Algoritmo

C++

Funo

Leia ( )

cin >>

Leitura de valores

Escreva ( )

cout <<

Impresso na tela

inteiro

int

Variveis do tipo inteiro

real

float

Variveis do tipo decimal

caracter

char

Variveis do tipo caracters

Incio Fim

{ }

Inicia e termina um bloco

3.2 EXEMPLIFICANDO ALGORITMOS SEQENCIAIS


A caracterstica bsica desses programas que eles comeam e terminam
sem permitir desvio ou possibilidade do usurio poder escolher algum caminho.
importante fazer uma anlise prvia antes de comearmos a fazer o algoritmo. Nesta anlise devemos ler com cuidado o que pedido no enunciado. Devemos ter claramente os itens abaixo:

 Definio do resultado: O que realmente precisamos fazer no programa?


 Os dados de sada: Qual ser o resultado do programa? Quais os dados de sada que sero impressos na tela?
 Os dados de entrada: quais so as informaes que precisamos solicitar para chegar ao resultado de sada?
Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

26

Dica:
Nos primeiros programas, voc deve escrever essa anlise antes do algoritmo. Fazendo isso, voc rapidamente, conseguir ler e enteder o enunciado do programa
que dever ser feito.

3.2.1 ANLISE PASSOS PARA A RESOLUO DE UM ENUNCIADO

1 Passo: Ler o enunciado


Crie um programa que pea um nmero inteiro e imprima na tela: o nmero informado, o dobro do nmero informado, o tripo do nmero informado.

2 Passo: Anlise do enunciado


Definio do resultado: calcular o dobro e o triplo do nmero informado.
Dados de sada: devemos imprimir o dobro e o triplo; ambos do tipo inteiro.
Dados de entrada: devemos pedir um nmero, que no caso deve ser inteiro.

3 Passo: Criao do Algoritmo

Algoritmo Calculando_o_Dobro_e_Triplo;
Variveis numero, dobro, triplo: inteiro;
Inicio
Escreva ( Programa que Calcula o Dobro e o Triplo de um Nmero );
Escreva ( Informe um nmero: );
Leia (numero);
dobro = numero * 2;
triplo = numero * 3;
Escreva ( O dobro de:, numero, :, dobro, e o Triplo :, triplo);
Fim.
Algoritmo Calculando_o_Dobro_e_Triplo

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

4 Passo: Criao do Programa em C++


// Programa dobro_triplo.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
int numero, dobro, triplo;
cout<< \n que Calcula o Dobro e o Triplo de um Nmero ;
cout<< \n Informe um nmero: ;
cin>> numero;
dobro = numero * 2;
triplo = numero * 3;
cout<< \n O dobro de:<< numero<< : << dobro<< e o Triplo :<<triplo;
getch( );
}
Programa dobro_triplo.cpp

Algoritmos

27

SOCIESC Sociedade Educacional de Santa Catarina

28

Exerccios Propostos

1. Encontre os erros do algoritmo abaixo e reescreva o que est errado:


Algoritmo Procurando Erros;
Variveis numero 1 e numero 2: inteiro;
soma: caracter;
Inicio
Escreva ( Digite o valor do Primeiro Nmero: );
Leia (numero1);
Escreva ( Digite o valor do Segundo Nmero:);
Leia ( numero 2);
soma = numero1 + numero2;
Escreva ( O Nmero 1: , numero1, e o Nmero 2: , numero2, : , soma );
Fim.

2. Crie um programa em algoritmo e em C++, que leia dois nmeros inteiros. O programa dever imprimir: a soma dos dois nmeros, a multiplicao dos dois nmeros.
O programa dever imprimir tambm o resultado do valor da soma, subtrado do valor da multiplicao que foram calculados antes.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

29

Aula 4

ESTRUTURA DE SELEO

Objetivos da aula
Ao final desta aula, voc dever ser capaz de:

Criar algoritmos com estruturas de seleo simples;


Converter os algoritmos para a linguagem de programao C++.

Contedos da aula
Acompanhe os assuntos desta aula, se preferir, aps o seu trmino, assinale
o contedo j estudado.


Exemplos de programas com estrutura de seleo.

Exerccios propostos.

Ol aluno!
Voc est evoluindo bem. Vamos agora entrar na
estrutura de seleo. Preste muita ateno.
Boa aula!

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

30

4. SELEO SIMPLES
Segundo Mizrahi (1994, p.87), uma das tarefas fundamentais de qualquer programa decidir o que deve ser executado a seguir. Os comandos de seleo permitem determinar qual a ao a ser tomada com base no resuldado de uma expresso condicional. Podemos, dessa forma, selecionar alternativas, dependendo de critrios que foram estabelecidos no programa.
So trs os tipos de seleo num programa:
Seleo simples
Seleo composta
Seleo de mltiplas escolhas.

importante afirmar que podemos utilizar algum tipo de seleo ou todos


num mesmo programa.
A seleo simples serve para uma comparao simples. Com o comando:
Se < comandos>
ento < opes>;
seno < opes> ;

Observe:
Se (valor1 > valor2 )
ento Escreva ( O valor1 maior) ;
seno Escreva ( O valor1 no maior);
A comparao feita e, Se for verdadeira, o comando ento far o que for
programado, no caso ser: Escreva (O valor1 maior). Se a comparao no for
verdadeira, o comando seno far o que for determinado, no caso do exemplo, imprimir o comando: Escreva (O valor1 no maior).
Podemos utilizar o comando Se sem utilizarmos a opo Seno.
Se (valor1 > valor2 )
ento Escreva (O valor1 maior);

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

31

Nesse caso, estaramos somente analisando se o valor1 maior que o valor2, caso contrrio no interessa e no faremos nada a respeito.

Dica:
Muita ateno nos ponto e vrgulas. Voc s poder utiliz-los atrs dos comandos
que esto logo aps o ento ou o seno.

4.1 PRIMEIRO EXEMPLO SELEO SIMPLES

No algoritmo Selecao_Exemp1, temos o seguinte enunciado: Faa um programa que pea ao usurio dois nmeros inteiros, voc dever somar os dois nmeros informados, se o valor for menor que 100, diminua 10 e imprima. Seno, imprima
o valor da soma dos nmeros somente.
Passos para a resoluo, analisando o enunciado:
Definio do resultado: calcular a soma dos 2 nmeros informados. Analisar o resultado, para diminuir ou no antes de imprimir o resultado.
Dados de sada: imprimir o resultado da soma Se > 100 diminuir 10 Seno: somente imprimir o resultado da soma.
Dados de entrada: devemos pedir dois nmeros inteiros.
O algoritmo:
Algoritmo Seleo_Exemp1;
Variveis numero1, numero2, soma, resultado: inteiro;
Inicio
Escreva ( Programa que Verifica a Soma de 2 Nmeros );
Escreva ( Informe um nmero: );
Leia (numero1);
Escreva ( Informe outro nmero: );
Leia (numero2);
soma= numero1 + numero2;
SE (soma > 100) ENTO
Inicio
resultado = soma 100;
Escreva ( O resultado :, resultado);
Fim;

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

32

SENO
Escreva ( O resultado :, soma);
Fim.
Algoritmo Seleo_Exemp1

Comentrios sobre o algoritmo Seleo_Exemp1:


No comando SE (soma > 100) se a comparao for verdadeira, se o valor da
soma for maior que 100 ENTO iremos subtrair 100 e aps iremos imprimir o
resultado. Importante: como so duas aes: somar e imprimir; devemos colocar um comando Incio antes dos comandos e o comando Fim aps os comandos.
No comando SE (soma > 100); se a comparao for falsa, o valor da soma ser impresso. Como um comando somente, no caso o Escreva (), no necessrio o Incio e o Fim. Se preferir, poder usar, isso no causar problemas.
Sempre devemos usar os comandos Incio e Fim se houver mais de um comando no Ento e ou no Seno.

A converso do algortimo Seleo_Exemp1 para C++ :


// Programa Seleo_Exemp1.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
int numero1, numero2, soma, resultado;
cout<< \n Programa que Verifica a Soma de 2 Nmeros ;
cout<< \n Informe um nmero: ;
cin>> numero1;
cout<< \n Informe outro nmero: ;
cin>> numero2;
soma= numero1 + numero2;
if (soma > 100) // Comentrio: if igual a Se
{
resultado = soma 100;

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

33

cout<< O resultado :<< resultado;


}
else

// Comentrio : else igual ao seno


cout<< O resultado :<< soma;

getch( );
}
Programa Seleo_Exemp1.cpp

Comentrios sobre o programa Seleo_Exemp1.cpp:


Observou a diferena do comando SE do algoritmo do if do C++? No C++ no
temos o comando ENTO, simplesmente no precisamos colocar.
No C++, o comando fica assim: if (<condio> ) else
Toda vez que precisarmos inserir um comentrio no programa, devemos utilizar as duas barras: // e tudo o que for digitado ser ignorado.
A indentao do programa muito importante. Indentao e a forma arrumada de arrumarmos o programa, com espaamentos, respeitando os blocos de
cada comando.
Blocos de comandos so comandos com vrias opes. No programa acima,
temos dois blocos. O primeiro bloco: o prprio main ( ) que inicia e termina,
por isso precisa da abertura da chaves e de seu fechamento no final do programa { }. O segundo bloco: o comando if.

4.2 SEGUNDO EXEMPLO SELEO SIMPLES


No algoritmo Selecao_Exemp2, temos o seguinte enunciado: Faa um programa que leia a idade de uma pessoa. Verifique se a pessoa pode ou no ter carteira de motorista. Escreva uma mensagem informativa ao usurio.
Passos para a resoluo, analisando o enunciado:
Definio do resultado: verificar a idade, se maior que 18 anos pode dirigir, seno proibido.
Dados de sada: imprimir mensagens, se a idade > 18 poder dirigir, caso
contrrio imprimir a mensagem negativa.
Dados de entrada: solicitar a idade da pessoa e deve ser do tipo inteiro.
Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

34

O algoritmo:
Algoritmo Seleo_Exemp2;
Variveis idade: inteiro;
Inicio
Escreva ( Programa que Verifica Se Voc Pode ou No Dirigir);
Escreva ( Digite a sua idade: );
Leia (idade);
SE (idade > = 18) ENTO
Inicio
Escreva ( Sua idade :, idade);
Escreva ( Voc j pode dirigir, mas primeiro precisar tirar a carteira);
Fim;
SENO
Inicio
Escreva ( Sua idade :, idade);
Escreva ( Voc no pode dirigir, precisa andar de nibus, aguarde os 18);
Fim;
Fim.
Algoritmo Seleo_Exemp2

Ateno: Verifique que na comparao do SE (idade > = 18), utilizamos o sinal de


igual. Por qu? Simples: se voc fez 18 anos, voc j considerado maior de idade.
Se deixssemos apenas (idade > 18), somente quando voc informasse 19 seria
impresso a mensagem que poderia dirigir.

A converso do algortimo Seleo_Exemp2 para C++


// Programa Seleo_Exemp2.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
int idade;
cout<< \n Programa que Verifica Se Voc Pode ou No Dirigir ;
cout<< \n Digite a sua idade: ;
cin>> idade;
if (idade >= 18)

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

35

{
cout<< \n Sua idade :<< idade;
cout<< \n Voc j pode dirigir, mas primeiro precisar tirar a carteira;
}
else
{
cout<< \n Sua idade : << idade;
cout<< \n Voc no pode dirigir, precisa andar de nibus, aguarde os 18;
}
getch( );
}
Programa Seleo_Exemp2.cpp

4.3 TERCEIRO EXEMPLO SELEO SIMPLES


No algoritmo Selecao_Exemp3, temos o seguinte enunciado: Faa um programa que pea ao usurio que informe uma letra referente ao seu sexo. Digitar F
para feminino ou M para masculino. Escreva uma mensagem informativa do sexo ao
usurio.
Passos para a resoluo, analisando o enunciado:
Definio do resultado: verificar a letra informada referente ao sexo.
Dados de sada: imprimir mensagens conforme o sexo.
Dados de entrada: solicitar a idade da pessoa e deve ser do tipo inteiro.
O algoritmo:
Algoritmo Seleo_Exemp3;
Variveis sexo: caracter;
Inicio
Escreva ( Programa que Imprime a Letra Referente ao Sexo);
Escreva ( Digite a letra F para Feminino ou M para Masculino: );
Leia (sexo);
SE ( (sexo = F) ou (sexo = f) ) ENTO
Inicio
Escreva ( Sexo FEMININO);
Fim;
SE ( (sexo = M) OU (sexo = m) ) ENTO
Inicio
Escreva ( Sexo MASCULINO);

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

36

Fim;
Fim.
Algoritmo Seleo_Exemp3

Comentrios do algoritmo Seleo_Exemp3:


Primeiro, observe que o tipo da varivel caracter, para que possamos ler
uma letra.
Na comparao: sexo = M, o M est entre aspas simples (apstrofo), precisamos utilizar aspa simples, seno precisaramos declarar o M e o F. Esse
recurso s vale para um nico caracter.
Estamos utilizando uma comparao mais completa. Verifique que na comparao do SE ( (sexo = M) ou (sexo = m) ) utilizamos o operador OU. Conforme j mencionamos: letras maisculas so diferentes das letras minsculas. Portanto, se o usurio digitar o F maisculo e o seu programa est testando o f minsculo, no teremos o resultado correto sendo impresso.

A converso do algortimo Selecao_Exemp2 para C++


// Programa Seleo_Exemp3.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
char sexo;
cout<< \n Programa que Imprime a Letra Referente ao Sexo ;
cout<< \n Digite a letra F para Feminino ou M para Masculino: ;
cin>> idade;
if ( (sexo = = F) || (sexo = =f) )
{
cout<< \n Sexo FEMININO;
}
if ( (sexo = = M) || (sexo = =m) )
{
cout<< \n Sexo MASCULINO;
}

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

37

getch( );
}
Programa Seleo_Exemp3.cpp

Importante observar que:


Na expresso: if ( (sexo = = F) || (sexo = =f) ) nunca haver ponto e vrugula
no fim do parnteses. O comando OU est representado pelo || . fundamental ter um parntese maior entre as condies de teste.
O sinal de igualdade no algoritmo o simples igual e no C++ o duplo: ==
muito comum esquecer de abrir ou fechar uma chave. Preste muita ateno: toda vez que houver mais de um comando aps o if ou aps o else devemos colocar as chaves. Se voc observar o exemplo, no comando if, s h
um comando e mesmo assim usei a chaves. Isso pode? Claro que sim, alis,
tenho como hbito sempre colocar as chaves em meus ifs, por isso, a partir
de agora, voc ver em todos os meus programas o uso das chaves.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

38

Exerccios Propostos

1. Faa um programa em algortimo que dever pedir a idade. Conforme a idade dever ser impressa uma mensagem somente na tela, informando:
Se a pessoa for menor de 16 anos  no pode votar ainda
Se a pessoa tiver entre 16 anos e 18 anos  vota se quiser
Se a pessoa tiver mais de 18 anos  por lei, a votar.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

39

Aula 5

SELEO COMPOSTA

Objetivos da aula
Ao final desta aula, voc dever ser capaz de:

Criar programas com seleo composta, convertendo-os para a linguagem de


programao C++.

Contedos da aula
Acompanhe os assuntos desta aula, se preferir, aps o seu trmino, assinale
o contedo j estudado.


Exemplo de programas com estruturas de seleo composta;

Exerccios propostos.

Caro aluno!
Muito bem. Para darmos continuidade, vamos agora entrar no assunto relacionado a seleo composta.
Boa aula!

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

40

5. SELEO COMPOSTA
A seleo composta so conjuntos de selees. Podemos inserir condies
dentro de condies. Isso muito til quando precisamos realizar vrios testes. Observe a estrutura do comando:
SE <condio1>
Ento  Se a condio do teste no Se for verdadeira
Incio
Se <condio2> Ento
Incio
Comando 1;
Comando 2;
Fim;
Fim;
Seno
Incio
Se <condio3>
Ento
Incio
Comando 1;
Comando 2;
Fim;
Fim;

Dica:
Todo cuidado pouco no comando de seleo composta. As mltiplas opes podem trazer o famoso erro de lgica, que nada mais do que um erro na
hora de construir as opes nas condies. Caso isso ocorra em um de seus programas, a forma mais fcil de achar o erro verificar condio por condio. Analisando o valor de cada varivel e verificando o teste para saber o resultado e assim
procurar descobrir o erro.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

41

5.1 PRIMEIRO EXEMPLO SELEO COMPOSTA


Iremos complementar o algoritmo Selecao_Exemp3. Nele temos o seguinte
enunciado: Faa um programa que pea ao usurio que informe uma letra referente
ao seu sexo. Digitar F para feminino ou M para masculino. Escreva uma mensagem
informativa do sexo ao usurio. Qualquer letra informada que no seja a letra F ou M
dever ser impressa a mensagem: Favor digitar certo da prxima vez.
Passos para a resoluo, analisando o enunciado:
Definio do resultado: verificar a letra informada referente ao sexo.
Dados de sada: imprimir mensagens conforme o sexo e mensagem de
erro, se digitado algo diferente de F ou M.
Dados de entrada: solicitar a idade da pessoa e deve ser do tipo inteiro.
O algoritmo:
Algoritmo Seleo_Composta_1;
Variveis sexo: caracter;
Inicio
Escreva ( Programa que Imprime a Letra Referente ao Sexo);
Escreva ( Digite a letra F para Feminino ou M para Masculino: );
Leia (sexo);
SE ( (sexo = F) ou (sexo = f) ) ENTO
Inicio
Escreva ( Sexo FEMININO);
Fim;
SENO
SE ( (sexo = M) OU (sexo = m) ) ENTO
Inicio
Escreva ( Sexo MASCULINO);
Fim;
SENO
Incio
Escreva ( Letra Errada -- Favor Digitar Certo da Prxima Vez );
Fim;
Fim.
Algoritmo Seleo_Composta_1

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

42

Observe a seqncia dos testes, no algoritmo Seleo_Composta1:


Primeiro SE: verificamos se a letra digitada F ou f
Se o primeiro teste no for verdade, O SENO entra em ao e no segundo
SE: verificamos se a letra digitada M ou m
Se a letra informada tambm no for M ou m, isso significa que a pessoa digitou outra coisa, portanto o outro SENO entra em ao e imprimimos a mensagem, que a pessoa digitou algo diferente de F ou M

A converso do algortimo Seleo_Composta1 para C++, ficar assim:


// Programa Seleo_Composta1.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
char sexo;
cout<< \n Programa que Imprime a Letra Referente ao Sexo ;
cout<< \n Digite a letra F para Feminino ou M para Masculino: ;
cin>> sexo;
if ( (sexo = = F) || (sexo = =f) )
{
cout<< \n Sexo FEMININO;
}
else
if ( (sexo = = M) || (sexo = =m) )
{
cout<< \n Sexo MASCULINO;
}
else
{
cout<< \n Letra Errada -- Favor Digitar Certo da Prxima Vez;
}

getch( );
}
Programa Seleo_Composta1.cpp

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

43

5.2 PRIMEIRO EXEMPLO SELEO COMPOSTA

No exemplo de Forbellone (2000, p.41), temos a seguinte situao: Dados


trs valores A, B,C; verificar se eles podem ser os comprimentos dos lados de um
tringulo. Se forem, verificar o tipo de tringulo: eqiltero, issceles ou escaleno.
Caso os valores A, B e C no formarem um tringulo, uma mensagem dever ser
informada. Detalhes:
a. tringulo se: ( A < B + C ) e ( B < A + C) e ( C < A + B )
b. eqiltero se: ( A = B ) e ( B = C)

dois lados iguais

c. issceles se: ( A = B ) ou ( A = C ) ou ( B = C) todos os lados iguais


d. escaleno se: ( A <> B ) e ( B <>C )  todos os lados diferentes
Passos para a resoluo do enunciado:
Definio do resultado: verificar se os valores informados podem formar
um tringulo. Determinar o tipo de tringulo:
Dados de sada: Uma mensagem informando se os valores de A, B e C
no formam um tringulo; ou uma mensagem informando qual o tipo de
tringulo: issceles, escaleno ou eqiltero.
Dados de entrada: pedir para informar trs valores A, B e C.

O algoritmo:
Algoritmo Triangulo;
Variveis A, B, C : inteiro;
Inicio
Escreva ( Programa que Imprime o Tipo de Tringulo );
Escreva ( Digite o Primeiro Lado do Tringulo );
Leia (A);
Escreva ( Digite o Segundo Lado do Tringulo );
Leia (B);
Escreva ( Digite o Terceiro Lado do Tringulo );
Leia (C);
SE ( (A < B + C ) e ( B < A + C) e ( C < A + B ) )
ENTO

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

SE ( ( A = B ) e ( B = C) )
ENTO
Escreva (Tringulo Equiltero);
SENO
SE ( ( A = B ) ou ( A = C ) ou ( B = C) )
ENTO
Escreva (Tringulo Isscele);
SENO
Escreva (Tringulo Isscele);
SENO
Escreva (Estes valores no formam um tringulo);
Fim.
Algoritmo Triangulo

A converso do algortimo Seleo_Composta1 para C++, ficar assim:


// Programa Triangulo.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
int A, B, C;
cout<< \n Programa que Imprime o Tipo de Tringulo ;
cout<< \n Digite o Primeiro Lado do Tringulo: ;
cin>> A;
cout<< \n Digite o Segundo Lado do Tringulo: ;
cin>> B;
cout<< \n Digite o Terceiro Lado do Tringulo: ;
cin>> C;
if ( (A < B + C ) && ( B < A + C) && ( C < A + B ) )
{
if ( ( A == B ) && ( B == C) )
cout <<\n Tringulo Equiltero;
else
if ( ( A ==B ) || ( A ==C ) || ( B == C) )
cout <<\n Tringulo Isscele;
else
cout <<\n Tringulo Isscele;
}

Algoritmos

44

SOCIESC Sociedade Educacional de Santa Catarina

45

else
cout <<\n Estes valores no formam um tringulo;
getch( );
}
Programa Triangulo.cpp

Comentrios:
Na comparao: if ( (A < B + C ) && ( B < A + C) && ( C < A + B ) ) utiizamos
o operador && que o E no algoritmo. Como usamos dois conjuntos de &&,
significa que, somente SE todas as condies forem verdadeiras, como resultado, ao final formam um tringulo.
Na comparao: if ( ( A == B ) || ( A == C ) || ( B == C) ) Se qualquer uma das
condies for verdadeira, teremos um tringulo eqiltero, que tem dois lados
iguais.
Na comparao: if ( ( A == B) && ( B == C) ), um erro que pode passar despercebido trocar os dois sinais de igual por um sinal. Isso no ir provocar
um erro. O computador pensar que a varivel A receber o valor de B. Por
isso fundamental muita ateno na digitao correta da igualdade.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

46

Exerccios Propostos

1. Faa um algoritmo que pea dois valores: uma letra referente ao sexo e nmero
inteiro referente idade. Imprima uma mensagem avisando se a pessoa poder ou
no se aposentar. Para aposentadoria, os seguintes critrios devero ser analisados:
 Aposentadoria para homens somente depois dos 65 anos.
 Aposentadoria para mulheres somente depois dos 60 anos.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

47

Aula 6

SELEO MLTIPLA ESCOLHA

Objetivos da aula
Ao final desta aula, voc dever ser capaz de:

Conhecer e aplicar a seleo de mltipla escolha em programas;


Estabelecer a necessidade desse comando na construo de programas.

Contedos da aula
Acompanhe os assuntos desta aula, se preferir, aps o seu trmino, assinale
o contedo j estudado.


Exemplificao de programas de mltipla escolha;

Exerccios propostos.

Prezado aluno!
Chegamos na etapa de estudarmos a seleo mltipla escolha.
Boa aula!

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

48

6. SELEO MLTIPLA ESCOLHA

Quando precisamos testar a mesma varivel com uma srie de valores, podemos utilizar a Seleo de Mltipla Escolha: Escolha. A varivel do teste deve ser
sempre do tipo inteiro ou caracter. O comando Escolha muito utilizado quando
oferecemos vrias opes ao usurio, deixando que escolha um valor dentre vrios.
A vantagem principal desse comando que ele evita uma srie de testes com o comando SE. A desvantagem que os testes somente iro funcionar para variveis
inteiras ou do tipo caracter. A sintaxe do comando :
Escolha < condio>
Incio
caso 1: comandos;
caso 2: comandos;
seno comandos
Fim;
6.1 Primeiro Exemplo de Seleo de Mltipla Escolha

Observe o algoritmo Exemplo_Escolha, demonstrando o uso do comando:

Algoritmo Exemplo_Escolha;
Variveis sexo: caracter;
Inicio
Escreva ( Programa que Imprime a Letra Referente ao Sexo);
Escreva ( Digite a letra F para Feminino ou M para Masculino: );
Leia (sexo);
Escolha (sexo)
Incio
Caso f,F: Escreva ( Sexo FEMININO);
Caso m,M: Escreva ( Sexo MASCULINO);
Seno Escreva ( Letra Errada -- Favor Digitar Certo da Prxima Vez );
Fim;
Fim.
Algoritmo Exemplo_Escolha

Comentrios:

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

49

Observe que este programa o mesmo da aula anterior, porm usamos o


comando Escolha. A diferena visvel pela diminuio do tamanho.
O comando Escolha avalia o contedo da varivel sexo, caso seja F, imprimir a mensagem: Sexo FEMININO. Se a resposta no for F e for M, a mensagem a ser impressa ser: Sexo MASCULINO. E, se este teste tambm
no for F ou no for M, a mensagem do Seno ser impressa.
Podemos, separando por vrgulas as opes como no Caso f,F:
Ateno aos ponto e vrgulas: aps o comando Escolha no h ponto e vrgula. Em cada opo dos Comandos de cada Caso, sempre teremos o ponto e
vrgula.
Podemos colocar mais comandos aps o Caso: basta colocar o comando incio e fim fique atento ao prximo algoritmo.

Converso para a linguagem C++:

// Programa Exemplo_Escolha.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
char sexo;
cout<< \n Programa que Imprime a Letra Referente ao Sexo ;
cout<< \n Digite a letra F para Feminino ou M para Masculino: ;
cin>> idade;
switch (sexo)
{
case f,F: {cout << \n Sexo FEMININO; break;}
case m,M: {cout << \n Sexo MASCULINO; break;}
else cout << \n Letra Errada -- Favor Digitar Certo da Prxima Vez;
}
getch( );
}
Programa Exemplo_Escolha.cpp

Consideraes:
No C++ o comando Escolha o switch (). Aps a condio, necessrio
o uso das chaves (que representam o incio e o fim do comando)

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

50

Dica:
O algoritmo que verifica o tipo do tringulo: Algorimo Triangulo, no pode utilizar o
comando Escolha. Como no algoritmo Triangulo, h uma srie de condies para
verificar os lados do tringulo. O comando Escolha para um teste simples, com
vrias possibilidades de resultado.

6.2 Segundo Exemplo de Seleo de Mltipla Escolha

No prximo exemplo, veremos um programa que solicita ao usurio dois nmeros inteiros. Em seguida o usurio deve escolher um caracter entre esses: + ou
ou *, pois cada sinal ir representar o clculo que dever ser feito. Imprima o valor
resultante.

Algoritmo Mini_Calculadora;
Variveis sinal: caracter;
num1, num2 : inteiro;
Inicio
Escreva ( Programa Mini Calculadora);
Escreva ( Informe o Primeiro Nmero: );
Leia (num1);
Escreva ( Informe o Segundo Nmero: );
Leia (num2);
Escreva ( Informe um dos sinais: + - * );
Leia (sinal);
Escolha (sinal)
Incio
Caso +: Escreva ( A soma dos nmeros : , num1 + num2);
Caso -: Escreva ( A subtrao dos nmeros : , num1- num2);
Caso *: Escreva ( O produto dos nmeros : , num1 * num2);
Seno Escreva ( Sinal Errado -- Favor Digitar Certo da Prxima Vez );
Fim;
Fim.
Algoritmo Mini_Calculadora

Comentrio:
No programa no foi criado uma varivel para guardar o resultado das
operaes de clculo. Como simplesmente iremos somar os dois nmeros, podemos calcular diretamente no comando Escreva( ) desde que
Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

51

no estejam entre as aspas. O computador imprime tudo que h entre as


aspas. Por essa razo todo cuidado pouco!

Convertendo para C++, teremos o seguinte programa:


// Programa Mini_Calculadora.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
char sinal;
int num1,num2;
cout<< \n Programa Mini Calculadora ;
cout<< \n Informe o Primeiro Nmero: ;
cin>> num1;
cout<< \n Informe o Segundo Nmero: ;
cin>> num2;
cout<< \n Informe um dos sinais: + - * ;
cin>> sinal;
switch (sinal)
{
case +: { cout<< \n A soma dos nmeros : << num1 + num2; break; }
case -: { cout<< \n A subtrao dos nmeros : << num1- num2; break; }
case *: { cout<< \n O produto dos nmeros : <<num1 * num2; break; }
else { cout<< \n Letra Errada -- Favor Digitar Certo da Prxima Vez; break; }
}
getch( );
}
Programa Mini_Calculadora.cpp

Comentrios:
1. A varivel sinal do tipo char e analisada no comando switch () escolha
no algoritmo conforme o valor da varivel, o comando case ser executado.
2. Em cada linha do comando switch(), usamos o case, <opo> e precisamos utilizar o comando break, para forar a sada no camando switch () se
no utilizarmos o break todas as opes do case sero testadas, mesmo se
algum comando case, j tenha sido usado antes.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

52

Exerccio Proposto

1. Faa um algoritmo que pea um nmero inteiro. Cada nmero representa um dia
da semana. Imprima o dia da semana por extenso, utilzando o comando Caso.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

53

Aula 7

ESTRUTURAS DE REPETIO

Objetivos da aula
Ao final desta aula, voc dever ser capaz de:

Demonstrar o uso das vantagens da estrutura de repetio;


Utilizar as trs estruturas de repetio.

Contedos da aula
Acompanhe os assuntos desta aula, se preferir, aps o seu trmino, assinale
o contedo j estudado.


Comando de repetio com teste no incio;

Comando de repetio com teste no fim;

Comando de repetio com varivel de controle;

Exerccios propostos.

Ol Aluno!
Caso voc j tenha compreendido o assunto at aqui, est evoluindo bem.
Agora iremos entrar em estruturas de repetio.
Boa aula!

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

54

7. ESTRUTURAS DE REPETIO

Todos os programas apresentados at agora no permitem que sejam executados mais de uma vez. Se quisermos repetir algum programa precisamos sair do
programa e execut-lo novamente. Isso invivel. Precisamos permitir repeties.
Outra necessidade: imagine se precisssemos calcular a mdia das notas de 500
alunos sabendo-se que cada aluno tem 4 notas. Se fssemos criar todas essas variveis perderamos um tempo enorme s na declarao dessas variveis.
Segundo Forbellone (2000, p.49), uma estrutura de repetio uma estrutura
com controle de fluxo de execuo, que permite repetir diversas vezes um mesmo
trecho do programa. Do mesmo jeito que na estrutura de deciso, a estrutura de repetio depende do teste de uma condio.
So trs os tipos de estruturas de repetio:
Repetio com teste no incio: Enquanto ... Faa
Repetio com teste no fim: Repita ... At
Repetio com varivel de controle Para ... Faa

Na tabela 5, Estruturas de Repetio, observe o funcionamento das estruturas de


repetio:
Tabela 5: Estruturas de Repetio
Algoritmo
Enquanto < condio> Faa
Incio
comandos;
Fim;
Repita
Incio
comandos;
Fim;
At <condio>;
Para varivel = valor_inicial At
valor_final Faa
Incio
comandos; Fim;

Algoritmos

C++
while (x>b)
{ comandos;
}

Como funciona?
O comando Enquanto primeiro a condio analisada, se for verdadeira os
comandos sero executados.

do
{
comandos;
}
while( x>b);
for (cont=1; cont<=100;
cont++)
{
comandos;
}

O comando Repita executa os comandos e faz o teste na condio. Fica


repetindo at a condio ser verdadeira
para poder terminar.
O comando Para incrementa, a varivel
de controle a partir do valor_inicial , at
que, esta atinja o valor_final. Aumentando o valor da varivel de controle at
que o valor final seja alcanado. Executando os comandos a cada passagem.

SOCIESC Sociedade Educacional de Santa Catarina

55

Dica:
Coloque sempre dentro do bloco de repetio os comandos: Incio e Fim. Mesmo se
for somente um comando. Isso ajudar a prevenir uma srie de problemas, pois dificilmente teremos somente um comando nessas estruturas de repeties. E no esquea da identao, para facilitar a visualizao do comando.

7.1 COMANDO DE REPETIO: Para....Faa

A estrutura de repetio Para Faa, deve ser usada quando sabemos o nmero exato de repeties. Na estrutura de repetio Para Faa devemos usar uma
varivel de controle. Essa varivel deve ser sempre do tipo inteiro ou caracter. Observe o algoritmo abaixo, que tem como objetivo imprimir na tela do computador,
todos os nmeros de 1 at 100.

Algoritmo Repetir_com_Para;
Variveis cont: inteiro;
Inicio
Escreva ( Programa que Imprime Todos os Nmeros de 1 at 100 );
Para cont= 1 At 100 Faa
Incio
Escreva ( , cont);
Fim;
Fim.
Algoritmo Repetir_com_Para

Comentrios:
No algoritmo Repetir_com_Para, no precisamos pedir nenhum valor. O programa ir imprimir todos os nmeros de 1 at 100.
O funcionamento da varivel cont dentro do Para Faa: primeiro ela, a varivel, recebe o valor um e este valor impresso na tela com o comando Escreva. Aps o comando, internamente, realizada a soma de mais um ao valor
da varivel cont (agora ela ficar com o valor igual a dois) e imprimir na tela
o dois, o comando ficar repitindo essa operao at o valor do cont chegar a

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

56

cem, que ser impresso e o comando ir parar. Indo para o prximo comando do algoritmo que, nesse algoritmo, fim, mas poderia ser outro qualquer.
Observe o comando Escreva( ) dentro do Para: Escreva(

,cont) - colo-

camos entre aspas dois espaos em branco, isso impedir que os nmeros fiquem grudados ao aparecer na tela. Sem os espaos, a resposta na tela seria
assim: 12345678910....at chegar ao 100. Com os espaos, ficar assim: 1 2
3 4 5 6 7 8 9 10 11 12 ...at 100

Convertendo para C++, teremos o seguinte programa:

// Programa Repetir_For.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
int cont;
cout<< \n Programa que Imprime Todos os Nmeros de 1 at 100 ;
for (cont = 1; cont<=100;cont ++)
{
cout<< << cont;
}
getch( );
}
Programa Repetir_For.cpp

Comentrio:
No C++ o comando Para Faa sofre algumas alteraes. A primeira que
somente escrevemos o for, a segunda que a condio tem trs partes, aonde: cont=1 serve para inicializar a varivel cont; cont<=100 a condio de
teste que determina o limite do for; cont++ (isso o mesmo que cont= cont+
1) significa que cont incrementa mais um, ou seja, que o cont recebe mais um
a cada vez que o comando for executado.

Outro exemplo do uso do comando de Repetio Para .. Faa. Enunciado:


Calcule a soma de todos os nmeros pares de 2 at 1000. Um nmero par encon-

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

57

trado quando o resto de sua diviso for igual a zero. Portanto utilize o operador
MOD.
Passos para a resoluo do enunciado:
Definio do resultado: verificar se o nmero par, se for par deveremos
acumular o valor da soma.
Dados de sada: o resultado da soma de todos os pares.
Dados de entrada: nada h para ser solicitado ao usurio.

Algoritmo:
Algoritmo Soma_dos Pares;
Variveis cont,result: inteiro;
Inicio
result=0;
Escreva ( Programa que Imprime a Soma de Todos os Nmeros Pares de 2 at 1000 );
Para cont = 1 At 1000 Faa
Incio
Se (cont MOD 2 = 0) Ento
Incio
result= result + cont;
Fim;
Fim;
Escreva ( A Soma de Todos os Nmeros Pares : , result);
Fim.
Algoritmo Soma_dos Pares

Convertendo para C++:


// Soma_Pares.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
int cont, result;
cout<< \n Programa que Imprime a Soma de Todos os Nmeros Pares de 2 at 1000 ;
for (cont = 1; cont<=100;cont ++)
{
if (cont % 2==0)
{
result= result+cont;

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

58

}
}
cout << \n A Soma de Todos os Nmeros Pares : << result;
}
getch( );
}
Programa Soma_Pares.cpp

Comentrios:
No comando for ( cont=1; cont <= 100 ; cont ++), utilizamos a varivel cont
++, isso significa que a varivel cont recebe cont + 1 ou seja, cont = cont +1.
O comando funciona da sequinte forma: primeiro o cont recebe o valor um;
por segundo o comando faz a comparao e enquanto o cont for menor at
100 o comando for ser repetido. Por ltimo, o cont ++ executado aonde o
contador incrementado com mais um.

7.2 COMANDO DE REPETIO: Enquanto..Faa


A estrutura de repetio Enquanto utilizada para repetir um bloco de comandos por vrias vezes, sem sabermos ao certo a quantidade exata de vezes. Para isso criamos uma condio de teste, que testada j no incio do bloco. O uso do
comando Enquanto ideal, quando precisamos sair do comando de uma forma repentina ou assim que atingir algum objetivo. A forma geral do comando :
Enquanto ( condio ) Faa
Incio
Comando1;
Comando2;
Fim;
No comando Enquanto primeiro a condio avaliada e enquanto a condio
for verdadeira, o comando Enquanto executado. No momento em que a condio
deixar de ser verdadeira, o comando pra. Observe o algoritmo Media_Idades que
tem como objetivo: ler vrias idades, sem limite, assim que for digitada a idade igual
a zero o programa dever encerrar a leitura e apresentar a mdia de todas as idades
informadas e a quantidade de idades informadas.
Passos para a resoluo, analisando o enunciado:
Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

59

Definio do resultado: calcular a mdia das idades de vrias pessoas


no sabemos o limite - precisamos acumular o valor de cada idade e
contar quantas pessoas participaram da pesquisa.
Dados de sada: imprimir o valor da mdia das idades informadas e a
quantidade de idades informadas.
Dados de entrada: solicitar a idade da pessoa e deve ser do tipo inteiro.
Informar que para saber o resultado, deve ser digitada a idade igual a zero.
O algoritmo:
Algoritmo Media_Idades;
Variveis idade, acumulador, contador: inteiro;
media: real;
Incio
media = 0;
acumulador = 0;
contador = 0;
Escreva ( Programa que Imprime a Mdia das Idades de Vrias Pessoas);
Escreva ( Informe Uma Idade Digite [0] Para Parar);
Leia ( idade);
Enquanto (idade<> 0 ) Faa
Incio
contador = contador +1;
acumulador = acumulador + idade;
Escreva ( Informe Uma Idade Digite [0] Para Parar);
Leia (idade);
Fim;
media = acumulador / contador;
Escreva ( A Quantidade de Idades Informadas : , contador);
Escreva ( A Mdia de Idades Informadas : , media);
Fim.
Algoritmo Media_Idades

Comentrios sobre o algoritmo:


A diferena entre as variveis: contador e acumulador. Contador uma varivel que servir para contar a quantidade de vezes que foram informadas as
idades. A cada passagem pelo comando, o contador receber mais um. Acumulador a varivel que ir armazenar a soma das idades informadas.
Um detalhe importante: variveis que recebem valores durante o programa
devem ser inicializadas com um valor. No caso do exemplo, elas foram inicializadas com o valor zero.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

60

Convertendo o algoritmo para C++:


// Media_Idades.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
int idade, acumulador=0, contador=0;
float media=0;
cout << \n Programa que Imprime a Mdia das Idades de Vrias Pessoas ;
cout << \n Informe Uma Idade Digite [0] Para Parar;
cin>> idade;
while (idade<> 0 ) do
{
contador = contador +1;
acumulador = acumulador + idade;
cout << \n Informe Uma Idade Digite [0] Para Parar;
cin>> idade;
}
media = acumulador / contador;
cout << \n A Quantidade de Idades Informadas : << contador;
cout << \n A Mdia de Idades Informadas : << media;
getch( );
}

Programa Media_Idades.cpp

7.3 COMANDO DE REPETIO: Repita ... At


O comando Repita realiza o teste da condio no final do comando. Isso quer
dizer que ao menos uma vez o comando ser executado. Esse comando o oposto
do comando Enquanto, visto que, o Enquanto primeiro testa para entrar no bloco e
o Repita primeiro executa para depois testar a condio. A estrutura do comando :
Repita
Incio
Comando1;
Comando 2;
Comando 3;
Fim;
At <condio>;
No algoritmo anterior: Media_Idades, no seria conveniente utilizar o comando Repita, visto que o teste no fim do comando. Imagine se algum logo no primeiro teste fornea um valor de idade igual a zero. As variveis: acumulador e contador
iro acumular e contar respectivamente. Tornando o resultado errado, pois estariam
permitindo a entrada de da idade iguala zero nos clculos.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

61

Aproveitando o algoritmo Mini_Calculadora, feito na Aula 6, o uso do comando Repita ser demonstrado. Esse programa ir pedir dois nmeros e um sinal ( +
ou ou *). Conforme o sinal, ele ir mostrar o resultado da operao e pronto. Se
desejar repetir com novos nmeros para teste, no ser possvel. A no ser, claro,
que voc feche o programa e o compile novamente.
Para evitar esse transtorno, podemos facilmente utilizar o comando Repita,
perguntando ao usurio se ele deseja continuar a testar o programa, informando novos valores.
Para isso, basta criar uma nova varivel, que ir armazenar a resposta (sim
ou no).

Observe o algoritmo Mini_Calculadora2:


Algoritmo Mini_Calculadora2;
Variveis sinal, resposta: caracter;
num1, num2 : inteiro;
Inicio
Repita
Incio
Escreva ( Programa Mini Calculadora);
Escreva ( Informe o Primeiro Nmero: );
Leia (num1);
Escreva ( Informe o Segundo Nmero: );
Leia (num2);
Escreva ( Informe um dos sinais: + - * );
Leia (sinal);
Escolha (sinal)
Incio
Caso +: Escreva ( A soma dos nmeros : , num1 + num2);
Caso -: Escreva ( A subtrao dos nmeros : , num1- num2);
Caso *: Escreva ( O produto dos nmeros : , num1 * num2);
Seno Escreva ( Sinal Errado -- Favor Digitar Certo da Prxima Vez );
Fim;
Escreva ( Deseja Repetir o Programa? Digite S para sim ou N para no );
Leia (resposta);
Fim;
At ( ( resposta = n ) OU (resposta = N ) );
Fim.
Algoritmo Mini_Calculadora2

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

62

Comentrio:
Aps o programa imprimir o resultado do clculo, uma nova mensagem
ir surgir, perguntando: Deseja Repetir o Programa? Digite S para sim
ou N para no. O comando Leia ( ) ir ler a resposta do usurio. Se for S
o programa ir repetir, mas se for N o programa ir encerrar. Resumindo:
o programa s termina quando for digitada a letra n ou N.

Convertendo para C++, teremos o seguinte programa:


// Programa Mini_Calculadora.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
char sinal, resposta;
int num1,num2;
do
{
cout<< \n Programa Mini Calculadora ;
cout<< \n Informe o Primeiro Nmero: ;
cin>> num1;
cout<< \n Informe o Segundo Nmero: ;
cin>> num2;
cout<< \n Informe um dos sinais: + - * ;
cin>> sinal;
switch (sinal)
{
case +: { cout<< \n A soma dos nmeros : << num1 + num2; break; }
case -: { cout<< \n A subtrao dos nmeros : << num1- num2; break; }
case *: { cout<< \n O produto dos nmeros : <<num1 * num2; break; }
else { cout<< \n Letra Errada -- Favor Digitar Certo da Prxima Vez; break; }
}
cout<< \n Deseja Repetir o Programa? Digite S para sim ou N para no ;
cin>> resposta;
} while ( ( resposta == n ) || (resposta ==N ) );
}
Programa Mini_Calculadora.cpp

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

63

Comentrio:
Nesse programa, o comando getch() no necessrio. Assim que o programa receber a letra n ou N ele ir terminar e no precisa ficar esperando por
nada.

7.4 EXEMPLO COM AS TRS ESTRUTURAS DE REPETIO

Agora, um programa mais elaborado, com opes diferentes. O programa


consiste em imprimir a tabuada de um nmero inteiro, informado pelo usurio. O usurio poder escolher que a tabuada seja calculada e impressa com o comando
Para ou com o comando Enquanto ou com o comando Repita.
Passos para a resoluo do enunciado:
Definio do resultado: calcular a tabuada de um nmero inteiro, com o
comando de repetio escolhido:
Dados de sada: a tabuada de um nmero inteiro
Dados de entrada: pedir um nmero inteiro e a opo de escolha do comando de repetio.
O algoritmo:
Algoritmo Tabuada;
Variveis opcao: caracter;
numero, cont: inteiro;
Inicio
Escreva ( Programa Tabuada de um Nmero Desejado);
Escreva ( Informe um Nmero para a Tabuada: );
Leia (numero);
Escreva ( Escolha uma das Estruturas: );
Escreva ( [ P ] Digite P para Imprimir a Tabuada com o comando Para );
Escreva ( [ R ] Digite R para Imprimir a Tabuada com o comando Repita );
Escreva ( [ E ] Digite E para Imprimir a Tabuada com o comando Enquanto );
Leia (opcao);
Escolha (opcao)
Incio
Caso P,p: Incio
Para cont =1 At 10 Faa

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

Incio
Escreva ( numero , x , cont , = , numero * cont);
Fim;
Fim;
Caso R,r: Incio
cont =1;
Repita
Incio
Escreva ( numero , x , cont , = , numero * cont);
cont = cont + 1;
Fim;
At (cont =10);
Fim;
Caso E,e: Incio
cont =1;
Enquanto (cont <=10 ) Faa
Incio
Escreva ( numero , x , cont , = , numero * cont);
cont = cont + 1;
Fim;
Fim;
Else
Escreva ( Escolha Errada....);
Fim;
Fim.
Algoritmo Tabuada

Convertendo para C++:


//Tabuada.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
char opcao;
int numero, cont;
cout<< \n Programa Tabuada de um Nmero Desejado;
cout<< \n Informe um Nmero para a Tabuada: ;
cin>>numero;
cout<< \n Escolha uma das Estruturas: ;
cout<< \n [ P ] Digite P para Imprimir a Tabuada com o comando Para ;

Algoritmos

64

SOCIESC Sociedade Educacional de Santa Catarina

65

cout<< \n [ R ] Digite R para Imprimir a Tabuada com o comando Repita ;


cout<< \n [ E ] Digite E para Imprimir a Tabuada com o comando Enquanto ;
cin>>opcao;
switch (opcao)
{
case P,p: { for ( cont = 1; com<=10; cont = cont +1 )
{ cout<< \n << numero << x << cont << = << numero * cont;
}
break;
}
case R,r: { cont=1;
do { cout<< \n << numero << x << cont << = << numero * cont;
cont= cont +1;
} while ( cont< = 10) ;
break;
}
case E,e: { cont =1;
while (cont<=10 ) do
{ cout<< \n << numero << x << cont << = << numero * cont;
cont= cont +1;
}
break;
}

else { cout<< \n Letra Errada -- Favor Digitar Certo da Prxima Vez; break; }
}
getch( );
}
Programa Tabuada.cpp

Comentrios:
O programa somente parece complexo. Conforme o que for digitado na varivel opcao (observe que no h acentos e nem o sinal da cedilha) ser
escolhida uma opo com o comando switch () .
Muito cuidado com as chaves, uma a mais ou a menos o programa no ir
funcionar.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

66

Exerccios Propostos

1. Altere o algoritmo Tabuada, para que, alm do que ele j faz, possibilite ao usurio escolher se deseja ou no repetir o programa. Utilize a estrutura Repita ..At.

2. Crie um programa em algoritmo utilizando a estrutura Para...Faa imprima todos


os nmeros mpares de 3 at 303.

3. Crie um programa em algoritmo que pea a altura de vrias pessoas. Quando for
digitada a altura -1 o programa dever encerrar e imprimir a mdia das alturas.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

67

Aula 8

VETORES

Objetivos da aula
Ao final desta aula, voc dever ser capaz de:

Introduo a vetores
Declarao e exemplificao de Vetores
Exerccios Propostos

Contedos da aula
Acompanhe os assuntos desta aula, se preferir, aps o seu trmino, assinale
o contedo j estudado.


Exemplificao de programas de utilizando vetores.

Exerccios propostos

Caro aluno!
Chegamos a etapa final do nosso estudo.
Preste muita ateno no assunto sobre vetores, pois tambm ser muito usado nos
demais materiais.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

68

8. VETORES

Chamamos de vetores os conjuntos de variveis agrupadas do mesmo tipo.


Vamos a um exemplo prtico da utilizao de vetores. Imagine se voc precisasse armazenar as notas de 50 alunos. Na forma como vnhamos declarando as
variveis, teramos que declarar 50 variveis, ficando assim: nota1, nota2, nota3,
nota4,......at nota50. Na forma de vetores, a declarao fica da seguinte maneira:
nota[50] : real. Isso equivalente a criar 50 variveis do tipo real.
Agora vamos criar uma varivel do tipo vetor com 10 posies, mas cada elemento do vetor dever ser do tipo inteiro.
A declarao da varivel ficaria assim:
Variveis nmero [10]: inteiro; - criamos assim um vetor com dez elementos
inteiros.
Para acessar uma varivel, podemos nos referir diretamente a ela: numero
[1], numero[2], assim, se quisermos atribuir um valor de 3000 ao elemento 8, do vetor nmero, deveremos no referir varivel da seguinte forma: numero[8] = 3000.
No caso do numero [8], estamos nos referindo varivel de posio8. Observe a
figura 5. Os quadrados representam cada elemento da varivel numero[10]. O nmero que est dentro dos colchetes representa o ndice do vetor ou a posio dele.
vetor:numero[10]

10

ndices do vetor

Figura 5 - Vetor 1

Trabalhar com vetor, significa trabalhar com estruturas de repeties. O motivo simples: trabalharemos com muitas variveis e deixaremos o trabalho mais pesado para a estrutura de repetio. A melhor estrutura de repetio para trabalhar
com vetores o Para...Faa, pelo simples motivo de sempre termos o nmero exato
dos elementos do vetor.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

69

Agora temos um detalhe muito importante: no algoritmo e em vrias linguagens, o ndice do vetor comea sempre do 1. No C++, o ndice comea do 0. Veja a
figura 6. Continuamos com dez elementos, porm o valor do ndice comea do zero.

vetor:numero[10]

ndices do vetor

Figura 6 - Vetor 2

Um programa que demonstra o uso de vetores: Ler e guardar num vetor as


notas de 20 alunos. Aps, verifique quantos alunos tiveram a nota menor que 7.
Calcule a mdia das notas dos alunos..
Passos para a resoluo, analisando o enunciado:
Definio do resultado: verificar quantos alunos, entre 20, tiveram notas
menores que 7.Calcular a mdia das notas
Dados de sada: imprimir a quantidade de alunos que tiveram a nota menor que 7 e a mdia geral das notas.
Dados de entrada: solicitar as notas de 20 alunos.

Algoritmo:

Algoritmo Vetor_de_Notas;
Variveis cont, quant: inteiro;
notas[20]: real;
media, acum: real;
Inicio
quant = 0; media=0, cont=0;
Escreva ( Programa que Imprime a Mdia das Notas de 20 alunos );
Escreva ( Imprime a Quantidade de Alunos que Tiveram Notas Menores de 7.0 );
Para cont = 1 At 20 Faa
Incio
Escreva ( Informe a nota do aluno n: , cont);

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

70

Leia ( notas [ cont ] );


acum = acum + notas [ cont ];
Se ( notas [cont] < 7) Ento
quant =quant + 1;
Fim;
media= acum / 20;
Escreva ( A mdia das notas dos alunos : , media);
Escreva ( A quantidade de alunos que tiveram notas menos que 7,0 so: , quant
Fim.
Algoritmo Vetor_de_Notas

Comentrios:
Observe a declarao do vetor: notas [20] : real isso cria uma varivel com
vinte posies para guardar informaes.
A leitura da varivel: Leia (notas[ cont ]), dentro dos colchetes precisamos de
uma varivel para controlar o ndice do vetor. Quando o valor do cont for igual
a 1 estaremos nos referindo nota 1, quando o valor do cont for igual a 2, estaremos nos referindo nota 2 e assim sucessivamente.

Convertendo o programa para C++:

// Vetor_Notas.cpp
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main( )
{
int cont=0, quant=0;
float notas[20];
float acum=0, media=0;
cout<< \n Programa Programa que Imprime a Mdia das Notas de 20 alunos ;
cout<< \n Imprime a Quantidade de Alunos que Tiveram Notas Menores de 7.0;
cout << setprecision(2);
for (cont = 0; cont<20; cont ++)
{
cout<< \n Informe a nota do aluno n: , cont+1
cin >> notas [ cont ];
acum = acum + notas [ cont ];
if ( notas [cont] < 7)

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

71

quant =quant + 1;
}
media= acum / 20;
cout<< \n A mdia das notas dos alunos : << media;
cout<< \n A quantidade de alunos que tiveram notas menos que 7,0 so: << quant;
getch( );
}
Programa Vetor_Notas.cpp

Comentrios:
Em C++, o tipo de varivel real fica como float. Lembrando que o tipo da varivel inserido antes da varivel. Observe que estamos declarando a varivel
e ao mesmo tempo j estamos atribuindo valores, inicalizando as variveis.
Utilizamos mais uma biblioteca: #include<iomanip.h> para podermos utilizar
a funo setprecision(2), que tem como objetivo a impresso de 2 casas decimais aps a vrgula.
O comando for (Para..Faa) essencial ao programa. ele que faz o trabalho pesado do programa. nele que so informadas as 20 notas, acumulando
os valores e testando cada nota para verificar se a nota menor de 7.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

72

Exerccios Propostos

1. Crie um programa que leia 15 nmeros inteiros. Armazene-os num vetor. Some
todos os nmeros e imprima a mdia dos nmeros e a quantidade de nmeros no
vetor que so menores do que a mdia dos nmeros informados.

2. Crie um programa que leia um vetor de 30 caracteres. Verifique quantos desses


caracteres que foram informados no vetor, so vogais.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

73

SOLUES DOS EXERCCIOS

AULA 1

1. Defina algoritmo.
Algoritmos so seqncias de passos que tm como objetivo atingir um determinado objetivo.

2. Qual a diferena entre um programa fonte e um executvel?


Programa Fonte: a passagem, traduo, do algoritmo para uma determina linguagem de programao. O programa fonte precisa ser compilado para funcionar.
Programa Executvel: o programa pronto, o programa fonte compliado e aps
gerado um arquivo .exe, que funciona sem precisar abri-lo num software de programao.

3. Defina linguagem de Programao.


So comandos especficos utilizados para programar o computador. Possuem uma
linguagem e sintaxe prpria.

4. Pesquise e descubra o nome de no mnimo cinco linguagens de programao para computadores.


Java, C, Pascal, Delphi, Visual Basic, C++, COBOL, Progress, PHP, .NET, C#

AULA 2

1. Analise as expresses aritmticas e d o resultado:


a) X = ( 10 * ( (100 -90) -10) ) o valor de X : 700
b) W = ( 14 + ( 13 * (13 8) ) o valor de W : 79

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

74

2. O valor de X igual a 15 e o valor de W igual a 23, agora analise as expresses abaixo e informe se a expresso falsa ou verdadeira.
1. ( X < Y ) a expresso : verdadeira
2. ( Y > X ) a expresso : verdadeira
3. ( X = Y ) a expresso : falsa

3. Indique o tipo que a varivel Valor, conforme o valor que a varivel receber. Voc dever informar se a varivel ser do tipo: inteiro, real, caracter ou lgico.
e) Valor = A , o tipo ser: caracter
f) Valor = 15,65 o tipo ser: real
g) Valor = 47 o tipo ser: inteiro
h) Valor = 3 o tipo ser: inteiro

AULA 3
1. Encontre os erros do algoritmo abaixo e reescreva o que est errado:
Algoritmo Procurando Erros;
Variveis numero 1 e numero 2: inteiro;
soma: caracter;
Inicio
Escreva ( Digite o valor do Primeiro Nmero: );
Leia (numero1);
Escreva ( Digite o valor do Segundo Nmero:);
Leia ( numero 2);
soma = numero1 + numero2;
Escreva ( O Nmero 1: , numero1, e o Nmero 2: , numero2, : , soma );
Fim.
Algoritmo Procurando Erros
Erros:
1. Algoritmo Procurando Erros;
No pode haver espao entre Procurando Erros
Forma correta: Algoritmo Procurando_Erros;

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

75

2. Variveis numero 1 e numero 2: inteiro;


No pode haver espao entre o nome da varivel e o nmero, muito menos utilizar
a letra e
Forma correta: Variveis numero1, numero2: inteiro;
3. Escreva ( Digite o valor do Segundo Nmero:);
No h aspas antes do texto.
Forma correta: Escreva ( Digite o valor do Segundo Nmero:);
4. Escreva ( O Nmero 1: , numero1, e o Nmero 2: , numero2, : , soma );
As aspas esto colocadas no lugar errado.
Forma correta; Escreva ( O Nmero 1: , numero1, e o Nmero 2: , numero2,
: , soma );

2. Crie um programa em algoritmo e em C++, que leia dois nmeros inteiros. O programa dever imprimir: a soma dos dois nmeros, a multiplicao dos dois nmeros.
O programa dever imprimir tambm o resultado do valor da soma, subtrado do valor da multiplicao que foram calculados antes.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

PRIMEIRA SOLUO: criando vrias variveis.

Algoritmo Numeros_Inteiros;
Variveis num1,num2 , soma, mult, result: inteiro;
Inicio
Escreva ( Programa Exerccio );
Escreva ( Informe dois nmeros: );
Leia (num1);
Leia (num2);
soma= num1+ num2;
mult = num1 * num2;
result = soma mult;
Escreva ( O Resultado : , result);
Fim.
Algoritmo Numeros_Inteiros;
// Programa Numeros_Inteiros.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
int num1,num2 , soma, mult, result;
cout<< \n Programa Exerccio ;
cout<< \n Informe dois nmeros: ;
cin>> num1;
cin>> num2;
soma= num1+ num2;
mult = num1 * num2;
result = soma mult;
cout<< \n O O Resultado : << result;
getch( );
}
Programa Numeros_Inteiros.cpp

Algoritmos

76

SOCIESC Sociedade Educacional de Santa Catarina

SEGUNDA SOLUO: criando vrias variveis.

Algoritmo Numeros_Inteiros;
Variveis num1,num2 : inteiro;
Inicio
Escreva ( Programa Exerccio );
Escreva ( Informe dois nmeros: );
Leia (num1);
Leia (num2);
Escreva ( O Resultado : , ( ( num1+ num2) - ( num1* num2) );
Fim.
Algoritmo Numeros_Inteiros

4 Passo: Criao do Programa em C++

// Programa Numeros_Inteiros.cpp
#include <iostream.h>
#include <conio.h>
void main( )
{
int num1,num2;
cout<< \n Programa Exerccio ;
cout<< \n Informe dois nmeros: ;
cin>> num1;
cin>> num2;
cout<< \n O O Resultado : << ( ( num1+ num2) - ( num1* num2) );
getch( );
}
Programa Numeros_Inteiros.cpp

Algoritmos

77

SOCIESC Sociedade Educacional de Santa Catarina

78

AULA 4

1.

Faa um programa em algortimo que dever pedir a idade. Conforme a idade


dever ser impressa uma mensagem somente na tela, informando:

Se a pessoa for menor de 16 anos  no pode votar ainda


Se a pessoa tiver entre 16 anos e 18 anos  vota se quiser
Se a pessoa tiver mais de 18 anos  por lei, a votar.

Algoritmo Votar;
Variveis idade: inteiro;
Inicio
Escreva ( Programa que Verifica Se Voc Pode ou No Votar);
Escreva ( Digite a sua idade: );
Leia (idade);
SE (idade< 16) ENTO
Inicio
Escreva ( Voc no pode votar!);
Fim;
SENO
SE ( (idade >= 16) E ( idade <18) ) ENTO
Inicio
Escreva ( Voc vota se quiser!);
Fim;
SE (idade > = 18) ENTO
Inicio
Escreva ( Voc deve votar!);
Fim;
Fim.
Algoritmo Votar;

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

79

AULA 5

1. Faa um algoritmo que pea dois valores: uma letra referente ao sexo e nmero
inteiro referente idade. Imprima uma mensagem avisando se a pessoa poder ou
no se aposentar. Para aposentadoria, os seguintes critrios devero ser analisados:
 Aposentadoria para homens somente depois dos 65 anos.
 Aposentadoria para mulheres somente depois dos 60 anos.

Algoritmo Aposentadoria;
Variveis sexo: caracter;
idade: inteiro;
Inicio
Escreva ( Programa que Imprime se Voc Pode ou No se Aposentar);
Escreva ( Digite a letra F para Feminino ou M para Masculino: );
Leia (sexo);
Escreva ( Digite a sua Idade: );
Leia (idade);
SE ( ( (sexo = F) OU (sexo = f) ) E ( idade>=60) ) ENTO
Inicio
Escreva ( Sexo FEMININO e pode se aposentar);
Fim;
SENO
SE ( ( (sexo = M) OU (sexo = m) ) E ( idade > = 65) ENTO
Inicio
Escreva ( Sexo MASCULINO e pode se aposentar);
Fim;
Fim.
Algoritmo Aposentadoria;

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

80

AULA 6

1. Faa um algoritmo que pea um nmero inteiro. Cada nmero representa um dia
da semana. Imprima o dia da semana por extenso, utilzando o comando Caso.

Algoritmo Dia_Semana;
Variveis dia: inteiro;
Incio
Escreva ( Programa que Imprime o Dia da Semana por Extenso);
Leia (dia);
Escolha (dia)
Inicio
Caso 1: Escreva (Domingo);
Caso 2: Escreva (Segunda);
Caso 3: Escreva (Tera);
Caso 4: Escreva (Quarta);
Caso 5: Escreva (Quinta);
Caso 6: Escreva (Sexta);
Caso 7: Escreva (Sbado);
Seno Escreva ( Nmero no dia da Semana );
Fim;
Fim.

Algoritmo Dia_Semana;

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

81

AULA 7

1. Altere o algoritmo Tabuada, para que alm do que ele j faz possibilide ao usurio
escolher se deseja ou no repetir o programa. Utilize a estrutura Repita ..At.

Algoritmo Tabuada;
Variveis opcao: caracter;
numero, cont: inteiro;
resp: caracter;
Incio
REPITA
INCIO
Escreva ( Programa Tabuada de um Nmero Desejado);
Escreva ( Informe um Nmero para a Tabuada: );
Leia (numero);
Escreva ( Escolha uma das Estruturas: );
Escreva ( [ P ] Digite P para Imprimir a Tabuada com o comando Para );
Escreva ( [ R ] Digite R para Imprimir a Tabuada com o comando Repita );
Escreva ( [ E ] Digite E para Imprimir a Tabuada com o comando Enquanto );
Leia (opcao);
Escolha (opcao)
Incio
Caso P,p: Incio
Para cont =1 At 10 Faa
Incio
Escreva ( numero , x , cont , = , numero * cont);
Fim;
Fim;
Caso R,r: Incio
cont =1;
Repita
Incio
Escreva ( numero , x , cont , = , numero * cont);
cont = cont + 1;
Fim;
Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

82

At (cont =10);
Fim;
Caso E,e: Incio
cont =1;
Enquanto (cont <=10 ) Faa
Incio
Escreva ( numero , x , cont , = , numero * cont);
cont = cont + 1;
Fim;
Fim;
Else
Escreva ( Escolha Errada....);
Fim;
Escreva ( Deseja Repetir o Programa? Digite S para sim ou N para no );
Leia (resp);
Fim;
At ( ( resp = n ) OU (resp = N ) );
Fim.
Algoritmo Tabuada;
2. Crie um programa em algoritmo utilizando a estrutura Para...Faa imprima todos
os nmeros mpares de 3 at 303.
Algoritmo Nmeros_impares;
Variveis cont : inteiro;
Inicio
result=0;
Escreva ( Programa que Imprime Todos os Nmeros mpares de 3 at 303 );
Para cont = 3 At 303 Faa
Incio
Se (cont MOD 2 <> 0) Ento
Incio
Escreva ( , cont);
Fim;
Fim; Fim.
Algoritmo Nmeros_impares
Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

3. Crie um programa em algoritmo, pea a altura de vrias pessoas. Quando for


digitada a altura -1 o programa dever encerrar e imprimir a mdia das alturas.

Algorimo Media_Alturas;
Variveis altura, acumulador, contador: inteiro;
media: real;
Incio
media = 0;
acumulador = 0;
contador = 0;
Escreva ( Programa que Imprimi a Mdia das Alturas de Vrias Pessoas);
Escreva ( Informe Uma Altura Digite [-1] Para Parar);
Leia (altura);
Enquanto (altura<>-1 ) Faa
Incio
contador = contador +1;
acumulador = acumulador + altura;
Escreva ( Informe Uma Altura Digite [-1] Para Parar);
Leia (altura);
Fim;
media = acumulador / contador;
Escreva ( A Quantidade de Alturas Informadas : , contador);
Escreva ( A Mdia das Alturas Informadas : , media);
Fim.
Algorimo Media_Alturas

Algoritmos

83

SOCIESC Sociedade Educacional de Santa Catarina

84

AULA 8

1. Crie um programa que leia 15 nmeros inteiros. Armazene-os num vetor. Some
todos os nmeros e imprima a mdia dos nmeros e a quantidade de nmeros no
vetor que so menores do que a mdia dos nmeros informados.

Algoritmo Vetor_de_Numeros;
Variveis cont, quant: inteiro;
numeros[15]: real;
media, acum: real;
Inicio
quant = 0; media=0, cont=0;
Escreva ( Programa que Imprime a Mdia dos 15 Nmeros Informados );
Escreva ( Informe 15 nmeros);
Para cont = 1 At 15 Faa
Incio
Leia ( numeros [ cont ] );
acum = acum + numeros [ cont ];
Fim;
media= acum / 15;
Para cont = 1 At 15 Faa
Incio
Se ( numeros [cont] <media) Ento
quant =quant + 1;
Fim;
Escreva ( A mdia dos nmeros informados : , media);
Escreva ( A quantidade de nmeros informado e que so menores do que a mdia: , quant);
Fim.

2. Crie um programa que leia um vetor de 30 caracteres. Verifique quantos desdes


caracteres so vogais.

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

85

PRIMEIRA VERSO: USANDO ESCOLHA

Algoritmo Vetor_de_Caracteres;
Variveis cont, quant: inteiro;
letras[30]: caracter;
Incio
quant = 0; cont=0;
Escreva ( Programa que Imprime a quantidade de Vogais que h no vetor );
Para cont = 1 At 30 Faa
Incio
Escreva ( Informe um Caracter);
Leia ( letras [ cont ] );
Escolha (letras [ cont ] )
Incio
Caso a,A, e,E,i,I,o,O,u,U: quant =quant + 1;
Fim;
Fim;
Escreva ( A quantidade de vogais no vetor de: , quant);
Fim.

SEGUNDA VERSO: USANDO SE

Algoritmo Vetor_de_Caracteres;
Variveis cont, quant: inteiro;
letras[30]: caracter;
Inicio
quant = 0; cont=0;
Escreva ( Programa que Imprime a quantidade de Vogais que h no vetor );
Para cont = 1 At 30 Faa
Incio
Escreva ( Informe um Caracter);
Leia ( letras [ cont ] );
SE ( (letras [ cont ] ) = A OU (letras [ cont ] ) = a OU (letras [ cont ] ) = E OU
(letras [ cont ] ) = e OU (letras [ cont ] ) = I OU (letras [ cont ] ) = i OU

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

86

(letras [ cont ] ) = O OU (letras [ cont ] ) = o OU (letras [ cont ] ) = U OU


(letras [ cont ] ) = u ) ) ENTO
quant =quant + 1;
Fim;
Escreva ( A quantidade de vogais no vetor de: , quant);
Fim.
Algoritmo Vetor_de_Caracteres

Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina

87

REFERNCIAS

FORBELLONE, Andr Luiz Villar, EBERSPASCHER, Henri Frederico. Lgica de


Programao: a construo de algoritmos e estrutura de dados. 2.ed. So Paulo: Makron Books, 2000.

SALVETTI, Dirceu Douglas, BARBOSA, Lisbete Madsen. Algoritmos.So Paulo:


Makron Books, 1998.

ASCENCIO. Ana Fernanda Gomes. Lgica de Programao com Pascal. So


Paulo: Makron Books, 1999.

MIZRAHI. Victorine Viviane. Treinamento em Linguagem C++: curso completo mdulo 1.So Paulo:McGraw-Hill, 1990.

[COR98] CORDEIRO, Jos. Transio para C++ - para programadores de C. Escola Superior de Tecnologia, Instituto Politcnico de Setbal, 1998.

Algoritmos

You might also like