P. 1
EJERCICIOS PSEINT

EJERCICIOS PSEINT

|Views: 6.749|Likes:
Publicado porjhonedwardvasquez

More info:

Published by: jhonedwardvasquez on Feb 23, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

08/14/2013

pdf

text

original

// Juego simple que pide al usuario que adivine un numero en 10 intentos Proceso Adivina Numero intentos<-9; num_secreto <- azar

(100)+1; Escribir "Adivine el numero (de 1 a 100):"; Leer num_ingresado; Mientras num_secreto<>num_ingresado & intentos>0 Hacer Si num_secreto>num_ingresado Entonces Escribir "Muy bajo"; Sino Escribir "Muy alto"; FinSi Escribir "Le quedan ",intentos," intentos:"; Leer num_ingresado; intentos <- intentos-1; FinMientras Si intentos=0 Entonces Escribir "El numero era: ",num_secreto; Sino Escribir "Exacto! Usted adivino en ",11-intentos," intentos."; FinSi FinProceso

Proceso Factorización Escribir "Ingrese el numero: "; Leer num; Escribir "Factorizacion: "; factorizar<-verdadero; Mientras factorizar & num>1 hacer div<-0; Si num/2 = trunc(num/2) Entonces Escribir 2; num<-num/2; Sino div<-1; factor_primo<-Verdadero; Mientras div<=rc(num) & factor_primo Hacer div <- div+2; Si num/div = trunc(num/div) Entonces factor_primo <- Falso; FinSi FinMientras Si factor_primo Entonces escribir num; factorizar<-falso; sino escribir div; num<-num/div; factor_primo<-verdadero;

FinSi FinSi FinMientras FinProceso

// El objetivo del juego es mover los discos de la torre 1 a la 3 en la // menor cantidad de movimientos posible. No se puede colocar un disco de // un tamanio sobre otro mas chico // // // // Hay una matriz que representa las torres, cada columna contiene nros que representan los tamanios de los discos en esas torres (solo interesan los valores hasta la cantidad de discos de esa torre). Cuantos discos tiene cada torre lo dice el vector cant_discos.

Proceso Hanoi Dimension torres[3,10], cant_discos[3]; // pedir y validar cuantos discos colocar en la primer torre Escribir "Ingrese el nro de discos (1-5):"; leer discos; mientras discos<1 | discos>8 Hacer Escribir "El numero de discos debe ser mayor a 0 y menor a 5:"; leer discos; finmientras // inicializar los datos cant_discos[1]<-discos; cant_discos[2]<-0; cant_discos[3]<-0; para i<-1 hasta discos hacer torres[1,i]<-discos-i+1; finpara cant_movs<-0; // jugar! mientras (cant_discos[3]<>discos) Hacer // mientras no esten todos los discos en la tercer torre, el juego sigue para i<-1 hasta 3 Hacer // dibujar las tres torres escribir ""; escribir "Torre ",i; si cant_discos[i]=0 Entonces Escribir ""; sino para j<-cant_discos[i] hasta 1 con paso -1 Hacer // recorrer los discos de la torre, de arriba hacia abajo segun torres[i,j] Hacer // dibujar cada disco 1: escribir " XX"; 2: escribir " XXXXXX"; 3: escribir " XXXXXXXXXX";

si t1<0 | t1>3 | t2<0 | t2>3 Entonces // controlar que el nro de torre sea valido escribir "Movimiento invalido". si cant_discos[t2]<>0 entonces // controlar que la torre dos no tenga discos o tenga discos mas grandes si torres[t2. 5: escribir " XXXXXXXXXXXXXXXXXX". escribir "". torres[t2. FinSi FinSi si puede_mover Entonces // si paso todos los controles. leer t1. sino si cant_discos[t1]=0 Entonces // controlar que la torre 1 tengo al menos un disco escribir "Movimiento invalido".cant_movs+1.cant_discos[t2]]<disco_a_mover Entonces puede_mover<-Falso. 8: escribir " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX". cant_discos[t2]<-cant_discos[t2]+1. 7: escribir " XXXXXXXXXXXXXXXXXXXXXXXXXX". leer t2.cant_discos[t2]] <disco_a_mover.4: escribir " XXXXXXXXXXXXXX". Sino escribir "Movimiento invalido". . mover cant_movs <. finsi FinSi finsi finmientras // mostrar resultado escribir "".cant_discos[t1]]. escribir "". // obtener tamanio del disco que se quiere mover puede_mover<-verdadero. FinPara // solicitar movimiento Escribir "Mover desde la torre: ". 6: escribir " XXXXXXXXXXXXXXXXXXXXXX". Sino disco_a_mover <. cant_discos[t1]<-cant_discos[t1]-1. Escribir "hacia la torre: ".torres[t1. finsegun FinPara finsi Escribir " ----------------------------------".

Escribir 'ArcTangente:'.Truncar.Separar parte entera y decimal'. Escribir '5 . operadores y funciones matematicas Proceso Matematicas Salir<-0.Hallar Factorial'. Repetir Escribir ' '. FinProceso // Este ejemplo muestra el uso de expresiones. Escribir '2 .Cos(N). Escribir '4 . f<-1.Averiguar si es primo'.para Salir'. Escribir '7 . Funcion Exponencial'. Coseno. Escribir 'Redondear:'.exp(N). Escribir 'Presione Enter para continuar'. Escribir '6 .Sen(N).abs(N). Sino r<-1. ArcoTangente'.Raiz Cuadrada'. Escribir 'Coseno:'.redon(N).Trunc(n). Escribir '9 . Sino Escribir 'Log Nat. Escribir ' '. 2: Si N<=0 Entonces Escribir 'El numero debe ser mayor a cero!'.n-Trunc(n). Escribir '8 . Redondear'.Atan(N). escribir "".:'. Escribir 'Func Expon.Lograritmo Natural. Escribir '3 . Leer Opcion.Seno.Ingresar Otro Numero'. Sino Si abs(N)>50 Entonces Escribir 'Resultado muy grande!'. 4: Escribir 'Raiz Cuad. Leer N. Escribir 'Parte Decimal:'.escribir "Juego finalizado en ". Escribir ' '. 5: Escribir 'Valor Abs. Leer x.rc(N)." movimientos!".:'.:'.ln(N). Segun Opcion Hacer 1: Escribir 'Seno:'. Escribir 'Ingresar Numero:'.cant_movs. 7: Si N<>Trunc(N) Entonces Escribir 'El numero debe ser entero!'. Escribir '1 . Escribir '0 .Valor Absoluto'.trunc(N). FinSi 3: Escribir 'Turncar:'. 6: Escribir 'Parte Entera:'.:'. .

Si f=3 Entonces F<-4.Primo. sino Nu<-N. FinSi f<-f+2. Leer N. Si N/2=trunc(N/2) Entonces Primo<-'No'. Sino r<-f*r. FinSi f<-f+1. f<-3.f-2. FinSi FinSi 8: Si N<>Trunc(N) Entonces Escribir 'El numero debe ser entero!'.r. FinSegun Hasta que Salir=1 FinProceso .Mientras f<=abs(N) Hacer Si N<0 Entonces r<-(-f)*r. FinSi Si Primo='No' Entonces Escribir N. FinMientras Escribir 'Numero Primo:'. FinSi Nu<-RC(Nu).'x'. FinSi FinSi 9: Escribir 'Ingrese Numero:'. FinMientras Escribir 'Factorial:'.N/(f-2). 0: Salir<-1. FinSi Si N<0 entonces Nu<-N*-1.'='. De Otro Modo: Escribir 'Opcion No Valida!'. Sino Primo<-'Si'. Mientras f<=Nu & Primo='Si' Hacer Si N/F=trunc(N/F) Entonces Primo<-'No'.

Mientras nombre<>"" Hacer cant<-cant+1. Para i<-1 Hasta cant Hacer Escribir " ". Repetir // leer un nombre y ver que no este ya en la lista Leer nombre. lista[i]<-lista[pos_menor]. lista[cant]<-nombre. se_repite<-Falso. FinPara FinProceso . lista[pos_menor]<-aux. FinSi FinPara // intercambia el que estaba en i con el menor que encontro aux<-lista[i].lista[i]. Para j<-i+1 Hasta cant Hacer Si lista[j]<lista[pos_menor] Entonces pos_menor<-j. Escribir "Ingrese los nombres (enter en blanco para terminar):". Leer nombre. FinSi FinPara Hasta Que ~se_repite FinMientras // ordenar Para i<-1 Hasta cant-1 Hacer // busca el menor entre i y cant pos_menor<-i. FinPara // mostrar como queda la lista Escribir "La lista ordenada es:".// Se ingresa una lista de nombres (la lista termina // cuando se ingresa un nombre en blanco) no permitiendo // ingresar repetidos y luego se ordena y muestra Proceso OrdenaLista Dimension lista[200]. Para i<-1 Hasta cant Hacer Si nombre=lista[i] Entonces se_repite<-Verdadero. // leer la lista cant<-0.

