1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Alguém me poderia ajudar? [C++] :(

Discussão em 'Programação' iniciada por GraveSleepy, 25 de Março de 2009. (Respostas: 5; Visualizações: 839)

  1. GraveSleepy

    GraveSleepy Power Member

    Tenho aqui uma ficha para entregar amanhã, são exercicios C++ e estou aqui encravado em 2, passo a colar o problema:

    1º - "Tendo uma variável conta do tipo estrutura, esta variável contém quatro campos: duas quantidades inteiras – num_cont e saldo, um caracter individual – tipo_conta e um vector caracter com 80 elementos – nome[80]. Construa um programa que, utilizando duas funções: uma para ler valores e outra para exibir valores; permita introduzir vários clientes, sendo o utilizador a dizer quantos clientes quer introduzir."

    Depois consequentemente não consigo fazer este porque não consigo o primeiro.

    2º - Reescreva o programa anterior de modo a utilizar apontadores para manipular a estrutura.

    Estou farto de puxar pela cabeça mas estou mesmo a rasca :(

    Need help
     
  2. Ronnie_03

    Ronnie_03 Power Member

    Tive a fazer uma versão do exercicio 1 para te dar uma ajuda. Agora tenta fazer tu uma versão do dois.

    Código:
    [/COLOR][/SIZE][/COLOR][/SIZE]
    [SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]#include[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]<iostream>
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]#include[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]<vector>
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]using[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]namespace[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] std;
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]struct[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] conta
    {
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] num_conta;
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] saldo;
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]char[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] tipo_conta;
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]char[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] nome[80];
    };
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] le_clientes(vector<conta> &cliente);[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#008000][SIZE=2][COLOR=#008000]//função para pedir informação relativa a um cliente
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] visualiza_clientes([/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]const[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] vector<conta> &cliente);[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#008000][SIZE=2][COLOR=#008000]//função para mostrar um cliente
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] main()
    {
    cout << [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Numero de clientes: "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff];
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]unsigned[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] comp;
    cin >> comp;
    vector<conta>clientes(comp);
    le_clientes(clientes);
    visualiza_clientes(clientes);
    system([/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"pause"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff]);
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]return[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] 0;
    }
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] le_clientes(vector<conta> &cliente)
    {
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]unsigned[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] comp = cliente.size();
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]unsigned[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] i = 0;
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]while[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] (i < comp)
    {
    conta cliente1;[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#008000][SIZE=2][COLOR=#008000]//criar uma variavel auxiliar do tipo cliente
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff]cout << [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Introduza numero de conta: "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff];
    cin >> cliente1.num_conta;
    cout << [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Introduza saldo: "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff];
    cin >> cliente1.saldo;
    cout << [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Introduza tipo de conta: "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff];
    cin >> cliente1.tipo_conta;
    cout << [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Introduza o nome do cliente: "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff];
    cin >> cliente1.nome;
    cliente[i] = cliente1;
    cout << endl;
    ++i;
    }
    }
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]void[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] visualiza_clientes([/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]const[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] vector<conta> &cliente)
    {
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]unsigned[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] comp = cliente.size();
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]unsigned[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] i = 0;
    [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]while[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] (i < comp)
    {
    cout << [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Numero de conta: "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] << cliente[i].num_conta << endl;
    cout << [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Saldo: "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] << cliente[i].saldo << endl;
    cout << [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Tipo de conta: "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] << cliente[i].tipo_conta << endl;
    cout << [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#a31515][SIZE=2][COLOR=#a31515]"Nome do cliente: "[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ffffff][SIZE=2][COLOR=#ffffff] << cliente[i].nome << endl;
    cout << endl;
    ++i;
    }
    }
    
    Cumps
     
  3. GraveSleepy

    GraveSleepy Power Member

    :wow: Muito muito obrigado mesmo :D

    Vou ver que faço do 2.
     
    Última edição: 26 de Março de 2009
  4. GraveSleepy

    GraveSleepy Power Member

    Boas novamente, alguém me consegue dar uma ajuda no exercicio 2? Please...:(
     
  5. fm.

    fm. Power Member

    Penso que se te empenhasses um bocadinho mais eras capaz de fazer o exercício.

    O 1º já te foi dada a papa toda, agora tens de ver aquilo que foi dito e tentar resolver o exercício seguinte por ti mesmo.
    Porque é que não nos dizes como é que estás a pensar fazer? um snippetzinho que seja? Pedir exercícios resolvidos não te vai levar a lado nenhum.

    Digo isto porque mais tarde vais precisar de pensar por ti, e ninguém te poderá ajudar. Isto se.. quiseres ter um emprego.
     
  6. Ronnie_03

    Ronnie_03 Power Member

    A única diferença deste para o 1 é na declaração da função (em vez de ser, por exemplo, void função(string &str); passa a ser void função(string *str); e depois na main ao chamares a função tens de passar como argumento o endereço, por exemplo função(&str1);

    Acho que com isto já deves saber fazer o exercicio, mas para a próxima acho que de facto devias tentar fazer alguma coisa, por exemplo podias ter feito o programa todo a passar os argumentos por valor. Se a dificuldade era só passar por referência ou com apontadores depois perguntavas como é que isso se fazia.


    Cumps
     

Partilhar esta Página