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
Inicio

write "======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

funcion Crear()
{

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
Inicio

NumGrupos=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
- Código

- Ejecución

- 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".
- Código

- Ejecución

- 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()
}

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.
- Código

- Ejecución

- 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
 }


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.
- Código

- Ejecución

- 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.
- Código

- Ejecución

- 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]
}
}
PROBLEMA 5
Haga un programa para generar 25 números en forma aleatoria y los ordene en forma ascendente.
- Código

- 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.
- Código

- 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], "."
}
}