Está en la página 1de 11

Nombre :

Chardin D. Tavera Reyes

Profesor/a :

Gilberto Vittini

Materia :
Introducción a la Elaboración de Algoritmos

Tema :
1) Control de Lectura (U-2)

Matricula :
2023-1303

Fecha :
01-02-2024
CAPÍTULO 3 Estructura general de un programa

:3.1. CONCEPTO DE PROGRAMA


Un programa de computadora es un conjunto de instrucciones que permiten
ejecutar una tarea específica. El proceso de programación implica resolver
problemas y consta de varias etapas: definición y análisis del problema,
diseño de algoritmos (a través de diagramas de flujo, diagramas NS o
pseudocódigo), codificación del programa, depuración y verificación,
documentación y mantenimiento.

3.2. PARTES CONSTITUTIVAS DE UN PROGRAMA


El desarrollo de un programa implica establecer especificaciones que
incluyan entrada, salida y algoritmos de resolución. El programa,
conceptualmente, actúa como una caja negra que transforma las entradas en
salidas mediante un conjunto de códigos. Las entradas provienen de
dispositivos como el teclado o el disco, mientras que las salidas se presentan
en dispositivos periféricos como pantallas o impresoras. El proceso de
introducir datos se llama entrada de datos, y el de presentar resultados se
llama salida de datos.

3.3. INSTRUCCIONES Y TIPOS DE INSTRUCCIONES


El diseño de un algoritmo o programa implica definir las acciones o
instrucciones para resolver un problema. Estas instrucciones se escriben y
almacenan en memoria en secuencia. Un programa puede ser lineal, con
instrucciones que se ejecutan secuencialmente, o no lineal, con bifurcaciones
en la secuencia mediante instrucciones de decisión.

3.3.1. Tipos de instrucciones


Las instrucciones disponibles en un lenguaje de programación dependen del
tipo de lenguaje. las instrucciones básicas son indepen- dientes del lenguaje.
La clasificación más usual, desde el punto de vista anterior, es:

instrucciones de inicio/fin,
instrucciones de asignación,
instrucciones de lectura,
instrucciones de escritura,
instrucciones de bifurcación.
3.3.2. Instrucciones de asignación
Las instrucciones de asignación asignan valores a variables. Por ejemplo, si se

tiene A 80, significa que la variable A toma el valor 80. En una secuencia de
instrucciones, el valor de una variable puede depender de otra. Por ejemplo, si
← ←
se tiene A 12 y luego B A, significa que B tomará el valor de A, es decir, 12.

Si se ejecuta la instrucción N N + 5 y N vale 2, entonces N pasará a valer 7
.Las variables se pueden pensar como cajas donde se almacenan valores, y
las instrucciones de asignación modifican el contenido de estas cajas.

3.3.3. Instrucciones de lectura de datos (entrada)


Las instrucciones de lectura de datos (entrada) permiten capturar información
desde un dispositivo de entrada como el terminal.
a) leer(NÚMERO, HORAS, TASA): Significa capturar desde el terminal los
valores NÚMERO, HORAS y TASA. Por ejemplo, si se ingresan 12325, 32,
1200 respectivamente, los valores se asignarían a las variables como sigue:
NÚMERO ← 12325 HORAS ← 32 TASA ← 1200
b) leer(A, B, C): En este caso, se capturarán desde el terminal los valores A, B
y C. Por ejemplo, si se ingresarán 100, 200, 300 respectivamente, los valores
se asignarán a las variables como sigue : A = 100 B = 200 C = 300

3.3.4. Instrucciones de escritura de resultados (salida)


Estas instrucciones escriben en un dispositivo de salida los valores de las
variables A, B y C, que son 100, 200 y 300 respectivamente.

3.3.5. Instrucciones de bifurcación


Las instrucciones de bifurcación interrumpen el desarrollo lineal de un
programa, pudiendo ser hacia adelante o hacia atrás. Las bifurcaciones pueden
ser condicionales, dependiendo del resultado de una evaluación de la
condición, o incondicionales, donde la bifurcación se realiza sin necesidad de
cumplir ninguna condición.

