PARCIAL1 Estructurascontrol 2022
PARCIAL1 Estructurascontrol 2022
PARCIAL1 Estructurascontrol 2022
Investiga el origen y evolución del lenguaje C, sus variantes (Objective C y Cuadro sinóptico
C++), así como las características de variantes y lenguajes basados en C. de llaves
Construye un cuadro sinóptico en tu cuaderno a mano.
1
Ing. Elizabeth Lazcano Valencia
Lista de cotejo: Cuadro sinóptico
Cumplimiento
Criterio de evaluación Ponderación
SI NO
Incluye origen del lenguaje C 15%
Incluye características principales del lenguaje C 20%
Incluye las versiones directas de lenguaje C y sus 30%
características más relevantes
Incluye lenguajes más usados creados con base en 20%
lenguaje C y características más relevantes.
Cuadro hecho a mano con excelente presentación 15%
y limpieza
2
Ing. Elizabeth Lazcano Valencia
El programa realiza las operaciones correctas 35%
de acuerdo a los solicitado en el problema
Muestra el resultado mediante un mensaje 20%
bien redactado y como es solicitado en el
problema.
La prueba de escritorio corresponde al 25%
programa (variables, operaciones, secuencia
de instrucciones y resultados)
3
Ing. Elizabeth Lazcano Valencia
MATERIAL DE APOYO
-----------------------------------------------------------------------------------------------------------------------------------------------
Anexo 1
1. INTRODUCCION A LA PROGRAMACION DE COMPUTADORAS
CLASIFICACION DE SOFTWARE
Un lenguaje de programación es cualquier lenguaje artificial, el cual, se utiliza para definir adecuadamente una
secuencia de instrucciones que puedan ser interpretadas y ejecutadas por una computadora. Pueden usarse
para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos
con precisión, o con modo de comunicación humana.
Un lenguaje de programación está formado por un conjunto de símbolos y reglas sintácticas y semánticas que
definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se
4
Ing. Elizabeth Lazcano Valencia
prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama
programación.
Hay cinco generaciones de lenguajes de programación, durante la evolución de los lenguajes de programación,
la sintaxis se ha simplificado para hacer que los programas sean más fáciles de entender.
Los primeros lenguajes de programación que la computadora podía entender, son conocidos como lenguaje
máquina.
El leguaje simbólico (ensamblados). A principios de los años 50’s surge el lenguaje ensamblador, el cual es un
lenguaje de bajo nivel que hace una representación más abstracta y directa del lenguaje binario, sin embargo,
sigue siendo un lenguaje difícil de entender por un ser humano, ya que su estructura se sigue acercando más al
lenguaje máquina, un programa debía ser desarrollado por personas muy especializadas.
Además es también poco portable, porque un programa hecho en ensamblador no puede ejecutarse más que
en el procesador de la computadora para la que fue desarrollado y si se quería ejecutar en otra computadora
aunque tuviera el mismo tipo de procesador, debía ser modificado.
Un programa escrito en lenguaje ensamblador consiste en una serie de instrucciones que corresponden al flujo
de órdenes ejecutables que pueden ser cargadas en la memoria de un sistema basado en microprocesador.
5
Ing. Elizabeth Lazcano Valencia
Ejemplo de un programa en lenguaje ensamblador. Computadora de la década de los
50.
Una computadora no comprende el código ensamblador, por lo que se necesita una forma de convertirlo a
código máquina, que la computadora sí entiende, el programa que traduce un programa en lenguaje
ensamblador a código máquina se llama ensamblador.
A finales de los años 50´s inicia la tercera generación de lenguajes de programación, se desarrolla tecnología y
lenguajes que se conoce como de alto nivel. Un lenguaje de alto nivel tiene una gramática y sintaxis similar a las
palabras en una oración. Un programa escrito en lenguaje de alto nivel es independiente de la máquina (las
instrucciones no dependen del diseño del hardware o de una computadora en particular), por lo que estos
programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser
ejecutados con poca o ninguna modificación en diferentes tipos de computadoras.
Son lenguajes de programación en los que las instrucciones enviadas para que el ordenador ejecute ciertas
órdenes son similares al lenguaje humano. Dado que la computadora no es capaz de reconocer estas órdenes,
es necesario traducir el programa a lenguaje máquina antes de ser ejecutados, para hacer esta traducción
algunos lenguajes cuentan con un intérprete y otros con un compilador.
Algunos lenguajes que tuvieron gran aplicación durante este periodo son Cobol, Pascal, Prolog, Lisp.
6
Ing. Elizabeth Lazcano Valencia
Cuarta generación - 4GL
La característica distintiva en los lenguajes de cuarta generación es el énfasis en especificar qué es lo que se
debe hacer, en vez de cómo ejecutar una tarea. Las especificaciones de los programas se desarrollan a un más
alto nivel que en los lenguajes de la generación anterior. Las características generales de los lenguajes de cuarta
generación son:
Estos lenguajes son herramientas que permiten construir aplicaciones sencillas combinando piezas
prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos
proponen reservar el nombre de cuarta generación para la programación
orientada a objetos.
Estos lenguajes tienen una estructura lo más parecido al idioma inglés, algunas
características son:
De desarrollo a principio de la década de los 80. Se crea para la inteligencia artificial y para el procesamiento de
lenguajes naturales.
La quinta generación de lenguajes de programación es utilizada para redes neuronales. Una red neuronal es una
forma de inteligencia artificial que trata de imitar la mente humana. Se consideran lenguajes capaces de
resolver problemas complejos como la traducción del lenguaje natural a otros.
7
Ing. Elizabeth Lazcano Valencia
PARADIGMAS DE PROGRAMACION
Un paradigma de programación es una manera o estilo de programación de software. Existen diferentes formas
de diseñar un lenguaje de programación y varios modos de trabajar para obtener los resultados que necesitan
los programadores. Se trata de un conjunto de métodos sistemáticos aplicables en todos los niveles del diseño
de programas para resolver problemas computacionales.
Los lenguajes de programación adoptan uno o varios paradigmas en función del tipo de órdenes que permiten
implementar.
Paradigma imperativo
8
Ing. Elizabeth Lazcano Valencia
errores y promociona la reutilización del código. Es una manera especial de programar, que se
acerca de alguna manera a cómo expresaríamos las cosas en la vida real.
Ejemplos de lenguajes de programación orientados a objetos serían Java, Python, C++ o C#.
Paradigma declarativo
Este paradigma no necesita definir algoritmos, puesto que describe el problema en lugar de encontrar
una solución al mismo. Este paradigma utiliza el principio del razonamiento lógico para responder a las
preguntas o cuestiones consultadas.
▪ Programación Lógica
▪ Programación funcional
Programación reactiva
Este Paradigma se basa en escuchar lo que emite un evento o cambios en el flujo de datos, en donde los
objetos reaccionan a los valores que reciben de dicho cambio. Las librerías más conocidas son Project
Reactor, y RxJava. React/Angular usan RxJs para hacer uso de la programación reactiva.
9
Ing. Elizabeth Lazcano Valencia
Anexo 2
Proceso de creación de un programa con lenguaje C++
Figura 1.
Escribir un programa es establecer el comportamiento de una máquina mediante una serie de algoritmos que
definirán su funcionamiento. Este algoritmo se plasma por escrito utilizando un lenguaje artificial comprensible
por el humano-programador. Generalmente estas instrucciones, que aquí se denominan código fuente, vienen
acompañadas de algunos datos en forma de texto o imágenes, contenidas en uno o varios ficheros denominados
ficheros de recursos ("resources"). Sin embargo, las instrucciones y recursos solo pueden ser utilizadas por la
máquina después de un proceso de traducción que es realizado por la propia máquina (puede ser distinta de la
que ejecuta el programa). El proceso exige que el código fuente sea transformado en una nueva secuencia de
instrucciones según un nuevo sistema de codificación (el lenguaje máquina), y que los recursos adopten una
disposición particular. Este conjunto de instrucciones y datos, que constituyen el denominado ejecutable,
corresponden a acciones concretas y datos, que pueden ser entendidas, ejecutadas y utilizados por la máquina.
Para escribir el código solo hace falta un editor de texto plano, aunque las modernas "suites" de programación
(conocidas domo IDEs) incluyen editores específicos que están conectados con el depurador, el compilador, el
enlazador e incluso el sistema de ayudas, de forma que, por ejemplo, pueden mostrarnos automáticamente la
sentencia en la que se ha producido un error de compilación, apoyan al programador con la herramienta de
autocompletar las sentencias, mostrar listas de funciones o métodos asociados a un comando base. También
muestran en diversos colores las palabras clave, los comentarios, etc.
Una vez que se tiene el código fuente, el proceso de traducirlo a instrucciones comprensibles por el procesador
(lenguaje máquina), puede hacerse siguiendo dos modelos: los intérpretes y los compiladores.
10
Ing. Elizabeth Lazcano Valencia
En el caso de lenguajes compilados como C++, el archivo de texto plano que contiene el código fuente del
programador (un archivo con extensión .cpp), es sometido a un proceso de varias fases que terminan en la
obtención del ejecutable, el cual es el que la computadora puede ejecutar, ya que cada una de las instrucciones
del escritas por el programador han sido traducidas a lenguaje máquina.
Los IDE son sumamente importantes para los desarrolladores, pues el objetivo es maximizar la productividad
del programador. Estos IDE tienen características especiales como son la reducción de configuración necesaria
para reconstruir múltiples utilidades de desarrollo.
Existen IDE que están especializados para el desarrollo sobre un lenguaje de programación. Por otro lado, otros
IDE están especializados en el manejo de distintos lenguajes de programación, por ejemplo Eclipse o NetBeans.
Los principales componentes que debe contener tener un IDE son:
Durante este semestre realizaremos el desarrollo de código fuente en C++ con Code::Blocks. La selección de
este IDE fue debido a que cuenta con las siguientes características deseables para el desarrollo de este curso:
• Es gratuito, GNU General Public License.
• Es multiplataforma, nos interesa un IDE para Windows.
• Contiene un sistema de construcción de proyectos rápido.
• Su instalación puede incluir el paquete de software MinGW.
• Contiene soporte completo de breakpoints.
Existen muchas formas de estructurar programas. Los lenguajes de programación tienen varios tipos de
sentencias, entre las que cabe destacar las sentencias de declaración, las expresiones, las sentencias de
condición y las de repetición. Las sentencias de declaración permiten reservar espacio de memoria, mientras
que el resto sirven para que la computadora ejecute una serie de instrucciones. Éstas últimas no tienen un orden
estricto en el que tienen que aparecer, pero, para estructurar mejor los programas y facilitar el desarrollo, se
utilizan ciertos estándares establecidos por los paradigmas de la programación.
11
Ing. Elizabeth Lazcano Valencia
Anexo 3
PRINCIPIOS DE PROGRAMACIÓN CON LENGUAJE C++
Todo programa C/C++ requiere de una raíz, es decir, una función, a partir de la cual inicia la ejecución del mismo,
esta función raíz es llamada función principal (main) cuya definición se realiza dentro de un archivo con
extensión .cpp (main.cpp).
Figura 2.
A continuación se describen algunas recomendaciones para la escritura de código fuente C++. Se pide conservar
estas recomendaciones, pues facilitan la lectura del código fuente:
12
Ing. Elizabeth Lazcano Valencia
Llaves e indentación
Identificadores
Los nombres otorgados a los identificadores deben ser lo suficientemente descriptivos. Enseguida se muestra
una lista de reglas generales para varios tipos de identificadores:
• Variables y funciones
En un programa de computadora todos los datos son almacenados en memoria a través de variables o
de constantes, o bien son procesados dentro de funciones.
A todo elemento que es parte del programa se le asigna un identificador, de modo que las variables,
constantes y funciones siempre deben tener un nombre que las identifique durante todo el programa.
Requisitos para dar nombres de identificador:
o Cuando esté formado por varias palabras se tienen dos opciones: se separan por medio de “_”
(guión bajo), por ejemplo nombre_persona, o se intercalan mayúsculas en cada inicio de palabra,
por ejemplo nombreAlumno.
13
Ing. Elizabeth Lazcano Valencia
Analiza los siguientes ejemplos de nombres de identificadores:
• Constantes
Las constantes son utilizadas para almacenar valores que no podrán cambiar su valor durante la vida del
programa. Los nombres se muestran con todas sus letras en mayúsculas y se usan los “_” para separar
palabras, ejemplos,
VALOR_PI
PI
IVA
14
Ing. Elizabeth Lazcano Valencia
Para remarcar algún texto se pueden utilizar los siguientes estilos:
➢ DECLARACIÓN DE VARIABLES
Una variable es un nombre que se da a una zona de la memoria.
La variable nos permitirá acceder a esa zona para almacenar datos. Una característica importante es que
estos datos pueden cambiar.
Toda variable contiene un nombre y un tipo de dato.
Sintaxis C++ para declarar variables (crea una variable para poder utilizarse en el programa):
15
Ing. Elizabeth Lazcano Valencia
Memoria
Tipo Descripción Rango
(bytes)
Carácter 0 a 65535
wchar_t 2
extendido
char Carácter 1
Ejemplo:
16
Ing. Elizabeth Lazcano Valencia
COMANDOS DE ENTRADA / SALIDA CON C++
La salida de datos es mostrar en pantalla información. El comando de C++ para hacer salida de datos es:
a)
cout<< informacion;
Ejemplos:
*endl significa un salto de línea, puedes colocar endl en cualquier parte del
mensaje, por ejemplo:
La siguiente instrucción:
Cuando se trata de variables no numéricas, la concatenación puede hacerse con los símbolos
<< o con +, por ejemplo:
da el mismo resultado que
cuando se escribe:
17
Ing. Elizabeth Lazcano Valencia
El mensaje
que se envía
a impresora
mediante la
instrucción
cout<<
permite
concatenar
tantas
variables con
texto como
se desee, usando como operador de concatenación : <<
b)
printf(“información …”);
Al igual que con el comando cout<< el texto fijo se coloca entre comillas dobles.
Para usar la función printf se requiere incluir su librería:
Para concatenar texto con variables se escribe entre las comillas y en la ubicación donde se desea
ver el contenido de la variable el parámetro de printf() que corresponda al tipo de dato de que
se trate. Ejemplos:
- Muestra en pantalla el mensaje, tal cual como está escrito entre comillas dobles
- Muestra texto concatenado con el contenido de las variables que están después de las
comillas, usando el parámetro correspondiente a cada tipo de dato:
18
Ing. Elizabeth Lazcano Valencia
- Puedes dar fomato a los valores numéricos, asignado la cantidad de decimales en el
parámetro que corresponde, por ejemplo:
**** OBSERVA QUE A LOS VALORES DECIMALES SE LES HA LIMITADO LA CANTIDAD DE DIGITOS
DECIMALES Y ADEMÁS SE HAN REDONDEADO.
Como te podrás dar cuenta los parámetros dentro del mensaje en la función printf() corresponde al tipo de dato
de la variable que ocupará ese lugar en el texto. A continuación se muestran estos parámetros:
La entrada de datos es equivalente a asignar a una variable el valor que el usuario escriba por el teclado. El valor
estará almacenado en la memoria de la computadora mientras dure la ejecución del programa.
cin>> nombreVariable;
Ejemplos:
19
Ing. Elizabeth Lazcano Valencia
Operadores en C++
Un operador es un elemento de programa que se aplica a uno o varios operandos en una expresión o instrucción.
Los operadores que requieren un operando, como el operador de incremento se conocen como operadores
unarios. Los operadores que requieren dos operandos, como los operadores aritméticos (+,-,*,/) se conocen
como operadores binarios. El operador
condicional ( ? : ) utiliza tres operandos y es el único operador ternario de C++.
Operadores Aritméticos: Se usan para realizar cálculos u operaciones entre variables y/o constantes.
Es importante diferenciar entre la ubicación de los operadores de decremento (--) e incremento (++). Cuando
un operador precede a su variable, se llevará a cabo la operación de incremento o de
decremento antes de utilizar el valor del operando, sin embargo, cuando el operador es post-incremento o
post-decremento se utilizará el valor actual del operando y luego se efectuará la operación de incremento o
decremento.
Ver el ejemplo.
Operadores de asignación: Permiten la asignación de un valor específico a una variable. Este tipo de operadores
son binarios (excepto = que es el único operador de asignación simple). De la siguiente tabla los últimos cinco
operadores implican y funcionan a nivel de bits. Funcionan de la siguiente manera, al valor que tiene la variable
se le aplica el operador al valor definido, finalmente asigna el resultado a la variable en cuestión, por ejemplo.
20
Ing. Elizabeth Lazcano Valencia
En la siguiente tabla considera para el resultado que X inicialmente vale 6 y en binario 0110.
Operadores relacionales: Son también llamados operadores de comparación, se utilizan para comprobar la
veracidad o falsedad de determinadas relaciones (es como responder a ciertas preguntas). El resultado de las
expresiones puede ser cierto o falso (true/false) es decir, un resultado booleano.
21
Ing. Elizabeth Lazcano Valencia
Es importante diferenciar los operadores = y ==, recordemos que el primero asigna un valor a la variable,
mientras que el segundo compara si dos valores aritméticos o punteros son iguales.
Constantes de barra invertida: Son constantes de carácter que se utilizan para representar caracteres que son
imposibles de introducir desde teclado en un programa. Se utilizan igual que las demás constantes de carácter,
es decir, pueden asignarse a una variable o bien utilizarlas dentro de una cadena de caracteres.
La lista que se muestra a continuación incluye los códigos de barra invertida que pueden ser usados en C++:
Código Significado
\n Salto de línea
\b Espacio atrás
\f Salto de página
\r Retorno de carro
\t Tabulación horizontal
\” Comillas dobles
\’ Comillas simples
\0 Carácter nulo
\\ Barra invertida
\v Tabulador vertical
\a Alerta
Ejemplo:
El siguiente comando usa en un mensaje de salida a pantalla algunas constantes de barra invertida:
22
Ing. Elizabeth Lazcano Valencia
En la ejecución el texto se ve:
-------------------------------------------------------------
Anexo 4
Organizadores Gráficos
¿Qué es un MAPA CONCEPTUAL?
¿Cómo elaborar un mapa conceptual?
1. Define el tema principal
2. Recopila toda la información necesaria
3. Sintetiza y prioriza la información (destaca lo esencial), evita textos extensos en las cajas
4. Crea un lista de conceptos relevantes, ordénalos por área y por niveles de inclusividad
5. Conecta las ideas, lo más importante arriba y por debajo los subconceptos, utilizando palabras o frases
conectoras.
Lee el contenido de tu mapa, desde la idea principal hasta el nivel inferior, de modo que puedas describir
detallada y coherentemente todo el tema
23
Ing. Elizabeth Lazcano Valencia
¿Qué es un CUADRO SINÓPTICO?
¿Cómo elaborar un cuadro sinóptico?
También conocido como mapa sinóptico, y diagrama o esquema de llaves – es una forma visual de resumir y organizar
ideas en temas, subtemas y conceptos. Esta herramienta sirve para identificar la información más importante de un
texto, y así, comprenderlo mejor.
Los pasos básicos para construir un cuadro sinóptico son:
1. Es necesario asegurarse de entender la información que será resumida. Esto facilitará y acelerará el
proceso muchísimo.
2. Se tiene que localizar el tema principal del texto.
3. Es necesario establecer los diferentes subtemas que ayudarán a organizar los conceptos del texto.
4. Se conectan las ideas por medio de llaves, para crear grupos y subgrupos de temas, ideas, y conceptos.
24
Ing. Elizabeth Lazcano Valencia
Ejemplo:
25
Ing. Elizabeth Lazcano Valencia