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