(-b)/(2*a)."-". r2 <. acum<-acum+dato.pimag. Leer c.((-b)-rc(disc))/(2*a). Escribir "Raiz 1: ".b^2-4*a*c. Leer b. // determinar si son reales o imaginarias disc <.":". FinPara prom<-acum/n. Leer n. Leer dato.(-b)/(2*a). Escribir "Ingrese el coeficiente C:".i.rc(-disc)/(2*a). Escribir "El promedio es: ". FinSi FinSi FinProceso . Escribir "Raiz 2: ". Escribir "Ingrese el coeficiente B:". Leer a."i".r.// Calcula el promedio de una lista de N datos Proceso Promedio Escribir "Ingrese la cantidad de datos:".r2."+". Escribir "Raiz 2: ". pimag<.r1.prom.preal."i".preal.pimag. Escribir "Raiz 1 = Raiz 2: ". acum<-0. Para i<-1 Hasta n Hacer Escribir "Ingrese el dato ". Escribir "Raiz 1: ".((-b)+rc(disc))/(2*a). Sino r1 <. FinProceso // calcula las raices de una ecuacion de segundo grado Proceso Resolvente // cargar datos Escribir "Ingrese el coeficiente A:". Sino Si disc=0 Entonces // ver si son iguales o distintas r <. Si disc<0 Entonces // si son imaginarias preal<.

