SlideShare a Scribd company logo
1 of 53
Download to read offline
Ejercicios de metodología de
la programación
Hacer un algoritmo que permita calcular las siguientes áreas para las
siguientes figuras:
Triangulo, rectángulo, cuadrado, círculo y hexágono.
DIAGRAMA DE FLUJO.
Estructura de repetición PARA
Inicio
‘A. Calcula Área de Triangulo.
B. Calcula Área de Rectángulo.
C. Calcula Área de Cuadrado.
D. Calcula Área de Circulo.
E. Calcula Área de Hexagono.’
‘De que figura
desea calcular su
area?’
figura
area=base*altura/2 area=base**2
area=base*altura area=3.1416*radio**2 area=peri*ap/2
figura
A
B
C
D
E
base,altura base,altura base radio Peri,ap
‘El área de la
figura es:’,area
‘Introduzca base y
altura del
Triangulo’
‘Introduzca base y
altura del
Rectangulo’
‘Introduzca base
del cuadrado’
‘Introduzca el
radio del Circulo’
‘Introduzca
perímetro y
apotema del
hexágono’
PARA
Cont=1 a 10
Incremento 1
si
FIn
NO
PSEUDOCODIGO.
Nombre: Calculo_de_areas_de_figuras.
Variables:
[base, altura, radio, peri, ap, área: son variables de tipo real]
[cont: es variable de tipo entero]
INICIO
Para (cont=1 hasta 10 incremento 1) hacer
Escribir (‘A. calcula área de triangulo
B. calcula área de rectángulo
C. calcula área de cuadrado
D. calcula área de círculo
E. calcula área de hexágono’)
Escribir (‘De que figura desea calcular su área?’)
Leer (figura)
Según (figura) Sea
Caso ‘A’:
Escribir (‘Introduzca la base y la altura del Triangulo’)
Leer (base, altura)
area=base*altura/2
Caso ‘B’:
Escribir (‘Introduzca la base y la altura del Rectángulo’)
Leer(base, altura)
area=base*altura
Caso ‘C’:
Escribir (‘Introduzca la base del Cuadrado’)
Leer (base)
area=base**2
Caso ‘D’:
Escribir (‘Introduzca el radio del Circulo’)
Leer (radio)
area=3.1416*radio**2
Caso ‘E’:
Escribir (‘Introduzca el perímetro y la apotema del Hexágono’)
Leer (peri, ap)
area=peri*ap/2
Escribir (‘el área de la figura es:’, área)
Si_no
Escribir (‘letra, numero o símbolo erróneo’)
Fin_segun
Fin_para
FIN
Hacer un algoritmo que permita calcular las siguientes áreas para las
siguientes figuras:
Triangulo, rectángulo, cuadrado, círculo y hexágono.
DIAGRAMA DE FLUJO.
Estructura de repetición MIENTRAS
Inicio
‘A. Calcula Área de Triangulo.
B. Calcula Área de Rectángulo.
C. Calcula Área de Cuadrado.
D. Calcula Área de Circulo.
E. Calcula Área de Hexagono.’
‘De que figura
desea calcular su
area?’
figura
area=base*altura/2 area=base**2
area=base*altura area=3.1416*radio**2 area=peri*ap/2
figura
A
B
C
D
E
base,altura base,altura base radio Peri,ap
‘El área de la
figura es:’,area
‘Introduzca base y
altura del
Triangulo’
‘Introduzca base y
altura del
Rectangulo’
‘Introduzca base
del cuadrado’
‘Introduzca el
radio del Circulo’
‘Introduzca
perímetro y
apotema del
hexágono’
MIENTRAS
cont<=num
si
FIn
Cont=1
‘cuantas veces
deseas realizar
calculo de areas?’
num
cont=cont+1
NO
PSEUDOCODIGO.
Nombre: Calculo_de_areas_de_figuras.
Variables:
[base, altura, radio, peri, ap, área: son variables de tipo real]
[cont,num:son varibles de tipo enterol]
INICIO
Escribir (‘cuantas veces deseas realizar cálculo de áreas’)
Leer (num)
cont=1
Mientras (cont<=num)
Escribir (‘A. calcula área de triangulo
B. calcula área de rectángulo
C. calcula área de cuadrado
D. calcula área de círculo
E. calcula área de hexágono’)
Escribir (‘De que figura desea calcular su área?’)
Leer (figura)
Según (figura) Sea
Caso ‘A’:
Escribir (‘Introduzca la base y la altura del Triangulo’)
Leer (base, altura)
area=base*altura/2
Caso ‘B’:
Escribir (‘Introduzca la base y la altura del Rectángulo’)
Leer(base, altura)
area=base*altura
Caso ‘C’:
Escribir (‘Introduzca la base del Cuadrado’)
Leer (base)
area=base**2
Caso ‘D’:
Escribir (‘Introduzca el radio del Circulo’)
Leer (radio)
area=3.1416*radio**2
Caso ‘E’:
Escribir (‘Introduzca el perímetro y la apotema del Hexágono’)
Leer (peri, ap)
area=peri*ap/2
Escribir (‘el área de la figura es:’, área)
Si_no
Escribir (‘letra, numero o símbolo erróneo’)
Fin_segun
cont=cont+1
Fin_mientras
FIN
Hacer que llene un vector con 30 caracteres. Recorrer el arreglo para contar
cuántas a’s hay en el arreglo.
Nombre: contar_a
Variables: con(30), cont_a, pos.
Inicio
cont_a = 0
Para (pos=1 hasta 30, incremento 1) hacer
Escribir (‘Ingresa los caracteres’)
Leer (con[pos])
Fin_Para
Para (pos=1 hasta 30, incremento 1) hacer
Si(con[pos] = ‘a’) entonces
cont_a = cont_a + 1
Fin_Si
Fin_Para
Escribir (‘La cantidad de a es’, cont_a)
Fin
Dado 3 calificaciones analizarlas y si la calificación es mayor que 8 pero
menor que 9 entonces deberás subirle 1 punto a dicha calificación.
DIAGRAMA DE FLUJO.
NO SI
NO SI
NO SI
INICIO
cal1, cal2, cal3
Cal1<=8
Y cal1<9
Cal1=cal1+1
Cal1
Cal2<=8
Y cal2<9
Cal2=cal2+1
Cal2
Cal3<=8
Y cal3<9
Cal3=cal3+1
Cal3
FIN
PSEUDOCODIGO.
INICIO
LEER (cal1, cal2, cal3)
SI cal1>=8 Y cal1<9 ENTONCES
Cal1=cal1+1
ESCRIBIR (cal1)
FINSI
SI cal2>=8 Y cal2<9 ENTONCES
Cal2=cal2+1
ESCRIBIR (cal2)
FINSI
SI cal3>=8 Y cal3<9 ENTONCES
Cal3=ca3+1
ESCRIBIR (cal3)
FINSI
FIN
Analisis
Nombre: números_sin_repeticion
Estructura: para, decisión simple,areglo, mientras
Variables: n, Nr, Ag, num, tipo entero Are_1 [500], Are_2 [500] cadena tipo entero
Datos de entrada: n, num tipo entero
Datos de salida: Are_2 cadena
Inicio
Escrribir (‘dame la cantidad de numeros a procesar’)
Leer (n)
Para (cont =1 hasta n incremento 1) hacer
Are_2[cont] = 0
Nr = Nr +1
Fin para
Nr = 1
Ag = 1
Si num > 1 y num < 500
Para (cont =1 hasta n incremento 1) hacer
Escribir (‘dame un numero’)
Leer (num)
Are_1[cont] = num
Fin si
Fin_ para
Para (cont=1 hasta n incremento 1) hacer
Para (su=1 hasta n incremento 1) hacer
Si Are_1[cont] = Are_2[su]
Nr = Nr +1
Si_no
Mientras (Nr < 2) hacer
Si
Are_2[Ag] = are_1[cont]
Ag = Ag +1
Si_no
Nr=1
Fin_mientras
Fin_para
Fin_para
Ag = Ag +1
Para (cont =1 hasta Ag incremento 1) hacer
Escribir (Are_2[cont])
Si_no
Escribir (‘el numero no se puede procesar’)
Fin
Problema 4.14
Se tienen los costos de producción de tres departamentos (dulces, bebidas y conservas), correspondientes
a los 12 meses del año anterior.
Construya un pseudocódigo que pueda proporcionar la siguiente información:
a.- ¿En qué mes se registró el mayor costo de producción de dulces?
b.- Promedio anual de los costos de producción de bebidas.
c.- ¿En qué mes se registró el mayor costo de producción en bebidas, y en qué mes el menor costo?
d.- ¿Cuál fue el rubro que tuvo el menor costo de producción en diciembre?
Nombre: costo_prod
Variables: A[dep,mes], mayprod, mes, MEES, mesmay, mesmen, maybeb, menbeb, depa tipo entero. vmax,
sum, prom, de tipo real
Inicio
vmax = 0
Escribir 'Significado de los numeros', '1=dulces, 2=bebidas, 3=conservas'
Para (dep = 1 hasta 3 incremento 1) hacer
Para (mes = 1 hasta 12 incremento 1) hacer
Escribir ('ingresa los costos de producción de', dep, 'en el mes', mes)
Leer (A[dep,mes])
Fin_Para
Fin_Para
mayprod =A[1,1]
mes = 1
MEES=1
Mientras (mes<=12) hacer
Si (mayprod < A[1,mes]) entonces
mayprod=A[1,mes]
MEES=mes
Fin_Si
mes=mes+1
Fin_Mientras
Escribir ('mayor produccion de dulces', mayprod, 'en el mes', MEES)
sum=0
Para (mes = 1 hasta 12 incremento 1) hacer
sum=sum+A[2,mes]
Fin_Para
prom=prom/12
Escribir ('promedio anual de costos de bebidas', prom)
mesmay=1
mesmen=1
maybeb=A[2,1]
menbeb=A[2,1]
Si (maybeb < A[2,mes] entonces
maybeb=A[2,mes]
mesmay=mes
si_no
Si menbeb > A[mes,2] entonces
menbeb=A[2,mes]
mesmen=men
Fin_Si
Fin_Si
Escribir ('en el mes', mesmay, 'se registro el mayor costo de produccion de bebidas, y en el
mes', mesmen, 'el menor costo')
Para (dep=1 hasta 3 incremento 1) hacer
Si (mesmen>A[dep, 12] hacer
mesmen = A[dep,12]
depa=dep
Fin_si
Fin_Para
Escribir (‘El departamento’, depa, ‘tuvo el menor costo en diciembre’)
Fin
Problema 4.16
Sean A(MxN) y B(N) arreglos de dos y una dimensión, respectivamente. Construya un diagrama
de flujo que asigne valores a B, a partir de A, teniendo en cuenta los siguientes criterios:
a.- B[nfil] = ∑ 𝑨[𝒏𝒇𝒊𝒍, 𝒏𝒄𝒐𝒍]
𝒄𝒐𝒍
𝒏𝒄𝒐𝒍=𝒊 Si nfil es impar
b.- B[nfil] = ∑ 𝑨[𝒏𝒇𝒊𝒍 − 𝟏, 𝒏𝒄𝒐𝒍]
𝒄𝒐𝒍
𝒏𝒄𝒐𝒍=𝒊 Si nfil es par
Nombre: arreglos_uni_bi
Variables: col, fil, total, nfil, ncol de tipo entero. A[nfil,ncol], B[fil] tipo real.
Inicio
Escribir(‘Ingrese numero de columnas de la matriz’)
Leer(col)
Escribir(‘Ingrese numero de filas de la matriz’)
Leer(fil)
total=(fil*col)
Escribir(´Ingresa los’, total, ‘datos’)
Para (nfil=1 hasta fil incremento 1) hacer
Para (ncol=1 hasta col incremento 1) hacer
Leer(A[nfil,ncol])
Fin_Para
Fin_Para
Para (nfil=1 hsata fil incremento 1) hacer
Si (nfil MOD 2 = 0) entonces
B[fil]= 0
ncol=1
Para (ncol= 1 hasta col incremento 1) hacer
B[fil]=B[fil]+(A[nfil,ncol]*A[nfil-1,ncol])
Fin_Para
Si_no
B[fil]=0
ncol=1
Para (ncol=1 hasta col incremento 1) hacer
B[fil]=B[fil]+A[nfil,ncol]
Fin_Para
Fin_Si
Fin_Para
Escribir(‘Este es el arreglo unidimensional’)
Para (nfil=1 hasta fil incremento 1) hacer
Escribir (B[fil])
Fin_Para
Fin
Problema 4.15
Una empresa automotriz necesita un programa para manejar los montos de ventas de sus N
sucursales, a lo largo de los últimos M años.
La información que necesitan los directores de la empresa para tomar decisiones es la siguiente:
a) Sucursal que mas vendió en los M años
b) Promedio de ventas por año.
c) Año con mayor promedio de ventas.
Nombre: empresa_auto
Variables: suc, anios, a, b de tipo entero. monto[a,b], maxi, sum, prom de tipo real
Inicio
Escribir ('Ingresa el numero de sucursales')
Leer (suc)
Escribir ('Dame el número de años')
Leer (anios)
Para (a=1 Hasta anios incremento 1) Hacer
Para (b=1 Hasta suc incremento 1) Hacer
Escribir ('Dame el monto de venta de la sucursal', b, 'en el año', a)
Leer(monto[a,b])
Finpara
Finpara
maxi=0
Para (a=1 Hasta suc incremento 1) Hacer
sum=0
Para (b=1 Hasta anios incremento 1) Hacer
sum= sum+monto[a,b]
Fin_Para
Si (sum>maxi)
maxi=sum
sucmax=a
Fin_Para
Escribir ('la sucursal que con mas ventas', sucmax, 'con un total de', maxi)
max=0
Para (a=1 Hasta anios incremento 1) Hacer
sum=0
Para (b=1 Hasta suc incremento 1) Hacer
sum= sum+monto[a,b]
Fin_Para
prom= sum/anios
Escribir ('el promedio de ventas en el año', a, 'es de', prom)
Si (prom>maxi) Entonces
maxi=prom
anios=a
Finsi
Finpara
Escribir ('Año con mayo promedio es el',anios)
Fin
Problema 4.12
Dada una matriz cuadrada A, construya un diagrama de flujo que permita determinar si dicha
matriz es simétrica. Se considera que una matriz es simetrica si A[i,j] = A[j,i] y esto se cumple
para todos los elementos de i,j de la matriz.
Nombre: matriz_sim_no_sim
Variables: n, fil, col, band, a de tipo entero. s[fil, col], s[col,fil] tipo real.
Inicio
Escribir (‘Dame el tamaño de la matriz’)
Leer (n)
Para (fil=1 Hasta n incremento 1) Hacer
Para (col=1 Hasta n incremento 1) Hacer
Escribir (‘Dame el elemento’,fil,col)
Leer(s[fil,col])
Fin_Para
Fin_Para
band=1
cont=1
Mientras (cont<=n Y band=1) Hacer
a=1
Mientras (a<=1-1 Y band=1)
Si ( s[fil,col]=s[col,fil] )Entonces
a=a+1
Sino
band=0
Fin_Si
Fin_Mientras
cont=cont+1
Finmientras
Si (band=1) Entonces
Escribir (‘si es simetrica’)
Sino
Escribir (‘No es simetrica’)
Finsi
FIN
Hacer un algoritmo que permita dar el resultado del área(π*r^2), perímetro(2πr) y el
diámetro(2r) de una circunferencia.
real perimetro(real r)
Inicio
result de tipo real
result = (2*3.1416)*r
regresa (result)
fin_perimetro
real area(real r)
Inicio
result de tipo real
result = (r*r)*3.1416
regresa (result)
fin_perimetro
real diametro(real r)
Inicio
result de tipo real
result = 2*r
regresa (result)
fin_diametro
Nombre: circulo
Variables: r, opci, resultado de tipo real.
Inicio
Escribir(‘Operaciones disponibles’)
Escribir(‘1. Obtener perímetro, 2. Obtener área, 3. Obtener diametro’)
Escribir(‘Elige la opción’)
Leer(opci)
Escribir(‘ingresa el valor del radio’)
Leer(r)
Segun(opci) sea
Caso1: resultado = perimetro(r)
Caso1: resultado = area(r)
Caso1: resultado = diametro(r)
si_no: Escribir(‘no se puede realizar esta opción’)
fin_Segun
Escribir(‘El resultado obtenido es’, resultado)
Fin
El programa, dada una matriz cuadrada, determinar si es simétrica
PSEUDOCODIGO
Nombre: calificaciones.de.alumnos.
Variables:
INICIO
Escribir (‘Dame el tamaño de la matriz’)
Leer (n)
Para (fil=1 Hasta n incremento 1) Hacer
Para (col=1 Hasta n incremento 1) Hacer
Escribir (‘Dame el elemento’,fil,col)
Leer(m[fil,col])
Finpara
Finpara
Brake=1
Cont=1
Mientras (cont<=n Y brake=1) Hacer
aux=1
Mientras (aux<=1-1 Y brake=1)
Si ( m[fil,col]=m[col,fil] )Entonces
aux=aux+1
Sino
brake=0
Finsi
Finmientras
Cont=cont+1
Finmientras
Si (brake=1) Entonces
Escribir (‘si es simetrica’)
Sino
Escribir (‘No es simetrica’)
Finsi
FIN
1.- Llenar una matriz de 30 elementos de tipo entero, posteriormente solicitar al usuario un
numero entero para que sea buscado en dicha matriz, si el número fue encontrado deberá
imprimir la posición en la que se encontró, pero sino fue encontrado el elemento, imprimir ‘no fue
encontrado el elemento’, la búsqueda aplica para el primer elemento.
Nombre: busqueda
Variables: band, fil, col, bus, M[fil,col] de tipo entero.
Inicio
band=0
Escribir(‘ingresa 30 numeros’)
Para (fil = 1 hasta 5 incremento 1) hacer
Para (col=1 hasta 6 incremento 1) hacer
Leer (M[fil,col]
Fin_Para
Fin_Para
Escribir (‘¿Qué numero desea buscar?’)
Leer(bus)
Para (fil = 1 hasta 5 incremento 1) hacer
Para (col=1 hasta 6 incremento 1) hacer
Si(bus=M[fil,col])
Escribir(‘El elemento’, bus, ‘fue encontrado en’, fil, col)
col=7
fil=6
band=1
Fin_Si
Fin_Para
Fin_Para
Si (band=0)
Escribir(‘el elemento no fue encontrado’)
Fin_Si
Fin
i
2.- Llenar una matriz de 4x4 de números enteros y posteriormente verificar si la matriz es una
matriz identidad.
Nombre: matriz_identidad
Variables: n, total, fil, col, acum, M[fil,col] de tipo entero.
Inicio
acum=0
Escribir(‘Ingresa el número de casillas del lado de la matriz’)
Leer(n)
total=n*n
Escribir(‘Ingresa los’, total, ‘numeros’)
Para (fil = 1 hasta n incremento 1) hacer
Para (col=1 hasta n incremento 1) hacer
Si (M[fil,col]=1 Y fil=col)
acum=acum+1
Fin_Si
Fin_Para
Fin_Para
Si (acum=n)
Escribir (‘La matriz es una matriz identidad’)
Si_No
Escribir(‘La matriz no es una matriz identidad’)
Fin_Si
Fin
3.- Llenar una matriz de 3x3 de números enteros y posteriormente verificar si la matriz es
triangular superior.
Nombre: matriz_triangular_sup
Variables: n, col, fil, band, M[fil,col] de tipo entero.
Inicio
band=0
Escribir('ingresa el tamaño del lado de la matriz')
Leer (n)
total=n*n
Escribir('ingresa los numeros', total)
Para (fil=1 hasta n incremento 1) hacer
Para (col=1 hasta n incremento 1) hacer
Leer (M[fil,col])
Fin_Para
Fin_Para
Para (fil= n-1 hasta n incremento 1) hacer
Para (col= 1 hasta n-1 incremento 1) hacer
Si (fil<>col Y M[fil,col]=0)
band=1
Fin_Si
Fin_Para
Fin_Para
Si (band=0)
Escribir('no es una matriz triangular superior')
Si_No
Escribir('es una matriz transpuesta')
Fin_Si
Fin
4.- Llenar una matriz de 5x5 números enteros y posteriormente encontrar la matriz transpuesta.
Nombre: matriz_trans
Variables: M[fil, col], T[col,fil], n, total tipo entero.
Inicio
Escribir('ingresa la cantidad de casillas del lado de la matriz')
Leer (n)
total=n*n
Escribir('ingresa los', total, 'numeros')
Para (fil = 1 hasta n incremento 1) hacer
Para (col = 1 hasta n incremento 1) hacer
Leer(M[fil,col])
Fin_Para
Fin_Para
Para (fil = 1 hasta n incremento 1) hacer
Para (col = 1 hasta n incremento 1) hacer
T[col, fil] = M[fil, col]
Fin_Para
Fin_Para
Escribir(‘La transpuesta de la matriz es’)
Para (fil = 1 hasta n incremento 1) hacer
Para (col = 1 hasta n incremento 1) hacer
Escribir(T[col, fil])
Fin_Para
Fin_Para
Hacer un algoritmo para los siguientes problemas.
Suponemos que la NASA tiene el siguiente problema: desea almacenar el nombre
del planeta y la posición que ocupa en el sistema solar cada planeta.
Posteriormente desea saber cuál fue el planeta que se movió más rápidamente,
considerando que su velocidad depende de la posición que ocupa en el sistema
solar, es decir ésta se calcula como 2/3 de la posición que ocupa en el Sistema.
Nombre: NASA
Variables: i, nom[9] de tipo entero.
Inicio
rapido=0
Para (i = 1 hasta 9 incremento 1) hacer
Escribir (‘indica la posición en la que se encuentra el planeta’, i)
Leer (nom[i])
Fin_Para
Para (i = 1 hasta 9 incremento 1) hacer
nom[i]=(nom[i]*2)/3
Fin_Para
Para (i = 1 hasta 9 incremento 1) hacer
Si (nom[i]>rapido) entonces
rapido=nom[i]
nombre=[i]
Fin_Si
Fin_Para
Escribir (‘El planeta’, nombre, ‘es el mas rapido con una velocidad de’,
rapido)
Fin
Hacer el pseudocódigo para almacenar 20 numero enteros y posteriormente tomar
los números positivos, hacerlos negativos y llevarlos a un segundo vector, de igual
manera para los números negativos.
Nombre: cambio_de_signo
Variables: num[20], camb[20], llenado de tipo entero.
Inicio
Para (llenado = 1 hasta 20 incremento 1) hacer
Escribir (‘ingresa un numero, positivo, negativo o 0’)
Leer (num[llenado])
Fin_Para
Para (llenado= 1 hasta 20 incremento 1) hacer
Si (num[llenado]<>0) entonces
camb[llenado]=num[llenado]*-1
Si_no
camb[llenado]=num[llenado]
Fin_Si
Fin_Para
Para (llenado= 1 hasta 20 incremento 1) hacer
Escribir(‘Ahora el valor en la posición’, llenado, ‘es’, camb[llenado])
Fin_Para
Fin
Hacer el pseudocódigo para resolver el siguiente problema. Dada una matriz de
tamaño 10x10 de números enteros. Implementar un modulo que se encargue de
revisar si la matriz es matriz triangular superior, de ser así debe escribir un 1, o un
0 si no lo es.
entero *revisar(entero M[10,10])
Variables: M[10,10] de tipo entero, n, f, c, band de tipo entero
Inicio
band=0
Para(f= 9 hasta 10 incremento 1) hacer
Para(c= 1 hasta 9 incremento 1) hacer
Si (fil<>col Y M[fil,col]=0
band=1
Fin_Si
Fin_Para
Fin_Para
Si(band=0)
n=0
Si_no
n=1
Fin_Si
Fin_Para
regresa(n)
Fin
Nombre: matriz_sup_triangular
Variables: M[10,10] tipo entero, n, fil, col tipo entero
Inicio
Escribir(‘ingresa 100 numeros’)
Para(fil=1 hasta 10 incremento 1) hacer
Para(col=1 hasta 10 incremento 1) hacer
Leer(M[fil,col])
Fin_Para
Fin_Para
Si (revisar(M[10,10]) = 1) entonces
Escribir(‘La matriz es una matriz superior triangular’)
Si_no
Escribir(‘La matriz no es una matriz superior triangular’)
Fin_Si
Fin
Entregar la documentación correspondiente al pseudocódigo para dar solución al siguiente
problema.
Una compañía telefónica maneja 3 tipos de llamadas (básicas, normal y de lujo) y desea saber el
promedio de cada tipo de llamada. La compañía desea almacenar la siguiente información: por
cada tipo de llamada el tiempo que duro esta, también desea mostrar el tipo, número y tiempo
de la llamada, finalmente la compañía desea modificar la información (tiempo y tipo de llamada),
considera lo siguiente:
1) La llamada básica cada hr se cobra a $2 y por cada minuto extra se cobra $1
2) Llamada normal cada hr se cobra $1 y por cada minuto extra se cobra 50 c
3) Llamada de lujo:
a) Si son más de 20 hrs o 20 no se cobra nada
b) Si son menos de 10 o 10 se cobra a $3 por hr y por cada minuto extra a $1.50
c) Si son más de 10 y menos de 20 las primeras 10 se cobran como en b), y las restantes
10 se cobran a $2 y por cada minuto extra se cobra a $1.
Utiliza una matriz que almacena por cada llamada y tipo el tiempo que duro esta. Posteriormente
separa por tipos utilizando un vector por cada uno de los 3 tipos, utiliza módulos (alta, modifica,
muestra)
Ejemplo:
1 2 3
1
2 Llamadas
3
4
Tipos
1
5
2
5
4
3
6
Variables: M[25,3] Tipo Entero
Prombasico,Promnormal,Promlujo,prec1,prec2,prec3,pago Tipo Real
cont1,cont2,cont3 Tipo Entero
NOMBRE:proyecto_tipos_de_llamada
VARIABLES: tel Tipo entero
INICIO
Escribir 'ingresa el número telefónico de la llamada';
Leer (tel)
Alta ( )
3
5
4
6
Escribir (‘Este es su recibo de de pago el cual incluye el promedio de cada tipo de llamada
además se le incluye el precio a pagar en cada tipo de llamada y el costo total de pago’)
Escribir (‘Su número de teléfono es:’,tel)
Escribir (‘En total usted hizo 25 llamadas’)
Escribir (‘En las cuales’,cont1,’son de llamada basica’,cont2,’de llamada normal
y’,cont3,’de llamada de lujo’)
Escribir (‘El promedio de la llamada básica es de:’,prombasico)
Escribir (‘El costo a pagar por este tipo de llamada es de’,prec1)
Escribir (‘El promedio de la llamada normal es de:’,promnormal)
Escribir (‘El costo a pagar por este tipo de llamada es de’,prec2)
Escribir (‘El promedio de la llamada de lujo es de:’,promlujo)
Escribir (‘El costo a pagar por este tipo de llamada es de’,prec3)
Escribir (‘El total a pagar por los 3 tipos de llamada es de’,pago)
FIN
Entero Alta ( )
Variables: M[25,3] tipo entero
fil,col,llamada,t Tipo entero
INICIO
Para (fil=1 hasta 25 incremento 1) Hacer
Para (col=1 hasta 3 incremento 1) Hacer
M[fil,col]=-1
Finpara
Finpara
fil=1
Mientras (fil<= 25 ) Hacer
Escribir ('Selecciona el tipo de llamada')
Escribir ('1. Llamada básica')
Escribir ('2. Llamada normal')
Escribir ('3. Llamada de lujo')
Leer (llamada)
Si (llamada<=3) Entonces
Escribir ('¿que tiempo duro la llamada? en minutos')
Leer (t)
col=llamada
Mientras (col=llamada) hacer
M[fil,col]=t
col=col+1
FinMientras
fil=fil+1
Sino
Escribir (‘Error al capturar el tipo de llamada’)
Finsi
FinMientra
Regresar ( )
Modifica (M)
FIN
Entero Modifica ( M[25,3])
Variables: v1[25], v2[25], v3[25] vectores de Tipo Entero
breake,opcion,fil,col,nueva,temp,t,f,acum1,acum2,acum3 Tipo Entero
tiempo Tipo Entero i,j Tipo Real
INICIO
breake=1
Mientras (breake=1)
Escribir (¿Que desea modificar?’)
Escribir (‘1.tipo de llamada’)
Escribir (‘2. Tiempo de la llamada’)
Escribir (‘3. ambos’)
Escribir (‘4. Salir de modificar’)
Leer (opcion)
Según (opcion) Sea
Caso 1:
Escribir (‘indica que numero de llamada a modificar’)
Leer (fil)
Escribir (‘Ahora indique su tipo de llamada’)
Escribir ('1. Llamada básica')
Escribir ('2. Llamada normal')
Escribir ('3. Llamada de lujo')
Leer (col)
Escribir (‘Indica el nuevo tipo de llamada’)
Escribir ('1. Llamada básica')
Escribir ('2. Llamada normal')
Escribir ('3. Llamada de lujo')
Leer (nueva)
Si (fil<=25 Y col<=3 Y nueva<=3 Y M[fil,col]<>-1) Entonces
temp =M [fil,col]
M[fil,col]=-1
M[fil,nueva]=temp
Sino
Escribir (‘Error no se hizo ninguna modificacion’)
Finsi
Caso 2:
Escribir (‘indica que llamada deseas modificar’)
Leer (fil)
Escribir (‘indica el tipo de la llamada a modificar’)
Escribir ('1. Llamada básica')
Escribir ('2. Llamada normal')
Escribir ('3. Llamada de lujo')
Leer (col)
Si (fil<=25 Y col<=3 Y M[fil,col]<>-1 ) Entonces
Escribir (‘Indica el nuevo tiempo de la llamada’)
Leer (t)
M[fil,col]=t
Sino
Escribir (‘Error no se hizo ninguna modificacion’)
Finsi
Caso 3:
Escribir (‘indica que llamada deseas modificar’)
Leer (fil)
Escribir (‘indica el tipo de la llamada a modificar’)
Escribir ('1. Llamada básica')
Escribir ('2. Llamada normal')
Escribir (‘3. Llamada de lujo')
Leer (col)
Escribir (‘Indica el nuevo tipo de la llamada’)
Escribir ('1. Llamada básica')
Escribir ('2. Llamada normal')
Escribir ('3. Llamada de lujo')
Leer (nueva)
Si (fil<=25 Y col<=3 Y nueva<=3 Y M[fil,col]<>-1) Entonces
Escribir (‘indica el nuevo tiempo de la llamada’)
Leer (t)
M [fil,col]=t
temp =M [fil,col]
M [fil,col]=-1
M [fil,nueva]=temp
Sino
Escribir (‘Error no se hizo ninguna modificación’)
Finsi
Caso 4:
breake=0
Sino:
Escribir (‘Error al capturar numero para la modificación’)
Finsegun
FinMientras
cont1=0 cont2=0 cont3=0 acum1=0 acum2=0 acum3=0
Mientras (fil<=25 Y f=1) Hacer
Si (M[fil,1]<>-1) Entonces
V1[f]= M[f,1]
acum1=acum1+ M[fil,1]
cont1=cont1+1
f=f+1
tiempo= M[fil,1]
Si (tiempo MOD 60 = 0) Entonces
Prec1 = prec1+ (tiempo DIV 60)*2
Sino
i = (tiempo DIV 60)*2
j = (tiempo MOD 60)*1
prec1 = prec1+j+i
FinSi
Sino
Escribir (‘Error’)
Finsi
fil=fil+1
FinMientras
Mientras (fil<=25 Y f=1) Hacer
Si (M[fil,2]<>-1) Entonces
V1[f]= M[f,2]
acum2=acum2+ M[fil,2]
cont2=cont2+1
f=f+1
tiempo= M[f,2]
Si (tiempo MOD 60 = 0) Entonces
Prec2 = prec2+ (tiempo DIV 60)*2
Sino
i = (tiempo DIV 60)*2
j = (tiempo MOD 60)*1
prec2 = prec2+j+i
FinSi
Sino
Escribir (‘Error’)
Finsi
fil=fil+1
FinMientras
Mientras (fil<=25 Y f=1) Hacer
Si (M[fil,3]<>-1) Entonces
V1[f]= M[f,3]
acum3=acum3+ M[fil,3]
cont3=cont3+1
f=f+1
Si (tiempo>= 1200) Entonces
Prec3 = prec3+0
Sino
Si (tiempo <= 600) Entonces
i = (tiempo DIV 60)*3
j = (tiempo MOD 60)*1.50
prec3= prec3+ j+i
Sino
Si (tiempo>600 Y tiempo<1200) Entonces
tiempo=(tiempo-600)
i = (tiempo DIV 60)*2
j = (tiempo MOD 60)*1
prec3= prec3+ j+i+30
FinSi
FinSi
Finsi
Sino
Escribir (‘Error’)
Finsi
fil=fil+1
FinMientras
Prombasico= acum1/cont1
Promnormal= acum2/cont2
Promlujo= acum3/cont3
pago=prec1+prec2+prec3
Regresar ( )
FIN
Realizar la resta de dos números con decrementos de 1
Diagrama de flujo
Pseudocódigo
Nombre: decremento_de_dos_numeros
Variables: n1, n2, op, resta de tipo entero.
Inicio
Escribir (‘Escribe dos numeros’)
Leer (n1, n2)
resta = n1-n2
Para (op=n1 hasta resta decremento 1) hacer
Escribir (op)
Fin_Para
Fin
No
Si
Inicio
‘Escribe dos
numeros’
n1, n2
resta = n1-n2
Para
op= n1 hasta resta
decremento 1
op
Fin
Realizar la suma de dos números con incrementos de 1.
Diagrama de Flujo
Inicio
‘Escribe dos
numeros’
N1, N2
suma = N1+N2
Para
op = N1 hasta suma
Incremento 1
op
Fin
No
Si
Pseudocódigo
Nombre: incremento_de_dos_numeros
Variables: N1, N2, op, suma de tipo entero.
Inicio
Escribir (‘Escribe dos numeros’)
Leer (N1, N2)
resta = N1-N2
Para (op=N1 hasta suma incremento 1) hacer
Escribir (op)
Fin_Para
Fin
Realizar la multiplicación de dos números con sumas sucesivas.
Diagrama de flujo
Inicio
‘Escribe dos
numeros’
N1, N2
sum = 0
Para
op = 0 hasta N1-1
Incremento 1
sum = sum + N2
sum
No
Si
Fin
Pseudocódigo
Nombre: mult_de_dos_num_con_sumas
Variables: N1, N2, op, sum de tipo entero.
Inicio
Escribir (‘Escribe dos numeros’)
Leer (N1, N2)
sum = 0
Para (op = 0 hasta N1-1 incremento 1) hacer
sum = sum+N2
Escribir (sum)
Fin_Para
Fin
La sumatoria 
n
=
x
x
1
Diagrama de Flujo
Inicio
‘Escribe el numero
que será el final de
la sumatoria’
NF
sum = 0
Para
sumat = 1 hasta NF
Incremento 1
sum = sum + sumat
sum
No
Si
Fin
Pseudocódigo
Nombre: sumatoria
Variables: NF, sum, sumat de tipo entero.
Inicio
Escribir (‘Escribe el numero que será el fin de la sumatoria’)
Leer (NF)
sum=0
Para (sumat = 1hasta NF incremento 1) hacer
sum = sum+sumat
Escribir (sum)
Fin_Para
Fin
1.- Leer N números y contar cuántos son positivos, cuántos son negativos y cuántos son 0.
Nombre: contador_numeros
Variables: cn, pc, cc, N, proc de tipo entero. num de tipo real.
Inicio
cn=0
cp=0
cc=0
Escribir (‘Ingresa la cantidad de números a procesar’)
Leer (N)
Para (proc = 1 hasta N, incremento 1) hacer
Escribir (‘Ingresa el numero’)
Leer (num)
Si (num<0) entonces
cn=cn+1
Si_no
Si (num>0) entonces
cp=cp+1
Si_no
cc=cc+1
Fin_si
Fin_si
Fin_Para
Escribe (‘La cantidad de negativos es’, cn)
Escribe (‘La cantidad de positivos es’, cp)
Escribe (‘La cantidad de 0 es’, cc)
Fin
2.- Leer N números y obtener el promedio solamente de los números pares de la lista.
Nombre: Promedio_de_num_pares
Variables: N, cpar, de tipo entero. num, suma, prom, de tipo real.
Inicio
suma=0
cpar=0
Escribir (Íngresa la cantidad de números a procesar’)
Leer (N)
Para (cont = 1 hasta N, incremento 1) hacer
Escribir (‘Escribe el numero’)
Leer (num)
Si (num MOD 2 = 0) entonces
cpar=cpar+1
suma=suma+num
Fin_Si
Fin_Para
prom=suma/cpar
Escribir (‘El promedio de los números pares es’, prom)
Fin
3.- Generar los primeros N números.
Nombre: primeros_numeros
Variables: inicio, fin, cont tipo entero.
Inicio
Escribir (‘Dame el inicio’)
Leer (inicio)
Escribir (‘Dame el final’)
Leer (fin)
cont=1
Mientras (inicio<=fin)
cont= cont+1
Escribir (‘El numero generado es’, cont)
Fin_Mientras
Fin
4.- Verificar si un número dado es primo o no.
Nombre: num_primo
Variables: num, w, x, 0, acum tipo entero
Inicio
acum=0
Escribir (‘dame un numero’)
Leer (num)
Para(w=1 hasta num, incremento 1) hacer
x=num MOD w
si (x=0) entonces
acum = acum+1
Fin_si
Fin_Para
si (acum=2) entonces
Escribir (‘El numero es primo’)
si_no
Escribir (‘El numero no es primo’)
Fin_si
Fin
5.- Dados los valores de los lados de un triángulo.
Nombre: triangulo
Variables: L1, L2, L3 de tipo real.
Inicio
Escribir (‘Ingresa las medidas de los lados’)
Leer (L1, L2, L3)
Si (L1=L2 y L2=L3) entonces
Escribir (‘Es un triangulo equilatero’)
Si_no
Si (L1=L2 o L1=L3 o L2=L3) entonces
Escribir (‘Es un triangulo isosceles’)
Si_no
Si (L1<>L2 y L2<>L3 y L1<>L3) entonces
Escribir (‘Es un triangulo escaleno’)
Fin_Si
Fin_Si
Fin_Si
Fin
6.- Evaluar la sumatoria ∑ (xˆ2/2)
𝑛
𝑥=1
Nombre: sumatoria_al_cuadrado_div
Variables: suma de tipo real. n, cont de tipo entero.
Inicio
suma=0
Escribir (‘Indica hasta que numero llegara la sumatoria’)
Leer (n)
Para (cont=1 hasta n, incremento 1) hacer
suma = ((cont*cont)/2)+suma
Fin_Para
Escribir (‘La sumatoria es’, suma)
Fin
7.- Evaluar la sumatoria ∑ ((xˆ2) − 2)
𝑛
𝑥=1
Nombre: sumatoria_al_cuad_resta
Variables: acum de tipo real. cont, num de tipo entero.
Inicio
acum=0
Escribir (‘Indica hasta que numero llegara la sumatoria’)
Leer (num)
Para (cont=1 hasta num, incremento 1) hacer
acum= ((cont*cont)-2)+acum
Fin_Para
Escribir (‘La sumatoria es’, acum)
Fin
8.- Hacer diagrama de flujo y pseudocódigo para resolver el siguiente problema.
En un centro comercial se tiene la siguiente promoción. Si la compra hecha por el cliente es
más de $4000 se le deberá hacer un descuento de 20% sobre el total de la compra, si la
compra es más de $1000 o de $4000 o menor, se le hará un descuento del 10% sobre el
total de la compra, si la compra es de $1000 o menos de $1000 entonces se le hará un
descuento del 5%. Queremos saber cuánto será el total que debe pagar cada uno de los 20
clientes.
Inicio
Para
cont = 1 hasta 20
incremento 1
‘Ingresa la
cantidad de la
compra’
comp
comp>4000
4000>=comp Y
comp>1000
comp<=1000
total = comp-(comp*0.05)
total = comp-(comp*0.1)
'la compra total
es', total
Fin
total=comp-(comp*0.2)
Nombre: centro_comercial
Variables: cont de tipo entero. comp, total de tipo real.
Inicio
Para (cont = 1 hasta 20, incremento 1) hacer
Escribir (‘ingresa la cantidad de la compra’)
Leer (comp)
Si (comp>4000) entonces
total=comp-(comp*0.2)
Si_no
Si (4000>=comp Y comp>1000) entonces
total=comp-(comp*0.1)
Si_no
Si (comp<=1000)
total=comp-(comp*0.05) entonces
Fin_Si
Fin_Si
Fin_Si
Escribir (‘La compra total es’, total)
Fin Para
Fin
Problema 4.8
En un arreglo unidimensional se almacenan las calificaciones de N alumnos. Construya un
diagrama de flujo que permita calcular e imprimir lo siguiente:
a) Promedio general del grupo
b) Número de alumnos aprobados y número de alumnos reprobados (Si el alumno sacó una
calificación menos a 6 se le considera reprobado)
c) Porcentaje de alumnos aprobados y reprobados.
d) Número de alumnos cuya calificación fue mayor a 8.
Inicio
total = 0
reprob=0
aprob=0
Escribir('numero de alumnos')
Leer (n)
Para (grup= 1 hasta n, incremento 1)
total = total+calif(grup)
si (calif(grup) >= 6) entonces
aprob = aprob+1
si_no
si(calif(grup) < 6) entonces
reprob= reprob+1
fin_si
fin_si
fin_Para
ocho = 0
Para (grup=1 hasta n, incremento 1)
si (calif(grup) >8
ocho=ocho+1
fin_Para
porcrep= (reprob*100)/n
porcaprob= (aprob*100)/n
prom=total/n
Escribir('cantidad de alumnos con mas de ocho', ocho)
Escribir('prom del grupo', prom)
Escribir('porc aprob', porcaprob)
Escribir('porc de reprobados', porcrep)
Escribir('aprobados', aprob)
Escribir('reprobados', reprob)
Fin
Problema 4.1
Escriba un pseudocódigo que reciba como entrada un arreglo unidimensional ordenado de enteros
(posiblemente repetidos) y genere como salida una lista de los números enteros, pero sin
repeticiones.
Nombre: list.num.sn.rep
Variables: vec[pos] arreglo unidimensional de Tipo Entero
Pos,n,nrep, variables de Tipo Entero
Inicio
Escribir (‘ingresa el numero de casillas del arreglo’)
Leer (N)
Para (pos=1 Hasta N, incremento 1) Hacer
Escribir (‘Escribe el numero en la posicion’, pos)
Leer (num[pos])
Finpara
Escribir (‘Lista de los números sin repeticion’)
pos=1
Mientras (pos<=N) hacer
Escribir (num[pos])
repet=num[pos]
Mientras (pos<=N Y repet=num[pos]) hacer
pos=pos+1
Finmientras
Finmientras
Fin
Problema 4.2
Escriba un pseudocódigo que reciba como entrada un arreglo unidimensional desordenado de
enteros (posiblemente repetidos) y obtenga como salida ese mismo vector, pero sin repeticiones.
Problema 4.3
Supongamos que en una elección hubo 12 candidatos (con identificadores 1, 2, 3, … ,12). Por otra
parte, los votos para cada candidato se teclean de manera desorganizada como se muestra a
continuación:
1, 5, 7, 5, 1, 12, 10, 7, 1, 7, 5, 8, 1, 5, -1
Nota: El final de los datos está dado -1
Problema 4.4
Construya un diagrama de flujo para almacenar en un arreglo
Inicio
prim=0
Mientras (cprim<=30)
Escribir (‘Dame un numero’)
Leer (n)
Para (pos=1 Hasta n) Hacer
Si (n MOD pos=0) Entonces
prim=prim+1
Finsi
Finpara
Si (prim=2) Entonces
conta[prim]=n
cprim=cprim+1
Finsi
Finmientras
Fin
Problema 4.1
Escriba un pseudocódigo de flujo que reciba como entrada un arreglo unidimensional ordenado
de enteros (posiblemente repetidos) y genere como salida una lista de los números enteros,
pero sin repeticiones.
Nombre: num_sin_rep
Variables: vec[pos] arreglo tipo entero
pos, n, nrep, variables de Tipo Entero
Inicio
Escribir (‘Dame el tamaño de la matriz’)
Leer (n)
Para (pos=1 Hasta n, incremento 1) Hacer
Escribir (‘Ingresa los numeros’)
Leer (vec[pos])
Fin_Para
Escribir (‘Lista de números sin repeticiones’)
pos=1
Mientras (pos<=n) hacer
Escribir (vec[pos])
nrep=vec(pos)
Mientras (pos<=n Y nrep=vec(pos) Hacer
pos=pos+1
Fin_Mientras
Fin_Mientras
Fin
2.- El programa, dados los votos para los diferentes candidatos de una elección, obtiene el
número de votos de cada candidato al final de la elección, el candidato ganador, el número de
votos que obtuvo y el porcentaje correspondiente de total de la elección.
Nombre: votos.de.candidatos
Variables: vot[12] arreglo unidimensional de Tipo Entero
Pos,totvot,votgan,winner, variables de Tipo Entero y porcen de tipo Real
INICIO
Totvot=0
Para (pos=1 Hasta 12, incremento 1) Hacer
Escribir (‘Dame el # total de votos del candidato:’,pos)
Leer (vot[pos])
totvot=totvot+vot[pos])
Finpara
Escribir (‘'lista de candidatos y sus votos.')
Para (pos=1 Hasta 12, incremento 1) Hacer
Escribir ('candidato #:', pos, 'con el total de votos de:',vot[pos])
votgan=vot[pos]
winner=pos
Finpara
Para (pos=1 Hasta 12, incremento 1) Hacer
Si (vot(pos)>votgan)
votgan=vot[pos]
winner=pos
finsi
Finpara
porcen=votgan/totvot
Escribir ('el cadidato gadador es el #:',winner,'con el total de votos de:',votgan, 'y
con el porcentaje de:',porcen)
FIN
Problema 4.4
Construya un pseudocódigo para almacenar en un arreglo unidimensional los primeros 30
números primos. Al final imprima el arreglo correspondiente.
Nombre: num_primos
Variables: cont[n] arreglo tipo entero. prim, pos, cprim, n de tipo entero
Inicio
prim=0
Mientras (cprim<=30)
Escribir (‘Dame un numero’)
Leer (n)
Para (pos=1 Hasta n) Hacer
Si (n MOD pos=0) Entonces
prim=prim+1
Fin_Si
Fin_Para
Si (prim=2) Entonces
cont[prim]=n
cprim=cprim+1
Fin_Si
Fin_Mientras
Escribir(‘los primeros 30 numeros primos son’)
Para(cprim=1 hasta 30 incremento 1) hacer
Escribir(cont[prim])
Fin_Para
Fin
4.5 El programa ordena los elementos de un arreglo utilizando el método de inserción directa.
Nombre: orden_insercion
Variables: a[n] arreglo tipo entero. n, pos, x, y, k de tipo entero
Inicio
Escribir (‘Ingresa el tamaño de la matriz´)
Leer (n)
Para (pos=1 hasta n incremento 1) Hacer
Escribir ('ingrese el numero')
Leer (a[pos])
Fin_Para
Escribir (‘Arreglo ordenado’)
x=2
Mientras (x<=n)
aux=a[x]
y=x-1
Mientras (y>=1 Y k<a[y])
a[y+1]=a[y]
y=y-1
Fin_Mientras
a[y+1]=aux
x=x+1
Fin_Mientras
Para (x=1 Hasta n Incremento 1) Hacer
Escribir (a[x])
Fin_Para
Fin
4.6 El programa ordena los elementos de un arreglo utilizando el método de selección directa.
Nombre: seleccion_directa
Variables: d[n] arreglo tipo entero. n, pos, menor, j, k, i de tipo entero
Inicio
Escribir (‘Ingrese numero de elementos ´)
Leer (n)
Para (pos=1 hasta n incremento 1) hacer
Escribir ('ingrese los datos')
Leer (d[pos])
Fin_Para
i=1
Mientras (i<=n-1)
men=d[i]
k=i
j=i+1
Mientras (j<=n)
Si (d[j]<menor) Entonces
menor=d[j]
k=j
Fin_Si
j=j+1
Fin_Mientras
d[k]=d[i]
d[i]=menor
i=i+1
Fin_Mientras
Escribir (‘Arreglo ordenado’)
Para (i=1 Hasta n Incremento 1) Hacer
Escribir (d[i])
Fin_Para
Fin
4.7 El programa realiza búsqueda binaria sobre un arreglo unidimensional ordenado.
Nombre: busq_binaria
Variables: are[n] arreglo tipo entero n, pos, x, izq, der, centro, band de tipo entero
Inicio
Escribir (‘Dame el tamaño del arreglo´)
Leer (n)
Para (pos=1 Hasta n incremento 1) Hacer
Escribir ('ingrese los numeros’)
Leer (are[pos])
Finpara
Escribir (‘Ingresa el dato a buscar’)
Leer (x)
izq=1
der=n
band=1
Mientras (izq<=der) Y (band=1)
Center=(izq+der)/2
Si (x=are[centro] Entonces
band=0
Si_No
Si (x>are[centro]
izq=centro+1
Si_No
der=centro-1
Fin_Si
Fi_Si
Fin_Mientras
Si (band=1) Entonces
Escribir (‘El elemento no está en el arreglo’)
Si_No
Escribir (‘El elemento si está en el arreglo’)
Fin_Si
Fin
Problema 4.8
En un arreglo unidimensional se almacenan las calificaciones de N alumnos. Construya un diagrama
de flujo que permita calcular e imprimir lo siguiente:
a) Promedio general del grupo
b) Número de alumnos aprobados y número de alumnos reprobados (Si el alumno sacó una
calificación menos a 6 se le considera reprobado)
c) Porcentaje de alumnos aprobados y reprobados.
d) Número de alumnos cuya calificación fue mayor a 8.
Nombre: calificaciones_grupo
Variables: calif[grup] arreglo tipo real. total, prom, porcaprob, porcrep de tipo real. reprob, aprob, n,
ocho tipo entero.
Inicio
total = 0
reprob=0
aprob=0
Escribir('numero de alumnos')
Leer (n)
Para (grup=1 hasta n, incremento 1)
Escribir('ingrese la calificacion del alumno', grup)
Leer(calif[grup])
Fin_Para
Para (grup= 1 hasta n, incremento 1)
total = total+calif[grup]
si (calif[grup] >= 6) entonces
aprob = aprob+1
si_no
si(calif[grup] < 6) entonces
reprob= reprob+1
fin_si
fin_si
fin_Para
ocho = 0
Para (grup=1 hasta n, incremento 1)
si (calif[grup] >8
ocho=ocho+1
fin_Para
porcrep= (reprob*100)/n
porcaprob= (aprob*100)/n
prom=total/n
Escribir('cantidad de alumnos con mas de ocho', ocho)
Escribir('prom del grupo', prom)
Escribir('porc aprob', porcaprob)
Escribir('porc de reprobados', porcrep)
Escribir('aprobados', aprob)
Escribir('reprobados', reprob)
Fin

More Related Content

What's hot

Estructura de Datos : Ordenamiento Externo
Estructura de Datos : Ordenamiento Externo Estructura de Datos : Ordenamiento Externo
Estructura de Datos : Ordenamiento Externo Carlos Criollo
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)Rubi Veronica Chimal Cuxin
 
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)José Antonio Sandoval Acosta
 
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetosED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetosFranklin Parrales Bravo
 
Monitoreo de la temperatura del procesador, disco duro, mainboard
Monitoreo de la temperatura del procesador, disco duro, mainboardMonitoreo de la temperatura del procesador, disco duro, mainboard
Monitoreo de la temperatura del procesador, disco duro, mainboardDiego Torres
 
Uso de la función InputBox y MsgBox
Uso de la función InputBox y MsgBoxUso de la función InputBox y MsgBox
Uso de la función InputBox y MsgBoxLic. Rolando Torres
 
Eliminar elementos de una cola
Eliminar elementos de una colaEliminar elementos de una cola
Eliminar elementos de una colajeffersoncenteno
 
Ejemplos de pseudocodigos
Ejemplos de pseudocodigosEjemplos de pseudocodigos
Ejemplos de pseudocodigosTania Tellez
 

What's hot (20)

Latex
LatexLatex
Latex
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
 
Ciclo while y do while
Ciclo while y do whileCiclo while y do while
Ciclo while y do while
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Estructura de Datos : Ordenamiento Externo
Estructura de Datos : Ordenamiento Externo Estructura de Datos : Ordenamiento Externo
Estructura de Datos : Ordenamiento Externo
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
Informe técnico - Métodos de búsqueda Unidad 6 (Rubí Verónica)
 
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
 
Mergesort
MergesortMergesort
Mergesort
 
Manual allegro c++
Manual allegro c++Manual allegro c++
Manual allegro c++
 
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetosED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
 
Recursividad
RecursividadRecursividad
Recursividad
 
Monitoreo de la temperatura del procesador, disco duro, mainboard
Monitoreo de la temperatura del procesador, disco duro, mainboardMonitoreo de la temperatura del procesador, disco duro, mainboard
Monitoreo de la temperatura del procesador, disco duro, mainboard
 
Algoritmos de ordenamiento externos
Algoritmos de ordenamiento externosAlgoritmos de ordenamiento externos
Algoritmos de ordenamiento externos
 
Uso de la función InputBox y MsgBox
Uso de la función InputBox y MsgBoxUso de la función InputBox y MsgBox
Uso de la función InputBox y MsgBox
 
Truquillos LaTeX
Truquillos LaTeXTruquillos LaTeX
Truquillos LaTeX
 
Eliminar elementos de una cola
Eliminar elementos de una colaEliminar elementos de una cola
Eliminar elementos de una cola
 
Ejemplos de pseudocodigos
Ejemplos de pseudocodigosEjemplos de pseudocodigos
Ejemplos de pseudocodigos
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 

Similar to Ejer

1582627
15826271582627
1582627tabish
 
List Processing in ABAP
List Processing in ABAPList Processing in ABAP
List Processing in ABAPsapdocs. info
 
Practical File waale code.pdf
Practical File waale code.pdfPractical File waale code.pdf
Practical File waale code.pdfFriendsStationary
 
Course project solutions 2019
Course project solutions 2019Course project solutions 2019
Course project solutions 2019Robert Geofroy
 
Python programs - PPT file (Polytechnics)
Python programs - PPT file (Polytechnics)Python programs - PPT file (Polytechnics)
Python programs - PPT file (Polytechnics)SHAMJITH KM
 
Python programs - first semester computer lab manual (polytechnics)
Python programs - first semester computer lab manual (polytechnics)Python programs - first semester computer lab manual (polytechnics)
Python programs - first semester computer lab manual (polytechnics)SHAMJITH KM
 
Answers To Selected Exercises For Fortran 90 95 For Scientists And Engineers
Answers To Selected Exercises For Fortran 90 95 For Scientists And EngineersAnswers To Selected Exercises For Fortran 90 95 For Scientists And Engineers
Answers To Selected Exercises For Fortran 90 95 For Scientists And EngineersSheila Sinclair
 
List Processing in ABAP
List Processing in ABAPList Processing in ABAP
List Processing in ABAPsapdocs. info
 
tutorial5.ppt
tutorial5.ppttutorial5.ppt
tutorial5.pptjvjfvvoa
 
8 arrays and pointers
8  arrays and pointers8  arrays and pointers
8 arrays and pointersMomenMostafa
 
INSTRUCTIONS Please organize your answers as a Word document with.docx
INSTRUCTIONS Please organize your answers as a Word document with.docxINSTRUCTIONS Please organize your answers as a Word document with.docx
INSTRUCTIONS Please organize your answers as a Word document with.docxdirkrplav
 
5. R basics
5. R basics5. R basics
5. R basicsFAO
 
OverviewThis hands-on lab allows you to follow and experiment w.docx
OverviewThis hands-on lab allows you to follow and experiment w.docxOverviewThis hands-on lab allows you to follow and experiment w.docx
OverviewThis hands-on lab allows you to follow and experiment w.docxgerardkortney
 
#include iostream#includectimeusing namespace std;void.docx
#include iostream#includectimeusing namespace std;void.docx#include iostream#includectimeusing namespace std;void.docx
#include iostream#includectimeusing namespace std;void.docxmayank272369
 
MATH133 UNIT 2 Quadratic EquationsIndividual Project Assignment.docx
MATH133 UNIT 2 Quadratic EquationsIndividual Project Assignment.docxMATH133 UNIT 2 Quadratic EquationsIndividual Project Assignment.docx
MATH133 UNIT 2 Quadratic EquationsIndividual Project Assignment.docxandreecapon
 
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_08-08-2022_C_...
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_08-08-2022_C_...FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_08-08-2022_C_...
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_08-08-2022_C_...AntareepMajumder
 

Similar to Ejer (20)

1582627
15826271582627
1582627
 
List Processing in ABAP
List Processing in ABAPList Processing in ABAP
List Processing in ABAP
 
Practical File waale code.pdf
Practical File waale code.pdfPractical File waale code.pdf
Practical File waale code.pdf
 
Course project solutions 2019
Course project solutions 2019Course project solutions 2019
Course project solutions 2019
 
Python programs - PPT file (Polytechnics)
Python programs - PPT file (Polytechnics)Python programs - PPT file (Polytechnics)
Python programs - PPT file (Polytechnics)
 
Programs.doc
Programs.docPrograms.doc
Programs.doc
 
AI-Programs.pdf
AI-Programs.pdfAI-Programs.pdf
AI-Programs.pdf
 
Python programs - first semester computer lab manual (polytechnics)
Python programs - first semester computer lab manual (polytechnics)Python programs - first semester computer lab manual (polytechnics)
Python programs - first semester computer lab manual (polytechnics)
 
Answers To Selected Exercises For Fortran 90 95 For Scientists And Engineers
Answers To Selected Exercises For Fortran 90 95 For Scientists And EngineersAnswers To Selected Exercises For Fortran 90 95 For Scientists And Engineers
Answers To Selected Exercises For Fortran 90 95 For Scientists And Engineers
 
List Processing in ABAP
List Processing in ABAPList Processing in ABAP
List Processing in ABAP
 
tutorial5.ppt
tutorial5.ppttutorial5.ppt
tutorial5.ppt
 
8 arrays and pointers
8  arrays and pointers8  arrays and pointers
8 arrays and pointers
 
INSTRUCTIONS Please organize your answers as a Word document with.docx
INSTRUCTIONS Please organize your answers as a Word document with.docxINSTRUCTIONS Please organize your answers as a Word document with.docx
INSTRUCTIONS Please organize your answers as a Word document with.docx
 
5. R basics
5. R basics5. R basics
5. R basics
 
Problem solving and design
Problem solving and designProblem solving and design
Problem solving and design
 
OverviewThis hands-on lab allows you to follow and experiment w.docx
OverviewThis hands-on lab allows you to follow and experiment w.docxOverviewThis hands-on lab allows you to follow and experiment w.docx
OverviewThis hands-on lab allows you to follow and experiment w.docx
 
#include iostream#includectimeusing namespace std;void.docx
#include iostream#includectimeusing namespace std;void.docx#include iostream#includectimeusing namespace std;void.docx
#include iostream#includectimeusing namespace std;void.docx
 
MATH133 UNIT 2 Quadratic EquationsIndividual Project Assignment.docx
MATH133 UNIT 2 Quadratic EquationsIndividual Project Assignment.docxMATH133 UNIT 2 Quadratic EquationsIndividual Project Assignment.docx
MATH133 UNIT 2 Quadratic EquationsIndividual Project Assignment.docx
 
algorithm
algorithmalgorithm
algorithm
 
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_08-08-2022_C_...
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_08-08-2022_C_...FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_08-08-2022_C_...
FALLSEM2022-23_BCSE202L_TH_VL2022230103292_Reference_Material_I_08-08-2022_C_...
 

More from Spacetoshare

Probles on Algorithms
Probles on AlgorithmsProbles on Algorithms
Probles on AlgorithmsSpacetoshare
 
Manual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosManual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosSpacetoshare
 
Inducción matemática
Inducción matemáticaInducción matemática
Inducción matemáticaSpacetoshare
 
Ejercicios Investigación de operaciones
Ejercicios Investigación de operacionesEjercicios Investigación de operaciones
Ejercicios Investigación de operacionesSpacetoshare
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamientoSpacetoshare
 
Como escribir tesis
Como escribir tesisComo escribir tesis
Como escribir tesisSpacetoshare
 
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOS
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOSCOMPONENTES BÁSICOS DE UN SISTEMA MS-DOS
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOSSpacetoshare
 
Curso básico de Ensamblador
Curso básico de EnsambladorCurso básico de Ensamblador
Curso básico de EnsambladorSpacetoshare
 
Ejercicios álgebra superior
Ejercicios álgebra superiorEjercicios álgebra superior
Ejercicios álgebra superiorSpacetoshare
 
INDUCCIÓN MATEMÁTICA
INDUCCIÓN MATEMÁTICA INDUCCIÓN MATEMÁTICA
INDUCCIÓN MATEMÁTICA Spacetoshare
 
Sistemas de ecuaciones
Sistemas de ecuacionesSistemas de ecuaciones
Sistemas de ecuacionesSpacetoshare
 
Inducción matemática
Inducción matemáticaInducción matemática
Inducción matemáticaSpacetoshare
 
Tareas números complejos
Tareas números complejosTareas números complejos
Tareas números complejosSpacetoshare
 
Notas metodologia de la programación
Notas metodologia de la programaciónNotas metodologia de la programación
Notas metodologia de la programaciónSpacetoshare
 

More from Spacetoshare (20)

EL HUECO.pdf
EL HUECO.pdfEL HUECO.pdf
EL HUECO.pdf
 
Probles on Algorithms
Probles on AlgorithmsProbles on Algorithms
Probles on Algorithms
 
Sums ADA
Sums ADASums ADA
Sums ADA
 
Manual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosManual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmos
 
Inducción matemática
Inducción matemáticaInducción matemática
Inducción matemática
 
Fórmulas ADA
Fórmulas ADAFórmulas ADA
Fórmulas ADA
 
Ejercicios Investigación de operaciones
Ejercicios Investigación de operacionesEjercicios Investigación de operaciones
Ejercicios Investigación de operaciones
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 
Ejercicios jess
Ejercicios jessEjercicios jess
Ejercicios jess
 
Sistemas Expertos
Sistemas ExpertosSistemas Expertos
Sistemas Expertos
 
Como escribir tesis
Como escribir tesisComo escribir tesis
Como escribir tesis
 
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOS
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOSCOMPONENTES BÁSICOS DE UN SISTEMA MS-DOS
COMPONENTES BÁSICOS DE UN SISTEMA MS-DOS
 
Curso básico de Ensamblador
Curso básico de EnsambladorCurso básico de Ensamblador
Curso básico de Ensamblador
 
Ejercicios álgebra superior
Ejercicios álgebra superiorEjercicios álgebra superior
Ejercicios álgebra superior
 
INDUCCIÓN MATEMÁTICA
INDUCCIÓN MATEMÁTICA INDUCCIÓN MATEMÁTICA
INDUCCIÓN MATEMÁTICA
 
Sistemas de ecuaciones
Sistemas de ecuacionesSistemas de ecuaciones
Sistemas de ecuaciones
 
Determinantes
DeterminantesDeterminantes
Determinantes
 
Inducción matemática
Inducción matemáticaInducción matemática
Inducción matemática
 
Tareas números complejos
Tareas números complejosTareas números complejos
Tareas números complejos
 
Notas metodologia de la programación
Notas metodologia de la programaciónNotas metodologia de la programación
Notas metodologia de la programación
 

Ejer

  • 1. Ejercicios de metodología de la programación
  • 2. Hacer un algoritmo que permita calcular las siguientes áreas para las siguientes figuras: Triangulo, rectángulo, cuadrado, círculo y hexágono. DIAGRAMA DE FLUJO. Estructura de repetición PARA Inicio ‘A. Calcula Área de Triangulo. B. Calcula Área de Rectángulo. C. Calcula Área de Cuadrado. D. Calcula Área de Circulo. E. Calcula Área de Hexagono.’ ‘De que figura desea calcular su area?’ figura area=base*altura/2 area=base**2 area=base*altura area=3.1416*radio**2 area=peri*ap/2 figura A B C D E base,altura base,altura base radio Peri,ap ‘El área de la figura es:’,area ‘Introduzca base y altura del Triangulo’ ‘Introduzca base y altura del Rectangulo’ ‘Introduzca base del cuadrado’ ‘Introduzca el radio del Circulo’ ‘Introduzca perímetro y apotema del hexágono’ PARA Cont=1 a 10 Incremento 1 si FIn NO
  • 3. PSEUDOCODIGO. Nombre: Calculo_de_areas_de_figuras. Variables: [base, altura, radio, peri, ap, área: son variables de tipo real] [cont: es variable de tipo entero] INICIO Para (cont=1 hasta 10 incremento 1) hacer Escribir (‘A. calcula área de triangulo B. calcula área de rectángulo C. calcula área de cuadrado D. calcula área de círculo E. calcula área de hexágono’) Escribir (‘De que figura desea calcular su área?’) Leer (figura) Según (figura) Sea Caso ‘A’: Escribir (‘Introduzca la base y la altura del Triangulo’) Leer (base, altura) area=base*altura/2 Caso ‘B’: Escribir (‘Introduzca la base y la altura del Rectángulo’) Leer(base, altura) area=base*altura Caso ‘C’: Escribir (‘Introduzca la base del Cuadrado’) Leer (base) area=base**2 Caso ‘D’: Escribir (‘Introduzca el radio del Circulo’) Leer (radio) area=3.1416*radio**2 Caso ‘E’: Escribir (‘Introduzca el perímetro y la apotema del Hexágono’) Leer (peri, ap) area=peri*ap/2 Escribir (‘el área de la figura es:’, área) Si_no Escribir (‘letra, numero o símbolo erróneo’) Fin_segun Fin_para FIN
  • 4. Hacer un algoritmo que permita calcular las siguientes áreas para las siguientes figuras: Triangulo, rectángulo, cuadrado, círculo y hexágono. DIAGRAMA DE FLUJO. Estructura de repetición MIENTRAS Inicio ‘A. Calcula Área de Triangulo. B. Calcula Área de Rectángulo. C. Calcula Área de Cuadrado. D. Calcula Área de Circulo. E. Calcula Área de Hexagono.’ ‘De que figura desea calcular su area?’ figura area=base*altura/2 area=base**2 area=base*altura area=3.1416*radio**2 area=peri*ap/2 figura A B C D E base,altura base,altura base radio Peri,ap ‘El área de la figura es:’,area ‘Introduzca base y altura del Triangulo’ ‘Introduzca base y altura del Rectangulo’ ‘Introduzca base del cuadrado’ ‘Introduzca el radio del Circulo’ ‘Introduzca perímetro y apotema del hexágono’ MIENTRAS cont<=num si FIn Cont=1 ‘cuantas veces deseas realizar calculo de areas?’ num cont=cont+1 NO
  • 5. PSEUDOCODIGO. Nombre: Calculo_de_areas_de_figuras. Variables: [base, altura, radio, peri, ap, área: son variables de tipo real] [cont,num:son varibles de tipo enterol] INICIO Escribir (‘cuantas veces deseas realizar cálculo de áreas’) Leer (num) cont=1 Mientras (cont<=num) Escribir (‘A. calcula área de triangulo B. calcula área de rectángulo C. calcula área de cuadrado D. calcula área de círculo E. calcula área de hexágono’) Escribir (‘De que figura desea calcular su área?’) Leer (figura) Según (figura) Sea Caso ‘A’: Escribir (‘Introduzca la base y la altura del Triangulo’) Leer (base, altura) area=base*altura/2 Caso ‘B’: Escribir (‘Introduzca la base y la altura del Rectángulo’) Leer(base, altura) area=base*altura Caso ‘C’: Escribir (‘Introduzca la base del Cuadrado’) Leer (base) area=base**2 Caso ‘D’: Escribir (‘Introduzca el radio del Circulo’) Leer (radio) area=3.1416*radio**2 Caso ‘E’: Escribir (‘Introduzca el perímetro y la apotema del Hexágono’) Leer (peri, ap) area=peri*ap/2 Escribir (‘el área de la figura es:’, área) Si_no Escribir (‘letra, numero o símbolo erróneo’) Fin_segun cont=cont+1 Fin_mientras FIN
  • 6. Hacer que llene un vector con 30 caracteres. Recorrer el arreglo para contar cuántas a’s hay en el arreglo. Nombre: contar_a Variables: con(30), cont_a, pos. Inicio cont_a = 0 Para (pos=1 hasta 30, incremento 1) hacer Escribir (‘Ingresa los caracteres’) Leer (con[pos]) Fin_Para Para (pos=1 hasta 30, incremento 1) hacer Si(con[pos] = ‘a’) entonces cont_a = cont_a + 1 Fin_Si Fin_Para Escribir (‘La cantidad de a es’, cont_a) Fin
  • 7. Dado 3 calificaciones analizarlas y si la calificación es mayor que 8 pero menor que 9 entonces deberás subirle 1 punto a dicha calificación. DIAGRAMA DE FLUJO. NO SI NO SI NO SI INICIO cal1, cal2, cal3 Cal1<=8 Y cal1<9 Cal1=cal1+1 Cal1 Cal2<=8 Y cal2<9 Cal2=cal2+1 Cal2 Cal3<=8 Y cal3<9 Cal3=cal3+1 Cal3 FIN
  • 8. PSEUDOCODIGO. INICIO LEER (cal1, cal2, cal3) SI cal1>=8 Y cal1<9 ENTONCES Cal1=cal1+1 ESCRIBIR (cal1) FINSI SI cal2>=8 Y cal2<9 ENTONCES Cal2=cal2+1 ESCRIBIR (cal2) FINSI SI cal3>=8 Y cal3<9 ENTONCES Cal3=ca3+1 ESCRIBIR (cal3) FINSI FIN
  • 9. Analisis Nombre: números_sin_repeticion Estructura: para, decisión simple,areglo, mientras Variables: n, Nr, Ag, num, tipo entero Are_1 [500], Are_2 [500] cadena tipo entero Datos de entrada: n, num tipo entero Datos de salida: Are_2 cadena Inicio Escrribir (‘dame la cantidad de numeros a procesar’) Leer (n) Para (cont =1 hasta n incremento 1) hacer Are_2[cont] = 0 Nr = Nr +1 Fin para Nr = 1 Ag = 1 Si num > 1 y num < 500 Para (cont =1 hasta n incremento 1) hacer Escribir (‘dame un numero’) Leer (num) Are_1[cont] = num Fin si Fin_ para Para (cont=1 hasta n incremento 1) hacer Para (su=1 hasta n incremento 1) hacer Si Are_1[cont] = Are_2[su] Nr = Nr +1 Si_no Mientras (Nr < 2) hacer Si Are_2[Ag] = are_1[cont] Ag = Ag +1 Si_no Nr=1 Fin_mientras Fin_para Fin_para Ag = Ag +1 Para (cont =1 hasta Ag incremento 1) hacer Escribir (Are_2[cont]) Si_no Escribir (‘el numero no se puede procesar’) Fin
  • 10. Problema 4.14 Se tienen los costos de producción de tres departamentos (dulces, bebidas y conservas), correspondientes a los 12 meses del año anterior. Construya un pseudocódigo que pueda proporcionar la siguiente información: a.- ¿En qué mes se registró el mayor costo de producción de dulces? b.- Promedio anual de los costos de producción de bebidas. c.- ¿En qué mes se registró el mayor costo de producción en bebidas, y en qué mes el menor costo? d.- ¿Cuál fue el rubro que tuvo el menor costo de producción en diciembre? Nombre: costo_prod Variables: A[dep,mes], mayprod, mes, MEES, mesmay, mesmen, maybeb, menbeb, depa tipo entero. vmax, sum, prom, de tipo real Inicio vmax = 0 Escribir 'Significado de los numeros', '1=dulces, 2=bebidas, 3=conservas' Para (dep = 1 hasta 3 incremento 1) hacer Para (mes = 1 hasta 12 incremento 1) hacer Escribir ('ingresa los costos de producción de', dep, 'en el mes', mes) Leer (A[dep,mes]) Fin_Para Fin_Para mayprod =A[1,1] mes = 1 MEES=1 Mientras (mes<=12) hacer Si (mayprod < A[1,mes]) entonces mayprod=A[1,mes] MEES=mes Fin_Si mes=mes+1 Fin_Mientras Escribir ('mayor produccion de dulces', mayprod, 'en el mes', MEES) sum=0 Para (mes = 1 hasta 12 incremento 1) hacer sum=sum+A[2,mes] Fin_Para prom=prom/12 Escribir ('promedio anual de costos de bebidas', prom) mesmay=1 mesmen=1 maybeb=A[2,1] menbeb=A[2,1] Si (maybeb < A[2,mes] entonces maybeb=A[2,mes] mesmay=mes si_no Si menbeb > A[mes,2] entonces menbeb=A[2,mes] mesmen=men Fin_Si Fin_Si Escribir ('en el mes', mesmay, 'se registro el mayor costo de produccion de bebidas, y en el mes', mesmen, 'el menor costo') Para (dep=1 hasta 3 incremento 1) hacer Si (mesmen>A[dep, 12] hacer mesmen = A[dep,12] depa=dep Fin_si Fin_Para Escribir (‘El departamento’, depa, ‘tuvo el menor costo en diciembre’) Fin
  • 11. Problema 4.16 Sean A(MxN) y B(N) arreglos de dos y una dimensión, respectivamente. Construya un diagrama de flujo que asigne valores a B, a partir de A, teniendo en cuenta los siguientes criterios: a.- B[nfil] = ∑ 𝑨[𝒏𝒇𝒊𝒍, 𝒏𝒄𝒐𝒍] 𝒄𝒐𝒍 𝒏𝒄𝒐𝒍=𝒊 Si nfil es impar b.- B[nfil] = ∑ 𝑨[𝒏𝒇𝒊𝒍 − 𝟏, 𝒏𝒄𝒐𝒍] 𝒄𝒐𝒍 𝒏𝒄𝒐𝒍=𝒊 Si nfil es par Nombre: arreglos_uni_bi Variables: col, fil, total, nfil, ncol de tipo entero. A[nfil,ncol], B[fil] tipo real. Inicio Escribir(‘Ingrese numero de columnas de la matriz’) Leer(col) Escribir(‘Ingrese numero de filas de la matriz’) Leer(fil) total=(fil*col) Escribir(´Ingresa los’, total, ‘datos’) Para (nfil=1 hasta fil incremento 1) hacer Para (ncol=1 hasta col incremento 1) hacer Leer(A[nfil,ncol]) Fin_Para Fin_Para Para (nfil=1 hsata fil incremento 1) hacer Si (nfil MOD 2 = 0) entonces B[fil]= 0 ncol=1 Para (ncol= 1 hasta col incremento 1) hacer B[fil]=B[fil]+(A[nfil,ncol]*A[nfil-1,ncol]) Fin_Para Si_no B[fil]=0 ncol=1 Para (ncol=1 hasta col incremento 1) hacer B[fil]=B[fil]+A[nfil,ncol] Fin_Para Fin_Si Fin_Para Escribir(‘Este es el arreglo unidimensional’) Para (nfil=1 hasta fil incremento 1) hacer Escribir (B[fil]) Fin_Para Fin
  • 12. Problema 4.15 Una empresa automotriz necesita un programa para manejar los montos de ventas de sus N sucursales, a lo largo de los últimos M años. La información que necesitan los directores de la empresa para tomar decisiones es la siguiente: a) Sucursal que mas vendió en los M años b) Promedio de ventas por año. c) Año con mayor promedio de ventas. Nombre: empresa_auto Variables: suc, anios, a, b de tipo entero. monto[a,b], maxi, sum, prom de tipo real Inicio Escribir ('Ingresa el numero de sucursales') Leer (suc) Escribir ('Dame el número de años') Leer (anios) Para (a=1 Hasta anios incremento 1) Hacer Para (b=1 Hasta suc incremento 1) Hacer Escribir ('Dame el monto de venta de la sucursal', b, 'en el año', a) Leer(monto[a,b]) Finpara Finpara maxi=0 Para (a=1 Hasta suc incremento 1) Hacer sum=0 Para (b=1 Hasta anios incremento 1) Hacer sum= sum+monto[a,b] Fin_Para Si (sum>maxi) maxi=sum sucmax=a Fin_Para Escribir ('la sucursal que con mas ventas', sucmax, 'con un total de', maxi) max=0 Para (a=1 Hasta anios incremento 1) Hacer sum=0 Para (b=1 Hasta suc incremento 1) Hacer sum= sum+monto[a,b] Fin_Para prom= sum/anios Escribir ('el promedio de ventas en el año', a, 'es de', prom) Si (prom>maxi) Entonces maxi=prom anios=a Finsi Finpara Escribir ('Año con mayo promedio es el',anios) Fin Problema 4.12 Dada una matriz cuadrada A, construya un diagrama de flujo que permita determinar si dicha matriz es simétrica. Se considera que una matriz es simetrica si A[i,j] = A[j,i] y esto se cumple para todos los elementos de i,j de la matriz. Nombre: matriz_sim_no_sim Variables: n, fil, col, band, a de tipo entero. s[fil, col], s[col,fil] tipo real. Inicio Escribir (‘Dame el tamaño de la matriz’) Leer (n) Para (fil=1 Hasta n incremento 1) Hacer Para (col=1 Hasta n incremento 1) Hacer Escribir (‘Dame el elemento’,fil,col) Leer(s[fil,col]) Fin_Para
  • 13. Fin_Para band=1 cont=1 Mientras (cont<=n Y band=1) Hacer a=1 Mientras (a<=1-1 Y band=1) Si ( s[fil,col]=s[col,fil] )Entonces a=a+1 Sino band=0 Fin_Si Fin_Mientras cont=cont+1 Finmientras Si (band=1) Entonces Escribir (‘si es simetrica’) Sino Escribir (‘No es simetrica’) Finsi FIN
  • 14. Hacer un algoritmo que permita dar el resultado del área(π*r^2), perímetro(2πr) y el diámetro(2r) de una circunferencia. real perimetro(real r) Inicio result de tipo real result = (2*3.1416)*r regresa (result) fin_perimetro real area(real r) Inicio result de tipo real result = (r*r)*3.1416 regresa (result) fin_perimetro real diametro(real r) Inicio result de tipo real result = 2*r regresa (result) fin_diametro Nombre: circulo Variables: r, opci, resultado de tipo real. Inicio Escribir(‘Operaciones disponibles’) Escribir(‘1. Obtener perímetro, 2. Obtener área, 3. Obtener diametro’) Escribir(‘Elige la opción’) Leer(opci) Escribir(‘ingresa el valor del radio’) Leer(r) Segun(opci) sea Caso1: resultado = perimetro(r) Caso1: resultado = area(r) Caso1: resultado = diametro(r) si_no: Escribir(‘no se puede realizar esta opción’) fin_Segun Escribir(‘El resultado obtenido es’, resultado) Fin
  • 15. El programa, dada una matriz cuadrada, determinar si es simétrica PSEUDOCODIGO Nombre: calificaciones.de.alumnos. Variables: INICIO Escribir (‘Dame el tamaño de la matriz’) Leer (n) Para (fil=1 Hasta n incremento 1) Hacer Para (col=1 Hasta n incremento 1) Hacer Escribir (‘Dame el elemento’,fil,col) Leer(m[fil,col]) Finpara Finpara Brake=1 Cont=1 Mientras (cont<=n Y brake=1) Hacer aux=1 Mientras (aux<=1-1 Y brake=1) Si ( m[fil,col]=m[col,fil] )Entonces aux=aux+1 Sino brake=0 Finsi Finmientras Cont=cont+1 Finmientras Si (brake=1) Entonces Escribir (‘si es simetrica’) Sino Escribir (‘No es simetrica’) Finsi FIN
  • 16. 1.- Llenar una matriz de 30 elementos de tipo entero, posteriormente solicitar al usuario un numero entero para que sea buscado en dicha matriz, si el número fue encontrado deberá imprimir la posición en la que se encontró, pero sino fue encontrado el elemento, imprimir ‘no fue encontrado el elemento’, la búsqueda aplica para el primer elemento. Nombre: busqueda Variables: band, fil, col, bus, M[fil,col] de tipo entero. Inicio band=0 Escribir(‘ingresa 30 numeros’) Para (fil = 1 hasta 5 incremento 1) hacer Para (col=1 hasta 6 incremento 1) hacer Leer (M[fil,col] Fin_Para Fin_Para Escribir (‘¿Qué numero desea buscar?’) Leer(bus) Para (fil = 1 hasta 5 incremento 1) hacer Para (col=1 hasta 6 incremento 1) hacer Si(bus=M[fil,col]) Escribir(‘El elemento’, bus, ‘fue encontrado en’, fil, col) col=7 fil=6 band=1 Fin_Si Fin_Para Fin_Para Si (band=0) Escribir(‘el elemento no fue encontrado’) Fin_Si Fin
  • 17. i 2.- Llenar una matriz de 4x4 de números enteros y posteriormente verificar si la matriz es una matriz identidad. Nombre: matriz_identidad Variables: n, total, fil, col, acum, M[fil,col] de tipo entero. Inicio acum=0 Escribir(‘Ingresa el número de casillas del lado de la matriz’) Leer(n) total=n*n Escribir(‘Ingresa los’, total, ‘numeros’) Para (fil = 1 hasta n incremento 1) hacer Para (col=1 hasta n incremento 1) hacer Si (M[fil,col]=1 Y fil=col) acum=acum+1 Fin_Si Fin_Para Fin_Para Si (acum=n) Escribir (‘La matriz es una matriz identidad’) Si_No Escribir(‘La matriz no es una matriz identidad’) Fin_Si Fin
  • 18. 3.- Llenar una matriz de 3x3 de números enteros y posteriormente verificar si la matriz es triangular superior. Nombre: matriz_triangular_sup Variables: n, col, fil, band, M[fil,col] de tipo entero. Inicio band=0 Escribir('ingresa el tamaño del lado de la matriz') Leer (n) total=n*n Escribir('ingresa los numeros', total) Para (fil=1 hasta n incremento 1) hacer Para (col=1 hasta n incremento 1) hacer Leer (M[fil,col]) Fin_Para Fin_Para Para (fil= n-1 hasta n incremento 1) hacer Para (col= 1 hasta n-1 incremento 1) hacer Si (fil<>col Y M[fil,col]=0) band=1 Fin_Si Fin_Para Fin_Para Si (band=0) Escribir('no es una matriz triangular superior') Si_No Escribir('es una matriz transpuesta') Fin_Si Fin
  • 19. 4.- Llenar una matriz de 5x5 números enteros y posteriormente encontrar la matriz transpuesta. Nombre: matriz_trans Variables: M[fil, col], T[col,fil], n, total tipo entero. Inicio Escribir('ingresa la cantidad de casillas del lado de la matriz') Leer (n) total=n*n Escribir('ingresa los', total, 'numeros') Para (fil = 1 hasta n incremento 1) hacer Para (col = 1 hasta n incremento 1) hacer Leer(M[fil,col]) Fin_Para Fin_Para Para (fil = 1 hasta n incremento 1) hacer Para (col = 1 hasta n incremento 1) hacer T[col, fil] = M[fil, col] Fin_Para Fin_Para Escribir(‘La transpuesta de la matriz es’) Para (fil = 1 hasta n incremento 1) hacer Para (col = 1 hasta n incremento 1) hacer Escribir(T[col, fil]) Fin_Para Fin_Para
  • 20. Hacer un algoritmo para los siguientes problemas. Suponemos que la NASA tiene el siguiente problema: desea almacenar el nombre del planeta y la posición que ocupa en el sistema solar cada planeta. Posteriormente desea saber cuál fue el planeta que se movió más rápidamente, considerando que su velocidad depende de la posición que ocupa en el sistema solar, es decir ésta se calcula como 2/3 de la posición que ocupa en el Sistema. Nombre: NASA Variables: i, nom[9] de tipo entero. Inicio rapido=0 Para (i = 1 hasta 9 incremento 1) hacer Escribir (‘indica la posición en la que se encuentra el planeta’, i) Leer (nom[i]) Fin_Para Para (i = 1 hasta 9 incremento 1) hacer nom[i]=(nom[i]*2)/3 Fin_Para Para (i = 1 hasta 9 incremento 1) hacer Si (nom[i]>rapido) entonces rapido=nom[i] nombre=[i] Fin_Si Fin_Para Escribir (‘El planeta’, nombre, ‘es el mas rapido con una velocidad de’, rapido) Fin
  • 21. Hacer el pseudocódigo para almacenar 20 numero enteros y posteriormente tomar los números positivos, hacerlos negativos y llevarlos a un segundo vector, de igual manera para los números negativos. Nombre: cambio_de_signo Variables: num[20], camb[20], llenado de tipo entero. Inicio Para (llenado = 1 hasta 20 incremento 1) hacer Escribir (‘ingresa un numero, positivo, negativo o 0’) Leer (num[llenado]) Fin_Para Para (llenado= 1 hasta 20 incremento 1) hacer Si (num[llenado]<>0) entonces camb[llenado]=num[llenado]*-1 Si_no camb[llenado]=num[llenado] Fin_Si Fin_Para Para (llenado= 1 hasta 20 incremento 1) hacer Escribir(‘Ahora el valor en la posición’, llenado, ‘es’, camb[llenado]) Fin_Para Fin
  • 22. Hacer el pseudocódigo para resolver el siguiente problema. Dada una matriz de tamaño 10x10 de números enteros. Implementar un modulo que se encargue de revisar si la matriz es matriz triangular superior, de ser así debe escribir un 1, o un 0 si no lo es. entero *revisar(entero M[10,10]) Variables: M[10,10] de tipo entero, n, f, c, band de tipo entero Inicio band=0 Para(f= 9 hasta 10 incremento 1) hacer Para(c= 1 hasta 9 incremento 1) hacer Si (fil<>col Y M[fil,col]=0 band=1 Fin_Si Fin_Para Fin_Para Si(band=0) n=0 Si_no n=1 Fin_Si Fin_Para regresa(n) Fin Nombre: matriz_sup_triangular Variables: M[10,10] tipo entero, n, fil, col tipo entero Inicio Escribir(‘ingresa 100 numeros’) Para(fil=1 hasta 10 incremento 1) hacer Para(col=1 hasta 10 incremento 1) hacer Leer(M[fil,col]) Fin_Para Fin_Para Si (revisar(M[10,10]) = 1) entonces Escribir(‘La matriz es una matriz superior triangular’) Si_no Escribir(‘La matriz no es una matriz superior triangular’) Fin_Si Fin
  • 23. Entregar la documentación correspondiente al pseudocódigo para dar solución al siguiente problema. Una compañía telefónica maneja 3 tipos de llamadas (básicas, normal y de lujo) y desea saber el promedio de cada tipo de llamada. La compañía desea almacenar la siguiente información: por cada tipo de llamada el tiempo que duro esta, también desea mostrar el tipo, número y tiempo de la llamada, finalmente la compañía desea modificar la información (tiempo y tipo de llamada), considera lo siguiente: 1) La llamada básica cada hr se cobra a $2 y por cada minuto extra se cobra $1 2) Llamada normal cada hr se cobra $1 y por cada minuto extra se cobra 50 c 3) Llamada de lujo: a) Si son más de 20 hrs o 20 no se cobra nada b) Si son menos de 10 o 10 se cobra a $3 por hr y por cada minuto extra a $1.50 c) Si son más de 10 y menos de 20 las primeras 10 se cobran como en b), y las restantes 10 se cobran a $2 y por cada minuto extra se cobra a $1. Utiliza una matriz que almacena por cada llamada y tipo el tiempo que duro esta. Posteriormente separa por tipos utilizando un vector por cada uno de los 3 tipos, utiliza módulos (alta, modifica, muestra) Ejemplo: 1 2 3 1 2 Llamadas 3 4 Tipos 1 5 2 5 4 3 6 Variables: M[25,3] Tipo Entero Prombasico,Promnormal,Promlujo,prec1,prec2,prec3,pago Tipo Real cont1,cont2,cont3 Tipo Entero NOMBRE:proyecto_tipos_de_llamada VARIABLES: tel Tipo entero INICIO Escribir 'ingresa el número telefónico de la llamada'; Leer (tel) Alta ( ) 3 5 4 6
  • 24. Escribir (‘Este es su recibo de de pago el cual incluye el promedio de cada tipo de llamada además se le incluye el precio a pagar en cada tipo de llamada y el costo total de pago’) Escribir (‘Su número de teléfono es:’,tel) Escribir (‘En total usted hizo 25 llamadas’) Escribir (‘En las cuales’,cont1,’son de llamada basica’,cont2,’de llamada normal y’,cont3,’de llamada de lujo’) Escribir (‘El promedio de la llamada básica es de:’,prombasico) Escribir (‘El costo a pagar por este tipo de llamada es de’,prec1) Escribir (‘El promedio de la llamada normal es de:’,promnormal) Escribir (‘El costo a pagar por este tipo de llamada es de’,prec2) Escribir (‘El promedio de la llamada de lujo es de:’,promlujo) Escribir (‘El costo a pagar por este tipo de llamada es de’,prec3) Escribir (‘El total a pagar por los 3 tipos de llamada es de’,pago) FIN
  • 25. Entero Alta ( ) Variables: M[25,3] tipo entero fil,col,llamada,t Tipo entero INICIO Para (fil=1 hasta 25 incremento 1) Hacer Para (col=1 hasta 3 incremento 1) Hacer M[fil,col]=-1 Finpara Finpara fil=1 Mientras (fil<= 25 ) Hacer Escribir ('Selecciona el tipo de llamada') Escribir ('1. Llamada básica') Escribir ('2. Llamada normal') Escribir ('3. Llamada de lujo') Leer (llamada) Si (llamada<=3) Entonces Escribir ('¿que tiempo duro la llamada? en minutos') Leer (t) col=llamada Mientras (col=llamada) hacer M[fil,col]=t col=col+1 FinMientras fil=fil+1 Sino Escribir (‘Error al capturar el tipo de llamada’) Finsi FinMientra Regresar ( ) Modifica (M) FIN
  • 26. Entero Modifica ( M[25,3]) Variables: v1[25], v2[25], v3[25] vectores de Tipo Entero breake,opcion,fil,col,nueva,temp,t,f,acum1,acum2,acum3 Tipo Entero tiempo Tipo Entero i,j Tipo Real INICIO breake=1 Mientras (breake=1) Escribir (¿Que desea modificar?’) Escribir (‘1.tipo de llamada’) Escribir (‘2. Tiempo de la llamada’) Escribir (‘3. ambos’) Escribir (‘4. Salir de modificar’) Leer (opcion) Según (opcion) Sea Caso 1: Escribir (‘indica que numero de llamada a modificar’) Leer (fil) Escribir (‘Ahora indique su tipo de llamada’) Escribir ('1. Llamada básica') Escribir ('2. Llamada normal') Escribir ('3. Llamada de lujo') Leer (col) Escribir (‘Indica el nuevo tipo de llamada’) Escribir ('1. Llamada básica') Escribir ('2. Llamada normal') Escribir ('3. Llamada de lujo') Leer (nueva) Si (fil<=25 Y col<=3 Y nueva<=3 Y M[fil,col]<>-1) Entonces temp =M [fil,col] M[fil,col]=-1 M[fil,nueva]=temp Sino Escribir (‘Error no se hizo ninguna modificacion’) Finsi Caso 2: Escribir (‘indica que llamada deseas modificar’) Leer (fil) Escribir (‘indica el tipo de la llamada a modificar’) Escribir ('1. Llamada básica') Escribir ('2. Llamada normal') Escribir ('3. Llamada de lujo') Leer (col) Si (fil<=25 Y col<=3 Y M[fil,col]<>-1 ) Entonces Escribir (‘Indica el nuevo tiempo de la llamada’) Leer (t) M[fil,col]=t Sino Escribir (‘Error no se hizo ninguna modificacion’) Finsi Caso 3: Escribir (‘indica que llamada deseas modificar’) Leer (fil) Escribir (‘indica el tipo de la llamada a modificar’) Escribir ('1. Llamada básica') Escribir ('2. Llamada normal') Escribir (‘3. Llamada de lujo') Leer (col) Escribir (‘Indica el nuevo tipo de la llamada’) Escribir ('1. Llamada básica') Escribir ('2. Llamada normal') Escribir ('3. Llamada de lujo') Leer (nueva) Si (fil<=25 Y col<=3 Y nueva<=3 Y M[fil,col]<>-1) Entonces
  • 27. Escribir (‘indica el nuevo tiempo de la llamada’) Leer (t) M [fil,col]=t temp =M [fil,col] M [fil,col]=-1 M [fil,nueva]=temp Sino Escribir (‘Error no se hizo ninguna modificación’) Finsi Caso 4: breake=0 Sino: Escribir (‘Error al capturar numero para la modificación’) Finsegun FinMientras cont1=0 cont2=0 cont3=0 acum1=0 acum2=0 acum3=0 Mientras (fil<=25 Y f=1) Hacer Si (M[fil,1]<>-1) Entonces V1[f]= M[f,1] acum1=acum1+ M[fil,1] cont1=cont1+1 f=f+1 tiempo= M[fil,1] Si (tiempo MOD 60 = 0) Entonces Prec1 = prec1+ (tiempo DIV 60)*2 Sino i = (tiempo DIV 60)*2 j = (tiempo MOD 60)*1 prec1 = prec1+j+i FinSi Sino Escribir (‘Error’) Finsi fil=fil+1 FinMientras Mientras (fil<=25 Y f=1) Hacer Si (M[fil,2]<>-1) Entonces V1[f]= M[f,2] acum2=acum2+ M[fil,2] cont2=cont2+1 f=f+1 tiempo= M[f,2] Si (tiempo MOD 60 = 0) Entonces Prec2 = prec2+ (tiempo DIV 60)*2 Sino i = (tiempo DIV 60)*2 j = (tiempo MOD 60)*1 prec2 = prec2+j+i FinSi Sino Escribir (‘Error’) Finsi fil=fil+1 FinMientras Mientras (fil<=25 Y f=1) Hacer Si (M[fil,3]<>-1) Entonces V1[f]= M[f,3]
  • 28. acum3=acum3+ M[fil,3] cont3=cont3+1 f=f+1 Si (tiempo>= 1200) Entonces Prec3 = prec3+0 Sino Si (tiempo <= 600) Entonces i = (tiempo DIV 60)*3 j = (tiempo MOD 60)*1.50 prec3= prec3+ j+i Sino Si (tiempo>600 Y tiempo<1200) Entonces tiempo=(tiempo-600) i = (tiempo DIV 60)*2 j = (tiempo MOD 60)*1 prec3= prec3+ j+i+30 FinSi FinSi Finsi Sino Escribir (‘Error’) Finsi fil=fil+1 FinMientras Prombasico= acum1/cont1 Promnormal= acum2/cont2 Promlujo= acum3/cont3 pago=prec1+prec2+prec3 Regresar ( ) FIN
  • 29. Realizar la resta de dos números con decrementos de 1 Diagrama de flujo Pseudocódigo Nombre: decremento_de_dos_numeros Variables: n1, n2, op, resta de tipo entero. Inicio Escribir (‘Escribe dos numeros’) Leer (n1, n2) resta = n1-n2 Para (op=n1 hasta resta decremento 1) hacer Escribir (op) Fin_Para Fin No Si Inicio ‘Escribe dos numeros’ n1, n2 resta = n1-n2 Para op= n1 hasta resta decremento 1 op Fin
  • 30. Realizar la suma de dos números con incrementos de 1. Diagrama de Flujo Inicio ‘Escribe dos numeros’ N1, N2 suma = N1+N2 Para op = N1 hasta suma Incremento 1 op Fin No Si Pseudocódigo Nombre: incremento_de_dos_numeros Variables: N1, N2, op, suma de tipo entero. Inicio Escribir (‘Escribe dos numeros’) Leer (N1, N2) resta = N1-N2 Para (op=N1 hasta suma incremento 1) hacer Escribir (op) Fin_Para Fin
  • 31. Realizar la multiplicación de dos números con sumas sucesivas. Diagrama de flujo Inicio ‘Escribe dos numeros’ N1, N2 sum = 0 Para op = 0 hasta N1-1 Incremento 1 sum = sum + N2 sum No Si Fin Pseudocódigo Nombre: mult_de_dos_num_con_sumas Variables: N1, N2, op, sum de tipo entero. Inicio Escribir (‘Escribe dos numeros’) Leer (N1, N2) sum = 0 Para (op = 0 hasta N1-1 incremento 1) hacer sum = sum+N2 Escribir (sum) Fin_Para Fin La sumatoria  n = x x 1
  • 32. Diagrama de Flujo Inicio ‘Escribe el numero que será el final de la sumatoria’ NF sum = 0 Para sumat = 1 hasta NF Incremento 1 sum = sum + sumat sum No Si Fin Pseudocódigo Nombre: sumatoria Variables: NF, sum, sumat de tipo entero. Inicio Escribir (‘Escribe el numero que será el fin de la sumatoria’) Leer (NF) sum=0 Para (sumat = 1hasta NF incremento 1) hacer sum = sum+sumat Escribir (sum) Fin_Para Fin
  • 33. 1.- Leer N números y contar cuántos son positivos, cuántos son negativos y cuántos son 0. Nombre: contador_numeros Variables: cn, pc, cc, N, proc de tipo entero. num de tipo real. Inicio cn=0 cp=0 cc=0 Escribir (‘Ingresa la cantidad de números a procesar’) Leer (N) Para (proc = 1 hasta N, incremento 1) hacer Escribir (‘Ingresa el numero’) Leer (num) Si (num<0) entonces cn=cn+1 Si_no Si (num>0) entonces cp=cp+1 Si_no cc=cc+1 Fin_si Fin_si Fin_Para Escribe (‘La cantidad de negativos es’, cn) Escribe (‘La cantidad de positivos es’, cp) Escribe (‘La cantidad de 0 es’, cc) Fin
  • 34. 2.- Leer N números y obtener el promedio solamente de los números pares de la lista. Nombre: Promedio_de_num_pares Variables: N, cpar, de tipo entero. num, suma, prom, de tipo real. Inicio suma=0 cpar=0 Escribir (Íngresa la cantidad de números a procesar’) Leer (N) Para (cont = 1 hasta N, incremento 1) hacer Escribir (‘Escribe el numero’) Leer (num) Si (num MOD 2 = 0) entonces cpar=cpar+1 suma=suma+num Fin_Si Fin_Para prom=suma/cpar Escribir (‘El promedio de los números pares es’, prom) Fin
  • 35. 3.- Generar los primeros N números. Nombre: primeros_numeros Variables: inicio, fin, cont tipo entero. Inicio Escribir (‘Dame el inicio’) Leer (inicio) Escribir (‘Dame el final’) Leer (fin) cont=1 Mientras (inicio<=fin) cont= cont+1 Escribir (‘El numero generado es’, cont) Fin_Mientras Fin
  • 36. 4.- Verificar si un número dado es primo o no. Nombre: num_primo Variables: num, w, x, 0, acum tipo entero Inicio acum=0 Escribir (‘dame un numero’) Leer (num) Para(w=1 hasta num, incremento 1) hacer x=num MOD w si (x=0) entonces acum = acum+1 Fin_si Fin_Para si (acum=2) entonces Escribir (‘El numero es primo’) si_no Escribir (‘El numero no es primo’) Fin_si Fin
  • 37. 5.- Dados los valores de los lados de un triángulo. Nombre: triangulo Variables: L1, L2, L3 de tipo real. Inicio Escribir (‘Ingresa las medidas de los lados’) Leer (L1, L2, L3) Si (L1=L2 y L2=L3) entonces Escribir (‘Es un triangulo equilatero’) Si_no Si (L1=L2 o L1=L3 o L2=L3) entonces Escribir (‘Es un triangulo isosceles’) Si_no Si (L1<>L2 y L2<>L3 y L1<>L3) entonces Escribir (‘Es un triangulo escaleno’) Fin_Si Fin_Si Fin_Si Fin
  • 38. 6.- Evaluar la sumatoria ∑ (xˆ2/2) 𝑛 𝑥=1 Nombre: sumatoria_al_cuadrado_div Variables: suma de tipo real. n, cont de tipo entero. Inicio suma=0 Escribir (‘Indica hasta que numero llegara la sumatoria’) Leer (n) Para (cont=1 hasta n, incremento 1) hacer suma = ((cont*cont)/2)+suma Fin_Para Escribir (‘La sumatoria es’, suma) Fin
  • 39. 7.- Evaluar la sumatoria ∑ ((xˆ2) − 2) 𝑛 𝑥=1 Nombre: sumatoria_al_cuad_resta Variables: acum de tipo real. cont, num de tipo entero. Inicio acum=0 Escribir (‘Indica hasta que numero llegara la sumatoria’) Leer (num) Para (cont=1 hasta num, incremento 1) hacer acum= ((cont*cont)-2)+acum Fin_Para Escribir (‘La sumatoria es’, acum) Fin
  • 40. 8.- Hacer diagrama de flujo y pseudocódigo para resolver el siguiente problema. En un centro comercial se tiene la siguiente promoción. Si la compra hecha por el cliente es más de $4000 se le deberá hacer un descuento de 20% sobre el total de la compra, si la compra es más de $1000 o de $4000 o menor, se le hará un descuento del 10% sobre el total de la compra, si la compra es de $1000 o menos de $1000 entonces se le hará un descuento del 5%. Queremos saber cuánto será el total que debe pagar cada uno de los 20 clientes. Inicio Para cont = 1 hasta 20 incremento 1 ‘Ingresa la cantidad de la compra’ comp comp>4000 4000>=comp Y comp>1000 comp<=1000 total = comp-(comp*0.05) total = comp-(comp*0.1) 'la compra total es', total Fin total=comp-(comp*0.2)
  • 41. Nombre: centro_comercial Variables: cont de tipo entero. comp, total de tipo real. Inicio Para (cont = 1 hasta 20, incremento 1) hacer Escribir (‘ingresa la cantidad de la compra’) Leer (comp) Si (comp>4000) entonces total=comp-(comp*0.2) Si_no Si (4000>=comp Y comp>1000) entonces total=comp-(comp*0.1) Si_no Si (comp<=1000) total=comp-(comp*0.05) entonces Fin_Si Fin_Si Fin_Si Escribir (‘La compra total es’, total) Fin Para Fin
  • 42. Problema 4.8 En un arreglo unidimensional se almacenan las calificaciones de N alumnos. Construya un diagrama de flujo que permita calcular e imprimir lo siguiente: a) Promedio general del grupo b) Número de alumnos aprobados y número de alumnos reprobados (Si el alumno sacó una calificación menos a 6 se le considera reprobado) c) Porcentaje de alumnos aprobados y reprobados. d) Número de alumnos cuya calificación fue mayor a 8. Inicio total = 0 reprob=0 aprob=0 Escribir('numero de alumnos') Leer (n) Para (grup= 1 hasta n, incremento 1) total = total+calif(grup) si (calif(grup) >= 6) entonces aprob = aprob+1 si_no si(calif(grup) < 6) entonces reprob= reprob+1 fin_si fin_si fin_Para ocho = 0 Para (grup=1 hasta n, incremento 1) si (calif(grup) >8 ocho=ocho+1 fin_Para porcrep= (reprob*100)/n porcaprob= (aprob*100)/n prom=total/n Escribir('cantidad de alumnos con mas de ocho', ocho) Escribir('prom del grupo', prom) Escribir('porc aprob', porcaprob) Escribir('porc de reprobados', porcrep) Escribir('aprobados', aprob) Escribir('reprobados', reprob) Fin
  • 43. Problema 4.1 Escriba un pseudocódigo que reciba como entrada un arreglo unidimensional ordenado de enteros (posiblemente repetidos) y genere como salida una lista de los números enteros, pero sin repeticiones. Nombre: list.num.sn.rep Variables: vec[pos] arreglo unidimensional de Tipo Entero Pos,n,nrep, variables de Tipo Entero Inicio Escribir (‘ingresa el numero de casillas del arreglo’) Leer (N) Para (pos=1 Hasta N, incremento 1) Hacer Escribir (‘Escribe el numero en la posicion’, pos) Leer (num[pos]) Finpara Escribir (‘Lista de los números sin repeticion’) pos=1 Mientras (pos<=N) hacer Escribir (num[pos]) repet=num[pos] Mientras (pos<=N Y repet=num[pos]) hacer pos=pos+1 Finmientras Finmientras Fin
  • 44. Problema 4.2 Escriba un pseudocódigo que reciba como entrada un arreglo unidimensional desordenado de enteros (posiblemente repetidos) y obtenga como salida ese mismo vector, pero sin repeticiones.
  • 45. Problema 4.3 Supongamos que en una elección hubo 12 candidatos (con identificadores 1, 2, 3, … ,12). Por otra parte, los votos para cada candidato se teclean de manera desorganizada como se muestra a continuación: 1, 5, 7, 5, 1, 12, 10, 7, 1, 7, 5, 8, 1, 5, -1 Nota: El final de los datos está dado -1
  • 46. Problema 4.4 Construya un diagrama de flujo para almacenar en un arreglo Inicio prim=0 Mientras (cprim<=30) Escribir (‘Dame un numero’) Leer (n) Para (pos=1 Hasta n) Hacer Si (n MOD pos=0) Entonces prim=prim+1 Finsi Finpara Si (prim=2) Entonces conta[prim]=n cprim=cprim+1 Finsi Finmientras Fin
  • 47. Problema 4.1 Escriba un pseudocódigo de flujo que reciba como entrada un arreglo unidimensional ordenado de enteros (posiblemente repetidos) y genere como salida una lista de los números enteros, pero sin repeticiones. Nombre: num_sin_rep Variables: vec[pos] arreglo tipo entero pos, n, nrep, variables de Tipo Entero Inicio Escribir (‘Dame el tamaño de la matriz’) Leer (n) Para (pos=1 Hasta n, incremento 1) Hacer Escribir (‘Ingresa los numeros’) Leer (vec[pos]) Fin_Para Escribir (‘Lista de números sin repeticiones’) pos=1 Mientras (pos<=n) hacer Escribir (vec[pos]) nrep=vec(pos) Mientras (pos<=n Y nrep=vec(pos) Hacer pos=pos+1 Fin_Mientras Fin_Mientras Fin
  • 48. 2.- El programa, dados los votos para los diferentes candidatos de una elección, obtiene el número de votos de cada candidato al final de la elección, el candidato ganador, el número de votos que obtuvo y el porcentaje correspondiente de total de la elección. Nombre: votos.de.candidatos Variables: vot[12] arreglo unidimensional de Tipo Entero Pos,totvot,votgan,winner, variables de Tipo Entero y porcen de tipo Real INICIO Totvot=0 Para (pos=1 Hasta 12, incremento 1) Hacer Escribir (‘Dame el # total de votos del candidato:’,pos) Leer (vot[pos]) totvot=totvot+vot[pos]) Finpara Escribir (‘'lista de candidatos y sus votos.') Para (pos=1 Hasta 12, incremento 1) Hacer Escribir ('candidato #:', pos, 'con el total de votos de:',vot[pos]) votgan=vot[pos] winner=pos Finpara Para (pos=1 Hasta 12, incremento 1) Hacer Si (vot(pos)>votgan) votgan=vot[pos] winner=pos finsi Finpara porcen=votgan/totvot Escribir ('el cadidato gadador es el #:',winner,'con el total de votos de:',votgan, 'y con el porcentaje de:',porcen) FIN
  • 49. Problema 4.4 Construya un pseudocódigo para almacenar en un arreglo unidimensional los primeros 30 números primos. Al final imprima el arreglo correspondiente. Nombre: num_primos Variables: cont[n] arreglo tipo entero. prim, pos, cprim, n de tipo entero Inicio prim=0 Mientras (cprim<=30) Escribir (‘Dame un numero’) Leer (n) Para (pos=1 Hasta n) Hacer Si (n MOD pos=0) Entonces prim=prim+1 Fin_Si Fin_Para Si (prim=2) Entonces cont[prim]=n cprim=cprim+1 Fin_Si Fin_Mientras Escribir(‘los primeros 30 numeros primos son’) Para(cprim=1 hasta 30 incremento 1) hacer Escribir(cont[prim]) Fin_Para Fin
  • 50. 4.5 El programa ordena los elementos de un arreglo utilizando el método de inserción directa. Nombre: orden_insercion Variables: a[n] arreglo tipo entero. n, pos, x, y, k de tipo entero Inicio Escribir (‘Ingresa el tamaño de la matriz´) Leer (n) Para (pos=1 hasta n incremento 1) Hacer Escribir ('ingrese el numero') Leer (a[pos]) Fin_Para Escribir (‘Arreglo ordenado’) x=2 Mientras (x<=n) aux=a[x] y=x-1 Mientras (y>=1 Y k<a[y]) a[y+1]=a[y] y=y-1 Fin_Mientras a[y+1]=aux x=x+1 Fin_Mientras Para (x=1 Hasta n Incremento 1) Hacer Escribir (a[x]) Fin_Para Fin
  • 51. 4.6 El programa ordena los elementos de un arreglo utilizando el método de selección directa. Nombre: seleccion_directa Variables: d[n] arreglo tipo entero. n, pos, menor, j, k, i de tipo entero Inicio Escribir (‘Ingrese numero de elementos ´) Leer (n) Para (pos=1 hasta n incremento 1) hacer Escribir ('ingrese los datos') Leer (d[pos]) Fin_Para i=1 Mientras (i<=n-1) men=d[i] k=i j=i+1 Mientras (j<=n) Si (d[j]<menor) Entonces menor=d[j] k=j Fin_Si j=j+1 Fin_Mientras d[k]=d[i] d[i]=menor i=i+1 Fin_Mientras Escribir (‘Arreglo ordenado’) Para (i=1 Hasta n Incremento 1) Hacer Escribir (d[i]) Fin_Para Fin
  • 52. 4.7 El programa realiza búsqueda binaria sobre un arreglo unidimensional ordenado. Nombre: busq_binaria Variables: are[n] arreglo tipo entero n, pos, x, izq, der, centro, band de tipo entero Inicio Escribir (‘Dame el tamaño del arreglo´) Leer (n) Para (pos=1 Hasta n incremento 1) Hacer Escribir ('ingrese los numeros’) Leer (are[pos]) Finpara Escribir (‘Ingresa el dato a buscar’) Leer (x) izq=1 der=n band=1 Mientras (izq<=der) Y (band=1) Center=(izq+der)/2 Si (x=are[centro] Entonces band=0 Si_No Si (x>are[centro] izq=centro+1 Si_No der=centro-1 Fin_Si Fi_Si Fin_Mientras Si (band=1) Entonces Escribir (‘El elemento no está en el arreglo’) Si_No Escribir (‘El elemento si está en el arreglo’) Fin_Si Fin
  • 53. Problema 4.8 En un arreglo unidimensional se almacenan las calificaciones de N alumnos. Construya un diagrama de flujo que permita calcular e imprimir lo siguiente: a) Promedio general del grupo b) Número de alumnos aprobados y número de alumnos reprobados (Si el alumno sacó una calificación menos a 6 se le considera reprobado) c) Porcentaje de alumnos aprobados y reprobados. d) Número de alumnos cuya calificación fue mayor a 8. Nombre: calificaciones_grupo Variables: calif[grup] arreglo tipo real. total, prom, porcaprob, porcrep de tipo real. reprob, aprob, n, ocho tipo entero. Inicio total = 0 reprob=0 aprob=0 Escribir('numero de alumnos') Leer (n) Para (grup=1 hasta n, incremento 1) Escribir('ingrese la calificacion del alumno', grup) Leer(calif[grup]) Fin_Para Para (grup= 1 hasta n, incremento 1) total = total+calif[grup] si (calif[grup] >= 6) entonces aprob = aprob+1 si_no si(calif[grup] < 6) entonces reprob= reprob+1 fin_si fin_si fin_Para ocho = 0 Para (grup=1 hasta n, incremento 1) si (calif[grup] >8 ocho=ocho+1 fin_Para porcrep= (reprob*100)/n porcaprob= (aprob*100)/n prom=total/n Escribir('cantidad de alumnos con mas de ocho', ocho) Escribir('prom del grupo', prom) Escribir('porc aprob', porcaprob) Escribir('porc de reprobados', porcrep) Escribir('aprobados', aprob) Escribir('reprobados', reprob) Fin