Vous êtes sur la page 1sur 46

Ivre Marjorie Ribeiro Machado

Apostila de Algoritmos e Lgica de


Programao
Exemplos e Exerccios
Linguagem de Programao C++

2 Semestre
2013

Sumrio
1. Orientaes sobre a Apostila ....................................................................................................... 3
2. Planejamento ............................................................................................................................... 4
3. Referncia bibliogrfica .............................................................................................................. 5
Parte 1- Roteiros Prticos ................................................................................................................ 6
Roteiro 1 - Como iniciar uma aplicao de console no Dev-C++ .............................................. 7
Roteiro 2 Estrutura Sequencial em C++ ................................................................................. 11
Exemplo ................................................................................................................................ 14
Exerccios .............................................................................................................................. 15
Roteiro 3 Estrutura Condicional em C++............................................................................... 16
Exemplos ............................................................................................................................... 18
Exerccios .............................................................................................................................. 19
Roteiro 4 Estrutura de Repetio em C++ ............................................................................. 21
Exemplos ............................................................................................................................... 22
Exerccios .............................................................................................................................. 24
Roteiro 5 Vetor em C++ ......................................................................................................... 25
Exemplos ............................................................................................................................... 26
Exerccios .............................................................................................................................. 27
Roteiro 6 Matriz em C++ ....................................................................................................... 29
Exemplos ............................................................................................................................... 30
Exerccios .............................................................................................................................. 31
Parte 2 - Listas de Exerccios ........................................................................................................ 33
Lista 1 Estrutura Sequencial em C++ ..................................................................................... 34
Lista 2 Estrutura Condicional em C++ ................................................................................... 35
Lista 3 Estrutura de Repetio em C++ ................................................................................. 37
Lista 4 Vetor em C++ ............................................................................................................. 39
Lista 5 Matriz em C++ ........................................................................................................... 41
Lista Extra ................................................................................................................................. 42

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 2

1. Orientaes sobre a Apostila


A apostila dividida em duas partes: a Parte 1 contm os roteiros prticos de programao e a Parte
2 traz listas de exerccios tanto de conceitos como de prtica.
Para desenvolver os roteiros prticos ser necessrio de um computador com um software para
compilar os programas. Indicamos a instalao do Dev-C++ por ser open source e facilmente
encontrado na Internet.
Os roteiros foram desenvolvidos com o intuito de no apenas permitir a prtica da programao de
computadores, como tambm apresentar um material de apoio a teoria de Algoritmos e Lgica de
Programao. Dessa forma, cada roteiro tem uma descrio da matria que ser praticada (estrutura
da linguagem C++), bem como, exemplos prticos da linguagem.
Sendo assim, espera-se que o aluno inicie cada roteiro a partir da leitura do material e, em seguida,
tente compilar e entender os exemplos. Dessa forma, muitas dvidas sero sanadas.
Observe que ao encontrar o smbolo
significa que alguns conceitos de outras disciplinas,
sero necessrios para desenvolver os programas. Busque as informaes indicadas em livros sobre
as disciplinas.

E quando encontrar o smbolo


significa que a resoluo desse exerccio est disponvel no
site da autora da apostila: http://www.professoresalgoritmos.com/. Mas antes de ver a resoluo
tente fazer, somente assim, voc ir aprender.
Alm dos roteiros prticos, a apostila apresenta listas de exerccios sobre cada tpico da disciplina,
bem como uma lista extra que traz questes de concurso e questes de toda a matria que devem ser
feitas ao longo do curso em busca de ampliar o conhecimento.

2. Planejamento
O planejamento a seguir apenas uma proposta de como usar a apostila para aprender Algoritmos e
Lgica de Programao e algumas referncias para buscar conceitos da linguagem C++.
Unidade de Ensino
/Roteiro

Aula

Roteiro

Roteiro 1

Roteiro 2 Estrutura Sequencial

3
4
5
6
7
8
9
10
11
12
13

Lista 1

Como iniciar uma


aplicao no Dev-C++

Estrutura Sequencial

Roteiro 3 Estrutura Condicional


Lista 2

Estrutura Condicional

Roteiro 4 Estrutura de Repetio


Lista 3

Estrutura de Repetio

Roteiro 5 Vetor
Lista 4

Vetor

Roteiro 6 Matriz
Lista 5
Lista
extra
-

Referncia Bibliogrfica
Roteiro 1 (livro)
Roteiro 2 (livro), Cap. 3 [Ascencio], Cap. 2 [Mizrahi, 2006]
Lista 1 (livro), Cap. 3 [Ascencio], Cap. 2 [Mizrahi, 2006]
Roteiro 3 (livro), Cap. 4 [Ascencio], Cap. 3 [Mizrahi, 2006]
Lista 2 (livro), Cap. 4 [Ascencio], Cap. 3 [Mizrahi, 2006]
Roteiro 4 (livro), Cap. 5 [Ascencio], Cap. 4 [Mizrahi, 2006]
Lista 3 (livro), Cap. 5 [Ascencio], Cap. 4 [Mizrahi, 2006]
Roteiro 5 (livro), Cap. 6 [Ascencio], Cap. 6 [Mizrahi, 2006]
Lista 4 (livro), Cap. 6 [Ascencio], Cap. 6 [Mizrahi, 2006]
Roteiro 6 (livro), Cap. 7 [Ascencio], Cap. 6 [Mizrahi, 2006]

Matriz

Lista 5 (livro), Cap. 7 [Ascencio], Cap. 6 [Mizrahi, 2006]

Matria toda

Roteiro 6 (livro), Cap. 7 [Ascencio], Cap. 6 [Mizrahi, 2006]

Avaliao Prtica

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 4

3. Referncia bibliogrfica
Referncia Bsica
[ASCENCIO] Ascencio, Ana Fernanda Gomes e Campos, Edilene Aparecida Veneruchi de. .
Fundamentos da programao de computadores: algoritmos, Pascal e C++ e Java. 2.ed. So Paulo:
Pearson Pascal e C++ e Java. 2.ed. So Paulo: Pearson Prentice Hall, 2008.
[MIZRAHI, 2006] Mizrahi, Victorine Viviane. Treinamento em Linguagem C++: Mdulo I. 2 Ed.
So Paulo. Editora Pearson, Prentice Hall, 2006.
Referncia Complementar
[CORMEN] Cormen, Thomas H. [et al.]. Algoritmos: teoria e prtica. Rio de Janeiro: Elsevier,
2002.
[DEITEL] Deitel, H.M; Deitel, P.J. Como Programar C++. Porto Alegre: Bookmen. 2006.
[FORBELLONE] Forbellone, Andr Luiz Villar e Eberspcher, Henri Frederico. Lgica de
programao : a construo de algoritmos e estruturas de dados. Editora Pearson, Prentice Hall. 3
Ed.
[MEDINA] Medina, Marco. Algoritmos e programao : teoria e prtica. . 2 Ed. So Paulo.
Novatec. 2006 . 2a. Ed. So Paulo. Novatec. 2006.
[SILVA] Silva, Osmar Quirino da. . Estrutura de dados e algoritmos usando c: fundamentos e
aplicaes. Rio de Janeiro: Cincia Moderna, 2007.
[SOUZA et. al.], A. Furlan; GOMES, Marcelo Marques; SOARES, Marcio Vieira e CONCILIO,
Ricardo. Algoritmos e Lgica de Programao. 2 ed. Ver. e ampl. So Paulo: Cengage Learning,
2011.

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 5

