RECORRIDO SOBRE MATRICES
Algoritmo_imprime_por_fila(mat, m,n)
Variables:
i,j: entero
INICIO
PARA i
DESDE 1 HASTA m CON_VARIACION +1
PARA
j DESDE 1HASTA n CON_VARIACION +1
ESCRIBA(mat[i][j])
Fin (PARA)
Fin
(PARA)
FIN
Fin (imprime_por_fila)
Algoritmo_imprime_columna (mat, m,n)
Variables:
i,j: entero
INICIO
PARA i
DESDE 1 HASTA n CON_VARIACION +1
PARA
j DESDE 1HASTA m CON_VARIACION +1
ESCRIBA(mat[j][i])
Fin (PARA)
Fin
(PARA)
FIN
Fin (imprime_por_columna)
Ejemplo 1
Escriba una matriz que de los puntos
intercalados dentro de la matriz como se realiza en una tabla de ajedrez.
Void imprime_ajedrez(matrix,m,n)
Variables:
i: entero
INICIO
PARA i DESDE 1 HASTA m CON_VARIACION +1
SI i % 2 <> 0
Imprime_fila_intercalada(matrix, i, 1, n)
DE_LO_CONTRARIO
Imprime_fila_intercalada(matrix,i,2,n)
Fin(SI)
Fin(PARA)
FIN
Fin(imprime_ajedrez)
Void imprime_fila_intercalada(matriz, fila,
inicio, fin)
Variables:
j: entero
INICIO
PARA j DESDE inicio HASTA fin CON_VARIACION +2
ESCRIBA(matriz[fila][j]
Fin(PARA)
FIN
Fin(imprime_fila_intercalada)
EJERCICIO
se requiere un algoritmo que
simule el juego de buscaminas. El juego tendrá 2 etapas:
La primera es el plantado de minas,
inicialmente se debe preguntar al usuario el número de minas a colocar el cual
no debe exceder a 10, el software debe validar que no supere este número y que
tenga al menos una mina. Luego el primer
jugador llenará el campo de 5 x 5 con minas siendo estas representadas por el
número 1, ubicándolas usando las coordenadas X(fila) y Y(columna). la segunda fase consiste en un segundo
jugador tratando de no toparse con las minas. Esto es ensayando y contando
cuantas fases ha superado. Se debe ir
ingresando coordenadas y marcando con 2 en los intentos que no se encuentre una
mina.
Variables de entrada:
minas[5][5]: enteros
i,j: enteros
cx, cy: entero
cantminas: entero
oport: entero
encuentra: entero
variables de salida:
aciertos: entero
Algoritmo buscaminas
variables:
minas[5][5]: enteros
i,j,cx,
cy,cantminas, oport, encuentra: entero
INICIO
PARA i DESDE 1 HASTA 5
CON_VARIACION +1
PARA j DESDE 1
HASTA 5 CON_VARIACION +1
minas[i][j]=0
Fin(PARA)
Fin(PARA)
ESCRIBA("ingrese el
número de minas a colocar")
LEA (cantminas)
MIENTRAS cantminas<1 v
cantminas>10
ESCRIBA ("la cantidad
de minas debe ser mayor a 1 y menor o igual a 10")
LEA (cantminas)
FIN (MIENTRAS)
oport=25 - cantminas
PARA
i DESDE 1 HASTA cantminas CON_VARIACION+1
ESCRIBA("ingrese las
coordenadas X y Y")
LEA (x,y)
MIENTRAS minas [x][y]< >0
ESCRIBA ("posición ocupada, ingrese la coordenada de nuevo")
LEA (x,y)
FIN
(MIENTRAS)
minas [x][y]=1
FIN (PARA)
ESCRIBA ("modo
jugador")
aciertos=0
encuentra=0
PARA i DESDE 1 HASTA
oport CON_VARIACION +1
SI encuentra==0
ESCRIBA("ingrese las coordenadas de su
intento")
LEA [x][y]
MIENTRAS minas [x][y]==2
ESCRIBA("posición ocupada, ingrese la
coordenada de nuevo")
LEA
(x,y)
FIN (MIENTRAS)
SI minas[x][y]=1
encuentra=1
DE_LO_CONTRARIO
minas[x][y] =2
aciertos=aciertos +1
FIN (SI)
FIN (SI)
FIN (PARA)
ESCRIBA("el
usuario alcanzó un número de aciertos igual a:
", aciertos)
FIN
Fin(buscaminas)
BUENAS PRACTICAS DE PROGRAMACIÓN
BUENAS PRACTICAS DE PROGRAMACIÓN
- Escribe tus programas lo más simple y directo posible. Keep it simple.
- Ajusta las opciones del programa para que arroje la mayor cantidad de errores y advertencias posibles al compilar, tu aplicación tendrá menores chances de obtener errores aleatorios.
- Explicar el propósito, funcionamiento completo y el resultado esperado.
- Dentro de las funciones definidas, establece un espaciado o indentación, que resalte la estructura funcional de la aplicación y facilite la lectura al programador al que le corresponda analizar el código
- Se recomienda declarar variables en líneas separadas, ya que se facilita la descripción de cada variable mediante comentarios.
- Poner un espacio después de cada coma(,) facilita la legibilidad del código.
- No uses variables cuyo nombre no posea algún significado descriptivo, una variable con nombres significativos permite al lector entender el contexto del código y permite disminuir la cantidad de documentación asociada.
- Se recomienda usar: numero_de_filas=input(‘Entre el número de filas: ’) En lugar de: m=input(‘Entre el número de filas: ’);
- Comenta cuando sea justo y necesario.
- Se recomienda como buena costumbre, añadir al inicio de cada función, un bloque de comentarios que expliquen el comportamiento general de la función, así se facilita la búsqueda de errores.
- Se recomienda usar: % aplica la formula de la sumatoria de los enteros hasta n Suma=(n*(n+1))/2 En lugar de: suma=(n*(n+1))/2
- Es altamente recomendada la definición de variables locales al inicio de la implementación de cada función, como un bloque de código bien separado del bloque que contenga las instrucciones ejecutables, ésta separación puede consistir en una línea en blanco, o bien un comentario que denote la utilidad de cada bloque.
- En caso de usar operadores binarios (por ejemplo +, -, &&, ||, entre otros) se recomienda poner espacio a los extremos de cada operador, de modo que se resalte su presencia y se facilite la lectura del código.
- Se recomienda en algunas operaciones complejas, hacer uso de paréntesis redundantes o innecesarios que sirven para poder agrupar expresiones dentro de tales operaciones.
- Evita la incorporación de más de una instrucción por línea. Esto reduce notoriamente la legibilidad del código, ya que el programador habitualmente está acostumbrado a leer una instrucción por línea.
- Si el código soporta la separación de sentencias en varias líneas, procura realizar una separación coherente, en el que cada punto de ruptura tenga sentido.
- Si una instrucción abarca más de una línea, recuerda realizar la indentación necesaria.
- Cuando escribas operaciones que hagan uso de muchos operadores, procura revisar que las operaciones se estén realizando en el orden que tu esperas que se realicen.
- Si el lenguaje soporta llaves({}) para la separación de bloques, es altamente recomendado usarlas, ello facilita el proceso de distinción de bloques de código en forma rápida, permitiendo identificar y reparar errores en el código con menos dificultad.
- Si deseas evitar omitir una llave, abre y cierra el bloque de código que deseas crear, y luego introduce código dentro del bloque, con eso te aseguras la victoria.
- Nunca olvides inicializar los contadores y sumadores.
Referencias
‘Arbeláez Velázquez Andrés’-recomendaciones para la
programación en Matlab
http://www2.udearroba.co/mod/resource/view.php?id=79212
No hay comentarios:
Publicar un comentario