Programación Estructurada
viernes, 6 de junio de 2014
miércoles, 4 de junio de 2014
Practica 7
Problema 1
- Código
- Ejecución
- Pseudocódigo
Inicio
reporte()
Fin
funcion reporte()
{
ifstream archivo_entr
ofstream archivo_sal
int model,mill,mtotal
float promedio,gal,gtotal,ptotal
mtotal=0
gtotal=0
archivo_entr.open()
archivo_sal.open()
if (archivo_entr.fail())
{
write "el archivo no se abrio, compruebe el archivo"
exit(1)
}
write "el archivo se abrio para su lectura "
archivo_entr model,mill,gal
while(archivo_entr.good())
{
promedio=mill/gal
write "modelo ",model," millas ",mill," galones ",gal," millas por galon ",promedio
mtotal=mtotal+mill
gtotal=gtotal+gal
archivo_entr model,mill,gal
}
if (archivo_sal.fail())
{
write "el archivo de salida no se abrio, compruebe el archivo"
exit(1)
}
write "el archivo de salida se abrio para su escritura Reporte final"
ptotal=mtotal/gtotal
write" Millas totales "mtotal
write" galones totales "gtotal
write" promedio "ptotal
while(archivo_sal.good())
{
archivo_sal " Millas totales " mtotal
archivo_sal " galones totales " gtotal
archivo_sal " promedio " ptotal
archivo_sal.close() }
archivo_entr.close()
}
}
Problema 2
- Código
- Ejecución
- Pseudocódigo
Iniciowrite "======INCISO A======"
Crear()
write "=====INCISO B====="
Inventario()
Fin
funcion Crear()
{
ofstream archivo
archivo.open("F:\\Practica 7\\Problema 2.txt")
if (archivo.fail())
then
{
write " No se encontro el archivo en la ruta especificada"
exit(1)
}
else{
write " Numero de parte Cantidad Inicial Cantidad Vendida Cantidad Minima"
write " --------------- ------------------ ---------------- ---------------"
write " QA310 95 47 50"
write " CM145 320 162 200"
write " MS514 34 20 25"
write " EN212 163 150 160"
archivo " QA310 95 47 50"
archivo " CM145 320 162 200"
archivo " MS514 34 20 25"
archivo " EN212 163 150 160"
archivo.close()
}}
funcion Inventario()
{
parte[4]: char
balance, c1, c2, min, i: int
ifstream archivo
archivo.open("F:\\Practica 7\\Problema 2.txt")
write " Numero de parte Balance Actual Cantidad Minima"
write " --------------- ---------------- ---------------"
for(i=0 to i<4 step i++)
{
archivo>>parte>>c1>>c2>>min
balance=c1-c2
write " ", parte, " ", balance, " ", min
}
archivo.close()
}
Problema 3
- Código
- Ejecución
- Pseudocódigo
Inicio
Crear()
Nomina()
Fin
{
ofstream archivo
archivo.open("F:\\Practica 7\\Problema 3.txt")
if (archivo.fail())
then
{
write " No se encontro el archivo en la ruta especificada"
exit(1)
}
else{
write "======INCISO A======"
write " Nombre Tarifa Horas "
write " -------- -------- -------"
write "Callaway,G. 6.00 40 "
write "Hanson,P. 5.00 48 "
write "Lasard,D. 6.50 35 "
write "Stillman,W. 8.00 50 "
archivo "Callaway,G. 6.00 40 "
archivo "Hanson,P. 5.00 48 "
archivo "Lasard,D. 6.50 35 "
archivo "Stillman,W. 8.00 50 "
archivo.close()
}}
funcion Nomina()
{
nombre[11]: char
hr: int
tarifa, pb=0, pte=0, pr=0: real
ifstream archivo
archivo.open("F:\\Practica 7\\Problema 3.txt")
write "=====INCISO B====="
write " Nombre Tarifa Horas Pago Bruto Pago de Tiempo Extra Pago Regular"
write " -------- -------- ------- ------------ ---------------------- --------------"
for(i=0 to i<4 step i++)
{
archivo>>nombre>>tarifa>>hr;
if(hr>40)
{
pte=(hr-40)*1.5*tarifa
pr=40*tarifa
pb=pte+pr
}
else
{
pte=0
pr=hr*tarifa
pb=pte+pr
}
write " ", nombre, " ", tarifa, " ", hr, " ", pb, " ", pte, " ", pr
}
archivo.close()
}
Problema 4
- Código
- Ejecución
- Pseudocódigo
InicioNumGrupos=0, datos[10]:int
promedio, numdatos:real
archivo:ifstream
archivo.open("C:\\datos.txt")
if(archivo.fail())
then
{
write "El archivo de texto 'datos' no ha sido encontrado"
write "Compruebe que existe o cree uno nuevo en el disco local C"
}
else
{
read(archivo) numdatos
while(!archivo.eof())
{
numdatos=leer_datos(datos, archivo)
promedio=calcular_promedio(datos, numdatos)
write" Conjunto de Datos No.", i+1
desplegar_datos(datos, numdatos, promedio)
NumGrupos=NumGrupos+1
read(archivo) numdatos
}
archivo.close()
}
Fin
int leer_datos(dat[10]:int, numdat:real,archivo:ifstream)
{
i:int
for(i=1 to numdat step i=i+1)
read(archivo) dat[i]
return numdat
}
real calcular_promedio(dat[10]:int, numdat:real)
{
i, suma=0:int
prom:real
for(i=1 to numdat step i=i+1)
suma=suma+dat[i]
prom=suma/numdat
return prom
}
funcion desplegar_datos(int dat[], float numdat, float prom)
{
i:int
write " Datos:"
for(i=1 to numdat step i=i+1)
write " ", dat[i]
write " Promedio: ", prom
write " - - - - - - - - - - - - -"
}
Referencias: Los ejercicios se sacaron del libro C++ para ingeniería y ciencias de Gary J. Bronson, 2da edición. Páginas: 214,215
miércoles, 28 de mayo de 2014
Practica 6
Problema 1
- Pseudocódigo
Inicio
A[7][11],x,y: int
posicion(y,x)
LeerDatos(A)
maximos(A)
Fin
Funcion posicion(posy: int, posx: int)
{
for(posy=2 to 7 step posy++)
{
write " ", (posy-1)
}
for(posx=1 to 11 step pos++)
{
write " ", (posx+30)
}
}
Funcion LeerDatos(A[7][11]: int)
{
w,q: int
for(w=2 to 7 step w++)
{
for(q=1 to 11 step q++)
{
read A[q][w]
}
}
}
Funcion maximos(A[7][11]: int)
{
s,z: int
maximo1=0: int
maximo2=0: int
maximo3=0: int
for(s=2 to 7 step s++)
{
for(z=1 to 11 step z++)
{
if(A[z][s]>=maximo1 && A[z][s]<maximo2)
then
{
maximo1=A[z][s]
}
else if(A[z][s]>=maximo2 && A[z][s]<maximo3)
then
{
maximo2=A[z][s]
}
else if(A[z][s]>=maximo3 && A[z][s]>0)
then
{
maximo3=A[z][s]
}
}
}
write "el primer maximo es :", maximo1
write "el segundo maximo es :", maximo2
write "el tercer maximo es :", maximo3
}
Problema 2
- Código
- Ejecución
- Pseudocódigo
Inicio
A[3,5], X[5], Y[3]: int
dar_valores_arreglo_2d_3x5(A)
dar_valores_arreglo_1d_5(X)
formula(A, X, Y)
desplegar_valores(A, X, Y)
Fin
funcion dar_valores_arreglo_2d_3x5(a[3,5]:int)
{
r, c:int
for(r=0 to 2 step r=r+1)
for(c=0 to 4 step c=c+1)
{
write " Determine el valor de A[", r ,"][", c ,"]: "
read a[r,c]
}
}
funcion dar_valores_arreglo_1d_5(x[5]:int)
{
c:int
for(c=0 to 4 c=c+1)
{
write " Determine el valor de X[", c ,"]: "
read x[c]
}
}
funcion formula(a[3,5]:int, x[5]:int, y[3]:int)
{
r, c:int
for(r=0 to 2 step r=r+1)
{
y[r]=0
for(c=0 to 4 step c=c+1)
y[r]=y[r]+a[r,c]*x[c]
}
}
funcion desplegar_valores(a[3,5]:int, x[5]:int, y[3]:int)
{
r, c:int
for(r=0 to 2 step r=r+1)
{
write " Y[", r ,"] = "
for(c=0 to 4 step c=c+1)
{
if(c!=4)
then
write "(", a[r,c] ," x ", x[c] ,") + "
else
write "(", a[r,c] ," x ", x[c] ,") = "
}
Problema 3
- Código
- Ejecución
- Pseudocódigo
Inicio
matriz[20][20], promedio, sumat, dmayor, dmenor:real
columnas, filas:int
introducir(matriz, filas, columnas, sumat, promedio, dmayor, dmenor)
desplegar(matriz, filas, columnas)
fila(matriz, filas, columnas)
columna(matriz, filas, columnas)
write "El dato mayor es: ", dmayor
write "El dato menor es: ", dmenor
write "La suma total es: ", sumat
write "El promedio es : ", promedio
Fin
funcion desplegar(matriz[20][20]:real, filas:int, columnas:int)
{
r, c:int
write "---------------------------TABLA---------------------------"
for(r=0 to r<filas step r++)
{
for(c=0 to c<columnas step c++)
{
write "| ", matriz[r][c], " |"
}}
}
funcion introducir(matriz[20][20]:real, filas:int, columnas:int, sumat:real, promedio:real, dmayor:real, dmenor:real, dmenor:real)
{
sumat=0
dmayor=0
dmenor
a, b, i, j:int
write "Introduzca el numero de filas :"
read filas
write "Introduzca el numero de columnas: "
read columnas
for(i=0 to i<filas step i++)
{
for(j=0 to j<columnas step j++)
{
write "Introduczca el dato [", (i+1), ",", (j+1), "]: "
read matriz[i][j]
if(matriz[i][j]>dmayor)
then
dmayor=matriz[i][j]
sumat+=matriz[i][j]
dmenor=sumat
}
}
for(a=0 to a<renglones step a++)
{
for(b=0 to b<columnas step b++)
{
if(matriz[a][b]<dmenor)
dmenor=matriz[a][b]
}
}
promedio=(real)sumat/(renglones*columnas)
}
funcion fila(matriz[20][20]:real, filas:int, columnas:int)
{
suma[20]: real
mayor, menor: real
m=0, b=0, i, j, k, x: int
for(i=0 to i<filas step i++)
{
suma[i]=0
for(j=0 to j<columnas step j++)
{
suma[i]+=matriz[i][j]
}
write "La Suma de la fila ", (i+1), " es: ", suma[i]
}
mayor=suma[0]
for(x=1 to x<filas step x++)
{
if(suma[x]<mayor)
then
{
menor=suma[x]
b=x
}}
write " La fila de menor valor es la numero: ", (b+1)
for(k=1 to k<renglones step k++)
{
if(suma[k]>mayor)
{
mayor=suma[k]
m=k
}
}
write "La fila de mayor vaalor es la numero ", (m+1)
}
funcion columna(matriz[20][20]:real, filas:int, columnas:int)
{
suma[20]:real
mayor, menor:real
m=0, b=0, k, x: int
for(i=0 to i<columnas step i++)
{
suma[i]=0
for(j=0 to j<filas step j++)
{
entrada>>matriz[i][j]
suma[i]+=matriz[j][i]
}
write "La suma de la columna ", (i+1), " es: ", suma[i]
}
mayor=suma[0]
for(x=1 to x<columnas step x++)
{
if(suma[x]<mayor)
then
{
menor=suma[x]
b=x
}}
write " La columna de menor valor es la numero: ", (b+1)
for(k=1 to k<columnas step k++)
{
if(suma[k]>mayor)
{
mayor=suma[k]
m=k
}}
write "La columna de mayor valor es la numero: ", (m+1)
}
Problema 4
- Código
- Ejecución
- Pseudocódigo
Inicio
nombre[15][16]: char
calificacion[15][4]: int
promedio[15]: float
write "PROGRAMACION ESTRUCTURADA"
ingresardatos(nombre,calificacion)
promedio_alum(calificacion,promedio)
despliegue(calificacion,nombre,promedio)
promedio_gral(promedio)
write "Alumnos con promedio mas alto: "
promedio_max(nombre,promedio)
Fin
Funcion ingresardatos(nombre[15][16]:char, calificacion[15][4]: int)
{
i,j: int
for(i=o to 15 step i++)
{
write "Nombre del alumno", (i+1), ":"
read nombre[i],16
for(j=0 to 4 step j++)
{
do
{
write "Ingresar Calificacion", (j+1), ":"
read calificacion[i][j]
if(calificacion[i][j]>100 or calificacion[i][j]<0)
{
write "Calificacion no valida"
}
}
while(calificacion[i][j]>100 or calificacion[i][j]<0)
}
}
}
Funcion promedio_alum(calif[15][4]: int, promedio[15]: float)
{
f,c,suma: int
for(f=0 to 15 step f++)
{
suma=0
for(c=0 to 4 step c++)
{
suma = suma + calif[f][c]
}
promedio[f] = suma/4
}
}
Funcion despliegue(calificaciones[15][4]: int, nombre[15][16]: char, promedio[15]: float)
{
i.j: int
write "Nombre Examen 1 Examen 2 Examen 3 Examen 4 Promedio"
for(i=0 to 15 step i++)
{
write " ",nombre[i]
for(j=0 to 4 step j++)
{
write " ",calificacion[i][j]
}
write " ", promedio[i]
}
}
Funcion promedio_gral(promAlm[15]: int)
{
i: int
suma,PromGrl: float
suma = 0
for(i=0 to 14 step i++)
{
suma = suma + promAlm[i]
}
PromGrl = suma/15
write "El promedio general del grupo es: ", PromGrl
}
Funcion promedio_max(nombres[15][16]: char, prom[15]: float)
{
i,j,k,max: int
for(i=0 to 3 step i++)
{
max = 0
for(j=0 to 15 step j++)
{
if(prom[j]>max)
{
max=prom[j]
k=j
}
}
Write " ",nombres[k]," ",prom[k]
prom[k] = 0
}
}
miércoles, 21 de mayo de 2014
Practica 5
Haga programas utilizando funciones en C++. La solución del programa debe ser por diagrama de flujo o pseudocódigo o bloques.
PROBLEMA 1
Una pequeña aerolínea requiere de un sistema automático de reservaciones. A usted se le ha pedido que programe un nuevo sistema. Usted debe escribir un programa que asigne los asientos, en cada vuelo, del único avión de la aerolínea (capacidad de 10 asientos). Su programa debe desplegar el siguiente menú de alternativas:
"Por favor, digite 1 para primera clase"
"Por favor, digite 2 para clase turista "
Si la persona digita 1, su programa debe asignar un asiento en la sección de primera clase (asientos 1 a 5). Si la persona digita 2, su programa debe asignar un asiento en la clase turística (asientos 6 a 10). Su programa debe imprimir un pase de abordado que indique el numero de asiento de la persona y si esta en la sección de primera clase o en la sección de clase turista.
Utilice un arreglo con un solo subconjunto para representar los asientos del avión. Inicialize a cero todos los elementos del arreglo para indicar que todos los asientos están vacíos. Mientras se asigna cada asiento, el valor de los elementos correspondientes al arreglo se establece en 1, para indicar que el asiento ya no esta disponible.
Por supuesto, su programa nunca debe asignar un asiento que ya esta asignado. Cuando la sección de primera clase esta llena, su programa debe preguntar a la persona si acepta que se le coloque en la sección turística (y viceversa). Si acepta, entonces haga la asignación apropiada del asiento. Si no acepta, entonces despliegue el mensaje "El siguiente vuelo parte en tres horas".
Si la persona digita 1, su programa debe asignar un asiento en la sección de primera clase (asientos 1 a 5). Si la persona digita 2, su programa debe asignar un asiento en la clase turística (asientos 6 a 10). Su programa debe imprimir un pase de abordado que indique el numero de asiento de la persona y si esta en la sección de primera clase o en la sección de clase turista.
Utilice un arreglo con un solo subconjunto para representar los asientos del avión. Inicialize a cero todos los elementos del arreglo para indicar que todos los asientos están vacíos. Mientras se asigna cada asiento, el valor de los elementos correspondientes al arreglo se establece en 1, para indicar que el asiento ya no esta disponible.
Por supuesto, su programa nunca debe asignar un asiento que ya esta asignado. Cuando la sección de primera clase esta llena, su programa debe preguntar a la persona si acepta que se le coloque en la sección turística (y viceversa). Si acepta, entonces haga la asignación apropiada del asiento. Si no acepta, entonces despliegue el mensaje "El siguiente vuelo parte en tres horas".
- Pseudocódigo
Inicio
{
asiento[10]={0}:int
clase=0, i:int
w:char
do{
select_clase(clase)
do{
switch(clase)
{
case 1:
{
clase=primera(asiento, clase)
}
break
case 2:
{
clase=segunda(asiento,clase)
}break;
case 3:
{
return 0
}break;
default:
write" Opcion Invalida" break;
}
}while(clase==1||clase==2);
write" Desea continuar (s/n)? "
read w
if(w=='n')
then
{
return 0
}}while(w=='s');
}
funcion segunda(asiento[10]: int, clase: int)
{
i=5: int
s: char
while(i<=9 )
{
if(asiento[i]!=1)
then
{
asiento[i]=1
write "-----PASE DE ABORDAR-----"
write " Vuelo en CLASE TURISTA Asiento Numero: ", (i+1)
}
else
{
i++
if(i==10)
then
{
write" Los asientos de CLASE TURISTA estan llenos. "
write" Desea que lo coloquemos en la primera clase? (s/n) "
read s
if(s=='n')
then
{
write" EL SIGUIENTE VUELO PARTE EN TRES HORAS."
}
else
{
clrscr()
}
if(s=='s')
then
return 1
}}}}
funcion primera(asiento[10]:int, clase:int)
{
s: char
i=0, j=0:int
while(i<=4 && j==0)
{
if(asiento[i]!=1)
then
{
asiento[i]=1
j=1
write"-----PASE DE ABORDAR-----"
write" Vuelo en PRIMERA CLASE Asiento Numero: ",(i+1)
}
else
{
i++
if(i==5)
then
{
write" Los asientos de PRIMERA CLASE estan llenos. "
write" Desea que lo coloquemos en la clase turista? (s/n) "
read s
if(s=='n')
then
{
write" EL SIGUIENTE VUELO PARTE EN TRES HORAS."
}
else{
clrscr()
}
if(s=='s')
then
return 2
}}}}
funcion select_clase(clase: int)
{
clrscr()
write"-----BIENVENIDO-----"
write" Elija una de las siguientes opciones:"
write" Por favor, digite 1 para primera clase"
write" Por favor, digite 2 para clase turista"
write" Por favor, digite 3 para salir"
write" Opcion: "
read clase
clrscr()
}
{
asiento[10]={0}:int
clase=0, i:int
w:char
do{
select_clase(clase)
do{
switch(clase)
{
case 1:
{
clase=primera(asiento, clase)
}
break
case 2:
{
clase=segunda(asiento,clase)
}break;
case 3:
{
return 0
}break;
default:
write" Opcion Invalida" break;
}
}while(clase==1||clase==2);
write" Desea continuar (s/n)? "
read w
if(w=='n')
then
{
return 0
}}while(w=='s');
}
funcion segunda(asiento[10]: int, clase: int)
{
i=5: int
s: char
while(i<=9 )
{
if(asiento[i]!=1)
then
{
asiento[i]=1
write "-----PASE DE ABORDAR-----"
write " Vuelo en CLASE TURISTA Asiento Numero: ", (i+1)
}
else
{
i++
if(i==10)
then
{
write" Los asientos de CLASE TURISTA estan llenos. "
write" Desea que lo coloquemos en la primera clase? (s/n) "
read s
if(s=='n')
then
{
write" EL SIGUIENTE VUELO PARTE EN TRES HORAS."
}
else
{
clrscr()
}
if(s=='s')
then
return 1
}}}}
funcion primera(asiento[10]:int, clase:int)
{
s: char
i=0, j=0:int
while(i<=4 && j==0)
{
if(asiento[i]!=1)
then
{
asiento[i]=1
j=1
write"-----PASE DE ABORDAR-----"
write" Vuelo en PRIMERA CLASE Asiento Numero: ",(i+1)
}
else
{
i++
if(i==5)
then
{
write" Los asientos de PRIMERA CLASE estan llenos. "
write" Desea que lo coloquemos en la clase turista? (s/n) "
read s
if(s=='n')
then
{
write" EL SIGUIENTE VUELO PARTE EN TRES HORAS."
}
else{
clrscr()
}
if(s=='s')
then
return 2
}}}}
funcion select_clase(clase: int)
{
clrscr()
write"-----BIENVENIDO-----"
write" Elija una de las siguientes opciones:"
write" Por favor, digite 1 para primera clase"
write" Por favor, digite 2 para clase turista"
write" Por favor, digite 3 para salir"
write" Opcion: "
read clase
clrscr()
}
PROBLEMA 2
Escriba un programa para generar 14 numero enteros en un arreglo llamado emax y encuentre el máximo valor introducido. Después de desplegar los números, imprima estos dos mensajes:
El valor máximo es:
Este es el elemento numero_____en la lista de números
También localice el menor de los datos introducidos.
- Pseudocódigo
Inicio
numeros[14] : int
LeerDatos(numeros)
write "El valor maximo es: "
mayor(numeros)
Write "Este es el elemento numero"
posicion(numeros)
Write "en la lista de numeros"
write "El numero menor es: "
menor(numeros)
Fin
Funcion LeerDatos(valor[14]: int)
{
i: int
for(i=0 to 13 step i++)
{
write "Numero", (i+1), " : "
read valor[i]
}
}
Funcion mayor(emax[14]: int)
{
i,mayor: int
mayor=emax[0]
for(i=0 to 13 step i++)
{
if (emax[i]>mayor)
mayor=emax[i]
}
write " ",mayor
}
Funcion menor(emin[14]: int)
{
int i,menor: int
menor=emin[0]
for(i=0 to 13 step i++)
{
if (emin[i]<menor)
menor=emin[i]
}
write" ",menor
}
Funcion posicion(p[14]: int)
{
int i, pos=0, mayor=p[0]
for(i=0 to 13 step i++)
{
if (p[i]>mayor)
{
mayor=p[i]
pos=i+1
}
}
write" ",pos
}
numeros[14] : int
LeerDatos(numeros)
write "El valor maximo es: "
mayor(numeros)
Write "Este es el elemento numero"
posicion(numeros)
Write "en la lista de numeros"
write "El numero menor es: "
menor(numeros)
Fin
Funcion LeerDatos(valor[14]: int)
{
i: int
for(i=0 to 13 step i++)
{
write "Numero", (i+1), " : "
read valor[i]
}
}
Funcion mayor(emax[14]: int)
{
i,mayor: int
mayor=emax[0]
for(i=0 to 13 step i++)
{
if (emax[i]>mayor)
mayor=emax[i]
}
write " ",mayor
}
Funcion menor(emin[14]: int)
{
int i,menor: int
menor=emin[0]
for(i=0 to 13 step i++)
{
if (emin[i]<menor)
menor=emin[i]
}
write" ",menor
}
Funcion posicion(p[14]: int)
{
int i, pos=0, mayor=p[0]
for(i=0 to 13 step i++)
{
if (p[i]>mayor)
{
mayor=p[i]
pos=i+1
}
}
write" ",pos
}
PROBLEMA 3
Escriba un programa para introducir los siguientes números enteros en un arreglo llamado calificaciones: 89, 95, 72, 83, 99, 54, 86, 75, 92, 73, 79, 75, 82, 93. Al introducir cada numero , súmelo a un total. Después de introducir todos los números y obtener el total, calcule el promedio y úselo para determinar la desviación de cada valor con respecto al promedio. Almacene cada desviación en un arreglo llamado desviaciones. Haga que el programa despliegue cada desviación a un lado del elemento correspondiente del arreglo calificaciones y calcule la varianza.
- Pseudocódigo
Inicio
cal[14]:int
desv[14]:real
leer(cal)
total(cal)
write"el total es:", total
promedio(total)
write "el promedio es" promedio
desviacion(promedio, cal, desv)
variancia(desv)
Fin
funcion leer(cal[14]:int)
{
e: int
for(e=0 to 14 step e++)
{
write "calificacion", cal[e]
read cal[14]
}
}
funcion total(cal[14])
{
t,i: int
t=0;
for(i=0 to 14 step i++)
{
t=Cal[14]+t
}
return t
}
funcion promedio(total)
{
prom: real
prom=total/14.0
return prom
}
funcion desviacion(promedio, cal, desv)
{
h: int
for (h=0 to 14 step h++)
{
desv[h]=cal-promedio
write "la desviacion de la calificacion", cal," es ",desv
}
}
funcion variancia(desv)
{
x: int
real desvtotal,variancia
desvtotal=0
for(x=0 to 14 step x++)
{
desvtotal=(desv*desv)+desvtotal
}
variancia=desvtotal/14.0
write "la variancia es de ", variancia
}
PROBLEMA 4
Escriba un programa que especifique tres arreglos unidimensionales denominados corriente, resistencia y voltios. Cada arreglo debe ser capaz de almacenar 8 elementos. Introduzca valores para los arreglos, corriente y resistencia. Los datos introducidos en el arreglo voltios deben ser el producto de los valores correspondientes a los arreglos corriente y resistencia (entonces voltios[i]=corriente[i]*resistencia[i]). Después de introducir los datos, despliegue la siguiente salida:
Corriente Resistencia Voltios
Despliegue el valor correcto de cada encabezado.
- Pseudocódigo
Inicio
resistencia[8],corriente[8],voltios[8]:int
write"Introduzca la resistencia"
introducir_datos(resistencia)
write"Introduzca la correinte"
introducir_datos(corriente)
write"Corriente Resistencia Voltios"
write"------------------------------------"
desplegar(voltios,resistencia,corriente)
fin
funcion introducir_datos(valor[8]:int)
{
i: int
for(i=0 to 8 step i++)
{
write "Dato",(i+1),":"
read valor[i]
}
}
funcion desplegar(v[8]:int, r[8]:int, c[8]:int)
{
i: int
for(i=0 to 8 step i++)
{
v[i] = r[i] * c[i]
write" ",c[i], " ", r[i], " ",v[i]
}
}
resistencia[8],corriente[8],voltios[8]:int
write"Introduzca la resistencia"
introducir_datos(resistencia)
write"Introduzca la correinte"
introducir_datos(corriente)
write"Corriente Resistencia Voltios"
write"------------------------------------"
desplegar(voltios,resistencia,corriente)
fin
funcion introducir_datos(valor[8]:int)
{
i: int
for(i=0 to 8 step i++)
{
write "Dato",(i+1),":"
read valor[i]
}
}
funcion desplegar(v[8]:int, r[8]:int, c[8]:int)
{
i: int
for(i=0 to 8 step i++)
{
v[i] = r[i] * c[i]
write" ",c[i], " ", r[i], " ",v[i]
}
}
PROBLEMA 5
Haga un programa para generar 25 números en forma aleatoria y los ordene en forma ascendente.
- Ejecución
- Pseudocódigo
Inicio
valor[25]:int
generar_numero(valor)
ordenar(valor)
desplegar(valor)
Fin
funcion generar_numeros(v[25]:int)
{
i:int
srand(time(NULL))
write "Valores Aleatorios"
for(i=0 to 24 step i=i+1)
{
v[i]=rand()%100+1
write "Valor No.",(i+1),": ",v[i]
}
}
funcion ordenar(v[25]:int)
{
i, j, vtemp:int
for(i=0 to 24 step i=i+1)
for(j=0 to 23 step j=j+1)
if(v[j]>v[j+1])
then
{
vtemp=v[j]
v[j]=v[j+1]
v[j+1]=vtemp
}
}
funcio desplegar(v[25]:int)
{
i:int
write "Valores Ordenados"
for(i=0 to 12 step i=i+1)
write v[i], ", "
for(i=13 to 24 step i=i+1)
{
if(i!=24)
then
write v[i], ", "
else
write v[i], "."
}
}
PROBLEMA 6
Haga un programa para generar 30 números en forma aleatoria y despliegue una lista de los números pares y otra lista de números impares.
- Ejecución
- Pseudocódigo
Inicio
parmax, impmax, valor[30], pares[30], impares[30]:int
generar_numeros(valor)
separador(valor, pares, impares, parmax, impmax)
Write "Valores Impares: ",impmax
desplegar_lista(impares, impmax)
Write "Valores Pares: ",parmax
desplegar_lista(pares, parmax)
Fin
funcion generar_numeros(v[25]:int)
{
i:int
srand(time(NULL))
write "Valores Aleatorios"
for(i=0 to 29 step i=i+1)
{
v[i]=rand()%100+1
write "Valor No.",(i+1),": ",v[i]
}
}
funcion separador(v[30]:int, par[30]:int, imp[30]:int, pmax:int, imax:int)
{
i, contp=0, conti=0:int
residuo:real
pmax=0
imax=0
for(i=0 to 29 step i=i+1)
{
residuo=v[i]%2
if(residuo==0)
then
{
par[contp]=v[i]
contp=contp+1
pmax=pmax+1
}
else
{
imp[conti]=v[i]
conti=conti+1
imax=imax+1
}
}
}
funcion desplegar_lista(lista[30]:int, valmax:int)
{
i:int
for(i=0 to valmax-1 step i=i+1)
{
if(i!=valmax-1)
then
write lista[i], ", "
else
write lista[i], "."
}
}
Suscribirse a:
Entradas (Atom)