
Flávio Pedroza
Membro Pleno-
Posts
2.145 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Flávio Pedroza postou
-
C operação com vetores. condicional. operadores lógicos. faeterj. fac. av2. 2017.
Flávio Pedroza respondeu ao tópico de jcgs98 em C/C#/C++
Acredito que esta solução está funcionando. Basta você adicionar a implementa para tratamento de códigos inexistentes (quando busca retornar <0). Atente também para o fato da função "zera" aceitar apenas vetores do tipo float. Portanto, não pode usá-la para vetores do tipo int; int main (void){ int i, cod, qtd, loj; int vPro[4], vLoj[10], vCod[10], vEst[10]; float vVal[4],vImp[6]; //zera (vPro,4); zera (vVal,4); //zera (vLoj,10); //zera (vCod,10); zera (vImp,6); carrega_prods (vPro,vVal,4); carrega_lojas (vLoj,vEst,10); carrega_est (vImp); while (1) { printf("\nCodigo do produto....:"); scanf("%d",&cod); if (cod < 0) break; i = busca (vPro, 4, cod); float preco = vVal[i]; //Preco do produto printf ("\nPreco:%f", preco); printf("\nQuantidade...........:"); scanf("%d",&qtd); printf("\nLoja.................:"); scanf("%d",&loj); i = busca (vLoj, 10, loj); printf ("\nLoja:%d", vLoj[i]); float imposto = vImp[vEst[i]-1]; // imposto printf ("\nImposto:%f", imposto); float faturamento = preco*qtd * (1 - (imposto/100)); printf ("\nFaturamento.......:%f", faturamento); } return 0; } -
C Funçao com ponteiros, vetores, laços e condicionais. FAETERJ. 2017. FAC. AV2.
Flávio Pedroza respondeu ao tópico de jcgs98 em C/C#/C++
float encontraMenor(int numEmp, float *vetorSal){ float menorSal=vetorSal[0]; int i; menorSal tem que ser float também, já que está comparando com outra variável do tipo float; -
C Funçao com ponteiros, vetores, laços e condicionais. FAETERJ. 2017. FAC. AV2.
Flávio Pedroza respondeu ao tópico de jcgs98 em C/C#/C++
void encontraDoisVals (int limInf, int limSup, int *dig1, int *dig2) { int n[2]; for (int i=0; i < 2; i++) { while (1) { printf("\nDigite um valor inteiro %d.......................: ", i+1); scanf("%d",&n[i]); if (n[i] < limInf) && (n[i] > limSup) break; } } *dig1=n[0]; *dig2=n[1]; } adicionado 2 minutos depois Alternativamente, se você puder ler os dois número de uma só vez: void encontraDoisVals (int limInf, int limSup, int *dig1, int *dig2) { do { printf("\nDigite dois valores inteiros.......................: "); scanf("%d %d",dig1, dig2); } while (((*dig1 >= limInf) && (*dig1 <= limSup)) || ((*dig2 >= limInf) && (*dig2 <= limSup))); } -
C Funçao com ponteiros, vetores, laços e condicionais. FAETERJ. 2017. FAC. AV2.
Flávio Pedroza respondeu ao tópico de jcgs98 em C/C#/C++
Eu faria assim: void encontraDoisVals (int limInf, int limSup, int *dig1, int *dig2) { int n[2]; for (int i=0; i < 2; i++) { do { printf("\nDigite um valor inteiro %d.......................: ", i+1); scanf("%d",&n[i]); } while ((n[i] >= limInf) && (n[i] <= limSup)); } *dig1=n[0]; *dig2=n[1]; } -
C Funçao com ponteiros, vetores, laços e condicionais. FAETERJ. 2018. FAC. AV2.
Flávio Pedroza respondeu ao tópico de jcgs98 em C/C#/C++
Como isrnick sugeriu, lenha os dados fora da função int main(void) { int agencia, dig1; int conta, dig2; while (1) // Loop infinito { //Botar aqui código para ler dados de entrada if (!agencia) break; //se agencia == 0 sai do laço neste ponto calcDigitos(&conta,&agencia,&dig1,&dig2); printf("\nAgencia:............. %d - %d",agencia,dig1); printf("\nConta:............... %d - %d",conta,dig2); } return 0; } -
C++ C++ Problemas com leitura de arquivo txt
Flávio Pedroza respondeu ao tópico de Joanderson Pereira em C/C#/C++
Remova o ";", pois caso contrário o código entre {} não vai ser executado dentro do while. while (getline (inFile, line)) { i++; cout << line <<'\n'; cout << i << endl; } -
C++ como declarar um metodo virtual no ponto cpp
Flávio Pedroza respondeu ao tópico de _rsd_17 em C/C#/C++
Se for um método puramente virtual (=0), não precisa colocar no CPP, caso contrário é como você disse no seu post inicial, fazer do mesmo jeito que um método normal. -
você tem que tirar o "[5]" do construtor do classe "player": :player(_simbolo, _nome, _escolhas, _numjogadas)
-
C Porque a declaração de user como um apontador dentro da estrutura review?
Flávio Pedroza respondeu ao tópico de fabiopires010 em C/C#/C++
"Porque que às vezes é usado . e noutras ->" Quando se usa variáveis do tipo ponteiros, derivadas de estruturas ou classes, você deve "de-referenciar" antes de acessar seu membros. Usar "->" é um forma de se fazer isso, porém não é obrigatório, a outras formas de se fazer isso. Veja o exemplo abaixo: #include <iostream> using namespace std; #define MAX_STRING 256 struct utilizador { unsigned long id; char nome[MAX_STRING + 1]; }; int main() { utilizador *teste = new utilizador();//variável do tipo apontador int a; //As formas abaixo são equivalentes para de-referenciar o ponteiro teste teste->id = 5; //com -> (*teste).id += 1; //com . (teste[0].id) += 2; //com [], útil quando se sabe que o variável na verdade é um vetor do tipo cout<<teste->id; return 0; } Tentar procurar algum tutorial na net sobre ponteiros, referência e de-referência -
C++ como declarar um metodo virtual no ponto cpp
Flávio Pedroza respondeu ao tópico de _rsd_17 em C/C#/C++
Se você colocar "=0" o método fica virtual (e consequentmente a classe fica abstrata). class JogG { virtual void Lancar()=0; }; Não sei se era essa sua dúvida... -
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.
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