Yana Posted July 23, 2012 at 03:03 PM Report Share #469762 Posted July 23, 2012 at 03:03 PM (edited) Boa tarde, Estava a continuar a ler o tutorial do thoga31, e há uma parte de que não percebi: program crescente; var lista : array [1..10] of integer; // lista de 10 inteiros i, j : integer; // dois contadores para os ciclos FOR aux : integer; // auxiliar para troca de valores em lista begin writeln('INTRODUZA OS 10 VALORES DA LISTA:'); for i:=1 to 10 do begin // lê a lista write('Valor nº', i, ': '); readln(lista[i]); end; for i:=1 to 10 do begin // coloca a lista por ordem crescente for j:=i to 10 do begin if (lista[j]<lista[i]) then begin aux:=lista[j]; lista[j]:=lista[i]; lista[i]:=aux; end; end; end; write('Lista por ordem crescente: '); for i:=1 to 10 do begin // mostra a lista, agora ordenada write(lista[i],'; '); end; writeln; write('ENTER para sair. . .'); re A duvida é a seguinte: for i:=1 to 10 do begin // coloca a lista por ordem crescente for j:=i to 10 do begin // Qual é o objectivo deste ciclo? if (lista[j]<lista[i]) then begin aux:=lista[j]; lista[j]:=lista[i]; lista[i]:=aux; end; end; end; Edited July 23, 2012 at 09:32 PM by thoga31 GeSHi Link to comment Share on other sites More sharing options...
passarito Posted July 23, 2012 at 03:40 PM Report Share #469770 Posted July 23, 2012 at 03:40 PM Olá, Primeiro, convém indentares o teu código para se perceber melhor a lógica e sequência do programa. Quanto à tua dúvida, o objectivo é fazer a comparação de 2 locais do array. Para isso, neste caso, são necessários 2 ciclos. digo neste caso, porque á várias formas de ordenação. Esta é uma delas. Repara, o primeiro ciclo nem tem a necessidade de ir até ao valor máximo, basta ir até ao valor máximo-1. 1 Report Link to comment Share on other sites More sharing options...
Yana Posted July 23, 2012 at 03:49 PM Author Report Share #469772 Posted July 23, 2012 at 03:49 PM Olá, Primeiro, convém indentares o teu código para se perceber melhor a lógica e sequência do programa. Quanto à tua dúvida, o objectivo é fazer a comparação de 2 locais do array. Para isso, neste caso, são necessários 2 ciclos. digo neste caso, porque á várias formas de ordenação. Esta é uma delas. Repara, o primeiro ciclo nem tem a necessidade de ir até ao valor máximo, basta ir até ao valor máximo-1. Ok, obrigado. Cada ciclo vai corresponder a um número do array para fazer a comparação correto? Link to comment Share on other sites More sharing options...
passarito Posted July 23, 2012 at 03:57 PM Report Share #469775 Posted July 23, 2012 at 03:57 PM Cada ciclo vai corresponder a um número do array para fazer a comparação correto? Exacto. Vai comparar a posição i no array com a posição j no mesmo array. Se conseguiste compreender, também compreendeste a minha observação sobre o ultimo valor no primeiro ciclo. Não tem lógica comparar a 10ª posição (i) com a 10ª posição (j) 1 Report Link to comment Share on other sites More sharing options...
Yana Posted July 23, 2012 at 04:59 PM Author Report Share #469782 Posted July 23, 2012 at 04:59 PM Exacto. Vai comparar a posição i no array com a posição j no mesmo array. Se conseguiste compreender, também compreendeste a minha observação sobre o ultimo valor no primeiro ciclo. Não tem lógica comparar a 10ª posição (i) com a 10ª posição (j) Sim, muito obrigado 👍 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now