Parcial1

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Parcial1 as PDF for free.

More details

  • Words: 2,190
  • Pages: 8
UNIVERSIDAD DE PANAMÁ CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS FACULTAD DE INFORMÁTICA, ELECTRÓNICA Y COMUNICACIÓN LICENCIATURA EN INGENIERÍA EN INFORMÁTICA ESTRUCTURA DE LOS LENGUAJES DE PROGRAMACIÓN PRUEBA PARCIAL Nº 1 Prof. Diego Santimateo Estudiante:

Cédula:

Karem Dayana Flores Batista....................................................................9-715-2226 Aspectos a desarrollar: 1. Mejora el conocimiento del lenguaje que está usando El lenguaje más utilizado por ustedes es el C, no obstante, le invitamos a leer sobre expresiones regulares y luego hacer uso del scanf(“% [ ]”) para identificar cuál es la verdadera función del scanf(“% [ ]”). Presente los ejemplos utilizados por usted con sus respectivas observaciones y comentarios. ¿Cuál es el papel de las expresiones regulares en el scanf? 10 ptos. R./ Descripción de esta función: La función scanf, es utilizada para leer una combinación de valores numéricos, caracteres o cadenas de caracteres desde el teclado, para luego ser almacenado. En este caso: El parámetro “% [ ]”, que utiliza la función scanf, nos dice: •

Que el tipo de datos que analiza la función es una cadena de caracteres.



Puede especificar los caracteres o cadenas de caracteres que se desean leer.



Los grupos de caracteres

se inician siempre con el símbolo de % y entre los

corchetes se colocará una cadena de carácter, a la dirección del parámetro se le enviará solo los caracteres que coincidan con lo especificado dentro de los corchetes, de lo contrario termina la función. Expresiones regulares y la función scanf Una expresión regular es un patrón que describe un conjunto de cadena de caracteres. La función scanf está compuesta por expresiones regulares, por lo tanto, podemos decir que lo que la función scanf lee es un patrón, y si este no coincide con lo especificado no lo leerá.

Ejemplo 1 Programa en C #include <stdio.h> #include <string.h> void main() { /*Programa que muestra la función del scanf*/ char datos[50]; printf(“ingresa la cadena”); scanf(“% []”, datos); printf(“El dato es : % s”, datos); } Análisis de Resultados Ejemplo 1 Si dentro de los corchetes colocamos : a-zñáéíóú Aceptará las letras minúsculas de a hasta la z,incluida la ñ. Si se introduce la cadena panamá la ejecución será: ingresa la cadena: panamá 05 El dato es: panamá Para este caso,solo almacenará panamá, de manera que sólo tomará en cuenta lo que está definido el patrón. La expresión regular para este ejemplo es: [a-zñáéíóú] Ejemplo 2: Si se coloca dentro de los corchetes ^ 0-9, la ejecución sería: ingresa la cadena: estructura 322 El dato es: estructura En este caso se acepta todo menos los dígitos de 0 a 9, ya que el símbolo de ^, es de exclusión. La expresión regular para este ejemplo es: [^ 0-9] todo menos los dígitos del 0 al 9 Observación y Comentarios  Con la función scanf ( “% [ ]“) se puede utilizar para introducir cualquier combinación de valores númericos, caracteres sueltos y cadenas de caracteres.  La función scanf está ligada a la expresión regular, pues tiene que hacer referencia a una cadena de caracteres que contiene la información sobre el formato de datos y teniendo los argumentos que representan los datos; indicando si son caracteres,

entero, decimal; entre otros. ¿Cuál es el papel de las expresiones regulares en el scanf? El papel de las expresiones regulares en el scanf es de suma importancia, pues permiten definir de manera precisa los componentes léxicos que conforman un lenguaje en este caso el C. De manera que cuando hay un conjunto de cadenas en la entrada se produce como salida el mismo componente léxico. Señalando que definimos este conjunto de cadenas mediante reglas propias del scanf 2. Enriquece su vocabulario de construcciones útiles de programación Elabore un glosario de 10 términos nuevos para usted, que considere de importancia en el área de programación. Seleccione uno y haga un ejemplo . 10 ptos.

a) ActiveX (ActiveX ) Lenguaje desarrollado por Microsoft para la elaboración de aplicaciones exportables a la red y capaces de operar sobre cualquier plataforma a través, normalmente, de navegadores WWW. Permite dar dinamismo a las páginas web.

b) Ajax (Asynchronous JavaScript And XML). Es una técnica de desarrollo web para crear aplicaciones web interactivas. Así como DHTML, Ajax no es una tecnología en si, sino un termino que se refiere al uso de un grupo de tecnologías juntas, como son por ejemplo: XHTML (o HTML), Javascript, XMLHttpRequest entre otras. La idea es que las páginas sean más dinámicas cargando información del servidor de forma “escondida”, logrando que la página web no tenga que ser recargada cada vez que un usuario cambia información de un formulario, por ejemplo. De esta forma se logra que la página web incremente su interactividad, velocidad y usabilidad.

c) Arquitectura de Información :La Arquitectura de Información es una ciencia emergente, que se encarga de efectuar la planificación estratégica previa a la creación de un website. En la AI se elaboran diagramas estructurales y planos arquitectónicos donde se pueden identificar las partes de un website, la clasificación, diseño de interacción, sistema de navegación, usabilidad, etiquetado de la información y determinar el impacto que causará el diseño de la información, en el resultado final de un proyecto web. Tomando como referencia la exitosa experiencia del usuario, como objetivo final.

d) Deadlock: Un deadlock(traba mortal) es un problema causado por un error de

software en donde los procesos o hilos de ejecución en un sistema concurrente esperan la terminación del otro, o cuando dos o más procesos se esperan entre sí para utilizar recursos en forma de cadena circular.

e) Paralelismo de datos: es cuando una misma operación se puede realizar sobre varios elementos simultáneamente .

f) Garbage Collector: En el transcurso de la ejecución de un programa tienen que reservarse porciones de memoria

para almacenar variables de manera

temporal. En algunos lenguajes, los programas deben liberarlas explícitamente cuando ya no las necesitan. En otros, la implementación del lenguaje se encarga automáticamente de detectar cuáles variables han dejado de ser requeridas y de liberar el espacio en memoria que ocuparan. Se dice que estos últimos proveen recolección de basura automática(en inglés suele usarse garbage collector)

g) Encapsulación: Es el término formal describe la relación entre los métodos y los atributos.

h) Testing: La prueba de un programa o un sistema para asegurar que funciona adecuadamente.

i) Usabilidad :se refiere a la elegancia y claridad con la cual la interfase de usuario de un programa o website es diseñado. Por ejemplo, un experto en usabilidad puede observar y conversar con los usuarios del programa o website para mejorar fallas en el diseño que no hayan sido anticipadas.

j) Tuplas: Una tupla es una lista inmutable. No puede modificarse de ningún modo después de su creación. Ejemplo de Garbage Collector El manejo de memoria en C se realiza de forma peligrosa a través de punteros obtenidos con la función malloc(), y que se libera explícitamente con free(), esto puede causar errores si el programador no controla perfectamente los pasos en que estas operaciones se realizan. Otro error es el olvido frecuente de liberar memoria, lo cual termina consumiendo los recursos del sistema. Java no dispone de punteros y todos lo objetos se crean con el operador new, el cual asigna espacio en el montículo de memoria a cada objeto. Lo que se obtiene con new es un descriptor del objeto (no una dirección) la dirección real es manejada por el sistema el cual la puede mover o recolocar según necesidad, pero el programador no ha de preocuparse por ello. Lo importante es que el objeto tiene memoria asignada mientras le interese al programa, quedando esta memoria disponible en cuanto este interés cese. No se hará falta llamar

a free o delete ya que el recolector de basura realizara esta labor. Este recolector o reciclador de basura se ejecutara cuando el sistema este libre o una asignación no encuentre lugar disponible.

3. Permite una mejor selección del lenguaje de programación Determine cual de los siguientes lenguajes recomienda leer una línea de texto y separarla en palabras: C, Pascal , PHP. Explique , ejemplifique y concluya . 10 ptos R./ Explicación El lenguaje PHP es el que se recomienda para leer una línea de texto y separarla, ya que tiene una función llamada split para dividir una cadena de en varios usando carácter, en cambio en C; no tiene una función que permita hacer algo similar, puesto que hay que crearla, mientras que en Pascal, al ser un lenguaje de programación que tiene mejor aplicación para las operaciones matemáticas, por ende resulta más difícil realizar una función como esta. Demostración split -- divide la cadena en elementos de un array según una expresión regular Descripción array split ( string pattern, string string [, int limit] ) Devuelve un array de cadenas, cada una de las cuales es una subcadena de string formada al dividir esta en los límites formados por la expresión regular pattern. Si ocurre un error, devuelve un valor falso. Para obtener los cinco primeros campos de una línea de /etc/passwd: Ejemplo 1. split() example $passwd_list = split( ":", $passwd_line, 5 ); 4. Facilita el diseño de un nuevo lenguaje Analice la estructura de control conocida como GOTO. Identifique lenguajes que la incluyen en su diseño y comente sobre nuevas estructuras de control inspiradas en el uso del GOTO y en qué lenguajes aparecen. Explique , ejemplifique y concluya. 10 ptos R./ La estructura de control GOTO( ir a en inglés) se utilizaba mucho en los primeros lenguajes de programación porque era la única manera de saltar de una instrucción del programa a otra.

La forma que tiene de trabajar es la siguiente: •

Se pone al principio de una línea una etiqueta. Es como una señal que marca el sitio



Y se hacen llamadas a GOTO desde otras partes del código indicando la etiqueta de la instrucción que se quiere ejecutar a continuación .

Se ha comentado algo sobre el GOTO por curiosidad e historia, pero hay que olvidarse de que existe. Pues es una mala herramienta de programación y se puede cambiar por las sentencias de control repetitivas y alternativas. Vamos a identificar los lenguajes que la incluyen en sus diseños están:



PL/SQL dispone de la sentencia GOTO. La sentencia GOTO desvía el flujo de ejecución a una determinada etiqueta. En PL/SQL las etiquetas se indican del siguiente modo: << etiqueta >>



La instrucción GOTO LABEL permite cambiar el recorrido lineal de las líneas de código prosiguiendo la ejecución del programa en la línea de etiqueta LABEL. La etiqueta se define colocando al final del identificador dos puntos (:). La utilización del GOTO en Perl no es recomendable. Por que le quita al código legibilidad y aumenta la posibilidad de errores.



Pascal cuenta con una sentencia GOTO, aunque rara vez se necesita debido a la riqueza de sus estructuras de control. Una observación importante acerca del GOTO en Pascal es que, al igual que en ALGOL, se permiten las transferencias no locales, con todas las ineficiencias asociadas a ellas en lo que a la implementación se refiere

Nuevas estructuras de control Originalmente las líneas de código (las instrucciones) eran ejecutadas siempre secuencialmente, o sea, una después de la otra. Se utilizaba la función GOTO para alterar el orden de ejecución. Pero esta función traía grandes problemas en el desarrollo de programas, como falta de claridad, errores, etc., por lo que se surgieron tres estructuras de control que permitirían desarrollar cualquier programa: •

estructura de secuencia,



estructuras de selección y



estructuras de repetición.

La estructura de secuencia es la que venimos trabajando desde el principio. Es la ejecución de una instrucción tras otra en secuencia. Las estructuras de selección son aquellas que permiten, bajo una condición, ejecutar distintos códigos. La más simple es la estructura de selección IF. Se da una condición que puede ser verdadera o falsa, y se ejecuta un código u otro dependiendo del resultado de esa condición en tiempo de ejecución. También está la estructura de selección SWITCH que, dependiendo de un valor, ejecutará distintos códigos. Luego están las estructuras de repetición, las cuales repiten un código cierta cantidad de veces hasta que se cumpla o deje de cumplir una condición. Son ejemplos de estas estructuras en C los WHILE, los FOR, etc. Lenguajes que usan nuevas estructuras de control.Algunas estructuras de control en el lenguaje BASIC, Lisp y Visual Basic. Como por ejemplo: if-then-else Los condicionales, o bifurcaciones, son estructuras que permiten llevar a cabo determinadas acciones, de acuerdo a la validez de una sentencia. Al igual que en la mayor parte de los lenguajes, en PHP también se utilizan el if...else y el switch. Ejemplos.Uso de GOTO en PL/SQL DECLARE flag NUMBER; BEGIN flag :=1 ; IF (flag = 1) THEN GOTO paso2; END IF; <<paso1>> dbms_output.put_line('Ejecucion de paso 1'); <<paso2>> dbms_output.put_line('Ejecucion de paso 2'); END;

Uso de Estructuras de Control IF en PHP if ($op) { $i = 4; } else if (($op == 1) || ($op == 2)) { $i = 0; } else { $i++; }

Conclusión.Las instrucciones GOTO pueden dificultar la lectura y el mantenimiento del código. Siempre que sea posible, utilice en su lugar una estructura de control

Related Documents

Parcial1
April 2020 5
Parcial1
November 2019 9
Parcial1
October 2019 14
Parcial1
November 2019 13
Parcial1.pdf
December 2019 17
Parcial1.docx
November 2019 13