Leoveira
Membro Pleno-
Posts
28 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
Tudo que Leoveira postou
-
Arduino R_AVR_7_PCREL against `no symbol'
Leoveira respondeu ao tópico de Leoveira em Microcontroladores
@aphawk vou ter que fazer isso por ICSP. TO pesquisando como fazer nesse modelo de Atmega, as informações são bem escassas. -
Arduino R_AVR_7_PCREL against `no symbol'
Leoveira respondeu ao tópico de Leoveira em Microcontroladores
Então, descobri isso do 16 Mhz fazendo uns testes aqui, o cara que montou essa impressora me disse que era 20Mhz com toda a certeza. E realmente o erro não acontece mais na hora de compilar depois que mudei, porém parece que aconteceu algum erro quando subi o código e a placa não e mais reconhecida pelo computador. Pelo visto vou ter que gravar o bootloader novamente no ATmega1284P-PU. -
Arduino R_AVR_7_PCREL against `no symbol'
Leoveira respondeu ao tópico de Leoveira em Microcontroladores
Ainda não achei nada sobre esse erro, mas reparei em uma coisa: a Gen7BR2 que eu uso tem um ATmega1284P-PU de 20MHz. Se eu mudar para o ATmega1284P-PU de 16MHz o erro não aparece. -
Tenho uma impressora 3D que usa uma placa Gen7 (processador ATMEGA 1284p). Estou tentando subir o firmware na minha impressora, mas toda vez que verifico o código ele me retorna esse erro: C:\Users\apren\AppData\Local\Temp\ccBbHVpl.ltrans0.ltrans.o: In function `zigzag': C:\Users\apren\AppData\Local\Temp\arduino_build_817137\sketch/nozzle.h:120:(.text+0xcc8): relocation truncated to fit: R_AVR_7_PCREL against `no symbol' collect2.exe: error: ld returned 1 exit status Já verifiquei o nozzle.h na linha 120 e não tem erro algum. Alguma sugestão?
-
E por que eu dou nome conforme se pede no exercício, a ideia e que ficasse fácil de entender o que cada variável, vetor ou função faz. Como você escreveu em C eu fiquei meio perdido mas acho que entendi mais ou menos, mas o que seria o comando puts? Eu coloquei uma ponteiro para alocar o tamanho do vetor para ver se resolve o problema, mas não resolveu. #include <iostream> #include <stdlib.h> using namespace std; int*alocavetor (int tamanho){ int *aux; //alocação dinamica de memoria aux= (int*) malloc(tamanho *sizeof(int)); //retorna o valor alocado return aux; } int piramidal(int sequencia[]){ int tamanho=0,x,y; //armazenar valores cout << "Digite o numero de elementos: "; cin >> tamanho; cout << "Digite uma sequencia de numeros: "; for(x=0;x<tamanho;x++){ cin >> sequencia[x]; } cout<<"\n"; //exibir int cont=0; for(x=0;x<tamanho;x++){ for(y=0;y<tamanho;y++){ if(x>=y){ cout << sequencia[cont] << " "; cont++;} else if(x == tamanho ||y == tamanho ){ break; } else; } cout<<"\n"; } } int main(){ int tamanho=0, *sequencia,chama_funcao; cout << "\n\t Piramidal\n"; sequencia=alocavetor(tamanho); chama_funcao=piramidal(sequencia); }
-
Consegui fazer, porém se deu defino 10 elementos ele está exibindo uns valores estranhos depois dos 10 . #include <iostream> using namespace std; int piramidal(int sequencia[]){ int elementos=0,x,y; //armazenar valores cout << "Digite o numero de elementos: "; cin >> elementos; cout << "Digite uma sequencia de numeros: "; for(x=0;x<elementos;x++){ cin >> sequencia[x]; } cout<<"\n"; //exibir int cont=0; for(x=0;x<elementos;x++){ for(y=0;y<elementos;y++){ if(x>=y){ cout << sequencia[cont] << " "; cont++;} else if(x == elementos ||y == elementos ){ break; } else; } cout<<"\n"; } } int main(){ int elementos=0, sequencia[elementos],chama_funcao; cout << "\n\t Piramidal\n"; chama_funcao=piramidal(sequencia); }
-
/*Uma sequência de n números inteiros não nulos é dita piramidal m-alternante se é constituída por m segmentos: o primeiro com um elemento, o segundo com dois elementos e assim por diante até o m-ésimo, com m elementos. Além disso, os elementos de um mesmo segmento devem ser todos pares ou todos ímpares e para cada segmento, se seus elementos forem todos pares (ímpares), os elementos do segmento seguinte devem ser todos ímpares (pares). Por exemplo, a sequência com n = 10 elementos: 12 3 7 2 10 4 5 13 5 11 é piramidal 4-alternante. A sequência com n = 3 elementos: 7 10 2 é piramidal 2-alternante. A sequência com n = 8 elementos: 1 12 4 3 13 5 12 6 não é piramidal alternante pois o último segmento não tem tamanho 4. (a) Escreva uma função bloco que recebe como parâmetro um inteiro n e lê n inteiros do teclado, devolvendo um dos seguintes valores: 0, se os n números lidos forem pares; 1, se os n números lidos forem ímpares; -1, se entre os n números lidos há números com paridades diferentes. (b) usando a função do item anterior, escreva um programa que, dados um inteiro n > 1 e uma sequência de n números inteiros, verifica se ela é piramidal m-alternante. O programa deve imprimir o valor de m ou dar a resposta não.*/ #include <iostream> using namespace std; int piramidal(int sequencia[]){ int elementos,cont; //armazenar valores cout << "Digite o numero de elementos: "; cin >> elementos; cout << "Digite uma sequencia de numeros: "; for(cont=0;cont<elementos;cont++){ cin >> sequencia[cont]; } //exibir for(cont=0;cont<elementos;cont++){ cout << sequencia[cont]; } int main(){ int elementos=0, sequencia[elementos],chama_funcao; cout << "\n\t Piramidal\n"; chama_funcao=piramidal(sequencia); }
-
@XenoStory acho que também não expliquei muito claro. Por exemplo se eu colocar para ser 10 elementos e eles vão ter a seguinte sequencia (12, 42, 22, 65, 87, 34, 56, 1, 98 e 23), eu não preciso coloca-los em ordem crescente. Mas preciso que o numero de números exibidos por linha seja crescente. EX.: 12 42, 22 65, 87, 34 56, 1, 98, 23 Com dois laços de repetição eu não consegui, e também não consegui pensar em uma maneira que não parece-se desnecessariamente complicada para limitar. Mas ainda to na luta do raciocínio aqui.
-
Boa tarde, estou fazendo um exercício que na qual eu preciso definir o numero de elementos e uma sequencia que deve ser impressa assim: Ex: N=10(numero de elementos) 1 23 456 78910 O exercício pede mais coisas, mas creio que consigo fazer o resto. Meu problema e só essas manipulações de vetores que ainda estão me dando trabalho.
-
@Simon Viegas me salvou de novo. Deu certinho, obrigado.
-
Funcionou mas agora o erro e esse: error: invalid types 'float[int]' for array subscript
-
Eu tive esse pensamento, mas só lembrei de colocar o media como float. Nem tinha percebido, obrigado por me lembrar. Obrigado a todos pela ajuda. adicionado 20 minutos depois Só uma duvida coloquei o meu código em uma função é esta dando o erro "error: cannot convert 'float' to 'float*' for argument '1' to 'float suavizacao(float*)' ". #define tam 10 float suavizacao(float vetor[tam]){ int cont; float media=0; for(cont=0;cont<tam;cont++){ if(cont ==0){ media=(vetor[cont]+vetor[cont+1])/2; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } else if(cont ==9){ media=(vetor[cont]+vetor[cont-1])/2; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } else{ media=(vetor[cont-1]+vetor[cont]+vetor[cont+1])/3; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } } return 0; } int main(){ float valores[tam],teste; int cont; cout << "\n\t Suavizacao de vetor\n"; cout << "\nDigite dez valores: "; for(cont=0;cont<tam;cont++){ cin >> valores[cont]; } suavizacao(valores[tam]); }
-
Boa noite, tenho que fazer a suavização de um vetor de 10 posições. A suavização consiste em substituir o valor atual de uma posição pela média do valor da posição anterior, da posterior e dele próprio. Assumindo que o identificador do vetor é v, então v=(v[i-1]+v+v[i+1])/3, (exceto o primeiro e o último). O primeiro elemento do vetor é suavizado com base na média entre os dois primeiros valores e o último elemento é suavizado com base na média entre os dois últimos. Meu código ficou assim: #include<iostream> using namespace std; int main(){ int tam=10,vetor[tam],cont; float media=0; cout << "\n\t Suavização de vetor\n"; cout << "\nDigite dez valores: "; for(cont=0;cont<tam;cont++){ cin >> vetor[cont]; } for(cont=0;cont<tam;cont++){ if(cont ==0){ media=(vetor[cont]+vetor[cont+1])/2; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } if(cont ==9){ media=(vetor[cont]+vetor[cont-1])/2; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } else{ media=(vetor[cont-1]+vetor[cont]+vetor[cont+1])/3; cout << "\nPosicao no vetor: " << cont << ", suavizacao: " << media; media=0; } } } Ele não está retornando os valores corretamente, alguém sabe qual pode ser o erro?
-
@Simon Viegas sobre primeira parte eu costumo fazer isso, mas quando fico perdido eu ignoro isso até resolver e depois volto e arrumo(se eu fizesse desde de o inicio evitava perda de tempo). Mas obrigado de todo jeito, vou tentar ter esse costume em mente. Sobre a segunda parte eu realmente não entendi o que você quis dizer ou insinuar, minha duvida era sobre isso: E minha dificuldade era na lógica, eu estava colocando mais complicação do que havia. Mas agradeço a colaboração de todos, me ajudaram bastante. adicionado 2 minutos depois O código ficou assim: #include <iostream> #include <math.h> using namespace std; #define juizes 5 int main(){ int notas[juizes],cont,media=0,maior=0,menor=0; cout << "\n\t Prova de Atletismo\n"; cout << "Digite 5 notas entre 0 a 9 para o atleta: \n"; //armazenar valores for(cont=0;cont<juizes;cont++){ //if(notas[cont]>10){ cin >> notas[cont]; } //media for(cont=0;cont<juizes;cont++){ media+=notas[cont]; } media=media/juizes; cout << "\nA media do atleta foi de: " << media; //maior for(cont=0;cont<juizes;cont++){ if(notas[cont]>maior){ maior=notas[cont]; } } //menor menor=maior; for(cont=0;cont<juizes;cont++){ if(notas[cont]<menor){ menor=notas[cont]; } } cout << "\nA sua menor nota foi: " << menor << " e a sua maior nota foi: " << maior; //porcentagem de repetidos int nota_alta=8,repet=0,porcen=0; for(cont=0;cont<juizes;cont++){ if(notas[cont]>=nota_alta){ repet++; } porcen=repet*20; //5 notas e igual a 100%, então cada nota e 20% } cout << "\nA porcentagem de notas iguais ou superiores a 8 e: " << porcen<< "%"; //atribuição de notas for(cont=0;cont<juizes;cont++){ if(notas[cont]>=nota_alta){ cout << "\nO juiz numero " << cont << " deu a nota: " << notas[cont]; } } }
-
@vangodp E isso mesmo, eu que digitei errado. E isso que eu não to entendendo muito bem, pode me dar um exemplo se não for incomodo?
-
Boa tarde, Estou fazendo um exercício que pede para armazenar 5 notas de juízes ( de 0 a 9) a um atleta em um vetor e depois exiba a media, a maior nota, a menor nota, e a a percentagem de pontuações iguais ou superiores a 8 valores. E essa ultima me pegou de jeito, por que não estou conseguindo montar o trecho de código para identificar repetidos em um vetor. Meu código até então está assim: #include <iostream> #define juiz 5 using namespace std; int main(){ int notas[juiz],cont,media=0,maior=0,menor=0; cout << "\n\t Prova de Atletismo\n"; cout << "Digite 5 notas entre 0 a 9 para o atleta: \n"; //armazenar valores for(cont=0;cont<juiz;cont++){ cin >> notas[cont]; } //media for(cont=0;cont<juiz;cont++){ media+=notas[cont]; } media=media/juiz; cout << "\nA media do atleta foi de: " << media; //maior for(cont=0;cont<juiz;cont++){ if(notas[cont]>maior){ maior=notas[cont]; } } //menor menor=maior; for(cont=0;cont<juiz;cont++){ if(notas[cont]<menor){ menor=notas[cont]; } } cout << "\nA sua menor nota foi: " << menor << " e a sua maior nota foi: " << maior; //repetidos int rep=0; int cont2=notas[0]; for(cont=0;cont<juiz;cont++){ if(notas[cont] == cont2){ rep++; } } } Sei que poderia colocar um outro FOR dentro do primeiro para resolver, mas não estou sabendo montar a lógica correta. Alguma sugestão?
-
@Simon Viegas @Mauro Britivaldo deu certo aqui. Ficou uma bagunça, mas já me contentei por conseguir. Obrigado pela ajuda de vocês dois!
-
Desculpem a demoram, vou testar as sugestões e posto o resultado.
-
@Mauro Britivaldo você me deu uma luz nesse decodificar meu caro, com isso fiz algo assim: #include <iostream> #include <stdlib.h> using namespace std; int main(){ int n,i,num[4]; cout << "\n\t Codificar e Decodificar\n"; cout << "\nDigite um numero: "; cin >> n; //codificar i=0; while(n>0){ num[i]=(n+8)%10; n=n/10; i=i+1; } cout << num[1]<<num[0]<<num[3]<<num[2]; //decodificar i=0; while(i<4){ num[i]=(num[i]+10)-8; i=i+1; } cout <<"\n" << num[3]<<num[2]<<num[1]<<num[0]; } Porém está dando problemas com o digito 1, ex: se eu codificar 1234 na hora de decodificar ele me retorna 11234. @Simon Viegas eu estou fazendo sem funções por que não entendi exercício por completo, assim que conseguir faço as funções necessárias. E o seu cout esta correto.
-
@Mauro Britivaldo Sem loop ficaria assim: int main(){ int n; cout << "Digite um numero: "; cin >>n; cout << "\t" << n%10+8; n=n/10; cout << "\t" << n%10+8; n=n/10; cout << "\t" << n%10+8; n=n/10; cout << "\t" << n%10+8; n=n/10; } Meu maior problema e entender como decodificar. Tentei colocar cada digito em um vetor e depois fazer a conta inversa mas não deu certo.
-
@Mauro Britivaldo eu comecei usando o for para fazer a repetição, quando troquei para while esqueci de tirar.
-
Boa tarde. Gostaria de ajuda com um exercício, pois estou estudando sozinho e não tenho alguém para poder recorrer. Ele diz o seguinte: Uma empresa pretende enviar cifrada uma sequência de inteiros decimais de 4 dígitos(DigDigDigDig). A cifra consiste em: substituir cada dígito Dig por (Dig+8)%10 (i.e., adiciona 8 e calcula o resto da divisão do resultado por 10); depois troca o terceiro dígito com o primeiro e troca o quarto dígito com o segundo. a) Escreva uma função que receba um inteiro decimal de 4 dígitos e o devolva cifrado. b )Escreva uma função que receba um inteiro cifrado e o decifre para o valor original. c) Escreva uma função que apresente um «menu» com 2 opções, cifrar e decifrar número, peça ao utilizador para escolher uma das opções, e retorne a opção escolhida. d) Faça um programa que permita testar as funções anteriores. Primeiro estou fazendo sem a função para entender como fazer. Fiz o seguinte: int main(){ int n,i,num[4]; cout << "Digite um numero: "; cin >>n; i=0; while(n>0){ num= n%10; n=n/10; i=i+1; } cout << num[1]<<num[0]<<num[3]<<num[2]; } Não consigo fazer o decodificar de maneira correta, se alguém poder me explicar em vez de colocar um código já pronto iria agradecer muito.
-
MMMMMUUUUUIIIITTTTTOOOOO OBRIGADO CARA!!!!! Era uma coisa boba e nem tinha percebido. Valeu!
-
Boa tarde. Estou re-estudando programação porque fiquei anos sem programar nada. E agora estou me deparando com uma coisa estranha: qualquer função que eu coloque no código não retorna o valor correto. Por exemplo esse código aqui: #include <iostream> using namespace std; int m (int a, int b){ int c; c=a+b; return c; } int main() { int n1,n2,n3=m(n1,n2); cout << "Digite um numero: "; cin >> n1 >> n2; cout << n3; return 0; } E só para somar duas variáveis, e se eu colocar 2+2 por exemplo, tem hora que aparece 93 ou 11256388 ou outro valor. Já peguei outras funções e também não funcionam, nem aquelas de exercícios resolvidos. Eu usando o Falcon C++, mas testei no Code Blocks e no Dev C++ e todos estão ocorrendo o mesmo erro. Alguma sugestão?
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