Problema 1
Escribe un programa que contenga una función con un nombre promedio para calcular el promedio de 3 valores dados.
Seudocódigo
1.-Inicio promedio (int n1, int n2, int n3)
{
int suma=(n1+n2+n3)
int p=suma/3
print "El promedio es =",p
}
Final promedio
1.-Inicio
v1,v2,v3 int
print "valor 1 entero="
read v1
print "valor 2 entero="
read v2
print "valor 3 entero="
read v3
promedio (v1,v2,v3)
Fin
Lenguaje C++

Problema 2
Seudocódigo
1.-Inicio promedio(int n1, int n2, int n3)
{
int p=(n1+n2+n3)/3
return p
}
Fin promedio
1.-Inicio
v1,v2,v3,x int
print "valor 1 entero= "
read v1
print "valor 2 entero= "
read v2
print "valor 3 entero= "
read v3
x=promedio(v1,v2,v3)
print "El promedio es=",x
Fin
Lenguaje C++
Problema 3
El volumen v de un cilindro está dado por la fórmula v=3.1416*r*r*l
Donde r es el radio del cilindro
l es el largo del cilindro
Usando ésta fórmula escriba una función nombrada volcil que acepte el radio y el largo de un cilindro y devuelva su volumen.
Diseñe una función llamada areasup que acepte el largo y el radio de un cilindro y devuelva su superficie (s=2*3.1416*r*l).
Asegure que las funciones sean llamadas desde main() y devuelva en forma correcta un valor a main().
Seudocódigo
1.-Inicio volcil(real radio, real largo)
{
return (3.1416*pow(radio,2)*largo)
}
Fin volcil
1.-Inicio areasup(real radio, real largo)
{
area real
area=(2*3.1416*radio*largo)
return area
}
Fin areasup
1.-Inicio
vol,a1 real
rad,la real
print "Radio cilindro= "
read rad
print "Largo cilindro= "
read la
vol=volcil (rad,la)
a1=areasup(rad,la)
print "El volumen es=",vol
print "El area de la superficie del cilindro es=",a1
Fin
Lenguaje C++
Problema 4
Escriba una función denominada triangulorectangulo que acepte la longitud de 2 lados de un triángulo rectángulo con los argumentos a y b, respectivamente. La función debe determinar y devolver la hipotenusa c del triángulo (use el teorema de Pitágoras).

1.-Inicio triangulorectangulo(real a,real b)
{
c real
c=sqrt(a*a+b*b)
return c
}
Fin triangulorectangulo
1.-Inicio
lado1, lado2, hipotenusa real
print "Lado 1= "
read lado1
print "Lado 2= "
read lado2
hipotenusa=triangulorectangulo(lado1,lado2)
print "La hipotenusa = ",hipotenusa
Fin
Lenguaje C++
Problema 5
Seudocódigo
1.- Inicio generardatos(int valores[100])
{
randomize()
for(i=0;i<=99;i=i+1)
{
valores[i]=random(2000)+1
}
}
Fin generardatos
1.- Inicio listadatos(int valores [100])
{
for(i=0;i<=99;i=i+1)
{
print valores[i]," "
}
}
Fin listadatos
1.-Inicio numeromayor(int valores[100])
{
mayor=valores[0] int
for(int i=1;i<100;i=i+1)
{
if(valores [i]>mayor)
{
mayor=valores[i]
}
}
return mayor
}
Fin numeromayor
1.- Inicio numeromenor(int valores[100])
{
menor=valores[0] int
for(int i=1;i<100;i=+1)
{
if(valores [i]<menor)
{
menor=valores[i]
}
}
return menor
}
Fin numeromenor
1.- Inicio sumavalores(int valores [100])
{
i int
suma=0 int
for (i=0;i<=99;i=i+1)
{
suma=suma+valores[i]
}
return suma
}
Fin sumavalores
1.-Inicio
numeros[100] int
generardatos(numeros)
listadatos(numeros)
print "El dato mayor es ",numeromayor(numeros)
print "El dato menor es ",numeromenor(numeros)
print "La suma de los 100 numeros es ",sumavalores(numeros)
Fin
Lenguaje C++
Problema 6
Escriba un programa que especifique 3 arreglos unidimensionales denominados corriente, resistencia y voltios cada arreglo debe ser capaz de almacenar 10 elementos. Introduzca valores corriente y resistencia. Los datos introducidos en el arreglo voltios debe ser el producto de los valores correspondientes en los valores corriente y resistencia (voltios[i]=corriente[i]*resistencia[i]).
Después de introducir todos los datos despliegue la siguiente salida:
corriente, resistencia, voltios despliegue el valor correcto de cada encabezado.
Seudocódigo
1.-Inicio introcorriente(int corriente[10])
{
i int
for (i=0;i<10;i=+)
{
print "Corriente[",i,"]:"
read corriente[i]
}
}
Fin introcorriente
1.-Inicio introresistencia(int resistencia[10])
{
i int
for (i=0;i<10;i=+1)
{
print "resistencia[",i,"]:"
read resistencia[i]
}
}
fin introresistencia
1.- Inicio calculovoltios(int corriente[10], int resistencia[10],int voltios[10])
{
i int
for (i=0;i<10;i=+1)
{
voltios[i]=corriente[i]*resistencia[i]
}
}
Fin calculovoltios
1.- Inicio imprimirdatos(int corriente[10], int resistencia[10],int voltios[10])
{
print "Corriente Resistencia Voltios"
i int
for (i=0;i<10;i=i+1)
{
print corriente[i]," ",resistencia[i]," ",voltios[i]
}
}
Fin imprimirdatos
1.-Inicio
res[10], corr[10], vol[10] int
introcorriente(corr)
introresistencia(res)
calculovoltios(corr,res,vol)
imprimirdatos(corr,res,vol)
Fin
Lenguaje C++
Problema 7
1.- Inicio intercambio (int and primervalor, int and segundovalor)
{
temporal int
temporal=primervalor
primervalor=segundovalor
segundovalor=temporal
}
Fin intercambio
1.-Inicio mayor (int a, int b, int c)
{
if (a>=b and a>=c)
{
return a
}
else {
if (b>=a and b>=c)
{
return b
}
else {
return c
}
}
}
Fin mayor
1.-Inicio
n1, n2, n3, may int
print "N1= "
read n1
print "N2="
read n2
print "N3="
read n3
may=mayor(n1,n2,n3)
print "El valor mayor es: ",may
intercambio(n1,n2)
print "Dato n1=",n1
print "Dato n2=",n2
Fin
Lenguaje C++
Problema 8
Escriba una función llamada tiempo que tenga un parámetro en número entero denominado segundos y 3 parámetros de referencia en número entero denominados horas, min y seg. La función ha de convertir el número transmitido en segundos a su equivalente en horas, minutos y segundos. Utilizando las referencias la función debe alterar directamente los argumentos respectivos en la función que llama.
Seudocódigo
1.-Inicio tiempo (int segundos, int andhoras,int andmin,int andseg)
{
horas=segundos/3600
min=(segundos%3600)/60
seg=(segundos%3600)%60
}
Fin tiempo
1.- Inicio
segundos,horas,seg,min int
print "Segundos= "
read segundos
tiempo (segundos,horas,min,seg)
print horas,":",min,":",seg
Fin
Lenguaje C++
Problema 9
Escriba una función denominada calcanios que tenga un parámetro en número entero que representa el número total de días desde la fecha 1/1/1900 y los parámetros de referencia denominados anio, mes, dia. La funcón ha de calcular el año, el mes, y día para un número de días transmitidos. Utilizando las referencias la función debe alterar directamente los argumentos respectivos en la función que llama. Para éste problema suponga que cada año tiene 365 días y cada mes tiene 30 días.
Seudocódigo
1.-Inicio calcanios (int dias, int and anio, int and mes, int and dia)
{
anio1,mes1,dia1 int
anio1=dias/365
dias=dias-(anio1*365)
mes1=dias/30
dia1=dias%30
dia=dia+dia1
mes=mes+mes1
anio=anio+anio1
}
Fin calcanios
1.-Inicio
dias,a,m,d int
print "numero dias= "
read dias
a=1900
m=1
d=1
calcanios (dias,a,m,d)
print d,"/",m,"/",a
Fin
Lenguaje C++
Problema 10
Escriba una plantilla de función llamada (maximo) que devuelva el valor máximo de 3 argumentos que se transmiten a la función cuando ésta sea llamada. Suponga que los 3 argumentos serán del mismo tipo de dato.
Incluya la plantilla de función dentro de un programa completo que llame a la función con 3 números enteros y luego con 3 números con punto flotante.
Seudocódigo
1.-Inicio funcion maximo
T maximo(T n1, T n2, T n3)
{
if (n1>=n2 and n1>=n3)
{
return n1
}
else {
if (n2>=n1 and n2>n3)
{
return n2
}
else {
return n3
}
}
}
Fin funcion maximo
1.-Inicio
num1,num2,num3 int
nf1,nf2,nf3 real
print "Primer valor entero= "
read num1
print "Segundo valor entero= "
read num2
print "Tercer valor entero= "
read num3
print "El dato mayor es ",maximo(num1,num2,num3)
print "Primer valor flotante= "
read nf1
print "Segundo valor flotante= "
read nf2
print "Tercer valor flotante= "
read nf3
print "El dato mayor es ",maximo(nf1,nf2,nf3)
Fin
Lenguaje C++
Problema 11
Escriba una plantilla de función llamada areacuadrado que calcule y devuelva el área de un cuadrado. Escriba una plantilla de función llamada percuadrado que calcule y devuelva el perímetro de un cuadrado de un sólo argumento transmitido a la función cuando ésta sea llamada.
Incluya la plantilla de función dentro de un programa completo.
Seudocódigo
1.-Inicio funcion areacuadrado
T areacuadrado(T lado)
{
return lado*lado
}
Fin areacuadrado
1.-Inicio funcion percuadrado
T percuadrado (T lado)
{
return 4*lado
}
Fin funcion percuadrado
1.-Inicio
lado double
print "Lado cuadrado (double):"
read lado
print "El area del cuadrado es ",areacuadrado(lado)
print "El perimetro del cuadrado es ",percuadrado(lado)
l1 int
print "Lado cuadrado (entero):"
read l1
print "El area del cuadrado es ",areacuadrado(l1)
print "El perimetro del cuadrado es ",percuadrado(l1)
Fin
Lenguaje C++
Problema 12
Escriba un programa que almacene 5 valores en un arreglo llamado resistencia. El programa también debe crear dos arreglos llamado corriente y potencia, los cuales deberán ser capaces de almacenar 5 valores numéricos. Haga que el programa acepte 5 valores introducidos por el usuario para el arreglo corriente y resistencia, el cual debe almacenar en el arreglo potencia el producto de los valores correspondientes al cuadrado del arreglo corriente y el arreglo resistencia (potencia[i]=resistencia[i]*pow(corriente[i],2))
Desplegar la siguiente salida
Resistencia Corriente Potencia
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
Total
---------------------
Seudocódigo
1.-Inicio funcion introresistencia
void introresistencia(T resistencia[5])
{
i int
for(i=0;i<5;i=i+1)
{
print "Resistencia [",i,"]:"
read resistencia[i]
}
}
Fin introresistencia
1.-Inicio funcion introcorriente
void introcorriente(T corriente[5])
{
i int
for(i=0;i<5;i=i+1)
{
print "Corriente [",i,"]:"
read corriente[i]
}
}
Fin introcorriente
1.-Inicio funcion calculopot
void calculopot(T resistencia[5],T corriente[5],T potencia[5])
{
i int
for(i=0;i<5;i=i+1)
{
potencia[i]=resistencia[i]*pow(corriente[i],2)
}
}
Fin calculopot
1.-Inicio funcion sumapotencia
T sumapotencia(T potencia[5])
{
i int
T suma=0
for(i=0;i<5;i=i+1)
{
suma=suma+potencia[i]
}
return suma
}
Fin sumapotencia
1.-Inicio funcion imprime
void imprime(T resistencia[5],T corriente[5],T potencia[5])
{
i int
print "Resistencia Corriente Potencia"
for(i=0;i<5;i=i+1)
{
print resistencia[i],"",corriente[i],"",potencia[i]
}
}
Fin imprime
1.-Inicio
res[5],corr[5],p[5] int
introresistencia(res)
introcorriente(corr)
calculopot(res,corr,p)
imprime(res,corr,p)
print " total= ",sumapotencia(p)
Fin
Lenguaje C++
Problema 13
Formulece un programa para obtener los siguientes valores estadísticos para un arreglo unidimensional "x" compuesto de n elementos.
Desviación media
Raíz del valor cuadrático medio
Medio armónico
Intervalo=Maximo(x1,x2,......xn)-Minimo(x1,x2,.....xn)
Medio Geometrico
Seudocódigo
1.- Inicio funcion promedio
T promedio(int n, T x[30])
{
T suma=0
i,p int
for(i=0;i<n;i=i+1)
{
suma=suma+x[i]
}
p=suma/n
return p
}
Fin funcion promedio
1.-Inicio funcion introvalores
void introvalores(int n, T x[30])
{
i int
for(i=0;i<n;i=i+1)
{
print "Dato ",(i+1),"="
read x[i]
}
}
Fin funcion introvalores
1.- Inicio funcion desviacion
T desviacion(int n, T x[30])
{
T prom=promedio(n,x)
T suma=0
i int
des real
for(i=0;i<n;i=i+1)
{
suma=suma+abs(x[i]-prom)
}
des=suma/n
return des
}
Final funcion desviacion
1.- Inicio funcion cuadraticomedio
T cuadraticomedio(int n, T x[30])
{
T suma=0
i int;
cm real;
for(i=0;i<n;i=i+1)
{
suma=suma+pow(x[i],2)
}
suma=suma/n
cm=sqrt(suma)
return cm
}
Final cuadraticomedio
1.-Inicio funcion medioarmonico
T medioarmonico(int n, T x[30])
{
T suma=0
i int
ma real
for(i=0;i<n;i=i+1)
{
suma=suma+1.0/x[i]
}
ma=n/suma
return ma
}
Fin funcion medioarmonico
1.-Inicio funcion maximo
T maximo(int n, T x[30])
{
T max=x[0]
i int
for(i=0;i<n;i=i+1)
{
if (x[i]>max)
{
max=x[i]
}
}
return max
}
Final funcion maximo
1.-Inicio funcion minimo
T minimo(int n, T x[30])
{
T min=x[0]
i int
for(i=0;i<n;i=i+1)
{
if (x[i]<min)
{
min=x[i]
}
}
return min
}
Final funcion minimo
1.-Inicio funcion intervalo
T intervalo (int n, T x[30])
{
inter int
inter=maximo(n,x)-minimo(n,x)
return inter
}
Fin funcion intervalo
1.-Inicio funcion mediogeometrico
T mediogeometrico(int n, T x[30])
{
T prod=1
i int
gm real
for (i=0;i<n;i=i+1)
{
prod=prod*x[i]
}
gm=pow(prod,1.0/n)
return gm
}
final funcion mediogeometrico
1.- Inicio
n1 int
x1[30] real
do
{
print "Cantidad de datos (<=30): "
read n1
}
while (n1<=0 and n1>30)
introvalores(n1,x1)
print "La desviacion es =",desviacion(n1,x1)
print "Cuadratico medio es =",cuadraticomedio(n1,x1)
print "Intervalo es =",intervalo(n1,x1)
print "Medio armonico es =",medioarmonico(n1,x1)
print "Medio geometrico es =",mediogeometrico(n1,x1)
print "max=",maximo(n1,x1)
print "min=",minimo(n1,x1)
Fin
Lenguaje C++
Práctica 9
Problema 1
Escriba un programa que encuentre y despliegue el valor máximo y el valor mínimo de un arreglo bidimensional de números enteros también despliegue el índice del renglón y columna que corresponden al valor máximo y mínimo.
Lenguaje C++
Solucion
1.Inicio introdatos.
void introdatos(int v[5][4])
{
r,c int
for(r=0 to r<5 step r++)
{
for(c=0 to c<4 step c++)
{
Print "Dato"(r+1)","(c+1)":"
Read v[r][c]
}
}
}
fin.
1.Inicio sumarenglon
void sumarenglon(int v[5][4])
{
suma,r,c int
Print "Suma de renglones"
for(r=0 to r<5 step r++)
{
suma=0
for(c=0 to c<4 step c++)
{
suma=suma+v[r][c]
}
Print "Renglon"": ",suma
}
}
fin.
1.Inicio sumacolumna
void sumacolumna(int v[5][4])
{
suma,r,c int
print "Suma de columnas"
for(c=0 to c<4 step c++)
{
suma=0
for(r=0 to r<5 step r++)
{
suma=suma+v[r][c]
}
Print "La suma de la columna”(c+1)"es: ",suma
}
}
fin
1.Inicio imprimetabla
void imprimetabla(int v[5][4])
{
r,c int
for(r=0 to r<5 step r++)
{
for(c=0 to c<4 step c++)
{
Print “ “,v[r][c]"\t"
}
}
}
Fin.
1.Inicio maximo.
void maximo(int v[5][4],int &max,int &posr,int &posc)
{
r,c int
max=v[0][0]
posr=0
posc=0
for(r=0 to r<5 step r++)
{
for(c=0 to c<4 step c++)
{
if(v[r][c]>max)
{
max=v[r][c]
posr=r
posc=c
}
}
}
}
Fin
1.Inicio minimo
void minimo(int v[5][4],int &min,int &posr,int &posc)
{
r,c int
min=v[0][0]
posr=0
posc=0
for(r=0 to r<5 step r++)
{
for(c=0 to c<4 step c++)
{
if(v[r][c]<min)
{
min=v[r][c]
posr=r
posc=c
}
}
}
}
Fin.
1.Inicio main
{
valores[5][4] int
max,min,posr,posc,posr1,posc1 int
introdatos(valores)
sumarenglon(valores)
sumacolumna(valores)
imprimetabla(valores)
maximo(valores,max,posr,posc)
minimo(valores,min,posr1,posc1)
print "El valor maximo es=",max" con posicion(",posr",",posc")"
print "El valor minimo es=",min" con posicion(",posr1",",posc1")"
getch()
}
Fin
Problema 2
Escriba un programa que sume los elementos equiparables de los arreglos bidimensionales denominado primero y segundo. Ambos arreglos deben de tener 2 renglones y 3 columnas. Por ejemplo los elementos [1][2] del arreglo que resulte deben ser la suma de primero [1][2] y segundo [1][2]. Los arreglos primero y segundo son introducidos por el usuario.
Ejemplo
16 18 23 24 52 77 40 70 100
54 91 11 16 19 59 70 110 70
Lenguaje C++
Solucion
1.INICIO PRIMERA
void primera(int primera[2][3])
{
r,c int
for(r=0 to r<2 step r++)
{
for(c=0 to c<3 step c++)
{
Print "Dato"(r+1)","(c+1)":"
Read primera[r][c]
}
}
}
FIN.
1.INICIO SEGUNDA
void segunda(int segunda[2][3])
{
r,c int
for(r=0 to r<2 step r++)
{
for(c=0 to c<3 step c++)
{
Print "Dato"(r+1)","(c+1)":"
Read segunda[r][c]
}
}
}
FIN
1.INICIO SUMA
void suma(int primera[2][3],int segunda[2][3],int tercera[2][3])
{
for(int r=0 to r<2 step r++)
{
for(int c=0 to c<3 step c++)
{
tercera[r][c]=primera[r][c]+segunda[r][c]
}
}
}
FIN.
1.INICIO MULTIPLICACION.
void multiplicacion(int primera[2][3],int segunda[2][3],int tercera[2][3])
{
for(int r=0 to r<2 step r++)
{
for(int c=0 to c<3 step c++)
{
tercera[r][c]=primera[r][c]*segunda[r][c]
}
}
}
FIN.
1.INICIO IMPRIMIR
void imprimir(int v[2][3])
{
r,c int
for(r=0 to r<2 step r++)
{
for(c=0 to c<3 step c++)
{
Print “ “v[r][c]
}
}
}
FIN.
1.INICIO MAIN.
void main()
{
val[2][3] int
val1[2][3] int
val2[2][3] int
val3[2][3] int
print "Tabla 1"
primera(val)
print "Tabla 2"
segunda(val1)
suma(val,val1,val2)
multiplicacion(val,val1,val3)
print "Tabla 1"
imprimir(val)
print "Tabla 2"
imprimir(val1)
print "Suma"
imprimir(val2)
print "Multiplicacion"
imprimir(val3)
getch()
}
Problema 3
Dada la matriz "a" de la forma
a11 a12.....a1m
a21 a22.....a2m
La transpuesta de A´ de A está dada por
a11 a21.....an1
a12 a22.....an2
a1m a2m.....anm
Esto quiere decir que se obtiene cambiando renglones por columnas y viceversa, formulece un programa para obtener la matriz y la transpuesta.
Lenguaje C++
Lenguaje C++
SOLUCION.
1.INICIO INTRODUCIRDATOS
void introducirdatos(int m[4][4])
{
randomize()
for(int r=0 to r<4 step r++)
{
for(int c=0 to c<4 step c++)
{
m[r][c]=random(1000)+1
}
}
}
FIN.
1.INICIO IMPRIMEMATRIZ
void imprimematriz(int m[4][4])
{
for(int r=0 to r<4 step r++)
{
for(int c=0 to c<4 step c++)
{
Print “ “,m[r][c]
}
}
}
FIN
1.INICIO TRANSPUESTA
void transpuesta(int m[4][4],int m1[4][4])
{
for(int r=0 to r<4 step r++)
{
for(int c=0 to c<4 step c++)
{
m1[c][r]=m[r][c]
}
}
}
FIN
1.INICIO MAIN
void main()
{
int a[4][4]
int a1[4][4]
introducirdatos(a)
transpuesta(a,a1)
Print "Matriz original"
imprimematriz(a)
"Matriz transpuesta"
imprimematriz(a1)
getch()
}
FIN.
Problema 4
Dada una matriz g cuyos elementos g[i][j] contienen jisima calificación del i-esimo estudiante y un factor de ponderación w, cuyo elemento w[j] denota la ponderación correspondiente al j-esimo problema de un exámen, formulece un programa que establezca niveles entre estudiantes. Los niveles deben registrarse en un rector llamado r de tal forma que r[i] indica laposición de i-esimo estudiante de la clase. El programa debe leer los datos de entrada para n estudiantes y n problemas. Por ejemplo las siguientes matrices contienen la calificación, los problemas y la información del nivel de un curso compuesto de 5 estudiantes y de un exámen compuesto de 3 problemas.
3 | 2 | 1 |
g r
0 | 65 | 80 | 85 | 4 |
1 | 80 | 60 | 90 | 3 |
2 | 75 | 50 | 50 | 5 |
3 | 100 | 50 | 75 | 2 |
4 | 100 | 80 | 70 | 1 |
En éste ejemplo el promedio del primer estudiante es ((3*65)+(2*80)+(1*85))/6=73.33
Lenguaje C++
SOLUCION.
1.inicio función introw
void Intro_W(int W[3])
{
for (int I=0 to I<3 step I=I+1)
{
print "W: ",(I+1)
read W[I]
}}
{
for (int I=0 to I<3 step I=I+1)
{
print "W: ",(I+1)
read W[I]
}}
Fin.
1.inicio funcion intro_Calif
void Intro_Calf(int M[5][3])
{
R,C int
for(R=0;R<5;R=R+1)
{
for(C=0;C<3;C=C+1)
{
print " Calificacion ",(R+1)",",(C+1)," : "
cin>>M[R][C]
}}}
{
R,C int
for(R=0;R<5;R=R+1)
{
for(C=0;C<3;C=C+1)
{
print " Calificacion ",(R+1)",",(C+1)," : "
cin>>M[R][C]
}}}
Fin.
1.inicio funcion suma_W.
int Suma_W(int W[3])
{
Suma=0 int
I int
for(I=0;I<3;I=I+1)
{
Suma=Suma+W[I]
}
return Suma
}
{
Suma=0 int
I int
for(I=0;I<3;I=I+1)
{
Suma=Suma+W[I]
}
return Suma
}
Fin.
1.inicio funcion promedio.
void Promedio(int M[5][3],int W[3],float C1[5])
{
N,R,C int
N=Suma_W(W)
for(R=0;R<5;R=R+1)
{
Suma=0 int
for(C=0;C<3;C=C+1)
{
Suma=(Suma+M[R][C])*W[C]
}
C1[R]=(Suma/1.0)*N
}}
{
N,R,C int
N=Suma_W(W)
for(R=0;R<5;R=R+1)
{
Suma=0 int
for(C=0;C<3;C=C+1)
{
Suma=(Suma+M[R][C])*W[C]
}
C1[R]=(Suma/1.0)*N
}}
Fin.
1.inicio funcion rango.
void Rango(float C1[5],int R1[5])
{
E,Mayor,NumE,R int
for(E=0;E<5;E=E+1)
{
Mayor=0
for(R=0;R<5;R=R+1)
{
if(C1[R]>Mayor)
{
NumE=R
Mayor=C1[R]
}
}
R1[NumE]=(E+1)
C1[NumE]=0
}}
{
E,Mayor,NumE,R int
for(E=0;E<5;E=E+1)
{
Mayor=0
for(R=0;R<5;R=R+1)
{
if(C1[R]>Mayor)
{
NumE=R
Mayor=C1[R]
}
}
R1[NumE]=(E+1)
C1[NumE]=0
}}
Fin.
1.inicio funcion imprime_R
void Imprime_R(int R[5])
{
I int
for(I=0;I<5;I=I+1)
{
print "Estudiante No. : ",(I+1)
print "Su posicion en la clase es : ",R[I]
}}
{
I int
for(I=0;I<5;I=I+1)
{
print "Estudiante No. : ",(I+1)
print "Su posicion en la clase es : ",R[I]
}}
Fin.
1.Inicio main
W[3] int
M[5][3] int
Intro_W(W)
Intro_Calf(M)
float C[5]
int R[5]
Suma_W(W)
Promedio(M,W,C)
Rango(C,R)
Imprime_R(R)
M[5][3] int
Intro_W(W)
Intro_Calf(M)
float C[5]
int R[5]
Suma_W(W)
Promedio(M,W,C)
Rango(C,R)
Imprime_R(R)
Fin.
Problema 5
Análisis de producción
Estación total producción
1 xxxxxxx
2 xxxxxxx
. xxxxxxx
. xxxxxxx
. xxxxxxx
15
total
Estacion mas productiva:
Encargado de la estacion:
Cantidad producida:
Lenguaje C++
SOLUCION.
1.INICIO CALCULOPRODANUAL.
void calculoprodanual(int produccion[15][12],int prodtotal[15])
{
for(int i=0 to i<15 step i++)
{
int suma=0
for(int j=0 to j<15 step j++)
{
suma=suma+produccion[i][j]
}
prodtotal[i]=suma
}
}
FIN.
1.INICIO INTRODATOS.
void introdatos(char nombre[15][20],int produccion[15][12])
{
randomize()
for(int i=0 to i<15 step i++)
{
Print "Nombre del encargado estacion" (i+1) ":"
cin>>nombre[i]
for(int j=0 to j<12 step j++)
{
produccion[i][j]=random(50000)+1
}
}
}
FIN.
1.INICIO MAYORPRODUCTIVIDAD.
void mayorproductividad(int prod_total[15],int &mayor,int &pos)
{
mayor=prod_total[0]
pos=0
for (int i=1 to i<15 step i++)
{
if(prod_total[i]>mayor)
{
mayor=prod_total[i]
pos=i
}
}
}
FIN.
1.INICIO MAIN.
void main()
{
int prod[15][12]
int ptotal[15]
char nom[15][20]
may,p1int
introdatos(nom,prod)
calculoprodanual(prod,ptotal)
mayorproductividad(ptotal,may,p1)
print "La estacion mas productiva es:"(p1+1)
print "Encargado de la estacion:",nom[p1]
Print "Cantidad producida:",ptotal[p1]
getch()
}
FIN.
Problema 6
Elaborar un programa que genere una matriz de 10x10 en la cual asigne ceros a todos los elementos excepto a los de la diagonal principal donde asignara algunos; imprima dicha matriz.
Lenguaje C++
SOLUCION.
1.INICIO ASIGNARVALORES
void asignarvalores(int m[10][10])
{
r,c int
for (r=0 to r<10 step r++)
{
for (c=0 to c<10 step c++)
{
if(r==c)
{
m[r][c]=1
}
else{
m[r][c]=;
}
}
}
}
FIN.
1.INICIO IMPRIMEMATRIZ
void imprimematriz(int m[10][10])
{
I int
for (i=0 to i<10 step i++)
{
for (int j=0 to j<10 step j++)
{
Print “ “,[i][j]
}
}
}
FIN.
1.INICIO MAIN
void main ()
{
matriz[10][10] int
asignarvalores(matriz)
imprimematriz(matriz)
getch ()
}
Problema 7
Elaborar un programa que lea el nombre de 10 trabajadores y su producción mensual por cada uno de los 12 meses del año en 2 arreglos uno para nombres y otro para producciones, en los cuales los n corresponden al trabajador n. Se requiere que imprima el siguiente reporte:
Nombre total de producción
----------------------------------------------------------
___________ _______________________
___________ _______________________
___________ _______________________
___________ _______________________
Promedio de producción _______________
Lista de trabajadores que tengan la producción mayor al promedio.
Lenguaje C++
SOLUCION.
1.INICIO INTRODATOS.
void introdatos(int produccion[10][13])
{
randomize ()
i,j,suma int
for (i=0 to i<10 step i++)
{
suma=0
for (j=0 to j<12 step j++)
{
produccion[i][j]=random(5000)+1
suma=suma+produccion[i][j]
}
produccion[i][12]=suma
}
}
FIN.
1.INICIO LEERNOMBRES
void leernombres(char name[10][25])
{
I int
for (i=0 to i<10 step i++)
{
Print "nombre trabajador"(i+1)":"
cin.getline(name[i],25)
}
}
FIN.
1.INICIO REPORTE.
void reporte(int produccion[10][13], char name[10][25])
{
suma,i,prom int
Print "analisis de produccion"
Print "nombre total produccion"
suma=0
for (i=0 to i<10 step i++)
{
Print “ “name[i]" ",produccion[i][12]
suma=suma+produccion[i][12]
}
{
prom=suma/10
print "promedio de produccion ",prom
print "listado de trabajadores mayores a ",prom
i int
for (i=0 to i<10 step i++)
{
if (produccion[i][12]>prom)
{
Print “ “,name[i]
}
}
}
}
FIN.
1.INICIO MAIN.
void main ()
{
int p[10][13]
char nom[10][25]
leernombres(nom)
introdatos(P)
reporte(p,nom)
getch()
}
FIN.
Problema 8
Lenguaje C++
SOLUCION.
1.INICIO
void main()
{
ofstream salida
salida.open("c://datos//prueba.txt")
salida<<" 10 32 45 66 "<<endl
salida<<" 42 90 35 46 "<<endl
salida<<" 28 76 31 92 "<<endl
salida.close()
Print " Datos Almacenados "<<endl
getch()
}
Problema 9
Solución
1.INICIO SUMAREN
void sumaren(int dato[3][4])
{
suma,i,j int
print "Suma de renglones: "
for(i=0 to i<3 step i++)
{
suma=0
for(j=0 to j<4 step j++)
{
suma=suma+dato[i][j]
}
Print "La suma del renglon: "(i+1)" es: ",suma
}
}
FIN.
1.INICIO SUMACOL
void sumacol(int dato[3][4])
{
suma,i,j int
print "Suma de columnas: "
for(j=0 to j<4 step j++)
{
suma=0
for(i=0 to i<3 step i++)
{
suma=suma+dato[i][j]
}
Print "La suma de las Columnas: “(j+1)" es: ",suma
}
}
FIN.
1.INICIO IMPRIMIR
void imprimir(int dato[3][4])
{
int i,j
ifstream entrada
entrada.open("c://datos//prueba.txt")
for(i=0 to i<3 step i++)
{
for(j=0 to j<4 step j++)
{
entrada>>dato[i][j]
print ,dato[i][j]" ";
}
}
entrada.close()
getch()
}
FIN.
1.INICIO MAIN
void main ()
{
int dato[3][4]
imprimir(dato)
sumaren(dato)
sumacol(dato)
getch()
}
Problema 10
Escriba un programa para calcular y desplegar el promedio de cada grupo de números en el archivo creado en el.
a) Los datos se han arreglado en el archivo para que cada grupo de números sea precedido por el número de elementos de datos en el grupo. Entonces el primer número en el archivo, indica que los siguientes 5 números se deben de agrupar juntos. El número 4 indica que los siguientes 4 números forman un grupo y el 6 indica que los últimos 6 números indican un grupo.
Lenguaje C++
SOLUCION.
1.INICIO
main()
{
ofstream f1
f1.open("c://datos//Grupos.txt")
f1<<5<<endl
f1<<96<<endl
f1<<87<<endl
f1<<78<<endl
f1<<93<<endl
f1<<21<<endl
f1<<9<<endl
f1<<92<<endl
f1<<31<<endl
f1<<57<<endl
f1<<6<<endl
f1<<72<<endl
f1<<69<<endl
f1<<82<<endl
f1<<75<<endl
f1<<81<<endl
f1<<73<<endl
f1.close()
PRINT "Grupos almacenados"
getch()
}
Lenguaje C++
SOLUCION.
1.INICIO
main()
{
ifstream f2
f2.open("c://datos//Grupos.txt")
int n,suma=0,numero,j
f2>>n
for (j=1 to j<=n step j++)
{
f2 >>numero
suma=suma+numero
}
int prom=suma/n
print "El promedio del grupo"(j)":",prom
f2.close()
getch()
}
Problema 11
a)Escriba un programa que pueda crear un archivo texto llamado voltios y escriba en el los siguientes registros:
120.3 122.7 90.3 99.8
95.3 120.5 127.3 120.8
123.2 118.4 123.8 116.6
122.4 95.1 118.2 120.0
123.5 130.2 123.9 124.4
b)Con base a los datos del archivo voltios, escriba un programa que lea cada registro en el archivoque calcule y despliegue el promedio de cada registro.
Lenguaje C++
SOLUCION.
1.INICIO
main()
{
ofstream archivo
archivo.open("c://datos//voltios.txt")
archivo<<"120.3 122.7 90.3 99.8"<<endl
archivo<<"95.3 120.5 127.3 120.8"<<endl
archivo<<"123.2 118.4 123.8 116.6"<<endl
archivo<<"122.4 95.1 116.7 120.0"<<endl
archivo<<"123.5 130.2 123.9 129.4"<<endl
archivo.close()
PRINT "Archivo almacenado"
getch()
}
FIN
Lenguaje C++
SOLUCION.
1.INICIO
main()
{
ifstream archivo
num,suma,prom real
archivo.open("c://datos//voltios.txt")
for(int i=1 to i<=5 step i++)
{
suma=0.0
for(int j=1 to j<=4 step j++)
{
archivo>>num
suma=suma+num
}
prom=suma/4
Print "El promedio del registro",i":",prom
}
archivo.close()
getch()
}
FIN
Práctica 10
Problema 1
Seudocódigo
1.-Inicioofstream archivo
archivo.open("c:\\datos\\ejemplo.txt")
if(archivo.bad())
{
print "No puede crear el archivo ejemplo.txt"
}
else{
archivo,1," ",50," Reprobado"
archivo,2," ",0," Ausente"
archivo,3," ",80," Aprobado"
archivo,4," ",100," Aprobado"
archivo.close()
}
print "Datos grabados exitosamente"
Fin
Lenguaje C++
Problema 2
Seudocódigo
1.- Inicio
ifstream arch1
i,calif int
char cadena[10]
arch1.open("c:\\datos\\ejemplo.txt")
if(arch1.bad())
{
print "Incapaz de crear o abrir el archivo"
}
else
{
arch1>>i
while(!arch1.eof())
{
print i," "
arch1calif
print calif
arch1cadena
print cadena
arch1i
}
arch1.close()
}
i,calif int
char cadena[10]
arch1.open("c:\\datos\\ejemplo.txt")
if(arch1.bad())
{
print "Incapaz de crear o abrir el archivo"
}
else
{
arch1>>i
while(!arch1.eof())
{
print i," "
arch1calif
print calif
arch1cadena
print cadena
arch1i
}
arch1.close()
}
Fin
Lenguaje C++
Seudocódigo
1.-Inicio
fstream f1cadena[10],sigue,nombre[10] char
c1,c2,c3,c4 int
promedio int
opcion int
f1.open("c:\\datos\\ejemplo2.txt",ios::app|ios::out)
do{
print "1) Almacenar datos del alumno:"
print "2) Reporte de alumnos:"
print "3) Salida de programa:"
print "Elige opcion:"
read opcion
switch(opcion)
{
case 1:
do{
print "Nombre alumno:"
read nombre
print "Calificacion 1:"
read c1
print "Calificacion 2:"
read c2
print "Calificacion 3:"
read c3
print "Calificacion 4:"
read c4
promedio=(c1+c2+c3+c4)/4
f1,nombre," ",c1," ",c2," ",c3," ",c4," ",promedio," "
if(promedio>=70)
{
f1,"Aprobado"
}
else{
f1,"Reprobado"
}
print "Desea registrar a otro(s/n)"
read sigue
}
while(sigue=='s' || sigue=='S')
f1.close()
break
case 2:f1.open("c:\\datos\\ejemplo2.txt",ios::out)
print "Nombre calif1 calif2 calif3 calif4 promedio status"
if(f1.bad())
{
print "Incapaz de crear o abrir el archivo"
}
else{
f1 nombre
while(!f1.eof())
{
print nombre," "
f1 c1
print c1," "
f1 c2
print c2," "
f1 c3
print c3," "
f1 c4
print c4," "
f1 promedio
print promedio," "
f1 cadena
print cadena,"\t"
f1 nombre
}
}
f1.close()
break
case 3:
print "Salida Programa"
break
default:
print "Error en Opcion"
break
}
}
while(opcion !=3)
Fin
Problema 4
Un archivo llamado polar.txt contiene las coordenadas pobres nesesarias en un programa de graficas.Actualmente este archivo contiene los siguientes datos.
Distancia (Pulgadas) Angulo (Grados)
2.0 45.0
6.0 30.0
10.4 45.0
4.0 60.0
12.0 55.0
8.0 15.0
a) Escriba u programa para crear este archivo.
b) Con base al archivo polar.txt escriba un programa que acepte del usuario los datos de distancia y angulo y los agregue al final del archivo.
c) Con el archivo polar. txt escriba u programa que lea este archivo y cree otro llamado xycord.txt las entradas al nuevo archivo deben contener las coordenadas rectangulares que corresponden a las coordenadas polares.
x=ycoseno

y=rseno

donde r es la coordenada de distancia y
es el equivalente en radianes a la coordenada del angulo en el archivo polar.txt.
es el equivalente en radianes a la coordenada del angulo en el archivo polar.txt.Seudocódigo
1.-Inicio funcion creararchivo
void creararchivo ()
{
fstream escribir
escribir.open("c//Datos//polar.txt",ios::out)
escribir 2.0," ",45.0
,6.0," ",30.0
,10.0," ",45.0
escribir.open("c//Datos//polar.txt",ios::out)
escribir 2.0," ",45.0
,6.0," ",30.0
,10.0," ",45.0
,4.0," ",60.0
,12.0," ",55.0
,8.0," ",15.0
escribir.close()
}
,12.0," ",55.0
,8.0," ",15.0
escribir.close()
}
Fin creararchivo
1.-Inicio agregard
void agregard()
{
void agregard()
{
dist,angulo real
continuar char
fstream escribir
escribir.open("c://Datos//polar.txt",ios::app)
do
{
print "Distancia (Pulgadas):"
read dist
print "Angulo (Grados):"
read angulo
escribir,dist," ",angulo
print "Deseas registrar otro (S/N):"
read continuar
}
while (continuar=='S'||continuar=='s')
escribir.close()
}
continuar char
fstream escribir
escribir.open("c://Datos//polar.txt",ios::app)
do
{
print "Distancia (Pulgadas):"
read dist
print "Angulo (Grados):"
read angulo
escribir,dist," ",angulo
print "Deseas registrar otro (S/N):"
read continuar
}
while (continuar=='S'||continuar=='s')
escribir.close()
}
Fin agregard
1.-Inicio crearxycord
void crearxycord()
{
d,a,x,y,rad real
void crearxycord()
{
d,a,x,y,rad real
fstream f1
fstream f2
f1.open ("c://Datos//polar.txt",ios::in)
f2.open ("c://Datos//xycord.txt",ios::out)
f1>>d
while (!f1.eof())
{
f1 a
rad=(a*3.1416)/180
x=d*cos(rad)
y=d*sin(rad)
f2 x," ",y
f1 d
}
f1.close()
f2.close()
}
Fin crearxycord
1.-Inicio
crearchivo()
agregard ()
crearxycord ()
fstream f2
f1.open ("c://Datos//polar.txt",ios::in)
f2.open ("c://Datos//xycord.txt",ios::out)
f1>>d
while (!f1.eof())
{
f1 a
rad=(a*3.1416)/180
x=d*cos(rad)
y=d*sin(rad)
f2 x," ",y
f1 d
}
f1.close()
f2.close()
}
Fin crearxycord
1.-Inicio
crearchivo()
agregard ()
crearxycord ()
Fin
Lenguaje C++
Problema 5
Escriba los cuatro numeros reales
92.6588.72
77.46
82.93
en un archivo texto llamado resultados.Despues de escribir los datos en el archivo el programa debe leerlos determinar y desplegar el promedio de los cuatro numeros leidos.
Seudocódigo
1.-Inicio
num real
fstream archivoarchivo.open("c://Datos//resultados.txt",ios::out,ios::in)
archivo 92.65," ",88.72," ",77.46," ",82.93
archivo.close()
archivo.open("c://Datos//resultados.txt",ios::in)
float suma=0
for (int i=1;i<=4;i=i+1)
{
archivo num
print num," "
suma=suma+num
}
print endl
promedio=suma/4.0 real
print "El promedio es:",promedio
Fin
Lenguaje C++
Problema 6
Suponga que desea introducir una lista de cadenas en un arreglo de tamaño 10.
Haga un programa que considere un metodo para ordenar alfabeticamente estas cadenas y escribir la lista de las cadenas en forma ordenada, en orden ascendente.
Seudocódigo
1.-Inicio funcion ordenar
void ordenar(int n,char x[10][12])
{
temp[12] char
i,elem int
for(elem=0;elem<(n-1);elem=elem+1)
{
for(i=elem+1;i<(n-1);i=i+1)
{
if(strcmpi(x[elem],x[i])<0)
{
strcpy(temp,x[elem])
strcpy(x[elem],x[i])
strcpy(x[i],temp)
} } } }
{
temp[12] char
i,elem int
for(elem=0;elem<(n-1);elem=elem+1)
{
for(i=elem+1;i<(n-1);i=i+1)
{
if(strcmpi(x[elem],x[i])<0)
{
strcpy(temp,x[elem])
strcpy(x[elem],x[i])
strcpy(x[i],temp)
} } } }
Fin ordenar
1.- Iniio
i,n=0 int
x[10][12] char
print "Escribe Fin para terminar "
do
{
print "Cadena ",(n+1)," : "
read x[n]
}
while(strcmpi(x[n++],"fin"))
ordenar(--n,x)
print "Lista Ordenar cadena "
for(i=0;i<n;i=i+1)
{
print x[i]
}
Fin
i,n=0 int
x[10][12] char
print "Escribe Fin para terminar "
do
{
print "Cadena ",(n+1)," : "
read x[n]
}
while(strcmpi(x[n++],"fin"))
ordenar(--n,x)
print "Lista Ordenar cadena "
for(i=0;i<n;i=i+1)
{
print x[i]
}
Fin
Lenguaje C++




