Parte 1- Roteiros Prticos

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 6

Roteiro 1 - Como iniciar uma aplicao de console no Dev-C++


Uma aplicao do tipo console uma aplicao que roda no Prompt de comando. Ela no utiliza
interface grfica do Windows. Este documento tem o objetivo de ensinar passo-a-passo como
iniciar o desenvolvimento de uma aplicao de linha de comando usando o Dev-C++.
1. Inicie o Dev-C++ clicando no cone Dev-C++ do Menu Iniciar. Ao iniciar o programa, ele
abrir uma tela parecida com a exibida na Figura 1. Feche a tela com a Dica do dia clicando
no X.

Fechar

Figura 1 - Tela Inicial do Dev-C++

2. Crie um novo arquivo fonte pressionando o boto Arquivo Novo Arquivo Fonte. Em
seguida aparecer a tela mostrada na Figura 2.

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 7

Figura 2 - Tela Arquivo fonte

3. Em seguida ser aberta uma tela no qual voc dever digitar o programa em C++ (figura 3).

Figura 3 Tela insero do cdigo

4. No se esquea de colocar as bibliotecas necessrias para os comandos e funes que for


usar. A seguir apresentado nosso primeiro exemplo, digite o cdigo abaixo.
Exemplo 1:
/*
Programador : <coloque o seu Nome>
Data : <coloque a data>
Descrio: Imprime na tela a mensagem de boas vindas.
*/
#include <iostream.h>
int main()
{
cout <<"Bem vindo a Programacao!!!";
cout<<"\n";
cout <<"Aula pratica da disciplina: Algoritmos e Logica de Programacao";
cout<< "\n\n";
system("PAUSE");
}

5. Aps digitar o cdigo acima no Dev-C++, compile e execute o programa. Para compilar e
executar o programa, basta clicar no boto

ou (F9).

Observe que no exemplo 1, foram usados:


Elaborao prof. Ivre Marjorie 10/08/2013
Mais informaes: www.professoresalgoritmos.com

Pgina 8

Comentrios de programa, que so informaes a respeito do programa. Para isso, foram


usados /* (para indicar o incio do comentrio) e */ (para indicar o fim do comentrio).
possvel tambm usar comentrios com apenas uma linha atravs de //.
Bibliotecas que servem para fazer com que o compilador permita a utilizao de funes de
outros arquivos. Para incluir uma biblioteca necessrio usar #include <nome da
biblioteca>. Em geral, esse recurso usado para incluir definies de dados e cdigo que
sero utilizados por nosso programa, mas j foram compilados e esto disponveis em uma
biblioteca. No exemplo, usamos apenas a biblioteca iostream.h.
Funo principal main(), j que todos os comandos da linguagem C++ devem estar dentro
de funes, o que implica, portanto, que um programa deve ter no mnimo uma funo (a
principal).
Todas as declaraes e comandos da linguagem devem ser terminados por ; (ponto e
vrgula). Esse sinal serve apenas como separador nas declaraes, mas serve para identificar
a composio de sequncia entre os comandos, isto , primeiro executado um e depois o
outro.
cout<< o comando utilizado para imprimir mensagens na Tela.

6. Uma tela ser aberta para salvar o arquivo (d um nome para o arquivo principal do seu
programa em seguida salve). Use sempre nomes sugestivos para os seus programas, ou seja,
nomes que lhe remetem a ideia ou objetivo do programa. Para o nosso exemplo vamos dar o
seguinte nome exemplo1. No use acentos e caracteres especiais nos nomes dos programas
7. O seu programa executar em seguida mostrar uma mensagem na tela (figura 4)

Figura 4 Tela de resultado de compilao

8. Agora experimente retirar as linhas do programa system("PAUSE"); e return 0; e em


seguida, compile novamente (F9). O que acontece?
Elaborao prof. Ivre Marjorie 10/08/2013
Mais informaes: www.professoresalgoritmos.com

Pgina 9

Como exerccio, digite os exemplos abaixo no Dev-C++ e tente entender o que est ocorrendo:
Exemplo 2:
/*
Programador :
Data :
Descrio:
*/
#include <iostream.h>
int main()
{
int num1;
cout << "\n Digite um numero: ";
cin >> num1;
cout << "\n Vai imprimir o numero digitado: ";
cout << num1;
system("PAUSE");
}

Exemplo 3:
/*
Programador :
Data :
Descrio:
*/
#include <iostream.h>
int main()
{
int x, y, soma;
cout<<"\n Digite um numero: ";
cin>>x;
cout<<"\n Digite outro numero: ";
cin>>y;
soma = x+ y;
cout<<"\n A soma de x com y e: "<<soma;
cout<<"\n\n";
system("PAUSE");
}

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 10

Roteiro 2 Estrutura Sequencial em C++


A estrutura sequencial na linguagem C++ consiste em:
# include <nome da biblioteca>
int main()
{
Bloco de comandos;
}

Bibliotecas so arquivos contendo vrias funes que podem ser incorporadas aos
programas escritos em C++. A diretiva # include faz com que o texto contido dentro da
biblioteca especificada seja inserido no programa.
As bibliotecas iostream.h e conio.h permitem a utilizao de diversos comandos de entrada
e sada.
A linguagem C++ sensvel a letras maisculas e minsculas, ou seja, considera que letras
maisculas so diferentes de minsculas (por exemplo, a diferente de A)
Todos os comandos devem, obrigatoriamente, ser escritos com letras minsculas.

Declarao de variveis:
int main()
{
//Declarao de variveis
int Y;
float X;
char sexo, nome[40];
}

As variveis so declaradas aps a especificao de seus tipos (int, float ou char).


C++ no possui tipo especial para armazenar cadeias de caracteres (strings).

Comando de atribuio:
int main()
{
int y, x, soma;
//Atribuio de valores
y = 2;
x = 3;
soma = y + x;
}

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 11

Utilizado para atribuir valores ou operaes a variveis, sendo representado por = (sinal de
igualdade).

Comando de Entrada e Sada:


int main()
{
//Declarao de variveis
int num, x, soma;
cout<<"Digite um numero: "; //Comando de Sada
cin>>num; //Comando de Entrada
//Atribuio de valores
x = 3;
soma = num + x;
//Comando de Sada
cout<<"A soma dos numeros e: "<<soma;
}

Para entrada de dados em C++, o comando que ser utilizado o cin>>. Assim, com o
comando (cin>>num; ) o valor digitado pelo usurio ser armazenado na varivel num.
Para sada de dados em C++, o comando que ser utilizado o cout<<. Assim, com o
comando (cout<<"Digite um numero: ";)o texto Digite um nmero aparecer
na tela do computador para o usurio.

Operadores e funes predefinidas:


A linguagem C++ possui alguns operadores e funes predefinidas destinadas a clculos
matemticos e manipulao de caracteres.

Operadores matemticos:
Operador

Exemplo

Comentrio

x+y

Soma o contedo de X e de Y.

xy

Subtrai o contedo de Y do contedo de X

x*y

Multiplica o contedo de X pelo contedo de Y

x/y

Obtm o quociente da diviso de X por Y

x%y

Obtm o resto da diviso de X por Y

++

x ++

Aumenta o contedo de X em uma unidade ( o mesmo que x = x + 1)

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 12

--

x--

Diminui o contedo de X em uma unidade ( o mesmo que x = x - 1)

Operadores matemticos de atribuio:


Operador
+=
-=
*=
/=
%=

Exemplo
x+=y
x=y
x*=y
x/=y
x%=y

Comentrio
Equivale a X = X + Y.
Equivale a X = X - Y.
Equivale a X = X * Y.
Equivale a X = X / Y.
Equivale a X = X % Y.

Expresses aritmticas:
A linguagem C++ possui algumas funes matemticas prontas para serem usadas. Todas elas
podem ser observadas detalhadamente na documentao da biblioteca math.h. Para se utilizar as
funes dessa biblioteca deve-se adicionar a clusula: #include <math.h>. Algumas das funes
disponveis nessa biblioteca so:
Funo
abs(i)

Finalidade
Retorna o valor absoluto de i.

ceil(d)

Arredonda para cima, para o prximo valor inteiro maior que d.

cos(d)

Retorna o cosseno de d.

floor(d)

Arredonda para baixo, para o prximo valor inteiro menor que d.

log(d)

Calcula o logaritmo neperiano log(d).

pow(d1, d2)

Retorna d1 elevado a d2.

rand()

Retorna um inteiro positivo aleatrio.

sin(d)

Retorna o seno de d.

sqrt(d)

Retorna a raiz quadrada de d.

tan(d)

Retorna a tangente de d.

As funes acima que possuem retorno, devem ser usadas com cuidado, e precisam de uma
varivel para receber esse retorno conforme exemplo:
potencia = pow (b, 2);

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 13

No exemplo a varivel potencia vai receber o retorno da funo pow. Essa funo vai
retorna o resultado de b elevado a dois.

Exemplo
O programa abaixo calcula a hipotenusa de um tringulo retngulo, dados os seus catetos, pelo
Teorema de Pitgoras.
Busque informaes sobre Teorema de Pitgoras!
/*
Programador:<Nome>
Descricao: Calcula a hipotenusa de um triangulo retngulo dados os
seus catetos.
Entrada: Lados b e c de um tringulo retngulo.
Saida: impressao da mensagem.
*/
#include <iostream.h>
#include <math.h>
int main()
{
float a , b , c;
cout<<"\n Digite o valor de b: ";
cin>>b;
cout<<"\n Digite o valor de c: ";
cin>>c;
a = sqrt ( pow(b , 2 ) + pow( c , 2 ) ) ;
cout << "\n O valor da hipotenusa e: "<< a;
cout<< "\n\n";
system("PAUSE");
}

Digite e compile o cdigo fonte do exemplo acima. Observe o uso das funes matemticas usadas
no exemplo. Use para o exemplo os seguintes valores b = 4 e c = 3.

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 14

Exerccios
Busque informaes sobre equao do segundo grau e como encontrar suas razes!

Exerccio 1: Considere a equao do segundo grau. Faa um algoritmo (fluxograma), em


seguida, um programa em C++ que encontre as razes de uma equao do segundo grau dados os
coeficientes a, b e c. O usurio dever obrigatoriamente entrar com os coeficientes a, b e c.
Retorne para o usurio as razes da equao. Na tela, os valores de x1 e x2 devero ser exibidos
alinhados, um embaixo do outro.

Por exemplo:
x1: 1
x2: 0

Exerccio 2: Faa um programa em C++ para ler trs nmeros inteiros do teclado. A sada na tela
deve ser o primeiro nmero ao cubo, o triplo do segundo nmero e a raiz quadrada do terceiro
nmero.
Exerccio 3: Faa um programa em C++ para calcular a rea de um trapzio. O programa deve ler
do teclado o valor da base menor, base maior e a altura. Em seguida, imprimir na tela o valor da
rea do trapzio.
Busque informaes sobre o clculo da rea de trapzio!
Exerccio 4: Faa um programa em C++ que receba o preo de um produto, calcule e mostre o
novo preo, sabendo -se que:
a) o preo do produto sofreu um desconto de 10%
b) o preo do produto sofreu um aumento de 20%

Busque informaes sobre porcentagens!

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 15

Roteiro 3 Estrutura Condicional em C++


Uma das tarefas fundamentais de qualquer programa decidir o que deve ser executado, para isso,
temos comandos de deciso que permitem determinar qual a ao deve ser tomada a partir de um
resultado de uma expresso condicional. Em C++ temos os comandos de deciso:
if
if else

Estrutura condicional simples:


# include <nome da biblioteca>
int main()
{
if (condio)
{
Bloco de comandos;
}
}

Observe que o bloco de comandos s ser executado se a condio for verdadeira, Uma
condio uma comparao que possui dois valores possveis, verdadeiro ou falso.
A condio deve estar entre parnteses ( ).
Em C++, torna-se obrigatria a utilizao de chaves quando houver mais de um comando a
ser executado. Os comandos entre as chaves { } s sero executados se a condio for
verdadeira.

Estrutura condicional composta:


# include <nome da biblioteca>
int main()
{
if (condio)
{
Bloco de comandos1;
}
else
{
Bloco de comandos2;
}
}

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 16

Se a condio for verdadeira, ser executado o Bloco de comandos1, caso contrrio, se a


condio for falsa, ser executado o Bloco de comandos2.

Operadores relacionais:
Operador
==
!=
<=
>=
<
>

Exemplo
x == y
x != y
x <= y
x >= y
x<y
x>y

Comentrio
O contedo de X igual ao contedo de Y
O contedo de X diferente do contedo de Y
O contedo de X menor ou igual ao contedo de Y
O contedo de X maior ou igual ao contedo de Y
O contedo de X menor que o contedo de Y
O contedo de X maior que o contedo de Y

Operadores lgicos:
Operador
&&
||

Exemplo

Comentrio
Significa que a condio verificada ser X >= 3 E X < 7, ou
if (x >= 3 && x < 7 )
seja, a condio ser verdadeira se X estiver entre 3 e 7
Significa que a condio verificada ser X >= 3 OU X <= 7,
if (x >= 3 || x >= 7 )
ou seja, tanto se X for maior que 3 como se X for maior que 7
a condio ser verdadeira
A ! (NO) a negao, ou seja, muda um valor lgico de
verdadeiro para falso e de falso para verdadeiro
!x
- Resulta 1 (verdadeiro) somente se x for falsa.
- Resulta 0 (falso) somente se x for verdadeiro.

