Você está na página 1de 87

ALGORITMOS

EDIO N 1 - 2007



















PROF. CLUDIA WERLICH



_________________________________________________________________

Apoio Gesto e Execuo Contedo e Tecnologia


SOCIESC Sociedade Educacional de Santa Catarina 2




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 3









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 aperfeioa-
mento 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 acompa-
nhado pelo Sistema de Ensino Tupy Virtual, seja por correio postal, fax, telefone, e-
mail ou Ambiente Virtual de Aprendizagem.



de.

Sempre entre em contato conosco quando surgir alguma dvida ou dificulda-

Toda a equipe ter a maior alegria em atend-lo, pois a sua aquisio de co-

nhecimento 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 4








Carta do Professor





O grande amor nasce, do grande conhecimento da coisa ama-
da. (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 alu-
nos 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 lin-
guagem de programao C++, para que voc possa digitar e testar. Dessa forma,
voc conseguir aprimorar a sua lgica, facilitando o aprendizado das prximas dis-
ciplinas.
Vamos agora para um novo desafio: a programao de computadores!
Professora Cludia Werlich















Algoritmos

SOCIESC Sociedade Educacional de Santa Catarina 5











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


1


1

Noes Bsicas de
Algoritmos

_/_ a _/_

2

Variveis, Operadoes e
Constantes



_/_ a _/_


2

Algorimo Seqencial

_/_ a _/_

2

2
Algoritmo Seleo
Simples

_/_ a _/_


2
Algoritmo Seleo
Composta

_/_ a _/_

2

Algoritmo Seleo Ml-
tipla Escolha



_/_ a _/_

3

2
Algortimo de Repetio
Para..Faa

_/_


2
Algortimo de Repetio
Repita ... At

_/_


2
Algortimo de Repetio
Enquanto...Faa

_/_

3

Algortimo com Vetores



_/_



















Algoritmos
SOCIESC Sociedade Educacional de Santa Catarina 6







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, ori-
gem e estrutura de dados; utilizar ambientes de programao com edio, compila-
o, 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 7





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, conhe-
cendo 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 8




1. NOES BSICAS SOBRE ALGORITMOS




Segundo Forbellone (2000, p.03), algoritmo pode ser definido como uma se-

qncia 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 e-
xemplo 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. A-
ps, colocamos o trigo, ovos e por ltimo o acar. Qual seria o resultado dessa mis-
tura? 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 se-
rem 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 detalhamen-
to pode ou no ser indispensvel no desenvolvimento de um algoritmo, tudo depen-
de da situao que dever ser muito bem observada pelo programador.





Algoritmos
SOCIESC Sociedade Educacional de Santa Catarina 9




A experincia do programador reflete diretamente em uma lgica mais apu-
rada, 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 po-

de elaborar o seu prprio algoritmo. Com a finalidade de padronizar, devemos utilizar
uma linguagem denominada pseudocdigo, que nada mais do que utilizarmos re-
gras para a criao dos algoritmos. Regras essas, que no so rgidas, pois, con-
forme 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 lin-
guagem de programao. Para isso, devemos converter o algoritmo para uma lin-
guagem de programao. O objetivo de criarmos algoritmos a base de conheci-
mento de outras linguagens de programao. Ser a nossa referncia para apren-
dermos 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 cla-
ros em nossas mentes, so eles:
Linguagem de Programao: comandos especficos utilizados para o ser
humano programar o computador, para que seja executada alguma tarefa es-
pecfica. As linguagens de programao podem ser divididas em duas catego-
rias: 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 compre-
enda, 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 lingua-
gem que o computador compreenda. Existem diversas linguagens de progra-
mao como: C, C++, Delphi, Cobol, Java, etc... Cada linguagem possui ca-
ractersticas particulares, como smbolos e palavras especficos que devem
ser rigorosamente respeitados.
Compilao: Aps a passagem do algoritmo para o programa-fonte, deve-
mos compilar o programa (usando os compiladores no nosso caso estare-
mos utilizando a linguagem Turbo C++). O programa ir verificar se voc co-
meteu erros ao transformar o algoritmo em um programa-fonte. Nessa fase,
muito comum a ocorrncia de erros, por isso essencial muita ateno na di-
gitao. 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 pro-
gramao. 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 se-
ro 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 com-
pilao, 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 nme-
ros 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 exem-

plo 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 no-

me mais apropriado : Soma_de_dois_numeros;

Ao final, as frases devero sempre terminar com porto e vrgula, com exce-

es 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 deve-

r ser inserido numa varivel;



Algoritmos
SOCIESC Sociedade Educacional de Santa Catarina 12




Todo programa possui variveis que devem ser declaradas, no caso do e-

xemplo, foram criadas trs variveis que armazenaram valores.



Uma dica importante: antes de comear a fazer um algoritmo, voc deve ana-
lisar 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 propos-

ta 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, converti-
dos 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 lin-
guagem 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 con-
junto 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 lingua-
gem 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 pro-
gramas, 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 erro-
neamente, 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 rece-

be os dados que devem ser armazenados no computador para que possam ser utili-
zados no processamento e armazenado na memria do computador.
Um dado classificado como varivel quando tem a possibilidade de ser alte-
rado em algum determinando momento do programa, conforme Forbellone (2000,
p.17). Toda varivel dever ser declarada antes de ser utilizada. Na sua declara-
o, 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 vrgu-

las);

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++, re-

