Ir ao conteúdo
  • Cadastre-se

Erro em código Dev-C++


ManoelV

Posts recomendados

Estou aprendendo programação e iniciei com C por causa de um curso online. E um dos exercícios propostos na apostila era criar um programa que resolvesse uma operação matemática:

// Calculo.cpp#include <iostream>	#include <conio.h>using namespace std;int main(){int numero1, numero2, soma, multiplica, subtrai;cout<<"\nInforme um numero inteiro";cin>>"\numero1";cout<<"\nInforme outro numero inteiro";cin<<"\numero2";soma = numero1 + numero2;multiplica = numero1 * numero2;subtrai = soma - multiplica;cout<< "\n Os resultados: soma:" "<<numero1 + numero2", multiplicacao: "<<numero1 * numero2", subtracao: "<<soma - multiplica";getch();return 0;}

Porém ao compilar tem os seguinte erros: 

Pxf14B1.png

 

 O que estou fazendo de errado?

Link para o comentário
Compartilhar em outros sites

nao ponha os operadores << dentro de aspas duplas "<<", ele serve para unir literais com variaveis, exemplo "isso é um string literal" << variavel. Si eu fizer "isso é um string literal << " variavel ta errado

// Calculo.cpp#include <iostream>using namespace std;int main() {    int numero1, numero2, soma, multiplica, subtrai;    cout << "\nInforme um numero inteiro";    cin >> numero1;    cout << "\nInforme outro numero inteiro";    cin >> numero2;        soma = numero1 + numero2;    multiplica = numero1 * numero2;    subtrai = soma - multiplica;        cout << "\n Os resultados: soma: " << numero1 + numero2 << ", multiplicacao: " << numero1 * numero2 << ", subtracao: "<< subtrai;            cin.ignore(2);    return 0;}

respeite a direção dos operadores, cout usa << porém cin usa >>. Pense que cout é a sua tela e que você dirige os dados em direção a tela cout <<, e a mesma coisa com cin, cin é seu teclado então cin >> variavel, você envia do teclado para sua variável. Fazer cin >> "literal"; é errado, você só pode guardar dados em variáveis, nunca em literais.

Link para o comentário
Compartilhar em outros sites

O problema é que você está transformando os operadores e as somas em strings ao colocar aspas ao redor deles.

 

Observe a diferença entre isto (correto):

cout << "\n Os resultados: soma: " << numero1 + numero2 << ", multiplicacao: " << numero1 * numero2 << ", subtracao: "<< subtrai;

E isto (errado):

cout << "\n Os resultados: soma:" "<<numero1 + numero2", multiplicacao: "<<numero1 * numero2", subtracao: "<<soma - multiplica";

Observando que as partes em verde indicam as strings, e as partes em preto são comandos a serem interpretados pelo compilador...

Link para o comentário
Compartilhar em outros sites

O problema é que você está transformando os operadores e as somas em strings ao colocar aspas ao redor deles.

 

Observe a diferença entre isto (correto):

cout << "\n Os resultados: soma: " << numero1 + numero2 << ", multiplicacao: " << numero1 * numero2 << ", subtracao: "<< subtrai;

E isto (errado):

cout << "\n Os resultados: soma:" "<<numero1 + numero2", multiplicacao: "<<numero1 * numero2", subtracao: "<<soma - multiplica";

Observando que as partes em verde indicam as strings, e as partes em preto são comandos a serem interpretados pelo compilador...

Ah sim, agora entendi. 

 

Outra coisa, qual IDE devo usar? Ou o Dev-C++ já está bom?

 

Muito obrigado.

Link para o comentário
Compartilhar em outros sites

Venho pedir ajuda a vocês novamente, e já peço perdão pelo flood.

 

Fui fazer outro exercício da apostila que é o seguinte: 1. Faça um algoritmo que peça dois valores: uma letra referente ao sexo e número inteiro referente à idade. Imprima uma mensagem avisando se a pessoa poderá ou não se aposentar. Para aposentadoria, os seguintes critérios deverão ser analisados: Aposentadoria para homens somente depois dos 65 anos. Aposentadoria para mulheres somente depois dos 63 anos.

 