Tabela verdade:

Tabela E ( && )
VeV=V
VeF=F
FeV=F
FeF=F

Tabela OU ( || )
V ou V = V
V ou F = V
F ou V = V
F ou F = F

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Tabela NO ( ! )
No V = F
No F = V

Pgina 17

Exemplos
Exemplo 1 - Digite e compile o cdigo fonte abaixo:
//Lembre-se de colocar as bibliotecas
int main()
{
float valor;
cout<<"\n Digite um numero: ";
cin>> valor;
if(valor > 0)
{
cout<<"\n o numero digitado e maior que ZERO";
}
if(valor == 0)
{
cout<<"\n o numero digitado e igual a ZERO";
}
if(valor < 0)
{
cout<<"\n o numero digitado e menor que ZERO";
}
cout<<"\n\n";
system("PAUSE");
}

O que o programa faz? Coloque comentrios no programa para explicar o que cada comando faz.
Exemplo 2 - Digite e compile o cdigo fonte abaixo:
int main()
{
float valor;
cout<<"\n Digite um numero: ";
cin>> valor;
if(valor > 0)
{
cout<<"\n o numero digitado e maior que ZERO";
}
else if(valor == 0)
{
cout<<"\n o numero digitado e igual a ZERO";
}
else
{
cout<<"\n o numero digitado e menor que ZERO";
}
system("PAUSE");
}

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 18

O que o programa faz? Qual a diferena entre o exemplo 1 e o exemplo 2 ?


Exemplo 3 - Digite e compile o cdigo fonte abaixo:
int main()
{
float num1, num2;
cout<<"\n Digite um numero: ";
cin>> num1;
cout<<"\n Digite outro numero: ";
cin>> num2;
if(num1> num2 )
{
cout<<"\n o maior numero digitado e: "<<num1;
}
else if(num2> num1)
{
cout<<"\n o maior numero digitado e: "<<num2;
}
else
{
cout<<"\n os numeros digitados sao iguais";
}
system("PAUSE");
}

O que o programa faz? O exemplo 3 poderia usar a estrutura condicional simples?

Exerccios

Exerccio 1 Refaa o exerccio 1 do Roteiro Anterior (Estrutura Sequencial) para


encontrar as razes de uma equao do 2 Grau, mas agora colocando condicionais para identificar
se o coeficiente a existe, se o delta menor que zero e se o delta maior que zero.
Observao: Lembre-se de fazer o novo fluxograma.

Exerccio 2 - Faa um fluxograma, em seguida, um programa em C++ que leia trs nmeros
inteiros e mostre na tela esses nmeros ordenados em ordem crescente.
Exerccio 3 - Criar um programa em C++ que solicite a entrada de um nmero, em seguida
imprime na tela se o nmero digitado positivo, negativo ou nulo.
Elaborao prof. Ivre Marjorie 10/08/2013
Mais informaes: www.professoresalgoritmos.com

Pgina 19

Exerccio 4 - Faa um programa em C++ que mostre o menu de opes a seguir, receba a opo do
usurio e os dados necessrios para executar cada operao.
Menu de opes:
1- Somar dois nmeros
2- Raiz quadrada de nmero
Observao: Para calcular a raiz, ser necessrio validar se o nmero digitado maior que Zero.
Exerccio 5 - Faa um programa em C++ que receba o cdigo correspondente ao cargo de um
funcionrio e seu salrio atual. O programa dever calcular o aumento e mostrar na tela o cargo, o
aumento e o novo salrio. Os cargos e o percentual de aumento esto na tabela a seguir:
Cdigo
Cargo
1
Escriturrio

Percentual de aumento
50%

Secretrio

35%

Caixa

20%

Gerente

20%

Diretor

No tem aumento

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 20

Roteiro 4 Estrutura de Repetio em C++


Estrutura de Repetio em C++ FOR
Essa estrutura utilizada quando se sabe o nmero de vezes que um trecho do programa deve ser
repetido. O formato geral do comando for composto por trs partes:
for (i = valor inicial; condio; incremento ou decremento de i)
{
Bloco de comandos;
}

Estrutura de Repetio em C++ WHILE


O while uma estrutura de repetio que pode ser utilizada quando o nmero de repeties
necessrias no fixo. Os comandos sero repetidos at a condio assumir o valor falso. Nesse
tipo de estrutura, o teste condicional ocorre no incio. Isto significa que existe a possibilidade da
repetio no ser executada quando a condio assumir valor falso logo na primeira verificao.
while (condio)
{
Bloco de comandos;
}

Estrutura de Repetio em C++ DO-WHILE


O do-while uma estrutura de repetio que pode ser utilizada quando o nmero de repeties
necessrias no fixo. Os comandos sero repetidos at a condio assumir o valor falso. Nesse
tipo de estrutura, o teste condicional ocorre no fim. Isto significa que a repetio ser executada no
mnimo uma vez, quando todo o bloco for executado uma vez e, ao final, a condio assumir valor
falso.
do{
Bloco de comandos;
} while (condio);

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 21

Exemplos
Exemplo 1 - Digite e compile o cdigo fonte abaixo:
//Lembre-se das bibliotecas
int main()
{
int quant=0, num, i;
for (i = 1; i <= 5; i++)
{
cout <<"\n Entre um valor inteiro: ";
cin >> num;
if(num>5)
{
quant = quant + 1;
}
}
cout<<"\n Foram digitados "<<quant<<" numeros maiores que 5";
cout<<"\n\n";
system("PAUSE");
}

O que o programa faz? Coloque comentrios no programa para explicar o que cada comando faz.
Exemplo 2 - Digite e compile o cdigo fonte abaixo:
//Bibliotecas...
int main()
{
int num, N, i=0, soma=0;
cout<<"\nQuantos numeros deseja digitar: ";
cin>>N;
while(i < N)
{
cout <<"\n Entre um valor inteiro: ";
cin >> num;
soma = soma + num;
i++;
}
cout<<"\n Foram digitados "<<N<<" numeros";
cout<<"\n A soma dos numeros digitados e: "<<soma;
cout<<"\n\n";
system("PAUSE");
}

O que o programa faz? Coloque comentrios no programa para explicar o que cada comando faz.
Elaborao prof. Ivre Marjorie 10/08/2013
Mais informaes: www.professoresalgoritmos.com

Pgina 22

Exemplo 3 - Digite e compile o cdigo fonte abaixo:


//Bibliotecas...
int main()
{
int contador, numero, n;
contador = 1;
cout << " Entre com a quantidade de vezes para repetir: ";
cin >> n;
do {
cout << "\n Digite um numero inteiro: ";
cin >> numero;
cout << "\n O numero digitado foi " << numero;
contador = contador + 1;
} while (contador <= n);
cout << "\n\n => Digite ENTER para terminar";
system("PAUSE");
}

