SeúDocodigo
-
Upload
martha-leon -
Category
Business
-
view
4.177 -
download
2
Transcript of SeúDocodigo
PSEUDOCÓDIGO
PSEUDOCÓDIGO.- Es un conjunto de reglas que nos permite expresar claramente un algoritmo, como si se tratara de un lenguaje natural cualquiera(idioma)DATOSon los diferentes objetos de información con los que trabaja una computadora. Ejemplo la calificación de un alumno.TIPO DE DATO.- Colección de elementos que se forman de igual manera y que son tratados en forma uniforme.Ejemplo: 1) [-1,1, 4, 199] es una colección de elementos de tipo entero.2) [1.4, 3.1416] es colección de elementos de tipo real.
TIPOS DE DATOSTipo de dato Ejemplo Identificador en pseudocódigoENTERO 128 EnteroREAL 7.5 RealCARACTER “b” caracterLÓGICO verdadero, falso lógico
ESTRUCTURA DE UN ALGORITMOUn algoritmo consta de dos componentes:
Cabecera del algoritmo Bloque del algoritmo
Cabecera del Algoritmo.- Indica el nombre ó identificación del algoritmo. Formato
Algoritmo Nombre del algoritmoEjemplo:
Algoritmo HallaDescuento
Bloque del algoritmo.- Consta de dos secciones: Sección de declaraciones Sección Ejecutable
Sección de Declaraciones.- Se declaran las variables y constantes. Declaración de variables.- Se especifican los nombres de las variables y sus tipos de datos.Formato
VARTipo_1: variable_1, variable_2,..., variable_nTipo_2: variable_1, variable_2,..., variable_n
. . .Tipo_n: variable_1, variable_2,..., variable_n
donde:
Tipo_n indica el tipo de dato, colocando el identificador que corresponde, según el tipo.
Ejemplo:VAR
entero: edad
Declaración de constantes.- Se asocia un identificador con una constante especifica y después se usa dicho identificador en el programa.Formato
CONSTidentificador=valor
donde:o identificador es un nombreo valor es una constante entera, real, de caracter ó lógico
EjemploCONST
igv= 0.18pi=3.1416mes= “enero”
Sección ejecutable. Contiene enunciados que efectúan acciones sobre los datos. Esta delimitada por las palabras reservadas: INICIO y FIN.Formato
INICIOenunciados
...enunciados
FIN
Comentario.- Información que explica lo que esta sucediendo en el programa. Se representa encerrando la información entre /* y */ .Formato
/*información explicativa*/Ejemplo
Areacuad lado*lado /*calcula el área de un cuadrado */
SENTENCIAS DE ENTRADA Y SALIDASentencia de entrada: LeerFormato
Leer variable 1, variable 2,..., variable nÓ Leer ( variable 1, variable 2,..., variable n)
Sentencia de salida: EscribirFormato
Escribir Lista de constante y/o variableÓ Escribir ( Lista de constante y/o variable)
EXPRESIONES ARITMÉTICAS.- Representan cálculos aritméticos. Ejemplo
-4*7+2
Operadores Aritméticos Operador Operación Operandos Resultado+ Suma Entero ó real Entero ó real- Resta Entero ó real Entero ó real* Multiplicación Entero ó real Entero ó real/ División Entero ó real Entero ó real** Potencia Entero ó real Entero ó realdiv División entera Entero Enteromod Módulo(Residuo) Entero Entero
Prioridad de los operadores.- Determina el orden en que se ejecutan las operaciones en una expresión.Operador Jerarquía Operación**, ^ (Mayor) Potencia/, *, div, mod división ,multiplicación, división entera,
módulo(residuo)+, - (Menor) Suma, resta
Las operaciones encerradas entre paréntesis se ejecutan primero.
EXPRESIONES LÓGICAS.- Son expresiones cuyo resultado es el valor verdadero ó falso. Se forman utilizando operadores lógicos y operadores de relación.Ejemplo
1< 2 es verdadero
Operadores de relación
Operador Operación Ejemplo Resultado= Igual que “sara”=”zara” Falso<> Diferente a “4” <>”5” Verdadero< Menor que 5<10 Verdadero> Mayor que 12>4 Verdadero<= Menor ó igual que 7<=2 Falso>= Mayor ó igual que 25>=25 Verdadero
Operadores Lógicos y su jerarquía
Operador Lógico Expresión LógicaNO No PY P y QO P o Q
SENTENCIA DE ASIGNACIÓN.- Se usa para asignar el valor del lado derecho del operador de asignación ( ) a la variable que se encuentra en el lado izquierdo del operador.Formato
variable variable|constante|expresión
ESTRUCTURA SECUENCIAL.- Los pasos del proceso se procesan en secuencia, uno después del otro.Formato
INICIO/*inicio de estructura secuencia*/
Proceso 1Proceso 2.../*fin de estructura secuencial */
FIN
Ejemplo.-Lectura de tres números M, N y P en una sola operación é impresión de su suma en una impresora
INICIOLeer(M,N,P)S M+N+PEscribir(“El resultado es=”,S)
FIN
ESTRUCTURAS ALTERNATIVAS Ó DE SELECCIÓN. Evalúan una expresión y señalan el camino a seguir según sea el resultado de la evaluación, verdadero ó falso. Se clasifican en: simple, doble y múltiple
Estructura de selección simple: SI ENTONCESFormato Si condición
Entonces sentenciasFinsi (ó Fsi ó Fin_si)
Estructura de selección doble: SI ENTONCES/SINOFormato Si condición
Entonces sentenciasSino sentencias
Finsi (ó Fsi ó Fin_si)
Estructura de selección múltiple: CASOFormato Caso expresión vale
Alternativa 1: sentencias
Alternativa 1: sentencias...
Alternativa n: sentencias[Sino : sentencias]
Fincaso (ó Fcaso ó Fin_caso)
SENTENCIAS REPETITIVASSentencia MientrasFormato Mientras condición hacer
SentenciasFinmientras ( ó Fmientras ó Fin_mientras)
Sentencia RepetirFormato Repetir
SentenciasHasta condiciónFinrepetir (ó Frepetir ó Fin_repetir)
Sentencia ParaFormato
Para variable de control desde valor inicial hasta valor final[incremento {+|-} valor del incremento] hacersentencias
Finpara (ó Fpara ó Fin_para)
Clases y Objetos.Una clase es, al igual que los números, el texto y los booleanos, un tipo especial de datos. En su caso consiste de un número fijo de componentes. Una clase puede estar compuesta por atributos y métodos.Una instancia de una clase es conocida comúnmente como objeto. Los objetos se crean utilizando los constructores y se destruyen utilizando los destructores. Cada objeto tiene su copia de los atributos declarados en la clase, pero todos comparten los mismos métodos.
Declarar Clases.Las clases se declaran de la siguiente manera:claseclase IdentificadorClase IdentificadorClase
[[viene-deviene-de IdentificadorClase { IdentificadorClase { ,, IdentificadorClase }] IdentificadorClase }]atributosatributos
IdentificadorAtributo { IdentificadorAtributo }IdentificadorAtributo { IdentificadorAtributo }métodosmétodos
secuencia de “m” declaraciones de métodos secuencia de “m” declaraciones de métodos fclasefclaseIdentificadorMétodo [ IdentificadorMétodo [ ( ( ListaFormalParámetros ListaFormalParámetros ) ) ] [ ] [ ] ]
[ [ virtualvirtual | | virtualvirtual abstractoabstracto | | sobreescribirsobreescribir | | sobrecargarsobrecargar ] ]
constructorconstructor [ [ ( ( ListaFormalParámetros ListaFormalParámetros ) ) ]]
destructordestructorListaFormalParámetros ListaFormalParámetros [ [ @@ ] Identificador { ] Identificador {,, [ [ @@ ]Identificador } ]Identificador }
Ilustración Capítulo I. .1. Sintaxis de declaración de Clase.
La declaración de un atributo en una clase define un elemento de dato que existe en cada instancia u objeto de la clase. Un método es una rutina que realiza una operación sobre un objeto. Parte de la llamada a un método (mensaje) especifica el objeto sobre el que debe operar el método.La declaración de un método dentro de una clase implica la implantación posterior del método mediante una declaración de definición.Dentro de la implantación de un método, el identificador Este representa un parámetro implícito que referencia al objeto por el cual fue invocado el método.Los constructores y destructores son métodos especiales que controlan la construcción y destrucción de los objetos.Un constructor define las acciones asociadas con la creación de objetos. Cuando se invoca éste retorna una referencia a una instancia inicializada de una clase.Un destructor define las acciones asociadas con la destrucción de un objeto. Cuando se invoca, el destructor libera los recursos asignados al objeto.Una clase puede heredar componentes de otra clase. Si C2 hereda de C1, entonces C2 es un descendiente de C1 y C1 es un ancestro de C2. La herencia es transitiva; es decir, si C3
hereda de C2 y C2 hereda de C1, entonces C3 también hereda de C1. El dominio de una clase está conformado por ella y todos sus descendientes.Una clase descendiente contiene en forma implícita todos los componentes definidos por sus clases ancestro. Una clase descendiente puede agregar nuevos componentes a los ya heredados. Sin embargo, no puede eliminar la definición de un componente declarado en una clase ancestro.
Seleccionar atributos.La manera como podemos accesar a los atributos de una clase es similar a lo anteriormente visto con las variables, excepto que necesitamos especificar a que clase pertenece este atributo.
Identificador_de_Clase.Identificador_AtributoIdentificador_de_Clase.Identificador_Atributo
Esta herramienta del lenguaje de pseudocódigo nos es útil para accesar a los atributos de una clase dentro de la definición de un método amigo de ésta. Llamamos método amigo al método que recibe como parte de su interfaz un identificador de otra clase del cual se puede accesar directamente a los valores de los atributos de la clase. El concepto de amigo se entiende como un grado de confianza entre clases, pues una clase confía su intimidad (se supone que los atributos deben encapsularse para el exterior) a otra esperando que la receptora no de un uso indebido a los valores de sus atributos.Dentro de los métodos de una clase, el acceso a sus atributos propios y heredados no necesita la especificación del identificador de clase, pues la pertenencia está sobreentendida.
Declaración de Instancias de Clases (Objetos).Las instancias de una clase se conocen como los objetos de la clase. Por medio de las clases definimos en nuestro pseudocódigo la estructura y el comportamiento de los objetos que pertenezcan a esa clase, es decir los ejemplares de la clase. Para poder definir objetos en forma clara necesitamos establecer un identificador para el objeto y especificar de qué clase es ejemplar.objetoobjeto IdentificadorObjeto IdentificadorObjeto ejemplar_deejemplar_de IdentificadorClase IdentificadorClase
Ilustración Capítulo I. .2. Sintaxis de declaración de Objeto.
Hay que tomar en cuenta que con esta herramienta del lenguaje de pseudocódigo estamos declarando ante el entorno que el uso de Ident_objeto denota el uso de un objeto de la clase Ident_Clase, pero aún no hemos asignado recursos ni inicializado los valores para los atributos propios de su clase. Para esto contamos con los constructores, de los cuales continuaremos hablando más adelante.
Declaración de definición de Métodos.Esta parte especifica cómo se implanta el propósito para el cual fue creado el método. Su estructura es similar a una rutina. Aquí utilizamos la palabra Método seguida del identificador y la interfaz (si existiera). El punto (.) nos indica una selección de la Clase como entidad global y clarifica la pertenencia del método a dicha Clase.
métodométodo IdentificadorClase.IdentificadorMétodo IdentificadorClase.IdentificadorMétodo [ [ ( ( ListaFormalParámetros ListaFormalParámetros ) ) ] [ ] [ ] ]
secuencia de “n” accionessecuencia de “n” accionesfmétodofmétodo
Ilustración Capítulo I. .3. Sintaxis de declaración de definición de Método.
Para los constructores y destructores, la declaración es similar a la de los métodos, excepto que la palabra Constructor o Destructor se utiliza como identificador del método.Dentro de un bloque de método, la palabra reservada heredado se puede utilizar para accesar a identificadores de métodos redeclarados o extendidos. Por ejemplo, en la implantación del método CEtiquetaConMarco.Dibujar, podemos utilizar heredado para invocar la implantación heredada del método Dibujar. Cuando un identificador está precedido por heredado, la búsqueda se inicia con el ancestro inmediato de la clase que contiene el método. Veamos:
Clase CEtiquetaConMarco viene-de CEtiquetaMétodos
DibujarfClase
Método CEtiquetaConMarco.Dibujarheredado DibujarColor clTextoVentanaEstilo stSólido
fmétodo
Parámetros (Interfaz).La declaración de un método especifica una lista formal de parámetros o interfaz. Cada parámetro que se declara en una lista formal de parámetros es local al método en que se declara y se le puede referenciar por su identificador en el bloque asociado con el método.ListaFormalParámetros ListaFormalParámetros [ [ @@ ] Identificador { ] Identificador {,, [ [ @@ ]Identificador } ]Identificador }
Ilustración Capítulo I. .4. Sintaxis de Lista formal de Parámetros.
A nivel de pseudocódigo, podemos distinguir dos tipos de parámetros, por valor y por referencia. Los parámetros por valor sólo requieren el identificador del parámetro, mientras que los parámetros por referencia necesitan ser precedidos del operador @.Un parámetro formal por valor actúa como una variable local a la rutina, sólo que obtiene su valor inicial de su correspondiente parámetro real al momento de invocarse al método. Los cambios que se realicen al parámetro formal por valor no afectan el valor del parámetro real.El correspondiente parámetro real de un parámetro formal por valor en una sentencia de método debe ser una expresión y su tipo de valor debe concordar con el determinado por el contexto de utilización del parámetro.
Un parámetro formal por referencia se utiliza cuando se debe pasar un valor desde el método a quién lo invocó. El parámetro formal por referencia representa la variable real durante la invocación al método, por lo que cualquier cambio al valor del parámetro formal por referencia se reflejan en el parámetro real.Dentro del método, cualquier referencia al parámetro formal por referencia accesa al parámetro real mismo. El parámetro real debe coincidir en tipo de valor con el parámetro formal por referencia.Cabe recalcar que si bien en el lenguaje de pseudocódigo no se está considerando en forma explícita la existencia de tipos de valores, ésta queda determinada por el contexto de utilización de las variables, al momento de asignación de valores y aplicación de operadores.
Constructores y destructores.Como hemos adelantado, los constructores y destructores son métodos que controlan la construcción y destrucción de objetos de una clase. Ellos se especifican como componentes de la clase como un método estándar, excepto que la palabra constructor se utiliza como identificador del método. Al igual que los métodos, éstos se pueden heredar.Los constructores se usan para crear e inicializar nuevos objetos. Por lo general, la inicialización se basa en los valores que se pasan como parámetros al constructor. Por lo general la primera acción que realiza un constructor es invocar al constructor heredado de su padre.Los destructores se usan para retirar del entorno objetos. Cuando se invoca a un destructor, se ejecutan las acciones definidas por el usuario para el destructor y luego se libera los recursos asignados al objeto. Por lo general las acciones de un destructor son destruir cualquier objeto contenido en él y liberar cualquier recurso solicitado por el objeto. Típicamente la última acción que realiza un destructor es llamar al destructor heredado para deshacerse de los atributos heredados del objeto.
Clase CFigura viene-de CObjetoAtributos
LargoAnchoObjeto Lápiz ejemplar-de ClápizObjeto Brocha ejemplar-de Cbrocha
MétodosConstructor(QueLargo, QueAncho)Destructor
fClase
Método CFigura.Constructor(QueLargo, QueAncho)heredado ConstructorAncho QueLargoLargo QueAnchoLápiz.ConstructorBrocha.Constructor
fmétodo
Método CFigura.Destructor Lápiz.Destructor Brocha.Destructor heredado Destructor
fmétodo
Acceso a los atributos.Para poder mantener la integridad de la información que maneja nuestra solución lógica, debemos disciplinarnos en el acceso a los atributos definidos en las clases. Conforme utilice el enfoque orientado a objetos para realizar sus algoritmos, coincidiremos en que la manera de evitar que el cliente de un objeto acceda directamente a los valores de los atributos propios de su clase, es necesario definir métodos especiales cuya función sean obtener el valor del atributo o alterar éste valor. A estos métodos especiales los denominamos métodos de lectura y métodos de escritura.Continuando con la sana política de establecer convenciones, a partir de ahora acordaremos que los identificadores de métodos de lectura, es decir los que retornan el valor de un atributo, estén conformados por la palabra Obtener seguida del nombre del atributo; así mismo, los métodos de escritura se denotarán por la palabra Colocar seguida del nombre del atributo y tendrán como parámetro por lo menos el valor con el que se desea alterar el atributo.
Clase CFigura viene-de CObjetoAtributos
LargoAnchoObjeto Lápiz ejemplar-de ClápizObjeto Brocha ejemplar-de Cbrocha
MétodosConstructor(QueLargo, QueAncho)DestructorObtenerLargo ObtenerAncho ColocarLargo(NuevoLargo)ColocarAncho(NuevoAncho)
fClase
Envío de Mensajes.Un método se activa mediante el envío de un mensaje a un objeto consistente de un identificador de método seguido por una lista real de parámetros. Este tipo de llamada se conoce como invocar un método ó enviar un mensaje.IdentificadorObjetoIdentificadorObjeto..IdentificadorMétodo [IdentificadorMétodo [((ListaRealParámetrosListaRealParámetros))]]
Ilustración Capítulo I. .5. Sintaxis de Envío de Mensaje.
El identificador de objeto expresado arriba debe denotar una referencia a un objeto existente. La instancia especificada al momento del envío del mensaje se convierte en forma implícita en un parámetro real para el método; corresponde con un parámetro real llamado Este, que tiene el conocimiento de la clase a la que corresponde el método que se está invocando.Cuando invocamos a métodos de una clase dentro de la declaración de definición de otro método de la misma clase se omite la referencia al objeto, quedando sólo el identificador del método y la lista real de parámetros.
Comentarios.Los comentarios son construcciones que no forman parte de la descripción de la lógica, pero son valiosos elementos para explicar y hacer más claro nuestro algoritmo. Para insertar un comentario, basta con escribir dos símbolos de división seguidos (//) y a continuación el texto que se desee colocar. Se considera comentario hasta el final de la línea.
// Este es un ejemplo de un comentario// que ocupa varias líneas.
Ejemplo
Ejemplo 1.- Generar una clase que permita ingresar y mostrar los datos de un alumno.
Clase cAlumno Atributos Código, Nombre, Sexo Métodos Constructor
Asignar (wcod, wnom, wsex) Getcod Getnom Getsex Destructor
FclaseMétodo Calumno.constructorFmetodoMetodo Calumno.asignar(wcod, wnom, wsex, waño) Codigo wcod Nombre wnom Sexo wsexFmetodoMetodo Calumno.getcod Getcod codigofmetodoMetodo Calumno.getnom Getnom nombrefmetodoMetodo Calumno.getsex Getsex sexofmetodoObjeto Oalumno ejemplar_de Calumno
Inicio // Programa principal// Botón de ingreso de datos de un alumno
Oalumno.constructorMostrar “ingresar codigo, nombre, sexo, fecha de nacimiento “ xcod Edit1.texto xnom Edit2.texto xsex Edit3.texto xaño Edit4.texto oalumno.asignar(xcod, xnom, xsex, xaño ) -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
// Botón de recuperación de datos de un alumno xcod oalumno.getcod xnom oalumno.getnom
xsex oalumno.getsex xaño oalumno.getaño etiqueta1.titulo xcod etiqueta2.titulo xnom etiqueta3.titulo xsex etiqueta4.titulo xaño-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.--.-.-.-.-.-.-.-.-.-.-.-
Ejemplo 2.- Generar una clase que permita ingresar y mostrar los datos de un alumno.Trabajando con herencia
Clase Calumnito viene_de Calumno Atributos Añonacim Métodos
Asignar (wcod, wnom, wsex, waño) Getaño Getedad (año_actual)
Fclase
Metodo Calumnito.asignar(wcod, wnom, wsex, waño) Añonacim waño Heredado asignar(wcod, wnom, wsex) // usando anulación por refinamientofmetodoMetodo Calumnito.getaño Getaño añonacimFmetodo
Metodo Calumnito. Getedad(año_actual) Getedad año_actual - añonacim fmetodo
Objeto Oalumnito ejemplar_de Calumnito
.--.-.--.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
// botón de ingreso de datos
Oalumnito.constructorMostrar “ingresar codigo, nombre, sexo, fecha de nacimiento “ xcod Edit1.texto xnom Edit2.texto xsex Edit3.texto xaño Edit4.texto oalumnito.asignar(xcod, xnom, xsex, xaño )
.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-// botón de calculo de la edad
xañoactual Edit5.textoetiqueta5.titulo oalumno.getedad(xañoactual)