Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


manejo ESTRUCTURAS COND, Apuntes de Lenguajes de Programación

Lenguajes y Automatas II Lenguajes y Automatas II Lenguajes y Automatas II Lenguajes y Automatas II Lenguajes y Automatas II Lenguajes y Automatas II

Tipo: Apuntes

2020/2021

Subido el 12/01/2021

josh-mahomes
josh-mahomes 🇲🇽

4.8

(6)

5 documentos

1 / 18

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
TECNOLÓGICO DE ESTUDIOS SUPERIORES DE ECATEPEC
División de Ingeniería en Sistemas Computacionales
Academia de Ciencias de la Ingeniería
EJERCICIOS Y ACTIVIDADES
PERIODO 2020-2
1
FECHA
10/11/2020
GRUPO
5601
LENGUAJES Y AUTÓMATAS II
Actividad No. 18. Generación de código intermedio. ESTRUCTURAS CONDICIONALES.
TRABAJO EN EQUIPO:
El TESE desea: Un reporte con la investigación con por lo menos tres referencias para: Reconocer el manejo de ESTRUCTURAS
CONDICIONALES, para un metacompilador. Desarrolle la Actividad con Grafos sintácticos (Diagrama de Conway) y expresiones de la
forma BNF.
1. Mencione qué son las estructuras condicionales y las reglas para su construcción.
2. Mencione la estructura sintáctica para la construcción de estructuras condicionales simples de una decisión (if) y dos
decisiones (if/else).
3. Mencione la estructura sintáctica para la construcción de estructuras condicionales compuestas (if anidados).
Considere:
Tres diferentes lenguajes de programación.
Elemento
C++
Java
Ruby
CONTESTE INDIVIDUAL:
1. ¿Qué ventajas y desventajas conlleva la Generación de código intermedio de estos elementos?
2. Conclusiones.
INTEGRANTE(S): EMPEZANDO POR APELLIDO Y EN ORDEN ALFABÉTICO.
FIRMA
1. AGUILERA BARAJAS JOSE JOSHUA
JOSHUA
2. GALVAN ESPINOSA DIEGO
DIEGO
3. PRIANTI HERNANDEZ PRISICILA
PRISCILA
4. SOTO VENEGAS DULCE JOANA
DULCE
REFERENCIAS EN ESTILO APA:
1. Manrique, J. (2019, 21 agosto). Algoritmos y Programación Parte III - Juan Manrique. Medium.
https://medium.com/@juca.dth/academia-hack-curso-introductorio-parte-iv-834d15293561
2. Aguilar, J. (2011, 20 octubre). Estructuras condicionales anidadas. programacionya.com.
http://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?punto=8&codigo=81&inicio=0
3. Aguilera Sierra, M. M., & Gálvez Rojas, S. (2015, 9 agosto). Análisis Sintáctico. www.lcc.uma.es.
http://www.lcc.uma.es/~galvez/ftp/tci/tictema3.pdf
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Vista previa parcial del texto

¡Descarga manejo ESTRUCTURAS COND y más Apuntes en PDF de Lenguajes de Programación solo en Docsity!

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 FECHA 10/11/ GRUPO 5601 LENGUAJES Y AUTÓMATAS II Actividad No. 18. Generación de código intermedio. ESTRUCTURAS CONDICIONALES. TRABAJO EN EQUIPO: El TESE desea: Un reporte con la investigación con por lo menos tres referencias para: Reconocer el manejo de ESTRUCTURAS CONDICIONALES , para un metacompilador. Desarrolle la Actividad con Grafos sintácticos (Diagrama de Conway) y expresiones de la forma BNF.

  1. Mencione qué son las estructuras condicionales y las reglas para su construcción.
  2. Mencione la estructura sintáctica para la construcción de estructuras condicionales simples de una decisión (if) y dos decisiones (if/else).
  3. Mencione la estructura sintáctica para la construcción de estructuras condicionales compuestas (if anidados). Considere: Tres diferentes lenguajes de programación. Elemento C++ Java Ruby CONTESTE INDIVIDUAL:
  4. ¿Qué ventajas y desventajas conlleva la Generación de código intermedio de estos elementos?
  5. Conclusiones. INTEGRANTE(S): EMPEZANDO POR APELLIDO Y EN ORDEN ALFABÉTICO. FIRMA
  6. AGUILERA BARAJAS JOSE JOSHUA JOSHUA
  7. GALVAN ESPINOSA DIEGO DIEGO
  8. PRIANTI HERNANDEZ PRISICILA PRISCILA
  9. SOTO VENEGAS DULCE JOANA DULCE REFERENCIAS EN ESTILO APA:
  10. Manrique, J. (2019, 21 agosto). Algoritmos y Programación — Parte III - Juan Manrique. Medium. https://medium.com/@juca.dth/academia-hack-curso-introductorio-parte-iv-834d
  11. Aguilar, J. (2011, 20 octubre). Estructuras condicionales anidadas. programacionya.com. http://www.tutorialesprogramacionya.com/javaya/detalleconcepto.php?punto=8&codigo=81&inicio=
  12. Aguilera Sierra, M. M., & Gálvez Rojas, S. (2015, 9 agosto). Análisis Sintáctico. www.lcc.uma.es. http://www.lcc.uma.es/~galvez/ftp/tci/tictema3.pdf

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2