O que o programa faz? Coloque comentrios no programa para explicar o que cada comando faz.
Exemplo 4 - Digite e compile o cdigo fonte abaixo:
//Bibliotecas...
int main()
{
int saida, numero, cont=0;
do
{
cout<<"\n Digite um numero inteiro: ";
cin>> numero;
cont++;
cout<<"\n Para sair digite -1 e para continuar outro numero ";
cin>>saida;
} while (saida != -1);
cout << "\n\n Foram digitados "<<cont<<" numeros";
system("PAUSE");
}

O que o programa faz? Coloque comentrios no programa para explicar o que cada comando faz.

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 23

Exerccios
Busque informaes sobre porcentagens e mdia aritmtica.
Exerccio 1 - Faa um programa em C++ que receba dez nmeros, calcule e mostre a soma dos
nmeros pares e a quantidade de nmeros mpares digitados.
Exerccio 2 - Faa um programa que receba a idade de oito pessoas, calcule e mostre:
a) A quantidade de pessoas em cada faixa etria;
b) A porcentagem de pessoas na primeira faixa etria com relao ao total de pessoas;
c) A porcentagem de pessoas na ltima faixa etria com relao ao total de pessoas.
Use a tabela a seguir para as faixas etrias:
Faixa etria
1
2
3
4
5

Idade
At 15 anos
De 16 a 30 anos
De 31 a 45 anos
De 46 a 60 anos
Acima de 60 anos

Exerccio 3 - Faa um programa que receba uma sequncia de nmeros e retorne o maior nmero e
o menor nmero da sequncia digitada. A quantidade de nmeros n fornecida pelo usurio. Use a
estrutura WHILE.
Exerccio 4 - Faa um programa que leia nmeros inteiros, calcule e mostre a quantidade de
nmeros divisveis por 3 e a quantidade de nmeros divisveis por 7 dos nmeros informados. O
programa finalizado ao usurio informar um nmero negativo. Use a estrutura DO-WHILE.
Exerccio 5 - Em uma eleio presidencial existem quatro candidatos. Os votos so informados por
meio de cdigo. Os cdigos utilizados so:
1, 2, 3, 4
5
6

Votos para os respectivos candidatos


Voto nulo
Voto em branco

Faa um programa que calcule e mostre: o total de votos para cada candidato; o total de votos
nulos; a porcentagem de votos em branco sobre o total de votos.
Para finalizar o conjunto de votos digitados, tem-se o valor zero e, para cdigos invlidos, o
programa dever mostrar uma mensagem Voto invlido!.

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 24

Roteiro 5 Vetor em C++


Vetor so variveis compostas homogneas unidimensionais capazes de armazenar vrios
valores.
Cada um desses valores identificado pelo mesmo nome sendo diferenciado apenas por um
ndice.
Os ndices utilizados para identificar as posies de um vetor em C++ comeam sempre em
0 (zero) e vo at o tamanho do vetor menos uma unidade.

Para acessar os elementos do vetor, deve utilizar o valor do ndice desejado, juntamente com
o nome da varivel, por exemplo, peso[2] est associado ao terceiro elemento do vetor pois
o primeiro elemento est relacionado ao ndice 0

Declarao de um vetor:
Para declarar um vetor:
Tipo nome_Vetor [tamanho_do_vetor];
# include <nome da biblioteca>
int main()
{
int peso[10];
float nota[41];
char nome[80];
}

Preenchendo um vetor:
Preencher um vetor significa atribuir valores para todas as posies de um vetor.
for (int i = 0; i < tamanho do vetor; i++)
{
cin >> nome_vetor[i];
}

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 25

Mostrando um vetor:
Para mostrar todas as posies de um vetor.
for (int i = 0; i < tamanho do vetor; i++)
{
cout << nome_vetor[i];
}

Exemplos
Exemplo 1 - Digite e compile o cdigo fonte abaixo:
#include <iostream.h>
int main()
{
float notas[5] = {10,5,8,2,8};
int i=0;
cout<< "\n Impressao dos elementos do vetor";
for(i=0; i < 5; i++)
{
cout<<"\nNota "<<(i+1)<<": "<<notas[i];
}
cout<<"\n\t\tFim do programa\n";
system("PAUSE");
}

O que o programa faz? Coloque comentrios no programa para explicar o que cada comando faz.
Exemplo 2 - Digite e compile o cdigo fonte abaixo:
//Bibliotecas
int main()
{
float notas[5];
float media=0, soma=0, menor=0;
int i=0;
for(i=0; i < 5; i++)
{
cout<<"\nDigite a nota " <<(i+1)<<": ";
cin>>notas[i];
}

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 26

menor = notas[0];
for(i=0; i < 5; i++)
{
soma = soma + notas[i];
if (notas[i] < menor)
{
menor = notas[i];
}
}
media = soma / 5;
cout<<"\n Soma total = "<<soma;
cout<<"\n Mdia
= "<<media;
cout<<"\n Menor nota = "<<menor;
system("PAUSE");
}

O que o programa faz? Coloque comentrios no programa para explicar o que cada comando faz.

Exerccios
Exerccio 1 - Faa um programa em C++ que receba vinte nmeros, calcule e mostre a soma dos
nmeros positivos e a quantidade de nmeros negativos digitados. Lembre-se de usar vetor.
Exerccio 2 - Faa um programa em C++ que preencha dois vetores de cinco elementos numricos
cada um e mostre o vetor resultante da intercalao deles. Como no exemplo abaixo:
0

Vetor1 3

Vetor2 7

Vetor Resultante

15 20 0

18
5

15 4

20 2

18

Exerccio 3 - Faa um programa que preencha um vetor com 15 nmeros inteiros, calcule e mostre:
a) A quantidade de posies com elementos iguais a 2
b) Os elementos (nmeros) mltiplos de 3
c) As posies que possuem elementos (nmeros) mltiplos de 2

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 27

Exerccio 4 - Faa um programa que solicita que sejam digitados e armazenados 10


nmeros em um vetor de inteiros chamado vetorOriginal. Logo em seguida o programa deve
guardar os 10 nmeros de maneira invertida em outro vetor chamado vetorInvertido. Mostrar na
tela o vetor vetorOriginal e o vetor vetorInvertido.

Vetor Original

Vetor Invertido

18 2

15 4
4

20 2

18

15 5

20 4

Observao: Nesse exerccio so criados dois vetores (original e invertido)


Exerccio 5 - Faa um programa que carregue um vetor com 10 nmeros inteiros digitados pelo
usurio. Em seguida, calcule e mostre o mesmo vetor ordenado de maneira decrescente.

Vetor incio

Vetor fim

15 4

20 2

18

20 18 15 7

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 28

Roteiro 6 Matriz em C++