I]+Cant[3. Para I<-1 Hasta 5 Hacer TotSuc<-TotSuc+(Cant[J. Cant[4.I]*Prec[i]). // * La sucursal de mayor recaudacion. Para J<-1 Hasta 4 Hacer TotSuc<-0.I].J.I]. FinPara // Leer Cantidades Para J<-1 Hasta 4 Hacer Para I<-1 Hasta 5 Hacer Escribir 'Ingrese Cant. // Informar Sucursal 1.':'. Articulo 3:'. // Acumular total de cada sucursal (TotSuc) y // total de la empresa (TotEmp) MayorRec<-0. Informar: // * Las cantidades totales de cada articulo. .Suc2. de Articulo '.I]+Cant[4.I]+Cant[2. FinPara FinPara // Sumar cantidades por articulos Escribir 'Cantidades por articulos:'.':'.Suma.3]. FinPara Escribir 'Total Sucursal 2:'. FinPara // Informar Total de Articulos Sucursal 2 Suc2<-0. en Sucursal '. Articulo 3: Escribir 'Sucursal 1.'. Para I<-1 Hasta 5 Hacer Suma<-Cant[1. Leer Cant[J.I.5]. // * La cantidad de articulos en la sucursal 2. // Leer Precios Para I<-1 Hasta 5 Hacer Escribir 'Ingrese Precio Articulo '.// Problema Ejemplo: // Se ingresan los precios de 5 articulos y las cantidades vendidas // por una empresa en sus 4 sucursales. Escribir 'Total articulo '. Proceso Sucursales // Inicializar Prec=Arreglo de precios y Cant=Arreglo para cantidades Dimension Prec[5].':'. // * La recaudacion total de cada sucursal.I]. // * La cantidad del articulo 3 en la sucursal 1. Para I<-1 Hasta 5 Hacer Suc2<-Suc2+Cant[2. TotEmp<-0. Leer Prec[I]. // * La recaudacion total de la empresa.Cant[1.I.I. NumMayor<-0.

Leer l1.':'. FinProceso // Lee los tres lados de un triangulo rectangulo. Escribir "Ingrese el lado 2:". cat2<-l3. Si TotSuc>MayorRec entonces MayorRec<-TotSuc. Si l1>l3 Entonces hip<-l1. Leer l3. Leer l2. cat2<-l1. Sino Escribir "No es un triangulo rectangulo.FinPara Escribir 'Recaudaciones Sucursal '.NumMayor.". Sino hip<-l3. Sino hip<-l3. cat2<-l2. Escribir "Ingrese el lado 3:". Si l2>l3 Entonces hip<-l2. Escribir 'Sucursal de Mayor Recaudacion:'. FinPara Escribir 'Recaudacion total de la empresa:'. determina // si corresponden (por Pitargoras) y en caso afirmativo // calcula el area Proceso TrianguloRectangulo // cargar datos Escribir "Ingrese el lado 1:". Escribir "El area es: ".TotSuc.J.TotEmp. FinSi TotEmp<-TotEmp+TotSuc.area. FinSi Sino cat1<-l1. FinSi FinSi // ver si cumple con Pitagoras Si hip^2 = cat1^2 + cat2^2 Entonces // calcualar area area<-(cat1*cat2)/2. cat2<-l3. FinSi . // encontrar la hipotenusa (mayor lado) Si l1>l2 Entonces cat1<-l2. NumMayor<-J.

a) Funcion resto(a.0.0/60. FinProceso 1. metros_por_segundo. Escribir "Valor de metros por segundo: ".b parametro por valor] inicio resto<-a-a/b*b fin b) Funcion primo(a) : logico [entero: a parametro por valor] variables: entero: i inicio primo<-v para i<-2 hasta a/2 hacer si resto(a. Leer kilometros_por_hora.0/60.b) : entero [entero: a. Proceso Programa Escribir "Ingrese el valor de kilometros por hora:".b parametro por valor] inicio mientras a<>b si a>b a<-a-b sino b<-b-a finsi finmientras mcd<-a fin d) funcion fact(a) : entero [entero: a parametro por valor] variables .FinProceso Para visualizar el diagrama de flujo copie este código en PSeInt y presione F7.b) : entero [entero: a. metros_por_segundo<-kilometros_por_hora*1000.i)=0 entonces primo<-f finsi finpara fin c) Funcion mcd(a.

i inicio f<-1 fibo<-0 para i<-1 hasta a hacer fibo<-f+fibo f<-fibo-f finpara fin f) funcion nac(a) : cadena [entero: a parametro por valor] inicio segun a hacer 0 : nac<-'cero' 1 : nac<-'uno' 2 : nac<-'dos' 3 : nac<-'tres' 4 : nac<-'cuatro' 5 : nac<-'cinco' 6 : nac<-'seis' 7 : nac<-'siete' 8 : nac<-'hocho' 9 : nac<-'nuebe' 10 : nac<-'dies' 11 : nac<-'onse' 12 : nac<-'dose' 13 : nac<-'trese' 14 : nac<-'catorse' 15 : nac<-'quinse' 16 : nac<-'dihesiseis' 17 : nac<-'diesiete' 18 : nac<-'diezyocho' 19 : nac<-'diezynueve' 20 : nac<-'beinte' de otro modo nac<-'n° fuera de rango' finsegun fin g) procedimiento bienvenida(a) .entero: i inicio fact<-1 para i<-1 hasta a hacer fact<-fact*i finpara fin e) funcion fibo(a) : entero [entero: a parametro por valor] variables entero: f.

