Ir ao conteúdo
  • Cadastre-se

vangodp

Membro Pleno
  • Posts

    1.752
  • Cadastrado em

  • Última visita

Tudo que vangodp postou

  1. adicionado 0 minutos depois adicionado 1 minuto depois como te sai?
  2. #include <stdint.h> void main(){ int d[3]; d[0] = 'D'; d[1] = 'E'; d[2] = 'F'; printf("O elemento [0] de d: %d\n", d[0]); printf("O elemento [1] de d: %d\n", d[1]); printf("O elemento [2] de %d\n", d[2]); printf("O endereço do array d em memoria: %p\n", d); printf("O endereço do array d em memoria: %p\n", &d); printf("O endereço do primeiro elemento do array d em memoria: %d\n", &d[0]); printf("O endereço do segundo elemento do array d em memoria: %d\n", &d[1]); printf("O endereço do terceiro elemento do array d em memoria: %d\n", &d[2]); /* O endereço desse não deveria ser 4 unidades maior que o endereço anterior ? afinal cada int ocupa 4 bytes. */ system("pause"); }
  3. Acho que da mesma forma por que não usa Java. >_< O tal dotnet só tem saída no mundo empresarial mesmo. Java é outra dotnet. Diz a lenda que BillGates pressionou para que lhe vendessem o tal Java, coisa que lhe foi negado, então Bill dice..."Farei uma linguagem "melhor"..." Dai nasceu o net. E nem precisa dizer em quem se inspirou né. Só na hora de declarar a planilha. Da mesma forma que você faz com class e struct, por adicionar um exemplo, e logo na hora de criar o objeto você n usa essas palavras. Para colocar um exemplo: template <class tipo> tipo maior(tipo dato1, tipo dato2){ return (dato1 > dato2 ? dato1 : dato2); } Logo você usa isso da seguinte forma: int main(){ int a = 1, b = 2, n; float c = 1.0, d = 0.5, m; n = maior <int> (a,b); // Usando enteros m = maior <float>(c,d); // Usando reales cout << "Inteiro maior: " << n << endl; cout << "Real maior: " << m << endl; return 0; } Exemplo tirado de : https://codingornot.com/cc-plantillas-templates-en-c Como diz no link acima, isso de usar planilhas se chama "Programação Genérica", e nem todo mundo usa isso. C++ deixa doido todo mundo mesmo, sobretudo porque você tem diferentes modos de fazer a mesma coisa, porém nem sempre de forma mais fácil. Olha isso: #include <iostream> using namespace std; int maior(int a, int b); char maior(char a, char b); double maior(double a, double b); int main() { cout << maior('a', 'f') << endl; cout << maior(15, 35) << endl; cout << maior(10.254, 12.452) << endl; return 0; } int maior(int a, int b) { if(a > b) return a; else return b; } A mesma coisa usando funções sobrecarregadas.
  4. Se em uma variável você faz assim: int x; int *ptr; ptr = &x; Nos parâmetros é a mesma coisa: int x; void foo(int *ptr){...} int main(){ foo(&x); ... adicionado 1 minuto depois foo(&x) equivale a fazer ptr = &x; adicionado 1 minuto depois Até a próxima homem vintage.
  5. void Petismo(int *bEleitor) esta esperando uma direção e não o valor da variável, o correto é chama-la assim-> Petismo(&bEleitor). Mas me da que você ja sabe isso e quer abrir debates, como das outras vezes... Toma-lo ou deixa-lo.
  6. Acho que o que você ta buscando é isso aqui: adicionado 13 minutos depois Agradece a mocinha que fez o video
  7. Tem gente que acha difícil passar objetos para funções mas na realidade é como passar valores de uma variável a outra. Se em simples variáveis fazemos algo tipo: #include <iostream> using namespace std; class Carro { public: int seuNumeroRodas; string suaCor; string seuTipoChasis; }; int main () { Carro chevette; chevette.suaCor = "vermelho"; chevette.seuNumeroRodas = 6; //Formas de passar variaveis Carro carroCopia = chevette; //Copia... O chevette se copia ao carroCopia Carro &carroReferencia = chevette; //Referência... Tudo o que acontecer com carroReferencia acontecerá com chevette também Carro *carroPonteiro = &chevette; //Ponteiro... O carroPonteiro aponta para chevette e o permite manipular indiretamente cin.ignore(); return 0; } Se tudo isso queremos usar com funções é a mesma coisa... se faria desta forma: #include <iostream> using namespace std; class Carro { public: int seuNumeroRodas; string suaCor; string seuTipoChasis; }; void copia( Carro carroCopia ){} void refer( Carro &carroReferencia){} void ptr ( Carro *carroPonteiro ){} int main () { Carro chevette; chevette.suaCor = "vermelho"; chevette.seuNumeroRodas = 6; copia(chevette); refer(chevette); ptr (&chevette); cin.ignore(); return 0; } Praticamente é a mesma coisa que tratar com variáveis. adicionado 1 minuto depois Agora n vai me dizer que n sabe usar esses objetos dentro das funções né?! >_< É a mesma coisa que da forma anterior, se n souber isso volte a estudar variáveis shueshueseh.
  8. existem 3 formas de passar um objeto... copia, ponteiro e referência.
  9. https://ark.intel.com/content/www/es/es/ark/products/80815/intel-core-i5-4590-processor-6m-cache-up-to-3-70-ghz.html
  10. #include <iostream> #include <sstream> #include <cstring> using namespace std; int main (){ int n = 12345; stringstream ss; char s[100]; ss << n; strcpy(s, ss.str().c_str()); cout << s; cin.ignore(); return 0; }
  11. Na verdade a pergunta está muito mal formulada, e desta forma é impossivel ajudar até que volte e a defina melhor.
  12. o problema pode ser esse?-> scanf ("%s", &fita); Se fita é uma string não deve por o & adiante no scanf, é regra. Lembre... NUNCA PONHA & ADIANTE DE STRINGS OU PONTEIROS adicionado 1 minuto depois confesso que n compilei o programa para ver si os if funcionam corretamente mas acredito que funcione bem uma vez arrumado esse problema do &
  13. vangodp

    C++ Problema em String C++

    c é para ler uma só letra e guardar em um char, a s é para ler um conjunto de letras e guardar em um vetor, que também é um conjunto de chars. Na comparação? Não funcionaria. Se você vier de outras linguagens como c#, java, python, php, c++, etc, talvez você estará acostumado a fazer comparações como esta -> if(oponente == "caio"), mas isso em C não é permitido, o programa terá comportamentos não desejados por isso deve usar a função "string compair"(strcmp). E o fato de fazer strcmp(...)==0 é que essa função retorna 0 em caso das 2 strings serem idênticas. você incluiu a biblioteca string.h? Se não ponha ao inicio do arquivo #include<string.h>. Essa biblioteca tem uma serie de funções que ajudam na manipulação de strings. Se rodar o código de wesquel tem que funcionar perfeitamente. Se seu programa não funcionar poste ele completo, comentando as partes que tiver mais problemas. adicionado 2 minutos depois Talvez n compreendamos sua lógica, e o que você quer realizar, e por isso fica difícil lhe ajudar.. se quiser mandar o código completo certamente será ajudado.
  14. leia uma linha do arquivo original, e procure essa linha no arquivo a comparar(ler uma a uma cada linha do segundo arquivo), se é igual, anote 1(uma linha igual), leia outra linha do arquivo original e compare ela novamente com as linhas do segundo arquivo. Vamos supor que o segundo arquivo tem 1800 linhas e o original 2000, use a regra do 3, "Si 2000 linhas são 100%.. 1800 são...?".
  15. Sentido contrario? Ele quer entender o funcionamento interno como você mesmo falou. Que há de contrario nisto?
  16. tem que ver com as tabelas virtuais(v-table) e os ponteiros virtuais(vptr). Se buscar essas palavras no google vai sair. Se souber inglês ta aqui explicado-> Se tiver algo de tempo logo tento explicar... Ou se alguém se aventura melhor >_<
  17. while(1)??? você ta programando um bug? Isso é um poço sem fundo que consome todos os recursos do computador. Praticamente não há diferença entre while(1) e while(-1000), é um "loop infinito". Se precisar repetir um programa continuamente use algum timer para "frear"(função sleep) um pouco isso.
  18. Se é só para 2 valores é só usar um contador. Cada vez que o usuário entrar com o valor 0 você incrementa o contador, depois você grava X zeros no vetor, sendo X o valor do contador, e o resto uns. >_<
  19. Podia economizar umas quantas linhas si usar o valor de retorno do scanf junto a uns especificadores e o strlen. Deixo constância que não provei a fundo, não sei se tem bugs etc. #include<stdio.h> #include <string.h> int main() { char placa [10]; int resultado = 0; do { printf ( "Entre con la placa\n" ); resultado = scanf ( "%3[A-Z^\n^' ']%4[^A-Z^a-z^\n^' ']%*c", placa, &placa[3]); fflush(stdin); printf("scanf leu %d valores\n\n", resultado); int letras = strlen(placa); if( letras != 7 ) { printf("Longitude de formato invalido(%d). ", letras); resultado = 0; } printf ( "Formato placa: \"%-7s\"\n\n", placa ); getchar(); } while ( resultado < 2 ); return 0; }
  20. É só declarar menu como int em vez de void, e dentro de menu guardar o valor de retornado por excluiralunodedisciplina, para logo retornar esse valor a main de volta.
  21. você quer imprimir no main mas você ta chamando excluiralunodedisciplina dentro da função menu, e depois você chama novamente excluiralunodedisciplina em main... o correto é chamar só dentro do menu. adicionado 6 minutos depois E para que fique claro, return serve para duas coisas... deter o programa e retornar um valor. Até uma função void pode ter um return, porém sem valor, tipo void foo(){ return; }. Se uma função for declarado como int, você pode ter 200 returns dentro de ifs, switchs, etc, mas antes de sair da função você precisa por um return algo fora desses casos.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!