P. 1
Manual Pseint

Manual Pseint

|Views: 4.580|Likes:
Publicado porRuben

More info:

Published by: Ruben on May 13, 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

06/02/2014

pdf

text

original

ELEMENTOS DE PROGRAMACIÓN I

MANUAL DE PSEINT

MANEJO DE LAS ESTRUCTURAS BÁSICAS DE CONTROL Solo 3 tipos de datos básicos: numérico, caracter /cadenas de caracteres y lógico (verdadero-falso). Forma General de un Algoritmo en PSeudoCodigo Todo algoritmo en pseudocógido tiene la siguiente estructura general: Proceso SinTitulo accion 1; accion 1; . . . accion n; FinProceso Comienza con la palabra clave Proceso seguida del nombre del programa, luego le sigue una secuencia de instrucciones y finaliza con la palabra FinProceso. Una secuencia de instrucciones es una lista de una o más instrucciones, cada una terminada en punto y coma. Las acciones incluyen operaciones de entrada y salida, asignaciones de variables, condicionales si-entonces o de selección múltiple y/o lazos mientras, repetir o para. TIPOS DE DATOS • Tipos Simples: Numérico, Lógico, Caracter. • Estructuras de Datos: Arreglos. Los tipos de datos simples se determinan automáticamente cuando se crean las variables. Las dos acciones que pueden crear una variable son la lectura(LEER) y la asignacion(<-). Por ejemplo, la asignación "A<-0;" está indicando implícitamente que la variable A será una variable numérica. Una vez determinado el tipo de dato, deberá permanecer constante durante toda la ejecución del proceso; en caso contrario el proceso será interrumpido. Existen tres tipos de datos básicos:

CÁTEDRA: SANTILLAN RAMIREZ, RUBEN

• Caracter: caracteres o cadenas de caracteres encerrados entre comillas (pueden ser dobles o simples). Para poder utilizar un arreglo. Dimension <ident1> (<max11>.. Dimesion <identificador> (<maxl>. DIMENSIONAMIENTO La instrucción Dimension permite definir un arreglo.. Pueden ser mono o multidimensionales. deberá permanecer constante durante toda la ejecución del proceso.. números y/o guin_bajo (_).. ARREGLOS Los arreglos son estructuras de datos homogéneas (todos sus datos son del mismo tipo) que permiten almacenar un determinado número de datos bajo un mismo identificador.").. comenzando siempre con una letra. Ejemplos: 12 23 0 -2. indicando sus dimensiones.<max1N>). es decir. la asignación "A<-0.3 3. Se pueden definir más de un arreglo en una misma instrucción. definirlo declarando los rangos de sus subíndices. Ejemplos 'hola' "hola mundo" '123' 'FALSO' 'etc' Los tipos de datos simples se determinan automáticamente cuando se crean las variables. o nombres de variables. El tipo de sus elementos se determina cuando se utiliza alguno de ellos de igual forma que para las variables de tipos simples.. RUBEN . en caso contrario el proceso será interrumpido.. tanto enteros como decimales. separándolos con una coma (.<maxMN>) Los arreglos son estructuras homegéneas (es decir. etc. Los arreglos pueden pensarse como vectores. lo cual determina cuantos elementos se almacenarán y como se accederá a los mismos. EXPRESIONES Operadores Este pseudolenguaje dispone de un conjunto básico de operadores que pueden ser utilizados para la construcción de expresiones más o menos complejas... <identM> (<maxM1>.ELEMENTOS DE PROGRAMACIÓN I Numérico: numeros.. Las dos acciones que pueden crear una variable son la lectura(LEER) y la asignacion(<-). Las siguientes tablas exhiben la totalidad de los operadores de este lenguaje reducido: • CÁTEDRA: SANTILLAN RAMIREZ. La cantidad de dimensiones puede ser una o más. Para separar decimales se utiliza el punto. Los identificadores.<maxN>).. Los N parámetros indican la cantidad de dimensiones y el valor máximo de cada una de ellas. para luego referirse a los mismo utilizando uno o más subíndices.. primero es obligatorio su dimensionamiento. Una vez determinado el tipo de dato. pero deben ser dimensionados antes de ser utilizados por primera vez mediante la directiva DIMENSION (ejemplo: "DIMENSION A[10. que todos sus elementos son del mismo tipo simple de dato).20]. deben constar sólo de letras.. Por ejemplo.14 • Lógico: solo puede tomar dos valores: VERDADERO o FALSO.. y la máxima cantidad de elementos debe ser una expresión numérica positiva." está indicando implícitamente que la variable A será una variable numérica. matrices. Esta instrucción define un arreglo con el nombre indicado en <indentificador> y N dimensiones.)...

CÁTEDRA: SANTILLAN RAMIREZ. se reemplazará por el resultado correspondiente. aunque puede alterarse mediante el uso de paréntesis. todas la funciones disponibles son matemáticas (es decir que devolverán un resultado de tipo numérico) y reciben un sólo parametro de tipo numérico. FUNCIONES Las funciones en el pseudocódigo se utilizan de forma similar a otros lenguajes. Actualemente. y cuando se evalúe la misma. A continuación se listan las funciones integradas disponibles: PRIMITIVAS SECUENCIALES ASIGNACIÓN La instrucción de asignación permite almacenar una valor en una variable. RUBEN . Se pueden utilizar dentro de cualquier expresión. Se coloca su nombre seguido de los argumentos para la misma encerrados entre paréntesis (por ejemplo trunc(x)).ELEMENTOS DE PROGRAMACIÓN I La jerarquía de los operadores matemáticos es igual a la del álgebra.

ELEMENTOS DE PROGRAMACIÓN I <variable> <. ESCRITURA CÁTEDRA: SANTILLAN RAMIREZ. Pueden incluirse una o más variables. . <variableN> . por lo tanto el comando leerá uno o más valores. RUBEN ...<expresión> . primero se evalúa la expresión de la derecha y luego se asigna el resultado a la variable de la izquierda. Al ejecutarse la asignación. <variable2> . . Esta instrucción lee N valores desde el ambiente (en este caso el teclado) y los asigna a las N variables mencionadas. Leer <variablel> . El tipo de la variable y el de la expresión deben coincidir. LECTURA La instrucción Leer permite ingresar información desde el ambiente.

que al ser evaluada retorna Verdadero o Falso. si la condición es falsa no se ejecuta ninguna instrucción y la ejecución del programa continúa con la instrucción siguiente. . . SELECCIÓN MULTIPLE La secuencia de instrucciones ejecutada por una instrucción Segun depende del valor de una variable numérica. Escribir <exprl> . RUBEN . se evalúa la condición y se ejecutan las instrucciones que correspondan: las instrucciones que le siguen al Entonces si la condición es verdadera. Dado que puede incluir una o más expresiones. pero la cláusla Sino puede no estar. En ese caso. ESTRUCTURAS DE CONTROL CONDICIONALES Si-Entonces Selección Múltiple REPETITIVAS Mientras Repetir Para CONDICIONAL SI-ENTONCES La secuencia de instrucciones ejecutadas por la instrucción Si-EntoncesSino depende del valor de una condición lógica. Si <condición> Entonces <instrucciones> Sino <instrucciones> FinSi Al ejecutarse esta instrucción.<número3>: <instrucciones> CÁTEDRA: SANTILLAN RAMIREZ.. o las instrucciones que le siguen al Sino si la condición es falsa.ELEMENTOS DE PROGRAMACIÓN I La instrucción Escribir permite mostrar valores al ambiente. <exprN> . La cláusula Entonces debe aparecer siempre. Esta instrucción imprime al ambiente (en este caso en la pantalla) los valores obtenidos de evaluar N expresiones.. mostrará uno o más valores. <expr2> . Segun <variable> Hacer <número1>: <instrucciones> <número2>. La condición debe ser una expresión lógica.

la secuencia de instrucciones asociada se debe ejecutar cuando el valor de la variable es uno de esos números. al ejecutar esta instrucción se produce un ciclo infinito. de modo que ésta sea falsificada en algún momento y así finalice la ejecución del ciclo. denominada De Otro Modo. Si la condición resulta verdadera. Note que las instrucciones del cuerpo del ciclo pueden no ejecutarse nunca. se ejecuta una vez la secuencia de instrucciones que forman el cuerpo del ciclo. Al finalizar la ejecución del cuerpo del ciclo se vuelve a evaluar la condición y. se puede agregar una opción final. Mientras <condición> Hacer <instrucciones> FinMientras vAl ejecutarse esta instrucción. se evalúa el contenido de la variable y se ejecuta la secuencia de instrucciones asociada con dicho valor.. A fin de evitarlo. la condición es evaluada. Cada opción está formada por uno o más números separados por comas. dependiendo del valor almacenado en una variable de tipo numérico. Si una opción incluye varios números. RUBEN . si es verdadera. Al ejecutarse. Si la condición siempre es verdadera.ELEMENTOS DE PROGRAMACIÓN I <. cuya secuencia de instrucciones asociada se ejecutará sólo si el valor almacenado en la variable no coincide con ninguna de las opciones anteriores. ESTRUCTURAS DE CONTROL REPETITIVAS LAZOS MIENTRAS La instrucción Mientras ejecuta una secuencia de instrucciones mientras una condición sea verdadera.. la ejecución se repite. dos puntos y una secuencia de instrucciones. si al evaluar por primera vez la condición resulta ser falsa. LAZOS REPETIR CÁTEDRA: SANTILLAN RAMIREZ. Estos pasos se repiten mientras la condición sea verdadera. las instrucciones del cuerpo del ciclo deben contener alguna instrucción que modifique la o las variables involucradas en la condición.> De Otro Modo: <instrucciones> FinSegun Esta instrucción permite ejecutar opcionalmente varias acciones posibles. Opcionalmente.

o despues de FINPROCESO). la secuencia de instrucciones que forma el cuerpo del ciclo se ejecuta una vez y luego se evalúa la condición. la variable <variable> recibe el valor <inicial> y se ejecuta la secuencia de instrucciones que forma el cuerpo del ciclo. Si la condición es falsa. ALGUNAS OBSERVACIONES • Se pueden introducir comentarios luego de una instrucción. Repetir <instrucciones> Hasta Que <condición> Al ejecutarse esta instrucción. hasta el fin de la línea. mediante el uso de la doble barra ( // ). no será tomado en cuenta al interpretar el algoritmo. RUBEN . LAZOS PARA La instrucción Para ejecuta una secuencia de instrucciones un número determinado de veces. Luego se incrementa la variable <variable> en <paso> unidades y se evalúa si el valor almacenado en <variable> superó al valor <final>. a fin de evitar ciclos infinitos. • No puede haber instrucciones fuera del proceso (antes de PROCESO. o en líneas separadas. Todo lo que precede a //.<inicial> Hasta <final> ( Con Paso <paso> ) Hacer <instrucciones> FinPara Al ingresar al bloque. las instrucciones del cuerpo del ciclo serán ejecutadas al menos una vez. aunque si comentarios. No es válido introducir comentario con /* y */. Además. Esto se repite hasta que la condición sea verdadera. el cuerpo del ciclo debe contener alguna instrucción que modifique la o las variables involucradas en la condición de modo que en algún momento la condición sea verdadera y se finalice la ejecución del ciclo. Para <variable> <. el cuerpo del ciclo se ejecuta nuevamente y se vuelve a evaluar la condición. dado que la condición se evalúa al final.ELEMENTOS DE PROGRAMACIÓN I La instrucción Repetir-Hasta Que ejecuta una secuencia de instrucciones hasta que la condición sea verdadera. la variable <variable> se incrementará en 1. CÁTEDRA: SANTILLAN RAMIREZ. Si se omite la cláusula Con Paso <paso>. Si esto es falso se repite hasta que <variable> supere a <final>. Note que.

RUBEN . comenzando siempre con una letra. Las constantes lógicas son Verdadero y Falso. Los identificadores. o nombres de variables. sino que se infieren a partir de su utilización. pero la estructura contenida debe comenzar y finalizar dentro de la contenedora. Las constantes de tipo carácter se escriben entre comillas ( " ). el punto ( . Los tipos de datos de las variables no se declaran explicitamente. deben constar sólo de letras. pueden contener otras adentro.ELEMENTOS DE PROGRAMACIÓN I • • • • • • • Las estructuras no secuenciales pueden anidarse. En las constantes numéricas. Actualmente este pseudolenguaje no contempla la creación de nuevas funciones o subprocesos. CÁTEDRA: SANTILLAN RAMIREZ. números y/o guin_bajo (_). Es decir. ) es el separador decimal.

Sino div<-1. Mientras factorizar Y num>1 hacer div<-0.Falso. num<-num/div. Si num/2 = trunc(num/2) Entonces Escribir 2. factorizar<-verdadero.ELEMENTOS DE PROGRAMACIÓN I EJEMPLOS Proceso Factorizacion Escribir "Ingrese el numero: ".div+2. RUBEN . Mientras div<=rc(num) Y factor_primo Hacer div <. factor_primo<-verdadero. sino escribir div. Si num/div = trunc(num/div) Entonces factor_primo <. FinSi FinMientras Si factor_primo Entonces escribir num. Escribir "Factorizacion: ". Leer num. FinSi FinSi FinMientras FinProceso CÁTEDRA: SANTILLAN RAMIREZ. factorizar<-falso. num<-num/2. factor_primo<-Verdadero.

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

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

RUBEN . Escribir "Ingrese la cantidad de datos:". Leer datos[i]. Escribir "El segundo mayor es: ". FinSi FinSi FinPara Escribir "El mayor es: ".may1. may2<-datos[1]. Para i<-1 Hasta n Hacer Escribir "Ingrese el dato ". may1<-datos[i]. FinPara Si datos[1]>datos[2] Entonces may1<-datos[1]. FinSi Para i<-3 Hasta n Hacer Si datos[i]>may1 Entonces may2<-may1. Sino Si datos[i]>may2 Entonces may2<-datos[i].i.":". may2<-datos[2]. FinProceso CÁTEDRA: SANTILLAN RAMIREZ.ELEMENTOS DE PROGRAMACIÓN I // Busca los dos mayores de una lista de N datos Proceso Mayores Dimension datos[200]. Sino may1<-datos[2].may2. Leer n.

Escribir "Ingrese los nombres (enter en blanco para terminar):". se_repite<-Falso.lista[i].ELEMENTOS DE PROGRAMACIÓN I // 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]. FinPara FinProceso CÁTEDRA: SANTILLAN RAMIREZ. FinSi FinPara Hasta Que NO se_repite FinMientras // ordenar Para i<-1 Hasta cant-1 Hacer // busca el menor entre i y cant pos_menor<-i. RUBEN . Leer nombre. FinPara // mostrar como queda la lista Escribir "La lista ordenada es:". FinSi FinPara // intercambia el que estaba en i con el menor que encontro aux<-lista[i]. Para j<-i+1 Hasta cant Hacer Si lista[j]<lista[pos_menor] Entonces pos_menor<-j. Para i<-1 Hasta cant Hacer Escribir " ". lista[cant]<-nombre. lista[i]<-lista[pos_menor]. // leer la lista cant<-0. Mientras nombre<>"" Hacer cant<-cant+1. Para i<-1 Hasta cant Hacer Si nombre=lista[i] Entonces se_repite<-Verdadero. Repetir // leer un nombre y ver que no este ya en la lista Leer nombre. lista[pos_menor]<-aux.

":". Leer n. FinProceso CÁTEDRA: SANTILLAN RAMIREZ. Leer dato. Escribir "El promedio es: ". acum<-0. FinPara prom<-acum/n.prom. Para i<-1 Hasta n Hacer Escribir "Ingrese el dato ". acum<-acum+dato.ELEMENTOS DE PROGRAMACIÓN I // Calcula el promedio de una lista de N datos Proceso Promedio Escribir "Ingrese la cantidad de datos:". RUBEN .i.

"-". Leer b.(-b)/(2*a). // determinar si son reales o imaginarias disc <. Escribir "Raiz 1: ". r2 <.r2. pimag<.b^2-4*a*c. RUBEN .(-b)/(2*a)."+". Escribir "Raiz 1: ". FinSi FinSi FinProceso CÁTEDRA: SANTILLAN RAMIREZ.r.pimag. Si disc<0 Entonces // si son imaginarias preal<.rc(-disc)/(2*a).((-b)+rc(disc))/(2*a). Sino r1 <.pimag. Escribir "Ingrese el coeficiente B:". Escribir "Raiz 2: ".r1. Leer c."i". Sino Si disc=0 Entonces // ver si son iguales o distintas r <.preal. Leer a. Escribir "Raiz 1 = Raiz 2: ". Escribir "Raiz 2: ".ELEMENTOS DE PROGRAMACIÓN I // calcula las raices de una ecuacion de segundo grado Proceso Resolvente // cargar datos Escribir "Ingrese el coeficiente A:".((-b)-rc(disc))/(2*a). Escribir "Ingrese el coeficiente C:".preal."i".

':'. Escribir 'Sucursal de Mayor Recaudacion:'.':'.Cant[1. Escribir 'Total articulo '. CÁTEDRA: SANTILLAN RAMIREZ.I]+Cant[3. Para I<-1 Hasta 5 Hacer TotSuc<-TotSuc+(Cant[J. FinPara Escribir 'Recaudaciones Sucursal '.ELEMENTOS DE PROGRAMACIÓN I // Se ingresan los precios de 5 articulos y las cantidades vendidas // por una empresa en sus 4 sucursales. NumMayor<-0.J. Informar: // * Las cantidades totales de cada articulo. NumMayor<-J.':'.I. Leer Cant[J.TotSuc. FinPara // Informar Total de Articulos Sucursal 2 Suc2<-0.Suma. Proceso Sucursales // Inicializar Prec=Arreglo de precios y Cant=Arreglo para cantidades Dimension Prec[5].'. FinSi TotEmp<-TotEmp+TotSuc. // Informar Sucursal 1.5]. FinPara Escribir 'Total Sucursal 2:'.I]+Cant[2.I. Para I<-1 Hasta 5 Hacer Suma<-Cant[1.I.I]. RUBEN .I].I]+Cant[4. Si TotSuc>MayorRec entonces MayorRec<-TotSuc.':'. Para I<-1 Hasta 5 Hacer Suc2<-Suc2+Cant[2.NumMayor. // * La recaudacion total de la empresa. Leer Prec[I].I].TotEmp.Suc2. // * La cantidad de articulos en la sucursal 2. TotEmp<-0. FinPara // Leer Cantidades Para J<-1 Hasta 4 Hacer Para I<-1 Hasta 5 Hacer Escribir 'Ingrese Cant. Articulo 3: Escribir 'Sucursal 1.3]. de Articulo '.I]*Prec[i]). Articulo 3:'. en Sucursal '. FinPara FinPara // Sumar cantidades por articulos Escribir 'Cantidades por articulos:'. // * La recaudacion total de cada sucursal. // Leer Precios Para I<-1 Hasta 5 Hacer Escribir 'Ingrese Precio Articulo '. FinPara Escribir 'Recaudacion total de la empresa:'. // * La cantidad del articulo 3 en la sucursal 1. // Acumular total de cada sucursal (TotSuc) y // total de la empresa (TotEmp) MayorRec<-0. // * La sucursal de mayor recaudacion. Para J<-1 Hasta 4 Hacer TotSuc<-0. Cant[4.J.

ELEMENTOS DE PROGRAMACIÓN I FinProceso CÁTEDRA: SANTILLAN RAMIREZ. RUBEN .

Sino Escribir "No es un triangulo rectangulo. Si l1>l3 Entonces hip<-l1. Escribir "Ingrese el lado 3:". Escribir "El area es: ". FinSi Sino cat1<-l1. cat2<-l3. cat2<-l1. Leer l1. Sino hip<-l3. Leer l3.ELEMENTOS DE PROGRAMACIÓN I // Lee los tres lados de un triangulo rectangulo. RUBEN . cat2<-l3. FinSi FinProceso CÁTEDRA: SANTILLAN RAMIREZ. // encontrar la hipotenusa (mayor lado) Si l1>l2 Entonces cat1<-l2. cat2<-l2. Leer l2. determina // si corresponden (por Pitargoras) y en caso afirmativo // calcula el area Proceso TrianguloRectangulo // cargar datos Escribir "Ingrese el lado 1:". Si l2>l3 Entonces hip<-l2. FinSi FinSi // ver si cumple con Pitagoras Si hip^2 = cat1^2 + cat2^2 Entonces // calcualar area area<-(cat1*cat2)/2. Sino hip<-l3. Escribir "Ingrese el lado 2:".area.".

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)//-->