Ir ao conteúdo
  • Cadastre-se

Flávio Pedroza

Membro Pleno
  • Posts

    2.074
  • Cadastrado em

  • Última visita

Tudo que Flávio Pedroza postou

  1. Para atribuir valores, usas-e apenas um "=" else fim=1; //só um "=" De todo modo, seu código nunca irá executar a função "bubble" pois a condição " if(fim==1)" nunca é satisfeita/verdadeira. Outro erro é que você usar o "i" duas vezes em laços aninhados. Cada laço tem que ter uma variável de controle diferente (ex.: "i" e "j").Também há erros na função "Trocar", pois você nunca definiu quem é "i".
  2. ShellExecute - faz parte da API do windows: https://docs.microsoft.com/en-us/windows/desktop/shell/launch Exemplo, abrir o bloco de notas ShellExecute(NULL,"open","notepad.exe","C:\\doc.txt",NULL,SW_NORMAL);
  3. O compilador faz isso para alinhar a memória, pois é mais rápido mover blocos de memória de determinado tamanho do que mover 1 byte de cada vez. https://0xc0de.wordpress.com/2008/10/31/alinhamento-alignment-e-preenchimento-padding/ https://www.geeksforgeeks.org/data-structure-alignment/ A quantidade de bytes adicionados vai depender do compilador e das suas configurações, da plataforma (16, 32 ou 64 bit) e do tipo de variável.
  4. O natural é que sejam armazenadas na ordem. No exemplo que você deu, seriam alocados 10 bytes de memoria para o autor e em seguida 4 bytes (sizeof(float)) para o preço, ocupando 14 bytes na memória. Mas na prática, não é isso que acontece. O compilador insere bytes por questões de alinhamento de memória. Então, na verdade, seriam alocados 16 bytes. Veja este exemplo: #include <iostream> #include <string.h> using namespace std; struct livro { char autor[10]; float preco; }; int main() { float preco = 303.25; livro teste; uintptr_t autor_m = (uintptr_t)teste.autor; uintptr_t preco_m = (uintptr_t)&teste.preco; cout << sizeof(livro) << "!=" << sizeof(char) * 10 << "+" << sizeof(float) << endl; cout << autor_m << endl; cout << preco_m << endl; cout << preco_m - autor_m << endl; memcpy((void*)(autor_m + 12), &preco, sizeof(float)); //+12 pois a variavel teste.preco está distante 12 bytes do começo da estrutura cout << teste.preco; cin >> teste.preco; return 0; } Os resultados indicam que foram alocados 16 bytes para a estrutura e que o membro preço está distante 12 bytes do começo, ao invés de apenas 10 como seria esperado, tendo sido inseridos 2 bytes entre um membro e outro. Então seria assim: autor nada preço [B B B B B B B B B B] [B B] [B B B B]; No entanto, pode ser que haja variação de compilador para compilador, tanto na quantidade de bytes inseridos para alinhamento quanto na posição; Em relação a orientação a objetos, até onde sei estruturas não suportam herança, especialização, funções como membros, acessos privados, públicos, etc, então na minha opinião são bem diferentes.
  5. É esse aqui? https://www.promobit.com.br/forum/review-asus-vivobook-x510ur-bq291t-2363 Se sim, segundo o autor do post não vai funcionar.
  6. struct maquina *Buscamaiscara (struct maquina p[], int *k) //faltou o []
  7. O total de fumantes é um número que deve ser calculado, e não lido do arquivo: // percentual de fumantes em relação ao total // total_f = 0; for (i=0;i<10;i++) { if (strcmp(pessoas[i].fumante, "sim") == 0) { total_f++; } } perc_f = total_f * 100.0/10; printf ("O percentual de fumantes em relação ao total eh de: %2.f\n ", perc_f); Substitua "<9" por menos "<10" no seu código, no laços, pois o seu vetor pessoas possuí dez elementos e não apenas nove.
  8. float maior (float vet[], int t) { int i; float maior = vet[0]; for(i=1;i<t;i++) //comeca no 1 pois o zero você já considerou como o maior temporariamente { // maior=vet[0]; tem que ficar fora do laço if (vet[i]>maior) //se vet[i] for MAIOR que o maior atual { maior=vet[i]; //faça o maior igual a vet[i] } } return maior; } Veja se assim funciona (acredito que sim)
  9. Eu recomendo comprar uma placa que não necessite de alimentação extra. A fonte pode não ter conectores sobrando. Outra coisa que você tem que ver é se há espaço para encaixar a placa de video - esses gabinetes geralmente são "low profile" (mais finos que os normais) - e se há slot pci express disponível na placa-mãe.
  10. "Mas o processador é 1151." No site da Intel diz que o socket é LGA2011.
  11. Me parece que está funcionando. Fiz algumas adaptações para poder rodar (você não mostra a implementação do função "bubble_sort" então fiz o programa popular com dados já na ordem correta): Celula *abrirArquivoPopularPilha(Celula *topo) { for (int i=20;i>0;i-=2) { topo = inserir(i / 3,topo); } return topo; } Testei deu este resultado: Dados glicemicos: 0 1 2 2 3 4 4 5 6 6 Ha 10 dados de glicemia no arquivo A media de dados glicemicos eh 3.00 O 6 eh o valor que aparece 2 vezez 0 1 2 2 3 4 4 5 6 6 mediana : 3 - 4 Edit: na ora de calcular a média, o resultado dá sempre um inteiro, pois você divide dois números do tipo inteiro. Se quiser que o resultado apresente a parte fracionária faça o typecast para double: return (double)soma/conta;
  12. Exemplo (lerá no máximo duzentos ou até x<0 - o que acontecer primeiro). int x; int vetor[200]; int i=0; do { // ler x if (x<0) break; //termina a leitura de dados, se x < 0; // armazenar valor no vetor; i++; } while (i < 200); Após o termino do laço, a variável "i" armazenará o no. total de elementos digitados.
  13. void getMaiorMenor(int* maior, int* menor) { maior = 0; menor = INT_MAX; for (int i = 0; i < numeroItensFila; i++) { if (fila[i].preco > maior) maior = fila[i].preco; if (fila[i].preco < menor) menor = fila[i].preco; } } Veja se isto funciona
  14. if ( a > b) { maior=a; menor=b; intermediario=c; } else { maior = b; menor = a; intermediario=c; } Se a for maior que b, não significa que ele necessariamente é o maior, tampouco que b é o menor. Exemplo: a = 5, b = 3, c=10 - a é maior que b, mas o maior é c. Outro exemplo: a = 5, b = 3, c=1 - neste caso, a é o maior, mas b não é o menor. você tem que comparar ao pares e verificar se a é maior que b e que c ao mesmo tempo: if ((a > b) && (a > c)) { maior = a; if (b > c) { intermediario = b; menor = c; } else { intermediario = c; menor = b; } }
  15. Acredito que esteja com dificuldades em começar. Vou postar aqui o esqueleto do código. Tente completar o resto. "array" não vai servir no seu caso pois ele pede tamanho fixo de elementos. Use "vector" no lugar: #include <iostream> #include <vector> #include <string> using namespace std; template <class T> class Carro { private: vector<T> carros; public: void ADD(string marca) {carros.push_back(marca);}; int SIZE() {return carros.size();}; //Coloque aqui o restos dos metodos }; int main() { Carro<string> carros; carros.ADD("BMW"); cout << carros.SIZE(); return 0; } Estude o template "vector" e seus métodos.
  16. Menor, intermediário e maior são números, devem ser do tipo "int": int menor,intermediario,maior; Depois você pode fazer as comparações e determinar quais números serão maiores e menores. Aqui um exemplo, que tentar verificar se num1 é o maior, o menor ou o intermediário - considerando que os três números são diferentes: if ((num1 > num2) && (num1 > num3)) maior = num1; else if ((num1 < num2) && (num1 < num3)) menor = num1; else intermediario = num1; Tente fazer para os outros dois números.
  17. Vi também que você faz referência a um array "log", mas não declarou o mesmo. Por exemplo: void list(){ // Lista os usuarios cadastrados. int i,j; for(i=0;i<200;i++){ if(log[i].cod!=NULL){ printf("\nCodigo: %d \nNome: %s\nRU: %s\n email: \n\n", log[i].cod,log[i].nome,log[i].RU,log[i]. email,log[i]); } } Tem muitos outros erros de sintaxe e lógica. Eu sugiro recomeçar e aos poucos ir adicionando funções.
  18. Qual seria o problema? É em alguma função especifica (consulta, excluir, verificar, etc.)? Edit: vi que você declarou a função "consultaCod" e até invoca ela, mas não implementou.
  19. Dá pra fazer sem matriz ou vetor Aqui um exemplo: #include <iostream> int main() { int x, y; printf ("Testando !(x<5) && !(y>=7):\n" ); x = 5; y = 6; printf ("x: %d; y: % d; resultado: %d\n", x, y, !(x < 5) && !(y>=7)); x = 5; y = 7; printf ("x: %d; y: % d; resultado: %d\n", x, y, !(x < 5) && !(y>=7)); x = 4; y = 6; printf ("x: %d; y: % d; resultado: %d\n", x, y, !(x < 5) && !(y>=7)); x = 4; y = 7; printf ("x: %d; y: % d; resultado: %d\n", x, y, !(x < 5) && !(y>=7)); return 0; } você repete mudando a expressão para "!((x<5) || (y>=7))" e mantém os mesmos valores de x e y, o resultado deve dar igual
  20. Não...Não descasque nada! Eu quis dizer o seguinte: 1. Reitre a fonte do gabinete e plugue na tomada. 2. Conecte um fan com conector molex em uma das saídas da fonte. 3. Usando um clipe de metal, de um curto nos fios verdes e pretos da fonte da figura. Mas se estiver inseguro, tenta procurar algum video ou tutorial ensinando a "testar fonte fora do gabinete" Aqui exemplo: https://www.tecmundo.com.br/conectores/2591-manutencao-de-pcs-como-testar-se-uma-fonte-esta-queimada-video-.htm https://www.tecmundo.com.br/conectores/2591-manutencao-de-pcs-como-testar-se-uma-fonte-esta-queimada-video-.htm
  21. Teria como você testar a fonte fora do gabinete? Para isso, você pluga um cooler na fonte e dá um curto (jump) os fios preto e verde, como na figura da esquerda: https://depts.washington.edu/open3dp/2012/06/jumping-a-power-supply-for-12-volts-dc/ Veja se o cooler fica girando continuamente. Edti: Não use estabilizadores, ok?
  22. a) !(x<5) && !(y>=7) é equivalente a !((x<5) || (y>=7)) pois (!a && !b) => !(a || b) É só fazer a tabela verdade para confirmar (!a && !b) * !(a || b) a b resultado * a b resultado 0 1 0 * 0 1 0 1 0 0 * 1 0 0 1 1 0 * 1 1 0 0 0 1 * 0 0 1 Acho que o enunciado quer isso, que você monte estas tabelas verdades e mostre na tela. Se o resultado for igual, então as expressão são realmente equivalentes.
  23. acumuladorNoPeso e acumuladorPessoas são inteiro. Quando você divide dois inteiros e o denominador é maior que o numerado, o resultado da sempre 0. Se eu multiplicar por 100.0 antes de dividir, o compilador interpreta como ponto flutuante agora e o resultado pode ter decimais.
  24. Tenta assim: System.out.println("A porcentagem de atletas com peso entre 10,0 e 25,5kg: " + df.format((acumuladorNoPeso*100.0)/acumuladorPessoas));

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