variable cadena: nombre inicio escribir 'Ingrese su nombre' leer nombre escribir '¡¡Bienvenid@ '.b) finsi fin 2.b) [cadena: a.b parametro por referencia] variables entero : aux inicio aux<-a a<-b b<-a fin j) procedimiento menormayor(a. fact inicio fact<-1 para i<-1 hasta A hacer fact<-fact*i .nombre.Algoritmo TP7_EJ2 Variables entero: N caracter: resp funcion primo(A) : logico [entero: A parametro por valor] variables entero: i inicio primo<-v para i<-2 hasta A/2 hacer si A MOD i = 0 entonces primo<-f finsi finpara fin procedimiento mostrarfact(A) [entero: A parametro por valor]} variables entero: i.b parametro por referencia] inicio si b<a entonces intercambio(a.'!!' fin h) procedimiento intercambio(a.b) [entero a.

': '.B) : logico [entero: A.B] inicio divisible<-f si A MOD B = 0 entonces divisible<-v finsi fin funcion fibo(A): entero [entero: A parametro por valor] variables entero: f.fact fin funcion divisible(A. i inicio f<-1 fibo<-0 para i<-1 hasta A hacer fibo<-f+fibo f<-fibo-f finpara fin procedimiento letras(A) [entero: A parametro por valor] inicio Segun A hacer 0 : escribir 'cero' 1 : escribir 'uno' 2 : escribir 'dos' 3 : escribir 'tres' 4 : escribir 'cuatro' 5 : escribir 'cinco' 6 : escribir 'seis' 7 : escribir 'siete' 8 : escribir 'ocho' 9 : escribir 'nueve' 10 : escribir 'diez' 11 : escribir 'once' 12 : escribir 'doce' 13 : escribir 'trece' 14 : escribir 'catorce' 15 : escribir 'quince' 16 : escribir 'dieciseis' 17 : escribir 'diecisiete' 18 : escribir 'dieciocho' 19 : escribir 'diecinueve' 20 : escribir 'veinte' de otro modo escribir 'n° fuera de rango' finsegun fin Inicio Repetir escribir 'Ingrese un N°' .finpara escribir 'Factorial de '.A.

stock) si op<>5 entonces repetir menu(op) si op=1 entonces .Algoritmo TP7_EJ3 variables entero: stock caracter: op procedimiento menu(opc) [caracter: opc parametro por referencia] inicio escribir '***************************' escribir '* MENU *' escribir '***************************' escribir '* 1 : VALOR INICIAL STOCK *' escribir '* 2 : RETIRAR CANTIDAD *' escribir '* 3 : AUMENTAR STOCK *' escribir '* 4 : MOSTRAR STOCK *' escribir '* 5 : SALIR *' escribir '***************************' escribir '* ELIJA SU OPCION *' escribir '***************************' leer opc fin procedimiento segmenu(opp.Leer N si primo(N) entonces mostrarfact(N) finsi letras(N) escribir 'continuar ? (S/N)' leer resp hasta que resp='n' o resp'N' fin.stok '5' : escribir 'HASTA MAÑANA' finsegun fin Inicio repetir stock<-0 menu(op) hasta que op=1 o op=5 segmenu(op. 3.stok) [caracter: opp parametro por valor] [entero: stok parametro por referencia] variebles entero: cant inicio segun opp '1': escribir 'INGRESE STOCK INICIAL' leer stok '2' : escribir 'INGRESE CANTIDAD A RETIRAR' leer cant stok<-stok-cant '3' : escribir 'INGRESE CANTIDAD A AUMENTAR' leer cant stok<-stok+cant '4' : escribir 'STOCK ACTUAL: '.

100] de real : vector variables vector: vec entero: op.min escribir 'posicion: '..n) [vector: v parametro por referencia] .pos fin procedimiento cargar(v. num funcion ordenado(v. por real: min inicio bmin<-v pos<-0 para i<-1 hasta n hacer si bmin entonces bmin<-f min<-v(i) pos<-i sino si v(i)<min entonces min<-v(i) pos<-i finsi finsi finpara escribir 'minimo: '.n) : logico [vector: parametro por valor] [entero: n parametro por valor] variables entero: i inicio ordenado<-v para i<-1 hasta n-1 hacer si v(i)<v(i+1) entonces ordenado<-f finsi finpara fin procedimiento minimo(v.escribir 'Opcion deshabilitada' sino si op>=2 y op<=4 entonces segmenu(op. 4.stock) finsi finsi hasta que op=5 finsi Fin.n) [vector: v parametro por valor] [entero: n parametro por valor] variables logico: bmin entero: i.arreglo [1.

n) [vector: v parametro por valor] [entero: n parametro por valor] variables entero: i real: pro inicio .n) : real [vector: v parametro por valor] [entero: n parametro por valor] variable real: s entero: i inicio s<-0 para i<-1 hasta n hacer s<-s+v(i) finpara promedio<-s/n fin procedimiento mayorprom(v.n) [vector: v parametro por valor] [entero: n parametro por valor] variables entero: i inicio para i<-1 hasta n hacer escribir v(i) finpara fin procedimiento menu() inicio escribir '***************************' escribir '* MENU *' escribir '***************************' escribir '* 1 : CARGAR VECTOR *' escribir '* 2 : MOSTRAR VECTOR *' escribir '* 3 : SUPERAN AL PROMEDIO *' escribir '* 4 : ORDENADO *' escribir '* 5 : MINIMO *' escribir '* 6 : SALIR *' escribir '***************************' escribir '* ELIJA SU OPCION *' escribir '***************************' fin funcion promedio(v.[entero: n parametro por referencia] variables entero i inicio escribir 'Ingrese cantidad de elementos' leer n para i<-1 hasta n hacer leer v(i) finpara fin procedimiento mostrar(v.

Algoritmo TP7.num) entonces escribir 'Quedate trankilo q esta ordenado' sino escribir 'Todo mal.EJ5 tipo arreglo [1.num) 2 : mostrar(vec..num) 3 : mayorprom(vec. var2.1000] de entero: vector constantes: MAX: 1000 variables vector: vec entero: op.i finsi finpara fin Inicio procedimiento menu() leer op segun op 1 : cargar(vec.pro<-promedio(v. esta re desordenado' finsi 5 : minimo(vec.n) [vector: v parametro por referencia] [entero: n parametro por referencia] variable .n) para i<-1 hasta n hacer si v(i)>pro entonces escribir v(i) escribir 'posicion: '.num) 6 : escribir 'Hasta mañana!' finsegun Fin. var1.elem procedimiento menu(opc) [entero: opc parametro por referencia] inicio escribir '**MENU**' escribir '1: Cargar Vector' escribir '2: Listar' escribir '3: Insertar valor en posicion' escribir '4: Agregar Valor' escribir '5: Intercambias elementos iguales por otro' escribir '6: Cambiar elemento unico' escribir '7: Eliminar un elemento' escribir '8: Eliminar elementos que coincidan con un valor' escribir '0: Salir' escribir 'Elija su opcion:' leer opc fin procedimiento cargar(v. ter.num) 4 : si ordenado(vec.

v2) [vector: v parametro por referencia] [entero: n.pos) [vector: v parametro por referencia] [entero: n parametro por referencia] [entero: pos parametro por valor] variables entero: i inicio para i<-n hasta pos con paso -1 hacer v(i+1)<-v(i) finpara escribir 'Inserte valor' leer v(pos) n<-n+1 fin procedimiento agregar(v.n leer v(n) escribir 'mas datos? (s/n)' leer op hasta que op='n' o op='N' fin procedimiento listar(v.n) [vector: v parametro por valor] [entero: n parametro por valor] variable enteor: i inicio para i<-1 hasta n hacer escribir v(i) finpara fin procedimiento insertar(v. v2 parametro por valor] variables entero: i inicio para i<-1 hasta n hacer si v(i)=v1 entonces v(i)<-v2 finsi finpara fin .n) [vector: v parametro por referencia] [entero: n parametro por referencia] inicio n<-n+1 escribir 'Ingrese el valor a agregar' leer v(n) fin procedimiento intercambiar(v.v1. v1.caracter: op inicio n<-0 repetir n<-n+1 escribir 'Ingrese el valor numero: '.n.n.

n.k) [vector: v parametro por referencia] [entero: n parametro por referencia] [entero: k parametro por valor] variables entero: i inicio para i<-1 hasta n hacer si v(i)=k entonces elimpos(v.ter) 5: escribir 'Ingrese termino a ser reemplazado por otro valor' leer var1 escribir 'Ingrese valor a reemplazar' .n. pos parametro por valor] inicio escribir 'Ingrese el valor' leer v(pos) fin procedimiento elimpos(v.n.pos) [vector: v parametro por referencia] [entero: n.ter) 3: leerpos() insertar(vec.n.ter) 2: listar(vec.leerpos) 4: agregar(vec.ter.procedimiento cambiar(v.i) i<-i-1 finsi finpara fin funcion leerpos() : entero inicio repetir escribir 'Ingrese posicion' leer leerpos si MAX<leerpos entonces escribir 'El limite del vector es 1000' finsi hasta que leerpos<MAX fin INICIO repetir menu(op) segun op hacer 1: cargarvector(vec.pos) [vector: v parametro por referencia] [entero: n parametro por referencia] [entero: s parametro por valor] variables entero: i inicio para i<-pos hasta n-1 hacer v(i)<-v(i+1) finpara n<-n-1 fin procedimiento elimelem(v.

var2) 6: leerpos() cambiar(vec.n) [vector: v parametro por valor] [entero: n parametro por valor] variables entero: i inicio para i<-1 hasta n hacer escribir v(i) finpara fin procedimiento eliminar(v.n) [vector: v parametro por referencia] [entero: n parametro por referencia] variables entero i inicio escribir 'Ingrese cantidad de elementos' leer n para i<-1 hasta n hacer leer v(i) finpara fin procedimiento mostrar(v.leer var2 intercambio(vec.ter.EJ5 arreglo [1.(entre 0 y 8)' finsegun hasta que op=0 fin iAlgoritmo TP7.pos) [vector: v parametro por referencia] [entero: n parametro por referencia] [entero: pos parametro por valor] variables entero: i inicio para i<-pos hasta n-1 hacer v(i)<-v(i+1) finpara n<-n-1 fin procedimiento elimrepet(v.100] de caracter : vector variables vector: vec entero: num procedimiento cargar(v.pos) 8: escribir 'Ingrese elemento a eliminar' leer elem elimelem(vec.n...ter.leerpos) 7: leerpos() elimpos(vec.ter.n) [vector: v parametro por valor] [entero: n parametro por valor] variables .elem) 0: escribir 'Hasta mañana' de otro modo escribir 'Eleji una opcion de las que te di.ter.var1.

repet procedimiento cargar(v.m parametro por valor] variables entero: i inicio para i<1 hasta m hacer escribir v(i) finpara fin ..num) Fin.entero: i.i) finsi finpara finpara fin Inicio cargar(vec.num) escribir "VECTOR ORIGINAL:" mostrar(vec. vent.num) escribir "VECTOR SIN ERRORES:" mostrar(vec.n) [vector:v parametro por referencia] [entero:n parametro por valor] variables entero: i caracter: aux Inicio aux<-v(1) para i<-1 hasta n hacer v(i)<-v(i+1) finpara v(n)<-aux fin procedimiento mostrar(v.n.j inicio para i<-1 hasta n-1 hacer para j<-1 hasta n hacer si v(i)=v(j) entonces eliminar(v.100] de caracter: vector variables vector: vec entero: ter.n) [vector:v parametro por referencia] [entero:n parametro por referencia] variables entero: i Inicio escribir 'Ingrese cantidad de terminos' leer n para i<1 hasta n hacer leer v(i) finpara fin procedimiento cambiar(v.n. tipo arreglo[1.m) [vector:v parametro por valor] [entero:n.num) elimrepet(vec.

vent) cambiar (vec.ter) finpara FIN Algoritmo TP8_EJ5 tipo arreglo[1.ter.n) [vector: v parametro por valor] [entero: n parametro por valor] variables entero: i inicio para i<-1 hasta n hacer escribir v(i) finpara fin procedimiento ordenar(v.n) [vector: v parametro por referencia] [entero: n parametro por valor] variables entero: i. lim.INICIO cargar(vec. opc..ter) escribir 'Ingrese cantidad de elementos q desea ver en la ventana' leer vent escribir 'Ingrese cantidad de repeticiones' leer repet para i<1 hasta repet hacer mostrar (vec.n) [vector: v parametro por referencia] [entero: n parametro por referencia] variables caracter: resp Inicio n<-0 repetir n<-n+1 leer v(n) escribir 'continua?' leer resp hasta que resp='n' o resp='N' fin procedimiento mostrar(v.100] de entero: vector variables vector: vec entero: ter. aux logico: band inicio band<-v lim<-n-1 mientras band y limite >= 1 hacer band<-f para i<-1 hasta lim hacer si v(i) > v(i+1) entonces aux<-v(i) v(i)<-v(i+1) v(i+1)<-aux band<-v finsi . i procedimiento cargar (v.

n) [vector: v parametro por referencia] [entero: n parametro por referencia] variables entero: i inicio para i<-1 hasta n hacer si primo(v(i)) entonces elimpos(v.i leer k .i) finsi finpara fin procedimiento insertar(v.pos.k inicio para i<-2 hasta n con paso 2 hacer repetir escribir 'ingrese un n° impar y no primo para la pos'.n.pos) [vector: v parametro por referencia] [entero: n parametro por referencia] [entero: pos parametro por valor] variable entero: i inicio para i<-pos hasta n-1 hacer v(i)<-v(i+1) finpara n<-n-1 fin funcion primo(n): logico [entero: n parametro por valor] variable entero: i inicio primo<-f para i<-2 hasta n/2 si n mod i = 0 entonces primo<-v finsi finpara fin procedimiento elimprimo(v.n) [vector: v parametro por referencia] [entero: n parametro por referencia] variables entero: i.k) [vector: v parametro por referencia] [entero: n parametro por referencia] [entero: pos.finpara lim<-lim-1 finmientras fin procedimiento elimpos(v.n.n.k parametro por valor] variable entero: i inicio para i<-n hasta pos con paso -1 hacer v(i+1)<-v(i) finpara v(pos)<-k n<-n+1 fin procedimiento insertenpospar(v.

ter) 6: ordenado(vec.hasta que primo(k) y k mod 2 <> 0 insertar (v.1] de cadena: nombre tipo arreglo[1.ter) 4: elimprimo(vec..1] de real: nota tipo arreglo[1.ter) 2: mostrar(vec...1000.ter) 3: ordenar(vec.ter) 0: escribir 'Hasta mañana' finsegun hasta que opc=0 FIN.ter) 5: insertenpospar(vec.n. tipo arreglo[1.i.k) finpara fin procedimiento ordenado(v..1000] de caracter: merito variables nombre: nomb condicion: cond nota: nota .1000.1000.1] de caracter: condicion tipo arreglo[1.n) [vector: v parametro por valor] [entero: n parametro por valor] variable entero: i inicio i<-1 mientras v(i)>=v(i+1) y i<n hacer i<-i+1 finmientras si v(i)<v(i+1) escribir 'esta desordenado' sino escribir 'esta ordenado' finsi fin procedimiento menu(op) [entero: op parametro por referencia] Inicio escribir '1: cargar vector' escribir '2: mostrar vector' escribir '3: ordenar datos del vector de menor a mayor' escribir '4: eliminar los valores primos' escribir '5: insertar datos en posiciones pares' escribir '6: mostrar si estar ordenado en forma ascendente' escribir '0: salir' fin INICIO repetir menu(opc) segun opc hacer 1: cargar(vec.

1) not(i.n) [nombre: nom parametro por valor] [condicion: con parametro por valor] [nota: not parametro por valor] [entero: n parametro por valor] variables entero: i inicio para i<-1 hasta n hacer escribir nom(i.con(i.2).not(i.2) finpara fin procedimiento mostrar(nom.1) finpara fin procedimiento mostraroriginal(nom.not(i.1).n) [nombre: nom parametro por referencia] [condicion: con parametro por referencia] [nota: not parametro por referencia] [entero: n parametro por referencia] variables entero: i.not.not(i.con.n) [nombre: nom parametro por referencia] [condicion: con parametro por referencia] [nota: not parametro por referencia] [entero: n parametro por referencia] variables entero: i inicio escribir 'ingrese numero de datos' leer n para i<1 hasta n hacer leer nom(i.2)<-nom(i.not.2)<-con(i.con.con.merito: meri entero: ter procedimiento cargar(nom.1).1) con(i.2)<-not(i.not.1).not.1) nom(i.con(i. lim real: auxnot cadena: auxnom caracter: auxcon logico: band inicio .con(i.2).1).con.n) [nombre: nom parametro por valor] [condicion: con parametro por valor] [nota: not parametro por valor] [entero: n parametro por valor] variables entero: i inicio para i<-1 hasta n hacer escribir nom(i.1) finpara fin procedimiento ordenpornota(nom.

n) [nota: not parametro por valor] [merito: mer parametro por referencia] [entero: parametro por valor] variables entero: i inicio para i<-1 hasta n hacer si not(i)>=6 entonces mer(i)<-'A' sino si not(i)>=4 entonces mer(i)<-'B' sino mer(i)<-'C' finsi finsi finpara fin procedimiento ordenpornombre(nom.1) not(i+1.1)<-not(i+1.1)<-con(i+1.1) con(i.not.1)<-auxnom con(i+1.1) auxnom<-nom(i.con.1) not(i.band<-v lim<-n-1 mientras band y 1 <= limite hacer band<-f para i<-1 hasta lim hacer si not(i+1)<not(i) entonces auxnot<-not(i.1)<-auxcon band<-v finsi finpara lim<-lim-1 finmientras fin procedimiento addmerito(not.1) nom(i.n) [nombre: nom parametro por referencia] [condicion: con parametro por referencia] [nota: not parametro por referencia] [entero: n parametro por referencia] variables entero: i.1)<-auxnot nom(i+1. lim real: auxnot cadena: auxnom caracter: auxcon logico: band inicio band<-v lim<-n-1 mientras band y 1 <= limite hacer .1)<-nom(i+1.1) auxcon<-con(i.mer.

1)<-auxnom con(i+1.1)<-auxnot nom(i+1.1) not(i+1.1) con(i.1)<-nom(i+1.1) auxnom<-nom(i.band<-f para i<-1 hasta lim hacer si nom(i+1)<nom(i) entonces auxnot<-not(i.1) not(i.1) nom(i.1)<-con(i+1.1)<-auxcon band<-v finsi finpara lim<-lim-1 finmientras fin .1) auxcon<-con(i.1)<-not(i+1.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->