Ir ao conteúdo
  • Cadastre-se

Ivander

Membro Pleno
  • Posts

    27
  • Cadastrado em

  • Última visita

  1. Resolvi retirando "file_open(fid1,"inputSignal.dat",READ_MODE);" Pois o endfile(fid1) como sintaxe do VHDL 1987 já abre um arquivo.
  2. ------------------------------------------------- -- Leitura do vetor de estimulos fornecido pelo arquivo --inputSignal.dat gerado no Octave. PROCESS FILE fid1 : TEXT; VARIABLE line1 : LINE; VARIABLE sinalAD : std_logic_vector(7 downto 0); VARIABLE sinalAD_conv: std_logic_vector(7 downto 0); BEGIN file_open(fid1,"inputSignal.dat",READ_MODE); sinal_in <= (OTHERS => '0'); wait until reset='0'; WHILE NOT endfile(fid1) LOOP wait until rising_edge(clk); readline(fid1,line1); read(line1, sinalAD); sinalAD_conv(7) := not sinalAD(7); sinalAD_conv(6 downto 0):= sinalAD(6 downto 0); sinal_in <= sinalAD_conv; END LOOP; END PROCESS; Estou tentando verificar se o arquivo encerrou em uma leitura de arquivos no VHDL utilizando o endfile(), se utilizo TRUE como argumento do while o arquivo código roda, se utilizo endfile(fid1) como argumento do while da o seguinte erro: # ** Error: (vsim-3341) Cannot open file "inputSignal.dat"; it is already open. # Time: 870 ns Iteration: 0 Instance: /tbfir não sei porque estou abrindo o arquivo duas vezes como informado no erro; meu intuito era apenas verificar se o fim do arquivo chegou para encerrar o loop, alguém pode me ajudar me explicando meu erro?
  3. @devair1010 Muito obrigado por estar sempre me auxiliando no aprendizado aqui no fórum. abraço, entendi meu erro lógico.
  4. package vetorteste; import java.util.Scanner; public class VetorTeste { public static void main(String[] args) { int linha=0; int coluna=0; int matriz[][] = new int[coluna][linha]; Scanner teclado = new Scanner(System.in); System.out.println("Digite a quantidade de colunas da matriz : "); linha = teclado.nextInt(); System.out.println("Digite a quantidade de linhas da matriz : "); coluna = teclado.nextInt(); for (int i=0; i<=coluna; i++) { for (int j=0; j<=linha; j++) { System.out.printf("Digite o valor [%d][%d] ", +i+j); // Esta linha possuí erro. matriz[i][j] = teclado.nextInt(); // Esta linha possuí erro. } } for (int i=0; i<=coluna; i++) { for (int j=0; j<=linha; j++) { System.out.printf("[%d][%d] ",+i+j+": "+matriz[i][j]); // Esta linha possuí erro. } System.out.println(" "); } } } Galera, estou aprendendo a linguagem Java e estou sofrendo para algumas adptações da família C ao qual estou familiarizado. Comentei no código onde minha IDE indica erro, pois retirando essas linhas, o programa roda . Gostaria de pedir que alguém me explique por favor onde esta meu erro, para que eu entenda os detalhes que diferenciam JAVA de C, assim como entender melhor como funciona a linguagem. Tenho o palpite de que seja a sintaxe ao trabalhar com vetores e matrizes. Desde já , grato! ERRO APRESENTADO: Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier '%d' at java.util.Formatter.format(Formatter.java:2519) at java.io.PrintStream.format(PrintStream.java:970) at java.io.PrintStream.printf(PrintStream.java:871) at vetorteste.VetorTeste.main(VetorTeste.java:37)
  5. Boa noite companheiros do Clube do Hardware. Este é meu primeiro post se tratando de Java! Estou procurando aprender a linguagem via foruns, cursos, videos pela internet. Estou acompanhando um curso em que o JavaFX não está integrado ao Netbeans, gosto muito do professor e foi também um dos poucos de qualidade grátis que encontrei. Procurei sobre o assunto na internet e não consegui encontrar algo que me oriente. Durante a abertura de um novo projeto em JavaFX FXML aparece a seguinte mensagem: "Acesse o Platform Manager, crie uma plataforma Java SE não padrão e, em seguida, acesse a guia JavaFX, ative o JavaFX e preencha os caminhos para validar o JavaFX SDK e o Java FX Runtime." alguém poderia por favor me auxiliar com um tutorial online ou me orientar com como posso proceder?
  6. @Leo14nerd Sem problemas, esses métodos de seleção são formas simples de resolver o problema. não tive o intuito de dizer que esse programa terá problemas de RAM, mas sim que mesmo sendo um modelo este código, é algo que vale se pensar para algo mais complexo. Afinal é apenas um exercício ilustrativo sem problemas cotidianos.
  7. #include <stdio.h> #include <math.h> #define PI 3.14 main () { float raio, area, perimetro; printf ("\t\tCALCULA A AREA E PERIMETRO DE UMA CIRCUNFERENCIA \n\n"); printf ("Digite o valor do raio :"); scanf ("%f", &raio); area = PI*pow(2,raio); perimetro = 2*PI*raio; printf ("A area eh: %.2f \n", area); printf ("O perimetro eh: %.2f", perimetro ); return 0; } Normalmente como o devair disse, não postamos códigos . Sugere-se que poste o que você realizou e assim o pessoal tira as dúvidas . esse é um exemplo de como poderia ficar o seu código do exercício 2, espero que faça bom uso estudando.
  8. #include <stdio.h> #include <stdlib.h> #include <conio.h> main () { int n, i, j; int vet[n], min, max; system("color F1"); printf ( " \t\t ORGANIZA VETOR BINARIO DE N posições \n\n"); printf ("Digite o tamanho do vetor desejado: "); scanf ("%d",&n); for ( i=0; i<n; i++) { ini: printf ("Digite o elemento [%d] : ", i+1); scanf ("%d", &vet[i]); fflush(stdin); if ( vet[i]>1 ) { system("cls"); printf ("por favor digite 0 ou 1 nos elementos dos vetores."); getch(); system("cls"); goto ini; } } for (i=0; i<n; i++) { for(j= i+1; j<n; j++) { if (vet[j]<vet[i]) { min = vet[j]; max = vet[i]; vet[i]= min; vet[j]= max; } } } system ("cls"); for (i=0; i<n; i++) { printf ("%d", vet[i]); } return 0; } No caso, acredito que o objetivo de seu professor seja que você tenha familiaridade com os métodos conhecidos de seleção. Existem vários métodos de seleção e caso você consiga desenvolver um pode ser interessante também. Cada método possui suas vantagens, uns são mais eficientes outros mais diretos etc. no caso, escolhi o selection sort, gosto dele por comparar posição por posição e já ir organizando como desejo, porém ele não é tão eficiente como um buble sort.
  9. ENTITY ula IS PORT ( INPUT1 : IN BIT_VECTOR (2 DOWNTO 0); INPUT2 : IN BIT_VECTOR (2 DOWNTO 0); SELETOR : IN BIT_VECTOR (1 DOWNTO 0); OUTPUTF2 : OUT BIT_VECTOR (5 DOWNTO 0)); END ula; ARCHITECTURE teste OF ula IS SIGNAL e1 : BIT_VECTOR (2 DOWNTO 0); SIGNAL e2 : BIT_VECTOR (2 DOWNTO 0); SIGNAL s1 : INTEGER; SIGNAL s2 : INTEGER; SIGNAL sf1 : INTEGER; SIGNAL sf2 : BIT_VECTOR(5 DOWNTO 0); BEGIN sel <= SELETOR(0)&SELETOR(1); e1 <= INPUT1; e2 <= INPUT2; s1 <= to_integer(unsigned(e1)); s2 <= to_integer(unsigned(e2)); PROCESS (sel) BEGIN IF (sel="00") THEN --Soma CASE sel IS sf1 <= s1+s2; sf2 <= BIT_VECTOR(to_unsigned(sf1,sf2'length)); ELSIF (sel="01") THEN -- Subtração CASE sel IS sf1 <= s1-s2; sf2 <= BIT_VECTOR(to_unsigned(sf1,sf2'length)); ELSIF (sel="10") THEN -- Multiplicação CASE sel IS sf1 <= s1*s2; sf2 <= BIT_VECTOR(to_unsigned(sf1,sf2'length)); ELSIF (sel="11") THEN -- Divisão CASE sel IS sf1 <= s1/s2; sf2 <= BIT_VECTOR(to_unsigned(sf1,sf2'length)); ELSE END IF ; END PROCESS; END teste; Bom dia , estou tentando desenvolver uma calculadora em VHDL , Quartus II da Altera. estou utilizando casting, e estou com um erro específico na linha 34 onde ele sugere uma condicional, porém quando altero a condicional 'when' da mais erros. alguém poderia me ajudar a entender ?
  10. #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <math.h> void soma (float a, float b); void sub (float a, float b); void mul (float a, float b); void div (float a, float b); // Função principal main () { float a, b; char operacao; printf("Digite o primeiro valor: "); scanf ("%f", &a); printf ("Qual operacao deseja realizar? \n '+' soma.\n '-' subtracao.\n '*' multiplicacao.\n '/' divisao.\n\n operacao:"); scanf ("%c", &operacao); printf("Digite o segundo valor: "); scanf ("%f", &b); system("cls"); switch (operacao) { ini: case '+' : soma(a,b); break; case '-' : sub(a,b); break; case '*' : mul(a,b); break; case '/' : div(a,b); break; default : printf("Opcao invalida!"); goto ini; } } //Função Soma void soma(float a, float b) { float result=0; result=a+b; printf("%.2f + %.2f = %.2f", a, b, result); } //Função Subtração void sub(float a, float b) { float result=0; result=a-b; printf("%.2f - %.2f = %.2f", a, b, result); } //Função Multiplicação void mul(float a, float b) { float result=0; result=a*b; printf("%.2f * %.2f = %.2f", a, b, result); } //Função Divisão void div(float a, float b) { float result=0; result=a/b; printf("%.2f / %.2f = %.2f", a, b, result); } Olá boa tarde, alguém poderia me ajudar por favor? este é meu código. Estou tentando usar a função void para determinar cada operação de uma calculadora. (+ , -, *, /). O programa não da erro para compilar, porém enquanto esta rodando após solicitar a operação que desejo ele roda diretamente a função somar e ainda não solicita o segundo valor da operação, sempre somando com zero. agradeço caso alguém possa me esclarecer. att. adicionado 9 minutos depois Resolvido. Apenas alterando a chamada da função de 'c' char, para 's' string; funcionará tudo ok.
  11. @devair1010 Muito obrigado pela ajuda, quando estou programando acontece realmente no automático algumas atribuições em c++ ou c# e nem noto a diferença porque não tenho experiência em c. agradeço a ajuda e disposição, me ajudou muito . Resolveu o problema. adicionado 3 minutos depois resolvido
  12. #include<stdio.h> #include<math.h> #include<conio.h> #include<stdlib.h> main() { struct raiz { float a, b, c, delta, x1, x2; char mensagem; }; struct raiz quad[5]; float a, b, c, delta, x1, x2, i=0, cont=0; char resp; do { while(cont<=5) { printf ("\t\t\tCALCULO DE RAIZ PARA UMA EQ. DO SEGUNDO GRAU\n\n\n"); printf ("Insira o valor do coeficiente 'A':"); scanf ("%f", &a); fflush(stdin); printf ("Insira o valor do coeficiente 'B':"); scanf ("%f", &b); fflush(stdin); printf ("Insira o valor do coeficiente 'C':"); scanf ("%f", &c); fflush(stdin); delta = pow(b,2)-4*a*c; x1=((-b)+sqrt(delta))/(2*a); x2=((-b)-sqrt(delta))/(2*a); if ( delta>0 && delta!=0) { mensagem[i]=AETDRR; //A equacao tem duas raizes reais quad[i].a=a; quad[i].b=b; quad[i].c=c; quad[i].delta=delta; quad[i].x1=x1; quad[i].x2=x2; } if ( delta<0 && delta!=0) { mensagem[i]=AENTRR; //A equacao nao tem raizes reais quad[i].a=a; quad[i].b=b; quad[i].c=c; quad[i].delta=delta; quad[i].x1=x1; quad[i].x2=x2; } if ( delta==0) { mensagem[i]=AETDRI; // A equacao tem duas raizes reais iguais quad[i].a=a; quad[i].b=b; quad[i].c=c; quad[i].delta=delta; quad[i].x1=x1; quad[i].x2=x2; } printf("Deseja realizar mais um calculo de raiz quadrada? S/ N/ : "); scanf ("%c", &resp); printf("\n\n"); system("cls"); cont++; i++; } goto mid; } while( resp=='s' || resp=='S'); mid: resp=0; printf ("\nDeseja imprimir os calculos realizados? S/ N/"); scanf ("%c",&resp); if(resp=='s' || resp=='S') { printf(" LEGENDA: \n AETDRR = A equacao tem duas raizes reais\n AENTRR = A equacao nao tem raizes reais\n AETDRI = A equacao tem duas raizes reais iguais\n\n "); for (i=0;i<5;i++) { printf("%s", quad[i].mensagem); printf("%.0f", quad[i].a); printf("%.0f",quad[i].b); printf("%.0f",quad[i].c); printf("%.0f",quad[i].delta); printf("%.0f",quad[i].x1); printf("%.0f",quad[i].x2); } }else{ goto fim; } fim: system("PAUSE"); return 0; } Boa noite, tenho uma dúvida, ao compilar este código esta dando erro referente a declaração de escopo. Alguém pode me ajudar ? A ideia é realizar até 5 calculos de raiz quadrada, após isso o programa irá perguntar se desejo imprimir a matriz (relatório) referente a todos os calculos realizados.

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