Parte I: Programación en Ada
|
|
- María Nieves Villalobos Ortiz
- hace 6 años
- Vistas:
Transcripción
1 Parte I: Programación en Ada 1. Introducción a los computadores y su programación 2. Elementos básicos del lenguaje 3. Modularidad y programación orientada a objetos 4. Estructuras de datos dinámicas 5. Tratamiento de errores 6. Abstracción de tipos mediante unidades genéricas 7. Entrada/salida con ficheros 8. Herencia y polimorfismo 9. Programación concurrente y de tiempo real GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González Diseño modular y orientado a objetos El diseño modular es una técnica que viene usándose desde hace mucho tiempo. El problema es cómo partir en módulos independientes antes solía hacerse de acuerdo a criterios funcionales (agrupar funciones similares) Librería de Gráficos Estructuras de Datos Operaciones de Dibujar Operaciones de Modificación... GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 2
2 Partición con criterios funcionales Inconvenientes Cada figura (objeto del espacio problema) reside en varios módulos de programa - por tanto estos módulos no son independientes Un cambio en el objeto del espacio problema implica cambiar muchos módulos, y volverlos a probar Añadir nueva funcionalidad implica normalmente tocar varios módulos, y volverlos a probar - por ejemplo, añadir una figura nueva. En definitiva, el software es difícil de cambiar o extender y poco reutilizable GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 3 Diseño Orientado a Objetos Se puede utilizar otra aproximación a la partición en módulos: división orientada a objetos cada objeto del problema real que es preciso resolver es un módulo del programa se encapsulan juntas la definición del objeto y todas sus operaciones El diseño de programas orientado a objetos pretende: simplificar la modificación y extensión del software, haciendo que la mayor parte del mismo sea reutilizable además es más fácil de entender ya que existe relación directa entre la estructura del software y la del problema GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 4
3 Ejemplo de diseño orientado a objetos Librería de Gráficos Línea recta y sus operaciones Rectángulo y sus operaciones Círculo y sus operaciones... GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 5 Ventajas Si el diseño es orientado al objeto: el cambio interno en un objeto afecta a un solo módulo en muchos casos, extender la funcionalidad no implica modificar el software existente, sino sólo añadir nuevos objetos el software es más reutilizable GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 6
4 3.2. Concepto de clase y objeto Un objeto es un elemento de programa que se caracteriza por: atributos o campos: son datos contenidos en el objeto, y que determinan su estado operaciones o métodos: son operaciones con las que podemos solicitar información del objeto, o modificarla - Están compuestas por secuencias de instrucciones que operan con los atributos, y que pueden invocar operaciones de otros objetos Una clase representa una definición de un módulo de programa, a partir de la cual se pueden crear muchos objetos Cada uno de estos objetos es una instancia de la clase GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 7 Concepto de clase y objeto (cont.) Se intenta siempre corresponder los objetos de un programa con objetos del problema que éste resuelve. Ejemplo: mostrar uno o varios gráficos de funciones de una variable. Los gráficos representan una clase de objetos. Gráfico Título Puntos (X,Y) del gráfico Número de puntos Títulos de los ejes Crear un gráfico nuevo Añadir un punto Pintar el gráfico Poner el título Cada gráfica individual representa un objeto de la clase Gráfico. atributos operaciones GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 8
5 Ejemplo with Plot_Windows; use Plot_Windows; procedure Experimento is Plot : Plot_Window_Type:= Plot_Window("Experimento","Tiempo (s)","temperatura (C)"); Set_Graph_Title(Plot,"Exp. 7"); -- Anadir los puntos Add_Point(Plot,0.0,20.4); Add_Point(Plot,1.0,23.2); Add_Point(Plot,2.0,24.8); Add_Point(Plot,3.0,25.7); Add_Point(Plot,4.0,26.1); Add_Point(Plot,5.0,26.5); -- Pintar el gráfico Wait(Plot); end Experimento; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González Paquetes Ada Motivación: Encapsular juntas declaraciones de constantes, tipos y subprogramas Programación orientada a objetos: encapsulamiento de clases con especificación de una interfaz visible, y ocultando los detalles internos Los paquetes Ada tienen dos partes: parte visible o especificación - a su vez, tiene una parte no visible o privada cuerpo, con los detalles internos GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 10
6 Declaración de paquetes Se ponen en la parte de declaraciones de un programa (o en un fichero aparte como veremos más adelante) Especificación package Nombre is declaraciones de datos y tipos; declaraciones de tipos y constantes privadas; declaraciones de cabeceras de subprogramas; declaraciones de especificaciones de paquetes; private otras declaraciones necesarias más abajo; declaraciones completas de los tipos y constantes privados end Nombre; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 11 Declaración de paquetes (cont.) Cuerpo package body Nombre is declaraciones de datos y subprogramas; declaraciones de subprogramas y paquetes de la especificación; instrucciones de inicialización; end Nombre; Las instrucciones de inicialización se ejecutan una sóla vez antes de que se use el paquete son opcionales (junto a su ) sirven para inicializar variables declaradas en el paquete GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 12
7 Uso de un paquete Uso de objetos de la parte visible de un paquete: Paquete.objeto Con cláusula use se puede usar el objeto directamente use Paquete; Con una cláusula use type se pueden usar los operadores de un tipo directamente use type Paquete.Tipo; Si no se hace, los operadores se tendrían que usar como funciones: c:=paquete."+"(a,b); -- en lugar de c:=a+b; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 13 Ejemplo: Números complejos package Complejos is type Complejo is private; function Haz_Complejo (Re,Im : Float) return Complejo; function Real(C : Complejo) return Float; function Imag(C : Complejo) return Float; function "+" (C1,C2 : Complejo) return Complejo; function Image(C : Complejo) return String; private type Complejo is record Re,Im : Float; end record; end Complejos; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 14
8 Ejemplo (cont.) package body Complejos is function "+" (C1,C2 : Complejo) return Complejo is return (C1.Re+C2.Re,C1.Im+C2.Im); end "+"; function Haz_Complejo (Re,Im : Float) return Complejo is return (Re,Im); end Haz_Complejo; function Imag (C : Complejo) return Float is return C.Im; end Imag; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 15 Ejemplo (cont.) function Image (C : Complejo) return String is if C.Im>=0.0 then return Float Image(C.Re)&" + "&Float Image(C.Im)&" J"; else return Float Image(C.Re)&" - "&Float Image(abs C.Im)&" J"; end if; end Image; function Real (C : Complejo) return Float is return C.Re; end Real; end Complejos; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 16
9 Ejemplo de uso with Complejos, Ada.Text_IO; use Ada.Text_IO; use type Complejos.Complejo; procedure Prueba_Complejos is C1,C2,C3 : Complejos.Complejo; C1:=Complejos.Haz_Complejo(3.0,4.0); C2:=Complejos.Haz_Complejo(5.0,-6.0); Put_Line("C1="&Complejos.Image(C1)); Put_Line("C2="&Complejos.Image(C2)); C3:=C1+C2; Put_Line("Parte real C3="&Float Image(Complejos.Real(C3))); Put_Line("Parte imag C3="&Float Image(Complejos.Imag(C3))); end Prueba_Complejos; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González Compilación separada En Ada se pueden compilar separadamente: subprogramas especificaciones de paquetes cuerpos de paquetes Cada uno de ellos se llama unidad de librería Para usar una unidad compilada separadamente se debe usar una cláusula with. El orden de compilación, en algunos compiladores, es importante. En Gnat no importa GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 18
10 Ejemplo: pral.adb with P,Pack procedure Pral is... Pack.P(I) P; Pack.Q;... end Pral; p.adb with Pack procedure P is... Pack.Q;... end P; pack.ads package Pack is procedure P (I : Integer); procedure Q; end Pack; pack.adb package body Pack is procedure P (I : Integer) is... procedure Q is... end Pack; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 19 Cláusulas use Observar que no tiene nada que ver la compilación separada (with) con la cláusula use Las cláusulas use se usan para no tener que poner el nombre del paquete delante del objeto Criterios para las cláusulas use Poner use para paquetes muy conocidos y usados(ada.text_io) No poner cláusula use para paquetes nuestros Poner cláusula use type para poder usar los operadores de un tipo directamente GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 20
11 3.4. Reglas de visibilidad Quedan modificadas en los siguientes aspectos: Las declaraciones de la especificación (visibles y privadas) son visibles en el cuerpo Las declaraciones de la parte visible de la especificación son visibles en el bloque en que se declara el paquete: - si se antepone el nombre del paquete - o mediante cláusula use Las declaraciones del cuerpo sólo son visibles en ese cuerpo. GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 21 Paquetes hijos Es posible crear paquetes que son hijos de otros, formando una estructura jerárquica. Lo que caracteriza a un paquete hijo es que tiene visibilidad sobre la parte privada del padre, pero no sobre el cuerpo Para declararlo se usa la notación. en el nombre package Padre is... end Padre; package Padre.Detalle is...-- puede usar la parte privada de Padre end Padre.Detalle; En Gnat el fichero debe tener el nombre padre-detalle.ads GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 22
12 3.5. Tipos de paquetes 1. Paquetes sin cuerpo 2. Librerías: - engloban operaciones relacionadas entre sí 3. Paquetes con objetos o máquinas de estados abstractas - encapsulan un objeto (un dato oculto en el cuerpo) y operaciones para manipularlo 4. Paquetes con clases o tipos de datos abstractos - encapsulan un tipo de datos y operaciones para manipular objetos de ese tipo - el tipo de datos es privado - el usuario puede crear todos los objetos de ese tipo de datos que desee GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 23 Paquete sin cuerpo package Constantes_Atomicas is Carga_Electron : constant := 1.602E-19; -- Coulombios Masa_Electron : constant := E-30; -- Kg Masa_Neutron : constant := E-30; -- Kg Masa_Proton : constant := E-30; -- Kg -- Este package no tiene "body" end Constantes_Atomicas; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 24
13 Paquete con un objeto o máquina de estados (1/3) with Elementos; -- define el tipo Elemento, que es discreto use Elementos; package Un_Conjunto is procedure Inserta (E : Elemento); procedure Extrae (E : Elemento); function Pertenece (E: Elemento) return Boolean; end Un_Conjunto; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 25 Paquete con un objeto o máquina de estados (2/3) package body Un_Conjunto is type Conjunto is array (Elemento) of Boolean; C : Conjunto; -- aquí está la variable que contiene el estado procedure Inserta (E : Elemento) is C(E):=True; end Inserta; procedure Extrae (E : Elemento) is C(E):=False; end Extrae; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 26
14 Paquete con un objeto o máquina de estados (3/3) function Pertenece (E: Elemento) return Boolean is return C(E); end Pertenece; -- Inicialización del estado del paquete C:= Conjunto'(Conjunto'range=>False); end Un_Conjunto; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 27 Paquete con una clase o tipo abstracto de datos (1/3) with Elementos; -- define el tipo Elemento, que es discreto use Elementos; package Conjuntos_Privados is type Conjunto is private; function Vacio return Conjunto; procedure Inserta (E : Elemento; C : in out Conjunto); procedure Extrae (E : Elemento; C : in out Conjunto); -- pertenencia function "<" (E: Elemento; C: Conjunto) return Boolean; private type Conjunto is array (Elemento) of Boolean; end Conjuntos_Privados; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 28
15 Paquete con una clase o tipo abstracto de datos (2/3) package body Conjuntos_Privados is function Vacio return Conjunto is return Conjunto'(Conjunto'range=>False); end Vacio; procedure Inserta (E : Elemento; C : in out Conjunto) is C(E):=True; end Inserta; procedure Extrae (E : Elemento; C : in out Conjunto) is C(E):=False; end Extrae; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 29 Paquete con una clase o tipo abstracto de datos (3/3) -- pertenencia function "<" (E: Elemento; C: Conjunto) return Boolean is return C(E); end "<"; end Conjuntos_Privados; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 30
16 Algunos paquetes de librerías: Números aleatorios package Ada.Numerics.Float_Random is -- Basic facilities type Generator is limited private; subtype Uniformly_Distributed is Float range ; function Random (Gen : Generator) return Uniformly_Distributed; procedure Reset (Gen : Generator); procedure Reset (Gen : Generator; Initiator : Integer); -- Advanced facilities... end Ada.Numerics.Float_Random; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 31 Ejemplo de uso de números aleatorios: with Ada.Numerics.Float_Random, Text_Io, Ada.Integer_Text_Io; use Ada.Numerics.Float_Random, Text_Io, Ada.Integer_Text_Io; procedure Dado is Gen : Generator; Pulsada : Boolean; C : Character; Put_Line("Pulsa una tecla para parar"); Reset(Gen); loop Put(Integer(6.0*Random(Gen)+0.5)); New_Line; delay 0.5; Get_Immediate(C,Pulsada); exit when Pulsada; end loop; end Dado; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 32
17 Librería de strings variables (1/3) with Ada.Text_IO; use Ada; package Var_Strings is Max_Length : constant Integer := 80; type Var_String is private; Null_Var_String : constant Var_String; function To_String (V : Var_String) return String; function To_Var_String (S : String) return Var_String; function Length (V : Var_String) return Natural; procedure Get_Line (V : out Var_String); procedure Put_Line (V : in Var_String); procedure Put (V : in Var_String); procedure Get_Line (F : in out Text_IO.File_Type; V : out Var_String); GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 33 Librería de strings variables (2/3) procedure Put_Line (F : in out Text_IO.File_Type; V : in Var_String); procedure Put (F : in out Text_IO.File_Type; V : in Var_String); function "&" (V1,V2 : Var_String) return Var_String; function "&" (V : Var_String; S : String) return Var_String; function "&" (S : String; V : Var_String) return Var_String; function "&" (V : Var_String; C : Character) return Var_String; function "=" (V1,V2 : Var_String) return Boolean; function ">" (V1,V2 : Var_String) return Boolean; function "<" (V1,V2 : Var_String) return Boolean; function ">=" (V1,V2 : Var_String) return Boolean; function "<=" (V1,V2 : Var_String) return Boolean; function Element (V : Var_String; Index : Positive) return Character; function Slice (V : Var_String; Index1 : Positive; Index2 : Natural) return Var_String; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 34
18 Librería de strings variables (3/3) function To_Upper (V : Var_String) return Var_String; function To_Lower (V : Var_String) return Var_String; procedure Translate_To_Upper (V : in out Var_String); procedure Translate_To_Lower (V : in out Var_String); private type Var_String is record Str : String (1..Max_Length); Num : Integer range 0..Max_Length:=0; end record; Null_Var_String : constant Var_String := (Str => (others => ' '), Num => 0); end Var_Strings; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 35 Otras Librerías Estándares Nombre Ada.Numerics.Complex_Types Ada.Numerics. Complex_Elementary_Functions Ada.Calendar Ada.Characters.Handling Ada.Characters.Latin_1 Ada.Command_Line Descripción Tipos para números complejos Operaciones matemáticas para números complejos Fecha y hora Conversión y clasificación de caracteres y strings Conjunto de caracteres estándares Operaciones para recibir los argumentos expresados en la orden de ejecución del programa GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 36
19 3.6. Ejemplo de programa con paquetes Programa para la gestión de una lista de alumnos Fases: Análisis de requerimientos Especificación funcional Diseño arquitectónico Diseño detallado Codificación Prueba GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 37 Análisis de requerimientos Queremos manejar datos personales de una clase de alumnos Cada alumno tiene los siguientes datos: Nombre Teléfono Escuela a la que pertenece (dentro de un conjunto fijo) La clase contiene un número variable de alumnos Podemos acotar el número máximo a 100 No es necesario que estén ordenados El programa debe permitir insertar alumnos nuevos y ver los datos del alumno indicado por el usuario GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 38
20 Especificación funcional El programa presentará al usuario un menú con tres opciones: Insertar un alumno nuevo - comprueba si cabe; si no cabe presenta un error - pedirá los datos del alumno por teclado - insertará el nuevo alumno en la clase Mirar los datos de un alumno - pedirá el número del alumno - si es incorrecto muestra un mensaje de error - si es correcto muestra los datos de ese alumno Salir del programa GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 39 Diseño arquitectónico Partimos el programa en las siguientes partes clase alumno - datos: datos personales del alumno - operaciones: para leer datos de teclado y escribirlos en pantalla clase "clase" - datos: la lista de los alumnos - operaciones: número de alumnos, saber si está llena, obtener el alumno "n", insertar un nuevo alumno librería "menu" - con operaciones para pedir una opción del menú, pedir el número de un alumno, y mostrar un mensaje de error GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 40
21 Diseño arquitectónico (cont.) programa principal que gestiona las llamadas a las operaciones de los diferentes paquetes Las interfaces de cada parte se muestran a continuación: package Alumnos is type Tipo_Escuela is (Teleco, Caminos, Fisicas, Medicina); type Alumno is private; procedure Lee (Alu : out Alumno); procedure Escribe (Alu : in Alumno); private... end Alumnos; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 41 Diseño arquitectónico (cont.) with Alumnos; package Clases is Max_Alumnos : constant Integer := 100; subtype Num_Alumno is Integer range 1..Max_Alumnos; type Clase is private; procedure Inserta_Alumno (Alu : in Alumnos.Alumno; La_Clase : in out Clase); function Dame_Alumno (Num : in Num_Alumno; La_Clase : in Clase) return Alumnos.Alumno; function Numero_Alumnos (La_Clase : in Clase) return Natural; function Llena (La_Clase : in Clase) return Boolean; private... end Clases; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 42
22 Diseño arquitectónico (cont.) with Clases; package Menu is type Opcion is (Insertar,Mirar,Salir); procedure Pide_Opcion (La_Opcion : out Opcion); procedure Lee_Num_Alumno (Num : out Clases.Num_Alumno); procedure Mensaje_Error (Mensaje : in String); end Menu; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 43 Diseño detallado Clase Alumno datos: registro con los siguientes campos: nombre (string de hasta 20 caracteres) número de caracteres del nombre teléfono (string fijo de 9 caracteres) escuela: dato enumerado leer datos de teclado mostrar el nombre de cada dato y leerlo escribir datos en pantalla mostrar el nombre de cada dato y su valor GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 44
23 Diseño detallado (cont.) Clase Clase Estructura de la lista de los alumnos - usaremos un array de alumnos y una variable para saber cuántos alumnos hay número de alumnos retornar el número almacenado saber si está llena comparar el número de alumnos con el máximo obtener el alumno "n" devolver la casilla n del array insertar un nuevo alumno añadirle al final del array e incrementar el nº de alumnos GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 45 Diseño detallado (cont.) Librería Menu pedir una opción del menú presentar todas las opciones con un número al lado pedir un número convertirlo al tipo enumerado Opcion pedir el número de un alumno poner un texto y leer el número mostrar un mensaje de error poner el texto en pantalla GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 46
24 Diseño detallado (cont.) Programa principal. Pseudocódigo: procedure Principal is Tercero_B : Clase=Vacia loop Pedir una opcion case la opcion es when insertar si no cabe: mostrar error si cabe: pedir datos del alumno insertar alumno when mirar pedir el numero si es incorrecto mostrar error si no, mostrar el alumno when salir: finalizar end loop; end Principal GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 47 Codificación: Paquete Alumnos package Alumnos is Tamano_Nombre : constant Integer := 20; type Tipo_Escuela is (Teleco, Caminos, Fisicas, Medicina); type Alumno is private; procedure Lee (Alu : out Alumno); procedure Escribe (Alu : in Alumno); private type Alumno is record Nombre : String(1..Tamano_Nombre); N_Nombre : Integer range 0..Tamano_Nombre:=0; Telefono : String(1..9):=" "; Escuela : Tipo_Escuela:=Teleco; end record; end Alumnos; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 48
25 Paquete Alumnos (cont.) with Ada.Text_IO; use Ada.Text_IO; package body Alumnos is package Escuela_IO is new Enumeration_IO(Tipo_Escuela); procedure Escribe (Alu : in Alumno) is Put_Line(" "); Put("Nombre : "); Put_Line(Alu.Nombre(1..Alu.N_Nombre)); Put_Line("Telefono : "&Alu.Telefono); Put("Escuela : "); Escuela_IO.Put(Alu.Escuela); New_Line; Put_Line(" "); New_Line; end Escribe; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 49 Paquete Alumnos (cont.) procedure Lee (Alu : out Alumno) is Put("Nombre del alumno: "); Get_Line(Alu.Nombre,Alu.N_Nombre); Put("Numero de Telefono: (9 cifras) "); Get(Alu.Telefono); Skip_Line; Put("Escuela: "); Escuela_IO.Get(Alu.Escuela); Skip_Line; end Lee; end Alumnos; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 50
26 Paquete Clases with Alumnos; package Clases is Max_Alumnos : constant Integer := 100; subtype Num_Alumno is Integer range 1..Max_Alumnos; type Clase is private; procedure Inserta_Alumno (Alu : in Alumnos.Alumno; La_Clase : in out Clase); function Dame_Alumno (Num : in Num_Alumno; La_Clase : in Clase) return Alumnos.Alumno; function Numero_Alumnos (La_Clase : in Clase) return Natural; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 51 Paquete Clases (cont.) function Llena (La_Clase : in Clase) return Boolean; private type Tipo_Alumnos is array (1..Max_Alumnos) of Alumnos.Alumno; type Clase is record Alumnos : Tipo_Alumnos; Num : Integer:=0; end record; end Clases; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 52
27 Paquete Clases (cont.) with Ada.Text_IO; use Ada.Text_IO; package body Clases is function Dame_Alumno (Num : in Num_Alumno; La_Clase : in Clase) return Alumnos.Alumno is return La_Clase.Alumnos(Num); end Dame_Alumno; procedure Inserta_Alumno (Alu : in Alumnos.Alumno; La_Clase : in out Clase) is La_Clase.Num:=La_Clase.Num+1; La_Clase.Alumnos(La_Clase.Num):=Alu; end Inserta_Alumno; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 53 Paquete Clases (cont.) function Llena (La_Clase : in Clase) return Boolean is return La_Clase.Num=Max_Alumnos; end Llena; function Numero_Alumnos (La_Clase : in Clase) return Natural is return La_Clase.Num; end Numero_Alumnos; end Clases; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 54
28 Paquete Menu with Clases; package Menu is type Opcion is (Insertar,Mirar,Salir); procedure Pide_Opcion (La_Opcion : out Opcion); procedure Lee_Num_Alumno (Num : out Clases.Num_Alumno); procedure Mensaje_Error (Mensaje : in String); end Menu; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 55 Paquete Menu (cont.) with Ada.Text_IO, Ada.Integer_Text_IO; use Ada.Text_IO, Ada.Integer_Text_IO; package body Menu is procedure Lee_Num_Alumno (Num : out Clases.Num_Alumno) is Put("Numero del alumno: "); Get(Num); Skip_Line; end Lee_Num_Alumno; procedure Mensaje_Error (Mensaje : in String) is Put_Line(Mensaje); end Mensaje_Error; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 56
29 Paquete Menu (cont.) procedure Pide_Opcion (La_Opcion : out Opcion) is Num_Opcion : Integer range 1..3; New_Line; Put_Line("LISTA DE ALUMNOS:"); Put_Line("1-Insertar alumno"); Put_Line("2-Mirar un alumno"); Put_Line("3-Salir"); Put("Elige una opcion:"); Get(Num_Opcion); Skip_Line; La_Opcion:=Opcion Val(Num_Opcion-1); end Pide_Opcion; end Menu; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 57 Programa principal with Menu,Alumnos,Clases; procedure Lista_Alumnos is Tercero_B : Clases.Clase; Eleccion : Menu.Opcion; Alu : Alumnos.Alumno; Num : Clases.Num_Alumno; loop Menu.Pide_Opcion (Eleccion); case Eleccion is when Menu.Insertar => if Clases.Llena(Tercero_B) then Menu.Mensaje_Error("No caben mas alumnos"); else Alumnos.Lee(Alu); Clases.Inserta_Alumno(Alu,Tercero_B); end if; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 58
30 Programa principal (cont.) when Menu.Mirar => Menu.Lee_Num_Alumno(Num); if Num>Clases.Numero_Alumnos(Tercero_B) then Menu.Mensaje_Error("Alumno no existe"); else Alu:=Clases.Dame_Alumno(Num,Tercero_B); Alumnos.Escribe(Alu); end if; when Menu.Salir => exit; end case; end loop; end Lista_Alumnos; GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 59 Prueba La prueba se puede hacer en las siguientes fases: Paquete Alumnos: hacer un programa principal de prueba que lea un alumno y lo muestre por la pantalla Paquete Menu: hacer un programa principal de prueba que invoque cada operación y muestre el resultado obtenido Paquete Clases y programa principal: usar el programa completo para probar las clases y el funcionamiento completo - introducir varios alumnos - mirarlos - probar los dos errores definidos: llena (reduciendo temporalmente el tamaño máximo) y número de alumno incorrecto GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 60
31 Criterios para la prueba de una unidad El programa de prueba de una unidad debe: probar todas las operaciones, con todos sus casos, comparando los resultados con algún resultado conocido probar las operaciones en diferente orden (p.e. insertar, eliminar, volver a insertar, etc.) probar los casos límite: p.e. estructura de datos llena, vacía, insertar al principio o al final, etc. probar todos los casos de error que se pueda GRUPO DE COMPUTADORES Y TIEMPO REAL Javier Gutiérrez, Michael González 61
Examen de Lenguajes de Alto Nivel
Cuestiones (4 cuestiones, 4 puntos en total) Examen de Lenguajes de Alto Nivel Febrero 2005 1) Escribir el cuerpo del paquete cuya especificación se muestra debajo, de modo que el procedimiento Abre abra
Parte I: Elementos del lenguaje Ada
Parte I: Elementos del lenguaje Ada 1. Introducción a los computadores y su programación 2. Elementos básicos del lenguaje 3. Modularidad y programación orientada a objetos 4. Estructuras de datos dinámicas
Tema 4.- Pilas y Colas
Apuntes elaborados por: Eduardo Quevedo, Raquel López y Aaron Asencio Revisado por: Javier Miranda el???? Tema 4.- Pilas y Colas Las pilas y colas son estructuras de datos que se utilizan generalmente
Parte I: Programación en Ada
Parte I: Programación en Ada 1. Introducción a los computadores y su programación 2. Elementos básicos del lenguaje 3. Modularidad y programación orientada a objetos 4. Estructuras de datos dinámicas 5.
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Manual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
Los Tipos Abstractos de Datos. Estructuras de Datos y Algoritmos 03/04
Los Tipos Abstractos de Datos Estructuras de Datos y Algoritmos 03/04 Qué son los TAD s? Metodología de programación con TAD s Especificación Algebraica de TAD s Qué son los TAD s? Con los lenguajes de
Parte I: Elementos del lenguaje Ada
Parte I: Elementos del lenguaje Ada 1. Introducción a los computadores y su programación 2. Elementos básicos del lenguaje 3. Modularidad y programación orientada a objetos 4. Estructuras de datos dinámicas
Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos
Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad
Introducción a la programación: Algoritmos
Introducción a la programación: Algoritmos Algoritmo La palabra algoritmo proviene del nombre del matemático persa del siglo IX Muhammad ibn Musa al-jwarizmi Un algoritmo es una secuencia ordenada de pasos,
Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Tema 7.- Fundamentos de la Programación Orientada a Objetos
Tema 7.- Fundamentos de la Programación Orientada a Objetos 7 de enero de 2014 Objetivos Saber definir clases propias. Saber crear objetos de una clase determinada e interactuar con ellos (Problema 1).
INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje
INDICE Prólogo XV Parte 1. Visual Basic 1 Capitulo 1. Qué es Visual Basic? 3 Introducción 3 Como crear una aplicación 5 Otras facilidades de Visual Basic 6 Un lenguaje de alto nivel 9 Menús 10 Colores
Parte II: Estructuras de datos y algoritmos
Parte II: Estructuras de datos y algoritmos Tema 11. Tipos abstractos de datos. Conceptos básicos. Listas. Pilas. Colas. Vectores. Conjuntos. Mapas. Árboles. Árboles binarios. GRUPO DE COMPUTADORES Y TIEMPO
Programación en Lenguaje Java
Programación en Lenguaje Java Problema 3.1. Prac.car con strings e instrucciones condicionales Michael González Harbour Mario Aldea Rivas Departamento de Matemá.cas, Estadís.ca y Computación Este tema
FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)
APRENDERAPROGRAMARCOM FUNCIONES PHP: DECLARACIÓN Y LLAMADAS PARÁMETROS, RETURN EJERCICIOS EJEMPLOS RESUELTOS (CU00827B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero Fecha
TEMA 1: Algoritmos y programas
TEMA 1: Algoritmos y programas 1.1.-Introducción La razón principal para utilizar un ordenador es para resolver problemas (en el sentido más general de la palabra), o en otras palabras, procesar información
TEMA 5: Subprogramas, programación modular
TEMA 5: Subprogramas, programación modular 5.1.-Definición de módulo. Programación modular La programación modular está basada en la técnica de diseño descendente, que como ya vimos consiste en dividir
INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación
INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.
ALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y
Los nombres y marcas comerciales mencionados en este manual son propiedad de sus respectivos autores o fabricantes.
Para aportes y sugerencias puede escribir al correo del autor: thenewinquirer01@gmail.com Los nombres y marcas comerciales mencionados en este manual son propiedad de sus respectivos autores o fabricantes.
GENERALIDADES DEL LENGUAJE C
GENERALIDADES DEL LENGUAJE C La cadena con formato debe ir encerrada entre comillas dobles, no simples. El carácter de retorno de carro (\n) es obligatorio si se desea finalizar la impresión con un salto
OOP y C++ Indice. 0.1 Análisis orientado a objetos(1/4) Análisis orientado a objetos(2/4) 0.- OOP 1.- INTRODUCCIÓN.
OOP y C++ Un lenguaje para Programadores Carlos PLATERO Indice 0.- OOP 1.-. Objetivos, palabras clave, reglas prácticas, consejos 2.- CLASES Y OBJETOS. Extensión del concepto de estructura en C 3.- HERENCIA.
Programación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
Descripción y Contenido del Curso. Programación C++ Capacity Academy.
Descripción y Contenido del Curso Programación C++ Capacity Academy Educación en Tecnología de la Información Online, Efectiva y Garantizada Qué aprenderá si toma este Curso? En este curso aprenderás todo
Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
ESCUELA DE INFORMÁTICA
TÉCNICO EN SISTEMAS LABORAL SUBMODULO TEMA 1 (Visual Basic for Application) Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar
//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui
PL/SQL - Oracle PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje estructural mas
PROGRAMA JAVA SE (Standard Edition) MODALIDAD ONLINE
PROGRAMA JAVA SE (Standard Edition) MODALIDAD ONLINE JAVA SE (Standard Edition): El curso proporciona la base que necesita cualquier programador de Java, tanto en cuanto a las peculiaridades de la tecnología
Tema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
VHDL. Lenguaje de descripción hardware Estructura Básica de diseño
VHDL. Lenguaje de descripción hardware Estructura Básica de diseño 2007 A.G.O. All Rights Reserved Estructura de un diseño en VHDL LIBRARY declaraciones VHDL estructura básica ENTITY caja negra ARCHITECTURE
Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)
aprenderaprogramar.com Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029 Autor: Mario R. Rancel
Cuando no está abierto ningún menú, las teclas activas para poder desplazarse a través de la hoja son:
Veremos cómo introducir y modificar los diferentes tipos de datos disponibles en Excel, así como manejar las distintas técnicas de movimiento dentro de un libro de trabajo para la creación de hojas de
Tema 2 Conceptos básicos de programación. Fundamentos de Informática
Tema 2 Conceptos básicos de programación Fundamentos de Informática Índice Metodología de la programación Programación estructurada 2 Pasos a seguir para el desarrollo de un programa (fases): Análisis
SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC
SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC INTRODUCCIÓN Los subprogramas son otro tipo de bloques PL/SQL Se diferencian de los bloques anónimos porque
Lenguaje de programación C. Introducción
Lenguaje de programación C Introducción 1 Elementos del lenguaje C Colección de funciones Estas funciones contienen declaraciones, sentencias, expresiones y otros elementos que en conjunto indican a la
ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF
ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un
Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación
TUTORIAL PSEINT Ing. Ronald Rentería Ayquipa Fundamentos de Programación PSEINT Página Oficial: http://pseint.sourceforge.net/ Es un software que interpreta pseudocódigo. Permite la generación de diagramas
Tutorial 6: Qué es una función? y como utilizarla
Tutorial 6: Qué es una función? y como utilizarla AR 6 T Objetivo En la siguiente lección desarrollaremos el tema de las funciones en Arduino, para poder aplicarlo en las practicas siguientes ya que será
Introducción a PL/SQL
22/11/2016 Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla Noviembre 2014 Objetivos de este tema Conocer el lenguaje procedimental
Construcciones del Lenguaje Java
Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.
Programación Orientada a Objetos Profr. Pedro Pablo Mayorga
Actividad 3 Historia de los paradigmas de programación Unidad 1 Paradigma de programación Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No
Programación en Visual Basic Ricardo Rodríguez García
Manual Básico de Programación en Visual Basic 1.- Estructura de un proyecto Visual Basic Los programas o aplicaciones desarrolladas en Visual Basic van a constituir un único paquete que denominaremos proyecto.
Instrumentación de Tiempo Real
Instrumentación de Tiempo Real Tema 1. Introducción Tema 2. Recursos de acceso al hardware Tema 3. Interrupciones Tema 4. Puertas básicas de entrada/salida (I) Tema 5. Recursos de temporización de bajo
Introducción a Java LSUB. 30 de enero de 2013 GSYC
Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial
Introducción a PL/SQL
Introducción a PL/SQL Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2011 Objetivos de este tema Conocer PL/SQL. PL/SQL
FUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería
GUÍA DE ESTILO EN JAVA
GUÍA DE ESTILO EN JAVA Formato de líneas 1. No usar más de 80 caracteres por línea (imagen de tarjeta). De esta forma se pueden visualizar las líneas completas con un editor de texto o en una hoja impresa
III. Generación de Código orientado a objetos
III. Generación de Código orientado a objetos UNIDAD III Aspectos fundamentales Del código orientado a objetos. MÓDULOS DE CÓDIGO 1 DE FORMULARIO Almacenan el código en VB 2 ESTÁNDAR 3 DE CLASE Contiene
TEMA 4. EXCEPCIONES Y MANEJO DE EXCEPCIONES.
TEMA 4. EXCEPCIONES Y MANEJO DE EXCEPCIONES. 4.1. Introducción. 4.2. Tratamiento de excepciones. 4.2.1. Excepciones en lenguajes tradicionales. 4.2.2. Tratamiento de excepciones moderno. 4.3. Tratamiento
Unidad I: Introducción a las estructuras de datos
Unidad I: Introducción a las estructuras de datos 1.1 Tipos de datos abstractos (TDA) Los tipos de datos abstractos (TDA) encapsulan datos y funciones que trabajan con estos datos. Los datos no son visibles
2.1. Introducción al lenguaje Java
Bloque II. Elementos del lenguaje de programación Java 1.Introducción a los lenguajes de programación 2. Estructura de un programa 3. Datos y expresiones simples 4. Instrucciones de control 5. Entrada/salida
2. Estructuras condicionales
2. Estructuras condicionales Fundamentos de Informática Dpto. Lenguajes y Sistemas Informáticos Curso 2012 / 2013 Índice Estructuras condicionales 1. Ej07: Cond. simple 2. Ej08: Cond. doble 3. Ej09: Cond.
Metodología de Desarrollo de Programas
Metodología de Desarrollo de Programas Prof. Judith Barrios Albornoz Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Semestre A_2013 Este material
Instrumentación de Tiempo Real
Instrumentación de Tiempo Real Tema 1. Introducción Tema 2. Recursos de acceso al hardware Tema 3. Interrupciones Tema 4. Puertas básicas de entrada/salida (I) Tema 5. Recursos de temporización de bajo
Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs)
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs) Prof. Montserrat Serrano Montero ÍNDICE Tipos de datos El tipo abstracto
INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
Apuntes elaborados por: Eduardo Quevedo,Raquel López Revisado por: Javier Miranda el 25 de Mayo de 2004
Apuntes elaborados por: Eduardo Quevedo,Raquel López Revisado por: Javier Miranda el 25 de Mayo de 2004 Tema 1: Arrays En este primer tema nos familiarizaremos con la programación mediante objetos con
GUIA 3 PARTE II. Introducción a PL/SQL
GUIA 3 PARTE II Introducción a PL/SQL PL/SQL proviene de Procedural Language (lenguaje procedural)/ Structured Query Language (Lenguaje de consulta estructurado). PL/SQL ofrece un conjunto de comandos
Programación Orientada a Objetos
Programación Orientada a Objetos Departamento de Lenguajes y Ciencias de la Computación E.T.S.I. Informática Universidad de Málaga Contenido Introducción histórica Conceptos básicos de la Programación
Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas
Unidad II Fundamentos de programación en Java Ing. José Luis Llamas Cárdenas En java para poder escribir se emplea el objeto System.out, t pero para leer del teclado es necesario emplear System.in Et Este
Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????
Programación. Tema : Tablas Hash /Mayo/ Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema : Tabla Hash Las tabla hash aparece para conseguir
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:
Programación. Programa de la asignatura
Programación Grado en Física Grado en Matemáticas Programa de la asignatura Página Web: http://www.istr.unican.es/asignaturas/prog_fis_mat Curso 2016-2017 www.istr.unican.es Michael González Harbour, 3/feb/17
2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Diplomado Programación orientada a objetos con C++ y UML. Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos
Tema 2 Descripción de VHDL (2/2)
TECNOLOGÍA DE COMPUTADORES Tema 2 Descripción de VHDL (2/2) Agustín Álvarez Marquina Tipos de sentencias en VHDL Sentencias concurrentes PROCESS Asignación de señal BLOCK Llamadas a procedimientos Llamadas
Estructuras de Control. Secuencia y Selección
Estructuras de Control. Secuencia y Selección InCo - FING Programación 1 InCo - FING Estructuras de Control. Secuencia y Selección Programación 1 1 / 35 Estructuras de control InCo - FING Estructuras de
Generación de Código Intermedio
Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede
Java Avanzado Facultad de Ingeniería. Escuela de computación.
2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas
Fundamentos de Ordenadores. Depurar programas usando Nemiver
Fundamentos de Ordenadores Depurar programas usando Nemiver Departamento de Arquitectura de Computadores Autor: Mario Macias. Fecha de elaboración: 16/10/2015 1 Manual básico Nemiver Nemiver es un sencillo
Base de Datos Oracle 10g: Programación con PL/SQL Código: D Duración: 5 días (40 horas)
Base de Datos Oracle 10g: Programación con PL/SQL Código: D17214 - Duración: 5 días (40 horas) Lo que aprenderá Esta clase es aplicable para los usuarios de Oracle8i, Oracle9i y Oracle Database 10g. Este
Tema: Estructuras de Selección en C#.
Programación I, Guía 4 1 Tema: Estructuras de Selección en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Utilizar las instrucciones de selección if e
Tema: Funciones, Procedimientos y Recursividad en C#.
Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Programación I, Guía 6 1 Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas. Identificar
En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.
El primer objetivo de un programa informático es el manejo de datos. Un dato es toda aquella información que se puede tratar en un programa informático. En este artículo vamos a conocer los tipos de datos
funciones printf scanf
FUNCIONES EN C FUNCIONES Los módulos en C se llaman funciones. Hemos estado utilizando funciones de la biblioteca estandar stdio.h como por ejemplo printf y scanf. Comenzaremos viendo algunas funciones
Funciones y paquetes PL/SQL. Jonathan Medina Gómez Facultad de ingeniería Universidad de Antioquia
Funciones y paquetes PL/SQL Jonathan Medina Gómez Facultad de ingeniería Universidad de Antioquia Funciones Una función es un subprograma que retorna un valor simple. Las funciones se pueden invocar dentro
PROGRAMACION ORIENTADA A OBJETOS EN C++
PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje
Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia
Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona
La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.
Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la
Parte 4: Estructuras de Control
Parte 4: Estructuras de Control Las estructuras de control le permiten controlar el flujo de ejecución del programa. Tenemos dos tipos de estructuras de control: Estructuras de decisión Estructuras de
Seminario de Programación en Ada
Seminario de Programación en Ada Bloque II Programación de tiempo real GRUPO DE COMPUTADORES Y TIEMPO REAL Michael González, J. Javier Gutiérrez, Héctor Pérez 19 Programación de Tiempo Real El Ada soporta
Bibliografía (Java) Java: Introducción a Java
1 2 De a Contenido Introducción a Variables, tipos de datos y operadores Sentencias de control Subprogramas Tablas y matrices Excepciones Paquetes 3 4 Bibliografía () : Introducción a L. Lemay, C. Perkins.
Arrays. Programación. Licenciatura de Lingüística y Nuevas Tecnologías
Arrays Programación Licenciatura de Lingüística y Nuevas Tecnologías 2007-2008 Agenda Definición Declaración, creación, inicialización Acceso a los elementos del array Propiedades de los arrays Array como
Funciones Definición de función
Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas
PERIODO 3 HOJA DE CÁLCULO CONCEPTOS INTERMEDIOS OPERACIONES CON CELDAS, FILAS Y COLUMNAS EN EXCEL SELECCIONAR COPIAR MOVER BORRAR
PERIODO 3 HOJA DE CÁLCULO CONCEPTOS INTERMEDIOS CONTENIDOS OPERACIONES CON LIBROS DE TRABAJO EN EXCEL GUARDAR UN LIBRO CERRAR UN LIBRO. CREAR UN NUEVO LIBRO. ABRIR UN LIBRO OPERACIONES CON CELDAS, FILAS
Oracle Database: Programación con PL/SQL
Oracle University Contact Us: 0800-100-4183 & 0800-100-6854 Oracle Database: Programación con PL/SQL Duration: 5 Days What you will learn Este curso ofrece una introducción sobre PL/SQL y enumera la lista
Universidad Autónoma del Estado de México Facultad de Medicina
Universidad Autónoma del Estado de México Facultad de Medicina Licenciatura en Bioingeniería Médica Unidad de Aprendizaje: Algoritmos y programación básica Unidad 3: Estructuras de control de flujo en
Bloque práctico 2: Java
Bloque práctico 2: Java 1: Programación modular, herencia simple y polimorfismo. En esta práctica pondremos utilizaremos las capacidades de programación orientada a objetos de que dispone Java El objetivo
DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA
DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA Nombre del Módulo: PROGRAMACIÓN EN JAVASCRIPT Código: CSTI0087 total: 51 Horas Objetivo General: Crear contenido web basado en
El lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos
Lección 2: Creando una Aplicación en Java 1. Estructura del archivo de una clase 2. Usando una clase 3. Definiendo clases fundamentos Objetivos Conocer: La forma en la cual está se está estructurado el
Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)
Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma
1. Cuántas sentencias hay en la secuencia principal del siguiente programa?
1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.