Sei sulla pagina 1di 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 obteni-


dos con la función malloc(), y que se libera explícitamente con free(), esto puede causar erro-
res si el programador no controla perfectamente los pasos en que estas operaciones se reali-
zan. Otro error es el olvido frecuente de liberar memoria, lo cual termina consumiendo los re-
cursos 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 preocupar-
se por ello. Lo importante es que el objeto tiene memoria asignada mientras le interese al pro-
grama, 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 dispo-
nible.

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 secuen-
cialmente, 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 de-
sarrollar 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 determina-
das 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 Uso de Estructuras de Control IF en PHP


DECLARE if ($op) {
flag NUMBER;
$i = 4;
BEGIN
flag :=1 ; } else if (($op == 1) || ($op == 2)) {
IF (flag = 1) THEN
$i = 0;
GOTO paso2;
END IF; } else {
<<paso1>>
$i++;
dbms_output.put_line('Ejecucion de paso
1'); }
<<paso2>>
dbms_output.put_line('Ejecucion de paso
2');
END;

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

Potrebbero piacerti anche