3.4. ELEMENTOS BÁSICOS DE UN PROGRAMA


Los programas informáticos se componen de varios elementos fundamentales
que incluyen palabras reservadas, identificadores, caracteres especiales,
constantes, variables, expresiones e instrucciones. Estos elementos se
combinan siguiendo reglas específicas llamadas sintaxis del lenguaje. Además,
los programas pueden incluir bucles, contadores, acumuladores, interruptores y
estructuras secuenciales, selectivas y repetitivas.
Es crucial comprender estos elementos y técnicas de programación para
diseñar y codificar algoritmos de manera efectiva.

3.5. DATOS, TIPOS DE DATOS Y OPERACIONES PRIMITIVAS


Los datos son la base de toda computadora y pueden ser de varios tipos.
Los programas operan sobre estos datos, transformándolos de entrada a
salida. Es crucial diseñar tanto la estructura de datos como el algoritmo. Hay
dos tipos principales de datos: simples y compuestos. Los datos simples
incluyen numéricos, lógicos y de caracteres, mientras que los compuestos
son conjuntos de datos simples con relaciones definidas entre ellos. Los
datos se representan internamente en la computadora como secuencias de
bits, y los lenguajes de alto nivel permiten abstraer esta representación.

3.5.1. Datos numéricos


El tipo numérico incluye enteros y reales. Los enteros son números
completos, sin decimales, y pueden ser positivos o negativos. Los reales
tienen decimales y pueden ser positivos o negativos. Se utilizan para
representar diferentes tipos de datos en programación, con distintos rangos
y precisiones según el tipo de dato. Los números reales pueden
representarse en notación científica para manejar valores muy grandes o
muy pequeños.

3.5.2. Datos lógicos (booleanos)


El tipo lógico, también llamado booleano, solo puede ser verdadero (true) o
falso (false). Se utiliza para representar condiciones como sí o no. C++ y
Java admiten este tipo de datos.

3.5.3. Datos tipo carácter y tipo cadena


Los tipos de caracteres son conjuntos finitos y ordenados reconocidos por
las computadoras. Los datos tipo carácter contienen un solo carácter y
pueden incluir letras, números y caracteres especiales como +, -, *, /, entre
otros. Las cadenas de caracteres son secuencias delimitadas por comillas y
su longitud es el número de caracteres entre los delimitadores. Los ejemplos
incluyen 'Hola Mortimer', '12 de octubre de 1492', 'Sr. McKoy'.
3.6. CONSTANTES Y VARIABLES
Las constantes son valores que no cambian durante la ejecución del
programa, mientras que las variables pueden cambiar. Las constantes
pueden ser de diferentes tipos, como reales, caracteres y lógicas. Las
variables tienen un nombre y un tipo que describen su uso. Los nombres de
las variables deben ser significativos y relacionados con el objeto que
representan. Algunos lenguajes permiten asignar nombres a constantes
típicas, como π y e.

3.6.1. Declaración de constantes y variables


La declaración de variables y constantes en programas requiere asignarles
un nombre y, opcionalmente, un valor inicial. Para variables, se emplea la
sintaxis <tipo_de_dato> <nombre_variable> [= <expresión>].
Para constantes, se usa const <tipo_de_dato> <nombre_constante> =
<expresión>. Ejemplos incluyen:

- Variables: car letra, abreviatura; ent numAlumnos = 25; real salario =


23.000.
- Constantes: const doble PI = 3.141592; const cad nombre = 'Mackoy'; const
car letra = 'c'.

3.7. EXPRESIONES
Las expresiones son combinaciones de elementos como constantes,
variables y operadores matemáticos, que se utilizan para realizar cálculos.
Pueden ser aritméticas, relacionales, lógicas o de caracteres, y el tipo de
resultado que producen depende de los elementos que las componen.

3.7.1. Expresiones aritméticas


Las expresiones aritméticas son similares a las fórmulas matemáticas e
implican variables y constantes numéricas, junto con operaciones aritméticas
como suma, resta, multiplicación, división, exponenciación, división entera y
módulo. Los operadores se utilizan de manera similar a las matemáticas, con
algunos lenguajes que no admiten todos los operadores. Por ejemplo, en
FORTRAN no existen los operadores div y mod.
Los cálculos involucran tipos de datos reales y enteros, dando normalmente
resultados del mismo tipo si los operandos lo son también. Los operadores de
incremento (++) y decremento (--) aumentan o disminuyen el valor de una
variable en una unidad, dependiendo de si se utilizan como prefijos o sufijos.

3.7.2. Reglas de prioridad


Las reglas de prioridad en expresiones matemáticas establecen el orden de
las operaciones. Se evalúan primero las operaciones dentro de paréntesis,
seguidas de multiplicaciones y divisiones, y finalmente sumas y restas. En
caso de igual prioridad, se sigue el orden de izquierda a derecha. Por
ejemplo, en la expresión "12 + 3 * 7 + 5 * 4", primero se resuelven las
multiplicaciones, luego las sumas, resultando en 53.

3.7.3. Expresiones lógicas (booleanas)


Las expresiones lógicas, también conocidas como booleanas, son aquellas
cuyo valor es siempre verdadero o falso. Estas expresiones se forman
combinando constantes lógicas, variables lógicas y otras expresiones lógicas
mediante operadores lógicos como "not", "and" y "or", así como operadores
relacionales como "<", ">", "=" y otros. Estas expresiones son fundamentales
para expresar condiciones en algoritmos y toman su nombre en honor al
matemático británico George Boole, quien desarrolló el Álgebra lógica de
Boole.

3.8. FUNCIONES INTERNAS


Las funciones internas son operaciones especiales incorporadas en
programas, como ln para logaritmo neperiano o sqrt para raíz cuadrada. Se
pueden aplicar argumentos reales o enteros y producir resultados específicos.
Por ejemplo, raiz2(25) da 5 y round(6.5) da 7. Estas funciones son útiles en
diversas tareas, como resolver ecuaciones cuadráticas, aunque se debe tener
cuidado con los valores negativos para evitar errores.

3.9. LA OPERACIÓN DE ASIGNACIÓN


La operación de asignación es fundamental para almacenar valores en
variables. Se representa con el símbolo ← o = en diferentes lenguajes de
programación. Se utiliza para asignar un valor a una variable, lo que
reemplaza cualquier valor anterior en esa variable. La computadora realiza la
asignación en dos pasos: primero calcula el valor de la expresión a la derecha
del operador y luego lo almacena en la variable a la izquierda del operador. .
Las asignaciones pueden ser aritméticas, lógicas o de caracteres, y permiten
acciones como incrementar el valor de una variable.

3.9.1. Asignación aritmética


Las asignaciones aritméticas involucran expresiones matemáticas para
asignar valores a variables. Por ejemplo, AMN toma el valor de la suma de 3,
14 y 8. COCIENTE se asigna con el resultado de la división de la suma de
14.5 y 8 entre el producto de 0.75 y 3.4. Las variables pueden modificarse
dentro de una asignación, como en el caso de A tomando el valor de N más
1.

3.9.2. Asignación lógica , de cadenas de caracteres ,Asignación múltiple


En programación, la asignación puede ser lógica o de cadenas de
caracteres. En asignación lógica, las variables toman valores verdadero o
falso según la evaluación de expresiones lógicas. En asignación de cadenas,
se asigna una cadena de caracteres a una variable. También existen
asignaciones múltiples, donde se pueden combinar operadores aritméticos
con el operador de asignación, como +=, -=, *=, /=, y %=, para realizar
múltiples asignaciones en una sola sentencia.

3.9.5. Conversión de tipo


Se presentan ejemplos de conversión de tipo y asignación de valores a
variables. En el primer ejemplo, se asignan valores a las variables A, B y C,
luego se realizan operaciones matemáticas con ellas, obteniendo nuevos
valores. En el segundo ejemplo, se muestra una secuencia de operaciones
que afectan el valor de la variable x.