Uma matriz pode ser definida como um conjunto de variveis de mesmo tipo e identificadas
pelo mesmo nome (varivel composta homognea multidimensional).
Essas variveis so diferenciadas por meio da especificao de suas posies dentro dessa
estrutura.
C++ permite a declarao de: Matrizes unidimensionais (mais conhecidas como vetores) e
Matrizes bidimensionais e multidimensionais (o limite de dimenses fica por conta da
quantidade de recurso disponvel pelo compilador. Entretanto, as matrizes mais utilizadas
possuem duas dimenses, Linhas e Colunas).
Da mesma maneira como ocorre com os vetores, os ndices comeam sempre em 0 (zero). O
exemplo abaixo apresenta a declarao de uma varivel chamada materia contendo 4 linhas
(0 a 3) e 10 colunas (0 a 9), capazes de armazenar nmeros inteiros.

Declarao de uma matriz:


Para declarar uma matriz:
Tipo nome_Matriz [qtdes de Linhas][qtdes de Colunas];
# include <nome da biblioteca>
int main()
{
int nota[10][5];
float peso[4][30];
}

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 29

Preenchendo uma matriz:


Preencher uma matriz significa atribuir valores para todas as posies (linhas e colunas) de
uma matriz.

for (int L = 0; L < qtde de linhas; L++)


{
for (int C = 0; C < qtde de colunas; C++)
{
cin >> nome_matriz[L][C];
}
}

Mostrando uma matriz:


Para mostrar todas as posies (linhas e colunas) de uma matriz.

for (int L = 0; L < qtde de linhas; L++)


{
for (int C = 0; C < qtde de colunas; C++)
{
cout << nome_matriz[L][C];
}
}

Exemplos
Exemplo 1 - Digite e compile o cdigo fonte abaixo:
//Bibliotecas
int main ()
{
int preco[3][4],linha,coluna,cont=0, maior;
for (linha=0;linha<3;linha++)
{
for (coluna=0;coluna<4;coluna++)
{
cout<<"\n Digite o preco do produto "<<linha<<" da loja "<<coluna<<" : ";
cin>>preco[linha][coluna];
}
}

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 30

maior = preco[0][0];
for (linha=0;linha<3;linha++)
{
for (coluna=0;coluna<4;coluna++)
{
if(preco[linha][coluna]>100)
{
cont++;
}
if(preco[linha][coluna]>maior)
{
maior = preco[linha][coluna];
}
}
}
cout<<"\nMaior preco: "<<maior;
cout<<"\nA quantidade de produtos com preco maior que 100 e: "<<cont;
system("PAUSE");
}

O que o programa faz? Coloque comentrios no programa para explicar o que cada comando faz.

Exerccios
Exerccio 1 - Faa um programa que carregue uma matriz 4 X 5, calcule e mostre um vetor com
cinco posies, onde cada posio contm a soma dos elementos de cada coluna da matriz. Em
seguida, mostre o vetor e a matriz na tela.
Exerccio 2 - Faa um programa C++ que preencha uma matriz de dimenses digitadas pelo usurio
e mostre o nmero de elementos maiores que 15 e menores que 25.

Exerccio 3 - Faa um programa C++ que preencha uma matriz 8 x 6 de inteiros, calcule e
mostre a mdia dos elementos das linhas pares da mesma.
Exerccio 4 - Faa um programa C++ que carregue uma matriz 5 X 5 com nmeros inteiros, calcule
e mostre a soma:
a) dos elementos da linha 4;
b) dos elementos da coluna 2;
c) de todos os elementos da matriz.

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 31

Exerccio 5 - Faa um programa que receba o estoque atual de trs produtos, armazenados em
quatro armazns e coloque esses dados em uma matriz 4 x 3. Em seguida, o programa dever
calcular e mostrar:
a) a quantidade de itens armazenados em cada armazm
b) qual armazm possui maior estoque do produto 2
c) qual armazm possui menor estoque do produto 1
Produto 1

Produto 2

Produto 3

Armazm 1
Armazm 2
Armazm 3
Armazm 4

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 32

Parte 2 - Listas de Exerccios

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 33

Lista 1 Estrutura Sequencial em C++

Antes de comear a fazer essa lista de exerccios, busque informaes sobre Raciocnio
Lgico.
1- Responda as perguntas a seguir:
a. O que um algoritmo?
b. Quais so os tipos mais utilizados de algoritmos? Apresente a vantagem e
desvantagem do uso de cada um.
c. O que uma varivel e qual o seu objetivo em um programa de computador?

2- Faa um algoritmo (fluxograma e pseudocdigo), em seguida, um programa que leia uma


temperatura dada na escala Celsius (C) e imprima na tela o equivalente em Fahrenheit (F).
Frmula de converso: F = C * 1.8 + 32
3- Faa um algoritmo (fluxograma e pseudocdigo), em seguida, um programa que calcule o
quadrado de um nmero qualquer, ou seja, o produto desse nmero por ele mesmo. Imprima
na tela o resultado final.

4-

Faa um algoritmo (fluxograma e pseudocdigo), em seguida, um programa que


calcule a rea de um tringulo. O usurio dever digitar o valor da base e da altura. Em
seguida dever ser apresentado na tela o valor final da rea do tringulo.
Frmula da rea do tringulo: (base * altura) / 2

5- Um funcionrio recebe um salrio fixo mais 4% de comisso sobre as vendas. Faa um


algoritmo (fluxograma e pseudocdigo), em seguida, um programa que receba o salrio
fixo do funcionrio e o valor de suas vendas no ms, calcule e mostre a comisso e seu
salrio final.

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 34

Lista 2 Estrutura Condicional em C++


1- Faa um algoritmo (pseudocdigo e fluxograma), em seguida, um programa que receba
dois nmeros e mostre na tela o menor.

2- Faa um algoritmo (pseudocdigo e fluxograma), em seguida, um programa que receba


trs nmeros e mostre na tela o maior.

3- Faa um algoritmo (pseudocdigo e fluxograma), em seguida um programa que receba


quatro notas de um aluno, calcule e mostre a mdia aritmtica das notas e a mensagem de
aprovado ou reprovado, considerando para aprovado mdia maior ou igual a 7.

4- Faa um algoritmo (pseudocdigo), em seguida um programa que leia dois nmeros


inteiros. Se um deles for menor que 20, realize a soma dos mesmos e imprima na tela o
resultado. Se os dois forem maiores que 30, realize a subtrao do maior pelo menor e
imprima na tela o resultado. Seno, se nenhum dos casos solicitados for vlido, imprima na
tela os nmeros que foram digitados.

5-

Faa um algoritmo (pseudocdigo e fluxograma), em seguida um programa que


receba um nmero inteiro e verifique se esse nmero par ou mpar.

6- Faa um programa que receba a idade de um nadador e mostre a sua categoria usando as
regras da tabela abaixo:

Categoria

Idade

Infantil

5a7

Juvenil

8 a 10

Adolescente

11 a 15

Adulto

16 a 30

Snior

