Se tiver algum computeiro aí, me ajude por favor.
Fiz um programinha bem simples, compilei bonitinho mas na hora de executar no Dev C, aparece a tela só que ele não é executado...
o que pode ser? :okay:
Versão Imprimível
Se tiver algum computeiro aí, me ajude por favor.
Fiz um programinha bem simples, compilei bonitinho mas na hora de executar no Dev C, aparece a tela só que ele não é executado...
o que pode ser? :okay:
O Dev C++ é horroroso.
Das alternativas grátis o meu preferido para c/c++ é o codeblocks.
Baixei esse codeblocks, muito bom, mas eu queria saber como faz pra trocar as cores dele, tipo os textos entre as aspas ta azul, queria trocar pra cinza, tem como?
Alguem sabe se o codeblocks da algum problema na hora de compilar usando windows 7? Não to conseguindo compilar aqui...
Só há um único erro que não entendo direito:Citação:
Edited
Edit: Já rodei o programa, o problema é que eu copiei e colei a fórmula dada, quando eu digitei ela no Dev C, compilou.Citação:
D:\Dia.cpp In function `int DiaDaSemana(int, int, int)':
28 D:\Dia.cpp stray '\150' in program
28 D:\Dia.cpp expected `)' before numeric constant
Consegui trocar as cores... pra quem quiser também é so clicar com o botão direito do mouse em cima do código e ir em "Configure Editor" >> "Syntax Highlighting", tem várias opções lá, mas ainda não achei pra tocar a cor de uma palavra específica.
Cara, eu nao disse Engenharia da Computação, disse ENGENHARIA DE SOFTWARE kk
As veses, e pq o programa roda tão rapido, que você nao consegue ler o que ta escrito na tela
Faça assim
Inclua tambem, a biblioteca
#include <conio.h>
e no fim do seu programa, coloque assim
getch();
return 0;
da seguinte forma:
Código PHP:#include <stdio.h>
#include <conio.h>
int main()
{
printf("Haha, agora consigo ver");
getch();
return 0;
}
@edit
Não, uso o Codeblocks, pelo fato de ser gratis, e programo tranquilamente em C/C++
O unico problema do Codeblocks que eu vejo, e a falta de bibliotecas para o C++, o que te obriga a conseguir essas bibliotecas, o meu não veio nem com <iostream>
Mais no geral, muito otimo o programa
Alias, quem estiver aprendendo a programar, recomendo mais 2 programinhas:
Eclipse --- Programação em Java, C, C#, C++, HTML, PHP alem de poder criar interface graficas, tudo isso baxando apenas IDES especificas
NetBeans --- Otima ferramenta para Interface Grafica
Obrigado Lord Ruka, funcionou aqui.
Preciso esclarecer uma dúvida novamente. :fckthat:
Até hoje eu não entendo o que a função main() representa pro meu programa. Por que ela é necessaria? O que ela faz?
Eu entendo que ela deve ser inicializada, entendo sua parte funcional mas não sei como ela age.
Se alguem puder me explicar, eu agradeço de verdade :fckyea:
main é a função principal, ela inicia tudo, sem ela não começa o programa,
nela você pode declarar o início de outras funções, etc,
mas só declarando as funções no código e não jogá-las no main ou em outras funções que pelo menos estejam sendo ativadas pelo main, não haveria início no programa,
em uma forma resumida: o main é o coração do código, é lá que inícia tudo.
lol, respondi um post antigo, pode deletar.
Eu gosto sempre de dexar meu main() o mais limpo possivel, faço meus programas assim!
Com esse exemplo vai ficar mais claroCódigo PHP:#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
//Declaração das funções
void escrevermensagem(void);
int somarnumeros(int n1, int n2);
int main()
{
int n1, n2;
printf("digite dois numeros\n");
scanf("%d%d", &n1, &n2);
somarnumeros(n1, n2);
system("cls");
printf("A Soma de %d e %d e: %d", n1, n2, somarnumeros(n1,n2));
getch();
escrevermensagem();
return 0;
}
int somarnumeros(int n1, int n2)
{
int r;
r = n1 + n2;
return r;
}
void escrevermensagem(void)
{
printf("\n\n\n\n\Obrigado por calcular aqui\");
}
Veja, que na função principal MAIN, ela recebe n1, n2
Apos isso, passa como argumento para a função somarnumeros
Nessa minha função, vai pegar um numero r = n1 + n2 e me retornara esse r
Apos isso, o main somente CHAMA a função, e no casa, a função faz todo os calculos e te retorna somente o que vc precisa, o resultado final
Tambem podemos ter funções void, que não nos retorna nada, como a minha função void escrevermensagem(void), que somente escreve na tela uma mensagem de saida
lembrando, que sempre deve especificar o tipo de retorno da função.
int, long int, float, double, char, void
Qualquer duvida pergunte ai
@Edit
Respondendo essa duvida:
O Main em C/C++ tem a função de receber os dados que o programa precisa para fazer seus calculos ou seja la o que for, e apartir dai, passar esses dados para uma função, como os dados necessarios para ela realizar o que se propoe, no caso da minha int somarnumeros(int n1, int n2), que era somar n1 + n2 e te retornar o resultado
Apos isso, o main recebe o valor final, e o escreve...
Mas, o que não impede de uma função poder chamar outra
Facilmente minha função poderia ser assim
O que aconteceria, a minha main() chamou essa função, e ela calculou os numerosCódigo PHP:int somarnumeros(int n1, int n2)
{
int r;
r = n1 + n2;
if(r > 19)
mensagemdecriacao();
else return r;
}
No caso, de a soma ser maior que 19, ela passa a função que escreve a mensagem de criação, mais tambem poderia passar argumentos para outro calculo e tudo mais (Como no programa para fazer a Validação de CPF)
Caso contrario, se a condição for falha, ele retorna r para a função main() que so escreve o resultado
Como voce vê, tem um leque de opções para ser criado em C, que no meu ponto de vista, e a linguagem mais complexa
Um ponto interessante é que o main é usado para receber argumentos da linha de comando. Repare na chamada do int main(int argc, char* argv[]).
argc é um inteiro indicando o número de argumentos passado, char* argv[] é um vetor de strings, a posição 0 é o nome do programa, e da posição 1 em diante são os argumentos passados.
Por exemplo, se eu pegasse o programa abaixo, e o executasse no prompt escrevendo por exemplo: Nome_Programa argumento1 argumento2 argumento 3
Ele iria imprimir no console a saída:Código PHP:#include <stdio.h>
int main(int argc, char* argv[]) {
int i;
for(i=0; i<argc; ++i) {
printf("%s\n",argv[i]);
}
return 0;
}
Nome_Programa
argumento 1
argumento 2
argumento 3
Esse mecanismo existe em diversas linguagens de programação e é extremamente útil para passar opções ao programa e mudar a forma como ele será executado.
Incrementando...
Pra quem quizer entender um pouco mais de funções em C
Ai vai um programinha verificador da validade de CPF
Fiz no 1º Periodo de Ciencias da Computação, quando estavamos vendo função, foi uma tarefinha que teve
E bem simples, ainda era meio "noob" em programação, mais pra quem esta começando e uma "mão na roda" pois pode ver e tirar uma ideia
Se alguem quiser copiar e entender, ai vai...
Código PHP:#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
/* Validador de CPF
by: Mayke F.
Ciencia da Computação
UFG - GO*/
//Declaração das funções
void recebacpf(int i);
int calculaprimeirodigito(int i);
int calculasegundodigito(int i);
//Variavel Global
char cpf[11];
int icpf[11];
int calculodigito1, calculodigito2;
///Função Principal
int main()
{
int validador10, validador11, i;
int x, z, r, flag = 0;
MENU:
system("cls");
printf("\n\n\t\t\t\tValidador de CPF\n\n\n");
printf("\t\t\t1 - Verificar CPF\n\n");
printf("\t\t\t2 - Rever a Validacao\n\n");
printf("\t\t\t3 - Sair\n\n");
scanf("%d", &r);
switch(r)
{
case 1:
system("cls");
printf(" Digite os 11 Digitos do CPF para verificar se e valido");
printf("\n\n\n\n\t\t");
for(i = 0; i < 11; i++)
{
recebacpf(i);
}
calculodigito1 = calculaprimeirodigito(i);
if(calculodigito1 < 2)
calculodigito1 = 0;
else calculodigito1 = 11 - calculodigito1;
calculodigito2 = calculasegundodigito(i);
if(calculodigito2 < 2)
calculodigito2 = 0;
else calculodigito2 = 11 - calculodigito2;
Final:
if(icpf[9] == calculodigito1 && icpf[10] == calculodigito2)
{
printf("\n\n\n\n\t\tO CPF Digitado e Valido\n\n\n\n\n\n");
flag++;
getch();
}
else printf("\n\n\n\n\t\tO CPF Digitado e Invalido\n\n\n\n\n\n");
{
flag++;
getch();
goto MENU;
}
break;
case 2:
if(flag > 0)
{
system("cls");
printf("\n\n\n\n\t\t");
for(i = 0; i < 11; i++)
{
if(i == 3 || i == 6)
printf(" . ");
else if(i == 9)
printf(" - ");
printf("%c", cpf[i]);
}
goto Final;
}
else
{
printf("\n\n\n\tVoce Ainda nao verificou um CPF, portanto nao pode revelo");
getch();
goto MENU;
}
break;
case 3:
printf("\n\n\n\n\n\t\t\tSaindo....\n\n\n\n");
break;
default:
printf("\n\n\n\nOpção Invalida....");
getch();
goto MENU;
}
return 0;
}
///Função para receber os numeros de CPF e printar Pontos e Traços
void recebacpf(int i)
{
CPF:
cpf[i] = getch();
if(cpf[i] == '.' || cpf[i] == '-' || cpf[i] == ' ')
goto CPF;
else if(i == 3 || i == 6)
printf(" . ");
else if(i == 9)
printf(" - ");
printf("%c", cpf[i]);
///Efetua a conversao de array de char para um array de int.
for(i=0;i<11;i++)
{
icpf[i] = cpf[i] - 48;
}
}
///Função para calcular o primeiro Digito do CPF
int calculaprimeirodigito(int i)
{
int z = 10;
i = 0;
calculodigito1 = 0;
while(z > 1)
{
calculodigito1 = (icpf[i] * z) + calculodigito1;
z--;
i++;
}
calculodigito1 = calculodigito1 % 11;
return calculodigito1;
}
///Função para calcular o segundo Digito do CPF
int calculasegundodigito(int i)
{
int z = 11;
i = 0;
calculodigito2 = 0;
while(z > 1)
{
calculodigito2 = (i-cpf[i] * z) + calculodigito2;
z--;
i++;
}
calculodigito2 = calculodigito2 % 11;
return calculodigito2;
}
Show, obrigadao ai pelas respostas!
Obrigadao aí Gira e Lord Ruka pelas respostas bem detalhadas! :D
Alguém sabe ou recomenda algum tutorial sobre como dividir um progama em C/C++ em vários códigos fontes? achei só em inglês até agora.
Citação:
#include <stdio.h>
#include <conio.h>
#include <string.h>
char sol(char &string){
printf("Digite uma frase com no maximo 29 caracteres: \n");
gets(&string);
while(strlen(&string)==0){
printf("Digite pelo menos um caracter! \nDigite uma frase com no maximo 29 caracteres: \n");
gets(&string);}
return string;
}
int cont(int &spc, char string){
int i;
for(i=0;i<=strlen(&string);i++){
if(&string[i]==' ') spc++;
else if(&string[i]=='\n') break;
}
return spc+1;
}
int main(){
int spc=0;
char string[30];
sol(*string);
printf("O numero de palavras na frase e %d!", cont(*spc, *string);
getch();
return 0}
Não consigo varrer o string, diz que os tipos char[int] é inválido sendo que me ensinaram a varrer assim e antes, quando fiz tudo no main, deu tudo certo!
Explicação nos comentários.Citação:
#include <stdio.h>
#include <string.h>
#include <conio.h>
char *sol(char *string) /*Você declara um ponteiro para o texto.
Fazendo char &string, você está tentando alocar outro texto novamente,
o que não é permitido dentro dos parâmetros da função. A mesma coisa com char sol.*/
{
// Lembrando que o vetor começa do 0, então é possivel inserir 30 caracteres.
/* Lembre-se também que agora você está declarando outro ponteiro para a string,
mas o &string é diferente, porque esse ponteiro não é o mesmo do que a da classe main. */
printf("Digite uma frase com no maximo 29 caracteres: \n");
gets(string);
while(strlen(string)==0)
{
printf("Digite pelo menos um caracter! \nDigite uma frase com no maximo 29 caracteres: \n");
gets(string);
}
return string;
}
int cont(int *spc, char *string)
{
int i;
for(i=0;i<=strlen(string);i++)
{
if(string[i]==' ') (*spc)++;
else if(string[i]=='\0') break; // A string termina com \0, não com \n.
}
return *spc+1;
}
int main()
{
int spc=0;
char string[30];
sol(&string); // Com *string, você está pegando somente o primeiro caractere do texto.
printf("O numero de palavras na frase e %d!", cont(&spc, &string)); // Faltou fechar os parenteses.
getch();
return 0;
}
@Krakrek, valeu, cara, mas não rodou aqui :x
Se tiver alguém aí que possa me ajudar eu agradeço.
Já é a segunda vez que acontece e não consigo solucionar o problema. Eu digitei o códio do programa em C, compilei certinho mas na hora de executar a janela abre e aparece a mensagem "O Arquivo***** parou de funcionar"...
Alguém sabe o que pode ser?
Se você tiver mexendo com ponteiro vai acontecer isso direto porque ponteiro é coisa do capeta e vai causar muitos memory leaks e erros de segmentação nos códigos.
Ah, beleza. Eu vou tentar encontrar o problema, se eu não conseguir eu posto aqui pra vocês me ajudarem( até porque eu nem tinha dado uma olhada com carinho, não sabia que poderia acontecer isso rs).
Obrigado.
Eu to tentando aprender java com umas apostilas da net ai, mas tem um negocio que elas não explicaram direito.
Para que server os seguintes operadores:
~
!
|
||
?:
alguem ai pode me explicar?
~ Se não me engano é aproximado.
! junto com um = significa diferente. E também tem um sentido negativo, pox exemplo| não lembro :SCódigo:boolean aux = true
if(!aux) // se não aux, ou seja, se aux == false
|| Significa ou.
?: É um if else reduzido.Código:if(condição 1 || condição 2) // Se condição 1 ou condição 2
Código:condição ? ação 1 : ação 2
// É a mesma coisa de
if(condição)
ação 1
else
ação 2
Completando o @up
| : Operador OU (OR) bit-a-bit (bitwize).
~ : Operador NÃO (NOT) bit-a-bit (bitwize), também chamamos de complemento.
Ex. (em binário):
Numero: 1011
~Numero: 0100
Ex. 2 (em binário):
Numero: 0011
~Numero: 1100
se | e || são OU, quando uso um e quando uso outro?
http://developer.apple.com/tools/mpw...c_logical.html
Leia isso e entenderá, se não entender só perguntar que tiro sua dúvida.
Agora entendi.
Brigadão galera.
Pessoal, alguém sabe um livro que contenha bastantes problemas em c ou sei lá, alguem conhece alguma lista de exercicios na internet?
já encontrei meu erro, deixa pra lá, não vou comentar a merda que fiz :fckthat: