Está en la página 1de 16

EVIDENCIA 3

ESTUDIANTE: EDUARDO TORRES GUEL

MATRICULA: 2002669
METODOLOGIA DE LA PROGRAMACIÓN
Construya algoritmo, diagrama de flujo y pseudocódigo para resolver cada uno de los
siguientes problemas
Problema:
1. En la Unidad de Aprendizaje Algebra Booleana se incluye el tema de
conversiones entre diferentes sistemas numéricos y el maestro desea que se le
diseñe una solución que permita comprobar los resultados de las conversiones
planteadas a sus estudiantes. Desea que la solución muestre el siguiente menú:

CONVERSIONES:
a) Decimal a Binario
b) Decimal a Octal
c) Decimal a Hexadecimal
d) Terminar

Solicitar la conversión deseada y luego solicitar el número a convertir, realizar la


conversión y mostrar el número solicitado y su valor en el sistema numérico
seleccionado; regresar a mostrar el menú hasta que se seleccione 4. El número para
convertir será entero en el rango [0, 32765]…

Algoritmo
1.Inicio
2. Mientras Verdadero Hacer
2.1. Imprimir "CONVERSIONES:"
2.2. Imprimir "a) Decimal a Binario"
2.3. Imprimir "b) Decimal a Octal"
2.4. Imprimir "c) Decimal a Hexadecimal"
2.5. Imprimir "d) Terminar"
2.6. Imprimir "Ingrese la opción deseada:"
2.7. Leer opcion
2.8. Si opcion = "d" Entonces
2.8.1. Salir del bucle Mientras
2.8.1.2 Fin Si
2.9. Imprimir "Ingrese el número a convertir (rango: [0, 32765]):"
2.10. Leer numero
2.11. Si opcion = "a" Entonces
2.11.1. binario <- ConvertirDecimalABinario(numero)
2.11.2. Imprimir "El número ", numero, " en binario es: ", binario
2.11.2.1Fin Si
2.12. Si opcion = "b" Entonces
2.12.1. octal <- ConvertirDecimalAOctal(numero)
2.12.2. Imprimir "El número ", numero, " en octal es: ", octal
Fin Si

2.13. Si opcion = "c" Entonces


2.13.1. hexadecimal <- ConvertirDecimalAHexadecimal(numero)
2.13.2. Imprimir "El número ", numero, " en hexadecimal es: ", hexadecimal
3. Fin Si
4. Fin
Pseudocódigo:
Algoritmo ConversionesNumericas
Definir opcion, numero, numeroConvertido como Entero

Repetir
Escribir "CONVERSIONES:"
Escribir "a) Decimal a Binario"
Escribir "b) Decimal a Octal"
Escribir "c) Decimal a Hexadecimal"
Escribir "d) Terminar"
Escribir ""
Escribir "Ingrese la conversión deseada:"
Leer opcion

Segun opcion Hacer


caso "a"
Escribir "Ingrese el número decimal a convertir (entre 0 y 32765):"
Leer numero
numeroConvertido = ConvertirDecimalABinario(numero)
Escribir "El número ", numero, " en binario es: ", numeroConvertido
caso "b"
Escribir "Ingrese el número decimal a convertir (entre 0 y 32765):"
Leer numero
numeroConvertido = ConvertirDecimalAOctal(numero)
Escribir "El número ", numero, " en octal es: ", numeroConvertido
caso "c"
Escribir "Ingrese el número decimal a convertir (entre 0 y 32765):"
Leer numero
numeroConvertido = ConvertirDecimalAHexadecimal(numero)
Escribir "El número ", numero, " en hexadecimal es: ", numeroConvertido
FinSegun
Escribir ""
Hasta que opcion = "d"
FinAlgoritmo

Funcion ConvertirDecimalABinario(numeroDecimal)
Definir cociente, resto como Entero
Definir numeroBinario como Cadena

cociente = numeroDecimal
Mientras cociente > 0 Hacer
resto = cociente % 2
cociente = cociente / 2
numeroBinario = Concatenar(ConvertirCadena(resto), numeroBinario)
FinMientras

Devolver numeroBinario
FinFuncion

Funcion ConvertirDecimalAOctal(numeroDecimal)
Definir cociente, resto como Entero
Definir numeroOctal como Cadena

cociente = numeroDecimal

Mientras cociente > 0 Hacer


resto = cociente % 8
cociente = cociente / 8
numeroOctal = Concatenar(ConvertirCadena(resto), numeroOctal)
FinMientras

Devolver numeroOctal
FinFuncion

Funcion ConvertirDecimalAHexadecimal(numeroDecimal)
Definir cociente, resto como Entero
Definir numeroHexadecimal como Cadena
Definir digitosHexa como Cadena

cociente = numeroDecimal

Mientras cociente > 0 Hacer


resto = cociente % 16
cociente = cociente / 16

Segun resto Hacer


caso 10
digitosHexa = "A"
caso 11
digitosHexa = "B"
caso 12
digitosHexa = "C"
caso 13
digitosHexa = "D"
caso 14
digitosHexa = "E"
caso 15
digitosHexa = "F"
De Otro Modo
digitosHexa = ConvertirCadena(resto)
FinSegun

numeroHexadecimal = Concatenar(digitosHexa, numeroHexadecimal)


FinMientras

Devolver numeroHexadecimal
FinFuncion

Diagrama de flujo:

Problema:
2. Realizar una solución que permita mostrar el siguiente menú:

OPERACIONES DE MATRICES
a) Suma
b) Restar
c) Multiplicación
d) Terminar

En la solución deberá mostrar el menú, solicitar la opción, si se elige a, b ó c deberá solicitar


la dimensión de cada matriz, validar que la operación se pueda realizar con esas
dimensiones; si no se puede realizar deberá solicitarlas de nuevo, hasta que se
proporciones dimensiones con las que pueda realizar la operación seleccionada; cuando
las dimensiones son válidas, solicitar los valores de las matrices, hacer la operación y
mostrar las tres matrices (las que intervienen en la operación y la matriz resultado), volver
a mostrar el menú hasta que se seleccione d.
Algoritmo:
1. Inicio
2. Mientras Verdadero Hacer
2.1. Imprimir "OPERACIONES DE MATRICES:"
2.2. Imprimir "a) Suma"
2.3. Imprimir "b) Restar"
2.4. Imprimir "c) Multiplicación"
2.5. Imprimir "d) Terminar"
2.6. Imprimir "Ingrese la opción deseada:"
2.7. Leer opcion

2.8. Si opcion = "d" Entonces


2.8.1. Salir del bucle Mientras
Fin Si

2.9. Si opcion = "a" o opcion = "b" o opcion = "c" Entonces


2.9.1. dimensionValida <- Falso
2.9.2. Mientras no dimensionValida Hacer
2.9.2.1. Imprimir "Ingrese la dimensión de la matriz 1 (filas, columnas):"
2.9.2.2. Leer filas1, columnas1
2.9.2.3. Imprimir "Ingrese la dimensión de la matriz 2 (filas, columnas):"
2.9.2.4. Leer filas2, columnas2
2.9.2.5. Si (opcion = "a" o opcion = "b") y (filas1 = filas2) y (columnas1 = columnas2)
Entonces
2.9.2.5.1. dimensionValida <- Verdadero
Sino Si opcion = "c" y columnas1 = filas2 Entonces
2.9.2.5.2. dimensionValida <- Verdadero
Sino
2.9.2.5.3. Imprimir "Las dimensiones ingresadas no son válidas. Por favor, intente
nuevamente."
Fin Si
Fin Mientras

Pseudocódigo:
Algoritmo OperacionesDeMatrices
Dimension matrizA, matrizB, matrizResultado: entero
opcion: caracter

Repetir
Mostrar "OPERACIONES DE MATRICES"
Mostrar "a) Suma"
Mostrar "b) Restar"
Mostrar "c) Multiplicación"
Mostrar "d) Terminar"
Mostrar ""
Mostrar "Ingrese una opción: "
Leer opcion

Si opcion = "a" Entonces


Mostrar "Ingrese la dimensión de la matriz A:"
Leer matrizA
Mostrar "Ingrese la dimensión de la matriz B:"
Leer matrizB

Mientras No PuedoSumar(matrizA, matrizB)


Mostrar "No se pueden sumar las matrices con las dimensiones proporcionadas."
Mostrar "Ingrese la dimensión de la matriz A:"
Leer matrizA
Mostrar "Ingrese la dimensión de la matriz B:"
Leer matrizB

Mostrar "Ingrese los valores de la matriz A:"


LeerMatriz(valoresMatrizA, matrizA)

Mostrar "Ingrese los valores de la matriz B:"


LeerMatriz(valoresMatrizB, matrizB)

matrizResultado <- SumarMatrices(valoresMatrizA, valoresMatrizB, matrizA,


matrizB)

Mostrar "Matriz A:"


MostrarMatriz(valoresMatrizA, matrizA)

Mostrar "Matriz B:"


MostrarMatriz(valoresMatrizB, matrizB)

Mostrar "Resultado de la suma:"


MostrarMatriz(matrizResultado, matrizA)

Si opcion = "b" Entonces


Mostrar "Ingrese la dimensión de la matriz A:"
Leer matrizA
Mostrar "Ingrese la dimensión de la matriz B:"
Leer matrizB

Mientras No PuedoRestar(matrizA, matrizB)


Mostrar "No se pueden restar las matrices con las dimensiones proporcionadas."
Mostrar "Ingrese la dimensión de la matriz A:"
Leer matrizA
Mostrar "Ingrese la dimensión de la matriz B:"
Leer matrizB

Mostrar "Ingrese los valores de la matriz A:"


LeerMatriz(valoresMatrizA, matrizA)

Mostrar "Ingrese los valores de la matriz B:"


LeerMatriz(valoresMatrizB, matrizB)

matrizResultado <- RestarMatrices(valoresMatrizA, valoresMatrizB, matrizA,


matrizB)

Mostrar "Matriz A:"


MostrarMatriz(valoresMatrizA, matrizA)

Mostrar "Matriz B:"


MostrarMatriz(valoresMatrizB, matrizB)

Mostrar "Resultado de la resta:"


MostrarMatriz(matrizResultado, matrizA)

Si opcion = "c" Entonces


Mostrar "Ingrese la dimensión de la matriz A:"
Leer matrizA
Mostrar "Ingrese la dimensión de la matriz B:"
Leer matrizB

Mientras No PuedoMultiplicar(matrizA, matrizB)


Mostrar "No se pueden multiplicar las matrices con las dimensiones
proporcionadas."
Mostrar "Ingrese la dimensión de la matriz A:"
Leer matrizA
Mostrar "Ingrese la dimensión de la matriz B:"
Leer matrizB

Mostrar "Ingrese los valores de la matriz A:"


LeerMatriz(valoresMatrizA, matrizA)

Mostrar "Ingrese los valores de la matriz B:"


LeerMatriz(valoresMatrizB, matrizB)

matrizResultado <- MultiplicarMatrices(valoresMatrizA, valoresMatrizB, matrizA,


matrizB)
Mostrar "Matriz A:"
MostrarMatriz(valoresMatrizA, matrizA)

Mostrar "Matriz B:"


MostrarMatriz(valoresMatrizB, matrizB)

Mostrar "Resultado de la multiplicación:"


MostrarMatriz(matrizResultado, matrizA)

Mientras opcion != "d"


FinAlgoritmo