Acima de 30

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 35

7- Faa um programa que receba o salrio de um funcionrio, calcule e mostre o novo salrio,
acrescido de bonificao e de auxlio escola conforme tabela abaixo:

Salrio

Bonificao

Salrio

Auxlio Escola

At R$ 500,00

5% do salrio

At R$ 600,00

R$ 150,00

Mais que R$ 600,00

R$ 100,00

Entre R$ 500,00 e R$
1200,00
Acima de R$ 1200,00

12% do salrio
Sem bonificao

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 36

Lista 3 Estrutura de Repetio em C++


1- Responda:
a. Por que usamos estruturas de repetio no desenvolvimento de programas?
b. Quando devemos usar a estrutura de repetio for e quando devemos usar as
estruturas while e do-while?

2- Faa um programa para imprimir na tela os 10 primeiros nmeros inteiros maiores que 100
utilizando as estruturas de repetio (for, while, do-while).

3- Faa um programa que receba um nmero inteiro maior que 1, verifique se o nmero
fornecido primo ou no e mostre a mensagem de nmero primo ou de nmero no primo.
Use estrutura de repetio. (obs. Um nmero primo quando divisvel apenas por 1 e por
ele mesmo).

4-

Fazer um programa que calcula e mostre na tela o N-simo termo da sequncia de


Fibonacci (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...) utilizando a estrutura de repetio for.

5- Dado o cdigo abaixo indique o resultado do mesmo para cada um dos valores de val.
int main()
{
int i, n = 3;
int val = ??;
for (i=0; i<=5; i++)
{
val = val + n;
}
n = 5;
cout<< val;
getch();

Substitua o valor do smbolo ?? no


cdigo acima por cada um dos valores
apresentados abaixo. E mostre o resultado
final do programa para cada dos valores de
val.
a)

val = -1

Resposta =

b)

val = 0

Resposta =

c)

val = 2

Resposta =

d)

val = 3

Resposta =

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 37

6- Faa um programa que receba vrios nmeros, finalize a entrada de nmeros no programa
com a digitao do nmero -1, calcule e mostre na tela:

A soma dos nmeros digitados;


A quantidade de nmeros digitados;
A mdia dos nmeros digitados;
O maior nmero digitado;
O menor nmero digitado.

7- Construa um programa que l uma opo conforme abaixo e o salrio atual do funcionrio,
calcula e exibe o novo salrio. Deve-se repetir o clculo para diversos funcionrios,
enquanto for informado um salrio vlido (maior do que zero).
A Para aumento de 8%
B Para aumento de 11%
C Para aumento fixo de R$ 450,00
8- Faa um programa para calcular a rea de um tringulo, que NO permita a entrada de
dados invlidos, ou seja, medidas menores ou iguais a zero.

9-

Faa um programa que receba duas notas de 6 alunos, calcule e mostre :

A mdia aritmtica das duas notas de cada aluno;


A mensagem de acordo com a tabela abaixo:

Mdia aritmtica

Mensagem

At 3

Reprovado

Entre 3 e 7

Exame

Acima de 7

Aprovado

O total de alunos aprovados;


O total de alunos de exame;
O total de alunos reprovados;
A mdia da classe.

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 38

Lista 4 Vetor em C++


1- Faa um programa que carregue um vetor com 15 elementos inteiros e verifique a
existncia de elementos iguais a 30, mostrando na tela as posies em que esses elementos
aparecem no vetor.
2- Faa um programa que carregue um vetor de seis elementos numricos inteiros, calcule e
mostre na tela:
A quantidade de nmeros pares e quais so os nmeros pares
A quantidade de nmeros mpares e quais so os nmeros mpares
3- Faa um programa que leia dois vetores (A e B) de cinqenta posies de nmeros inteiros.
O programa deve, ento, subtrair o primeiro elemento de A do ltimo de B, acumulando o
valor, subtrair o segundo elemento de A do penltimo de B, acumulando o valor e assim por
diante. Mostre na tela o resultado da soma de todas as subtraes.

4-

Faa um programa que carregue um vetor com 10 nmeros inteiros digitados pelo
usurio. Em seguida, calcule e mostre o mesmo vetor ordenado de maneira crescente.
0

vetor
vetor
ordenado

3
0

5
1

4
2

2
3

1
4

6
5

8
6

7
7

11
8

9
9

11

5- Faa um programa que l N nmeros informados pelo usurio e armazena em um vetor. O


valor de N informado pelo usurio, ao final exibir o contedo armazenado no vetor, a
quantidade de nmeros positivos e a quantidade de nmeros negativos.
6- Dado o programa em C++ abaixo:
int main()
{
int vetor[6];
for(int i=0; i<6; i++)
{
vetor[i] = i + 2;
}
cout<<"\n"<<vetor[0];
cout<<"\n"<<vetor[2];
cout<<"\n"<<vetor[4];
getch();

Quais so os valores que sero mostrados na tela


para as seguintes posies do vetor?
a) vetor[0] = ____
b) vetor[2] = ____
c) vetor[4] = ____

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 39

7- Uma academia tem 30 alunos. Faa um programa para ler o peso de todos os alunos e logo
em seguida imprimir:

Total de alunos com peso maior que 70 kg


Mdia dos pesos
Maior peso (peso do aluno mais gordo)
Menor peso (peso do aluno mais magro)

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 40

Lista 5 Matriz em C++


1- Faa um programa que carregue uma matriz 2 x 4 com nmeros inteiros, calcule e mostre
na tela:
a quantidade de elementos entre 12 e 20 em cada linha;
a mdia dos elementos pares da matriz.

2-

Faa um programa que declare uma matriz de tamanho 10 x 10. Logo em seguida, o
programa deve em cada posio i, j armazena o valor (i * j). Logo em seguida imprima o
contedo da matriz.

3- Faa um programa que carregue uma matriz 3 x 5 com nmeros inteiros. Em seguida,
verifique a quantidade de elementos digitados entre 15 e 20. Mostre na tela essa quantidade.
4- Observe o cdigo abaixo. Quais so os valores da matriz que sero impressos na tela?
int main ()
{
int mtrx [3][4],i,j,cont=1;
for (i=0;i<3;i++)
{
for (j=0;j<4;j++)
{
mtrx[i][j]=cont+2;
cont++;
}
}
cout<<"\n"<<mtrx[0][1];
cout<<"\n"<<mtrx[1][2];
cout<<"\n"<<mtrx[2][3];
getch();
}

5- Faa um programa que preencha uma matriz 8 x 6 de nmeros inteiros. Em seguida,


calcule e mostre a mdia dos elementos das linhas da matriz.
6- Faa um programa que preencha uma matriz 5 x 3 de nmeros inteiros. Em seguida,
calcule e mostre a quantidade de elementos pares nas colunas da matriz.

7-

Faa um programa que carregue uma matriz 2 X 2, calcule e mostre uma matriz
resultado que ser a matriz digitada multiplicada pelo maior elemento da matriz.

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 41