tornar 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 carac-

teres 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 relacio-
nais. 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

Algoritmo C++ Funo
+ + Adio
- - Subtrao
* * Mutiplicao
/ / Diviso
mod % Resto da diviso
div / Quociente da diviso






Algoritmos
SOCIESC Sociedade Educacional de Santa Catarina 17




A utilizao do operador MOD (em algoritmo) ou % (em C++) ser da seguinte for-
ma:
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 pro-

gramao, 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 rela-
cionais, 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 progra-

mas. 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 operado-
res avaliam seus operandos, esta avaliao resulta em verdadeiro ou falso, confor-
me poder ser visto na Tabela 3.


Tabela 3 Operadores Lgicos

Algoritmo C++ Funo
E && Ser verdadeiro o resultado somente se na comparao
todos os valores forem verdadeiros
OR || Ser verdadeiro o resultado se um dos valores na com-
parao for verdadeiro
No ! Ser verdadeiro somente se a expresso for falsa


Da mesma forma que os operadores relacionais, os lgicos sero intensa-

mente 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 precedn-
cia 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 expres-

ses 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 lgi-
co.
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 intei-

ro, pois somente queremos utilizar nmeros sem a parte decimal, sem vrgu-

las.

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 va-

lor 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 se-

paradas por vrgula, como no caso: nota1, nota2, mdia: real; o ponto e vrgu-

la 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 esque-
cimento 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 progra-

ma somente ir funcionar se todos os erros forem corrigidos.

Praticamente, a maioria dos erros na compilao devido a erros de digita-

o. Tenha muito cuidado durante a digitao, qualquer deslize provocar er-

ros 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 Exem-
plo.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 cha-

marmos 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 progra-

ma, 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 fa-

zer como no exemplo: cout<< A soma dos dois nmeros : << soma;

No comando cout<< entre as aspas utilizamos o \n isso significa: pular a li-

nha. Se voc no utilizar o \n tudo na tela ir ficar amontoado. Podemos utili-

zar 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 coman-
dos entre algorimtos e C++. Observe que h alguns tipos de variveis que sero u-
sados 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 algo-
ritmo. Nesta anlise devemos ler com cuidado o que pedido no enunciado. Deve-
mos ter claramente os itens abaixo:


Definio do resultado: O que realmente precisamos fazer no pro-

grama?

Os dados de sada: Qual ser o resultado do programa? Quais os da-

dos de sada que sero impressos na tela?

