Escolar Documentos
Profissional Documentos
Cultura Documentos
Erlon Pinheiro
1/77
Programao de Computadores I Prof. Erlon Pinheiro
Noes de Lgica
Algoritmizando a Lgica
Conceitos e Exemplos de Algoritmos
Noes de Fluxos de Controle
Algoritmos
Exerccios de Fixao
1. Noes de Lgica
Lgica a arte de bem pensar, que a cincia das formas do pensamento. Visto
que a forma mais complexa do pensamento o raciocnio, a lgica estuda a correo
do pensamento.
Podemos tambm dizer que a lgica tem em vista a ordem da razo. Isto d entender
que a nossa razo pode funcionar desordenadamente. Por isso a lgica estuda e ensina
a colocar ordem no pensamento. Exemplos:
2/77
Programao de Computadores I Prof. Erlon Pinheiro
Exemplos:
A gaveta est fechada.
A caneta est dentro da gaveta.
Precisamos primeiro abrir a gaveta para depois pegar a caneta.
Algo similar ocorre com a Lgica de Programao, que pode ser concebida pela mente
treinada e pode ser representada em qualquer uma das inmeras linguagens de
programao existentes. Para escapar dessa torre de Babel (detalhes das diversas
linguagens de programao), e ao mesmo tempo, representar mais fielmente o
raciocnio da Lgica de Programao, utilizamos os Algoritmos.
3/77
Programao de Computadores I Prof. Erlon Pinheiro
4. O QUE UM ALGORITMO?
Um algoritmo pode ser definido como uma seqncia de passos que visam atingir um
objetivo bem definido.
5. ALGORITMIZANDO A LGICA
Outra importncia da construo dos algoritmos que, uma vez concebida uma soluo
algortmica para um problema, esta pode ser traduzida para qualquer linguagem de
programao. Costumamos denominar esse processo de codificao.
Vamos a um Exemplo?
Algoritmo 1.1
pegar uma escada;
posicionar a escada embaixo da lmpada;
buscar uma lmpada nova;
subir na escada;
retirar a lmpada velha;
colocar a lmpada nova.
4/77
Programao de Computadores I Prof. Erlon Pinheiro
O algoritmo tem um objetivo bem definido: trocar uma lmpada. Porm, e se a lmpada
no estivesse queimada?
Algoritmo 1.2
pegar uma escada;
posicionar a escada embaixo da lmpada;
buscar uma lmpada nova;
acionar o interruptor;
se a lmpada no acender, ento
subir na escada;
retirar a lmpada velha;
colocar a lmpada nova.
Agora estamos ligando algumas aes condio lmpada no acender, ou seja, se esta
condio for verdadeira (lmpada queimada) efetuaremos a troca da lmpada, seguindo
as prximas aes:
subir na escada;
retirar a lmpada velha;
colocar a lmpada nova.
Se a condio lmpada no acender for falsa (a lmpada est funcionando), as aes
relativas troca da lmpada no sero executadas, e a lmpada (que est em bom
estado) no ser trocada.
O algoritmo est correto, visto que atinge seu objetivo, porm, pode ser melhorado,
uma vez que buscamos uma escada e uma lmpada sem saber se sero necessrias.
Algoritmo 1.3
acionar o interruptor;
se a lmpada no acender, ento
pegar uma escada;
posicionar a escada embaixo da lmpada;
buscar uma lmpada nova;
subir na escada;
retirar a lmpada velha;
colocar a lmpada nova.
5/77
Programao de Computadores I Prof. Erlon Pinheiro
Algoritmo 1.4
acionar o interruptor;
se a lmpada no acender, ento
pegar uma escada;
posicionar a escada embaixo da lmpada;
buscar uma lmpada nova;
subir na escada;
retirar a lmpada velha;
colocar a lmpada nova.
se a lmpada no acender, ento
retirar a lmpada queimada;
colocar outra lmpada nova;
se a lmpada no acender, ento
retirar a lmpada queimada;
colocar outra lmpada nova;
.
.
.
At quando ???
Notamos que o Algoritmo 1.4 no est terminado, faltou especificar at quando ser
feito o teste da lmpada. As aes cessaro quando conseguirmos colocar uma lmpada
que acenda; caso contrrio, ficaremos testando indefinidamente.
6/77
Programao de Computadores I Prof. Erlon Pinheiro
Podemos, ento, expressar uma repetio de ao sem repetir o texto que representa a
ao, assim como determinar um limite para tal repetio, com o objetivo de garantir
uma condio de parada, ou seja, que seja cessada a atividade de testar a lmpada nova
quando esta j estiver acesa. Uma soluo seria:
Algoritmo 1.5
acionar o interruptor;
se a lmpada no acender, ento
pegar uma escada;
posicionar a escada embaixo da lmpada;
buscar uma lmpada nova;
subir na escada;
retirar a lmpada velha;
colocar a lmpada nova.
enquanto a lmpada no acender, faa
retirar a lmpada queimada;
colocar outra lmpada nova;
7/77
Programao de Computadores I Prof. Erlon Pinheiro
Algoritmo 1.6
acionar o interruptor do primeiro soquete;
se a lmpada no acender, ento
pegar uma escada;
posicionar a escada embaixo da lmpada;
buscar uma lmpada nova;
subir na escada;
retirar a lmpada velha;
colocar a lmpada nova.
enquanto a lmpada no acender, faa
retirar a lmpada queimada;
colocar outra lmpada nova;
acionar o interruptor do segundo soquete;
se a lmpada no acender, ento
pegar uma escada;
posicionar a escada embaixo da lmpada;
.
.
acionar o interruptor do terceiro soquete;
se a lmpada no acender, ento
.
.
acionar o interruptor do dcimo soquete;
.
.
8/77
Programao de Computadores I Prof. Erlon Pinheiro
Algoritmo 1.7
ir at o interruptor do primeiro soquete.
enquanto a quantidade de soquetes testados for menor ou igual que dez,
faa
acionar o interruptor do soquete;
se a lmpada no acender, ento
pegar uma escada;
posicionar a escada embaixo da lmpada;
buscar uma lmpada nova;
subir na escada;
retirar a lmpada velha;
colocar a lmpada nova.
enquanto a lmpada no acender, faa
retirar a lmpada queimada;
colocar outra lmpada nova;
ir at o interruptor do prximo soquete;
Quando a condio ( quantidade de soquetes testados for menor ou igual a dez ) for
verdadeira, as aes responsveis pela troca ou no de um nico soquete sero
executadas. caso a condio de parada seja falsa, ou seja, todos os dez soquetes j
tiverem sido trocados, nada mais ser executado.
9/77
Programao de Computadores I Prof. Erlon Pinheiro
Convm enfatizar mais uma vez que um algoritmo uma linha de raciocnio, que pode
ser descrito de diversas maneiras, de forma grfica ou textual.
As formas grficas so mais puras por serem mais fiis ao raciocnio original,
substituindo um grande nmero de palavras por convenes de desenhos. Para fins de
ilustrao mostraremos como ficaria o Algoritmo 1.7 representado graficamente em um
fluxograma tradicional (algoritmo 1.8) e em um Chapin (Algoritmo 1.9).
Algoritmo 1.8
10/77
Programao de Computadores I Prof. Erlon Pinheiro
Algoritmo 1.9
11/77
Programao de Computadores I Prof. Erlon Pinheiro
7. EXERCCIOS DE FIXAO
2 - Elabore um algoritmo que mova trs discos de uma Torre de Hani, que consiste em
trs hastes (a-b-c), uma das quais serve de suporte para trs discos de tamanhos
diferentes (1-2-3), os menores sobre os maiores. Pode-se mover um disco de cada vez
para qualquer haste, contanto que nunca seja colocado um disco maior sobre um
informaes:
3 discos
3 hastes
aes:
movimentar um disco de cada vez de forma que fiquem ordenado
resultado:
discos transferidos e ordenados para outra haste
12/77
Programao de Computadores I Prof. Erlon Pinheiro
3. Trs jesutas e trs canibais precisam atravessar um rio; para tal, dispem de um
barco com capacidade para duas pessoas. Por medidas de segurana no se permite que
em alguma margem a quantidade de jesutas seja inferior de canibais. Qual a
seqncia de passos que permitiria a travessia com segurana?
informaes:
3 jesutas
3 canibais
1 barco com capacidade para 2 pessoas
aes:
atravessar o rio com segurana
resultado:
3 jesutas e 3 canibais na outra margem do rio (B)
13/77
Programao de Computadores I Prof. Erlon Pinheiro
Informao a matria-prima que faz com que seja necessria a existncia dos
computadores, pois eles so capazes de manipular e armazenar um grande volume de
dados com alto desempenho, liberando o homem para outras tarefas onde o seu
conhecimento indispensvel.
Numrico
Exemplos:
Vejamos algumas proposies declarativas comuns, em que usado o tipo inteiro:
Enfatizando o conceito de dado, vale observar, por exemplo, o item: 8 um dado do tipo
inteiro e a informao associar que 8 o nmero de degraus da escada.
Real
Os nmeros reais podem ser positivos ou negativos e possuem parte decimal.
Exemplos:
a) Ela tem 1.73 metro de altura.
b) Meu saldo bancrio de 215.20.
c) No momento estou pesando 82.5 kg.
Observao: Nas linguagens de programao a separao entre a parte inteira e a parte
decimal de um nmero feita pelo ponto (.), e a simples presena do ponto j significa
que um nmero real.
14/77
Programao de Computadores I Prof. Erlon Pinheiro
Literal ou Caractere
So dados formados por caracteres (um ou mais). Esses caracteres podem ser as letras
maisculas, as letras minsculas, os nmeros e os caracteres especiais (&, #, @, ?, +).
Exemplos:
a) Escolha o sexo: M ou F.
b) Constava na prova: Use somente a caneta!;
c) Parque municipal estava repleto de placas: No pise na grama.
d) Nome do vencedor Felisberto Laranjeira.
2. CONSTANTES
3. VARIVEL
Exemplos:
A cotao do dlar, o peso de uma pessoa, o ndice da inflao.
Quando fazemos um programa, este normalmente recebe dados, os quais precisam ser
armazenados no computador para que possam ser utilizados no processamento; esse
armazenamento feito na memria.
Area = r2
Area 3.14159 * (raio*raio)
15/77
Programao de Computadores I Prof. Erlon Pinheiro
4. DECLARAO DE VARIVEIS
5. FORMAO DE IDENTIFICADORES
Os identificadores so os nomes das variveis utilizadas nos algoritmos.
16/77
Programao de Computadores I Prof. Erlon Pinheiro
NOTA1
MATRICULA
nota_1
dia
IDADE
6. DECLARAO DE VARIVEIS
As declaraes de variveis so obrigatrias para validar os identificadores. Todas as
variveis devem ser includas em uma nica declarao da forma:
tipo lista de variveis;
tipo lista de variveis;
Onde tipo representa o conjunto de valores que podemos atribuir a essas variveis e as
listas de variveis so os identificadores das variveis do mesmo tipo separados por
vrgulas.
7. TIPOS DE VARIVEIS
Exemplos das declaraes de variveis:
8. COMENTRIOS
Exemplos de comentrios:
inteiro num; // varivel inteira para guardar o n de alunos
real nota_1, nota_2; /* Variveis reais que sero utilizadas para armazenar as duas
notas do aluno. */
17/77
Programao de Computadores I Prof. Erlon Pinheiro
9. Operaes aritmticas:
+ Adio
- Subtrao
* Multiplicao
/ Diviso inteira e diviso real
% Resto da diviso
X + Y => 10 X / Y => 2
X - Y => 4 Y / X => 0
Y - X => - 4 Y % X => 3
X * Y => 21 X % Y => 1
X / 2.0 = 3.5 Y / 3.0 => 1.0
Exemplo:
X + Y Z => (X + Y) Z
X * Y % Z => (X * Y) % Z
Exemplo:
A + B * C => A + (B * C)
Para forar a precedncia usamos os parnteses => (A + B) * C
10. Potenciao e Radiciao
Usaremos inicialmente duas funes matemticas predefinidas para calcular a
potenciao e a radiciao.
Prioridades
18/77
Programao de Computadores I Prof. Erlon Pinheiro
Prioridade Operadores
1 parnteses mais internos
2 pot rad
3 * / % (mod em portugol)
4 + -
Exemplos:
Portugol C
A 2; A = 2;
B 3; B = 3;
C A + B; C = A + B;
19/77
Programao de Computadores I Prof. Erlon Pinheiro
inteiro A,D;
real B, C;
A 0;
A A + 1;
D B;
C + 1 B + C;
C 3.5;
D 2*C +6*6*2 - 3 * 4;
Exemplo: Considere I1 e I2 variveis do tipo inteiro, R do tipo real com valores 10,
20, 4.5 respectivamente;
Note que o valo r lgico de uma expresso lgica e (&&) verdadeira somente
se ambas as partes forem verdadeiras. Caso contrrio, o valor lgico ser falso.
Por outro lado, o valor lgico de uma expresso lgica ou (||) falso somente se
ambas as partes forem falsas. Caso contrrio, o valor lgico ser verdadeiro.
20/77
Programao de Computadores I Prof. Erlon Pinheiro
Construo de tabela-verdade
21/77
Programao de Computadores I Prof. Erlon Pinheiro
Z 1;
escreva(Digite um valor inteiro: );
leia(X);
escreva(X, ELEVADO AO CUBO = , X*X*X);
escreva(Digite outro valor inteiro: );
leia(Y);
escreva(A soma e: , X+Y);
Z Z + 1;
X (Y + X) % 2;
escreva(O valor final da expressao e: , X);
....
fim.
Exerccios de Fixao II
22/77
Programao de Computadores I Prof. Erlon Pinheiro
3 Supondo que as variveis Nota_A, Nome_A, NMat sejam utilizadas para armazenar a
nota do aluno, o nome do aluno e o nmero da matrcula, declare-as corretamente,
associando o tipo bsico adequado ao dado que ser armazenado.
23/77
Programao de Computadores I Prof. Erlon Pinheiro
10 - Dadas as declaraes:
inteiro NUM;
real SOMA, X;
caractere SIMBOLO;
24/77
Programao de Computadores I Prof. Erlon Pinheiro
( ) aula
( ) 3/1
Z 1.5;
escreva(Digite um valor inteiro: );
leia(X;
escreva(X, ELEVADO AO CUBO = , X*X*X);
escreva(Digite outro valor inteiro: )
leia(Y);
escreva(A soma e: , X+Y);
Z + 3 Z + 1;
X (Y + X) / 5.0;
escreva(O valor final da expressao e: X);
fim
25/77
Programao de Computadores I Prof. Erlon Pinheiro
1. Introduo
Usaremos um exemplo simples para compreendermos como a formalizao
em uma linguagem artificial importante.
Exemplo Inicial
Suponha que o algoritmo leia dois nmeros que o usurio do computador digitar no
teclado, some-os e mostre o resultado na tela do computador.
1a soluo: (Narrativa informal)
1. Leia do teclado dois valores
2. Some os dois valores
3. Mostre o resultado da soma na tela
26/77
Programao de Computadores I Prof. Erlon Pinheiro
algoritmo <identificador>;
nicio
const <tipo> <identificador> <dado>;
<tipo> <identificador>;
<comando1>;
...
<comandon>;
fim.
algoritmo media_final_v2;
incio
real nota1, nota2, nota3, nota4, soma, media;
Exerccios Resolvidos:
RESOLUO:
algoritmo volume_paralelepipedo;
incio
inteiro largura, comprimento, altura;
escreva(Digite os valores para largura, comprimento e altura: );
27/77
Programao de Computadores I Prof. Erlon Pinheiro
algoritmo area_circunferencia;
incio
const real pi = 3.1416;
real raio, area;
//Entrada de dados
escreva(Digite o valor do raio: );
leia (raio);
//Processamento de dados
area pi * (raio*raio); // ou area pi * (pot(raio,2));
// Sada de dados
escreva (Area = , area) ;
fim.
3) Faa um algoritmo em Portugol que leia dois valores inteiros para as variveis A
e B e efetuar as operaes de adio, subtrao, multiplicao e diviso de A por B,
apresentando ao final os resultados obtidos.
Resoluo:
28/77
Programao de Computadores I Prof. Erlon Pinheiro
algoritmo operaes;
inicio
inteiro a, b, soma, sub, mult, divi;
//Entrada de dados
escreva(Digite dois valores inteiros: );
leia(a, b);
//Processamento de dados
soma a+b;
sub a - b;
mult a * b;
divi a/b;
//Sada de dados
escreva(a, + , b, = , soma);
escreva(a, - , b, = , sub);
escreva(a, * , b, = , mult);
escreva(a, / , b, = , divi);
fim.
//Entrada de dados
escreva(Digite um valor inteiro: );
leia(num);
29/77
Programao de Computadores I Prof. Erlon Pinheiro
fim.
algoritmo calcula_quadrado_v2;
inicio
inteiro num, quad;
//Entrada de dados
escreva(Digite um valor inteiro: );
leia(num);
//Processamento de dados
quad num*num;
//Sada de dados
escreva( num, ao quadrado e , quad);
fim.
algoritmo calcula_quadrado_v3;
inicio
inteiro num;
real quad;
//Entrada de dados
escreva(Digite um valor inteiro: );
leia(num);
//Processamento de dados
quad pot(num, 2);
//Sada de dados
escreva( num, ao quadrado e , quad);
fim.
30/77
Programao de Computadores I Prof. Erlon Pinheiro
31/77
Programao de Computadores I Prof. Erlon Pinheiro
fim.
6 - Ler dois valores para as variveis A e B, efetuar a troca de valores de forma que a
varivel A passe a possuir o valor da varivel B e que a varivel B passe a possuir o valor
da varivel A. Apresentar os valores trocados.
//Entrada de dados
32/77
Programao de Computadores I Prof. Erlon Pinheiro
9 - Faa um algoritmo que receba duas notas de um aluno e seus respectivos pesos,
calcule e imprima a mdia ponderada dessas notas.
Resoluo:
algoritmo media_ponderada;
inicio
real nota1, nota2, media_p;
inteiro peso1, peso2;
//Entrada de dados
escreva(Digite as duas notas: );
leia(nota1, nota2);
escreva(Digite os pesos: );
leia(peso1, peso2);
//Processamento de dados
media_p (nota1*peso1 + nota2*peso2)/(peso1+peso2);
//Sada de dados
escreva(A media ponderada e , media_p);
fim.
Rastreamento
Memria Tela
Digite as duas notas: 7 8 <Enter>
nota1: 7.0 Digite os pesos: 1 2 <Enter>
nota2: 8.0 A media ponderada e 7.6666
media_p: 7.6666
peso1: 1
peso2: 2
33/77
Programao de Computadores I Prof. Erlon Pinheiro
algoritmo aplicacao_financeira;
inicio
real deposito, taxa, rend, valor_final;
//Entrada de dados
escreva(Digite o valor do deposito: );
leia(deposito);
escreva(Digite o valor da taxa de juros: );
leia(taxa);
//Processamento de dados
rend deposito * (taxa/100);
valor_final deposito + rend;
//Sada de dados
escreva(O valor do rendimento e: , rend);
escreva(O valor final com o rendimento e : , valor_final);
fim.
Faa o rastreamento
algoritmo tabuada;
inicio
inteiro num;
//Entrada de dados
escreva(Digite um numero para a tabuada: );
leia(num);
//Processamento e sada de dados
escreva(A tabuada de multiplicao do numero , num);
escreva(num , * 1 = , num);
escreva(num , * 2 = , 2*num);
escreva(num , * 3 = , 3*num);
escreva(num , * 4 = , 4*num);
escreva(num , * 5 = , 5*num);
escreva(num , * 6 = , 6*num);
escreva(num , * 7 = , 7*num);
34/77
Programao de Computadores I Prof. Erlon Pinheiro
escreva(num , * 8 = , 8*num);
escreva(num , * 9 = , 9*num);
escreva(num , * 10 = , 10*num);
fim.
Rastreamento
Memria Tela
Digite um numero para a tabuada: 2 <Enter>
num: 2 2* 1=2
2* 2=4
2* 3=6
2* 4=8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
2 * 10 = 20
12 - Faa um algoritmo que receba um nmero real, calcule e imprima o valor referente
ao volume do cubo que tenha este nmero real como lado.
algoritmo reajuste_salarial;
inicio
35/77
Programao de Computadores I Prof. Erlon Pinheiro
//Entrada de dados
escreva(Digite o valor do salario: );
leia(salario);
//Processamento de dados
novo_sal salario * (reaj/100) + salario;
//Sada de dados
escreva(O valor do salario reajustado e: , novo_sal);
fim.
18 - Faa um algoritmo que receba o peso de uma pessoa, um valor inteiro, calcule e
imprima:
o peso dessa pessoa em gramas;
se essa pessoa engordar 5%, qual ser seu novo peso em gramas.
36/77
Programao de Computadores I Prof. Erlon Pinheiro
1. Seleo Simples
Quando precisamos testar certa condio antes de executar uma ao, usamos uma
seleo simples, que segue o seguinte modelo:
se (<condio>) ento
Comando; // comando nico
<condio> uma expresso lgica que, quando inspecionada, pode gerar um resultado
falso ou verdadeiro.
Atravs do exemplo anterior, observamos que, quando existir apenas uma ao aps a
clusula, ento basta escrev-la; j quando precisamos colocar diversas aes
necessrio usar um bloco, delimitado por incio e fim conforme o seguinte modelo:
se (<condio>) ento
incio
Comando-1;
Comando-2;
...
Comando-n;
fim;
Exemplo:
37/77
Programao de Computadores I Prof. Erlon Pinheiro
algoritmo exemplo1;
inicio
real n1, n2, n3, m;
escreva(DIGITE TRS NOTAS: );
leia(n1, n2, n3);
m (n1 + n2 + n3) / 3;
se ( m >= 7 ) ento
inicio
escreva(APROVADO);
escreva(MDIA = ,m);
fim;
fim.
2. Seleo Composta
Quando tivermos situaes em que duas alternativas dependem de uma mesma
condio, uma da condio ser verdadeira e outra da condio ser falsa, usamos a
estrutura de seleo composta. Supondo que um conjunto de aes dependa da
avaliao verdadeira uma nica ao primitiva dependa da avaliao falsa, usaremos
uma estrutura de seleo semelhante ao seguinte modelo:
se (<condio>) ento
incio
Comando-1;
Comando-2;
....
Comando-n;
fim;
seno
inicio
Comando-z1;
Comando-z2;
fim;
38/77
Programao de Computadores I Prof. Erlon Pinheiro
algoritmo exemplo02;
inicio
inteiro num1, num2;
escreva(Digite dois valores inteiros: );
leia(num1, num2);
se (num1 == num2) ento
escreva(NMEROS IGUAIS);
seno
escreva(NMEROS DIFERENTES);
fim.
39/77
Programao de Computadores I Prof. Erlon Pinheiro
3. Seleo Encadeada
40/77
Programao de Computadores I Prof. Erlon Pinheiro
41/77
Programao de Computadores I Prof. Erlon Pinheiro
Exerccios de Fixao IV
1. Faa um algoritmo para ler trs valores numricos inteiros distintos e determinar o
menor deles.
Rastreamento
Memria Tela
sexo: F Digite seu sexo (M ou F ): F <Enter>
idade: 27 Digite sua idade: 27 <Enter>
Atingiu a maioridade!
sexo: f Digite seu sexo (M ou F ): f <Enter>
idade: 15 Digite sua idade: 15 <Enter>
Nao atingiu a maioridade.
sexo: M Digite seu sexo (M ou F ): M <Enter>
idade: 28 Digite sua idade: 28 <Enter>
Atingiu a maioridade!
sexo: m Digite seu sexo (M ou F ): m <Enter>
idade: 14 Digite sua idade: 14 <Enter>
Nao atingiu a maioridade.
sexo: $ Digite seu sexo (M ou F ): $ <Enter>
idade: 2 Digite sua idade: 2 <Enter>
Sexo invalido.
42/77
Programao de Computadores I Prof. Erlon Pinheiro
algoritmo ex03;
incio
se (b1) ento
incio
c1;
fim
seno
incio
se (b2) ento
incio
se (b3) ento
incio
c2;
fim
seno
incio
c3;
c4;
fim
fim;
c5;
fim;
fim.
4. Faa um algoritmo que leia dois nmeros, some-os e imprima o resultado caso a soma
seja maior que 10.
5. Faa um algoritmo que leia um nmero inteiro e imprima a mensagem Nmero par!
caso ele seja divisvel por 2.
6. Faa um algoritmo que leia 2 nmeros inteiros para as variveis A e B. Caso A seja
maior que B e B seja par, efetue a troca dos valores de forma que a varivel A passe a
conter o valor da varivel B e, a varivel B passe a conter o valor da varivel A.
43/77
Programao de Computadores I Prof. Erlon Pinheiro
7. Faa um algoritmo que leia um nmero inteiro positivo e imprima uma mensagem
dizendo se ele par ou impar.
8. Faa um algoritmo que leia dois valores numricos inteiros e distintos. Apresente a
diferena do maior pelo menor na tela.
10. Dado o algoritmo abaixo responda qual o valor de Result aps a sua execuo?
algoritmo valor_final;
incio
real num1;
inteiro num2, result;
num1 1.5;
num2 3;
num1 num1 + 1;
se ( (num1+2<= num2) ou ((num1 + num2 > 5) ou (no (num1+pot(num2,2) / num1 + num2>=4 ))) ento
inicio
result 0;
fim;
seno
inicio
result 1;
fim;
fim.
11. Faa um algoritmo que leia dois valores numricos e imprima o maior. Caso os
nmeros sejam iguais imprima a mensagem Nmeros iguais!.
12. Faa um algoritmo que leia trs nmeros distintos e imprima o maior.
44/77
Programao de Computadores I Prof. Erlon Pinheiro
14. Faa um algoritmo que efetue a leitura de trs valores numricos reais distintos e
apresente os valores lidos em ordem crescente.
algoritmo resultado;
45/77
Programao de Computadores I Prof. Erlon Pinheiro
incio
/* declarao de variveis */
inteiro num;
leia ( num);
se (num > 0) ento
escreva (numero positivo)
seno
se (num < 0) ento
escreva (numero negativo)
seno
escreva (zero);
fim.
18. Uma empresa decide dar um aumento de 4% aos funcionrios cujo salrio inferior
a 500 reais. Escreva um algoritmo que receba o salrio de um funcionrio e imprima o
valor do salrio reajustado ou uma mensagem caso o funcionrio no tenha direito ao
aumento.
19. Faa um algoritmo que verifique a validade de uma senha fornecida pelo usurio. A
senha correta o nmero: 12345. O algoritmo deve imprimir mensagem de permisso ou
negao de acesso.
20. Faa um algoritmo que receba a idade de uma pessoa e imprima mensagem de
maioridade ou no. Assuma que a maioridade ocorre somente aos 21 anos.
21. Faa um algoritmo que receba a altura e o sexo de uma pessoa, calcule e imprima o
seu peso ideal, utilizando as frmulas abaixo. Assuma M ou F como sendo os valores
vlidos para o sexo de uma pessoa.
para homens: (72.7 * ALTURA) 58
para mulheres: (62.1 * ALTURA) 44.7
46/77
Programao de Computadores I Prof. Erlon Pinheiro
escolha(X)
inicio
caso V1 : C1; pare;
caso V2 : C2; pare;
caso V3 : C3; pare;
caso V4 : C4;
fim;
Caso o contudo da varivel seletora X seja igual ao valor Vn, ento, o comando Cn ser
executado; caso contrrio, sero inspecionados os outros casos at ser encontrada uma
igualdade ou terminarem os caso.
Para executramos um comando que possui mais de um valor em que se verifica sua
necessidade, agrupamos todos esses valores em nico caso. E, para executarmos um
comando que se verifica com todos os outros valores, exceto os discriminados caso a
caso, inclumos outra situao: caso contrrio.
escolha(X)
inicio
caso V1 : C1; pare;
caso V2: caso V3 : C2; pare;
caso V4 : C3; pare;
caso V5 : C4; pare;
caso contrrio: C5;
fim;
47/77
Programao de Computadores I Prof. Erlon Pinheiro
Exemplos
1 Construa um programa que leia um valor numrico inteiro e uma opo de operao
( 1 Raiz Quadrada, e 2 Valor ao Quadrado) a qual o nmero deve ser submetido.
algoritmo exemplo_01;
inicio
inteiro num, op;
real resultado;
escreva(Digite o valor inteiro: );
leia(num);
escreva(Escolha uma opo: );
escreva(1: Raiz ou 2: Quadrado: );
leia(op);
escolha(op)
inicio
caso 1: resultado rad(num); pare;
caso 2: resultado pot(num, 2);
fim;
escreva(O resultado , resultado);
fim.
Outra verso:
algoritmo exemplo_01_v2;
inicio
inteiro num, op;
escreva(Digite o valor inteiro: );
leia(num);
escreva(Escolha uma opo: );
escreva(1: Raiz ou 2: Quadrado: );
leia(op);
escolha(op)
inicio
caso 1: escreva( O resultado ,rad(num));
pare;
caso 2: escreva(O resultado ,pot(num, 2));
pare;
caso contrrio: escreva(Opo Invlida!!!!);
fim;
fim.
48/77
Programao de Computadores I Prof. Erlon Pinheiro
algoritmo exemplo_02;
inicio
caractere car;
escreva(Digite um caractere: );
leia(car);
escolha (car)
inicio
caso A: caso E: caso I: caso O: casoU: escreva(Vogal maiscula);
pare;
caso 0: caso 1: caso 2: caso 3: caso 4: caso 5: caso 6:
caso 7: caso 8: caso 9: escreva(Valor numrico);
pare;
caso +: caso -: caso *: caso /: escreva(Operador aritmtico);
pare;
caso contrrio : escreva(Voc digitou outro caractere);
fim;
fim.
Exerccios de Fixao V
0000000
49/77
Programao de Computadores I Prof. Erlon Pinheiro
fim.
2. Leia um caractere e imprima a mensagem uma vogal!, caso o caractere lido seja
uma vogal. Caso contrrio imprima O caractere lido no uma vogal!.
Resoluo:
algoritmo acha_vogal;
inicio
caractere car;
//Entrada de dados
escreva(Digite um caractere: );
leia( car );
//Processamento e saida de dados
escolha( car )
inicio
caso A: caso a: caso E: caso e: caso O: caso o: caso U: caso u:
caso I: caso i: escreva( O caracter e uma vogal!);
pare;
caso contrario: escreva(O caractere lido no e uma vogal!);
fim;
fim.
5. Leia uma data (dia, ms e ano) em valores numricos e a imprima por extenso como
mostrado no exemplo abaixo:
Lido: 21 04 1970
Escrito: 21 de abril de 1970
50/77
Programao de Computadores I Prof. Erlon Pinheiro
7. Faa um algoritmo que receba um cdigo de origem (nmero inteiro) e imprima a sua
procedncia. A procedncia obedece tabela abaixo. Caso um cdigo invlido seja digitado
imprima uma mensagem de erro.
algoritmo identifica_regiao;
inicio
inteiro codigo;
//Entrada de dados
escreva( Digite o codigo da regio: );
leia(codigo);
//Processamento e sada de dados
escolha( codigo )
inicio
caso 1: escreva(Procedencia: Regiao Sul);
pare;
caso 2: escreva(Procedencia: Regiao Norte);
pare;
caso 3: escreva(Procedencia: Regiao Leste);
pare;
caso 4: escreva(Procedencia: Regiao Oeste);
pare;
caso 5: caso 6: escreva(Procedencia: Regiao Nordeste);
pare;
caso 7: caso 8: caso 9: escreva(Procedencia: Regiao Sudeste);
51/77
Programao de Computadores I Prof. Erlon Pinheiro
pare;
caso contrrio: se ( (codigo>=10)&&(codigo<=20)) ento
escreva(Procedencia: Regiao Centro-Oeste);
seno
se (( codigo>=21)&&(codigo<=30))
escreva(Procedencia: Regiao Nordeste);
seno
escreva(Codigo invalido);
fim //escolha
fim.//do algoritmo
52/77
Programao de Computadores I Prof. Erlon Pinheiro
10. Uma companhia de seguros tem trs categorias de seguros baseadas na idade e
ocupao do segurado. Somente pessoas com pelo menos 18 anos e no mais de 70 anos
podem adquirir aplices de seguros. As classes de ocupaes foram definidas em trs
grupos de risco. A tabela a seguir fornece as categorias em funo da faixa de idade e do
grupo de risco:
Faa um algoritmo que receba a idade (um nmero inteiro) e o grupo de risco
(representados pelos caracteres: `b`: baixo`; `m`: mdio ou `a`: alto) e determine e
imprima o cdigo do seguro.
53/77
Programao de Computadores I Prof. Erlon Pinheiro
i 1;
escreva( Nmeros inteiros de 1 at , maior, : );
enquanto ( i <= maior) faa
incio
54/77
Programao de Computadores I Prof. Erlon Pinheiro
escreva (i, );
i i + 1;
fim;
fim.
Exemplo 2: Ler uma seqncia de salrios terminada por um salrio menor que
zero. Para cada salrio, mostrar o novo salrio reajustado e, ao final, a mdia dos
salrios reajustados. O valor do reajuste deve ser lido no incio do algoritmo.
algoritmo mediasalarial;
incio
real salario, reajuste, novo_sal, tot_reaj, media;
inteiro num_sal;
tot_reaj 0;
num_sal 0;
escreva (Entre com o reajuste : );
leia (reajuste);
escreva (Entre com o salrio ou salrio negativo para parar: );
leia (salario);
enquanto ( salario > 0) faa
incio
novo_sal salario + (salario * reajuste) / 100;
tot_reaj tot_reaj + novo_sal;
num_sal num_sal + 1;
escreva (Salrio reajustado: , novo_sal);
escreva (Entre com o salrio ou salrio negativo para parar: );
leia (salario);
fim;
se (num_sal > 0) ento
incio
media tot_reaj / num_sal;
escreva (Mdia dos salrios = , media);
fim;
seno
escreva (No existem dados a serem processados);
fim.
55/77
Programao de Computadores I Prof. Erlon Pinheiro
Exemplo 3: Ler uma seqncia de vogais terminada por ponto e exibir os totais de
vogais e no vogais encontradas.
Resoluo:
algoritmo conta_vogal;
incio
const caractere fim = .;
caractere car;
inteiro cont_a, cont_e, cont_i, cont_o, cont_u, outros;
56/77
Programao de Computadores I Prof. Erlon Pinheiro
Para realizar uma repetio com teste no final, utilizamos a estrutura faa enquanto,
que permite que o bloco ou ao primitiva seja repetido enquanto uma determinada
condio seja verdadeira. O modelo genrico desse tipo de repetio o seguinte:
faa
incio
<comando1>;
<comando2>;
...
<comandon>;
fim;
enquanto(<Condio>);
57/77
Programao de Computadores I Prof. Erlon Pinheiro
Exemplo 5: Mostrar os nmeros inteiros de 1 a 10, sendo que para cada nmero
mostrado o algoritmo deve aguardar que sejam pressionadas a tecla C e ENTER para
continuar.
algoritmo numeros;
incio
const inteiro maior = 10;
inteiro i ;
caractere tecla ;
i 1;
escreva( Os nmeros inteiros de 1 a 10:);
faa
inicio
escreva (i);
i i+ 1;
faa
inicio
escreva (tecle [C] para continuar);
leia (tecla);
fim;
enquanto ((tecla != c ) e (tecla != C));
fim;
enquanto (i <= maior);
fim.
Nas estruturas de repetio vistas at agora, ocorrem casos em que se torna difcil
determinar o nmero de vezes em que o bloco de comandos ser executado.
Sabemos que ele ser executado enquanto uma condio for satisfeita. A estrutura
para diferente, j que sempre repete a execuo do bloco de comandos um nmero
determinado de vezes, pois ela no prev uma condio e possui limites fixos.
Modelo genrico:
para (< inicializao da var> ; <condio de repetio> ; <incremento da var>)
incio
<comando1>;
<comando2>;
...
<comandon>;
fim;
O comando para utilizado quando se deseja executar uma seqncia de comando
repetidamente, um nmero conhecido e fixo de vezes.
O nmero de vezes controlado pela varivel de controle <var>. Na primeira parte <
inicializao da var> inicializa a varivel de controle quando o comando executado
pela primeira vez. A segunda parte <condio de repetio> testa se a repetio deve
58/77
Programao de Computadores I Prof. Erlon Pinheiro
59/77
Programao de Computadores I Prof. Erlon Pinheiro
02. Escreva um algoritmo que receba a idade de um grupo de pessoas, calcule e imprima
a porcentagem de cada faixa etria em relao ao total de pessoas.
04. Faa um algoritmo que apresente um menu de opes (apresentado abaixo) para o
clculo das operaes entre dois nmeros reais lidos previamente:
Programa Calculadora
[1] adio
[2] subtrao
[3] multiplicacao
[4] diviso
[5] sair do programa
60/77
Programao de Computadores I Prof. Erlon Pinheiro
L ou l - limpeza
A ou a - alimentao
H ou h - higiene
Calcule e imprima:
total vendido naquele dia, com todos os cdigos juntos;
total vendido naquele dia em cada um dos cdigos.
Para encerrar a entrada de dados, digite o valor da mercadoria zero.
61/77
Programao de Computadores I Prof. Erlon Pinheiro
02. Faa um algoritmo que receba a idade e a altura de vrias pessoas, calcule e imprima
a mdia das alturas das pessoas com mais de 50 anos. Para encerrar a entrada de dados,
digite idade <= zero.
62/77
Programao de Computadores I Prof. Erlon Pinheiro
02. A converso de graus Farenheit para Centgrados obtida por C = (5/9.0) * (F - 32).
Faa um algoritmo que calcule e escreva uma tabela de graus Centgrados e os graus
Farenheit, que variam de 50 a 65 de 1 em 1.
03. Faa um algoritmo que receba a idade e o estado civil : C - casado, S - solteiro, V -
vivo e D - desquitado, de 10 pessoas. Calcule e imprima:
algoritmo tabuada;
inicio
inteiro i, num;
//Entrada de dados
escreva(Digite um numero para a tabuada: );
leia(num);
//Processamento e sada de dados
escreva(A tabuada de multiplicao do numero , num, : );
para ( i 1; i <= 10; i i + 1 )
escreva(num , * , i, = ,i * num);
fim.
Rastreamento
Memria Tela
i: 1, 2, 3, 4, 5, 6, 7, Digite um numero para a tabuada: 2 <Enter>
8, 9, 10, 11 2* 1=2
num: 2 2* 2=4
2* 3=6
2* 4=8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
63/77
Programao de Computadores I Prof. Erlon Pinheiro
2 * 9 = 18
2 * 10 = 20
Exerccios de Fixao VI
1. Faa um algoritmo que imprima todos os nmeros inteiros no intervalo [0, 100].
6. Faa um algoritmo que leia uma seqncia de nmeros inteiros positivos (um por
vez), e verifique se eles so pares ou impares.
Obs: - Use uma marca (um flag) para a sada do comando de repetio, uma vez que o nmero
de repeties no conhecido.
7. Seja S = 2, 3, 5, 8, 13, 21, 34, 55, ... um exemplo de uma srie de Fibonacci.
Perceba que o padro de comportamento desta srie tal que cada nmero a partir
do terceiro a soma dos dois anteriores. Escreva um algoritmo que gere uma srie
de Fibonacci at o n-simo termo, onde n ser um valor lido.
Dica: - leia os dois primeiros termos.
Resoluo:
algoritmo serie_fibonacci;
inicio
64/77
Programao de Computadores I Prof. Erlon Pinheiro
10. Faa um algoritmo para calcular o valor da equao abaixo. Onde o valor de n ser
lido.
n
2
S = 6 k
k =1
11. Faa um algoritmo que leia um conjunto de 30 matrculas dos vendedores de uma
firma comercial, juntamente com os respectivos totais de vendas dirias e verifique
quantos deles esto na faixa compreendida entre R$500.00 e R$1500.00. Imprima
uma listagem contendo todas as matrculas das pessoas situadas no intervalo
especificado, bem como o total delas.
12. Faa um algoritmo que leia uma seqncia de N (o valor de N lido durante a
execuo do algoritmo) conjuntos de dados, cada conjunto contendo a conta do
correntista de uma caderneta de poupana e seu respectivo saldo mdio. Imprima:
65/77
Programao de Computadores I Prof. Erlon Pinheiro
a) o total de clientes bons, clientes que possuem o saldo mdio entre 500 e 1000
reais;
b) o total de clientes razoveis, clientes que possuem o saldo mdio menor 500 reais;
c) o nmero da conta com maior saldo mdio.
13. Faa um algoritmo que leia 80 nmeros reais, imprima o menor e o nmero de vezes
que ele aparece.
Resoluo:
algoritmo acha_e_conta_menor;
inicio
real num, menor;
inteiro vezes , i;
66/77
Programao de Computadores I Prof. Erlon Pinheiro
15. Faa um algoritmo que leia uma seqncia de dados contendo a matrcula e a
medida da altura dos funcionrios de uma empresa e imprima:
altura mdia dos funcionrios;
o total de funcionrios baixos (altura inferior a 1.55 m); e
o total de funcionrios de altura mediana (1.55m <= Altura <= 1.75m).
Obs: - utilize uma marca (um flag) para indicar o final da entrada de dados.
Algoritmo correio_sentimental;
inicio
inteiro matricula, idade, cor_olhos, cor_cab;
real altura, peso;
caractere sexo;
faca
inicio
escreva(Digite a matricula ou matricula <= 0 para parar: );
leia(matricula);
se ( matricula > 0 )
inicio
escreva(Sexo (m ou f): );
leia(sexo);
escreva(Idade: );
leia(idade);
escreva(Altura e peso: );
leia(altura,peso);
escreva(Cor dos olhos: );
escreva(1. Azul ou 2. Castanho ou 3. Outros );
67/77
Programao de Computadores I Prof. Erlon Pinheiro
leia(cor_olhos);
escreva(Cor dos cabelos: );
escreva(1. Ruivos ou 2. Loiros ou 3. Outros );
leia(cor_cab);
se ( (sexo == F) ||(sexo==f))
se ( cor_cab == 1 )
se (cor_olhos == 1 )
se ( (altura>=1.65) && ( altura<=1.75))
se ( peso < 60)
escreva(A matricula e , matricula);
se ( (sexo == M) ||(sexo==m))
se ( cor_cab == 2 )
se (cor_olhos == 2 )
se ( altura>1.75)
se ( (peso >= 75) && ( peso <=95))
escreva(A matricula e , matricula);
fim//se matricula
fim
enquanto(matricula>0);
fim
17. Faa um algoritmo ser fornecido ao Detran para provimento das informaes
abaixo descritas, referentes a acidentes em estradas:
percentagem de motoristas no-habilitados;
percentagem de homens no volante; e
percentagem de motoristas inexperientes (menos de 20 anos).
Os dados de entrada contm o ano de nascimento, o sexo e o cdigo de habilitao dos
motoristas, sendo: Cdigo de Habilitao = 1 - motorista habilitado e Cdigo de
Habilitao = 2 - motorista no-habilitado.
Obs: - utilize uma marca (um flag) para indicar o final da entrada de dados.
18. Faa um algoritmo que teste a validade de uma senha digitada no teclado. A
digitao deve ser refeita at que a senha correta seja digitada ou o nmero de
tentativas seja maior que 5. A senha correta o nmero 12345.
68/77
Programao de Computadores I Prof. Erlon Pinheiro
19. Faa um algoritmo que tendo lido uma vogal minscula imprima sua
correspondente maiscula. Repita a leitura quantas vezes for necessrio at que
uma vogal maiscula seja digitada como entrada.
20. Faa um algoritmo que leia um nmero inteiro no intervalo [1, 12] e imprima o
nome do ms correspondente. Garanta que somente nmeros no intervalo [1, 12]
sero aceitos.
21. Faa um algoritmo que imprima a soma de todos os inteiros no intervalo [5, 30].
22. Faa um algoritmo que leia N notas, N lido, calcule e imprima a mdia aritmtica
entre elas.
24. Dada a srie 2 3 4 9 16 29 54 .... Faa um algoritmo que leia os trs primeiros
termos e em seguida imprima os prximos 20 termos.
25. Faa um algoritmo que leia o preo e o cdigo de 20 mercadorias presentes em uma
cesta bsica. Os cdigos obedecem tabela abaixo:
l ou L : limpeza
a ou A : alimentao
h ou H : higiene
Calcule e imprima:
- o preo total da cesta bsica; e
- para cada cdigo, o preo total das mercadorias presentes na cesta.
27. A converso de graus Farenheit para Celsius obtida por C = 5/9*(F-32). Faa um
algoritmo que calcule e escreva uma tabela de equivalncia entre graus Celsius e
graus Farenheit, com os valores variando de 1 em 1 de 50 a 65 graus Farenheit.
28. Uma empresa decidiu fazer um levantamento dos seus 500 funcionrios. Faa um
algoritmo que leia para cada funcionrio a idade, o sexo (F, f, m ou M), experincia
de mais de 3 anos no servio (S, s, n ou N). Calcule e escreva:
o nmero de funcionrios do sexo feminino;
o nmero de funcionrios do sexo masculino;
a idade mdia dos homens com mais de 3 anos de experincia no servio;
a porcentagem dos homens com mais de 45 anos entre o total de homens;
o nmero de mulheres com idade inferior a 35 anos com mais de 3 anos de
experincia; e
69/77
Programao de Computadores I Prof. Erlon Pinheiro
30. Faa um algoritmo que receba 2 notas de 10 alunos. Calcule para cada aluno sua
mdia e imprima uma mensagem de acordo com a tabela abaixo:
Mdia Mensagem
Abaixo de 3 Aluno Reprovado
Entre 3 e 7 Aluno de Recuperao
Maior ou igual a 7 Aluno Aprovado
70/77
Programao de Computadores I Prof. Erlon Pinheiro
Vetores
Tipos Estruturados
Variveis Compostas Homogneas
Variveis Compostas Unidimensionais VETORES
1. Vetores
Retornando ao conceito de informaes e tipos de informao, podemos notar que foi
feita uma diviso imaginria, a fim de tornar mais simples a classificao das
informaes. Talvez alguns j tenham notado que a quantidade de tipos de dados
primitivos no suficiente para representar toda e qualquer informao que possa
surgir. Portanto, em muitas situaes, esses recursos so escassos, o que poderia ser
suprido se existissem mais tipos de dados ou, ainda melhor, se esses tipos pudessem ser
construdos, criados, medida que se fizessem necessrios.
2. Tipos Estruturados
So organizaes de dados construdas a partir da composio dos tipos primitivos j
existentes (caractere, inteiro, real). Esses novos tipos podem armazenar um conjunto
de dados conhecidos como variveis compostas. As variveis que armazenam esses
tipos de dados podem ser classificadas em: variveis compostas homogneas e variveis
compostas heterogneas.
71/77
Programao de Computadores I Prof. Erlon Pinheiro
Exemplo:
real media[40];
ou usando uma constante:
media:
0 1 2 3 4 5 6 ... ... 39
8.0 7.0 5.5 9.5 6.4 9.9 1.0 4.8
algoritmo media_turma;
incio
inteiro cont ;
real n1, n2, n3, n4, n5, media;
cont 0;
escreva( Digite o 1 nmero: );
leia (n1);
escreva( Digite o 2 nmero: );
leia (n2);
escreva( Digite o 3 nmero: );
leia (n3);
escreva( Digite o 4 nmero: );
leia (n4);
72/77
Programao de Computadores I Prof. Erlon Pinheiro
algoritmo media_de_numeros;
incio
const inteiro qn = 5; // Quantidade de nmeros
real media, numeros[qn], soma;
inteiro i, cont;
cont 0; soma 0; // Inicializao das variveis contadora e
// acumuladora
media soma/qn;
escreva( A mdia dos nmeros : , media);
73/77
Programao de Computadores I Prof. Erlon Pinheiro
fim.
Exemplo 2 Elabore um algoritmo que leia, some e imprima o resultado da soma entre
dois vetores inteiros de 50 posies.
Resoluo:
algoritmo soma_dois_vetores;
incio
const inteiro TAM = 50; // Tamanho do vetor
inteiro vet_a[TAM], vet_b[TAM], vet_r[TAM]; // Declarao dos vetores;
inteiro i; // Declarao da var. inteira a ser utilizada para ndice
// Entrada de dados para os dois vetores:
para (i 0; i<TAM; i i+1)
inicio
escreva(Digite o , i+1 , nmero do vetor a: );
leia(vet_a[i]);
escreva(Digite o , i+1 , nmero do vetor b: );
leia(vet_b[i]);
fim;
// Processamento de dados
para (i 0; i<TAM; i i+1)
vet_r[i] vet_a[i] + vet_b[i];
// Sada de dados
escreva ( Vetor soma: );
para (i 0; i<TAM; i i+1)
escreva(vet_r[i], );
fim.
Exerccios Propostos:
1) Dado um vetor contendo 10 elementos numricos elabore um algoritmo que
verifique se outro valor dado pertence ou no ao vetor, se pertencer exibir quantas
vezes ele aparece no vetor. Caso contrrio, mostrar uma mensagem informando que o
nmero no est no vetor.
74/77
Programao de Computadores I Prof. Erlon Pinheiro
1. Faa um algoritmo que leia um vetor de 40 valores inteiros. Imprima os ndices onde
o nmero 23 aparece.
Exemplo:
Vet_a:
0 1
8 7
Vet_b:
0 1 2
17 13 55
Vet_j:
0 1 2 3 4
8 7 17 13 55
75/77
Programao de Computadores I Prof. Erlon Pinheiro
Vet_b:
0 1 2 3 4 5 6 ... ... 99
16 7 10 9 12 9 2 4
8. Faa um algoritmo que tendo lido um vetor VET de 10 nmeros inteiros positivos,
crie um novo vetor VETPAR com os elementos pares do vetor VET. Antes de preencher
o vetor VETPAR com os nmeros pares de VET faa com que todos os componentes de
VETPAR recebam o valor zero.
Exemplo:
0 1 2 3 4 5 6 7 8 9
Vetor VET = 2 9 7 5 10 4 3 1 6 21
76/77
Programao de Computadores I Prof. Erlon Pinheiro
0 1 2 3 4 5 6 7 8 9
Vetor VETPAR = 2 10 4 6 0 0 0 0 0 0
9. Faa um algoritmo que leia dois vetores de 10 elementos do tipo real. Intercale os
elementos destes dois vetores criando um novo vetor de 20 elementos.
Exemplo:
Vetor1
1 2 3 4 5 6 7 8 9 10
2 9 7 5.5 10 4 3 -1 6 21
Vetor2
1 2 3 4 5 6 7 8 9 10
32 -4 12 6 90 -4 5 43 27 82
Vetor criado a partir dos anteriores
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2 32 9 -4 7 12 5 6 10 90 4 -4 3 5 -1 43 6 27 21 82
10. Faa um algoritmo que leia a nota dos alunos da turma de Programao. Calcule a
mdia da turma e imprima as notas maiores ou iguais a mdia. Considere que a turma
possua no mximo 60 alunos e que existe a possibilidade de no estar completa.
12. Uma empresa comercializa uma pea especial para a fbrica da Ferrari. O preo da
pea determinado mensalmente de acordo com uma tabela anual (vetor). Faa um
programa C que receba a quantidade de peas vendidas por MS e armazene essas
quantidades em um vetor. Receba tambm o preo que a pea foi comercializada e
armazene esses preos em outro vetor. Em seguida o programa deve: (a) Calcular e
mostrar o total de peas vendidas e (b) calcular e mostrar o faturamento bruto total da
empresa em um ano (quantidade * preo).
77/77