Lista Extra
Exerccio 1- Faa um algoritmo (pseudocdigo e fluxograma), em seguida o programa em C++
que calcule a rea de um quadrado. O usurio dever digitar o valor do lado do quadrado. Em
seguida dever ser apresentado na tela o valor final da rea do quadrado.
rea do quadrado:
Exerccio 2 - Uma empresa contrata um encanador a R$ 50,00 por dia. Crie um programa que
solicite o nmero de dias trabalhados pelo encanador e imprima a quantia liquida que dever ser
paga, sabendo-se que so descontados 8% para imposto de renda.
Exerccio 3 - (Hemominas/2013 Analista de Sistemas) Se considerarmos que Isejam os dados
do tipo inteiro, Ros reais, Los literais e Bos lgicos, identifique a alternativa que preencha os
espaos dos seguintes dados:
( ) "JOSE"
( ) 0,2132
( ) +33
( ) sim/no
a) B - I - R - L
b) L - I - R - B
c) L - R - I - B
d) B - R - I L
Exerccio 4- Qual das seguintes opes representa a maneira correta de se declarar uma varivel
que armazenar um nmero real em C++?
a) int num;
b) Declare num NUMERICO
c) float num;
d) int num[10];
Exerccio 5 - Suponha que a e b sejam variveis inteiras, e os dados que as mesmas armazenaro
sero fornecidos por um usurio. Com base nestas informaes analise as afirmativas abaixo
colocando V (verdadeiro) ou F (falso) sobre o trecho de cdigo:

SE(a>b)
Ento ESCREVA "a"
SENO SE(b>a)
Ento ESCREVA "b"
SENO
ESCREVA "a, b"

1- ( ) Quando o valor de (a) for maior que o valor de (b),


o valor de (a) ser exibido na tela com sada do programa.
2- ( ) Dada uma situao de valores de (a) e (b) todos os
trs trechos de cdigos sero executados, ou seja o SE,
SENO SE e o SENO sero executados
simultaneamente.
3- ( ) Quando o valor de (a) for igual ao valor de (b) o
texto a,b ser exibidos na tela.

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 42

Exerccio 6 - Transcreva o algoritmo abaixo em um programa na linguagem C++. Em seguida,


explique sucintamente o que o programa faz.
ALGORITMO
DECLARE num1, num2 NUMERICO
ESCREVA Digite o primeiro numero
LEIA num1
ESCREVA Digite o segundo numero
LEIA num2
SE (num1 > num2)
ENTO ESCREVA O maior numero , num1
SE (num2 > num1)
ENTO ESCREVA O maior numero , num2
SE (num1 == num2)
ENTO ESCREVA Os nmeros so iguais
FIM_ALGORITMO
Exerccio 7- Dada a equao do 2 grau ax2 + bx + c = 0, o algoritmo ilustrado pelo fluxograma
deve: receber trs parmetros referentes aos coeficientes a, b e c; identificar se a equao
do segundo grau e; exibir as possveis razes reais para a equao do 2 grau. Sobre o fluxograma,
CORRETO afirmar que:

incio

a, b, c

sim
a == 0

No equao do
segundo grau

no

delta = pow (b,2)


(4 * a * c)

delta < 0

No existem
razes reais

sim

no
sim
delta == 0

X = - b / (2 * a)

no
X1 = (- b + sqrt(delta)) / (2*a)
X2 = (- b - sqrt(delta)) / (2*a)

X1, X2

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

fim

Pgina 43

a) O fluxograma possui como entrada os seguintes dados representados pelas variveis a, b, c,


delta, X, X1 e X2.
b) O fluxograma possui trs possveis sadas que levam ao fim do algoritmo, que dependem
diretamente das tomadas de deciso (sim e no).
c) O fluxograma dever criar as seguintes variveis a, b, c, delta, X, X1 e X2.
d) O fluxograma dever criar apenas as seguintes variveis a, b e c.
Exerccio 8 - (Hemominas/2013 Analista de Sistemas) O programa a seguir tipicamente uma
estrutura:
Enquanto (condio) Faa
(bloco de cdigo)
Fim Enquanto
a) Recursiva.
b) Sequencial.
c) Condicional.
d) Repetio.
Exerccio 9 - Observe o pseudocdigo abaixo, em seguida, faa o fluxograma e o programa em
C++ para o pseudocdigo:
ALGORITMO
DECLARE i, soma, num, qtde, media NUMRICO
soma 0
qtde 0
PARA i 1 at 6 Faa
Incio
ESCREVA "Digite um numero:"
LEIA num
soma soma + num
SE (num == 10)
ENTO qtde qtde + 1
Fim
media soma / 6
ESCREVA "Resultado = ", media
ESCREVA "Quantidade = ", qtde
FIM_ALGORITMO
Exerccio 10 - Faa um programa em C++ que solicite ao usurio o ano em que ele nasceu e
verifique se o ano Bissexto ou no e imprima uma mensagem na tela.
Nota: Um ano bissexto se for divisvel por 4, mas no por 100. Um ano tambm bissexto se for
divisvel por 400.
Elaborao prof. Ivre Marjorie 10/08/2013
Mais informaes: www.professoresalgoritmos.com

Pgina 44

Exerccio 11 - Foi feita uma estatstica em cinco cidades brasileiras para coletar dados sobre
acidentes de trnsito. Foram obtidos os seguintes dados:
a) O cdigo da cidade (ex. 1, 2, 3, 4 e 5)
b) Nmero de veculos de passeio (em 2011)
c) Nmero de acidentes de trnsito com vtimas (em 2011)
Deseja-se saber:
a) Qual o maior e o menor ndice de acidentes de trnsito e a que cidade pertence;
b) Qual a mdia de veculos nas cinco cidades juntas;
c) Qual a mdia de acidentes de trnsito nas cidades com menos de 2000 veculos de
passeio.

Exerccio 12- Escreva um programa em C++ que:


a) leia 7 valores inteiros e armazene estes valores em um vetor
b) crie um vetor ordenado (ordem crescente) a partir dos valores do vetor original
c) imprima na tela os valores pares e mpares do vetor
d) imprima os vetores (original e ordenado)

Exerccio 13 - Faa um programa que preencha uma matriz 3 X 3 com nmeros inteiros, calcule e
mostre a mdia dos elementos da diagonal principal (linha=coluna).

Exerccio 14 - Faa um programa que preencha um matriz 4 x 4. Pea depois que o usurio informe
um valor numrico. O programa dever calcular e mostrar a matriz resultante da multiplicao do
nmero digitado por cada elemento da matriz.

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 45

Dvidas ???
Entre em contato:
Email: ivre.marjorie@gmail.com
Site: www.professoresalgoritmos.com
Facebook: https://www.facebook.com/professoresalgoritmos

Elaborao prof. Ivre Marjorie 10/08/2013


Mais informaes: www.professoresalgoritmos.com

Pgina 46

Vous aimerez peut-être aussi