Función No PuedoSumar(matrizA, matrizB)


Si matrizA.filas = matrizB.filas Y matrizA.columnas = matrizB.columnas Entonces
Devolver Falso
Sino
Devolver Verdadero
FinSi
FinFunción

Función No PuedoRestar(matrizA, matrizB)


Si matrizA.filas = matrizB.filas Y matrizA.columnas = matrizB.columnas Entonces
Devolver Falso
Sino
Devolver Verdadero
FinSi
FinFunción

Función No PuedoMultiplicar(matrizA, matrizB)


Si matrizA.columnas = matrizB.filas Entonces
Devolver Falso
Sino
Devolver Verdadero
FinSi
FinFunción

Procedimiento LeerMatriz(matriz, dimension)


Para i desde 1 hasta dimension.filas hacer
Para j desde 1 hasta dimension.columnas hacer
Mostrar "Ingrese el valor para la posición [", i, ",", j, "]:"
Leer matriz[i, j]
FinPara
FinPara
FinProcedimiento

Procedimiento MostrarMatriz(matriz, dimension)


Para i desde 1 hasta dimension.filas hacer
Para j desde 1 hasta dimension.columnas hacer
Mostrar matriz[i, j]
Mostrar " "
FinPara
Mostrar ""
FinPara
FinProcedimiento

Función SumarMatrices(matrizA, matrizB, dimensionA, dimensionB)


matrizResultado: arreglo[dimensionA.filas, dimensionA.columnas]

Para i desde 1 hasta dimensionA.filas hacer


Para j desde 1 hasta dimensionA.columnas hacer
matrizResultado[i, j] <- matrizA[i, j] + matrizB[i, j]
FinPara
FinPara

Devolver matrizResultado
FinFunción

Función RestarMatrices(matrizA, matrizB, dimensionA, dimensionB)


matrizResultado: arreglo[dimensionA.filas, dimensionA.columnas]

Para i desde 1 hasta dimensionA.filas hacer


Para j desde 1 hasta dimensionA.columnas hacer
matrizResultado[i, j] <- matrizA[i, j] - matrizB[i, j]
FinPara
FinPara

Devolver matrizResultado
FinFunción
Función MultiplicarMatrices(matrizA, matrizB, dimensionA, dimensionB)
matrizResultado: arreglo[dimensionA.filas, dimensionB.columnas]

Para i desde 1 hasta dimensionA.filas hacer


Para j desde 1 hasta dimensionB.columnas hacer
suma <- 0
Para k desde 1 hasta dimensionA.columnas hacer
suma <- suma + matrizA[i, k] * matrizB[k, j]
FinPara
matrizResultado[i, j] <- suma
FinPara
FinPara

Devolver matrizResultado
FinFunción
Diagrama de flujo:

Problema:
1. Almacenar en un arreglo 50 números enteros cualesquiera. Acomodar los números
de tal forma que la suma de los primeros 25 números sea menor o igual a la suma
de los últimos 25 números. Mostrar el arreglo original y el arreglo con la distribución
solicitada. Por ejemplo, si se dan los siguientes números: 9, -1, 15, -2, 8, 0 deben
quedar: -2, -1, 0, 8, 9, 15.

Algoritmo:
1.Inicio
2.Declarar un arreglo "numeros" de tamaño 50
3.Leer y almacenar en el arreglo "numeros" los 50 números enteros cualesquiera
4.Imprimir "Arreglo original:"
5.MostrarArreglo(numeros)
6.Ordenar el arreglo "numeros" en orden ascendente
7.Imprimir "Arreglo con la distribución solicitada:"
8.MostrarArreglo(numeros)
9.Fin

Pseudocódigo:
Algoritmo AcomodarNumeros

Definir TAMANIO como Entero


Definir numeros[TAMANIO] como Entero
Definir numerosOrdenados[TAMANIO] como Entero

Escribir "Ingrese los", TAMANIO, "números enteros:"


