“INVESTIGACIÓN DE TEMAS”
ING. INDUSTRIAL Y DE SISTEMAS
MATERIA:
PROGRAMACIÓN
3ER CUATRIMESTRE GRUPO “B”
DOMINICAL
30 DE JUNIO DEL 2023; SALTILLO, COAHUILA, MÉXICO.
PROGRAMACIÓN
INDICE
JUSTIFICACIÓN............................................................................................4
1.- SENTENCIA SCANF....................................................................................
2.- SEMÁNTICA DE INSTRUCCIÓN SCANF....................................................
2.1.- Elementos clave de la semántica scanf:.........................................5
2.2.- Importancia de la semántica en scanf:............................................6
2.3.- Ejemplo:.......................................................................................... 7
3.- SENTENCIA PRINTF....................................................................................
4.- SEMÁNTICA DE INSTRUCCIÓN PRINTF Y COUNT..................................
4.1.- Elementos clave de la semántica printf:..........................................9
4.2.- Semántica COUNT (Simulada).....................................................10
4.3.- Importancia de la semántica en printf:...........................................10
4.3.- Consideraciones importantes de Count:.......................................11
4.4.- Ejemplo de análisis semántico de Printf:.......................................11
4.5.- Ejemplo de análisis semántico de Count:......................................12
5.- CONTROL DE FLUJO DE DATOS.............................................................
5.1.- Elementos clave del flujo de control:.............................................13
5.2.- Importancia del flujo de control:.....................................................14
5.3.- Ejemplo de flujo de control:...........................................................14
6.- SENTENCIA IF - THEN - ELSE..................................................................
6.1.- Elementos de la sentencia if-then-else:.........................................15
6.2.- Consideraciones importantes:.......................................................15
6.3.- Ejemplo:........................................................................................ 15
7.- SENTENCIA SWITCH.................................................................................
PROGRAMACIÓN
7.1.- Consideraciones importantes:.......................................................18
7.2.- Elementos claves:.........................................................................18
CONCLUSIÓN.............................................................................................19
BIBLIOGRAFÍA............................................................................................ 19
JUSTIFICACIÓN
PROGRAMACIÓN
El objetivo de esta investigación es conocer los fundamentos teóricos de la
programación con la aparición de los lenguajes de programación; uno de los más
importantes avances es las diversas sentencias que se ocupan para poder darle
una orden que debe hacer a lo que se desea programas, aquí también
conoceremos la estructuras de ellas mediante ejemplos que se mencionan a lo
largo de la investigación.
PROGRAMACIÓN
1.- SENTENCIA SCANF
Mediante la función scanf podemos introducir cualquier combinación de
valores numéricos, caracteres sueltos y cadenas de caracteres a través del
teclado. En definitiva, scanf lee datos formateados de la entrada estándar. Cuando
hablamos de datos formateados, nos referimos a que los datos se pueden
presentar en distintos formatos. La función devolverá el número de datos que se
han introducido correctamente.
En general, una referencia a la función scanf se escribe:
scanf ( cadena de control ,lista de argumentos ) ;
En donde cadena de control hace referencia a una cadena de caracteres
que contiene información sobre el formato de los datos (debe haber tantos códigos
de formato como argumentos), y la lista de argumentos son argumentos que
representan los datos. Debemos recordar que delante de estos caracteres va
siempre %.
Y las listas de argumentos de scanf han de ser punteros que no son otra
cosa que direcciones de memoria donde se encuentran los datos. Para obtener la
dirección de memoria de una variable, es necesario aplicarle el operador monario.
2.- SEMÁNTICA DE INSTRUCCIÓN SCANF
La semántica de la instrucción scanf en C define el significado y
comportamiento de esta función a la hora de leer datos del teclado y
almacenarlos en variables. En otras palabras, establece las reglas que determinan
cómo se interpretan los argumentos y cómo se realiza la lectura de datos.
2.1.- Elementos clave de la semántica scanf:
1.- Formato de entrada: La semántica especifica cómo se representa el tipo de
datos que se espera leer. Cada tipo de dato se asocia con un modificador
especial:
PROGRAMACIÓN
2.- Correspondencia entre formato y variables: La semántica establece una
correspondencia entre los modificadores de formato y las variables donde
se almacenarán los datos leídos. El orden de los modificadores debe
coincidir con el orden de las variables.
3.- Conversión de datos: La semántica define cómo se convierten los datos
leídos del teclado al tipo de dato correspondiente a las variables. Por
ejemplo, si se lee un carácter con %c, se convierte al tipo char antes de
almacenarse en la variable.
4.- Manejo de espacios en blanco: La semántica especifica cómo se manejan
los espacios en blanco al leer datos del teclado. Los espacios en blanco
generalmente se ignoran, excepto dentro de las cadenas de caracteres (con
%s).
5.- Validación de datos: La semántica no incluye validación de datos por
defecto. Es responsabilidad del programador verificar que los datos
ingresados sean del tipo correcto y no generen errores.
2.2.- Importancia de la semántica en scanf:
La semántica de scanf es fundamental para comprender el funcionamiento
de esta instrucción y para escribir código C correcto. Permite a los programadores:
Predecir el comportamiento de la lectura de datos: Saber qué tipo de datos
se esperan y cómo se almacenarán.
PROGRAMACIÓN
Evitar errores: Identificar posibles errores al leer datos que no coinciden con
el tipo esperado.
Escribir código más claro y mantenible: Facilitar la comprensión del código
para otros programadores.
2.3.- Ejemplo:
En este ejemplo, la semántica indica lo siguiente:
Se espera leer tres datos: un entero, un número de coma flotante y un
carácter.
Los datos se almacenarán en las variables numero, decimal y letra,
respectivamente.
Se utiliza el operador de dirección de memoria (&) antes de las variables
para indicar que se desea almacenar la dirección de memoria donde se
almacenará el dato leído.
3.- SENTENCIA PRINTF
La función printf (que deriva su nombre de “print formatted”) imprime un
mensaje por pantalla utilizando una “cadena de formato” que incluye las
instrucciones para mezclar múltiples cadenas en la cadena final a mostrar por
pantalla. Complementariamente a scanf, printf puede escribir cualquier
combinación de valores numéricos, caracteres sueltos y cadenas de caracteres.
PROGRAMACIÓN
La función printf transporta datos desde la memoria a la pantalla, a diferencia de
scanf, que envía datos desde el teclado para almacenarlos en la memoria. La
función printf devuelve el número de caracteres escritos. Si devuelve un valor
negativo indica que se ha producido un error.
En general, una referencia a la función printf se escribe:
printf ( cadena de control ,lista de argumentos ) ;
En donde cadena de control hace referencia a una cadena de caracteres
que contiene información sobre el formato de la salida y la lista de argumentos son
argumentos que representan los datos de salida.
A diferencia de la función scanf, los argumentos en la función printf no
representan direcciones de memoria y por tanto no son precedidos por &.
Además, dentro de los argumentos se pueden incluir referencias a funciones.
En la cadena de control se incluyen grupos individuales de caracteres cada
uno de los cuales deben comenzar por %. Normalmente, un grupo de caracteres
estará formado por el signo de porcentaje seguido de un carácter de conversión
que indica el tipo del dato correspondiente (debe haber igual número de
caracteres de conversión como de argumentos).
Pueden incluirse varios grupos de caracteres seguidos o separados por
otros caracteres, caracteres éstos que serán enviados directamente a la pantalla,
donde serán visualizados (es muy frecuente el uso de caracteres en blanco para
separar grupos de caracteres).
Además, los caracteres de conversión pueden incluir los siguientes
modificadores:
Longitud del campo: Un número entero entre % y el carácter de conversión.
PROGRAMACIÓN
Número de dígitos decimales: Un número entero, un punto y un segundo
número entre % y el carácter de conversión indica el número de dígitos
decimales, y la long. máx. para enteros o cadenas.
Justificación a la izquierda: Signo - después del signo %.
4.- SEMÁNTICA DE INSTRUCCIÓN PRINTF Y COUNT
La semántica de la instrucción printf en C define el significado y
comportamiento de esta función a la hora de mostrar información en la salida
estándar (generalmente, la consola). En otras palabras, establece las reglas que
determinan cómo se interpretan los argumentos y cómo se formatea y presenta la
información. La instrucción count en C no existe como una instrucción nativa del
lenguaje. Sin embargo, se puede simular su funcionalidad utilizando otras
herramientas y técnicas de programación.
4.1.- Elementos clave de la semántica printf:
1.- Cadena de formato: La semántica especifica una cadena de formato que
define cómo se debe presentar la información. Esta cadena incluye:
Texto literal: Texto que se imprime directamente en la salida.
Directivas de formato: Indicadores especiales que controlan el
formato de la información que se va a imprimir. Estas directivas
utilizan el carácter % seguido de un modificador de tipo:
PROGRAMACIÓN
Existen otros modificadores para controlar ancho de campo, alineación,
precisión decimal, etc.
2.- Argumentos: La semántica establece una correspondencia entre las
directivas de formato en la cadena y los argumentos que se van a imprimir.
La cantidad de argumentos debe coincidir con la cantidad de directivas de
formato.
3.- Conversión de datos: La semántica define cómo se convierten los valores
de los argumentos al formato especificado por las directivas. Por ejemplo,
un número entero se convierte a una cadena de caracteres antes de
imprimirse.
4.- Salida formateada: La semántica controla cómo se presenta la información
formateada en la salida. Esto incluye aspectos como el ancho de campo, la
alineación, el relleno de espacios en blanco y la precisión decimal.
4.2.- Semántica COUNT (Simulada)
Funcionalidad: Conteo de ocurrencias de un elemento o patrón
específico dentro de un conjunto de datos.
Implementación: Se puede implementar utilizando bucles, funciones
personalizadas o bibliotecas externas.
Salida: El conteo se puede mostrar utilizando la instrucción printf o
almacenarse en una variable.
4.3.- Importancia de la semántica en printf:
La semántica de printf es fundamental para comprender el funcionamiento
de esta instrucción y para escribir código C claro y profesional. Permite a los
programadores:
Presentar información de manera organizada y legible: Formatear la salida
para que sea fácil de entender para el usuario.
Controlar el aspecto de la salida: Ajustar el ancho de campo, la alineación y
otros aspectos de la presentación.
PROGRAMACIÓN
Depurar y diagnosticar problemas: Imprimir mensajes de depuración y
valores de variables durante la ejecución del programa.
Escribir código más flexible y reutilizable: Separar la lógica del programa de
la presentación de la información.
4.3.- Consideraciones importantes de Count:
La instrucción count no forma parte del lenguaje C estándar, por lo que su
implementación requiere de código adicional.
Existen diferentes métodos para simular la funcionalidad de count, cada
uno con sus ventajas y desventajas.
La elección del método dependerá de las necesidades específicas del
programa y de las preferencias del programador.
4.4.- Ejemplo de análisis semántico de Printf:
En este ejemplo, la semántica indica lo siguiente:
Se utiliza la cadena de formato para definir cómo se debe presentar la
información de las variables numero, decimal y letra.
Las directivas de formato %d, %f y %c indican que se deben imprimir un
entero, un número de coma flotante y un carácter, respectivamente.
Los argumentos numero, decimal y letra se corresponden con las directivas
de formato respectivas.
PROGRAMACIÓN
La información se formatea con ancho de campo y alineación
predeterminados.
4.5.- Ejemplo de análisis semántico de Count:
En este ejemplo, la función contar0currencias simula la funcionalidad de
count al recorrer la cadena y contar las ocurrencias del caracter especificado. El
resultado del conteo se imprime utilizando printf.
5.- CONTROL DE FLUJO DE DATOS
El término flujo de control se refiere al orden en que se ejecutan la
sentencia del programa. Otros términos utilizados son secuenciación y control del
flujo. A menos que se especifique expresamente, el flujo normal de control de
todos los programas es el secuencial. Este término significa que las sentencias se
ejecutan en secuencia, una después de otra, en el orden en que se sitúan dentro
del programa. Las estructuras de selección, repetición e invocación permiten que
el flujo secuencial del programa sea modificado en un modo preciso y definido con
anterioridad. Como se puede deducir fácilmente, las estructuras de selección se
utilizan para seleccionar cuáles sentencias se han de ejecutar a continuación y las
estructuras de repetición (repetitivas o iterativas) se utilizan para repetir un
conjunto de sentencias.
PROGRAMACIÓN
Hasta este momento, todas las secuencias se ejecutaban secuencialmente
en el orden en que estaban escritas en el código fuente. Esta ejecución, como ya
se ha comentado, se denomina ejecución secuencial. Un programa basado en
ejecución secuencial, siempre ejecutará exactamente las mismas acciones; es
incapaz de reaccionar en respuesta a condiciones actuales. Sin embargo, la vida
real no es tan simple. Normalmente los programas necesitan alterar o modificar el
flujo de control en un programa. Así, en la solución de muchos problemas se
deben tomar acciones diferentes dependiendo el valor de los datos. Ejemplos de
situaciones simples son: cálculo de una superficie sólo sí las medidas de los lados
son positivas; la ejecución de una división se realiza, solo sí el divisor no es cero;
la visualización de mensajes diferentes depende del valor de una nota recibida,
etc.
Una bifurcación (“Branch”, em ingles) es un segmento de programa
construida con una sentencia o un grupo de sentencias. Una sentencia de
bifurcación se utiliza para ejecutar una sentencia de entre varias o bien bloques de
sentencias. La elección se realiza dependiendo de una condición dada. Las
sentencias de bifurcación se llaman también sentencias de selección o sentencias
de alternación o alternativas.
5.1.- Elementos clave del flujo de control:
Instrucciones: Son las unidades básicas del programa que realizan
acciones específicas.
Secuencia: La ejecución normal de las instrucciones se realiza en orden,
una después de otra.
Estructuras de control: Permiten modificar el flujo secuencial y dirigir la
ejecución hacia diferentes caminos. Las estructuras de control más
comunes son:
Condicionales: Evalúan una condición y ejecutan un conjunto de
instrucciones si la condición es verdadera o falsa. Ejemplos: if-else,
switch.
PROGRAMACIÓN
Bucles: Repiten un conjunto de instrucciones un número determinado de
veces o hasta que se cumpla una condición. Ejemplos: for, while, do-
while.
Saltos: Permiten transferir el control del programa a otra parte del
código. Ejemplos: goto, break, continue.
5.2.- Importancia del flujo de control:
Estructura y organización: Permite organizar el código de manera lógica y
modular, facilitando su comprensión y mantenimiento.
Toma de decisiones: Permite al programa responder a diferentes
situaciones y condiciones durante su ejecución.
Repetición de tareas: Permite automatizar tareas repetitivas y optimizar el
rendimiento del programa.
Control de errores: Permite manejar errores y excepciones durante la
ejecución del programa.
5.3.- Ejemplo de flujo de control:
En este ejemplo, el flujo de control se divide en dos caminos:
1.- Si el número ingresado es mayor que cero:
Se imprime un mensaje indicando que el número es mayor que cero.
PROGRAMACIÓN
2.- Si el número ingresado es menor o igual que cero:
Se imprime un mensaje indicando que el número es menor o igual que cero.
6.- SENTENCIA IF - THEN - ELSE
El IF-THEN-ELSE es una estructura que utilizamos en programación para
establecer condiciones. En esencia, le decimos a la máquina: "Si (IF) ocurre esto,
entonces (THEN) haz esto; de lo contrario (ELSE), haz aquello". Se trata de una
construcción fundamental en la programación, pues permite tomar decisiones
basadas en el cumplimiento de condiciones específicas.
6.1.- Elementos de la sentencia if-then-else:
1.- Condición: Es una expresión booleana que se evalúa como true o false. La
condición debe estar entre paréntesis.
2.- Bloque then: Es el conjunto de instrucciones que se ejecutan si la condición
es true. Se escribe entre llaves.
3.- Bloque else: Es el conjunto de instrucciones que se ejecutan si la condición
es false. Se escribe entre llaves, y es opcional.
6.2.- Consideraciones importantes:
Puedes anidar sentencias if-then-else dentro de otras para crear estructuras
de control más complejas.
La última parte del if puede ser un else if para evaluar otra condición.
Es importante utilizar correctamente las llaves para delimitar los bloques de
código.
La sentencia else no es obligatoria, pero se recomienda usarla para
manejar todos los casos posibles.
6.3.- Ejemplo:
1.- Verificar si es un numero positivo:
PROGRAMACIÓN
2.- Calcular el mayor de dos números:
7.- SENTENCIA SWITCH
La sentencia switch permite realizar una selección múltiple. La imagen 1
muestra su sintaxis; a continuación, se describe su funcionamiento. En primer
lugar, se evalúa la expresión, ´ que debe aparecer entre paréntesis. La expresión
debe producir un resultado de tipo entero, carácter o lógico.
Imagen 1
PROGRAMACIÓN
A continuación, se compara el resultado de evaluar la expresión con los
literales que aparecen en los casos. Si el resultado de evaluar la expresión
coincide con el literal de algún caso, entonces se ejecuta el conjunto de
instrucciones asociado al caso y el conjunto de instrucciones asociadas al resto de
casos que aparecen con posterioridad hasta que se ejecuta la instrucción break—
que provoca que se salga de la ejecución de la instrucción switch—o se han
ejecutado todos los casos. Por lo tanto, si para un caso solo queremos que ´ se
ejecute un conjunto de instrucciones debemos terminar ese conjunto de
instrucciones con la sentencia break—la sentencia break es opcional. La etiqueta
default representa un caso que se ejecuta si el resultado de evaluar la expresión
no coincide con ninguno de los literales de los casos. El especificar una etiqueta
default es opcional.
La Figura 2 contiene un programa
que ejemplifica el uso de la instrucción
switch. Piense que mensajes se mostraran
en la salida estándar en función del valor
introducido por el usuario y experimente
ejecutando el programa para comprobar si
ha entendido bien el funcionamiento de la
instrucción switch. Se sugiere que pruebe
Imagen 2
el programa introduciendo como entrada los valores del 1 al 6. El programa de la
Figura 3 muestra un uso típico de la sentencia switch. Se trata de implementar un
menú de opciones. La sentencia switch se utiliza para ejecutar las acciones
apropiadas a la opción elegida, en este caso por el usuario.
PROGRAMACIÓN
Imagen 3
7.1.- Consideraciones importantes:
Uso de break: Es importante usar la instrucción break al final de cada
bloque de código para evitar la ejecución accidental de casos posteriores.
Bloque default: Es recomendable incluir un bloque default para manejar
casos inesperados o valores no válidos.
Anidamiento: Se pueden anidar sentencias switch dentro de otras para
crear estructuras de control más complejas.
Alternativas: Existen otras estructuras de control como if-else que pueden
ser más adecuadas en ciertas situaciones.
7.2.- Elementos claves:
1.- Variable de control: Es la expresión que se evalúa para determinar el caso
a seguir. Debe ser un valor entero, un carácter o una enumeración.
2.- Casos (case): Representan las diferentes opciones o condiciones que se
pueden evaluar. Cada caso se escribe con la palabra clave case seguida
del valor correspondiente.
3.- Bloques de código: Son las instrucciones que se ejecutan si la variable de
control coincide con el valor del caso. Se escriben entre llaves {}.
PROGRAMACIÓN
4.- Instrucción break: Se utiliza para salir del bloque de código actual y evitar
que se ejecuten los casos siguientes. Es opcional, pero se recomienda
usarla para mantener el control del flujo.
5.- Bloque default (opcional): Es el código que se ejecuta si la variable de
control no coincide con ningún caso definido. Se escribe con la palabra
clave default y llaves {}.
CONCLUSIÓN
El avance de la tecnología le ha dado mucha más importancia a la
Programación, es indispensable que un Ingeniero cuente con estas herramientas
necesarias para el desarrollo de futuros proyectos y la resolución de problemas,
abriendo muchas puertas en el campo laboral.
BIBLIOGRAFÍA
Capítulo 3. Entrada y salida de datos. (2020).
[Link]
GLUD - Grupo de Trabajo Académico GNU/Linux Universidad Distrital.
(2011). Funcion scanf.
[Link]
PC resumen. (2023). La función scanf() en C. [Link]
software/36-lenguajes-de-programacion/c/114-la-funcion-scanf-en-c
Capitulo 3.- Entrada y salida de datos. (2020).
[Link]
PROGRAMACIÓN
Meza, J. D. (2021). Entrada y salida de datos en C++. Uso de cin, cout, scanf y
printf. ProgramarYa. [Link]
y-Salida-de-Datos
bidbifb. (2021). 4.1. El Flujo de Control de Un Programa. Scribd.
[Link]
Zendesk Documentation Team. (2024). Uso de la función IF THEN ELSE.
Zendesk. [Link]
Uso-de-la-funci%C3%B3n-IF-THEN-ELSE#:~:text=La%20funci%C3%B3n
%20IF%20THEN%20ELSE%20prueba%20una%20condici%C3%B3n%2C
%20luego%20devuelve,condici%C3%B3n%20se%20cumple%20o%20no.
Merino, M. (2023). La estructura IF-THEN-ELSE: su origen y su papel en la
creación de la inteligencia artificial. GENBETA.
[Link]
papel-creacion-inteligencia-artificial
Martínez, F. (2019). FUNDAMENTOS BASICOS DE PROGRAMACION EN C++.
[Link]