Ivander
-
Posts
26 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Ivander
-
-
------------------------------------------------- -- 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? -
@devair1010 Muito obrigado por estar sempre me auxiliando no aprendizado aqui no fórum.
abraço, entendi meu erro lógico.- 1
-
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)- 1
-
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?- 1
-
@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.- 1
-
#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.
- 1
-
#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.- 1
-
#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 depoisResolvido.
Apenas alterando a chamada da função de 'c' char, para 's' string; funcionará tudo ok.- 1
-
-
-
resolvido
-
@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 depoisresolvido
-
#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.- 1
-
@MB_ Muito obrigado, apenas com a formatação correta do scanf já resolveu e a sugestão de multiplicação por 0.01 facilita o entendimento do usuário. obrigado!
-
#include<stdio.h> #include<math.h> main() { float montante, taxadejuros, valorinicial; int periodo; printf ("CALCULO DE JUROS COMPOSTOS\n\n\n"); printf ("Qual o valor inicial de deposito?\n"); scanf ("%.2f", &valorinicial); fflush(stdin); printf ("\n\nPor quanto tempo pretende calcular os juros? ( em meses )\n"); scanf ("%d", &periodo); fflush(stdin); printf ("\n\nQual a taxa de juros vigente de seu banco?\n"); scanf ("%.2f", &taxadejuros); fflush(stdin); montante = valorinicial*pow((1+taxadejuros), periodo); printf ("\n\nO valor acumulado no periodo de %d eh : %.2f", periodo, montante); return 0; }
Boa tarde, possuo uma dúvida referente ao meu programa abaixo em Linguagem C.
o compilador não acusa nenhum erro, a leitura de cada variável esta acontecendo corretamente e com a formatação float esperada, porém ao retornar o resultado, independente dos valores inseridos sempre retorna "zero".
alguém poderia por favor me trazer uma luz?
acredito que o erro esteja na fórmula ou ao printar o resultado final.
- 1
-
Boa tarde, desde já, aviso que sou iniciante.
estou com uma dúvida.
escrevi todo o código utilizando funções.
o programa roda, realiza a leitura de cada elemento da matriz, porém na hora de printar a separação dos elementos do triangulo superior e inferior; não printa nada.
segue o algoritmo.
<#include<stdio.h>
#include<conio.h>/*Funcao que faz a leitura da dimensao e dos elementos de uma matriz*/
void leitura(int *n, int matriz[100][100]){
int i, j; /*Declaracao de variaveis*/
printf("Digite a dimensao da matriz quadrada: ");
scanf("%d", n); /*Leitura da dimensao*/
printf("Digite os elementos da matriz[%d][%d]:\n", *n,*n);
for(i = 0; i < *n; i++){
for(j = 0; j < *n; j++)
scanf("%d", &matriz[j]); /*Leitura dos elementos*/
}
}/*Funcao que separa valores da matriz tringular superior --- i<j*/
void triangularsuperior(int matriz[100][100]){
int *n, i, j; /*Declaracao de variaveis*/
for(i = 0; i < j; i++){
for(j = 0; j < *n; j++)
printf("matriz triangular superior : [%d][%d]", i,j); /*Separação valores pertencentes a matriz superior*/
}
}/*Funcao que separa valores da matriz tringular inferior --- i>j*/
void triangularinferior(int matriz[100][100]){
int *n, i, j; /*Declaracao de variaveis*/
for(i = 0; i > j; i++){
for(j = 0; j < *n; j++)
printf("matriz triangular superior : [%d][%d]", i,j); /*Separação valores pertencentes a matriz inferior*/
}
}
int main(){
int matriz[100][100], n; /*Declaracao de variaveis*/
leitura(&n, matriz); /*Chama a funcao que le a matriz*/
triangularsuperior(matriz);
triangularinferior(matriz);
return 0;
}- 1
-
muito obrigado @devair1010 ... top mesmo ,
imagem ultrapassa as expectativas !- 1
-
Nossa @giu_d , ninguém faz esse tipo de coisa !
Muito obrigado mesmo.
Tenho todo cuidado para pedir ajuda, pois sei que não é justo pegar trabalho dos outros.
irei aprender em seu código e não só reproduzi-lo.
MUITO OBRIGADO!adicionado 11 minutos depoisnão só rodou, como teve várias correções;
principalmente de apresentação e leitura de dados.
-
muito obrigado pela atenção @giu_d
corrigi os detalhes, porém ainda não calcula; muito obrigado pela atenção novamente.
-
Faça um programa que determine e escreva:
(a) A maior idade dos habitantes;
(b) A porcentagem entre os indivíduos do sexo masculino/feminino cuja idade está entre 18 e 30 anos,
inclusive; que tenham olhos verdes e cabelos loiros.
Utilize o comando switch no programa.------------------------DÚVIDA--------------------------------
Pessoal, não estou conseguindo entender muito bem onde errei, meu programa não esta realizando o cálculo de porcentagem, alguém poderia me ajudar?
pensei em realizar toda coleta, e , baseado no sexo apenas testar dentro do case se satisfaz os valores que busco para o cálculo de porcentagem dos olhos azuis e cabelos loiros.
Não há bug na compilação, a maior idade aparece normalmente, apenas as porcentagens não aparecem.//-----------------------------------------------------------------------------------------------------------
// Programa : Cadastro de Pessoas
// Utilidade : Lê um numero n de habitantes e os classifica por sexo, idade, olhos, cabelos.// da uma porcentagem de homens/mulheres de olhos azuis e cabelos loiros.
// Autor : Ivander
// Codificada : Dev-C++
//
//-----------------------------------------------------------------------------------------------------------
#include<stdio.h>
#include<conio.h>
//*entradas
int numhab, sexo, corolhos, corcabelos, idade;//*process
int i;
int contadorH, contadorM;
//*saidas
int maioridade,porcentagemH,porcentagemM;
int main()
{
printf ("Quantos habitantes voce ira cadastrar?\n");
scanf ("%d", &numhab);for (i=0; i<=numhab; i++)
{
printf ( "qual a idade do habitante?\n");
scanf ("%d", &idade);
idade>maioridade?maioridade=idade:maioridade=maioridade;
printf ( "qual o sexo do habitante?\n 1-Homem \n 2-Mulher\n");
scanf ("\n%d", &sexo);
printf ( "qual a cor dos olhos do habitante?\n 1-Azul \n 2-Verde \n 3-Castanho \n");
scanf ("%d", &corolhos);
printf ( "qual a cor dos cabelos do habitante?\n 1-Loiro \n 2-Castanho \n 3-Preto \n");
scanf ("%d", &corcabelos);
switch ( sexo )
{
case 1 :
if(18<=idade<=30);
if(corolhos==2);
if(corcabelos==1);
contadorH++;
break;case 2 :
if(18<=idade<=30);
if(corolhos==2);
if(corcabelos==1);
contadorM++;
break;
default :
printf ("Valor invalido!\n");
}
}
porcentagemH=contadorH/numhab*100;
porcentagemM=contadorM/numhab*100;printf ("\n Maior idade fornecida:%d", maioridade);
printf ("\n porcentagem de Homens loiros com olhos verdes:%d", porcentagemH);
printf ("\n porcentagem de Mulheres loiras com olhos verdes:%d", porcentagemM);
}
-
Boa tarde.
Minha dúvida é de utilização da ferramenta DEV++Em um momento, escrevi um código um pouco maior.
Para visualizar melhor, retirei a barra de indicação de erros que esta localizada na parte inferior da tela!
alguém poderia indicar o caminho para inserir esta barra novamente?"Exemplo: quero procurar meu computador sem ser pela área de trabalho. Iniciar>>Meu Computador".
Pesquisei em alguns sites sem sucesso, sobre alguma questão parecida ou que satisfizesse.
Obs: desinstalando e instalado volta as configurações originais; consequentemente voltando à barra inferior.- 1
-
estou fazendo apenas o lançamento aleatório de uma moeda, onde cara é 1 e coroa é 0.
utilizei o "if" para definir, se for 1, contador++, se for 0, contador1++ .
porém,
o programa roda , efetua as jogadas aleatórias e também a contagem; mas a contagem da um valor inconcebível.
por exemplo:
Houve 100 jogadas...
55 cara70 coroa
Segue o código:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<math.h>
main (){
int contador=0;
int contador1=0;int i, cara, coroa;
srand(time(NULL));
printf("cara=1 \n coroa=0 \n", RAND_MAX);
for(i=1; i<=100; i++)
{
printf("Jogada %d: %d\n", i , rand()%2);
if (rand()%2==1)
{
contador++;
}
if (rand()%2==0)
{
contador1++;
}
}
cara=contador;
coroa=contador1;
printf("CARA:%d\n", cara);
printf("COROA:%d\n", coroa);
}
- 1
-
REALIZEI UMA CORREÇÃO, PORÉM SEGUE NÃO REALIZANDO A CONTAGEM DE QUANTOS "1" HOUVERAM NO RANDOM.
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<math.h>
main (){
int i, cara=0, coroa=0;
srand(time(NULL));
printf("cara=1 \n coroa=0 \n", RAND_MAX);
for(i=1; i<=100; i++)
{
printf("Jogada %d: %d\n", i , rand()&2);
while(i==1)
{
coroa+=i;
cara==100-coroa;
printf("%d%d\n", cara, coroa);
}
}
}- 1
-
O programa esta rodando, porém não esta executando uma função.
Quando escrevo
if (rand()==1)
{
coroa+=rand()%2;desejaria que a variável coroa, sempre que rand der 1, somasse +1 à variável coroa.
Como há apenas 100 jogadas, não estou me preocupando com equações matemáticas de porcentagem.
Apenas desejo que à coroa some as jogadas que der 1, quando eu subtrair à coroa de 100 (100-coroa), encontraria um valor para cara.
Sendo 100 jogadas, esses valores representariam a porcentagem que cada variável "caiu".
Porém sempre que rodo o código;
as jogadas são executadas aleatoriamente conforme previsto, porém ao fim, os valores de cara e coroa em "porcentagem" são sempre 0 e 1, sem somas.
Como posso resolver esta falha por favor?
Segue o código
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<math.h>main()
{int i,cara,coroa;
srand(time(NULL));printf("cara=0\ncoroa=1\n\n", RAND_MAX);
for(i=1; i<=100; i++)
{
printf("Jogada %d: %d\n", i,rand()%2);
if (rand()==1)
{
coroa+=rand()%2;
}
}
printf ("%d%d\n", cara, coroa);
}- 1
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
Cannot open file "inputSignal.dat"; it is already open. - error VHDL
em Programação - outros
Postado
Resolvi retirando "file_open(fid1,"inputSignal.dat",READ_MODE);"
Pois o endfile(fid1) como sintaxe do VHDL 1987 já abre um arquivo.