apostila ex algoritmos 2013 2
DESCRIPTION
mmmTRANSCRIPT
-
Ivre Marjorie Ribeiro Machado
Apostila de Algoritmos e Lgica de
Programao
Exemplos e Exerccios
Linguagem de Programao C++
2 Semestre
2013
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 2 Mais informaes: www.professoresalgoritmos.com
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
-
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.
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 4 Mais informaes: www.professoresalgoritmos.com
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++.
Aula Roteiro Unidade de Ensino
/Roteiro Referncia Bibliogrfica
1 Roteiro 1 Como iniciar uma
aplicao no Dev-C++ Roteiro 1 (livro)
2 Roteiro 2 Estrutura Sequencial Roteiro 2 (livro), Cap. 3 [Ascencio], Cap. 2 [Mizrahi, 2006]
3 Lista 1 Estrutura Sequencial Lista 1 (livro), Cap. 3 [Ascencio], Cap. 2 [Mizrahi, 2006]
4 Roteiro 3 Estrutura Condicional Roteiro 3 (livro), Cap. 4 [Ascencio], Cap. 3 [Mizrahi, 2006]
5 Lista 2 Estrutura Condicional Lista 2 (livro), Cap. 4 [Ascencio], Cap. 3 [Mizrahi, 2006]
6 Roteiro 4 Estrutura de Repetio Roteiro 4 (livro), Cap. 5 [Ascencio], Cap. 4 [Mizrahi, 2006]
7 Lista 3 Estrutura de Repetio Lista 3 (livro), Cap. 5 [Ascencio], Cap. 4 [Mizrahi, 2006]
8 Roteiro 5 Vetor Roteiro 5 (livro), Cap. 6 [Ascencio], Cap. 6 [Mizrahi, 2006]
9 Lista 4 Vetor Lista 4 (livro), Cap. 6 [Ascencio], Cap. 6 [Mizrahi, 2006]
10 Roteiro 6 Matriz Roteiro 6 (livro), Cap. 7 [Ascencio], Cap. 6 [Mizrahi, 2006]
11 Lista 5 Matriz Lista 5 (livro), Cap. 7 [Ascencio], Cap. 6 [Mizrahi, 2006]
12 Lista
extra Matria toda Roteiro 6 (livro), Cap. 7 [Ascencio], Cap. 6 [Mizrahi, 2006]
13 - Avaliao Prtica
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 5 Mais informaes: www.professoresalgoritmos.com
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 Pgina 6 Mais informaes: www.professoresalgoritmos.com
Parte 1- Roteiros Prticos
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 7 Mais informaes: www.professoresalgoritmos.com
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.
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.
Fechar
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 8 Mais informaes: www.professoresalgoritmos.com
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 :
Data :
Descrio: Imprime na tela a mensagem de boas vindas.
*/
#include
int main()
{
cout
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 9 Mais informaes: www.professoresalgoritmos.com
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 . 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
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 10 Mais informaes: www.professoresalgoritmos.com
Como exerccio, digite os exemplos abaixo no Dev-C++ e tente entender o que est ocorrendo:
Exemplo 2:
/*
Programador :
Data :
Descrio:
*/
#include
int main()
{
int num1;
cout > num1;
cout
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 11 Mais informaes: www.professoresalgoritmos.com
Roteiro 2 Estrutura Sequencial em C++
A estrutura sequencial na linguagem C++ consiste em:
# include
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 Pgina 12 Mais informaes: www.professoresalgoritmos.com
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;
coutnum; //Comando de Entrada
//Atribuio de valores
x = 3;
soma = num + x;
//Comando de Sada
coutnum; ) o valor digitado pelo usurio ser armazenado na varivel num.
Para sada de dados em C++, o comando que ser utilizado o cout
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 13 Mais informaes: www.professoresalgoritmos.com
- - x - - Diminui o contedo de X em uma unidade ( o mesmo que x = x - 1)
Operadores matemticos de atribuio:
Operador Exemplo Comentrio
+ = x + = y Equivale a X = X + Y.
- = x = y Equivale a X = X - Y.
* = x * = y Equivale a X = X * Y.
/ = x / = y Equivale a X = X / Y.
% = 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 . Algumas das funes
disponveis nessa biblioteca so:
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);
Funo Finalidade
abs(i) 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.
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 14 Mais informaes: www.professoresalgoritmos.com
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:
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
#include
int main()
{
float a , b , c;
coutb;
coutc;
a = sqrt ( pow(b , 2 ) + pow( c , 2 ) ) ;
cout
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 15 Mais informaes: www.professoresalgoritmos.com
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:
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!
x1: 1
x2: 0
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 16 Mais informaes: www.professoresalgoritmos.com
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
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
int main()
{
if (condio)
{
Bloco de comandos1;
}
else
{
Bloco de comandos2;
}
}
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 17 Mais informaes: www.professoresalgoritmos.com
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 Comentrio
= = x == y O contedo de X igual ao contedo de Y
! = x != y O contedo de X diferente do contedo de Y
< = x = x >= y O contedo de X maior ou igual ao contedo de Y
< x < y O contedo de X menor que o contedo de Y
> x > y O contedo de X maior que o contedo de Y
Operadores lgicos:
Operador Exemplo Comentrio
&& if (x >= 3 && x < 7 ) Significa que a condio verificada ser X >= 3 E X < 7, ou
seja, a condio ser verdadeira se X estiver entre 3 e 7
|| if (x >= 3 || x >= 7 )
Significa que a condio verificada ser X >= 3 OU X
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 18 Mais informaes: www.professoresalgoritmos.com
Exemplos
Exemplo 1 - Digite e compile o cdigo fonte abaixo:
//Lembre-se de colocar as bibliotecas
int main()
{
float valor;
cout valor;
if(valor > 0)
{
cout
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 19 Mais informaes: www.professoresalgoritmos.com
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 num1;
cout num2;
if(num1> num2 )
{
cout
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 20 Mais informaes: www.professoresalgoritmos.com
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 Percentual de aumento
1 Escriturrio 50%
2 Secretrio 35%
3 Caixa 20%
4 Gerente 20%
5 Diretor No tem aumento
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 21 Mais informaes: www.professoresalgoritmos.com
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 Pgina 22 Mais informaes: www.professoresalgoritmos.com
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)
{
quant = quant + 1;
}
}
cout
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 23 Mais informaes: www.professoresalgoritmos.com
Exemplo 3 - Digite e compile o cdigo fonte abaixo:
//Bibliotecas...
int main()
{
int contador, numero, n;
contador = 1;
cout > n;
do {
cout > numero;
cout
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 24 Mais informaes: www.professoresalgoritmos.com
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 Idade
1 At 15 anos
2 De 16 a 30 anos
3 De 31 a 45 anos
4 De 46 a 60 anos
5 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 Votos para os respectivos candidatos
5 Voto nulo
6 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 Pgina 25 Mais informaes: www.professoresalgoritmos.com
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
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 Pgina 26 Mais informaes: www.professoresalgoritmos.com
Mostrando um vetor:
Para mostrar todas as posies de um vetor.
for (int i = 0; i < tamanho do vetor; i++)
{
cout
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 27 Mais informaes: www.professoresalgoritmos.com
menor = notas[0];
for(i=0; i < 5; i++)
{
soma = soma + notas[i];
if (notas[i] < menor)
{
menor = notas[i];
}
}
media = soma / 5;
cout
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 28 Mais informaes: www.professoresalgoritmos.com
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.
0 1 2 3 4 5 6 7 8 9
Vetor Original 3 7 5 15 4 20 2 0 2 18
0 1 2 3 4 5 6 7 8 9
Vetor Invertido 18 2 0 2 20 4 15 5 7 3
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.
0 1 2 3 4 5 6 7 8 9
Vetor incio 3 7 5 15 4 20 2 0 1 18
0 1 2 3 4 5 6 7 8 9
Vetor fim 20 18 15 7 5 4 3 2 1 0
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 29 Mais informaes: www.professoresalgoritmos.com
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
int main()
{
int nota[10][5];
float peso[4][30];
}
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 30 Mais informaes: www.professoresalgoritmos.com
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
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 31 Mais informaes: www.professoresalgoritmos.com
maior = preco[0][0];
for (linha=0;linhamaior)
{
maior = preco[linha][coluna];
}
}
}
cout
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 32 Mais informaes: www.professoresalgoritmos.com
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 Pgina 33 Mais informaes: www.professoresalgoritmos.com
Parte 2 - Listas de Exerccios
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 34 Mais informaes: www.professoresalgoritmos.com
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 Pgina 35 Mais informaes: www.professoresalgoritmos.com
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 5 a 7
Juvenil 8 a 10
Adolescente 11 a 15
Adulto 16 a 30
Snior Acima de 30
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 36 Mais informaes: www.professoresalgoritmos.com
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
At R$ 500,00 5% do salrio
Entre R$ 500,00 e R$
1200,00 12% do salrio
Acima de R$ 1200,00 Sem bonificao
Salrio Auxlio Escola
At R$ 600,00 R$ 150,00
Mais que R$ 600,00 R$ 100,00
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 37 Mais informaes: www.professoresalgoritmos.com
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
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 38 Mais informaes: www.professoresalgoritmos.com
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 Pgina 39 Mais informaes: www.professoresalgoritmos.com
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.
3 5 4 2 1 6 8 7 11 9
1 2 3 4 5 6 7 8 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
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 40 Mais informaes: www.professoresalgoritmos.com
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 Pgina 41 Mais informaes: www.professoresalgoritmos.com
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
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 42 Mais informaes: www.professoresalgoritmos.com
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 Pgina 43 Mais informaes: www.professoresalgoritmos.com
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:
a == 0
incio a, b, c
No equao do
segundo grau
delta = pow (b,2) (4 * a * c)
delta == 0 X = - b / (2 * a) X
delta < 0
No existem
razes reais
X1 = (- b + sqrt(delta)) / (2*a)
X2 = (- b - sqrt(delta)) / (2*a)X1, X2
sim
no
sim
no
sim
no
fim
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 44 Mais informaes: www.professoresalgoritmos.com
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:
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.
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
-
Elaborao prof. Ivre Marjorie 10/08/2013 Pgina 45 Mais informaes: www.professoresalgoritmos.com
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 Pgina 46 Mais informaes: www.professoresalgoritmos.com
Dvidas ???
Entre em contato:
Email: [email protected]
Site: www.professoresalgoritmos.com
Facebook: https://www.facebook.com/professoresalgoritmos