Ir para o conteúdo
MonkistaPT

Minimo,Maximo,Media em C++

Mensagens Recomendadas

MonkistaPT    0
MonkistaPT

* eu basicamente so precisarei da sintaxe de como se faz o minimo,maximo e media ...

eu safava-me em visual basic xD mas em c++ isto e muito diferente...

Boas...

este e o meu codigo ate agora

Ele regista os dados que inserir e depois se os quiser mostrar tambem funciona...

agora eu queria era achar o minimo, maximo e a media dos valores inseridos em cada campo

Exemplo: inserir a data da matricula do carro

cout<<"Podaj rocznik"<<endl;

1992, 1993,2011

minimo = 1992

Maximo = 2011

Media = 1992 < 2011

e os campos para achar o maximo,minimo,media sao

(capacidade do carro)

cout<<"Podaj pojemnosc"<<endl;

(Ano do carro)

cout<<"Podaj rocznik"<<endl;

(Preço do carro)

cout<<"Podaj cene"<<endl;


#include <cstdlib>
#include <iostream>

using namespace std;
int const n=100;

struct Comissao{
char M_Model[n];
int capacidade;
long int  ano;
int preco;
};

void data(Comissao&);
void OutPut(Comissao*);

int main(int argc, char *argv[])

{
   Comissao Stand[n];
   int numero;
   cout<<"Insere numero de carros"<<endl;
   cin>>numero;
   cout<<"Numero de Carros é: "<<liczba<<endl;

   for(int i=0;i<numero;i++)
   {
   cout<<"Insira os detalhes do carro"<<i+1<<endl;
   dane (Stand [i]);
}

    for(int i=0; i<numero; i++)
                  {
                  cout<<"\n\n Comissao"<<i+1<<endl;
                  OutPut (&Stand[i]);
                  }






   system("PAUSE");
   return EXIT_SUCCESS;
}

                                   void OutPut(comissao *wsk)
                  {

                                   cout<<"Marca, model: "<<wsk->M_Model<<"\n";
                                   cout<<"Capacidade: "<<wsk->Capacidade<<"cm3 \n";
                                   cout<<"Ano: "<<wsk->Ano<<"r. \n";
                                   cout<<"Preco: "<<wsk->Preco<<"zl \n";
                                   }
void dane(comissao &aut)
{

    cout<<"Insere a marca e modelo do carro"<<endl;
    cin.getline(aut.M_Model,n,'#');
    cout<<"Insira a capacidade"<<endl; 
    cout<<"Insira o Ano"<<endl;
    cin>>aut.Ano;
    cout<<"Insira o Preco"<<endl;
    cin>>aut.Preco;
    system("cls");
    }

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1134
HappyHippyHippo

para quem tem PT no nick usa uns nomes de variaveis muito estranhos ...

não consigo perceber o significado destas exactamente por isso ...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MonkistaPT    0
MonkistaPT

para quem tem PT no nick usa uns nomes de variaveis muito estranhos ...

não consigo perceber o significado destas exactamente por isso ...

haha estava em polaco xDD e por causa disso que e muito estranho lol

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
KTachyon    272
KTachyon

Andaste a traduzir alguns nomes de variáveis e esqueceste-te de alguns pelo meio, certo? No programa original ainda estás a utilizar os nomes de variáveis consistentes, correcto? Digo isto porque tens lá uma variável numero e depois uma variável liczba, que aparentemente é número em polaco :)

Podias utilizar classes em vez de structs, visto que estás a trabalhar em C++, mas como podes ainda não ter noções de OOP, não voi criticar.

As operações que farias em VB seriam exactamente as mesmas que fazes em C++. Ciclo for para percorrer todas as structs e ir fazendo o cálculo. Como estás a utilizar uma constante para dimensionar o array, tens sempre que manter esse valor acessível para saberes até onde tens que percorrer o array.

int maximo = 0, minimo = 9999, media = 0;

for (int i = 0; i < number; i++) {
    if (minimo > stand[i].ano) minimo = stand[i].ano;
    if (maximo < stand[i].ano) maximo = stand[i].ano;
    media += stand[i].ano;
}

media = media / number;

Atenção que eu coloquei valores predefinidos para o minimo e maximo de forma a que os anos que aparecem sejam sempre inferiores, mas se acontecer o caso de existirem 0 carros, isto falha redondamente (principalmente porque irás estar a fazer uma divisão por zero no final).

Mas tens uma forma de validação simples, que é confirmar o número de carros antes de realizar este cálculo.

Finalmente, só uma pequena crítica: nomes de variáveis devem começar sempre com letra minúscula excepto se forem constantes (que é relativamente comum identificar com todas as letras maiúsculas).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pikax    172
pikax

Podias utilizar classes em vez de structs, visto que estás a trabalhar em C++, mas como podes ainda não ter noções de OOP, não voi criticar.

As estrutura é basicamente uma class, só que todos os membros são publicos, se ele for aceder aos membros directamente, não precisa de estar a criar class.

Finalmente, só uma pequena crítica: nomes de variáveis devem começar sempre com letra minúscula excepto se forem constantes (que é relativamente comum identificar com todas as letras maiúsculas).

para ficares a saber mais http://pt.wikipedia.org/wiki/Nota%C3%A7%C3%A3o_h%C3%BAngara

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MonkistaPT    0
MonkistaPT

Andaste a traduzir alguns nomes de variáveis e esqueceste-te de alguns pelo meio, certo? No programa original ainda estás a utilizar os nomes de variáveis consistentes, correcto? Digo isto porque tens lá uma variável numero e depois uma variável liczba, que aparentemente é número em polaco :D

Podias utilizar classes em vez de structs, visto que estás a trabalhar em C++, mas como podes ainda não ter noções de OOP, não voi criticar.

As operações que farias em VB seriam exactamente as mesmas que fazes em C++. Ciclo for para percorrer todas as structs e ir fazendo o cálculo. Como estás a utilizar uma constante para dimensionar o array, tens sempre que manter esse valor acessível para saberes até onde tens que percorrer o array.

int maximo = 0, minimo = 9999, media = 0;

for (int i = 0; i < number; i++) {
    if (minimo > stand[i].ano) minimo = stand[i].ano;
    if (maximo < stand[i].ano) maximo = stand[i].ano;
    media += stand[i].ano;
}

media = media / number;

Atenção que eu coloquei valores predefinidos para o minimo e maximo de forma a que os anos que aparecem sejam sempre inferiores, mas se acontecer o caso de existirem 0 carros, isto falha redondamente (principalmente porque irás estar a fazer uma divisão por zero no final).

Mas tens uma forma de validação simples, que é confirmar o número de carros antes de realizar este cálculo.

Finalmente, só uma pequena crítica: nomes de variáveis devem começar sempre com letra minúscula excepto se forem constantes (que é relativamente comum identificar com todas as letras maiúsculas).

ohh muito obrigado pela ajuda :) mas eu como ainda so novo por aqui so nao sei em que parte por o teu codigo ? ja que sempre que o compilo da erro ... devido a estar mal colocado creio eu ....

onde eu ponho esse codigo ?

eu ainda nao sei esses OOP estou basicamente no começo de c++.

e sim andei a traduzir para portugues mas pelo menos to la o percebeste :) hehe

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
KTachyon    272
KTachyon

Pois, eu usei variáveis em português e uma em inglês. Se mudaste tudo para português, certifica-te que utilizas numero em vez de number.

Em principio deverá funcionar depois de receberes as propriedades de todos os carros, depois de algum dos ciclos for no main().

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MonkistaPT    0
MonkistaPT

Pois, eu usei variáveis em português e uma em inglês. Se mudaste tudo para português, certifica-te que utilizas numero em vez de number.

Em principio deverá funcionar depois de receberes as propriedades de todos os carros, depois de algum dos ciclos for no main().

isto parece ate funcionar mas eu nao sei em que sitio e que a devo colocar essa parte do codigo?

e quando compilo da um erro de falta de , ou sei la...

e para mostrar o resultado isso faz automaticamente apos inserires os valores todos ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MonkistaPT    0
MonkistaPT

Mostra como está o código e o erro que dá.


#include <cstdlib>
#include <iostream>

using namespace std;
int const n=100;

struct Comissao{
char M_Model[n];
int capacidade;
long int  ano;
int preco;
};

void data(Comissao&);
void OutPut(Comissao*);

int main(int argc, char *argv[])

{
   Comissao Stand[n];
   int numero;
   cout<<"Insere numero de carros"<<endl;
   cin>>numero;
   cout<<"Numero de Carros é: "<<liczba<<endl;

   for(int i=0;i<numero;i++)
   {
   cout<<"Insira os detalhes do carro"<<i+1<<endl;
   dane (Stand [i]);
}

    for(int i=0; i<numero; i++)
                  {
                  cout<<"\n\n Comissao"<<i+1<<endl;
                  OutPut (&Stand[i]);
                  }






   system("PAUSE");
   return EXIT_SUCCESS;
}

                                   void OutPut(comissao *wsk)
                  {

                                   cout<<"Marca, model: "<<wsk->M_Model<<"\n";
                                   cout<<"Capacidade: "<<wsk->Capacidade<<"cm3 \n";
                                   cout<<"Ano: "<<wsk->Ano<<"r. \n";
                                   cout<<"Preco: "<<wsk->Preco<<"zl \n";
                                   }
void dane(comissao &aut)
{

    cout<<"Insere a marca e modelo do carro"<<endl;
    cin.getline(aut.M_Model,n,'#');
    cout<<"Insira a capacidade"<<endl; 
    cout<<"Insira o Ano"<<endl;
    cin>>aut.Ano;
    cout<<"Insira o Preco"<<endl;
    cin>>aut.Preco;
    system("cls");
    }

int maximo = 0, minimo = 9999, media = 0;

for (int i = 0; i < numero; i++) {
    if (minimo > stand[i].ano) minimo = stand[i].ano;
    if (maximo < stand[i].ano) maximo = stand[i].ano;
    media += stand[i].ano;
}

media = media / numero;

eu meti o no fim e depois da erro ao compilar a dizer:

expected unqualified-id before "for"

expected `,' or `;' before "for"

expected `,' or `;' before "for" 

expected constructor, destructor, or type conversion before '<' token

expected `,' or `;' before '<' token

expected constructor, destructor, or type conversion before '++' token

expected `,' or `;' before '++' token

expected constructor, destructor, or type conversion before '=' token

expected `,' or `;' before '=' token

talvez algum problema na sintaxe ou falta de algo nele ...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HappyHippyHippo    1134
HappyHippyHippo

este código faz parte de que função ?

for (int i = 0; i < numero; i++) {
    if (minimo > stand[i].ano) minimo = stand[i].ano;
    if (maximo < stand[i].ano) maximo = stand[i].ano;
    media += stand[i].ano;
}

media = media / numero;

é por causa desta que TODA a gente diz para identarem o código

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pikax    172
pikax

Não faz mesmo parte do código, fica difícil de perceber por causa da má indentação.

dá uma vista de olhos neste link: http://pt.wikipedia.org/wiki/Indenta%C3%A7%C3%A3o

isto parece ate funcionar mas eu nao sei em que sitio e que a devo colocar essa parte do codigo?

e quando compilo da um erro de falta de , ou sei la...

Conforme, onde queres mostrar os valores da media, maximo, minimo.

No fim disso, passa na wiki do P@P para ver, http://wiki.portugal-a-programar.org/dev_geral:c:bases_de_programacao#exemplo_n_14_funcoes  apesar de ser em C, deves sempre dar uma vista de olhos lá.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MonkistaPT    0
MonkistaPT

Não faz mesmo parte do código, fica difícil de perceber por causa da má indentação.

dá uma vista de olhos neste link: http://pt.wikipedia.org/wiki/Indenta%C3%A7%C3%A3o

Conforme, onde queres mostrar os valores da media, maximo, minimo.

No fim disso, passa na wiki do P@P para ver, http://wiki.portugal-a-programar.org/dev_geral:c:bases_de_programacao#exemplo_n_14_funcoes  apesar de ser em C, deves sempre dar uma vista de olhos lá.

o maximo,minimo e media e suposto aparecer apos eu inserir todos os carros e detalhes

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MonkistaPT    0
MonkistaPT

Sim, mas estás a colocar isso fora de qualquer função, é normal que não funcione. Tem que estar dentro do main().

e como se mete dentro do main ?

e isso tambem faz os ciclos para a capacidades minimas ,maximas e media do carro ?

ou e so do ano do carro ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
KTachyon    272
KTachyon

Man...

int main() {
    // isto é dentro do main
}
// fora do main

int main() {
    // isto é dentro do main
    {
        // isto ainda é dentro do main
    }
    // isto também é dentro do main
}
// fora do main

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade