Vous êtes sur la page 1sur 5

Ctedra de Programacin (0790).

Taller de Laboratorio

Objetivos del presente taller:


Identificar los principales tipos numricos de Object Pascal. Diferenciar entre tipos numricos enteros y reales, sus alcances y operaciones. Construir expresiones numricas complejas. Conocer la definicin y las principales funciones del tipo cadena. Conocer una importante funcin de conversin nmero cadena. Manipular variables simples. Elaborar una aplicacin sencilla tipo cnsola, identificando sus partes. Escribir adecuadamente instrucciones simples, compuestas y de seleccin del lenguaje Pascal.

Evaluando frmulas matemticas.


1)

Ejecute Delphi desde Windows: puede haber un icono en el escritorio o un elemento del men de inicio de Windows bajo la carpeta Borland Delphi #. Va a crear una nueva aplicacin tipo cnsola. Utilice los comandos de men File New Other. Aparece una caja de dilogo llamada New tems. Escoja la ficha New y en ella encontrar el elemento Console Application. Escjalo mediante un doble clic o un clic y el botn OK. Va usted a escribir varias versiones de un sencillo programa de evaluacin de frmulas. Todas ellas siguen el esquema Entrada Procesamiento Salida visto en clase o en la gua. La finalidad del programa es solicitar al usuario que ingrese un valor que corresponder a una variable independiente, evaluar una expresin matemtica, almacenar su resultado en una variable y, por ltimo, mostrar ese resultado en pantalla. Comenzaremos evaluando la expresin:

2)

3)

y x2
4)

15 3 x

Para ello, escriba el programa que se muestra a continuacin, agregando o sustituyendo texto cuando sea necesario. Recuerde que puede utilizar las capacidades extendidas del editor de texto. No olvide la indentacin de las lneas correrlas hacia la derecha unos espacios, de todas maneras el editor lo ayudar con ello. En esta primera versin utilizar solo variables y expresiones enteras.

Semestre 3-2011. Programacin: Taller n 2.

Pag. 2 de 5

program project2; {$APPTYPE CONSOLE} uses SysUtils; Var x,y: Integer; Begin //Primera parte: Imprimir el ttulo //================================= Writeln('PROGRAMA PARA EVALUAR FORMULAS'); Writeln('=============================='); Writeln; //Segunda parte: Entrada de datos //=============================== Write('Escriba un numero entero y presione ENTER: '); Readln(x); //Tercera parte: Evaluacin de la frmula //======================================= y:=sqr(x)+15 div (3-x); //Cuarta parte: Imprimir //======================= Writeln; Writeln('Para x = ',x,'se tiene que y = ',y); Writeln; Writeln('Presione ENTER para terminar...'); Readln; end. // Para poder ver los resultados

5)

Antes de ejecutar el programa, gurdelo en el disco duro. Ubique la carpeta Seccion 04 o Seccion 07 ubicadas en la raz del disco D. Si no est creada, es el momento para hacerlo. Bajo ella cree una nueva carpeta llamada Taller 2 y bajo sta, una nueva llamada Formulas. Guarde su programa en esta ltima carpeta con el nombre Primeras_Formulas.

Si tiene usted previsto almacenar su trabajo en un medio extrable como el pen drive hgalo al final del proceso de construccin y prueba de su programa. Trabaje su proyecto almacenndolo primeramente en el disco duro pues ello conlleva un importante ahorro de tiempo de ejecucin, con lo que su paciencia y la del resto del curso no se ver afectada.
6)

Observe las lneas que comienzan con //: stas se denominan comentarios y se usan como ayuda al programador para que ste identifique partes del programa o simplemente agregue anotaciones. Los comentarios no tienen ningn efecto sobre el programa resultante. Note que la primera instruccin de salida es Write y no Writeln: trate de averiguar cul es la diferencia entre las dos. Note tambin que la sexta instruccin de salida imprime varios elementos: 2 cadenas alfanumricas y el contenido de 2 variables; eso es normal y de hecho es parte del funcionamiento de dicha instruccin. El instructor le dar una explicacin de la misma agregando sus alcances y limitaciones.

Prof. Jos Ricardo Vargas

Noviembre 2011

Semestre 3-2011. Programacin: Taller n 2.

Pag. 3 de 5

7)

Ejecute el programa. Si no tiene errores de sintaxis deber abrir una ventana de texto donde aparecer el mensaje de peticin de dato que escribi usted en su listado. Pruebe el programa con los siguientes valores: X Y 1 8 2 19 4 1 5 18 -1 4 -2 7 -4 18

8)

Si el usuario ingresara un valor real con decimales, el programa dara un error y se detendra. Para evitar esto, modifique el programa a fin de que trabaje con valores reales. Entonces, cambie las siguientes lneas:
La lnea Var x,y: Integer; cmbiela a Var x,y: Extended;

La lnea Write('Escriba un numero entero y presione ENTER: ); cmbiela por Write('Escriba un numero y presione ENTER: ); La lnea y:=sqr(x)+15 div (3-x);
9)

cmbiela a y:=sqr(x)+15/(3-x);

Ha hecho 3 cambios: el primero cambia el tipo asociado a las variables de Integer que es un tipo entero a Extended que es un tipo real. En el segundo simplemente modifica el mensaje de peticin de dato. En el tercero cambia el operador de divisin div el cual es el operador de divisin entera por el operador / el cual es el operador de divisin real. Ejectelo y observe cmo aparecen los nmeros de la salida: en notacin cientfica. Este es el modo por defecto; para cambiar este aspecto, existe el especificador de formato para nmeros reales de las instrucciones Write y Writeln: #.#, donde el primer # es el nmero de espacios que como mnimo debe ocupar el elemento a imprimir, y el segundo, la cantidad de decimales. As, haga el siguiente cambio:
La lnea Writeln('Para x = ',x,'se tiene que y = ',y); cmbiela a Writeln('Para x = ',x:10:2,'se tiene que y = ',y:10:2);

1 0)

Con este cambio, los nmeros aparecen ocupando diez espacios en pantalla y con dos decimales. Por cierto, puede probar el programa ingresando nmeros reales. Cabe recordar que las instrucciones Write y Writeln slo imprimen valores numricos, alfanumricos y lgicos, expresados incluso como variables y expresiones. Slo para los nmeros reales se usa el especificador de formato visto anteriormente: #.#; para los otros tipos se usa uno que slo tiene el primer # cuyo significado es el mismo: el nmero de espacios que como mnimo debe ocupar el elemento a imprimir. As, si una variable V es entera o alfanumrica, se puede imprimir mediante la instruccin Writeln(V:10);
1 1)

En este punto, el usuario podra entrar cualquier valor numrico excepto el nmero 3 pues dara un error de divisin entre cero. Para evitarlo, el programa debe disponer de mecanismos que rechacen o permitan el ingreso de ciertos valores: a esto se le llama verificacin o filtro de datos. Escribiremos primero el mecanismo para rechazar el 3 como entrada utilizando una instruccin de seleccin del Pascal: la instruccin if cuyos detalles sern explicados prximamente en clase. Para ello, modifique el programa segn se muestra en el siguiente listado:

Prof. Jos Ricardo Vargas

Noviembre 2011

Semestre 3-2011. Programacin: Taller n 2.

Pag. 4 de 5

program Primeras_Formulas; {$APPTYPE CONSOLE} uses SysUtils; Var x,y: Extended; Begin //Primera parte: Imprimir el ttulo //================================= Writeln('PROGRAMA PARA EVALUAR FORMULAS'); Writeln('=============================='); Writeln; //Segunda parte: Entrada de datos //=============================== Write('Escriba un numero y presione ENTER: '); Readln(x); //Tercera parte: Evaluacin de la frmula //======================================= If x=3 then Writeln('ERROR DE DATO') else Begin y:=sqr(x)+15/(3-x); Writeln; Writeln('Para x = ',x:10:2,'se tiene que y = ',y:10:2); End; Writeln; Writeln('Presione ENTER para terminar...'); Readln; end. 1 2) // Para poder ver los resultados

Observe en este listado la instruccin if: la palabra if va acompaada de una expresin lgica en este caso, la expresin x=3. Si el valor de esta expresin es TRUE entonces se ejecuta la instruccin que sigue a la palabra then; por el contrario, si el valor de la expresin es FALSE, entonces se ejecutan las instrucciones que estn agrupadas entre Begin y End a continuacin de la palabra else. Pruebe el programa ingresando como dato un 3: debera imprimir el mensaje ERROR DE DATO. Ahora el programa puede aceptar cualquier valor numrico dentro de unos lmites aceptables sin que produzca un error. Pero, y si el usuario ingresa un valor no numrico? Para solucionar este problema usaremos el siguiente algoritmo: - Ingresar el dato hacia una variable de tipo alfanumrico. - Usar una instruccin especial de conversin del Pascal: si el dato ingresado representa un nmero, la instruccin lo convierte a dato numrico pero si no lo representa, entonces no se hace la conversin y la instruccin genera un cdigo de error.

1 3) 1 4)

Prof. Jos Ricardo Vargas

Noviembre 2011

Semestre 3-2011. Programacin: Taller n 2.

Pag. 5 de 5

Esta instruccin es la instruccin Val cuya sintaxis es la siguiente:


Val(Entrada: String; X: Entero o Real; Pos: Integer) ;

donde Entrada es una constante o una variable tipo cadena cuyos caracteres forman la representacin de un nmero tal como se escribiran para ser ledos por la instruccin Readln. El resultado de la conversin se devuelve en la variable X. Si sta es de tipo entero, entonces la cadena debe representar un nmero entero. Igual pasa si X es de tipo real. Si hubiera uno o varios caracteres distintos a los usados para representar un nmero lo cual provocara un error, su ubicacin en la cadena es devuelta por el parmetro Pos y se devuelve el nmero que se pudo convertir antes de la aparicin de dichos caracteres. Si no los hay, Pos devuelve un cero. Observe los siguientes ejemplos, donde I es una variable de tipo entero y R una de tipo Real:
I,R Val('123',I,Pos) Val('123.89',R,Pos) Val('123.89',I,Pos) Val('0.1234',I,Pos) Val('Hola',R,Pos) 123 123.89 123 0 0 Pos 0 0 4 2 1

1 5)

Entonces, comience agregando la declaracin de una nueva variable de tipo entero llamada Error y una de tipo alfanumrico String de nombre Entrada. Luego, modifique y agregue las siguientes lneas:

Write('Escriba un numero y presione ENTER: '); Readln(Entrada); //Tercera parte: Evaluacin de la frmula //======================================= Val(Entrada,x,Error); If (x=3) or (Error<>0) then Writeln('ERROR DE DATO') 1 6)

Ahora dispone ud. de un programa capaz de aceptar cualquier barbaridad que ingrese el usuario y filtrar slo aquellos valores aptos de ser usados en los clculos. Con esto queda concluido el taller.

Asignacin.
Dados dos puntos en el plano por sus coordenadas (x1, y1) y (x2, y2), disee un programa que escriba la ecuacin de la recta que pasa por ellos en la forma Ax+By+C=0, que indique la longitud del segmento que determinan y que muestre las coordenadas del punto medio de dicho segmento. Utilice salida formateada, de buen aspecto y que identifique al programa y al programador. Implemente mecanismos de verificacin de datos. Entrega individual. Fecha tope: Domingo 20 de Noviembre.

Prof. Jos Ricardo Vargas

Noviembre 2011

Vous aimerez peut-être aussi