Flávio Pedroza
Membro Pleno-
Posts
2.070 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que Flávio Pedroza postou
-
A classe "jogador" não está implementado todos as funções declaradas. Será que você não esqueceu de implementar alguma função virtual da classe pai "player"? A classe "player" é abstrata não é? você tem que implementar TODAS as funções virutais da classe pai na filha, caso contrário a filha também será considerada abstrata. Exemplo: #include <iostream> using namespace std; class pai { virtual int funcao() = 0; }; class filho : pai { }; int main() { filho teste; cout<<"Hello World"; return 0; } Dá o mesmo erro, porque "pai" é abstrata e "filho", derivada de "pai", não implementou a função "funcao", e, portanto, é considerada abstrata também. Para consertar, basta implementar a função virtual: #include <iostream> using namespace std; class pai { virtual int funcao() = 0; }; class filho : pai { int funcao() {return 0;} }; int main() { filho teste; cout<<"Hello World"; return 0; } Agora não dá mais o erro. Espero ter ajudado.
-
Dentro desse "wihle", faça uma lógica para verificar se o número é maior que zero ou menor. Se for maior, você soma ao num1, se for menor, você soma ao num2.
-
C Leia um vetor com 10 números inteiros. Escreva os elementos do vetor eliminando
Flávio Pedroza respondeu ao tópico de Yumini em C/C#/C++
Não sei se é a melhor solução, mas baseado no seu código fiz a seguinte solução. Testei e parece funcionar. A ideia e você verificar se um número já existe antes de adicioná-lo a vetor2. Alternativamente você poderia já eliminar os repetidos no laço de leitura. #include <iostream> #include <string.h> using namespace std; int main(void) { int i, j, vetor[10], vetor2[10], index = 0; bool achei = false; for(i=0 ; i<10; i++) { printf("%i - Digite um numero: ", i+1); scanf("%i", &vetor[i]); } memset (vetor2, 0, sizeof(int)*10); //zera o vetor 2 for(i=0; i<10; i++) { for(j=0; j<10 ; j++) //procura por valores repetidos { if (vetor[i] == vetor2[j]) //achei um valor que já existe no vetor2[j] { achei = true; break; } } if (!achei) vetor2[i] = vetor[i]; // se não achei o número, então posso adicioná-lo ao vetor2. achei = false; } for(i=0 ; i<10; i++) printf("%i-", vetor2[i]); return 0; } -
No seu código está faltando o índice "i" do vetor "vet". Talvez você tenha colocado e na hora de postar sumiu, de todo modo: (...) vet[i]=rand()%1000; (...) if (vet[j]<vet[i]) { aux=vet[i]; vet[i]=vet[j]; vet[j]=aux; } (...) Use o "<>" para postar o código e evitar esse tipo de erro.
-
C Como saber o funcionamento de uma funcao
Flávio Pedroza respondeu ao tópico de Aoi Todo em C/C#/C++
A implementação da função vai variar conforme o compilador. Nesse site você pode pesquisar, é só digitar o nome da função: https://code.woboq.org/ -
C Converter um caractere de várias letras em uma STRING
Flávio Pedroza respondeu ao tópico de Eduardo Cesar Lenz em C/C#/C++
Não tenho qualquer experiência com LPCXpresso, mas acho que a função UART0_IRQHANDLER lê apenas um byte por vez e LPC_UART0->RBR retorna apenas o byte que está sendo lido no momento. você pode resolver se torna as variáveis globais. Veja se assim funciona. unsigned char Buffer_RX[]={" "}; int i = 0; void UART0_IRQHandler() { if (i < 3) { Buffer_RX[i] = LPC_UART0->RBR; i++; } while(!(LPC_UART0->LSR&(1<<5))); LPC_UART0->THR = Buffer_RX[0]; } -
C Converter um caractere de várias letras em uma STRING
Flávio Pedroza respondeu ao tópico de Eduardo Cesar Lenz em C/C#/C++
Mostre o código de como é feita a leitura por favor. -
Tem alguns erros na sua função conc.Tenta isso: void conc(char a[], char b[], char c[]) { int i,k; for (i=0; i<3; ++i){c[i]=a[i];} //Faltou utilizar o índice [i], lembrando que o indíce vai até no máximo 2. Além disso, não precisa colocar o tipo (char) na frente. Por fim, as variáveis dos parâmetros da função são a, b e não pf, p1, p2 for (k=0; k<3; ++k){c[k+3]=b[k];} //De novo, não pcolocar o tipo (char) na frente e o nome das variíaveis são c e b. }
-
C++ espaçamento estranho na resposta do arduino
Flávio Pedroza respondeu ao tópico de Marquinhos Rolemã em C/C#/C++
Acredito que as ultimas duas posições do string convertido (convertido[1] e convertido[2]) sejam sempre nulas, por isso as duas linhas em branco são mostradas. Tenta assim é veja se dar certo: if (stserial == true) { Serial.println(convertido[0]); convertido=""; stserial = false; } Provavelmente o rotina de leitura da serial lê apenas um char por vez. Mas não tenho certeza, pois não tenho nenhuma experiência com arduino - nunca nem vi um de perto. -
Java Criando um programa com executável e banco de dados
Flávio Pedroza respondeu ao tópico de Bruno Coviello em Java/Android SDK
você poderia tentar usar algum site com hospedagem gratuita que ofereça solução de banco de dados, aí não precisaria se preocupar em criar um servidor você mesmo. -
Pascal Algoritmo de uma empresa
Flávio Pedroza respondeu ao tópico de Charles Diogo123 em Programação - outros
você deve usar begin/end no laço para estabelecer quais linhas de código serão repetidas. For I:= 1 to funcionarios do Begin (...) End; você também deve usar arrays para armazenar as idades, sexo e experiência, pois acho que é isso que o problema pede (armazenar os dados entrados). Seria interessante usar um STRUCT: type Candidato = record sexo : char; experiencia: char; idade : integer; end; var candidatos : array [1..100] of Candidato; você leria os dados assim no laço: Program programa; type Candidato = record sexo : char; experiencia: char; idade : integer; end; var candidatos : array [1..1000] of Candidato; i: integer; begin writeln('Hello, world!'); i: = 1; Repeat Writeln ('Entre com a idade do funcionario'); readln(idade); candidatos[i].idade = idade; i := i + 1; Until idade = 0; end. Tente alterar para ler o resto das variáveis. -
C program em c que Troca caracteres de uma matriz de string
Flávio Pedroza respondeu ao tópico de CARRETA PCZAO em C/C#/C++
for(l=0;l<4;l++){ for( c=0;c<4;c++){ cuidado, a matriz que você declarou só vai de 0 até 2 (3 elementos), o certo seria l<3 / c<3. Na função altera, não precisa do laço, basta fazer: void altera(int linha,int coluna){ a[linha][coluna]=ca; } -
Outro exibir a temperatura no LCD e quando a temperatura fosse menor que 35º
Flávio Pedroza respondeu ao tópico de Napa Nose em Microcontroladores
Tem um erro de lógica nesta parte, especificamente quando a temperatura for exatamente 35. Assim fica melhor, eu acho: if (Temperatura < 35) digitalWrite(RelePin, HIGH) else digitalWrite(RelePin, LOW); Mas não sei se isto é a causa do erro... -
Pascal dois vetores pascal vetorfrequencia
Flávio Pedroza respondeu ao tópico de Bruno Gabriel de Andrade em Programação - outros
Seriam necessários 3 vetores. O principal: Vetor1 O secundário: Vetor2 Um para armazenar as somas: Soma Eu faria em duas etapas. 1. Identificar, através de um laço, quais elementos diferentes tem no vetor principal (Vetor1) e os armazenaria em outro vetor (vetor2) - que terá tamanho igual ou menor que o principal. No exemplo do problema, seria criado um vetor com os seguintes elementos: vetor2 = [5, 4, 3, 18]; 2. Identificado os elementos únicos, varrer o vetor principal (Vetor1) procurando pelos elementos do vetor2 e ir somando +1 a cada elemento encontrado. O resultado seria armazenado no vetor Soma. No exemplo, o resultado seria Soma=[2, 3, 2,3]; Obs.: ao interagir com vetores, deve-se fornecer o índice. Então, para ler o vetor de entrada, o correto seria: For i:=1 to 5 do Begin Writeln ( 'digite o número da posição ' , i ); Readln (vetor[i]); End; -
C programa c que altera caracetere de uma string na posição que eu escolher
Flávio Pedroza respondeu ao tópico de CARRETA PCZAO em C/C#/C++
o if (x < tam) é para evitar que não tente trocar uma letra de uma posição maior que o nome entrado, por exemplo, um trocar a letra da posição 7 de um nome que só tem 6 letras. -
C programa c que altera caracetere de uma string na posição que eu escolher
Flávio Pedroza respondeu ao tópico de CARRETA PCZAO em C/C#/C++
Veja se isso resolve: #include <stdio.h> #include <string.h> int main() { char nome[10]; int tam,x[2]={0},i=0,j=0,qt; char a[10],op; int temp; puts("entre com um nome"); fflush(stdin); gets(nome); tam=strlen(nome); for(i=0;i<2;i++) { puts("\n entre com as posiçao que deseja alterar: "); fflush(stdin); scanf("%i",&x[i]); printf(" \n qual caracetere deseja colocar:"); fflush(stdin); scanf("%s",&a[i]); } for (i=0;i<2; i++) { if (x[i] < tam) nome[x[i]] = a[i]; } printf("\n %s",nome); return 0; } -
Java Quero fazer ordenação de data/hora, usando compareTo mas não pega
Flávio Pedroza respondeu ao tópico de ytalopaulo_ em Java/Android SDK
Para ordenar/comparar datas, você tem que comparar primeiro o ano, depois o mês e por fim o dia. Veja se assim funcionar, não tive como testar eu mesmo: public int compareTo(Data d) { if(this.getAno() > d.getAno()){ return 1; } if(this.getAno() < d.getAno()){ return -1; } if(this.getMes() > d.getMes()){ return 1; } if(this.getMes() < d.getMes()){ return -1; } if(this.getDia() > d.getDia()){ return 1; } if(this.getDia() < d.getDia()){ return -1; } if(this.getHora().getHora() > d.getHora().getHora()){ return 1; } if(this.getHora().getHora() < d.getHora().getHora()){ return -1; } return 0; } -
Acredito que estão faltando alguns "else" no seu código, pois do jeito que está, a função saque sempre é invocada.Tenta assim: printf("Digite o numero da sua conta:\n\n"); scanf("%d", &nmrConta); printf("Informe o valor de saque: "); scanf("%f", &aux); conta = busca(Lista, nmrConta); if(conta == NULL) printf("Conta não encontrada!\n\n"); else if(conta->saldo < 0) printf("Saldo negativo!\n"); else if(aux > conta->saldo) printf("Saldo insuficiente!\n"); else if(aux < 0) printf("Digite um valor positivo."); else saque(Lista, nmrConta, aux); break;
-
você tem que fazer laços No primeiro, faça um for variando i de 1 até n, com incremento 1 (i++) e vai somando (soma += i) No terceiro, faça um for variando i de 1 até (2n-1), com increment 2 (i+=2) e vai somando (soma+=i) No segundo, faça um for variando i de 1 até (2n-1), com incremento 1 (i+=1) e faça uma lógica para verificar se o número é par ou impar. Se for impar, soma+=i, se for par soma-=i
-
C Questão de concurso linguagem C
Flávio Pedroza respondeu ao tópico de Marques Craveiro em C/C#/C++
Na primeira imagem o código está errado, está faltando "return r;" na função. De todo modo, assumindo que esteja correta, o operando "&" equivale ao "and", ele opera bit a bit, como uma mascará. Quando ambos os bits, forem 1, o resultado é 1, caso contrário é zero 82 em binário é 1010010 20 em binário é 0010100 fazendo & = 0010000, ou 16 em decimal O único que ficou 1 foi o 3o bit, contando da esquerda para direita, pois era o único que era 1 nos dois números. Não sei se expliquei muito bem, mas você pode testar na calculadora do windows em modo programador... adicionado 5 minutos depois No segundo exemplo, a sub rotina "funcao" verifica se o número é menor que 6 e, caso positivo, adiciona +1 ao número e repete novamente (recursividade), até que o numero fique igual a 6. Então, o resultado será sempre 6, desde que o número inicial seja menor que 6. -
Acho que depende do compilador, qual você está usando?
-
C como rodar um programa e quando clicado a tecla 'a' ele para
Flávio Pedroza respondeu ao tópico de Junior nss em C/C#/C++
Acredito que a solução seria algo mais ou menos assim (não tive como testar): #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> int main() { char ch; bool tecla_a = false; while(!tecla_a)//O QUE EU USO AQUI? { printf("1001"); if (kbhit()) { ch=getch(); if ((ch==65) || (ch==97)) tecla_a = true; //65 é o código ASCII de "A" e 97 é o do "a" } } } -
C Programinha simples: como acelerar esse processamento?
Flávio Pedroza respondeu ao tópico de kazamuru em C/C#/C++
Deve estar estourando o range da variável. Muda o tipo da variável soma para unsigned long: unsigned long soma=0; E quando for imprimir na tela;: printf("\nSoma: %u",soma); -
C Programinha simples: como acelerar esse processamento?
Flávio Pedroza respondeu ao tópico de kazamuru em C/C#/C++
Tenta algo assim (não testado): int primo(int n){ int div=0, i; for(i=2;i<=n/2;i++){ //divide cada um dos numeros passados por 2 ate n/2 if(n%i==0) return 0; //se achar pelo menos um divsor, já é considerado não primo } return 1; //completou o laço e não achou nenhum divsor? é primo com certeza } -
C Numeros primos no vetor - Linguagem C
Flávio Pedroza respondeu ao tópico de LucasCBSouto em C/C#/C++
Como disse, é questão de adequar as chaves { }. Após o for(....) você deve colocar um { se for executar mais de linha de código dentro do laço e posteriormente fechar com um }. Acredito que assim irá funcionar: #include<conio.h> #include<stdio.h> #include<math.h> int main () { int a[20], i, contap, conta, aux, h, x; contap = 0; printf("Entre com os numeros para os vetores:"); for (i=0; i < 20; i++) scanf ("%d", &a[i]); for (i = 0; i < 20; i++) { aux = a[i]; conta = 0; for(h = 1; h <= aux; h++) { x = aux % h; if(x==0) conta = conta + 1; } if( conta == 2) contap = contap + 1; } printf ("O total de numeros primos no vetor eh: %d", contap); }
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