apostila ex algoritmos 2013 2

46
Ivre Marjorie Ribeiro Machado Apostila de Algoritmos e Lógica de Programação Exemplos e Exercícios Linguagem de Programação C++ 2º Semestre 2013

Upload: denisferreira

Post on 10-Nov-2015

41 views

Category:

Documents


0 download

DESCRIPTION

mmm

TRANSCRIPT

  • 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