Escreva um algoritmo que imprima na tela uma matriz 10 x 10 formada por colunas contendo elementos de 0 a 9 e uma matriz também 10 x 10 contendo linhas de elementos de 0 a 9.VEJA O ARQUIVO
Anexos:
Soluções para a tarefa
Respondido por
1
Antes de tudo, precisamos ter em mente que:
- a estrutura de repetição mais EXTERNA refere-se a as LINHAS da matriz
- a estrutura de repetição mais INTERNA refere-se a as COLUNAS da matriz
Nesse algoritmo usarei a estrutura "para" por ser mais fácil de escrever
Bom, pra forçar a primeira saída temos que pensar no seguinte:
"quando mudar de linha o valor deverá ser incrementado".
Como fazer?
Declarando a matriz:
matriz[9][9] inteiro
Declarando a linha e coluna:
linha, coluna inteiro
Declarando uma variável contador:
i inteiro
Vamos construir a estrutura necessária para a matriz:
para linha de 0 ate 9 faca
para coluna de 0 ate 9 faca
escreva(matriz[linha,coluna])
fimpara
fimpara
Por enquanto a matriz está zerada!
Agora temos que incrementar o valor toda vez que ela mudar de linha. Uma forma melhor de pensar é: toda vez que ela sair da estrutura da coluna, ou seja, sair do "para" mais interno
Vamos dizer que na posição "linha,coluna" nossa matriz irá receber o valor de i
Agora temos que incrementar o valor de i toda vez que ele sair do "para" mais interno. Ficaria assim:
para linha de 0 ate 9 faca
para coluna de 0 ate 9 faca
matriz[linha][coluna] ← i
escreva(matriz[linha,coluna])
fimpara
i ← i + 1
fimpara
É assim que a mágica acontece!
//////////////////////////////////////////////////////////////////////////////////////////////
Pra forçar a segunda é ainda mais fácil. Por quê? Analise a primeira matriz com a segunda. É a mesma coisa. Mas agora o valor deverá ser incrementado na coluna, ou seja, no "para" mais interno.
Ficaria assim:
para linha de 0 ate 9 faca
para coluna de 0 ate 9 faca
matriz[linha][coluna] ← i
escreva(matriz[linha,coluna])
i ← i + 1
fimpara
fimpara
Mas ainda não terminamos, porque precisos que o valor de i seja "resetado" toda vez que ele mudar de linha, ou seja, sair do "para" mais interno.
Agora sim terminamos:
para linha de 0 ate 9 faca
para coluna de 0 ate 9 faca
matriz[linha][coluna] ← i
escreva(matriz[linha,coluna])
i ← i + 1
fimpara
i ← 0
fimpara
Segue abaixo os algoritmos feitos no VisuAlg
- a estrutura de repetição mais EXTERNA refere-se a as LINHAS da matriz
- a estrutura de repetição mais INTERNA refere-se a as COLUNAS da matriz
Nesse algoritmo usarei a estrutura "para" por ser mais fácil de escrever
Bom, pra forçar a primeira saída temos que pensar no seguinte:
"quando mudar de linha o valor deverá ser incrementado".
Como fazer?
Declarando a matriz:
matriz[9][9] inteiro
Declarando a linha e coluna:
linha, coluna inteiro
Declarando uma variável contador:
i inteiro
Vamos construir a estrutura necessária para a matriz:
para linha de 0 ate 9 faca
para coluna de 0 ate 9 faca
escreva(matriz[linha,coluna])
fimpara
fimpara
Por enquanto a matriz está zerada!
Agora temos que incrementar o valor toda vez que ela mudar de linha. Uma forma melhor de pensar é: toda vez que ela sair da estrutura da coluna, ou seja, sair do "para" mais interno
Vamos dizer que na posição "linha,coluna" nossa matriz irá receber o valor de i
Agora temos que incrementar o valor de i toda vez que ele sair do "para" mais interno. Ficaria assim:
para linha de 0 ate 9 faca
para coluna de 0 ate 9 faca
matriz[linha][coluna] ← i
escreva(matriz[linha,coluna])
fimpara
i ← i + 1
fimpara
É assim que a mágica acontece!
//////////////////////////////////////////////////////////////////////////////////////////////
Pra forçar a segunda é ainda mais fácil. Por quê? Analise a primeira matriz com a segunda. É a mesma coisa. Mas agora o valor deverá ser incrementado na coluna, ou seja, no "para" mais interno.
Ficaria assim:
para linha de 0 ate 9 faca
para coluna de 0 ate 9 faca
matriz[linha][coluna] ← i
escreva(matriz[linha,coluna])
i ← i + 1
fimpara
fimpara
Mas ainda não terminamos, porque precisos que o valor de i seja "resetado" toda vez que ele mudar de linha, ou seja, sair do "para" mais interno.
Agora sim terminamos:
para linha de 0 ate 9 faca
para coluna de 0 ate 9 faca
matriz[linha][coluna] ← i
escreva(matriz[linha,coluna])
i ← i + 1
fimpara
i ← 0
fimpara
Segue abaixo os algoritmos feitos no VisuAlg
Anexos:
costinhabruno8:
Existe alguma maneira de transformar uma estrutura ENQUANTO em uma estrutura REPITA? E uma estrutura PARA em uma estrutura ENQUANTO? E uma estrutura PARA em uma REPITA? Demonstre como é possível em cada um dos casos que a resposta for positiva.
Perguntas interessantes
Matemática,
9 meses atrás
Matemática,
9 meses atrás
Geografia,
9 meses atrás
Matemática,
1 ano atrás
Pedagogia,
1 ano atrás
Biologia,
1 ano atrás