Para i <- 1 hasta TAMANIO Hacer
Leer numeros[i]
Fin Para

Para i <- 1 hasta TAMANIO Hacer


Para j <- i + 1 hasta TAMANIO Hacer
Si numeros[j] < numeros[i] Entonces
// Intercambiar los valores de los elementos
Definir temp como Entero
temp <- numeros[i]
numeros[i] <- numeros[j]
numeros[j] <- temp
Fin Si
Fin Para
Fin Para

// Acomodar los números de forma que se cumpla la condición


Definir sumaPrimeros como Entero
Definir sumaUltimos como Entero
sumaPrimeros <- 0
sumaUltimos <- 0

Para i <- 1 hasta TAMANIO Hacer


Si i <= TAMANIO / 2 Entonces
sumaPrimeros <- sumaPrimeros + numeros[i]
numerosOrdenados[i] <- numeros[i]
Sino
sumaUltimos <- sumaUltimos + numeros[i]
numerosOrdenados[TAMANIO - i + 1] <- numeros[i]
Fin Si
Fin Para

// Mostrar el arreglo original


Escribir "Arreglo original:"
Para i <- 1 hasta TAMANIO Hacer
Escribir numeros[i]
Fin Para

// Mostrar el arreglo con la distribución solicitada


Escribir "Arreglo con la distribución solicitada:"
Para i <- 1 hasta TAMANIO Hacer
Escribir numerosOrdenados[i]
Fin Para

Escribir "Suma de los primeros 25 números:", sumaPrimeros


Escribir "Suma de los últimos 25 números:", sumaUltimos

FinAlgoritmo
Diagrama de flujo:

Problema:
2. Almacenar en un arreglo bidimensional de 5 filas o renglones y 6 columnas números
enteros cualesquiera. Mostrar la suma de los números de cada fila o renglón y cada
columna

Algoritmo:
1. Inicio
2. Declarar un arreglo bidimensional "numeros" de tamaño 5x6
3. Leer y almacenar en el arreglo "numeros" los números enteros para cada posición
(fila y columna)
4. Declarar un arreglo "sumasFilas" de tamaño 5 e inicializarlo con ceros
5. Declarar un arreglo "sumasColumnas" de tamaño 6 e inicializarlo con ceros
6. Para cada fila de 0 a 4 Hacer
6.1. Para cada columna de 0 a 5 Hacer
6.1.1. sumasFilas[fila] <- sumasFilas[fila] + numeros[fila][columna] Fin Para Fin Para
7. Para cada columna de 0 a 5 Hacer
7.1. Para cada fila de 0 a 4 Hacer
7.1.1. sumasColumnas[columna] <- sumasColumnas[columna] +
numeros[fila][columna] Fin Para Fin Para
8. Imprimir "Sumas de las filas:"
9. Para cada suma en sumasFilas Hacer
9.1. Imprimir suma
9.2Fin Para
10. Imprimir "Sumas de las columnas:"
11. Para cada suma en sumasColumnas Hacer
11.1. Imprimir suma
11.2Fin Para
12. Fin

Pseudocódigo:
Algoritmo SumaFilasColumnas
Definir filas, columnas como Entero
Definir matriz[5,6] como Entero
Definir sumaFila, sumaColumna como Entero

Para filas <- 0 Hasta 4 Hacer


Para columnas <- 0 Hasta 5 Hacer
Escribir "Ingrese un número para la fila ", filas + 1, " y la columna ", columnas + 1
Leer matriz[filas, columnas]
FinPara
FinPara

Para filas <- 0 Hasta 4 Hacer


sumaFila <- 0
Para columnas <- 0 Hasta 5 Hacer
sumaFila <- sumaFila + matriz[filas, columnas]
FinPara
Escribir "La suma de los números en la fila ", filas + 1, " es: ", sumaFila
FinPara

Para columnas <- 0 Hasta 5 Hacer


