

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Elementos de Programación, Profesor: , Carrera: I.T.I. Sistemas, Universidad: UMA
Tipo: Apuntes
1 / 3
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


Elementos de Programación
Primera Relación de Problemas
DPTO. DE LENGUAJES Y C. DE LA COMPUTACION
E.T.S. DE INGENIERIA INFORMATICA
INGENIERIA INFORMATICA
(CURSO 2004-2005)
1.- Dada la siguiente gramática:
Símbolos no terminales: Los englobados entre <>Símbolos terminales: El restoAxioma inicial:
R1)
::= <def-tipos><decl-var>
R2)
::= TIPOS {
R3)
::=
R4)
::= ‘(‘
R5)
::= ARRAY
R7)
::= VARIABLES {
(
R8)
::=
R9)
::=
R10)
::=
R11)
::=
R12)
::= a|.......|z
R13)
::= 0|<digito-no-nulo>
R15)
::=
Analice la siguiente frase y razone para cada una de las líneas numeradas si pertenece o no allenguaje generado por la gramática.
lista1 = ARRAY [1 .. 20]
DE colores;
colores=(amarillo, azul, rojo, verde4);
indice=[1 .. 20];
lista2 = ARRAY indice DE colores;
lista3 = ARRAY indice DE indice;
lista4 = ARRAY colores DE [1 .. 20]; VARIABLES7)
z1: lista4;
x1: (amarillo, azul, rojo, verde4);
x2: colores;
Errónea, pues la regla R6 exige que en la sección de TIPOS, tras la palabraARRAY venga un
7
Correcta por aplicación de R7, R11, R12, R14, R13, R8, R11, R12, R14, R
Elementos de Programación
Primera Relación de Problemas
2.- Dada la siguiente gramática expresada en notación BNF
Axioma inicial
Símbolos terminales
= a,b,c,d,e,g,m,n,s
Símbolos no terminales
Reglas sintácticas
a B c |
Bc
[b]dE
eE |
gE |
{mP}
[sF]
n
Determine si las siguientes frases son correctas o no. Si son incorrectas indique el motivo, y sison correctas indique la secuencia de reglas que
hay que aplicar las reglas para obtenerlas a
partir del axioma inicial.
abdegeec
2.^
adeeggsmnc
3.^
abdeeggmnmnc
4.^
abdegegmmnnc
5.^
desssc
3.- Defina las gramáticas (mediante notación BNF y diagramas CONWAY) que generen los
siguientes lenguajes:
a)^
L = {ba
n b / n impar y mayor que cero}
b)^
L = {a
n2n b
/ n >= 0}
c)^
El lenguaje que define expresiones algebraicas con paréntesis, corchetes y llaves. Seeliminarán los números y símbolos de operación, y nos quedaremos sólo con paréntesis,corchetes y llaves. Ciertas disposiciones serán válidas y ciertas no. Ejemplos:
Válidas
Inválidas
4.- Dadas la siguientes gramáticas expresada en notación BNF
Axioma inicial
Símbolos terminales
a,b,c,d,e
Símbolos no terminales
Reglas sintácticas:
A ::= a E d
2.^
B ::= b {b | e}
4.^
C ::= c
5.^
D ::= d {d}
A.- Determine si las siguientes frases son correctas o no. Si son incorrectas indique
el motivo, y si son correctas indique como hay que aplicar las reglas paraobtenerlas a partir del axioma inicial.
a b e b b e d b c d d
2.^
a b c b c d d
B.- Obtenga la representación de la misma en notación Conway.
Elementos de Programación
Primera Relación de Problemas
5.- ¿Cuántas veces se ejecutará la
Acción I
cont
0
MIENTRAS
(cont <
HACER
cont
←
cont
SI
(cont
= 10)
ENTONCES
Acción I FINSI FINMIENTRAS
6.- ¿Cuál es el valor de la variable booleana
test
después de la ejecución de los siguientes bucles?
test
TRUE
test
N
MOD
2 =
0
PARA
contador
1
HASTA
N
HACER
PARA
contador
1
HASTA
N
HACER
test
¬
test
test
¬
test
FINPARA
FINPARA
7.- Demostrar que la estructura
SI
cond
ENTONCES s
SINO
s
FINSI
donde
cond
es una expresión de evaluación booleana y
s
y
s
representan secuencias de
acciones, se puede expresar mediante bucles
MIENTRAS
8.- Demostrar que una estructura
se puede expresar mediante una estructura
Demostrar
que
una
estructura
se
puede
expresar
mediante
una
estructura
Nota: Una vez resueltos los ejercicios 8, 9 y 10 tenemos demostrado el teorema de Bhom y
Jacopini, relativo a que sólo son necesarias dos estructuras de control: secuencia y bucleindefinido con control al principio. Este resultado tiene interés teórico: mínimo númerode estructuras necesarias en un lenguaje de programación. No obstante, en la practica seusan todas las que hemos estudiado en teoría, pues mejoran la claridad del código.
10.- Demostrar que si para una estructura
, sabemos al comenzar la ejecución una cota
superior del número de veces que se ejecuta el cuerpo, entonces esa estructura se puedesustituir por una estructura
11.- Diseña un algoritmo que lea de teclado las temperaturas de los 12 meses del año y calcule la
temperatura media anual. El algoritmo pedirá la información de cada mes con el siguienteformato:
Introduzca la temperatura para el mes de Enero:...
12.- Diseña un algoritmo que lea por teclado dos números naturales m y n (m>=n) y calcule el
número combinatorio formado por ambos números. La expresión que lo determina es:
13.- Escribe un algoritmo que calcule el valor de S para un número real X dado por teclado,
utilizando la siguiente serie:
Nota: No se añadirán más sumandos cuando se calcule uno con valor menor que 0.0001.
Elementos de Programación
Primera Relación de Problemas
14.- Confecciona un bucle que lea de teclado un texto carácter a carácter hasta localizar un punto, y
que al final dé como salida el número de comas encontradas, y el número de caracteres leidos. 15.- Escribe un algoritmo que encuentre el mayor, el menor y la media aritmética de una colección
de N números leidos por el teclado donde N es el primero de los números. 16.- Desarrollar un algoritmo para el siguiente juego:
El usuario introduce un límite inferior, un límite superior y piensa un número en ese rango.El ordenador tiene que acertarlo. Para ello el ordenador propone un número y el usuarioresponde con >, < o =(correspondiente a acertado y el programa acaba). Si la respuesta es >o <, el ordenador propondrá otro número hasta que lo acierte. 17.- Mejora del anterior: Dados el límite superior y el límite inferior, el ordenador dará una
estimación del número de preguntas máximo que va a necesitar para acertar y el algoritmodebe acertar dentro de ese máximo. 18.- Escribe un algoritmo que lea un número natural N por teclado y dibuje un triángulo de
asteriscos con base y altura N. Por ejemplo si N=5 debería dibujarse:
19.- Escribe un algoritmo que imprima una pirámide de dígitos como la de la figura, tomando como
entrada el número de filas de la misma (se supone menor de 10).
(^1) 1 2 1 1 2 3 2 11 2 3 4 3 2 1 1 2 3 4 5 4
23 1
20.- Diseña un algoritmo que lea de teclado un número natural
n
mayor que cero y muestre las
n
primeras filas del siguiente triángulo.
(^1232) (^345434567654) (^56789876567890109876) (^7890123210987890123454321098) (^901234567654321090123456789876543210) (^123456789010987654321) .......................
21.- Escribe un algoritmo que lea un lista de números enteros terminada en 0, y que encuentre y
escriba en la pantalla la posición de la primera y de la última ocurrencia del número 12 dentrode la lista. Si el número 12 no está en la lista, el algoritmo debería escribir 0. Por ejemplo, si eloctavo número de la lista es el único 12, entonces 8 sería la primera y la última posición de lasocurrencias de 12. 22.- Diseña un algoritmo que encuentre todos los números primos menores que un número dado N.