3.10. ENTRADA Y SALIDA DE INFORMACIÓN


La entrada y salida de información en computadoras es crucial para realizar
cálculos. La entrada, mediante dispositivos como teclados, asigna valores a
variables. La salida, en dispositivos como pantallas o impresoras, muestra
resultados. En algoritmos, la lectura y escritura se representan con "leer" y
"escribir", respectivamente. Por ejemplo, "leer(A, B, C)" asigna valores a A, B
y C, mientras que "escribir('hola Vargas')" muestra el mensaje en pantalla.
3.11. ESCRITURA DE ALGORITMOS/PROGRAMAS
La escritura de algoritmos o programas requiere claridad y estructura para
facilitar su comprensión y codificación. Utilizamos lenguajes similares a los
programas, como el pseudocódigo, basados en la lógica de programación
estructurada como Pascal. Un algoritmo consta de una cabecera que inicia con
la palabra "algoritmo" seguida por el nombre del programa, y un bloque que
incluye declaraciones de variables y constantes, así como acciones
ejecutables.

3.11.1. Cabecera del programa o algoritmo,3.11.2. Declaración de


variables, 3.11.3. Declaración de constantes numéricas.
Todos los algoritmos y programas deben comenzar con una cabecera en la
que se exprese el identificador o nombre correspondiente con la palabra
reservada que señale el lenguaje. En los lenguajes de programación, la
palabra reser- vada suele ser program. En Algorítmica se denomina algoritmo.

La sección de declaración de variables en una lista de algoritmos y describe


todas las variables utilizadas, especificando sus nombres y tipos de datos.
Comienza con la palabra reservada "var" seguida de las declaraciones de
variables. Es recomendable utilizar nombres significativos para las variables y
agregar comentarios breves que indiquen su uso.

En esta sección se declaran todas las constantes que tengan nombre. Su


formato es
const
pi = 3.141592 tamaño = 43
horas = 6.50
Los valores de estas constantes ya no pueden variar en el transcurso del
algoritmo.

3.11.4. Declaración de constantes y variables carácter


Se pueden declarar constantes y variables de caracteres en un programa. Las
constantes de caracteres simples y cadenas se pueden declarar en la sección
constante del programa. Las variables de caracteres pueden almacenar un
solo carácter o múltiples caracteres, dependiendo del lenguaje de
programación utilizado. En algunos lenguajes como Pascal, se pueden usar
tipos de datos específicos como "string" para declarar variables de cadena.
3.11.5. Comentarios
La documentación de un programa es esencial para su mantenimiento y
actualización. Puede ser interno o externo. La documentación interna se
realiza mediante comentarios en el código fuente. Diferentes lenguajes de
programación tienen notaciones específicas para comentarios.
En Visual Basic, se utilizan apóstrofes simples o la palabra reservada
"Rem" para comentarios.
En C/C++, los comentarios de una línea comienzan con "//" y los
multilínea entre "/ " y " /".
En Java, los comentarios de una línea comienzan con "//", y los multilínea
entre "/ " y " /", con documentación de clases entre "/** */".
En Pascal, los comentarios se encierran entre "(* *)".
En Modula-2, los comentarios se cerrarán entre "(* *)".

3.11.6. Estilo de escritura de algoritmos


El estilo de escritura de algoritmos y programas sigue una estructura definida,
comenzando con una cabecera que incluye el identificador y las
declaraciones de variables y constantes. Luego sigue el cuerpo del algoritmo,
donde se enumeran las diferentes sentencias.
CAPÍTULO 4
Flujo de control I: Estructuras selectivas

4.1. EL FLUJO DE CONTROL DE UN PROGRAMA


