Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////
- // ALGORITMO DEL PROGRAMA //
- ////////////////////////////
- DEFINE: <NOMBRE_BMP> "trabaja.bmp" :fin-DEFINE
- PROGRAMA:
- - Declarar una variable <inicio> de tipo numérico
- - Declarar una variable <ancho> de tipo numérico
- - Declarar una variable <alto> de tipo numérico
- - Abrir secuencialmente con formato binario en la variable <fichero> el archivo <NOMBRE_BMP>
- - Leer un entero (4 bytes little-endian) a partir del byte "10" de <fichero> en la variable <inicio>
- - Leer un entero (4 bytes little-endian) a partir del byte "18" de <fichero> en la variable <ancho>
- - Leer un entero (4 bytes little-endian) a partir del byte "22" de <fichero> en la variable <alto>
- - Declarar una variable <padding> de tipo de dato numérico
- - Asignar a <padding> el valor ("4" menos (el resto de la división entera de (<ancho> por "3") entre "4") )
- SI( el valor de <padding> es igual "4" ):
- - Asignar a <padding> el valor "0"
- -fin-SI
- - Declarar una variable <desplazamientoFila> de tipo numérico
- - Asignar a <desplazamientoFila> el valor ( (<anchuraDeLaImagen> por "3") más <padding>)
- /////////////////////////////////////////////
- // Calculadas las dimensiones de la imagen //
- // SE PASA A RESOLVER LOS SUBPROBLEMAS: //
- /////////////////////////////////////////////
- - Declarar una variable <color> de tipo carácter
- - Declarar una variable <linea> de tipo numérico
- - Declarar una variable <columna> de tipo numérico
- - Declarar una variable <posicion> de tipo numérico
- - Declarar una variable <tmp> de tipo numérico
- - Declarar una variable <suma> de tipo numérico
- REPETIR mientras( queden líneas ):
- - Leer un carácter y asignarlo a <color>
- - Leer un número y asignarlo a <linea>
- - Incrementar <linea> en una unidad // La línea "0", que representa la primera línea, pasará a ser la línea "1"
- - Asignar a <posicion> el valor ( ( (<alto> menos <linea>) por <desplazamientoFila> ) más <inicio> )
- - Asignar a <suma> el valor "1" // Inicializar a "1" porque el enunciado dice "for every pixel in the line + 1"
- PARA( <color> ):
- ES "B":
- :fin-PARA
- :fin-ES
- ES "G":
- - Incrementa el valor de <posicion> en una unidad
- :fin-PARA
- :fin-ES
- ES "R":
- - Incrementa el valor de <posicion> en dos unidades
- :fin-PARA
- :fin-ES
- :fin-PARA
- - Asignar a <columna> el valor "0"
- REPETIR mientras( <columna> sea menor que <ancho> ):
- - Leer un entero (1 byte) a partir del byte <posicion> de <fichero> en la variable <tmp> // entre 0 y 255
- - Incrementar el valor de <suma> el valor de <tmp>
- - Incrementar el valor de <posicion> en dos unidades
- - Incrementar el valor de <columna> en una unidad
- :fin-REPETIR
- - Mostrar el valor de <suma>
- :fin-REPETIR
- :fin-PROGRAMA
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement