Excepciones. Prof. Laura Lanzarini

Documentos relacionados
Formato para prácticas de laboratorio

Página 2. Tutorial de Delphi

MÉTODOS DE BÚSQUEDA. Pedro Guevara Salgado Luís Olascoaga

Manual de turbo pascal

Lazarus Free Pascal Compiler

Lazarus Free Pascal Compiler

FUNDAMENTOS DE INFORMÁTICA

[Titulo] : Creacion de un Crypter [Lenguaje] : Delphi [Autor] : Doddy Hackman. [Temario]

>> Programación Visual (GUI)

Delphi paso a paso (I)

Cómo desarrollar un servicio de Windows con Delphi

Programación en Visual Basic Ricardo Rodríguez García

Manual de Visual Basic Principiante Autor: Jorge Alvarez

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje

MINI CURSO DE PROGRAMACIÓN EN DELPHI DANIEL EDUARDO SALAS USECHE SE PERMITE EL LIBRE USO DE ÉSTE DOCUMENTO MIENTRAS SE MANTENGA CLARA Y PÚBLICA LA

Computación II. Introducción a Visual Basic

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Definición de Tipo de Dato Abstracto (TDA)

Estructura de datos Tema 2: Tipos Abstractos de Datos (TADs)

llamada a la función Val(num) cambiosigno(n) redondeo(num,3)

DELPHI PROGRAMACIÓN ORIENTADA A OBJETOS. ENTORNO VISUAL

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Algoritmos y Programación Clase 7

Ingeniería de Software I Manual de Prácticas

Módulo 8: Primitivas en Pascal

2.2 Nombres, Ligado y Ámbito

ESCUELA DE INFORMÁTICA

Este es un arreglo de números enteros, o sea que guarda una serie de variables de tipo INTEGER, todas agrupadas en una sola estructura.

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Profesor(a): Ing. Miriam Cerón Brito

Cómo nombrar variables ( 2&

Estructura de Datos: Archivos

Declaración de variables (integer, single, double, boolean, etc.) en Visual Basic. Dim. Ejemplos. (CU00309A)

Índice general. Capítulo 1 Conceptos básicos. Capítulo 2 Controles básicos I. Pág. N. 1

Universidad de Valladolid. Departamento de informática. Campus de Segovia. Estructura de datos Tema 4: Ordenación. Prof. Montserrat Serrano Montero

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

UNIVERSIDAD NACIONAL DE COLOMBIA SEDE DE MEDELLÍN. FACULTAD NACIONAL DE MINAS Escuela de Sistemas

UNIDAD 3: TIPOS ABSTRACTOS DE DATOS

Diseño e implementación

Turbo Pascal 7, FPS y sus herramientas de análisis de errores.

Inicio del programa. Entrada de datos. Proceso de datos. Salida de datos. Fin del programa

!" #$!"# $ % &!" ' $ *()"! $ ' + ), -./#" # $ $ + %& $ '00( $ / 0+), 0""(# $ / / ' /3 ' ' - 0

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Arrays dinámicos y arrays estáticos con Visual Basic y.net. Redim, Redim Preserve, Erase. Ejemplos (CU00342A)

Curso de Programación II con Visual Basic.Net

Uso de Disparadores. Miguel Angel Garduño Cordova Isaac Méndez Hernández

Curso de Programación II con Visual Basic.Net

Funciones como Subprogramas en C++

Estructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

DIPLOMADO FRAMEWORK PARA DESARROLLO DE SISTEMAS DE INFORMACIÓN EMPRESARIALES

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Práctica 2. Controles Básicos.

Introducción general

Objetivo: Construir un programa integrando sentencias de decisión MARCO TEÓRICO

LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

[Titulo] : Creacion de un Troyano de Conexion Inversa. [Lenguaje] : Delphi [Autor] : Doddy Hackman. [Temario]

Paint Otro de los accesorios que incorpora Windows 95 es Microsoft Paint, un sencillo programa de Dibujo.

Lenguaje C. Tipos de Datos Simples y Estructuras de Control

MÉTODOS NUMÉRICOS CONJUNTO DE NÚMEROS DE PUNTO FLOTANTE (GENERACIÓN DE MANTISAS)

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

Estructura de Datos: Archivos. Programacion I Mgter. Vallejos, Oscar A.

Estatutos de Control C# Estatutos de Decisión (Selección)

Visual Basic.net Completo

InterBase / Firebird: el uso de eventos

VISUAL BASIC.NET. NIVEL COMPLETO

Parte 4: Estructuras de Control

PASOS PARA CREAR FUNCIONES CON VBA

Visual Basic: procedimientos Sub y funciones Function. Tipos de parámetros y tipos de retorno. Ejemplos (CU00340A)

UTN FRR Ingeniería en Sistemas de Información Algoritmos y Estructuras de Datos Archivos Directos GUIA DE ESTUDIO: ARCHIVOS DIRECTOS

Fila: Es un conjunto de varias celdas dispuestas en sentido horizontal.

Java para programadores

INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN. Métodos Numéricos Carlos Zotelo

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Diseño de Aplicaciones con Model Maker for Delphi

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Los Tipos Abstractos de Datos. Estructuras de Datos y Algoritmos 03/04

ATLAS MANUAL DE USUARIO DEL INSTALADOR INNO SETUP 5 Versión 1.0 UNIDAD DE ARQUITECTURA DE SOFTWARE DE APLICACIONES

Tema 7. El sistema de clases

SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Conocimientos previos

CAPÍTULO 2 INTERFASE VISUAL BASIC 6.0

Modelos Comprimidos. Modelo de Bloque 3D Standard

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

PROCEDIMIENTO PARA GENERAR LOS REQUERIMIENTOS DE SELLOS DIGITALES

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)

Base de datos relacional. Diccionario ABAP. Modelo Base de datos. Mundo real

Manejo de Filas, Columnas, Celdas y Rangos

PHP: Lenguaje de programación

Formulario VBA en Excel. Creación del formulario. Actividad grado 10.

Transcripción:

Excepciones La información que se ingresa al programa siempre es un string. Cuando se trata de valores numéricos deben ser convertidos antes de ser usados. Los procesos de conversión producen error si el texto ingresado no contiene un número. Cómo se valida?

Ejemplo Calcu_Simple.dpr Implementar una calculadora sencilla que permita sumar dos números enteros. TSpeedButton (paleta Additional) Propiedades Caption Flat TEdit (paleta Standard) TLabel (paleta Standard)

Ejemplo : OnClick del botón Procedure TForm1.SpeedButton1Click(Sender: TObject ); Var Nro1, Nro2 : Integer; begin end; Nro1 := StrToInt(Edit1.Text); Nro2 := StrToInt(Edit2.Text); Edit3.text := IntToStr(Nro1 + Nro2 ); Ver que si Edit1 y/o Edit2 no contienen un número, la función StrToInt dará error y el programa abortará.

Seguimiento del programa Puede introducir un punto de parada en el programa clickeando sobre los puntos azules (ver F4 y F7). Muestra el valor de propiedades y variables Qué creen que va a pasar?

Manejo de Excepciones Una excepción es un evento que ocurre por un error del programa en tiempo de ejecución y es generada para indicarle al programador que han ocurrido errores que impiden la normal ejecución del programa (ej: división por cero). El proceso que permite resolver los problemas generados por una excepción se denomina el manejador de dicha excepción (ej: qué hacer cuando aparece la división por cero).

Manejo de Excepciones Desventajas al NO utilizar manejadores de excepciones: Oscurece el código desarrollado, ya que se mezclan las instrucciones dedicadas a resolver el problema con las requeridas para evitar los errores. Disminuye la eficiencia del código pues las validaciones son realizadas independientemente de si se trata de una situación de error o no.

Manejo de Excepciones En Pascal if Z <> 0 then X := Y / Z else ResolverDivisionPorCero; En Delphi try X := Y/Z; except Hay que leer el código para saber que parte resuelve el problema y que parte resuelve el error Código libre de errores on EZeroDivide do ResolverDivisionPorCero; end; Manejador que resuelve el problema

Manejo de Excepciones La condición Z<>0 se evalúa siempre En Pascal if Z <> 0 then X := Y / Z else ResolverDivisionPorCero; En Delphi try X := Y/Z; except on EZeroDivide do ResolverDivisionPorCero; end; Este es el único código que se ejecuta. No se evalúa ninguna condición.

Sintaxis try- except Try { Bloque de instrucciones que se desea proteger } except on ( Tipo de excepción 1 ) do Manejador_Excepcion_1; on ( Tipo de excepción 2 ) do Manejador_Excepcion_2;... else Manejador_para_las_demas; end;

Tipos de excepciones predefinidos Excepción EAccessViolation EConvertError EDivByZero EIntOverflow EInvalidGraphic ERangeError EZeroDivide Descripción Acceso a memoria inválido Error en la conversión de un string u objeto. División entera por cero. El entero calculado es demasiado grande. Se ha intentado trabajar con un formato de archivo gráfico desconocido. Error de rango. División de punto flotante por cero.

Ejemplo Calcu_Simple.dpr procedure TForm1.BitBtn1Click(Sender: TObject); Var Nro1, Nro2 : Integer; begin Try Nro1 := StrToInt(Edit1.Text); Nro2 := StrToInt(Edit2.Text); Edit3.text := IntToStr(Nro1 + Nro2 ); except on EConvertError do begin Edit3.text := ''; ShowMessage('Operandos Inválidos'); end; end; end;

Funciones de Conversión Dado un número lo convierten en un string IntToStr FloatToStr Para que la calculadora opere con valores reales Dado un string lo convierten en un número StrToInt StrToFloat

Strings en Pascal Revisemos los procesos definidos en Pascal para manejo de Strings Funciones Length, Copy y Pos Procedimiento Delete

Función Length Retorna la cantidad de caracteres que contiene el string Var linea : string; begin long : integer; linea := 'Esto es un ejemplo.'; long := length(linea); El valor de long será 19

Función Copy Sintaxis COPY( String, inicio, cantidad) retorna un substring de longitud cantidad formado por los caracteres de String comenzando en la posición indicada por inicio (inclusive).

Función Copy Retorna un substring de un string dado Var linea : string; minilinea : string; begin linea := 'Esto es un ejemplo.'; minilinea := copy(linea, 4, 6); El valor de minilinea será 'o es u'

Función POS Retorna la posición de un substring dentro de un string dado. Si no lo encuentra devuelve cero. Var linea : string; begin ubicacion : integer; linea := 'Esto es un ejemplo.'; ubicacion := POS('e', linea); El valor de ubicacion será 6

Procedimiento Delete Sintaxis DELETE( String, inicio, cantidad) Borra de String tantos caracteres como indica cantidad a partir de la posición indicada por inicio (inclusive).

Procedimiento Delete Permite borrar caracteres de un string dado. Var linea : string; ubicacion : integer; begin linea := 'Esto es un ejemplo.'; delete( linea, 2, 11); El valor de linea será 'Ejemplo.'

Ejemplo Analisis.dpr

Unidades en Pascal Una unidad consiste de declaraciones de tipos, constantes, variables y procesos (funciones y procedimientos ). Cada unidad se define en un archivo con extensión.pas Sintaxis Unit nombre_de_la_unidad; interface { declaraciones públicas } implementation { área privada. Lo aquí declarado sólo es conocido dentro de la unidad } end

Unidades en Pascal Cierre la aplicación anterior (File \ Close All). Abra únicamente una unidad nueva

Unit Unit1; interface Function CantVocales( S : String ) : integer; implementation Declaración pública Function CantVocales(S : String ) : integer; var auxi, : integer; i : integer; Lo aquí declarado es begin privado. Sólo lo auxi := 0; conoce esta unidad for i:= 1 to length(s) do if S[ i ] in [ 'a', 'e', 'i', 'o', 'u' ] then auxi := auxi + 1; CantVocales := auxi; end; end.

Unit Unit1; interface Function CantVocales( S : String ) : integer; implementation Function CantVocales(S : String ) : integer; var auxi, : integer; i : integer; begin auxi := 0; for i:= 1 to length(s) do if S[ i ] in [ 'a', 'e', 'i', 'o', 'u' ] then auxi := auxi + 1; CantVocales := auxi; end; end. Acceso a cada letra del string. El 1er. elem. tiene índice 1

Unidades en Pascal Para cambiar el nombre de la unidad debe salvarla con otro nombre mediante la opción File \ Save as El nombre del archivo debe coincidir con el nombre de la unidad

Ejemplo Unidades.dpr Utilice la unidad anterior en la siguiente aplicación

unit Unit1; interface La Unidad del Formulario uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type var TForm1 = class(tform) private { Private declarations } public end; { Public declarations } Form1: TForm1; implementation {$R *.DFM} end. Definición de la clase a la que pertenece el formulario

type TForm1 = class(tform) Label1: TLabel; Edit1: TEdit; Button1: TButton; Panel1: TPanel; Label2: TLabel; Label3: TLabel; private { Private declarations } public { Public declarations } end; Para Delphi Esta es la zona donde Delphi agrega código automáticamente Para el Programador En estas secciones podemos declarar lo que vamos a utilizar en el programa. Así se ve la clase TForm1, a la que pertenece el formulario, luego de pegar todas las componentes.

Invocación de la función En el OnClick del botón debe realizarse el llamado a la función procedure TForm2.Button1Click(Sender: TObject); begin end; label3.caption := IntToStr( CantVocales(edit1.text) ); panel1.visible := true; Falta indicar dónde está definida la función CantVocales

Agregando la unidad al proyecto Seleccione la unidad operaciones.pas

Agregando la unidad al proyecto La unidad operaciones.pas ha sido agregada.

Cláusula Uses Esta cláusula está ubicada dentro de sección de interface antes de la declaración de la clase del formulario. Allí debe agregarse el nombre de la unidad (archivo.pas) que contiene a la función a utilizar. Pude usarse File \ Use Unit Verifique si su aplicación funciona

Resumen Excepciones Sintaxis Funciones de conversión De número a String IntToStr, FloatToStr De String a número StrToInt, StrToFloat Manejo de Strings Como vector de caracteres. Funciones : Length, Pos y Copy. Procedimiento Delete Unidades Sintaxis Clausula Uses