sumaColumna <- 0
Para filas <- 0 Hasta 4 Hacer
sumaColumna <- sumaColumna + matriz[filas, columnas]
FinPara
Escribir "La suma de los números en la columna ", columnas + 1, " es: ", sumaColumna
FinPara

FinAlgoritmo
Diagrama de flujo:

Problema:
3. Almacenar en un arreglo 50 números enteros cualesquiera y mostrar:
a) los números pares,
b) la cantidad de números pares,
c) la suma de los números pares,
d) los números impares,
e) la cantidad de números impares,
f) la suma de los números impares
g) la cantidad de ceros que hay en el arreglo

Algoritmo:
1. Inicio
2. Declarar un arreglo "numeros" de tamaño 50
3. Leer y almacenar en el arreglo "numeros" los 50 números enteros cualesquiera
4. Declarar variables contadorPares, contadorImpares, sumaPares, sumaImpares y
contadorCeros, y asignarles el valor inicial de 0
5. Para cada número en el arreglo "numeros" Hacer
5.1. Si el número es par (número % 2 == 0) entonces
5.1.1. Imprimir el número (número par)
5.1.2. Incrementar el contador de números pares en 1
5.1.3. Sumar el número a la suma de los números pares
5.2. Si el número es impar (número % 2 != 0) entonces
5.2.1. Imprimir el número (número impar)
5.2.2. Incrementar el contador de números impares en 1
5.2.3. Sumar el número a la suma de los números impares
5.3. Si el número es cero (número == 0) entonces
5.3.1. Incrementar el contador de ceros en 1 Fin Para
6. Imprimir "Cantidad de números pares: " y el valor de contadorPares
7. Imprimir "Suma de los números pares: " y el valor de sumaPares
8. Imprimir "Cantidad de números impares: " y el valor de contadorImpares
9. Imprimir "Suma de los números impares: " y el valor de sumaImpares
10. Imprimir "Cantidad de ceros: " y el valor de contadorCeros
11. Fin

Pseudocódigo:
Algoritmo NumerosParesImpares
Definir arreglo[50] como entero
Definir pares, impares, sumaPares, sumaImpares, cantidadCeros como entero

// Inicializar variables
pares <- 0
impares <- 0
sumaPares <- 0
sumaImpares <- 0
cantidadCeros <- 0

// Leer los 50 números enteros y almacenarlos en el arreglo


Para i <- 0 hasta 49 Hacer
Escribir "Ingrese el número ", i + 1, ": "
Leer arreglo[i]
Fin Para

// Mostrar los números pares


Escribir "Números pares:"
Para i <- 0 hasta 49 Hacer
Si arreglo[i] % 2 = 0 Entonces
Escribir arreglo[i]
pares <- pares + 1
sumaPares <- sumaPares + arreglo[i]
Fin Si
Fin Para

// Mostrar la cantidad de números pares


Escribir "Cantidad de números pares:", pares

// Mostrar la suma de los números pares


Escribir "Suma de los números pares:", sumaPares

// Mostrar los números impares


Escribir "Números impares:"
Para i <- 0 hasta 49 Hacer
Si arreglo[i] % 2 <> 0 Entonces
Escribir arreglo[i]
impares <- impares + 1
sumaImpares <- sumaImpares + arreglo[i]
Fin Si
Fin Para

// Mostrar la cantidad de números impares


Escribir "Cantidad de números impares:", impares

// Mostrar la suma de los números impares


Escribir "Suma de los números impares:", sumaImpares

// Contar la cantidad de ceros en el arreglo


Para i <- 0 hasta 49 Hacer
Si arreglo[i] = 0 Entonces
cantidadCeros <- cantidadCeros + 1
Fin Si
Fin Para

// Mostrar la cantidad de ceros


Escribir "Cantidad de ceros:", cantidadCeros

Fin Algoritmo
Diagrama de flujo:

También podría gustarte