Soma de dois numeros (Muito básico)

Started by Skipolit, 09 de January , 2008, 09:29:46 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

demon hyo

sobre classes é o seguinte:

Você começou um novo projeto em C++, que é uma linguagem orientada a objetos.

Objetos são elementos que herdam características da classe ao qual ele pertence.

Por exemplo:

"Eu tenho uma classe Bolo, essa classe tem vários elementos como:

-Número de ovos (numOvos no exemplo abaixo), quantidade de farinha, açucar, margarina, chocolate, etc (variáveis)

-Como preparar o bolo (métodos [funções, procedimentos, subs, blablabla])

Só que Bolo não é a classe principal do meu programa (a que contém o código de execução), vou chamar a classe principal do meu programa de Main. Agora que essa classe Bolo está definida, eu posso criar em Main um objeto "do tipo" de Bolo (tipos e classes são coisas, em essência, diferentes, mas possuem muitas semelhanças). Esse novo objeto, a qual eu vou dar o nome de boloDeIogurte tem dentro dele todas as informações sobre seu preparo e ingredientes, como previsto na classe Bolo.

Se eu quero definir o número de ovos que esse boloDeIogurte vai usar eu devo então atribuir um valor a essa variável dentro do objeto boloDeIogurte, usando algo como:

boloDeIogurte.numOvos = 6"

O uso de objetos facilita bastante o ato de programar e a compreensão do código quando você tem muitos elementos que possuem as mesmas características (num jogo de futebol por exemplo, onde existem jogadores (a classe) e cada jogador em especial (um objeto) tem as mesmas características (força do chute, velocidade, drible, etc), só que com valores diferentes para cada jogador.)

Para criar um código simples e que não tenha necessidade de muitos elementos semelhantes, você pode programar normalmente na classe principal, mas se usar muitos elementos semelhantes pode ganhar mais tempo, produtividade e legibilidade do código se utilizar classes e orientação a objetos.

demon hyo

lcs

ficou faltando definir quem é x,

você pode atribuir um valor a x usando "="

depois de "int x", e antes do if coloque:

scanf(%d, &x);

l u b c k e

Quote from: "lcs"Então eu abri a parte de console e tal, e la tinha um exemplo de como imprimir na tela o texto hello world. Ai eu fui tentar fazer um if de idade padrão mesmo.. so que num saiu.

#include "stdafx.h"

int main(int argc, char* argv[])
{
   int x;

      if (x! >= 18)
      {
         printf("Você é maior de idade\n");
      }

      else
      {
         printf("Você é menor de idade\n");
      }
}


Eu acho que esta faltando dizer ao programa de onde vai sair o valor de x. mais não soube como faze-lo..

valeu

e l u b c k e , depois me passa por mp seu msn pra add, a gnt pode continuar nessa discussão aqui, mais quem sabe no futuro não possamos se ajudar mutuamente..

fallow

LCS, há um tempo atrás eu vinha fazendo para o darkers várias aulas básicas de C++, deste mesmo nível que você está intereçado, já que a maioria não sabe é por onde começar e acha que programação é um bicho de sete cabeças. Bom, eu tenho aqui um exemplo da minha segunda aula que eu acredito que vá te ajudar muito:

Quote#include
#include

using namespace std;

int main()
{
    int senha =1206, senha_user;
    cout<<"Digite a senha"<    cin>>senha_user;
    
    if (senha !=senha_user)
    {
              cout<<"\a ACESSO NEGADO \n tente novamente"<              cout<<"digite a senha correta desta vez, imbecil"<              cin>>senha_user;
              if (senha!=senha_user)
              {
                  cout<<"\a\a\a ACESSO NEGADO"<                  return 0;
              }
              else
              {
                  cout<<"ACESSO PERMITIDO"<                  cout<<"User"<                  cout<<"Bruno"<                  cout<<"Bruna"<              }                                  
    }
    else
    {
                   cout<<"ACESSO PERMITIDO"<                   cout<<"User"<                   cout<<"Bruno"<                   cout<<"Bruna"<    }
return 0;
}

Se tiver alguma dúvida ai é só perguntar...


Até mais...


Ps: meu MSN está na minha ass... mailto:lubcke@hotmail.com">lubcke@hotmail.com

Contato]

demon hyo

Quote from: "demon hyo"lcs

ficou faltando definir quem é x,

você pode atribuir um valor a x usando "="

depois de "int x", e antes do if coloque:

scanf(%d, &x);

ficou faltando uma parte:

"você pode atribuir um valor a x usando "=" manualmente, colocando depois de "int x", e antes do if:

x = *um valor inteiro qualquer, sem asteriscos*

ou

pedir leitura de entrada no console (o programa espera você digitar um valor e apertar enter) usando o scanf. Para usar scanf você deve incluir no começo do código a biblioteca stdio.h com

"#include " (sem aspas), logo depois de #include "stdafx.h"

lembrando que para usar scanf, você deve indicar o tipo de variável com o % e depois o nome da variável precedido de & (vai entender melhor depois de ver ponteiros, mas até lá há um grande caminho...)

demon hyo

Seu código ficaria assim:

Quote#include
#include

int main(int argc, char* argv[])
{
   int x;
        scanf(%d, &x);

      if (x! >= 18)
      {
         printf("Você é maior de idade\n");
      }

      else
      {
         printf("Você é menor de idade\n");
      }
}

A vantagem do "scanf" e "printf" sobre o "cin" e o "cout" está na performance, a vantagem do cin/cout está na facilidade de usar, já que não precisa identificar o tipo de dado para ser usado

lcs

demon hyo valeu sobre a explicação de classes..

l u b c k e o codigo aqui não funcionou , eu tenho que incluir alguma coisa aqui?

demon hyo tb não funcionou diz que ha 9 erros.

sobre a entrada de dados eu entendi.

valeu
Pra que viver sem sentido.

demon hyo

se você conseguiu compilar o seu vai conseguir compilar o meu.

Não usa o visual c++ que o compilador dele tem umas frescuras, pega o dev-c++

demon hyo

ps:

use "stdio.h" em vez de quando as bibliotecas não estiverem na pasta ou no path do código que vai ser compilado.

lcs

bom desculpem a demora para responder. é que estive ocupado.. estou baixando o dev c++ e assim que testar direi os resultados.
Pra que viver sem sentido.

lcs

parece que era a porcaria do compilador mesmo.. haw haw.. o melhor ainda .. o dev eh em portuga.
Pra que viver sem sentido.

l u b c k e

Quote from: "lcs"parece que era a porcaria do compilador mesmo.. haw haw.. o melhor ainda .. o dev eh em portuga.



Sim LCS, eu instalei o Visual aqui para testar para você e funcionou normalmente. Estava até baixando o Windows Media Encoder para fazer uma demonstração para você.

Bom, se precisar estamos aqui para isso.

Já te passei meu MSN.


Até mais...

Contato]

lcs

tipo então o cin e o cout teriam a mesma função que um input box no VB?

eu li alguma coisa sobre ponteiros , parece que é um enderço atribuido na variavel para quando o processador precisar não necessitar ficar procurando pela memoria ..

eh isso/?

bom agora vo tentar fazer alguma coisa que calcule a média de um desgraçado.

e lubcke ja add vc no msn, mas so posso entrar de fds se tu tive on, a gnt troca uma ideia.
Pra que viver sem sentido.

demon hyo

Sim, o ponteiro indica a "posição" na memória, porém as linguagens que não utilizam ponteiros não necessariamente ignoram a existência dele.

Em C usando scanf e printf você precisa identificar o tipo de variável e o endereço na memória. Pelo tipo de variável você tem como saber o tamanho que a variável ocupa na memória em bits e unindo isso à posição na memória (o ponteiro) você tem uma descrição exata "geográfica" de onde aquele dado está contido.

Porém usando cin e cout você também utiliza ponteiros, só que no modo "oculto". Acho que nenhuma linguagem moderna faz uma varredura na memória toda vez que um ponteiro não é especificado.

O arquivo executável tem uma área de espaço na memória. Quando executado ele se aloja na memória e uma boa parte de seu tamanho é alocada para o armazenamento das variáveis (variáveis externas ou não definidas no código, como as de tamanho variável, podem crescer indefinidamente, por isso não são alocadas no executável, mas chamadas por procedimento externo.), as linguagens modernas de alto-nível, além de criarem esse espaço para os dados, elas também ocupam um pequeno espaço identificando o tipo de variável e o "ponteiro" dela.

Isso causa uma significativa perda de performance:

usando scanf, por exemplo, o programa já sabe qual o tipo da variável, e onde ela está na memória, por isso não precisa consultar nada, apenas realizar a ação (no caso, fazer a captura da liberação do buffer de teclado)

No caso do cin o programa não sabe qual o tamanho da variável ou onde está na memória, aí tem que acessar esses dados na memória do executável e depois realizar a operação. Isso já faz com que o processo leve mais tempo e recursos de processamento que o scanf

lcs

Entendi o que são ponteiros.

ai esta o codigo que fiz para calcular a média.Porém se vc compilar ira perceber que ele não possui a quebra de linha,
por exemplo, quando ele vai mostrar a média ele ja pega a linha de baixo e coloca na frente.

Outra coisa como faço por exemplo para uma função if validar uma situação e se for correta continuar e se for errada voltar .

Exemplo, tenho que estipular as notas entre 0 e 10, caso coloque uma nota acima desse valor deve -se exibir um aviso e voltar para o usuario colocar a nota correta.

Quote#include
using namespace std;
main ()

 {
     float nota1,nota2,nota3,nota4,media;

    cout << "Digita a primeira nota: ";
    cin >> nota1;
 
     
     cout << "Digite a segunda nota:";
     cin >> nota2;
     
     cout << "Digite a terceira nota:";
     cin >> nota3;

     
     cout << "Digite a quarta nota:";
     cin >> nota4;


     media = (nota1 + nota2 + nota3 + nota4)/ 4;

     printf("%.2f", media);

     printf("obrigado");

     system("pause>>NULL");

}


Pra que viver sem sentido.

l u b c k e

Amigo, existem um milhão de formas de fazer isso, mas uma meio gambiarra é:

Quotedo{
    cout << "Digita a primeira nota: ";
    cin >> nota1;
}while(nota1<=10 && nota1>=0)

Você pode implementar isso como uma função de verificação, e chamar essa fução para verificar cada variável inserida.

E para aproveitar que está aprendendo ponteiros, endereçar as variáveis da função, ao invés de usar importação de variável. Além de pode criar uma header, só por sarro, para aprender a usar e criar uma biblioteca. Elas são muito úteis no reaproveitamento de código.

Até mais...

Ps: Lembre-se, essa é só uma solução, vai da cabeça do programador.

Até mais...

Contato]