1. MENCIONE QUÉ SON LAS ESTRUCTURAS

CONDICIONALES Y LAS REGLAS PARA SU

CONSTRUCCIÓN.

Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que, en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. v Simples: Las estructuras condicionales simples se les conoce como . Estas tomas de decisión tienen la siguiente forma: Pseudocódigo: Diagrama de flujo: v Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma: Pseudocódigo: Diagrama de flujo:

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Pseudocódigo: Diagrama de flujo:

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2

2. MENCIONE LA ESTRUCTURA SINTÁCTICA PARA LA

CONSTRUCCIÓN DE ESTRUCTURAS CONDICIONALES

SIMPLES DE UNA DECISIÓN (IF) Y DOS DECISIONES

(IF/ELSE).

La sentencia condicional if se usa para tomar decisiones, este evaluá básicamente

una operación lógica, es decir una expresión que de como resultado True o False, y

ejecuta la pieza de código siguiente siempre y cuando el resultado sea verdadero.

La sentencia if EXPRESION, significa, Si se cumple la expresión condicional se

ejecuta el bloque de sentencias seguidas.

Por ejemplo:

numero = int(raw_input(" \n Ingresa un número entero, por favor: "))

if numero < 0: numero = 0

print 'El número ingresado es negativo cambiado a cero. \n '

En el ejemplo podemos ver que en la variable número se guardará el dato que

ingrese un usuario, en la sentencia if lo que hará será que validará si el número es

menor o igual a cero, si lo es dirá que el número es negativo.

La sentencia if else es la condicional de una o dos ramas. La sentencia de control

evalúa la condición lógica o booleana. Si esta condición es cierta entonces se ejecuta

la sentencia o sentencias (1) que se encuentra a continuación. En caso contrario, se

ejecuta la sentencia (2) que sigue a else (si ésta existe). La sentencia puede constar

opcionalmente de una o dos ramas con sus correspondientes sentencias.

Por ejemplo:

if (expresionLogica){

sentencia_1; }

else {

sentencia_2; }

Aquí podemos darnos cuenta de que en la sentencia if si no es lo que esta diciendo,

se ejecutara la sentencia else, o sea que en pocas palabras podemos decir que si no

es esto, es lo otro.

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2

3. MENCIONE LA ESTRUCTURA SINTÁCTICA PARA LA

CONSTRUCCIÓN DE ESTRUCTURAS CONDICIONALES

COMPUESTAS (IF ANIDADOS).

Decimos que una estructura condicional es anidada cuando por la rama del verdadero o el falso de una estructura condicional hay otra estructura condicional. El diagrama de flujo que se presenta contiene dos estructuras condicionales. La principal se trata de una estructura condicional compuesta y la segunda es una estructura condicional simple y está contenida por la rama del falso de la primera estructura. Es común que se presenten estructuras condicionales anidadas aún más complejas. EJEMPLO Confeccionar un programa que pida por teclado tres notas de un alumno, calcule el promedio e imprima alguno de estos mensajes: Si el promedio es >=7 mostrar "Promocionado". Si el promedio es >=4 y <7 mostrar "Regular". Si el promedio es <4 mostrar "Reprobado".

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Analizando el diagrama. Se ingresan tres valores por teclado que representan las notas de un alumno, se obtiene el promedio sumando los tres valores y dividiendo por 3 dicho resultado (Tener en cuenta que si el resultado es un valor real solo se almacena la parte entera). Primeramente, preguntamos si el promedio es superior o igual a 7, en caso afirmativo va por la rama del verdadero de la estructura condicional mostramos un mensaje que indica "Promocionado" (con comillas indicamos un texto que debe imprimirse en pantalla). En caso de que la condición nos dé falso, por la rama del falso aparece otra estructura condicional, porque todavía debemos averiguar si el promedio del alumno es superior o igual a cuatro o inferior a cuatro. Estamos en presencia de dos estructuras condicionales compuestas.

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2

TABLA

Tres diferentes lenguajes de programación. Elemento C++ Java Ruby ESTRUCTURAS CONDICIONALES Y LAS REGLAS PARA SU CONSTRUCCIÓN. if(condición a evaluar) //Por ejemplo 50 <= 10{....Bloque de Instrucciones si se cumple la condición........}else{....Bloque de Instrucciones si NO se cumple la condición........} if (condicion) { ejecutar(); }

  • if

    código que se ejecuta si

    se cumple la condición end ESTRUCTURAS CONDICIONALES SIMPLES DE UNA DECISIÓN (IF) Y DOS DECISIONES (IF/ELSE). if (expresionLogica) { sentencia_1;} if (expresionLogica) { sentencia_1;} else { sentencia_2;} if (expresionLogica) { sentencia_1;} if (expresionLogica) { sentencia_1;} else { sentencia_2;} xyz = 5 if xyz > 4 puts 'La variable xyz es mayor que 4' puts 'Puedo poner más instrucciones dentro del if' if xyz == 5 puts 'Se puede anidar un bloque if,else,end dentro de otro' else puts "Parte del bloque anidado" end else puts 'La variable xyz no es mayor que 4' puts 'También puedo poner múltiples sentencias' end SENTENCIAS ANIDADAS: Tanto la rama if como la else pueden contener a su vez otra instrucción if-else, y así sucesivamente un número cualquiera de veces. Debe de utilizarse identación (sangría) para que sea fácil la identificación de a qué if pertenece cada else. Una if anidado (nested-if) es una declaración if que se deriva de otro if o else. Las declaraciones if anidadas significan una instrucción if dentro de una declaración if. Sí, Java nos permite anidar las declaraciones if con if, es decir, podemos colocar una instrucción if dentro de otra instrucción if. La estructura condicional anidada permite implementar decisiones con más de 2 alternativas de ejecución de instrucciones. Esto es posible porque la instrucción que evalúa a false es a su vez un condicional if.

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Nombre_ Galván Espinosa Diego Grupo 5601 Asignatura Lenguajes y autómatas II Fecha 10/11/ Actividad No. 18 firma Diego Objetivo de la práctica: Reconocer el manejo de estructuras condicionales Competencia a desarrollar: Conocer Diagramas de conway y expresiones de la forma BNF Desarrollo de la Actividad individual. ¿Qué ventajas y desventajas conlleva la Generación de código intermedio de estos elementos? La generación de código Ventajas del código intermedio Se pueden utilizar optimizadores independientes de la máquina Facilitar la división en fases del proyecto Fuente Scanner Parser Generador de Código LI Objeto TDS Generación de código. A partir de una gramática se puede generar automáticamente un analizador sintáctico. Y sus desventajas pueden llegar a ser extraordinariamente complejos. A excepción de los proyectos más sencillos, en general puede que confluyan un gran número de tareas a realizar y múltiples recursos a considerar para poder desarrollarlos de forma eficiente. Existen excelentes aplicaciones de software que facilitan la gestión de las acciones planificadas. Conclusión individual. Todo lenguaje de programación obedece a unas reglas que describen la estructura sintáctica de los programas bien formados que acepta. En Pascal, por ejemplo, un programa se compone de bloques; un bloque, de sentencias; una sentencia, de expresiones; una expresión, de componentes léxicos; y así sucesivamente hasta llegar a los caracteres básicos. Se puede describir la sintaxis de las construcciones

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 de los lenguajes de programación por medio de gramáticas de contexto libre o utilizando notación BNF (Backus-Naur Form). Los diagramas sintácticos, de sintaxis o diagramas del ferrocarril son una forma de representar una gramática libre de contexto. Representan una alternativa gráfica para la Forma de Backus- Naur (BNF, por sus siglas en inglés) o la Forma Extendida de Backus-Naur (EBNF).

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación. Una gramática se compone de un conjunto de reglas (producciones) que definen las palabras (elementos léxicos) y unidades sintácticas. Una gramática formal es una que usa una notación definida (o metalenguaje) de manera estricta.

División de Ingeniería en Sistemas Computacionales Academia de Ciencias de la Ingeniería EJERCICIOS Y ACTIVIDADES PERIODO 2020- 2 Nombre_ Soto Venegas Dulce Joana Grupo 5601 Asignatura Lenguajes y autómatas II Fecha 10 / 11 / Actividad No. 18 firma Dulce Objetivo de la práctica: Reconocer el manejo de estructuras condicionales Competencia a desarrollar: Conocer y desarrollar grafos sintácticos y expresiones de la forma BNF Desarrollo de la Actividad individual. ¿Qué ventajas y desventajas conlleva la Generación de código intermedio de estos elementos? Ventaja: Permite abstraer la máquina, separar operaciones de alto nivel de su implementación a bajo nivel. Una gramática proporciona una estructura a un lenguaje de programación, siendo más fácil generar código y detectar errores. Desventaja: BNF puede proporcionar información ambigua, incompleta o de difícil comprensión en sentencias complejas muy estructuradas. Conclusión individual. Como conclusión tengo que La notación de Backus-Naur, también conocida por sus denominaciones inglesas Backus-Naur form (BNF), Backus-Naur formalism o Backus normal form, es un metalenguaje usado para expresar gramáticas libres de contexto: es decir, una manera formal de describir lenguajes formales. El BNF se utiliza extensamente como notación para las gramáticas de los lenguajes de programación, de los sistemas de comando y de los protocolos de comunicación, así como una notación para representar partes de las gramáticas de la lengua natural (por ejemplo, el metro en la poesía de Venpa). La mayoría de los libros de textos para la teoría o la semántica del lenguaje de programación documentan el lenguaje de programación en BNF. La notación BNF