En programación, el flujo de control se refiere al orden en que se ejecutan las
sentencias del programa, que pueden ser secuenciales, de selección o de
repetición. Las selecciones de estructuras, como "si" y "según-sea", eligen qué
sentencias ejecutar, mientras que las estructuras de repetición, como "desde"
y "mientras", repiten un conjunto de sentencias. La ejecución secuencial sigue
el orden del código fuente, pero las bifurcaciones permiten modificar este flujo
según condiciones específicas, seleccionando entre diferentes caminos de
ejecución.

4.2. ESTRUCTURA SECUENCIAL


En una estructura secuencial, las acciones o instrucciones se ejecutan en
secuencia, una tras otra, donde la salida de una acción es la entrada de la
siguiente. Esta estructura tiene una entrada y una salida claramente definidas.
Se representa gráficamente mediante diagramas de flujo y pseudocódigo. Por
ejemplo, en el cálculo de la suma y el producto de dos números, las
operaciones se realizan secuencialmente, primero se leen los números, luego
se calculan la suma y el producto, y finalmente se muestran los resultados.

4.3. ESTRUCTURAS SELECTIVAS


Las estructuras selectivas, también conocidas como estructuras de decisión,
son utilizadas en algoritmos cuando se necesitan tomar diferentes caminos
basados ​en la evaluación de una condición. Se representan con palabras
como "if", "then", "else" o mediante figuras geométricas. Pueden ser simples,
dobles o múltiples, dependiendo de la cantidad de alternativas que se
presenten.

4.4. ALTERNATIVA SIMPLE (SI-ENTONCES/IF-THEN)


La estructura condicional simple si-entonces ejecuta una acción si una
condición es verdadera y no hace nada si es falsa. Se representa gráficamente
con un diagrama de flujo y se escribe en pseudocódigo tanto en español como
en inglés. El pseudocódigo muestra cómo se estructuran las acciones dentro
de la condición, con un inicio y un fin si es una acción compuesta.
4.4.1. Alternativa doble (si-entonces-sino/if-then-else)
La estructura de alternativa doble, también conocida como "si-entonces-
sino" o "if-then-else", permite elegir entre dos opciones en función de una
condición. Si la condición es verdadera, se ejecuta la acción S1; si es falsa,
se ejecuta la acción S2. Se representa tanto en diagramas de flujo como en
pseudocódigo. En el pseudocódigo, las acciones se indentan para mejorar
la legibilidad.

4.5. ALTERNATIVA MÚLTIPLE (según_sea, caso de/case )


La estructura de decisión múltiple permite elegir entre varias alternativas
según el valor de una expresión. Se representa mediante la sentencia
switch en lenguajes como C, C++, Java y C#. Esta estructura evita la
complejidad de estructuras anidadas al evaluar una expresión que puede
tomar múltiples valores. Se puede expresar de varias formas en
pseudocódigo, brindando flexibilidad en la implementación de acciones
simples o compuestas.

4.6. ESTRUCTURAS DE DECISIÓN ANIDADAS


Las estructuras de decisión anidadas, también conocidas como en
escalera, permiten diseñar selecciones que contienen más de dos
alternativas. Esto se logra mediante la incorporación de estructuras `si`
dentro de otras estructuras `si`. Estas estructuras pueden ser complejas y
requerir indentación para mantener la claridad del algoritmo. Se pueden
construir estructuras de decisión múltiple utilizando el formato `si
<condicion> entonces` con `si_no` para cada alternativa. La escritura de
estas estructuras puede variar según el lenguaje de programación utilizado.
Por ejemplo, un algoritmo puede calcular el número más grande entre tres
números o incluso resolver ecuaciones de segundo grado.

4.7. LA SENTENCIA ir-a (goto)


El uso de la sentencia ir_a(goto) en la programación ha sido controvertido.
Aunque presente en algunos lenguajes, como C#, su utilización es
desaconsejada debido a su tendencia a producir código poco claro y
propenso a errores. Aunque puede ser útil en situaciones específicas, su
uso generalmente se considera una mala práctica. Las sentencias de salto,
como break, continue, returny throw, también permiten alterar el flujo de
control de un programa, pero se utilizan de manera más controlada y
estructurada.

También podría gustarte