Hola a todos, hoy os dejo una serie de ejercicios propuestos y resueltos sobre matrices en pseudocódigo.
Los ejercicios no tienen una única solución, el objetivo es que haga lo que pide y si se pide que se haga de una forma especifica hacerlo.
Esta vez, están hechos en PseInt, pero os recomiendo que los penséis un poco antes de poneros a programar. Los indices de los arrays o arreglos que usaremos sera el predeterminado por PseInt, es decir, que empezaran en 1. Puedes hacerlos como te convengan
¡Tenemos curso en udemy y tutellus!
También esta disponible en tutellus con una increíble oferta: ¡6€!
https://www.tutellus.com/tecnologia/desarrollo-web/iniciacion-a-la-programacion-con-pseint-29001?cupon=DDR
Aquí os dejo el curso de pseudocodigo:
Curso Pseudocódigo con Pseint
Si tienes alguna duda o quieres proponer alguna solución alternativa, deja un comentario en este post o mándanos un mensaje a administrador@discoduroderoer.es También dejare algunos comentarios para explicar que hace cada paso. Puedes ponerlos con //
ATENCIÓN: si copias el código y te salta algún tipo de error, revisar el tipo de lenguaje que usas. Puedes cambiarlo en Configurar-Opciones del lenguaje-personalizado
1) Haz lo mismo que el ejercicio 5 de los ejercicios propuestos de arreglos pero con un arreglo o array multidimensional. Ten en cuenta que no podemos tener una columna con cadena y otra con números, así que usa la función convertiratexto(numero) que viene en PseInt. Piensa cuantas columnas y filas debera tener el array o arreglo, también de que forma deberemos recorrer el array o arreglo según lo que nos pide.
Spoiler Inside |
SelectShow> |
SubProceso mostrarArrays ( nombres, FILAS )
Para i<-1 Hasta FILAS Con Paso 1 Hacer
//Usamos un bucle ya que seria mas complicado(no es imposible)
//mostrar dos valores en una misma instruccion
escribir "La longitud del nombre ",nombres[i,1]," es de ",nombres[i, 2]
Fin Para
Fin SubProceso
Proceso Ejercicio6
//Declaramos variables
Definir longitud_nombres como entero
Definir nombres como cadena
Definir FILAS como entero
definir num_nombre como cadena
//Definimos las filas del array por teclado
escribir "Introduce las filas del array multidimensional"
leer FILAS
//Definimos el array
Dimension nombres[FILAS, 2]
//Introducimos los nombres y la longitud de los mismos
Para i<-1 Hasta FILAS Con Paso 1 Hacer
escribir "Introduce un nombre en la fila ",i
leer nombres[i, 1]
num_nombre<-convertiratexto(Longitud(nombres[i, 1]))
nombres[i, 2]<-num_nombre
Fin Para
//Invocamos la función
mostrarArrays( nombres, FILAS)
FinProceso
|
2) Crea un arreglo o array multidimensional con un tamaño que nosotros le indiquemos por teclado (puede ser 6×4, 7×2, etc.), recorre el array o arreglo e introduce número aleatorios (función azar(x) donde x es el limite donde generara), crea una función llamada rellenaArray. Por último, muestralos por pantalla tal como quedarían en el array o arreglo, es decir, si el array es de 5×5 tendremos que hace que cada 5 números baje una línea, por ejemplo:
5 2 6 8 4
5 4 3 2 1
9 8 7 4 2
9 8 7 5 2
2 3 5 4 2
Para escribir sin que salte de linea, usamos Sin Saltar
Spoiler Inside |
SelectShow> |
SubProceso rellenaArray ( num, FILAS, COLUMNAS )
Para i<-1 Hasta FILAS Con Paso 1 Hacer
Para j<-1 Hasta COLUMNAS Con Paso 1 Hacer
//Genera numeros entre 0 y 9
num[i,j]<-azar(10)
Fin Para
Fin Para
Fin SubProceso
SubProceso mostrarArray ( num, FILAS, COLUMNAS)
Para i<-1 Hasta FILAS Con Paso 1 Hacer
Para j<-1 Hasta COLUMNAS Con Paso 1 Hacer
escribir num[i,j]," " Sin Saltar
Fin Para
//Salto de linea
escribir ""
Fin Para
Fin SubProceso
Proceso Ejercicio7
//Declaramos variables
Definir num como entero
Definir FILAS como entero
Definir COLUMNAS Como Entero
//Definimos las filas y columnas del array por teclado
escribir "Introduce las filas del array"
leer FILAS
escribir "Introduce las columnas del array"
leer COLUMNAS
//Definimos el array
Dimension num[FILAS, COLUMNAS]
//Invocamos la función
rellenaArray(num, FILAS, COLUMNAS)
mostrarArray( num, FILAS, COLUMNAS)
FinProceso
|
3) Crea un arreglo o array multidimensional que contenga 3 columnas y las filas que tu quieras, las dos primeras columnas tendrán números y en la 3 columna sera el resultado de sumar el número de la primera y segunda columna. Muestra el array o arreglo de la siguiente forma:
3 + 5 = 8
4 + 4 = 7
…
Piensa de que forma puedes mostrar con un solo bucle.
Spoiler Inside |
SelectShow> |
SubProceso mostrarArray ( num, FILAS )
Para i<-1 Hasta FILAS Con Paso 1 Hacer
escribir num[i,1]," + ",num[i,2]," = ",num[i, 3]
Fin Para
Fin SubProceso
Proceso Ejercicio8
//Declaramos variables
Definir num como entero
Definir FILAS como entero
Definir COLUMNAS Como Entero
//Definimos las fila del array por teclado, las columnas
//ya sabemos que siempre seran 3
escribir "Introduce las filas del array multidimensional"
leer FILAS
COLUMNAS<-3
//Definimos el array
Dimension num[FILAS, COLUMNAS]
//Introducimos los nombres y la longitud de los mismos
Para i<-1 Hasta FILAS Con Paso 1 Hacer
Para j<-1 Hasta COLUMNAS Con Paso 1 Hacer
//Cuando j llegue a 3 (donde debemos sumar), sumara los valores anteriores,
//esto permite que nos ahorremos despues un bucle
si (j=COLUMNAS) Entonces
num[i,j]<-num[i,1]+num[i,2]
Sino
Escribir "Introduce un numero para la FILA ",i," COLUMNA ",j
leer num[i,j]
FinSi
Fin Para
Fin Para
//Invocamos la función
mostrarArray( num, FILAS)
FinProceso
|
4) Crea un arreglo o array multidimensional con un tamaño que definiremos nosotros por teclado, contendrá números aleatorios usando la función anterior y crearemos un array o arreglo unidimensional donde se copiaran los números que contiene el array multidimensional. Piensa que tamaño debe tener el array o arreglo unimensional.
Spoiler Inside |
SelectShow> |
SubProceso copiaArray ( num_multidimensional,num_unidimensional, FILAS, COLUMNAS )
//Esta variable la usaremos para controlar
definir saltador como entero
saltador<-0
Para i<-1 Hasta FILAS Con Paso 1 Hacer
Para j<-1 Hasta COLUMNAS Con Paso 1 Hacer
num_unidimensional[j+saltador]<-num_multidimensional[i,j]
Fin Para
saltador<-saltador+COLUMNAS
Fin Para
Fin SubProceso
SubProceso rellenaArray ( num, FILAS, COLUMNAS )
Para i<-1 Hasta FILAS Con Paso 1 Hacer
Para j<-1 Hasta COLUMNAS Con Paso 1 Hacer
//Genera numeros entre 0 y 9
num[i,j]<-azar(10)
Fin Para
Fin Para
Fin SubProceso
SubProceso mostrarArray ( num_unidimensional, FILAS, COLUMNAS)
Para i<-1 Hasta FILAS*COLUMNAS Con Paso 1 Hacer
escribir num_unidimensional[i]
Fin Para
Fin SubProceso
Proceso Ejercicio9
//Declaramos variables
Definir num_multidimensional como entero;
Definir num_unidimensional como entero;
Definir FILAS como entero
Definir COLUMNAS Como Entero
//Definimos las filas y columnas del array por teclado
escribir "Introduce las filas del array"
leer FILAS
escribir "Introduce las columnas del array"
leer COLUMNAS
//Definimos el array
Dimension num_multidimensional[FILAS, COLUMNAS]
Dimension num_unidimensional[FILAS*COLUMNAS]
//Invocamos laa funciones
rellenaArray(num_multidimensional, FILAS, COLUMNAS)
copiaArray(num_multidimensional,num_unidimensional, FILAS, COLUMNAS)
mostrarArray( num_unidimensional, FILAS, COLUMNAS)
FinProceso
|
5) Crea un array o arreglo multidimensional que contenga la tabla de multiplicar del 1 al 9 (10 filas y 10 columnas). La primera fila y la columna debe contener estos números. Algo así:

