Program a Cao

Embed Size (px)

DESCRIPTION

programação

Citation preview

  • Programao de Computadores

    Jos Romildo Malaquias

    DECOMUFOP

    2011.1

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 1 / 55

  • A Linguagem C++

    C++ uma linguagem de programao de propsito geral desenvolvida a partirda linguagem C com a incluso de construes para suporte programaoorientada a objetos.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 2 / 55

  • Tipos bsicos: tipo lgico

    Tipo: boolLiterais: true , falseOperaes:not negao&& e lgico|| ou lgico

    Converses:true 1false 00 falsequalquer valor 6= 0 true

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 3 / 55

  • Tipos bsicos: tipo caractere

    Tipo: charModificadores: signed , unsignedLiterais:

    Letras: a, b, . . . , ZAlgarismos: 0, 1, . . . , 9Especiais: \n, \t, \0Nmeros: 97 (o a na tabela ASCII)

    Operaes: entrada e sada

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 4 / 55

  • Tipos bsicos: tipo inteiro

    Tipo: intModificadores:

    signed , unsignedshort, long, long long

    Literais:Decimal: 20Octal: 020Hexadecimal: 0x20

    Operaes:aritmticas: + - * / %relacionais: == != < >=

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 5 / 55

  • Tipos bsicos: tipos reais

    Tipo: float, doubleModificadores: long, long long (aplicados ao double)Literais:

    1.23.231.1.23e101.23E-101.23f

    Operaes:aritmticas: + - * /relacionais: == != < >=

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 6 / 55

  • Tipos bsicos: tipo vazio

    Tipo: voidUso:

    Como tipo de retorno de uma funo no retorna um valor como resultadoComo tipo de ponteiro para um tipo indefinido (ponteiro genrico)

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 7 / 55

  • Variveis

    A memria do computador pode ser vista como um conjunto de caixinhas nasquais podemos colocar valores.Varivel uma caixinha na memria onde armazenamos um valor.Declarao:

    tipo nome;tipo nome1, . . ., nomen;tipo nome = expresso;

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 8 / 55

  • Estrutura de seleo em algoritmos

    Utilizada quando for necessrio escolher uma entre vrias alternativas.Variaes:

    estrutura condicional if elseestrutura condicional ifestrutura condicional switch

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 9 / 55

  • Estrutura de seleo condicional

    A escolha da alternativa definida por uma condio.Uma condio uma expresso booleana, e o seu valor pode ser verdadeiroou falso.Portanto permite a escolha entre duas alternativas.A condio avaliada, podendo resultar em

    verdadeiro: a primeira alternativa escolhida e a segunda ignoradafalso: a segunda alternativa escolhida e a primeira ignorada

    if (condio)comando1;

    elsecomando2;

    condicao

    comando1 comando2

    V F

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 10 / 55

  • Estrutura de seleo condicional: exemplo

    Ler dois nmeros inteiros e mostrar o maior deles#include using namespace std;int main(){

    int x, y;cout > x >> y;if (x > y)

    cout

  • Estrutura de seleo condicional: exemplo

    Ler dois nmeros inteiros e mostrar o maior deles#include using namespace std;int main(){

    int x, y;cout > x >> y;

    if (x > y)cout

  • Estrutura de seleo condicional: exemplo

    Ler dois nmeros inteiros e mostrar o maior deles#include using namespace std;int main(){

    int x, y;cout > x >> y;if (x > y)

    cout

  • Estrutura de seleo condicional: exemplo

    Ler dois nmeros inteiros e mostrar o maior deles#include using namespace std;int main(){

    int x, y;cout > x >> y;if (x > y)

    cout

  • Estrutura de seleo condicional: exemplo

    Ler dois nmeros inteiros e mostrar o maior deles#include using namespace std;int main(){

    int x, y;cout > x >> y;if (x > y)

    cout

  • Estrutura de seleo condicional com uma nica alternativa

    O comando executado somente se a condio for satisfeita.

    if (condio)comando;

    condicao

    comando

    V

    F

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 12 / 55

  • Estrutura de seleo condicional com uma nica alternativa:exemplo

    Ler um nmero no negativo e exibir a sua raiz quadrada.#include #include using namespace std;int main(){

    double x;cout > x;if (x >= 0)

    cout

  • Estrutura de seleo condicional com uma nica alternativa:exemplo

    Ler um nmero no negativo e exibir a sua raiz quadrada.#include #include using namespace std;int main(){

    double x;cout > x;

    if (x >= 0)cout

  • Estrutura de seleo condicional com uma nica alternativa:exemplo

    Ler um nmero no negativo e exibir a sua raiz quadrada.#include #include using namespace std;int main(){

    double x;cout > x;if (x >= 0)

    cout

  • Estrutura de seleo condicional com uma nica alternativa:exemplo

    Ler um nmero no negativo e exibir a sua raiz quadrada.#include #include using namespace std;int main(){

    double x;cout > x;if (x >= 0)

    cout

  • Estrutura de seleo mltipla: switch I

    Permite a escolha de uma entre vrias alternativas.A seleo feita atravs de uma expresso de controle.Cada alternativa uma lista de comandos rotulada com uma constante(literal).A expresso de seleo e as constantes devem ser de um mesmo tipo integral(char, int, short int, long int, etc.)float, double e string no so permitidos.A lista de comandos de uma alternativa s termina com o comando break ouno final do switch.

    Execuo do switch1 Avalia-se a expresso de controle.2 Seleciona-se a primeira alternativa cujo rtulo igual ao valor da expresso

    de controle, e executa-se a lista de comandos correspondente.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 14 / 55

  • Estrutura de seleo mltipla: switch II

    switch (expresso){case constante1:

    comandos1;break;

    case constante2:comandos2;break;

    . . .case constanten:

    comandosn;break;

    default:comando0;

    }

    temp expressao

    temp = constante1 comandos1

    temp = constante2 comandos2

    temp = constanten comandosn

    comandos0

    V

    F

    V

    F

    V

    F

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 15 / 55

  • Estrutura de seleo mltipla: switch III

    O switch executa todos os comandos a partir da alternativa escolhida at ofinal do switch ou at encontrar o comando break.

    necessrio usar o comando break no final de cada alternativa (exceto altima) para evitar que os comandos das alternativas seguintes sejamexecutados.

    As alternativas so mutuamente exclusivas somente quando cada casotermina com o comando break.

    Quando o valor da expresso no coincidir com aqueles especificados nasalternativas e houver a alternativa rotulada com default ento estaalternativa ser escolhida.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 16 / 55

  • Estrutura de seleo mltipla: exemplo

    Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){

    char conceito;cout > conceito;switch (conceito){case A: cout

  • Estrutura de seleo mltipla: exemplo

    Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){

    char conceito;cout > conceito;

    switch (conceito){case A: cout

  • Estrutura de seleo mltipla: exemplo

    Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){

    char conceito;cout > conceito;switch (conceito){

    case A: cout

  • Estrutura de seleo mltipla: exemplo

    Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){

    char conceito;cout > conceito;switch (conceito){case A: cout

  • Estrutura de seleo mltipla: exemplo

    Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){

    char conceito;cout > conceito;switch (conceito){case A: cout

  • Estrutura de seleo mltipla: exemplo

    Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){

    char conceito;cout > conceito;switch (conceito){case A: cout

  • Estrutura de seleo mltipla: exemplo

    Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){

    char conceito;cout > conceito;switch (conceito){case A: cout

  • Estrutura de seleo mltipla: exemplo

    Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){

    char conceito;cout > conceito;switch (conceito){case A: cout

  • Estrutura de seleo mltipla: exemplo

    Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){

    char conceito;cout > conceito;switch (conceito){case A: cout

  • Estrutura de seleo mltipla: exemplo

    Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){

    char conceito;cout > conceito;switch (conceito){case A: cout

  • Estrutura de seleo mltipla: exemplo

    Anlise do conceito obtido pelo aluno na disciplina#include using namespace std;int main(){

    char conceito;cout > conceito;switch (conceito){case A: cout

  • Estrutura de repetio em algoritmos

    Utilizada quando um trecho do algoritmo ou at mesmo todo o algoritmoprecisa ser repetido.O nmero de repeties pode ser fixo ou estar associado a uma condio.Existem estruturas de controle para tais situaes:

    whiledo whilefor

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 18 / 55

  • Nmero indefinido de repeties com teste no incio

    No necessrio saber o nmero de vezes que o trecho do algoritmo deve serrepetido.Baseia-se na anlise de uma condio (expresso booleana).A repetio ser feita enquanto a condio for verdadeira.

    while (condio)comando;

    condicao comandoV

    F

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 19 / 55

  • Nmero indefinido de repeties com teste no incio:exemplo

    Mostrar os nmeros inteiros de 1 at 5#include using namespace std;int main(){

    int contador = 1;while (contador

  • Nmero indefinido de repeties com teste no incio:exemplo

    Mostrar os nmeros inteiros de 1 at 5#include using namespace std;int main(){

    int contador = 1;

    while (contador

  • Nmero indefinido de repeties com teste no incio:exemplo

    Mostrar os nmeros inteiros de 1 at 5#include using namespace std;int main(){

    int contador = 1;while (contador

  • Nmero indefinido de repeties com teste no incio:exemplo

    Mostrar os nmeros inteiros de 1 at 5#include using namespace std;int main(){

    int contador = 1;while (contador

  • Nmero indefinido de repeties com teste no incio:exemplo

    Mostrar os nmeros inteiros de 1 at 5#include using namespace std;int main(){

    int contador = 1;while (contador

  • Nmero indefinido de repeties com teste no incio

    O comando while pode ser definido recursivamente como:

    while (condio)comando;

    if (condio){

    comando;while (condio)

    comando;}

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 21 / 55

  • Problemas I

    1 Escreva um programa que leia um nmero inteiro, calcule e mostre o fatorialdeste nmero.

    Definio recursiva de fatorial

    n! ={

    1 , se n = 0n (n 1)! , se n > 0

    Definio interativa de fatorial

    n! = 1 2 (n 1) n

    Observe que ser necessrio realizar vrias multiplicaes para encontrar ofatorial: repetir as multiplicaesUtilize uma varivel auxiliar para contar de 1 at n.Utilize uma varivel para armazenar o resultado (o produto parcial).Para cada valor do contador, efetuar uma multiplicao, atualizando o produtoparcial.Ao final das repeties, o produto parcial ser o fatorial desejado.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 22 / 55

  • Problemas II

    2 Faa um programa que leia um valor n inteiro e positivo, calcule e mostre ovalor de E , dado pelo frmula:

    E = 1+11!

    +11!

    +12!

    +13!

    + + 1n!

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 23 / 55

  • Problemas III

    3 Faa um programa que leia as notas de seis alunos, calcule e mostre a mdiaaritmtica das notas.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 24 / 55

  • Problemas IV

    4 Faa um programa que leia as trs notas de todos os alunos de uma turma,calcule e mostre:a) a mdia aritmtica das trs notas de cada aluno;b) a situao do aluno, dada pela tabela

    mdia aritmtica situaoinferior a 3 reprovadoentre 3 (inclusive) e 7 exame especialigual ou superior a 7 aprovado

    c) o total de alunos aprovados;d) o total de alunos de exame especial;e) o total de alunos reprovados;f) a mdia da turma.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 25 / 55

  • Nmero indefinido de repeties com teste no final

    No necessrio saber o nmero de vezes que o trecho do algoritmo deve serrepetido.Baseia-se na anlise de uma condio (expresso booleana).Primeiro executa-se o trecho a ser repetido, para depois verificar a condiao.A repetio ser feita enquanto a condio for verdadeira.

    docomando;

    while (condio);

    comando

    condicao V

    F

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 26 / 55

  • Nmero indefinido de repeties com teste no final: exemplo

    Ler nmeros inteiros at o nmero zero ser digitado#include using namespace std;int main(){

    int numero;int quantidade = 0;cout numero;if (numero != 0)quantidade += 1;

    }while (

    numero != 0

    );cout

  • Nmero indefinido de repeties com teste no final: exemplo

    Ler nmeros inteiros at o nmero zero ser digitado#include using namespace std;int main(){

    int numero;

    int quantidade = 0;

    cout numero;if (numero != 0)quantidade += 1;

    }while (

    numero != 0

    );cout

  • Nmero indefinido de repeties com teste no final: exemplo

    Ler nmeros inteiros at o nmero zero ser digitado#include using namespace std;int main(){

    int numero;

    int quantidade = 0;

    cout numero;if (numero != 0)quantidade += 1;

    }while (

    numero != 0

    );

    cout

  • Nmero indefinido de repeties com teste no final: exemplo

    Ler nmeros inteiros at o nmero zero ser digitado#include using namespace std;int main(){

    int numero;

    int quantidade = 0;

    cout numero;

    if (numero != 0)quantidade += 1;

    }while (numero != 0);

    cout

  • Nmero indefinido de repeties com teste no final: exemplo

    Ler nmeros inteiros at o nmero zero ser digitado#include using namespace std;int main(){

    int numero;int quantidade = 0;cout numero;if (numero != 0)quantidade += 1;

    }while (numero != 0);cout

  • Nmero indefinido de repeties com teste no incio

    O comando do while pode ser definido recursivamente como:

    docomando;

    while (condio);

    comando;if (condio)

    docomando;

    while (condio);

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 28 / 55

  • Nmero definido de repeties

    Sabe-se o nmero de vezes que um trecho do programa deve ser repetido.

    for (inicialiazao; condio; incremento)comando;

    1 O comando inicializao executadouma nica vez, no incio do comando derepetio.

    2 A expresso booleana condio avaliada para decidir se continuarepetindo:

    falso termina o comando de repetioverdadeiro repetir:a) executa o comando no corpo da

    estrutura de repetiob) executa o comando incremento a

    fim de alterar o estado dacomputao, preparando para aprxima repetio

    c) volta na avaliao da condio em 2e repete o processo.

    inicializacao

    condicao comando incrementoV

    F

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 29 / 55

  • Nmero definido de repeties: exemplo

    Calcular o fatorial de um nmero natural.#include using namespace std;int main(){

    cout > n;int i;int fat = 1;for (i = 1; i

  • Nmero definido de repeties: exemplo

    Calcular o fatorial de um nmero natural.#include using namespace std;int main(){cout > n;

    int i;int fat = 1;for (i = 1; i

  • Nmero definido de repeties: exemplo

    Calcular o fatorial de um nmero natural.#include using namespace std;int main(){cout > n;int i;int fat = 1;

    for (i = 1; i

  • Nmero definido de repeties: exemplo

    Calcular o fatorial de um nmero natural.#include using namespace std;int main(){cout > n;int i;int fat = 1;for (i = 1; i

  • Nmero definido de repeties: exemplo

    Calcular o fatorial de um nmero natural.#include using namespace std;int main(){cout > n;int i;int fat = 1;for (i = 1; i

  • Nmero definido de repeties: exemplo

    Calcular o fatorial de um nmero natural.#include using namespace std;int main(){cout > n;int i;int fat = 1;for (i = 1; i

  • Estruturas de Dados

    Valores simples: indivisveisnmeros inteiros: 12, 324, -1324nmeros fracionrios: 0.212, -132.412, 78.13e-17caracteres: B, @, nbooleanos: true, falseValores compostos: formados por partes:registro de um livro na biblioteca:

    ttuloautoreditoraano publicao

    notas dos alunos em uma prova:nota do primeiro alunonota do segundo aluno...nota do ltimo aluno

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 31 / 55

  • Estruturas de Dados

    Valores compostos so estruturas de dados.Estruturas homogneas: todos os componentes so do mesmo tipo.

    vetores

    Estruturas heterogneas: os componentes podem ser de diferents tipos.registros (structs)unies

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 32 / 55

  • Vetores

    VetorEstrutura formada por uma sequncia de variveis do mesmo tipo.Identificadas por um nico nome.Cada componente identificado por um ndice, um nmero inteiro quereferencia sua localizao dentro da estrutura.Em C++ os ndices utilizados para identificar as posies em um vetorcomeam sempre em 0 (zero) e vo at o tamanho do vetor menos umaunidade.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 33 / 55

  • Vetores

    DeclaraoNa declarao de uma varivel vetor especificamos:

    o tipo dos componentes do vetoro nome da varivelo nmero de componentes que formam o vetoros elementos do vetor (opcional)

    tipo nome[tamanho];tipo nome[n] = { e0, e1, . . ., en1 };tipo nome[] = { e0, e1, . . ., en1 };

    Exemplos:

    int notas[10];bool resultados[2*n+3];double alfa[3] = { 1.2, -0.45, 5.5 };string mensagens[] = { "comeco", "meio", "fim", "end" };

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 34 / 55

  • Vetores

    IndexaoOperao bsica com vetor: indexaoPermite selecionar um componente especfico da estrutura pela sua posio(ndice)O ndice do primeiro elemento 0 (zero)O ndice do ltimo elemento o tamanho do vetor menos um

    vetor[ndice]

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 35 / 55

  • Vetores

    Exemplo: exibe um elemento do vetor

    string mensagens[] = { "comeco", "meio", "fim", "end" };cout

  • Vetores

    Exemplo: modifica um elemento do vetor

    int vet[] = { 10, 20, 30 };vet[2] = 2*vet[0] + vet[1] - vet[2];cout

  • Vetores

    Exemplo: exibe todos os elementos do vetor

    int vet[] = { 10, 20, 30 };for ( int i = 0; i < 3; i++)cout

  • Vetores

    Exemplo: preenchendo um vetor

    cout > tamanho;

    double vet[tamanho];

    for ( int i = 0; i < tamanho; i++){

    cout

  • Vetores

    Exemplo: mdia dos elementos do vetor

    const int n = 5;double notas[n] = { 1.1, 2.2, 3.3, 4.4, 5.5 };double soma = 0.0;for ( int i = 0; i < n; i++)

    soma += notas[i]double media = soma / n;

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 40 / 55

  • Vetores: Problemas I

    ProblemaFaa um programa que leia as notas dos alunos de uma turma, determine e mostrea mdia das notas, e o nmero de alunos com notas superiores ou iguais mdia.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 41 / 55

  • Vetores: Problemas II

    ProblemaFaa um programa que simule o lanamento de um dado com vinte jogadas.Mostrar os nmeros sorteados e a frequncia com que apareceram.

    Para gerar nmeros aleatrios em C++, temos duas funes que trabalham deforma semelhante:

    rand

    random

    Estas duas funes geram nmeros aleatrios de 0 a RAND_MAX (definido nabiblioteca stdlib.h). Se voc quiser gerar valores randmicos em umadeterminada faixa numrica, basta fazer assim:

    numero = rand() % valor_maximo;

    ou

    numero =random() % valor_maximo;

    Para us-las, porm, necessrio inicializar o gerador de nmeros aleatrios com afuno srand.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 42 / 55

  • Vetores: Problemas III

    ProblemaUma pequena loja de artesanato possui um vendedor e comercializa dez tipos deobjetos. O vendedor recebe, mensalmente, salrio de R$ 400,00, acrescido de 5%do valor total de suas vendas. O valor unitrio dos objetos deve ser informado earmazenado em um vetor; a quantidade vendida de cada pea deve ficar em outrovetor, mas na mesma posio. Crie um programa que receba os preos e asquantidades vendidadas, armazenando-os em seus respectivos vetores (ambos comtamanho dez). Depois, determine e mostre:

    um relatrio contendo quantidade vendida, valor unitrio e valor total decada objeto; ao final, dever ser mostrado o valor geral das vendas e o valorda comisso que ser paga ao vendedor;o valor do objeto mais vendido e sua posio no vetor (no se preocupe comempates).

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 43 / 55

  • Vetores: Problemas IV

    ProblemaFaa um programa que preencha um vetor com os modelos de cinco carros(exemplos de modelos: fusca, gol, vectra, etc.), carregue outro vetor com oconsumo desses carros, isto , quantos quilmetros cada um deles faz com umlitro de combustvel, calcule e mostre:

    o modelo de carro mais econmico,quantos litros de combustvel cada um dos carros cadastrados consome parapercorrer uma distncia de de mil quilmetros.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 44 / 55

  • Matrizes

    matriz: varivel composta homognea multidimensional.Formada por uma sequncia de variveis, todas do mesmo tipo, com omesmo nome, e alocadas sequencialmente na memria.Os componentes so identificados por um conjunto de ndices.Utiliza-se um ndice para cada dimenso.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 45 / 55

  • Matrizes

    DeclaraoNa declarao de uma varivel matriz especificamos:

    o tipo dos componentes da matrizo nome da varivelo nmero de componentes que formam cada dimenso da matrizos elementos do vetor (opcional)

    tipo nome[dimenso1][dimenso2]...[dimensoN];

    Exemplos:

    int notas[2][6];float y[2][4][3];char mat [4][3] [= { { A, E, I },

    { 6, 5, 4 },{ #, @, = },{ m, n, z }

    };Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 46 / 55

  • Matrizes

    IndexaoPermite selecionar um componente especfico da estrutura pela sua posio,dada por um conjunto de ndices.

    Exemplos:

    int mat[2][4] = { { 10, 20, 30, 40}, {9, 8, 7, 6} };

    // acessar um elemento da matrizcout

  • Matrizes

    Problema 1Obter do usurio uma matriz m3x2, calcular e mostrar a matriz r3x2 resultante damultiplicao de todos os elementos de m pelo seu maior elemento.

    Problema 2Faa um programa que preencha uma matriz 10x3 com as notas de dez alunos emtrs provas. O programa dever mostrar um relatrio com o nmero dos alunos(nmero da linha) e a prova em que cada aluno obteve menor nota. Ao final dorelatrio, dever mostrar quantos alunos tiveram menor nota em cada uma dasprovas: na prova 1, na prova 2 e na prova 3.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 48 / 55

  • Registros

    Registros so estruturas de dados capazes de agregar vrias informaes.Os componentes de um registro so chamados de campos.Os campos podem ser de tipos diferentes.Por isto registros so estruturas de dados heterogneas.Os tipos registro so novos tipos de dados definidos pelo programador, deacordo com a sua necessidade.Em C++ os registros so chamados de struct.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 49 / 55

  • Registros: Uso

    Utiliza-se a palavra reservada struct para declarar um novo tipo registro.A seleo de um componente feita pelo operador . (ponto).

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 50 / 55

  • Registros: Exemplo de uso

    // declaracao de um tipo registrostruct conta_bancaria{

    int numero;string titular;double saldo;

    };

    // declaracao de variaveis de tipo registrostruct conta_bancaria conta1;struct conta_bancaria conta2 = { 10231, "Ivo Mascarenhas", 125.45 };struct conta_bancaria todas_as_contas[10];

    // acesso aos componentes de um registrocout

  • Registros: Problema 1

    Problema 1Faa um programa que realize o cadastro de contas bancrias com as seguintesinformaes: nmero da conta, nome do cliente, e saldo. O banco permitir ocadastramento de apenas 15 contas e no poder haver mais que uma conta como mesmo nmero. Crie o menu de opes a seguir e implemente cada uma dasopes.

    Menu

    1 - Cadastrar nova conta2 - Visualizar todas as contas de determinado cliente3 - Excluir a conta com menor saldo0 - Terminar

    Escolha uma opcao:

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 52 / 55

  • Registros: Problema 2

    Problema 2Crie um programa para ler o cdigo, o sexo (M masculino; F feminino) e onmero de horas/aula ministradas pelos professores de uma escola durante umms. Sabe-se que um professor ganha R$40,50 por hora-aula. Aps a leitura, oprograma dever mostrar:

    uma listagem contendo o cdigo, o salrio bruto, o desconto calculado deacordo com a tabela 1, e o salrio lquido de todos os professores;a mdia aritmtica dos salrios brutos dos professores do sexo masculino;a mdia aritmtica dos salrios brutos dos professores do sexo feminino.

    sexo at 70 horas/aula ao ms mais que 70 horas/aula ao msmasculino 10% 8%feminino 7% 5%

    Tabela: Descontos salariais

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 53 / 55

  • Funes: Problemas

    1 Elabore um programa contendo uma sub-rotina (funo) que receba as trsnotas de um aluno como parmetros e uma letra. Se a letra for A, asub-rotina dever calcular a mdia aritmtica das notas do aluno; se for P,dever calcular a mdia ponderada, com pesos 5, 3 e 2. A mdia calculadadever ser devolvida ao principal para, ento, ser mostrada.

    2 Faa um programa com uma funo que receba como parmetro a hora deincio de a hora de trmino de um jogo, ambas subdivididas em dois valoresdistintos: horas e minutos. A funo dever retornar a durao expressa emminutos, considerando que o tempo mximo de durao de um jogo de 24horas e que ele pode comear em um dia e terminar no outro.

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 54 / 55

  • FIM

    Jos Romildo Malaquias (DECOM UFOP) Programao de Computadores 2011.1 55 / 55