-
Posts
6 -
Cadastrado em
-
Última visita
Reputação
4-
Java Compreender a função de uma variável e a lógica de um programa.
Gabriel de A.Campos respondeu ao tópico de Gabriel de A.Campos em Java/Android SDK
@João Paulo Duarte cara.... totalmente sem palavras. Você simplesmente me explicou absolutamente TUDO que eu estava em dúvida, de maneira fantástica. Muito, muito obrigado mesmo, de verdade. -
Java Compreender a função de uma variável e a lógica de um programa.
Gabriel de A.Campos respondeu ao tópico de Gabriel de A.Campos em Java/Android SDK
@Alex Temnyk Fala irmão, beleza. Ele foi fornecido, é um exercício. A dúvida é sobre os métodos empregados. OBS: Eu não tenho o algoritmo em portugol no pc, mas se você(s) acharem melhor, posso tirar uma foto e anexar. -
Java Compreender a função de uma variável e a lógica de um programa.
Gabriel de A.Campos postou um tópico em Java/Android SDK
Bom dia! Gostaria de ajuda para entender a logica desse programa, e entender também a função da variável '' j ''. Eu não entendi como o programa verifica se o numero digitado pelo usuário é repetido ou não, e como ele faz o controle disso com o '' while '', incrementando o '' j '' caso a condição seja verdadeira, e também com a condição " if (j >= cont_u) ". Basicamente, eu estou perdido com a lógica aplicada no programa e gostaria de uma explicação detalhada, já que não encontrei nenhum conteúdo que me ajudasse. Estarei anexando algumas imagens para ajudar vocês a entender do que se trata o código. Desde já, agradeço muito. Obrigado! import java.util.Scanner; public class Ex5 { public static void main(String args[]) { Scanner entrada = new Scanner(System.in); int X[] = new int[10]; int Y[] = new int[10]; int U[] = new int[20]; int D[] = new int[10]; int S[] = new int[10]; int P[] = new int[10]; int IT[] = new int[10]; int i, j, k, cont_u, cont_d, cont_i; for (i=0;i<10;i++) { System.out.print("Digite o " + (i+1) + "o elemento do vetor X: "); X[i] = entrada.nextInt(); System.out.print("Digite o " + (i+1) + "o elemento do vetor Y: "); Y[i] = entrada.nextInt(); } cont_u = 0; cont_d = 0; cont_i = 0; for (i=0;i<10;i++) { j = 0; while (j < cont_u && X[i] != U[j]) { j++; } if (j >= cont_u) { U[cont_u] = X[i]; cont_u++; } } for (i=0;i<10;i++) { j = 0; while (j < cont_u && Y[i] != U[j]) { j++; } if (j >= cont_u) { U[cont_u] = Y[i]; cont_u++; } } System.out.println("Vetor Uniao "); for (i=0;i<cont_u;i++) { System.out.println(U[i]); } for (i=0;i<10;i++) { j = 0; while (j < 10 && X[i] != Y[j]) { j++; } if (j >= 10) { k = 0; while (k <= cont_d && X[i] != D[k]) { k++; } if (k >= cont_d) { D[cont_d] = X[i]; cont_d++; } } } System.out.println("Vetor Diferença "); for (i=0;i<cont_d;i++) { System.out.println(D[i]); } for (i=0;i<10;i++) { S[i] = X[i] + Y[i]; P[i] = X[i] * Y[i]; } System.out.println("Vetor Soma "); for (i=0;i<10;i++) { System.out.println(S[i]); } System.out.println("Vetor Produto "); for (i=0;i<10;i++) { System.out.println(P[i]); } for (i=0;i<10;i++) { j = 0; while (j < 10 && X[i] != Y[j]) { j++; } if (j < 10) { k = 0; while (k < cont_i && IT[k] != X[i]) { k++; } if (k >= cont_i) { IT[cont_i] = X[i]; cont_i++; } } } System.out.println("Vetor Interseção "); for (i=0;i<cont_i;i++) { System.out.println(IT[i]); } } } -
Pascal Entender funções de variáveis em um programa
Gabriel de A.Campos respondeu ao tópico de Gabriel de A.Campos em Programação - outros
Cara, você tirou simplesmente TODAS as minhas dúvidas, consegui entender a estrutura e o código totalmente. MUITO obrigado mesmo! Sim, entendi perfeitamente. É muito bom saber que tem um lugar no qual eu possa realmente tirar minhas dúvidas sobre esse assunto. Novamente, obrigado! -
Pascal Entender funções de variáveis em um programa
Gabriel de A.Campos respondeu ao tópico de Gabriel de A.Campos em Programação - outros
Cara, primeiramente eu queria agradecer, você me ajudou muito, tirou praticamente todas minhas dúvidas. Mas agoras surgiram novas, que não consegui entender muito bem ainda: Por que aqui eu não posso colocar o '' j '' indo até '' n '' ? seria por que o '' n '' já está sendo usado anteriormente? Agora, na estrutura REPITA Esse '' UNTIL j > i '' logo na primeira vez ira dar um valor verdadeiro ( 2 > 1) , já que o '' i '' foi declarado = 1 anteriormente, isso é feito para que ele não se repita novamente e acabe ocasionando em um resultado incorreto, não é? Agora, na estrutura toda: Por exemplo, quando a estrutura terminar a primeira repetição irá dar '' UNTIL 2 > 5'' , e com isso irá ser feito novamente. Nessa segunda vez o laço não voltaria até a parte: E com isso redefinindo os valores dessas variáveis? Coloquei '' j:=1 e fat:= 1'' fora do laço e o resultado continuou correto, porém quando eu coloco 1 dentro do laço e outro fora, o resultado fica incorreto. Gostaria também de saber o por que disso. Muito obrigado, e desculpa por tantas perguntas. Estou tendo dificuldado sobre Estrutura de repetição, e como estou estudando sozinho, não tem outra maneira de eu tirar minha dúvidas. OBS: Sobre o outro programa, usa fatorial sim, eu falei besteira Obrigado -
Pascal Entender funções de variáveis em um programa
Gabriel de A.Campos postou um tópico em Programação - outros
Bom dia! Esse é meu primeiro post aqui, por que tentei de todas as maneiras entender como um programa foi pensando e não consegui. Então pensei em vir até aqui para tirar essa dúvida de uma vez por todas. Vou mostrar pra vocês o algoritmo do programa que eu tenho que fazer, ele feito na estrutura de repetição PARA e na REPEAT Minhas dúvidas são: Nesse programa, qual é a função da variável '' j '' e da variável '' fat '' ? Achei que '' fat '' era fatorial, mas logo depois tem um programa que não pede nada de fatorial e ela é utilizada de novo. E eu não entendi como o programa foi feito com REPEAT , por alguns motivos: A váriavel '' j '' e '' fat '' , novamente. e por que há a repetição do termo REPEAT e UNTIL, seria como um begin e end? Muito obrigado, rapaziada ! Programa na Estrutura PARA (Pascal) : PROGRAM EX2; USES CRT; VAR n, i, j: INTEGER; e, fat: real; BEGIN CLRSCR; WRITELN('Digite o valor de N'); READLN(n); e := 1; FOR i := 1 TO n DO BEGIN fat := 1; FOR j := 1 TO i DO BEGIN fat := fat * j; END; e := e + 1/fat; END; WRITELN('Valor de E = ',e:5:2); READLN; END. Programa na Estrutura REPITA: PROGRAM EX2; USES CRT; VAR n, i, j: INTEGER; e, fat:REAL; BEGIN CLRSCR; WRITELN('Digite o valor de N'); READLN(n); e := 1; i := 1; REPEAT j := 1; fat := 1; REPEAT fat := fat * j; j := j + 1; UNTIL j > i; i := i + 1; e := e + 1/fat; UNTIL i > n; WRITELN('Valor de E = ',e:5:2); READLN; END.
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