Os dados de entrada: quais so as informaes que precisamos soli-

citar 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. Fa-
zendo 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 informa-
do, 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 27




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

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 pro-

grama 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 va-
lor 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 pro-

grama decidir o que deve ser executado a seguir. Os comandos de seleo permi-
tem determinar qual a ao a ser tomada com base no resuldado de uma expres-
so condicional. Podemos, dessa forma, selecionar alternativas, dependendo de cri-
trios 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, im-
primir 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 va-
lor2, 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 pro-
grama que pea ao usurio dois nmeros inteiros, voc dever somar os dois nme-
ros 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. Ana-
lisar o resultado, para diminuir ou no antes de imprimir o resultado.
Dados de sada: imprimir o resultado da soma Se > 100 diminuir 10 Se-
no: 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 co-

locar um comando Incio antes dos comandos e o comando Fim aps os co-

mandos.

No comando SE (soma > 100); se a comparao for falsa, o valor da soma se-

r impresso. Como um comando somente, no caso o Escreva (), no ne-

cessrio o Incio e o Fim. Se preferir, poder usar, isso no causar proble-

mas.

Sempre devemos usar os comandos Incio e Fim se houver mais de um co-

mando 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 utili-

zar as duas barras: // e tudo o que for digitado ser ignorado.

A indentao do programa muito importante. Indentao e a forma arruma-

da 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 pro-

grama { }. O segundo bloco: o comando if.




4.2 SEGUNDO EXEMPLO SELEO SIMPLES

No algoritmo Selecao_Exemp2, temos o seguinte enunciado: Faa um pro-
grama que leia a idade de uma pessoa. Verifique se a pessoa pode ou no ter car-
teira 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 diri-
gir, 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





{




}

else

{




}


cout<< \n Sua idade :<< idade;

cout<< \n Voc j pode dirigir, mas primeiro precisar tirar a carteira;






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 pro-
grama 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), preci-

samos 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 compa-

rao do SE ( (sexo = M) ou (sexo = m) ) utilizamos o operador OU. Con-

forme j mencionamos: letras maisculas so diferentes das letras minscu-

las. Portanto, se o usurio digitar o F maisculo e o seu programa est tes-

tando 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 || . fundamen-

tal 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 aten-

o: toda vez que houver mais de um comando aps o if ou aps o else de-

vemos 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 de-

ver 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 rela-
cionado 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. Ob-
serve 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 op-
es 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 pro-
gramas, a forma mais fcil de achar o erro verificar condio por condio. Anali-
sando 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 digi-

tou outra coisa, portanto o outro SENO entra em ao e imprimimos a men-

sagem, 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) )

{


}

else

cout<< \n Sexo FEMININO;

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 i-
guais

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 44




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);




Fim.

SENO

Escreva (Estes valores no formam um tringulo);


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
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 resul-

tado, 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 des-

percebido 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 analisa-
dos:

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, po-
demos 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 co-
mando 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.

Comentrios:
Algoritmo Exemplo_Escolha





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, imprimi-

r a mensagem: Sexo FEMININO. Se a resposta no for F e for M, a men-

sagem 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 vrgu-

la. 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 in-

cio 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( );

}


Consideraes:




Programa Exemplo_Escolha.cpp

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 n-
meros 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.

Comentrio:
Algoritmo Mini_Calculadora

No programa no foi criado uma varivel para guardar o resultado das

operaes de clculo. Como simplesmente iremos somar os dois nme-

ros, 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( );

}


Comentrios:




Programa Mini_Calculadora.cpp

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 precisa-

mos 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 execu-

tados 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 vari-
veis 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 re-
petio 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 C++ Como funciona?
Enquanto < condio> Faa
Incio
comandos;
Fim;
while (x>b)
{ comandos;
}
O comando Enquanto primeiro a con-
dio analisada, se for verdadeira os
comandos sero executados.
Repita
Incio
comandos;
Fim;
At <condio>;
do
{
comandos;
}
while( x>b);
O comando Repita executa os coman-
dos e faz o teste na condio. Fica
repetindo at a condio ser verdadeira
para poder terminar.
Para varivel = valor_inicial At
valor_final Faa
Incio
comandos; Fim;
for (cont=1; cont<=100;
cont++)
{
comandos;
}
O comando Para incrementa, a varivel
de controle a partir do valor_inicial , at
que, esta atinja o valor_final. Aumen-
tando o valor da varivel de controle at
que o valor final seja alcanado. Execu-
tando os comandos a cada passagem.







Algoritmos
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 difi-
cilmente teremos somente um comando nessas estruturas de repeties. E no es-
quea 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 n-
mero 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. Ob-
serve 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.


Comentrios:
Algoritmo Repetir_com_Para

No algoritmo Repetir_com_Para, no precisamos pedir nenhum valor. O pro-

grama ir imprimir todos os nmeros de 1 at 100.

O funcionamento da varivel cont dentro do Para Faa: primeiro ela, a vari-

vel, recebe o valor um e este valor impresso na tela com o comando Escre-

va. 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 coman-

do 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 fi-

quem 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( );

}


Comentrio:




Programa Repetir_For.cpp

No C++ o comando Para Faa sofre algumas alteraes. A primeira que

somente escrevemos o for, a segunda que a condio tem trs partes, aon-

de: 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 co-
mandos por vrias vezes, sem sabermos ao certo a quantidade exata de vezes. Pa-
ra 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 re-
pentina 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 ze-
ro.
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 vari-

vel que servir para contar a quantidade de vezes que foram informadas as

idades. A cada passagem pelo comando, o contador receber mais um. A-

cumulador 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 inicia-

lizadas 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 coman-

do Repita, visto que o teste no fim do comando. Imagine se algum logo no primei-

ro 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 coman-

do 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 no-
vos 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 progra-

ma 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 u-
surio 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 co-
mando 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 64




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


Fim;
Fim.


Escreva ( Escolha Errada....);




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
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( );
}


Comentrios:



Programa Tabuada.cpp


O programa somente parece complexo. Conforme o que for digitado na vari-

vel 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 usu-

rio 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 preci-
sasse 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 e-
lemento 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 ve-
tor 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 nme-

ro que est dentro dos colchetes representa o ndice do vetor ou a posio dele.


vetor:numero[10]



1 2 3 4 5 6 7 8 9 10





Figura 5 - Vetor 1
ndices do vetor



Trabalhar com vetor, significa trabalhar com estruturas de repeties. O moti-

vo simples: trabalharemos com muitas variveis e deixaremos o trabalho mais pe-
sado 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 lingua-
gens, 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]



0 1 2 3 4 5 6 7 8 9





Figura 6 - Vetor 2
ndices do vetor



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 me-
nor 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.


Comentrios:

Algoritmo Vetor_de_Notas

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, es-

taremos 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 vari-

vel 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 de-

cimais aps a vrgula.

O comando for (Para..Faa) essencial ao programa. ele que faz o traba-

lho 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 determi-
nado objetivo.



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

Programa Fonte: a passagem, traduo, do algoritmo para uma determina lin-
guagem 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 pro-
gramao.



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 pa-

ra 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 expres-
ses 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. Vo-

c 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.


Erros:
Algoritmo Procurando 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 pro-
grama 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 va-
lor da multiplicao que foram calculados antes.


































Algoritmos
SOCIESC Sociedade Educacional de Santa Catarina 76




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
SOCIESC Sociedade Educacional de Santa Catarina 77






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
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 analisa-
dos:

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



Fim;


Escreva ( Escolha Errada....);

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 83




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
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 m-
dia: , 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











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

(letras [ cont ] ) = u ) ) ENTO

quant =quant + 1;

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 Pau-
lo: 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 m-
dulo 1.So Paulo:McGraw-Hill, 1990.


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




































Algoritmos

Você também pode gostar