Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Walber.

Dúvidas de um iniciante em c++

Recommended Posts

Pessoal, me chamo Walber e sou estudante de engenharia civil. Um professor me encaminhou um trabalho e já conclui a maioria, so q venho tendo problemas em alguns já busquei em varios sites so que a lingagem na qual encontrava e muito avançada e meu objetivo não é entregar um trabalho e sim aprender, gostaria da ajuda pois o trabalho é para amanha.

Bom a 1° dúvida é a seguinte em relação a questão:"Ler um nome do teclado e ver se é igual ao seu nome. Imprimir conforme o caso: “NOME CORRETO” ou “NOME INCORRETO”; bom estou fazendo assim:

# include<stdio.h>

#include <string.h>

int main (){

char nome;

printf("Digite um nome: ");

scanf("%c",&nome);

if (nome=='walber'){

printf("NOME CORRETO. ");

}else{

printf("NOME INCORRETO. ");

}

system("pause");

}

Sei que o problema para muitos deve ser fácil mas ja bati a cabeça dmais rsrsr. agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Walber.

Esssa comparação com aspas simples serve somente para caracteres. Para comparar stings você deve usar funções específicas da biblioteca string.h.

Veja:

#include <stdio.h>
#include <string.h>

int main (){
char nome[50]; [COLOR="Red"]// [50] Determina quantas letras tem a string[/COLOR]
printf("Digite um nome: ");
scanf("%s",&nome);
if (strcmp("walber",nome) == 0){ [COLOR="Red"]// Função que compara as strings[/COLOR]
printf("NOME CORRETO. \n");
}else{
printf("NOME INCORRETO. \n");
}
system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dr4cker obrigado velho deu certo, kkkkk. rpz eu penei pra isso e nada, agora fiquei com uma dúvida nessa parte if (strcmp("walber",nome)==0)? não entendi, tipo mas mesmo assim obrigado. eu tenho mais uma dúvida em relação a esse exemplo:

Ler os três coeficientes de uma equação de segundo grau e determinar suas raízes.

#include<stdio.h>

#include<math.h>

int main(){

double a, b, c, d, raiz_delta;

double x1, x2;

printf("Este programa calcula as raizes da equacao do segundo grau ");

printf("ax2+Bx+C = 0\n");

printf("Entre com o valor do coeficiente a: \n");

scanf("%i",&a);

printf("Entre com o valor do coeficiente b: \n");

scanf("%i",&B);

printf("Entre com o termo independente: \n");

scanf("%i",&c);

d=((b*B)-4*(a*c));

printf("O valot de delta: %i\n",d);

raiz_delta=pow(d,1/2);

printf("A raiz de delta e: %i.",raiz_delta);

x1=((-b+raiz_delta)/2*a);

printf("A raiz X1 e %i: ",x1);

x2=((-b-raiz_delta)/2*a);

printf("A raiz X2 e %i: ",x2);

system("pause");

}

brother ja queria te agradecer desde já e dizer que realmente acho q esse companheirismo e que falta nas pessoas, obrigado aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tranquilo Walber.

A função strcmp compara caracter por caracter, em ordem alfabética, e retorna um valor inteiro:

- Se o valor for 0: walber = nome;

- se o valor for < 0: walber < nome (em ordem alfabetica)

- se o valor for > 0: walber > nome (também em ordem alfabética).

É bastante útil para ordenar palavras.

#include <stdio.h>
#include <math.h>


int main(){
int a, b, c, d, raiz_delta; [COLOR="Red"]// no Dev-C++ não faz diferença, pode usar o int[/COLOR]
int x1, x2;

printf("Este programa calcula as raizes da equacao do segundo grau ");
printf("ax2+Bx+C = 0\n");

printf("Entre com o valor do coeficiente a: \n");
scanf("%i",&a);
printf("Entre com o valor do coeficiente b: \n");
scanf("%i",&;
printf("Entre com o termo independente: \n");
scanf("%i",&c);

d=((b*-(4*(a*c))); [COLOR="Red"]// cuidado com os parênteses, ele prioriza as operações[/COLOR]

printf("O valot de delta: %i\n",d);

raiz_delta = pow(d,0.5);[COLOR="Red"] // 1/2 estava dando erro, então use o resultado[/COLOR]

printf("A raiz de delta e: %i.\n",raiz_delta);

x1 = ((-1) * ( + raiz_delta) / (2 * a); [COLOR="Red"]// multiplica o 'b' por -1 para gerar o valor negativo. Novamente, cuidado com os parênteses na priorização[/COLOR]


printf("A raiz X1 e : %i\n",x1);

x2 = ((-1) * ( - raiz_delta) / (2 * a);

printf("A raiz X2 e %i: \n",x2);
system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria um pouco diferente...

E fiz, como está no código abaixo...

Considerei que o professor quer raízes reais ..

Então acrescentei um if caso o delta seja negativo ...

Também deixei todos os valores em float porque talvez eles não sejam necessariamente inteiros e coloquei a biblioteca <stdlib.h> por causa do system pause...



#include<stdio.h>
#include<math.h>
#include <stdlib.h>


int main(){
float a, b, c, d, raiz_delta;
float x1, x2;
printf("Este programa calcula as raizes da equacao do segundo grau ");
printf("ax2+Bx+C = 0\n");
printf("Entre com o valor do coeficiente a: \n");
scanf("%f",&a);
printf("Entre com o valor do coeficiente b: \n");
scanf("%f",&;
printf("Entre com o termo independente: \n");
scanf("%f",&c);
d=((b*-4*(a*c));
printf("O valor de delta: %0.f\n",d);
raiz_delta=pow(d/(2*a),1/2);
if(d<0)
{
printf("Não existe raiz real\n");
}
else
{
printf("A raiz delta de e: %0.f\n",raiz_delta);
x1=((-b+raiz_delta)/2*a);
printf("A raiz X1 e %0.f: \n",x1);
x2=((-b-raiz_delta)/2*a);
printf("A raiz X2 e %0.f: \n",x2);
}
system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dr4cker, mas uma vez vou ter que te fazer umas perguntinhas. 1°em relação ao primeiro exemplo "char nome[50]; // [50] Determina quantas letras tem a string" aqui tanto faz os valores que eu colocar"[?]"?

e segunda eu tentei refazer a do ultimo exemplo so q as raizes nâo batem tipo x²-5x+6 as raizes sao: 2 e 3 e o programa da outros valores.

mas mesmo assim mais uma vez obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1º: Sim. Você pode colocar quantos caracteres precisar. Exemplo: Se você colocar 50, o total será 49, pois o último caracter será '/0' para informar o final da string. Ok?

2º: Aqui deu certinho. Olha aí:

a= 1; b = -5; c = 6

24180475.th.jpg

Qualquer coisa, posta aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

D4cker, realmente deu certo, o meu problema foi a ordem dos parenteses. só uma coisa o material que meu professor me passou eu não entend a questãoi do char[?] tipo beleza eu entendo que será a determionaçaõ da sting mas como assim?

E *GP*, no seu caso o seu exemplo se torna o mais correto possivel, o erro de não ter feito assim foi meu e não do D4cker que so me corrigiu,kkkkkk desculpem aí galera erro de iniciante, também gostaria de lhe fazer uma pergunta "Porque se torna necessário a utilização da biblioteca #include <stdlib.h> para o system("pause"), te faço essa pergunta porque fiz outros exemplos sem ela e deram certo mas fica errado se não colocar? ah obrigado também pela dica.

Gostaria de agradecer a todos pela ajuda e dizer que também estarei a disposição para qualquer coisa que possa vir. Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você declara o tipo char, sua variável comporta somente um caracter. Para usar mais de um caracter, é necessário especificar quantos são: char variável[x], onde x é o número especificado.

Veja mais aqui: Strings de Caracteres.

Quanto ao que o *GP* postou, o Dev-C++ possui um ponto fraco. Se você declarar as bibliotecas ou não, funciona do mesmo jeito. Isso é ruim, pois para a linguagem é obrigatório. Se você for programar usando outros compiladores, o erro é certo.

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×