Mas quando vou compilar, aparece um erro:

 

fIjLjoT.png

 

Onde estou errando? Tentei fazer o mesmo de um exemplo que vi na apostila. 

 

----

 #include <iostream> #include <conio.h>using namespace std;int main() {  char sexo; int idade; 	cout << "\nPrograma que verifica se pode aposentar ou não";	cout << "\nInforme sua idade";	cin >> idade;	cout << "\nInforme seu sexo pelas letras M ou F";	cin >> sexo		if ((idade >=63) || (sexo == 'F') || (sexo == 'f'))		{					cout << "\nPode aposentar, minha senhora"				}				else						if ((idade >=65) || (sexo == 'M') || (sexo == 'm'))		{				cout << "\nPode aposentar, meu senhor"			}				else			getch();   }
Link para o comentário
Compartilhar em outros sites

Aqui... Eu dei uma organizada no seu código:
 

 #include <iostream> #include <conio.h>using namespace std;int main(){	char sexo; int idade; 	cout << "\nPrograma que verifica se pode aposentar ou não";	cout << "\nInforme sua idade";	cin >> idade;	cout << "\nInforme seu sexo pelas letras M ou F";	cin >> sexo		if ((idade >=63) || (sexo == 'F') || (sexo == 'f'))	{		cout << "\nPode aposentar, minha senhora"	}	else if ((idade >=65) || (sexo == 'M') || (sexo == 'm'))	{		cout << "\nPode aposentar, meu senhor"	}	else getch(); }

O problema é que você não colocou ponto-e-vírgula ( ; ) no final de algumas linhas (as linhas 14, 18 e 22 estão sem ; no final). A mensagem de erro até diz que é esperado ter um ; antes do if da linha apontada (= no fim da linha anterior), e que isso causou o erro, em C isso é importante pois indica onde a linha de instruções/comando termina...

Link para o comentário
Compartilhar em outros sites

Aqui... Eu dei uma organizada no seu código:

 

 #include <iostream> #include <conio.h>using namespace std;int main(){	char sexo; int idade; 	cout << "\nPrograma que verifica se pode aposentar ou não";	cout << "\nInforme sua idade";	cin >> idade;	cout << "\nInforme seu sexo pelas letras M ou F";	cin >> sexo		if ((idade >=63) || (sexo == 'F') || (sexo == 'f'))	{		cout << "\nPode aposentar, minha senhora"	}	else if ((idade >=65) || (sexo == 'M') || (sexo == 'm'))	{		cout << "\nPode aposentar, meu senhor"	}	else getch(); }

O problema é que você não colocou ponto-e-vírgula ( ; ) no final de algumas linhas (as linhas 14, 18 e 22 estão sem ; no final). A mensagem de erro até diz que é esperado ter um ; antes do if da linha apontada (= no fim da linha anterior), e que isso causou o erro, em C isso é importante pois indica onde a linha de instruções/comando termina...

Obrigado novamente, o programa foi compilado com esse código corrigido. 

 

Você pode me dar alguma dica para que eu não comenta esses erros básicos?

Link para o comentário
Compartilhar em outros sites

muita pratica.... Esse é o melhor conselho. Errar é normal, tente aprender dos erros, as vezes é até recomendado forçar o erro para ver o que acontece. Tenha claro que C/C++ a pontuação é muito importante, as vezes falta um ponto e virgula e indica que tem mil erros, não se assuste, olhe o primeiro deles, os demais marcam erro por que si falta uma acentuação correta tudo o demais marca erro, si não encontrar nada nessa linha olhe a linha anterior, pois o compilador nunca vai te dizer que o problema esta na linha anterior, porém vai ti dizer que o erro esta antes de algo, si esse algo for a primeira palavra da linha seguramente o erro esta na linha anterior, pois para C não importam as linhas, para C é o anterior. Por que isso, por que ele para ver um erro já passou do erro, então ele avisa que o erro ta antes de algo, isso por que ele parou aí. A pratica faz o bom programador, você quer aprender a programar erre bastante e esteja enganchado nos foruns e paginas de programação. ;)


Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...