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.
Saída esperada:
0 0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
Respostas
respondido por:
24
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:
respondido por:
2
1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,68762537648762476
Perguntas similares
7 anos atrás
7 anos atrás
7 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás