You are on page 1of 46

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Universidad Nacional de Lujn Departamento de Ciencias Bsicas Divisin Estadstica y Sistemas

Asignatura: Introduccin a la Programacin (11071)

Equipo docente: Jorge Scucimarri Gustavo Croch Juan Manuel Fernandez Anabela Lorge

- Marzo 2012 Versin 1.0

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Acerca de este documento Este cuaderno de estudio est dirigido a estudiantes de la Universidad Nacional de Lujn, que cursen una asignatura inicial relacionada con la programacin de computadoras. El objetivo de esta asignatura es dotar al alumno de conocimientos bsicos, brindando una aproximacin introductoria al campo de la especialidad, aportando elementos iniciales mnimos e indispensables como base para una posterior profundizacin en la temtica.

Atencin: Estos apuntes deben ser usados como referencia de los temas vistos en clase. No son, ni intentan ser un texto de estudio. El contenido de estos apuntes no alcanza para la aprobacin de la materia, ya que slo enumeran los temas vistos. Para estudiar la materia, por favor referirse a la bibliografa del curso.

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Indice
Conceptos Bsicos................................................................................................................................4 Paradigmas de Programacin...............................................................................................................5 Metodologa de la Programacin..........................................................................................................6 Datos.....................................................................................................................................................8 Declaracin de Constantes y Variables..............................................................................................10 Expresiones y Operadores..................................................................................................................12 Operadores Aritmticos......................................................................................................................12 Operadores Relacionales....................................................................................................................13 Operadores sobre Cadenas..................................................................................................................13 Operadores Lgicos............................................................................................................................14 Orden de Prioridad de las operaciones...............................................................................................15 Funciones del Lenguaje......................................................................................................................17 Ejercicios Propuestos para el capitulo................................................................................................19 Programacin Estructurada.................................................................................................................20 Estructuras de Control........................................................................................................................20 Estructogramas o Diagramas Chapn.................................................................................................22 Escritura de Programas.......................................................................................................................24 Normas de Identacin.........................................................................................................................25 Entrada y Salida de Informacin........................................................................................................25 Estructura de Decisin........................................................................................................................28 Estructura Condicional Simple...........................................................................................................29 Estructura Repetitiva o Iterativa.........................................................................................................37 Bsqueda del Extremo........................................................................................................................43 Validacin de Datos............................................................................................................................43 Bibliografa.........................................................................................................................................45 Anexo I: Tipos de datos ms comunes...............................................................................................46

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Conceptos Bsicos Definiciones Informtica: Disciplina que estudia el anlisis y resolucin de problemas con la finalidad de procesar informacin racional y automticamente. Computadora: Maquina electrnica con capacidad de realizar clculos numricos y lgicos, cuya finalidad es ejecutar programas almacenados que resuelven problemas. Dato: Es una representacin de un hecho. Informacin: Son datos recolectados y procesados de alguna forma, que poseen una relevancia para un observador particular. De forma ms estricta, informacin es cualquier hecho que reduzca la incertidumbre. Hardware: Conjunto de elementos fsicos relacionados que componen una computadora. Software: Son los datos y programas que hacen funcionar a una computadora. Es de caracter intangible. Buscar una definicin ms formal Algoritmo: Conjunto finito y no ambiguo de etapas expresadas en un cierto orden, que a partir de condiciones iniciales pueda resolver un problema en un tiempo finito. Programa: Algoritmo codificado en algn lenguaje de programacin, que una computadora es capaz de interpretar y ejecutar , a los efectos de resolver un determinado problema. Usuario: Persona que utiliza los servicios que le brinda la computadora.

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Paradigmas de Programacin Un paradigma de programacin es un modelo bsico de diseo y desarrollo de programas. Los llamados paradigmas de programacin son conceptualizaciones genricas, que agrupan bajo un nombre a distintos lenguajes de programacin. Paradigma Imperativo Esta basado en el modelo Von Neumann, en donde un conjunto de operaciones primitivas realizan una ejecucin secuencial. Se utiliza esencialmente la instruccin de asignacin como constructor bsico, sobre el cual se construyen las instrucciones de control secuencial, alternativo e iterativo. Los lenguajes imperativos son orientados a instrucciones y por ello se consideran conducidos por comandos. Los programas escritos en ellos se basan en la idea de secuencia de instrucciones que se tienen que llevar a cabo como una receta, son la transcripcin de un algoritmo. La unidad de trabajo es la instruccin. Un programa consta de una secuencia de sentencias, y la ejecucin de cada sentencia obliga al intrprete o compilador a cambiar el valor de una o ms localizaciones en su memoria. PROGRAM intercambio; VAR x,y, tmp; BEGIN tmp := x; x := y; y := tmp; END. Algunos de los lenguajes de este tipo son Pascal, Ada y C.

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Metodologa de la Programacin Las siguientes son etapas que deben cumplirse a los efectos de resolver un problema mediante un programa informtico: Definicin del problema Se debe partir de un enunciado de problema claro y completo. Anlisis del problema A partir de comprender claramente cual es el problema, se procede a analizar alternativas de solucin, como ser:

Resultados que se esperan. Datos de entrada se brindan. Posibles mtodos a utilizar para obtener la salida deseada.

Construccin de un algoritmo Por medio de un lenguaje de especificacin (puede ser grfico o un seudolenguaje) se procede a construir un algoritmo que resuelva el problema en estudio. En esta etapa, una vez construido el algoritmo, se sugiere que el diseador realice una prueba de escritorio -someter el algoritmo a diversas ejecuciones, variando los datos de entrada y verificar su funcionamiento- a los efectos de determinar si el mtodo elegido funciona correctamente. Codificacin Utilizando un lenguaje de computadora se traduce el algoritmo a un programa fuente que una mquina sea capaz de entender y ejecutar. Se recomienda que el tcnico que realice esta tarea -el programador- inserte comentarios junto a las lneas de cdigo a los efectos de facilitar la lectura del programa (documentacin interna) en instancias superiores de validacin o mantenimiento. Compilacin Si el lenguaje utilizado en el proceso de codificacin requiere de una traduccin a lenguaje de mquina se utiliza un programa compilador a los efectos de generar un programa objeto. Es importante destacar que una de las funciones de todo compilador es el anlisis sintctico del programa fuente a los efectos de detectar errores de sintaxis ocasionados por errores de codificacin. El compilador no analiza semntica, es decir que las fallas de lgica que pueda existir en el programa fuente no son detectadas por el compilador. Prueba Se ejecutar el programa con distintos juegos de datos de entrada y se corrigen los errores que se puedan presentar. Al final se obtiene un programa depurado.

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Documentacin Etapa final en la cual se realiza la documentacin externa en la cual se explica lo que el programa hace y cuales son los datos de entrada y salida. parte de esta documentacin es requerida por usuarios y por programadores encargados del mantenimiento del software.

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Segunda Parte
Introduccin a la Programacin Datos Todo algoritmo utiliza datos. Los datos representan una abstraccin de la realidad. Por ejemplo, para calcular el sueldo de un empleado se necesita realizar una abstraccin de la informacin relativa al problema en estudio, tal como: funcin o cargo, antigedad, cantidad de hijos, estudios cursados, das trabajados, etc. Los datos son unidades atmicas de informacin, almacenadas en memoria, a partir de las cuales se realizan las operaciones determinadas por los programas. Todo dato presenta una serie de atributos que lo caracterizan. Por ejemplo, un dato que sea el sueldo percibido el ltimo mes por una persona X tendr los siguientes atributos: Nombre. Es un identificador, y es un nombre simblico que se refiere a un dato determinado, es decir, un nombre para referirse a variables, funciones y cualquier otro objeto definido por el usuario en un programa. El dato del ejemplo podra tener por nombre "sueldomes" a los efectos de identificar a ese objeto concreto. Tipo. El tipo de una variable se refiere a la naturaleza de la informacin que contiene. Determina la caracterstica del contenido del objeto, es decir, la informacin que va a poder contener. En el ejemplo, el tipo del dato llamado "sueldomes" es numrico, porque as se expresa un nmero real. Un tipo de dato se caracteriza por: Un dominio de posibles valores Un modo comn de representacin de sus valores Un conjunto de operadores asociados Valor. Es el contenido en s del objeto, y est acorde al tipo definido. En el ejemplo del sueldo ser un valor concreto, tal como 345.78.

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Sueldo_ultimo_mes tip o numrico

porcentaje_aumento tip o numrico

345.78
nombre-empleado tip o caracter

22

Ana Gomez
Extracto de una memoria de trabajo Tipos de Datos Primitivos Entero Cualquier valor que pertenezca al conjunto de los nmeros enteros Z { ...,-3, -2, -1, 0,1, 2, 3,...} y que este en un rango que el lenguaje pueda aceptar. Ejemplo temperatura: 12 humedad: 78 Real Cualquier valor perteneciente al conjunto de los nmeros reales R {..., -7, ..., -2.2, ..., 0, ..., 14.4,..., 33, ...} y que este en un rango que el lenguaje pueda aceptar. Ejemplo salario: 178.23 saldo: 55.98

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Caracter Un caracter es un smbolo vlido proveniente de un alfabeto. La concatenacin de caracteres da por resultado una cadena o string. Ejemplo apellido: animal_peligroso: Lgico Posibilitan la representacin de dos estados posibles: F = falso y V = verdadero. Ejemplo vacio: ordenado: V F Variables Una variable es una identificacin, asignada por el programador, a memoria, donde se aloja un dato. Ejemplo Pi: IVA: Institucion: 3.14 21 "Universidad Nacional de Lujn" una direccin de "Diaz Martinez" "len de Kenia"

Una constante es un dato almacenado en una variable cuyo contenido no puede ser modificado durante la ejecucin de un programa. Declaracin de Constantes y Variables La declaracin de una constante o una variable implica la asignacin de un espacio de memoria de trabajo que estar asociado a ella. El tamao depender del tipo de dato y lenguaje de programacin con el que se trabaje. Al declarar una variable o una constante se liga al dato con un nombre o identificador, por el cual se acceder a tal posicin de memoria de all en ms. El tipo de dato y el identificador de una variable son dos atributos asociados a ella. Ciertos lenguajes de programacin, junto con la buena prctica del oficio, exigen que todas las variables y constantes de un programa sean previamente declaradas antes de ser utilizadas. Cuando se desea inicializar o modificar el valor de una variable se realiza una operacin de asignacin. Se la simboliza con el smbolo "". Asignar significa asociar un valor determinado a un identificador.

10

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Ejemplo vacio V saldo saldo_anterior + 500 frase "Hola" + " " + "Mundo !!!" resultado ((produccin - fallados) ^2) - 678 Existe otro objeto denominado literal y es la forma como se escriben los valores de cada tipo. Ejemplo 26, 789, -9 son literales numricos, y "hola mundo", "o" y "zeta" son literales de caracteres. La asignacin es una instruccin donde se asocia un valor a una variable. Del lado izquierdo siempre habr una variable, mientras que del lado derecho de la asignacin podr haber un literal, otra variable una expresin. Ejemplos cantidad_de_vehculos (6+8) / 2 Donde se evala 6 +8 y a lo obtenido se lo divide por 2. Finalmente al resultado se lo almacena en la variable cuyo identificador es cantidad_de_vehculos. Las variables A, B, y C son de tipo lgico. A 12 < 5 B (7 <= 12) C 7 >= 7 En A se almacena el valor de verdad falso En B se almacena el valor de verdad verdadero En C se almacena el valor de verdad verdadero

Con variables de tipo caracter empleado "Carlos Gomez" cantidad_empleados "veinte"

11

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Expresiones y Operadores Una expresin es una combinacin de elementos del lenguaje que al ser evaluados dan por resultado un valor. Este valor puede ser un nmero, un carcter, una cadena o cualquier otro tipo de dato. El tipo de una expresin est determinado por los tipos de las partes que la componen y la semntica de sus operadores. A los efectos de realizar clculos y operaciones sobre los datos es necesario contar con alguna forma de combinacin que indique la accin a realizar. Se utiliza una simbologa de operadores para formalizar tales clculos y operaciones. Un operador es un smbolo que transforma el contenido de una variable o la combina de alguna otra manera con el contenido de otra variable o literal. Por ejemplo, la siguiente expresin tiene dos operadores, '*' producto y '/' divisin: X (costo * 1.22)/desvio_mes; Operadores Aritmticos Son operadores que se aplican sobre datos numricos y devuelven igualmente un dato numrico. Operador ** + * / div % mod + Significado Potenciacin Signo ms (unario) Cambio de signo (unario) Multiplicacin Divisin real y entera resto de divisin (reales y enteros) Suma Resta

Un operador es unario cuando solo tiene un operando, como por ejemplo los signos de los nmeros (-7, +7, etc.) Un operador es binario cuando necesita dos operandos, como por ejemplo la suma (8 + 2). Todos los operandos son binarios excepto los correspondientes a la notacin de signos, que son unarios. Ejemplos Expresin 7/5 7 div 2 7 mod 2 Comentario = 3.5 Divisin real = 3 Divisin entera = 1 Resto de divisin entera

12

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Operadores Relacionales Permiten realizar comparaciones de valores de tipo numrico o carcter. Estos operadores sirven para expresar las condiciones en los algoritmos. Proporcionan resultados lgicos. Operador < > = <= >= <> La sintaxis de las operaciones de comparacin es: expresin1 operador de relacin expresin2 Una vez evaluada la expresin, se obtendr un resultado que ser Verdadero o Falso. Dado X = 12 y Y = 5 Expresin X>Y (X-3) < (Y-2) (X-4) >= (Y+3) "A" > "B" "z" > "Z" "uno" = "unos" "uno" < "unos" Resultado Es Verdadero Es Falso Es verdadero Es verdadero Es verdadero Es falso Es verdadero Significado Menor que Mayor que Igual que Menor o igual que Mayor o igual que Distinto de

Operadores sobre Cadenas Los operadores tradicionales sobre cadenas son:

Concatenacin (+), operador que une dos cadenas para formar una nueva. Por ejemplo "hola" + " mundo" devolver una nueva cadena que contenga "hola mundo".

13

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Operadores Lgicos Son aquellos que permiten la combinacin de valores de verdad en una expresin, que al ser evaluada devuelve un valor de verdad. El resultado de las operaciones lgicas se determina a travs de tablas de verdad correspondientes a cada operador.

Tabla de Verdad del Operador NOT A V F NOT A F V

Donde A es una expresin booleana Tabla de Verdad del Operador de Conjuncin AND A F F V V B F V F V A AND B F F F V

Donde A y B son expresiones booleanas Tabla de Verdad del Operador de Disyuncin OR A F F V V B F V F V A OR B F V V V

Donde A y B son expresiones booleanas Tabla de Verdad del Operador de Disyuncin Exclusiva XOR A F F V V B F V F V A XOR B F V V F

Donde A y B son expresiones booleanas

14

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Ejemplos Expresin (3 = 4) AND ( 6 < 7) NOT (4 < 6) Resultado Falso Falso

Orden de Prioridad de las operaciones Todas las subexpresiones entre parntesis se evalan primero. Las subexpresiones con parntesis anidados se evalan desde el centro hacia los extremos. Dentro de una expresin, los operadores se evalan de la siguiente manera: Se analiza la expresin de izquierda a derecha. Si en la expresin existen parntesis, lo que se encuentra dentro de estos se evalan de izquierda a derecha segn orden de prioridad de los mismos. Si en la expresin se encuentran ms de un par de parntesis, la evaluacin se realiza comenzando con el parntesis que se encuentra ms a la izquierda en la expresin hasta llegar al par de parntesis que se encuentra ms a la derecha de la expresin.

Orden de Evaluacin de los Operadores Los operadores de una expresin se evalan segn el siguiente orden: Tipo de Operador Significado Exponenciacin Negacin Multiplicacin/Divisin Divisin entera Mdulo Suma/Resta Mayor Mayor igual Menor Menor igual Igual Distinto Complemento (NO- NOT) Conjuncin (Y -AND) Disyuncin (O - OR) Disyuncin exclusiva (XOR) Prioridad 1 2 3 4 5 6 7 7 7 7 7 7 8 9 10 11

Aritmticos

De relacin

Lgicos

15

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

16

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Funciones del Lenguaje Una funcin es un conjunto de declaraciones, definiciones, expresiones y sentencias que realizan una tarea especfica. Cada funcin tiene la misin de realizar un algoritmo determinado a partir de datos de entrada, llamados parmetros o argumentos, obteniendo un resultado o valor de retorno. En los lenguajes de programacin, sus diseadores incorporan varias funciones predefinidas. Los programadores pueden hacer uso de tales funciones del lenguaje e incorporarlas a sus programas. Existen distintas categoras de funciones: matemticas, de cadenas de caracteres, de fecha, de entrada y salida, etc. La sintaxis general de una funcin es: nombre_funcin(argumento1,..., argumenton). Ejemplos de funciones del lenguaje sobre tipos numricos: Nombre abs Int rnd round cos Sin sqrt Significado Calcula el valor absoluto Devuelve la parte entera de un nmero real Genera un nmero aleatorio (mayor a 0 y menor a 1) Redondea un dato a un nmero determinado de cifras Calcula el coseno del ngulo n (en radianes) Calcula el seno del ngulo n (en radianes) Calcula la raz cuadrada de n round(2.1) round(7.125, 2) cos(n) sin(n) sqrt(n) Ejemplos abs(-5) abs(x) int(-2.8) int(12.1)

17

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Ejemplos de funciones del lenguaje que operan sobre cadenas: Nombre Concat Length copy str upcase Significado Ejemplos Concatena una secuencia de Concat(cadena1, cadena2) cadenas. Calcula el largo de una cadena. length("Hola mundo") Extrae una subcadena de una copy(cadena, posicin,nmero) cadena de caracteres. Retorna el carcter ASCII equivalente al nmero decimal Str(65) brindado como argumento. Devuelve en maysculas todas las Upcase(cadena) letras de una cadena

Nota: Las funciones detalladas anteriormente son a ttulo informativo. El nombre exacto y la sintaxis de cada funcin depender del lenguaje de programacin a utilizar. Se aconseja verificar en el manual del lenguaje las caractersticas de una funcin predefinida a utilizar.

18

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Ejercicios Propuestos para el capitulo 1. Sean I y J dos variables numricas enteras, cuyos valores son 6 y 12 respectivamente. Indicar cules de los siguientes predicados son verdaderos. a) b) c) d) e) f) 2. 2*I<J 2*I<1 I > 0 AND I < 10 I > 25 OR (I < 50 AND J < 50) I < 4 OR J > 5 NOT I > 6

Sean X, Y, Z y T variables numricas. Escribir los predicados correspondientes a: a) b) c) d) Los valores de X e Y son superiores a 3 Los valores de X, Y y Z son idnticos Los valores de X, Y y Z son iguales pero difieren del de T El valor de X est comprendido entre los valores de Y y de T, y el valor de Y es inferior al de T

3. Dados los siguientes valores de I, J, K y L, aadir los parntesis que sean necesarios a las expresiones para que se evalen todas dando resultado "verdadero". I=10, J=19, K=3, L=0 a) I = J or K b) I >= J or I <= J and K = 3 c) not K > J or K < J d) not L >= 0 and L <= 0 6. Modificar los parntesis, de los problemas del ejercicio anterior, para que el resultado fuera falso.

19

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Tercera Parte: Programacin Estructurada Estructuras de Control Los programas para computadoras deben estar escritos con un alto grado de estructuracin, esto contribuye a que sean ms comprensibles en actividades tales como pruebas, mantenimiento y modificacin de los mismos. Mediante la programacin estructurada todas las bifurcaciones de control de un programa se encuentran estandarizadas, de forma tal que es posible leerlos desde su inicio hasta su final en forma continua, sin tener que saltar de un lugar a otro del programa siguiendo el rastro de la lgica establecida por el programador. Los lenguajes de programacin tienen un conjunto mnimo de instrucciones que permiten especificar el control del algoritmo a implementar. Estas se agrupan como: 1. Secuencia: Sucesin de dos o ms operaciones cuya ejecucin coincide con el orden de aparicin de las instrucciones. Inicio Leer(num1, num2) Suma num1 + num2 Dif num1 num2 Escribir(Suma, suma) Escribir(Diferencia, dif) Fin 2. Decisin: Bifurcacin entre dos alternativas condicionada por los datos del problema. La instruccin evala una condicin y ejecuta el conjunto de instrucciones que corresponda al valor de verdad retornado.
V Instrucci n 1 .... Instrucci n n Condici n F Instrucci n 1 .... Instrucci n n

3. Iteracin: Repeticin de un conjunto de instrucciones mientras se cumpla una condicin.

20

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Mie ntras <condici n> hacer

Instruccio nes

Estos tres tipos de estructuras lgicas de control pueden ser combinadas para producir programas que manejen cualquier tarea de procesamiento de informacin. La programacin Estructurada esta basada en el Teorema de la Estructura (1966, Bhm Jiacopini), el cual establece que cualquier programa propio es equivalente a un programa que contiene solamente las estructuras lgicas mencionadas anteriormente. Un programa se define como propio si cumple con los requerimientos siguientes: Tiene exactamente una entrada y una salida para control del programa. Existen caminos seguibles desde la entrada hasta la salida que conducen por cada parte del programa, es decir, no existen lazos infinitos ni instrucciones que no se ejecutan. No contiene ciclos infinitos.

Un programa estructurado est compuesto de segmentos o bloques , los cuales pueden estar constituidos por unas pocas instrucciones o por una pgina o ms de codificacin. Cuando varios programas propios se combinan, utilizando las tres estructuras bsicas de control, el resultado es tambin un programa propio. Ventajas del uso de la programacin estructurada: Un programa escrito de acuerdo a las reglas de la programacin estructurada no solamente tendr una estructura, sino tambin una excelente presentacin. Un programa escrito de esta forma tiende a ser mucho ms fcil de comprender que programas escritos en otros estilos. La facilidad de comprensin del contenido de un programa puede facilitar la verificacin de la codificacin y reducir el tiempo de prueba y depuracin de programas. Esto ltimo es cierto parcialmente, debido a que la programacin estructurada concentra los errores en uno de los factores ms generador de fallas en programacin: la lgica. Un programa que es fcil para leer y el cual est compuesto de segmentos bien definidos tiende a ser simple, rpido y menos expuesto a mantenimiento. Estos beneficios derivan en parte del hecho que, aunque el programa tenga una extensin significativa, en

21

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

documentacin tiende siempre a estar al da, esto no suele suceder con los mtodos convencionales de programacin. Estructogramas o Diagramas Chapn Los diagramas de Chapin (tambin conocidas como diagramas de Nassi-Schneiderman) describen los procedimientos usados para recibir, procesar, y transmitir informacin. Los diagramas proporcionan toda la lgica necesaria para que programadores puedan escribir programas estructurados en cualquier lenguaje de programacin o a los efectos de documentar procedimientos especficos. El modelo de diagramas fue desarrollado por Isaac Nassi y Ben Shneiderman, publicndose en el ao 1973. Corresponden a las normas DIN 66261 e ISO/IEC 8631:1989. Dado que muestran las estructuras de un programa, tambin se denominan "estructogramas". El concepto es simple: cada bloque (o secuencia de acciones) se representa dentro de un rectngulo; cada estructura utiliza una forma de representacin particular, pudiendo a su vez encerrar otros bloques. En los diagramas NS existen seis estructuras: Secuencial, Decisin (si condicional), Seleccin, Para, Mientras y Repetir.

22

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Inicio

Leer seccion,aos

basico <- 800

seccion = 1
V F

sueldo <- basico + 120

Escribir("El aos < 5 nmero es impar")


V F

sueldo <- basico + 250 antiguedad = 0

antig uedad <sueldo*10/100

antiguedad <sueldo*20/100

total <- sueldo + antiguedad

escribir("El monto a abonar es ",total)

Fin

Ejemplo de diagrama de Chapn

23

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Escritura de Programas La utilizacin de la identacin es importante debido a que, cuando su es utilizacin es consistente, facilita la lectura de los programas al mostrar en una forma ordenada las relaciones existentes entre las distintas instrucciones. A continuacin pueden observarse dos programas, los cuales realizan la misma funcin, pero el de la derecha es ms fcil de comprender. Sin identacin Program Sueldos; var seccion, anios :integer; total, antiguedad, sueldo :real; const basico = 800; begin Writeln('Ingrese seccion del empleado: '); Read(seccion); Writeln('Ingrese anios de antiguedad: '); Read(anios); if (seccion = 1) then begin sueldo := basico + 120; if(anios < 5) then antiguedad := sueldo * 10/100 else antiguedad := sueldo * 20/100 end else begin sueldo := basico + 250; antiguedad := 0 end; total := sueldo + antiguedad; Writeln('El monto a abonar es:', total:4:2); end. Con identacin Program Sueldos; var seccion, anios :integer; total, antiguedad, sueldo :real; const basico = 800; begin Writeln('Ingrese seccion del empleado: '); Read(seccion); Writeln('Ingrese anios de antiguedad: '); Read(anios); if (seccion = 1) then begin sueldo := basico + 120; if(anios < 5) then antiguedad := sueldo * 10/100 else antiguedad := sueldo * 20/100 end else begin sueldo := basico + 250; antiguedad := 0 end; total := sueldo + antiguedad; Writeln('El monto a abonar es:',total:4:2); end. Adicionalmente se recomienda la insercin de comentarios en los programas. Tales citas ayudan a los programadores a identificar fcilmente la misin de las partes con la finalidad de facilitar su mantenimiento.

24

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Normas de Identacin Las siguientes son sugerencias para el desarrollo de una poltica de identacin en un programa: a) b) c) d) e) Se obtiene consistencia si todas las instrucciones de un mismo nivel comienzan en una misma columna. En los lenguajes en que se hagan declaraciones sobre las variables a utilizar, la informacin quedar mas claramente representada si los atributos declarados se alinean en forma vertical. El uso de lneas vacas ayuda a mostrar con mas claridad las relaciones existentes entre distintos tem agrupados en las declaraciones Las instrucciones son mucho mas fciles de localizar y de cambiar si no se escribe mas de una instruccin por lnea. La visin de control de las estructuras lgicas o de los bloques se clarifica si las instrucciones controladas son identadas por alguna cantidad constante. Se sugiere una identacin de tres espacios.

Entrada y Salida de Informacin Toda operacin que realice una computadora va a estar incluida en una de las siguientes categoras: Recibir entradas. Aceptar informacin proveniente del mundo exterior. Generar salidas. brindar informacin al mundo exterior. Procesar informacin. Realizar operaciones sobre los datos. Almacenar informacin. En cualquier dispositivo con que opere.

En base a las cuatro operaciones bsicas enunciadas, las computadoras realizan todas sus funciones. Las operaciones de entrada permiten leer determinados datos -generalmente ingresados por tecladoy asignarlos a determinadas variables definidas por el programador. La operacin de entrada se conoce como operacin de Lectura o Read. La salida de informacin es soportada por dispositivos de salida (monitor, impresora, etc). La operacin de salida se denomina escritura o Write. Generalmente, en la escritura de algoritmos las acciones de lectura y escritura se representan de la siguiente manera:

Leer (nom_variable) Escribir (lista de variables de salida)

25

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Ejemplo de ingreso y salida de datos en una especificacin de clculo de liquidacin de horas extras, detallada pseudocdigo: Inicio Leer(horas trabajadas) Leer(valor_de_la_hora_extra) liquidacion horas_trabajadas * valor_de_la_hora_extra Escribir(liquidacion) Fin Opcionalmente, en el ingreso de datos por teclado puede definirse una lista de variables como parmetro de la orden leer. Leer (dato1, dato2, dato3) Ejemplo: Ingresando dos nmeros, mostrar por pantalla su suma y su diferencia. Pseudocdigo Inicio Leer(num1, num2) suma num1 + num2 dif num1 - num2 Escribir("SUMA: ", suma) Escribir("DIFERENCIA: ", dif) Fin Diagrama NS Inicio Leer(num1, num2) Suma num1 + num2 Dif num1 num2 Escribir(Suma, suma) Escribir(Diferencia, dif) Fin

26

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Ejercicios resueltos: 1) Construir un algoritmo para pasar una temperatura dada en grados centgrados a grados Fahrenheit. La frmula para hacer la conversin es: F = ( 9 * C ) / 5 + 32; donde C es el valor en grados centgrados y F en grados Fahrenheit. Inicio Escribir(Ingresar temperatura en grados centgrados) Leer( TC ) TF ( 9 * TC ) / 5 + 32 Escribir(La temperatura equivalente en grados Fahrenheit es: ,TF) Fin Representacin del problema en un diagrama NS
Inic io Leer temperatura en grados centgrados y almacenarlo en TC TF <- ( 9 * TC ) / 5 + 32; Escribir("La temperatura equiv alente en grados Fahrenheit es:",TF) Fin

2) Introducir dos nmeros a y b, con partes decimales, luego obtener la suma de las partes decimales. Por ejemplo : a=16.12 y b=7.33 entonces deber obtener s = 0.12 + 0.33 = 0.45 Diagrama NS
Inicio Leer pn,sn r = (pn - int(pn)) + (sn - int(sn)) Escribir("El resultado es",r) Fin

27

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Estructura de Decisin Hasta ahora se han visto algoritmos en los cuales se ingresan ciertos datos, luego se hacen algunas operaciones aritmticas y finalmente se muestran los resultados. En realidad, esta es una utilizacin muy pobre de la computadora, como si solamente se tratara de una calculadora una poco ms sofisticada, con la nica ventaja de permitirnos construir un programa una vez y posteriormente, utilizarlo todas las veces que sea necesario con distintos grupos de datos. Como se vio anteriormente, una caracterstica importante que distingue a una computadora de otras mquinas es la posibilidad de ejecutar operaciones lgicas, es decir que puede evaluar expresiones del tipo: 1) total > 50 2) alfa < mo 3) be4 <= jota + 6 4) pepe - 4 = alfa + beta De la evaluacin de este tipo de operaciones se pueden obtener dos resultados posibles: verdadero (V) o falso (F). En el primer ejemplo, el procesador busca el valor almacenado en la variable total y verifica si es mayor que 50, en cuyo caso el resultado de la expresin ser verdadero; de otra manera, si el valor es igual a 50 menor, el resultado de la expresin ser falso. En el segundo ejemplo consultar los contenidos de las variables alfa y mo, y verificar si se cumple o no que el nmero almacenado en alfa es menor que el almacenado en mo. Los ejemplos tres y cuatro involucran operaciones aritmticas, en estos casos la computadora consultar los contenidos de las variables en juego, efectuar las operaciones aritmticas que correspondan y luego comparar los resultados, verificando si cumplen o no la condicin indicada. Es posible tambin hacer que la computadora evale expresiones ms complejas, por ejemplo, podemos desear verificar si el contenido de la variable samo es mayor que 45 pero menor que 70, lo que podemos expresar matemticamente como 45 < samo < 70, pero en realidad esta forma de expresarlo est encubriendo un operador lgico. En informtica escribiremos esta expresin como: samo > 45 AND samo < 70 en la que el smbolo AND representa al operador lgico "y" (conjuncin). Cmo se evaluar esta expresin?. Primero la computadora evaluar las expresiones a ambos lados del AND; luego operar con esos dos valores para obtener el valor de verdad de AND. De forma similar se puede trabajar con el operador lgico OR (disyuncin). Por lo general se dispone tambin de las operaciones de negacin, disyuncin exclusiva, implicacin y equivalencia. Esta capacidad de evaluar expresiones lgicas se utiliza para hacer que la computadora tome decisiones de las instrucciones a ejecutar en base al resultado obtenido.

28

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Estructura Condicional Simple

En el caso ms sencillo, se le indica a la computadora que ejecute un cierto grupo de instrucciones si se cumple una cierta condicin: Si (condicin) entonces hacer ... (instrucciones) .. Fin Si Llamaremos "estructura de decisin" o "estructura condicional simple" a este bloque de instrucciones, la computadora verificar si se cumple la condicin indicada, en cuyo caso pasar a ejecutar las instrucciones que se detallaron, en cambio si la condicin no se cumple no las ejecutar y pasar a las instrucciones que siguen en el algoritmo. A este caso podemos describirlo con la frase "hacer si se cumple". El diagrama Chapin para representar a una estructura condicional simple es el siguiente:
Condici n Instrucci n 1 .... Instrucci n n

Ejemplo en pseudocdigo Si (gama > 22) entonces hacer gama gama /3; .... Fin Si
gama > 22

V
gama <- gama /3

.... .....

Ejemplo
29

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Suponga que se vende un artculo cuyo precio unitario es de $1235.-, se desea un algoritmo al cual se le d la cantidad vendida e imprima el monto de la venta, teniendo en cuenta que si se venden ms de 12 unidades se efecta un descuento de $1700.-; la estructura de decisin debe resolver una situacin que puede describirse como sigue: "comprobar si se vendieron mas de 12 unidades, en ese caso, descontarle al monto $1700.-", :

Si (cantidad > 12) entonces hacer monto monto 1700 Fin Si Agregando las instrucciones de entrada, salida y clculo, obtenemos el algoritmo completo que resuelve el problema: Inicio Leer(cantidad) monto cantidad * 1235 Si cantidad > 12 entonces hacer monto monto - 1700 Fin Si Escribir(monto) Fin
Estructura de Decisin Compuesta

En el caso ms general, se le indicar a la computadora que ejecute un determinado grupo de instrucciones si el resultado de una evaluacin es V, u otro grupo si el resultado es F. Si (condicin) entonces hacer ... (instrucciones) ... sino ... (instrucciones) ... Fin Si En diagrama Chapin la estructura condicional compuesta se representa:
Condici n Instrucci n 1 .... Instrucci n n

F Instrucci n 1 .... Instrucci n n

30

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Si (gama > 22) entonces hacer gama gama /3; .... sino escribir("gama no es mayor a 22") ... Fin Si Ejemplo Supongamos que una empresa vende un cierto producto a un precio de $215.- la unidad, pero si el cliente compra mas de 100 unidades, el precio se rebaja a $197.- la unidad: Si (C > 100) entonces hacer P 197 Sino P 215 Fin Si Si se desea un programa completo al cual se le ingrese la cantidad vendida e imprima el monto de la misma, falta agregar las instrucciones correspondientes a la entrada, salida y clculos: Inicio Leer(cantidad) Si (cantidad > 100) entonces hacer precio 197 sino precio 215 Fin Si monto cantidad * precio Escribir (monto) Fin

31

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

En diagrama NS
inicio Leer cantidad cantidad > 100

V
precio <- 197

F
precio <- 215

.... monto <- cantidad * precio .....


escribir monto Fin

Otro ejemplo: Supongamos que se nos presenta el siguiente problema: "Ingresar un nmero entero N y mostrar por pantalla un cartel indicando si es par o impar". Para saber si un nmero N es par es suficiente comprobar si es divisible por dos, o lo que es lo mismo, que el cociente N / 2 produzca como resultado un nmero entero. Para ello podemos usar la funcin "parte entera" que est disponible en la mayora de los lenguajes de computacin, esta funcin, la indicaremos: variable1 int(variable2) permite almacenar en variable1 la parte entera del nmero guardado en variable2, o sea que si en variable2 hay un 23.456 en variable1 quedar almacenado un 23. Por otra parte, se observa que si se almacena en una variable cociente el resultado de la divisin entre nmero y 2, y en otra llamada entero la parte entera de cociente, tendremos que si nmero es divisible por 2, el contenido de entero ser igual al de cociente. Teniendo en cuenta ello, proponemos la siguiente solucin para el problema planteado:

32

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Inicio Leer numero cociente = numero / 2 entero = int(cociente) entero = cociente


V F

Escribir("El nmero es par") Fin

Escribir("El nmero es impar")

tambin puede hacerse:


Inicio Leer numero cociente = numero /2 entero = int(cociente) fraccion =cociente - entero fraccion = 0
V F

Escribir("El nmero es par") Fin

Escribir("El nmero es impar")

tambin :

33

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Inicio Leer numero numero/2 = int(numero/2)


V F

Escribir("El nmero es par") Fin

Escribir("El nmero es impar")

Decisiones Anidadas

Frecuentemente es necesario efectuar un proceso de decisin dentro de otro, es decir, segn la salida que tenga la primera condicin, se debe efectuar una segunda instruccin de decisin, en forma general, esto puede presentarse como sigue: Si (condicin 1) entonces hacer (instrucciones) sino (instrucciones) Si (condicin 2) entonces hacer (instrucciones) sino (instrucciones) Fin Si Fin Si Llamamos "selecciones anidadas", a esta estructura. Esta disposicin de instrucciones puede ser mucho mas compleja, dado que las instrucciones Si marcadas con (I) y (II) pueden contener a su vez otras estructuras de decisin dentro de sus respectivas salidas por verdadero y falso. (I)

(II)

34

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Decisiones anidadas graficadas en un diagrama NS

Condicion 1
V F

Escribir("El Condicin 2 nmero es impar") Instrucciones


V F

Instrucciones

Instrucciones

Ejemplo Si se nos presenta el siguiente problema: "Una empresa de USA paga a sus empleados un sueldo bsico de U$S 800.-, ms un adicional que se calcula de la siguiente manera: -Los que trabajan en la seccin 1 cobran U$S 120.- ms, y sobre el total un adicional por antigedad del 10 % si tienen menos de 5 aos, y del 20 % si tienen 5 aos o ms. -Los que trabajan en la seccin 2 cobran U$S 250.- ms, pero no cobran adicional por antigedad. Preparar un algoritmo para ingresarle el nmero de seccin y la antigedad, y que muestre por pantalla cuanto cobra el empleado. En este caso la pregunta por la antigedad depende de la seccin en que trabaje, una posible solucin podra ser:

35

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Inicio

Leer seccion,aos

basico <- 800

seccion = 1
V F

sueldo <- basico + 120

Escribir("El aos < 5 nmero es impar")


V F

sueldo <- basico + 250 antiguedad = 0

antiguedad <sueldo*10/100

antiguedad <sueldo*20/100

total <- sueldo + antiguedad

escribir("El monto a abonar es ",total)

Fin

36

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Estructura Repetitiva o Iterativa La estructura repetitiva es utilizada cuando se necesita que un conjunto de instrucciones (bloque) se ejecuten un cierto nmero finito de veces. Un bucle, lazo o ciclo, forma bsica de una estructura iterativa, se compone de dos partes: a) una condicin, y b) un cuerpo o bloque.

Estructura de control

Mientras x sea distinto de 3 hacer { instruccin 1 instruccin 2 ....................... instruccin n } Fin Mientras

<- c n ic n o d i <- b q e lo u

Bsicamente existen dos tipos de estructuras repetitivas o iterativas: a) donde el nmero de ciclos a ejecutar el bloque est perfectamente establecido, y b) donde el nmero de ciclos que se ejecutar el bloque se determina por la evaluacin de una cierta condicin. Ejemplo de nmero de ciclos preestablecidos Para n igual 0 hasta n igual 10 -incremento 1- hacer Mostrar n^n nn+1 Fin Para Ejemplo de nmero de ciclos dependientes de una condicin suma 0 contador 0 n 1 Mientras n sea mayor que 0 hacer Ingrese un nmero ( 0 finaliza):, nmero_ingresado Si nmero_ingresado es menor o igual a 0 hacer promedio suma / contador mostrar promedio Sino hacer suma suma + nmero_ingresado contador contador + 1 Fin Si Fin Mientras Las estructuras iterativas ms populares son

Mientras Repetir Repetir - Hasta Para

37

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Estructura Mientras

La estructura repetitiva Mientras es aquella en la que el nmero de iteraciones no se conoce por anticipado y el cuerpo del ciclo o bloque se ejecuta repetidamente mientras que una condicin sea verdadera . Su sintaxis es : Mientras <condicin> hacer instruccin 1 instruccin 2 ....................... instruccin n Fin Mientras El diagrama Chapin o NS (Nassi-Schneiderman) de la estructura Mientras es:
Mie ntras <condici n> hacer

Instruccio nes

Explicacin del modo de funcionamiento :

La expresin que conforma la condicin se evala antes y despus de cada ejecucin de las instrucciones comprendidas por el bloque. Si la condicin da por resultado verdadero, se ejecuta el bloque, y si es falsa, el control pasa a la instruccin siguiente al bloque Si al evaluar la condicin por primera vez, se determina que el resultado es falso, entonces no se ingresa al bloque y el control pasa a la instruccin siguiente al bloque. Es decir que el bloque no se ejecutar nunca. Si alguno de los elementos que componen la expresin de evaluacin no se modificase, y la expresin hubiese arrojado -previamente- verdadero en su evaluacin. Se ha ingresado en un ciclo infinito, del cual nunca se saldr. Tales ciclos deben evitarse.

38

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Ejemplo: Construir un algoritmo para calcular e imprimir la suma de los nmeros enteros comprendidos entre -27 y 34, ambos inclusive.
Inic io suma <- 0 numero <- -27

Mientras numero <= 34 hacer

suma <- suma + nmero numero <- numero + 1

Escribir(suma) Fin

39

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Estructura Repetir Hasta

La instruccin Repetir permite que se ejecute un bloque de instrucciones y luego se evale una condicin a los efectos de ejecutar nuevamente el bloque -en caso de resultar falsa- o continuar con la prxima instruccin siguiente al bloque Su sintaxis es : Repetir instruccin 1 instruccin 2 ....................... instruccin n Hasta <condicin> El diagrama Chapin de la estructura Repetir es:

Repetir hasta <condicin>

Explicacin del modo de funcionamiento :

La condicin se evala al final del bloque, despus de ejecutarse todas las instrucciones contenidas. Si o si siempre se ejecuta al menos una vez el bloque. Si la evaluacin de la condicin resulta falso, se continua iterando, de lo contrario se continua con la prxima instruccin de programa.

40

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Estructura Para

Estructura que se utiliza para iterar en aquellos casos que de antemano se conoce la cantidad de ciclos a realizar. Por ejemplo: ingresar 10 notas de un alumno y calcular su promedio y desvo estandar. Al ejecutarse la orden Para, por primera vez, a la variable de control se le asigna un valor inicial (expresion1). Inmediatamente se ejecutan las instrucciones del bloque asociado y luego se verifica si el valor final (expresin2) es mayor que el valor inicial (expresin); en caso de no ser as se incrementa o decrementa automticamente el contenido de la variable de control en uno y se vuelve a ejecutar el bloque de instrucciones, hasta que la variable de control sea mayor/menor que el valor final referido en la expresin2, situacin en la que se finaliza la estructura Para y se continua con la prxima instruccin que continua al bloque antedicho. Su sintaxis es : Para <variable_de_control> <expresin1> hasta <expresion2> hacer instruccin 1 instruccin 2 ....................... instruccin n Fin Para El diagrama de la estructura Para es:
Para <varia ble _control> <- <expresi n1> . hasta <expresio n2> hacer .

Instruccio nes

Explicacin del modo de funcionamiento :


La variable de control se inicializa una sola vez, al inicio de la primera iteracin. La condicin se evala en cada iteracin. El incremento o decremento se realiza antes de cada evaluacin. Hay lenguajes en los cuales la condicin de finalizacin est implcita en la misma estructura. Tal como el caso del lenguaje Pascal donde la forma de la instruccin Para es: FOR variable: valor_inicial TO valor_final.

41

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Al finalizar la ejecucin de una estructura de control Para, la variable de control est instanciada con el valor de expresin2 ms un incremento o decremento, segn corresponda.

Ejemplos de Uso de Estructuras Repetitivas Se ingresan por teclado las notas de los alumnos en una determinada asignatura, o un 99 si el alumno estuvo ausente. Preparar un algoritmo para calcular e imprimir la nota promedio, recordando que el alumno ausente no se promedia. Luego de la ltima nota se ingresa un valor negativo. Principio suma 0 cantidad 0 Leer(nota) Mientras nota >= 0 hacer Si nota <> 99 entonces hacer: suma suma + nota cantidad cantidad + 1 Fin Si Leer(nota) Fin mientras Si cantidad > 0 entonces hacer promedio suma / cantidad Escribir("Promedio: "; promedio) Fin Si Fin Se ingresan por teclado 100 nmeros enteros. Preparar un algoritmo que cuente y muestre por pantalla la cantidad de negativos, positivos y ceros que se ingresaron. Principio sumaneg 0 sumapos 0 sumacer 0 Para contador = 1 hasta 100 hacer: Leer(nmero) Si nmero < 0 entonces sumaneg - sumaneg + 1 Sino Si nmero > 0 entonces hacer: sumapos - sumapos + 1 Sino sumacer - sumacer + 1 Fin Si Fin Si Fin Para Escribir("Negativos: "; sumaneg) Escribir("Positivos: "; sumapos) Escribir("Ceros : "; sumacer) Fin
42

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Bsqueda del Extremo Un problema tpico es el de encontrar el valor extremo entre una serie de valores, es decir el mximo o el mnimo. Tomemos el caso ms trivial: encontrar y mostrar el mayor de un grupo de nmeros ingresados por el teclado. La forma simple de pensar el problema es comparar cada nuevo nmero que ingresa con el mayor de los que ingresaron hasta el momento, si el nuevo es mayor lo tomaremos como tal de aqu en ms, sino lo descartamos y comparamos el que sigue: Leer(numero) Si numero > mayor entonces mayor nmero Fin Si De esta manera, en la variable mayor, siempre estar almacenado el mayor de los nmeros ingresados, ya que cada vez que ingresa uno mayor se reemplaza el valor anterior por el nuevo. Para ello, cuando ingreso el primero, obviamente es el mayor por ser el nico. El algoritmo completo queda como sigue: Principio Leer(n) Leer(numero) mayor nmero Para C = 2 hasta N hacer: Leer(numero) Si numero > mayor entonces mayor nmero Fin Si Fin Para Escribir(mayor) Fin Obsrvese que C comienza valiendo 2, porque cuando se ingresa en el ciclo ya se ingres el primer nmero. Validacin de Datos Un refrn utilizado entre los programadores dice: "si ingresa basura, sale basura", lo que quiere decir que, independientemente de la excelencia del algoritmo, si se le ingresan datos errneos producir resultados tambin errneos. La casi totalidad de los errores se produce en el ingreso de los datos por parte del operador. Si bien es imposible prever todos los errores que se pueden cometer, un buen programa debe estar preparado para evitar todos los que sea posible. Llamamos "validacin" a este control de los datos que ingresan. La tcnica bsica parte de la premisa de que hay valores imposibles para ciertos datos: en una fecha, el da no puede ser mayor que 31 o el mes mayor de 12, la altura de una persona no puede ser 8 metros, el cnyuge no puede ser ms que 1(?), etc.

43

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

La mayora de los datos posee un rango de valores posibles, y cada valor que ingresa debe estar necesariamente dentro de ese rango. La validacin consiste en verificar que cada dato que ingresa se encuentre dentro del rango, si no es as, se le indica al operador que ingrese el dato nuevamente: Leer(variable) Mientras (variable fuera de rango) hacer: Escribir(mensaje al operador) Leer(variable) Fin mientras Ejemplo de validacin Supongamos que en una fecha se ingresa el da, entonces comprobamos que no sea menor que 1 ni mayor que 31: Leer(dia) Mientras dia <1 dia > 31 hacer Escribir("dato errneo, ingrese nuevamente") Leer(dia) Fin mientras Obsrvese que no es posible asegurar que este algoritmo va a evitar todos los errores, por ejemplo no detectar si el operador ingresa un 16 en lugar de un 15, en cambio s funcionar en la mayora de las inversiones, es decir si el operador ingresa un 72 en lugar de un 27, el cual es un error muy comn cuando se digitan nmeros rpidamente.

44

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Bibliografa Fundamentos de informtica, lgica, resolucin de problemas, programas y computadoras Autores Allen B. Tucker, W. James Bradley, Robert D. Cupper, David K. Garnick Editorial McGraw-Hill Ao 1994 Curso de programacin Autores Jorge Castro, Felipe Cucker, Xavier Messeger, Albert Rubio, Luis Solano, Borja Valles Editorial McGraw-Hill Ao 1993 Fundamentos de programacin. Algoritmos y Estructuras de Datos Autores Luis Joyanes Aguilar Editorial McGraw-Hill, 2da edicin, Ao 1998 Algoritmos. Problemas resueltos y comentados Autores Joaqun Fernndez, Francisco J. Oliver, Jos L. Snchez Editorial Paraninfo Ao 1992 Algorithms Autores Ian Craw y John Pulham. Universidad de Aberdeen. http://www.maths.abdn.ac.uk/~igc/tch/mx4002/notes/notes.html El Lenguaje de programacin C. Autores B. Kernighan, B y D.Ritchie. Editorial Prenctice Hall , 2da edicin Introduccin a la programacin. Un enfoque prctico Autores J.M. Gonzlez, J. Cordero, , R. Martnez, R. Romero Editorial Algaida Informtica, ao 1996

45

Universidad Nacional de Lujn 11071 - Introduccin a la Programacin

Anexo I: Tipos de datos ms comunes La siguiente tabla muestra las caractersticas de los tipos de datos ms comunes: Tipo booleano Byte Short Char Int Long Float Double Tamao 1 bit 8 bits 16 bits 16 bits 32 bits 64 bits 32 bits 64 bits Rango de valores falso, verdadero -128...127 / 0..255 -32768 ... 32767 \u0000 ... \uffff -2147483648 ... 2147483647 -9,22E18 ... 9,22E18 reales de 32 bits reales de 64 bits

46

You might also like