Ir ao conteúdo
  • Cadastre-se

Leoveira

Membro Pleno
  • Posts

    28
  • Cadastrado em

  • Última visita

Tudo que Leoveira postou

  1. @aphawk vou ter que fazer isso por ICSP. TO pesquisando como fazer nesse modelo de Atmega, as informações são bem escassas.
  2. 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.
  3. 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.
  4. 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?
  5. 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); }
  6. 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); }
  7. /*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); }
  8. @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.
  9. 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.
  10. @Simon Viegas me salvou de novo. Deu certinho, obrigado.
  11. Funcionou mas agora o erro e esse: error: invalid types 'float[int]' for array subscript
  12. 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]); }
  13. 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?
  14. @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]; } } }
  15. @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?
  16. 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?
  17. @Simon Viegas @Mauro Britivaldo deu certo aqui. Ficou uma bagunça, mas já me contentei por conseguir. Obrigado pela ajuda de vocês dois!
  18. Desculpem a demoram, vou testar as sugestões e posto o resultado.
  19. @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.
  20. @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.
  21. @Mauro Britivaldo eu comecei usando o for para fazer a repetição, quando troquei para while esqueci de tirar.
  22. 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.
  23. MMMMMUUUUUIIIITTTTTOOOOO OBRIGADO CARA!!!!! Era uma coisa boba e nem tinha percebido. Valeu!
  24. 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

×
×
  • Criar novo...