El resto de números deberemos calcularlo, usando los numeros que disponemos, es decir, en la primera fila de 0, calculara 1*1, 1*2, 1*3, etc. usando las posiciones del array o arreglo. Así debe quedar al final:

No os preocupéis por la apariencia ya que es por el número de dígitos.
Spoiler Inside |
SelectShow> |
SubProceso calculaTabla ( tabla_multiplicar, FILAS, COLUMNAS )
Para i<-2 Hasta FILAS Con Paso 1 Hacer
Para j<-2 Hasta COLUMNAS Con Paso 1 Hacer
//Empezamos desde la posicion 2,2
//Lo único que varia es la fila o la columna en cada caso
tabla_multiplicar[i,j]<-tabla_multiplicar[i,1]*tabla_multiplicar[1,j]
Fin Para
Fin Para
Fin SubProceso
SubProceso rellenaColumnasPrinc ( tabla_multiplicar, FILAS)
definir contador como entero
contador<-0
Para i<-1 Hasta FILAS Con Paso 1 Hacer
tabla_multiplicar[1,i]<-contador
tabla_multiplicar[i,1]<-contador
contador<-contador+1
Fin Para
Fin SubProceso
SubProceso mostrarArray ( tabla_multiplicar, FILAS, COLUMNAS)
Para i<-1 Hasta FILAS Con Paso 1 Hacer
Para j<-1 Hasta COLUMNAS Con Paso 1 Hacer
escribir tabla_multiplicar[i,j]," " Sin Saltar
Fin Para
//Salto de linea
escribir ""
Fin Para
Fin SubProceso
Proceso Ejercicio10
//Definimos las variables
definir FILAS como entero
definir COLUMNAS como entero
FILAS<-10
COLUMNAS<-10
dimension tabla_multiplicar[FILAS,COLUMNAS]
//Funciones
rellenaColumnasPrinc(tabla_multiplicar, FILAS)
calculaTabla(tabla_multiplicar, FILAS, COLUMNAS )
mostrarArray(tabla_multiplicar, FILAS, COLUMNAS)
FinProceso
|
6) Construya un algoritmo que al recibir los montos de ventas mensuales de cinco departamentos de una fábrica, proporciona la siguiente información:
- Realizar un subproceso para saber las ventas mensuales de la fábrica.
- Realizar un subproceso para el monto anual.
- Realizar un subproceso para obtener el monto del departamento que tuvo la mayor venta en el mes de julio.
- Realizar un subproceso que se le pase como parámetro el número del departamento y obtenga la mayor venta.
- Realizar un menú con el comando según para mandar a llamar a los subprocesos anteriores.
Spoiler Inside |
SelectShow> |
//Nos dice cual es departamento que mas ha producido en un mes concreto
Funcion ventaMayorMes ( montones Por Referencia, NUM_DEPARTAMENTOS, mes )
mayor_elemento = 0
indice_departamento = 0
//Solo recorremos una columna(de arriba a abajo)
Para i<-0 Hasta NUM_DEPARTAMENTOS-1 Con Paso 1 Hacer Si montones(i, mes) > mayor_elemento Entonces
mayor_elemento = montones(i, mes)
indice_departamento = i
Fin Si
Fin Para
Escribir "La mayor venta del mes ",(mes+1), " es de ", mayor_elemento, " por el departamento ",(indice_departamento+1)
Fin Funcion
//Indica el mes donde mas se ha producido de un departamento concreto
Funcion ventaMayorDepartamento ( montones Por Referencia, MESES , departamento )
mayor_elemento = 0
indice_mes = 0
//Recorremos una fila (de izquierda a derecha)
Para i<-0 Hasta MESES-1 Con Paso 1 Hacer Si montones(departamento, i) > mayor_elemento Entonces
mayor_elemento = montones(departamento, i)
indice_mes = i
Fin Si
Fin Para
Escribir "La mayor venta del departamento ",(departamento+1), " es de ", mayor_elemento, " en el mes ",(indice_mes+1)
Fin Funcion
//Realiza la suma de todos los elementos de la matriz
Funcion ventaAnual ( montones Por Referencia, NUM_DEPARTAMENTOS, MESES )
suma = 0
Para i<-0 Hasta NUM_DEPARTAMENTOS-1 Con Paso 1 Hacer
Para j<-0 Hasta MESES-1 Con Paso 1 Hacer
suma = suma + montones(i,j)
Fin Para
Fin Para
Escribir "La venta anual es ",suma
Fin Funcion
//Reaaliza la venta mensual de todos los departamentos de cada uno de los meses
Funcion ventasMensuales ( montones Por Referencia, NUM_DEPARTAMENTOS, MESES )
suma = 0
Para i<-0 Hasta MESES-1 Con Paso 1 Hacer
Para j<-0 Hasta NUM_DEPARTAMENTOS-1 Con Paso 1 Hacer
suma = suma + montones(j,i)
Fin Para
Escribir "MES: ", (i+1) , " la suma es ", suma
suma = 0 //Reiniciamos la variable
Fin Para
Fin Funcion
Algoritmo ejercicio_matrices_1
//Constantes usadas
NUM_DEPARTAMENTOS = 5
MESES = 12
//Creo la matriz
dimension montones(NUM_DEPARTAMENTOS,MESES)
//Creo valores aleatorios
Para i<-0 Hasta NUM_DEPARTAMENTOS-1 Con Paso 1 Hacer
Escribir "Departamento ",(i+1),": " Sin Saltar
Para j<-0 Hasta MESES-1 Con Paso 1 Hacer
montones(i, j) = Aleatorio(10, 99)
Escribir montones(i,j) , " " Sin Saltar
Fin Para
Escribir ""
Fin Para
//Menu
salir = Falso
Mientras no salir Hacer
Escribir "---MENU---"
Escribir "Elige una opcion"
Escribir "1. Ventas Mensuales"
Escribir "2. Venta Anual"
Escribir "3. Mayor venta MES julio"
Escribir "4. Mayor venta Departamento"
Escribir "5. Salir"
leer opcion_menu
//Simplemente cada opcion llama a una funcion
Segun opcion_menu Hacer
1:
ventasMensuales(montones, NUM_DEPARTAMENTOS, MESES)
2:
ventaAnual(montones, NUM_DEPARTAMENTOS, MESES)
3:
ventaMayorMes(montones, NUM_DEPARTAMENTOS, 6)
4:
Escribir "indica el numero de departamento"
leer departamento
ventaMayorDepartamento(montones, NUM_DEPARTAMENTOS, departamento-1)
5:
salir = Verdadero
De Otro Modo:
Escribir eligue una opcion correcta
Fin Segun
Fin Mientras
FinAlgoritmo
|
7) Crear una matriz de 5×7, donde 5 representan la semana de un mes y 7 los días de la semana
La estructura registrara la temperatura diaria de una cabina de pago, estos oscilan entre los 7 y 38 grados.
deberá llenar la matriz de forma aleatoria para el mes de mayo donde el primer dia inicia en lunes y el
ultimo (31) se ubica en el miercoles.
Se nos pide hacer lo siguiente:
– Obtener la temperatura mas alta y baja de la semana y que dia se produjo (lunes,martes, etc etc).
– Promedio temperatura de la semana.
– Temperatura mas alta del mes y su dia
Spoiler Inside |
SelectShow> |
Algoritmo sin_titulo
//Constantes
FILAS <- 5
COLUMNAS <-7
LUNES <- 0
MARTES <- 1
MIERCOLES <- 2
JUEVES <- 3
VIERNES <- 4
SABADO <- 5
DOMINGO <- 6
//Arreglos y matrices
Dimension dias(COLUMNAS)
dias(0)<-"Lunes"
dias(1)<-"Martes"
dias(2)<-"Miercoles"
dias(3)<-"Jueves"
dias(4)<-"Viernes"
dias(5)<-"Sabado"
dias(6)<-"Domingo"
Dimension temperaturas[5,7];
//Cabecera
Escribir "LU MA MI JU VI SA DO";
limite <- 0
//Recorremos las 5 semanas
Para i<-0 Hasta FILAS-1 Con Paso 1 Hacer
//Si es la ultima semana, recorremos hasta el miercoles
Si i=FILAS-1 Entonces
limite <- MIERCOLES
Sino
limite <- DOMINGO
Fin Si
//Recorremos los dias, segun el limite
Para j<-0 Hasta limite Con Paso 1 Hacer
//Rellenamos la temperatura de un dia aleatoriamente
temperaturas(i,j) <- Aleatorio(7,38)
//Si es menor que 10, le ponemos un espacio delante.
//Para que se adapte bien
Si temperaturas(i,j)<10 Entonces
Escribir " " ,temperaturas(i,j) " " Sin Saltar
Sino
Escribir temperaturas(i,j) " " Sin Saltar
Fin Si
Fin Para
Escribir ""
Fin Para
//Variables para la temperatura mas alta del mes y su dia(numero y nombre del dia)
mayorTemperaturaGeneral <- temperaturas(0,0)
diaMayorTemperaturaGeneral <- 1
diaSemanaMayorTemperaturaGeneral <- 0
//Recorremos las 5 semanas
Para i<-0 Hasta FILAS-1 Con Paso 1 Hacer
//Cada semana se reinicia
//Variables para el mayor y menor de la semana
mayorTemperaturaSemana <- temperaturas(i,0)
diaMayorTemperaturaSemana <- LUNES
menorTemperaturaSemana <- temperaturas(i,0)
diaMenorTemperaturaSemana <- LUNES
//sumador
sumaTemperatura <- 0
//Si es la ultima semana, recorremos hasta el miercoles
Si i=FILAS-1 Entonces
limite <- MIERCOLES
Sino
limite <- DOMINGO
Fin Si
//Recorremos los dias, segun el limite
Para j<-0 Hasta limite Con Paso 1 Hacer
//Comprobamos las temperaturas (mayor en la semana)
Si temperaturas(i,j)>mayorTemperaturaSemana Entonces
mayorTemperaturaSemana <- temperaturas(i,j)
diaMayorTemperaturaSemana <- j
Fin Si
//Comprobamos las temperaturas (menor en la semana)
Si temperaturas(i,j)<menorTemperaturaSemana Entonces
menorTemperaturaSemana <- temperaturas(i,j)
diaMenorTemperaturaSemana <- j
Fin Si
//Comprobamos las temperaturas (mayor en el mes)
Si temperaturas(i,j)>mayorTemperaturaGeneral Entonces
mayorTemperaturaGeneral <- temperaturas(i,j)
diaSemanaMayorTemperaturaGeneral <- j
//Obtenemos el dia del mes en numero
diaMayorTemperaturaGeneral <- (i * COLUMNAS) + j+1
Fin Si
//sumamos la temperatura
sumaTemperatura<-sumaTemperatura + temperaturas(i,j)
Fin Para
//mostramos los datos de la semana
Escribir "En la semana ",(i+1), " la mayor temperatura es de ",mayorTemperaturaSemana," en el dia ", dias(diaMayorTemperaturaSemana)
Escribir "En la semana ",(i+1), " la menor temperatura es de ",menorTemperaturaSemana," en el dia ", dias(diaMenorTemperaturaSemana)
escribir ""
//calculo la media o promedio
media<- sumaTemperatura / COLUMNAS
Escribir "La media de la semana ",(i+1), "es de ",media
Escribir ""
Fin Para
//Mostramos los datos del mes
Escribir "La mayor temperatura del mes es de ",mayorTemperaturaGeneral," en el dia ", dias(diaSemanaMayorTemperaturaGeneral), "(",diaMayorTemperaturaGeneral,")"
FinAlgoritmo
|
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Hola alguien me puede ayudar en una matriz es para un examen final :c es este plis urg :’)
Código de 10 x 10 que genere una matriz aleatoria de esas dimensiones, con esa matriz aleatoria deben hacer una función que reciba la matriz y que retorne de tres valores. Primero, el promedio de todos los valores. Segundo, la suma de las filas pares (0, 2, 4, 6, 8, 10). Tercero, la suma de las columnas impares (1, 3, 5, 7, 9).
Muy bien explicado, me resultó muy util la verdad 11/10
Me podrias ayuar en este algoritmo?
Elabora un algoritmo que que capture el nombere del empleado y las ventas en 10 meses. imprima nombre del empleado y cual fue la venta mas alta.
Gracias m super urge.
1.Haz un programa que pida al usuario 7 datos, los guarde en una matriz y luego muestre indique el mayor
2.Haz un programa que pida al usuario 7 datos, los guarde en una matriz y luego muestre indique el curto dato
3.Crea un programa que pida un número al usuario un número de mes (por ejemplo, el 4) y diga cuántos días tiene (por ejemplo, 30). Debes usar una matriz.
4.Haz un programa que pida al usuario 5 datos, los guarde en una matriz y luego muestre su PROMEDIO (la suma de los 5 datos, dividida entre 5).
5.En el programa anterior la que se pida al usuario 5 datos, se guarden en una matriz y finalmente se calcule su media, se muestre ésta y se muestren también los valores mayores que la media).
AYUDAA
1.Crear una matriz de 8 elementos y obtener la suma y el promedio de dicho matriz
2.Crear una matriz de notas alumnos con 10 datos y otra con la condición (aprobado y reprobado) debes cargar las primera y la segunda debera cargarse con la condicion indicada.
3.Crear dos matrices de 5 datos cda una y una tercera que debera cargar el producto de las dos primeras.
hola, buenas espero se encuentren bien
como puedo hacer este mismo codigo en google colab muchas gracias
me pueden ayudar con este ejercicio de pseint
un cliente quiere desbloquear un automovil mediante un codigo de seguridada
para la cual el programa debera tener las siguientes condiciones
-debe tener un menu de opciones para ser mostrada en pantalla digital
el codigo es 2468
el numero de intentos maximos es 3
si exede el numero de intentos el vehiculo se bloquear hasta ingresar un pin 1234
gracias
Podrian ayudarme con este?
Una empresa de venta de productos por correo desea realizar una estadística de las ventas
realizadas de cada uno de sus productos a lo largo de una semana. Distribuya luego 5 produc-
tos en los 5 días hábiles de la semana. Se desea conocer:
a) Total de ventas por cada día de la semana.
b) Total de ventas de cada producto a lo largo de la semana.
c) El producto más vendido en cada semana.
d) El nombre, el día de la semana y la cantidad del producto más vendido.
El informe final tendrá un formato como el que se muestra a continuación:
Lunes Martes Miércoles Jueves Viernes Total producto
Producto 1
Producto 2
Producto 3
Producto 4
Producto 5
Total semana
Producto más
vendido