Este documento describe los conceptos básicos de algoritmos, programación y estructuras de datos. Explica que un algoritmo es un conjunto de instrucciones para resolver un problema, y que los diagramas de flujo son una herramienta para representar algoritmos visualmente usando símbolos normalizados. También define conceptos como variables, operaciones matemáticas, bucles y estructuras de control para la programación estructurada.
Prueba libre de Geografía para obtención título Bachillerato - 2024
Algoritmos y programas ing civil
1. ALGORITMOS Y PROGRAMAS
La principal razón para que las personas aprendan lenguajes de programación es utilizar la
computadora como una herramienta para la resolución de problemas. Dos fases pueden ser
identificadas en el proceso de resolución de problemas ayudados por computadora:
Fase de resolución de problemas.
Fase de implementación en la computadora.
El resultado de la primera fase es el diseño de un algoritmo para resolver al problema. Un
algoritmo es un conjunto de instrucciones que conducen a la solución del problema, el cual puede
expresarse en cualquier idioma. Siempre encierra una secuencia de pasos, exentos de
ambigüedades, que lleva a la solución de un problema.
Una de las herramientas de programación empleada como lenguaje algorítmico son los diagramas
de flujo, que es un dibujo con palabras que utiliza símbolos estándar, en el que cada paso del
algoritmo se visualiza dentro del símbolo adecuado y el orden en que estos pasos se ejecutan se
indica conectándolos con flechas llamadas líneas de flujo.
Los símbolos utilizados en los diagramas de flujo han sido normalizados por las organizaciones
ANSI (American National Institute) y por ISO (International Standard Organization), algunos de
ellos son:
1.- Terminal: representa el comienzo "inicio" y el fina "fin".
2.- Entrada/salida: introducción de datos o registro de la información.
3.- Proceso: cualquier tipo de operación que puede originar cambio de valor.
4.- Decisión: indica operaciones lógicas o de comparación entre datos.
2. 5.- Decisión múltiple: se seguirá uno de los diferentes caminos.
6.- Conector: conexión en la misma página de dos partes de un organigrama.
7.- Línea de flujo: indica el sentido de ejecución de la operaciones.
8.- Línea conectora: sirve de unión entre dos símbolos.
9.- Conector: conexión entre dos puntos de organigrama situado en páginas diferentes.
3. Ejemplo 1: Realice el diagrama que representa la resolución de un problema que deduce el salario
neto de un trabajador a partir de la lectura del nombre, horas trabajadas, precio de la hora y
sabiendo que los impuestos aplicados son el 10% sobre el salario bruto.
Inicio
Leer:
Nombre,
Horas,
Precio_hora
Calcular:
Jornal_bruto=horas*precio_hora
Jornal_neto=0.9*Jornal_bruto
Escribir:
Nombre,
Horas,
Jornal_bruto,
Jornal_neto
Fin
4. Ejemplo 2: Realice el algoritmo en un diagrama de flujo que resuelva el siguiente problema:
Calculo de los salarios semanales de los empleados de una empresa, sabiendo que estos se
calculan en base a las horas semanales trabajadas y de acuerdo a un precio especificado por cada
hora. Si se pasan de 40 horas semanales, las horas extraordinarias se pagarán a razón de 1.5 veces
la hora ordinaria.
Si
No
Inicio
Leer:
Horas
Precio_hora
Calcular:
Salario=Horas*Precio_hora
¿Datos?
Horas<=40
Calcular:
Salario=Precio_hora*(1.5*Horas-20)
Escribir:
Salario
Inicio
5. Ejemplo 3: Dados tres números determinar si la suma de una pareja de ellos es igual al tercer
número, si se cumple esta condición escribir "Iguales" y en caso contrario escribir "Distintas".
Ejemplo 4: Se desea calcular el salario neto semanal de un trabajador en función del número de
horas trabajadas y la tasa de impuestos de acuerdo a la siguiente hipótesis.
1.- Las primeras 35 horas se pagan a tarifa normal.
2.- Las horas que pases de 35 se pagan a 1.5 veces la tarifa normal.
3.- Las tasas de impuestos son:
Los primeros 50 dólares son libres de impuestos.
Los siguientes 40 dólares tienen un 25% de impuestos.
Los restantes un 45% de impuestos.
Escribir así mismo el nombre, salario bruto, tasas, salario neto.
DATOS Y OPERACIONES BÁSICAS
1.- DATOS:
Son los objetos sobre los que opera una computadora y pueden ser:
Numéricos: enteros, reales.
Carácter (cadena string): alfabéticos, dígitos. Los caracteres se organizan en cadenas con ' o ".
Lógicos: O booleanos son los que toman valores de cierto (true) y falso (false).
Otros tipos de datos: arrays (vectores y matrices), record (registros), file (archivos o ficheros).
2.- CONSTANTES:
Son valores que no cambian durante la ejecución de un programa.
3.- VARIABLES:
Objetos que pueden cambiar su valor durante la ejecución del programa.
4.- OPERACIONES ARITMÉTICAS:
6. Las variables y constantes pueden ser procesadas utilizando operaciones y funciones adecuadas a
sus tipos, pueden ser:
Exponenciación : ^
Multiplicación : *
División : /
Suma : +
Resta : -
Módulo (resto) : mod
5.- EXPRESIONES LÓGICAS:
Son aquellas que pueden tomar dos valores, verdadero (true) falso (false), pueden ser:
Operadores relacionales:
Igual : =
Diferentes a : <>
Menor o igual que : <=
Mayor o igual que : >=
Mayor que : >
Menor que : <
Operadores lógicos:
no : not
y : and
o : or
6.- FUNCIONES INTERNAS:
La mayoría de los lenguajes incorporan funciones predefinidas. Para utilizar estas funciones se
requiere la constante, variable o expresión denominado argumento encerrado entre paréntesis.
Valor absoluto de x : abs(x)
Arco tangente de x : arctan(x)
7. Coseno de x : cos(x)
Seno de x : sen(x)
Tangente de x : tan(x)
Parte entera de x : ent(x)
Exponencial de x : exp(x)
Logaritmo neperiano de x : ln(x)
Logaritmo decimal de x :log10(x)
Raíz cuadrada de x : raiz_cuadrada(x)
x se redondea al entero más próximo: redondeo(x)
ESTRUCTURA GENERAL DE UN PROGRAMA
1.- PROGRAMA.
Un programa de computadora es un conjunto de instrucciones, órdenes dadas a la máquina, que
producirán la ejecución de una determinada tarea.
2.- TIPOS DE INSTRUCCIONES:
Comienzo de proceso: begin
Fin de proceso: end
Entrada (lectura): read (input)
Salida (escritura): write (print)
Asignación: A 5
Bifurcación: pueden ser hacia adelante o hacia atrás.
3.- ELEMENTOS BÁSICOS DE UN PROGRAMA.
Los elementos básicos constructivos de un programa o algoritmo son:
Entrada
Programa (algoritmo
de resolución) Salida
8. Palabras reservadas (inico, fin, si-entonces, etc.)
Identificadores (nombres de variables, procedimientos, etc.)
caracteres especiales (coma, punto y coma, apóstrofo, etc.)
Constantes
Variables
Expresiones
Instrucciones
Además de estos existen otros elementos que son:
a) Bucles e iteraciones:
Un bucle es un segmento de un algoritmo o programa, cuyas instrucciones se repiten un número
determinado de veces mientras se cumple una determinada condición (existe o es verdadera la
condición). Se debe establecer un mecanismo para terminar las tareas repetitivas. Los pasos del
bucle son las iteraciones.
No
Si
Inicio
Suma 0
Leer N
N=0
SumaSuma+N
Escribir Suma
Inicio
9. b) Contadores:
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad fija en cada
iteración.
Ejemplo de algoritmo con incremento.
No
Si
Inicio
CONT1
¿CONT>20?
Cuerpo del bucle
CONTCONT+1
Inicio
10. Ejemplo de algoritmo con decremento.
No
Si
Inicio
Producto1
Contn
Leer m,n
¿Cont>0?
ProductoProducto*m
ContCont-1
Escribir:
m,n,Producto
Fin
11. c) Acumulador:
Un acumulador es una variable cuya misión es almacenar cantidades variables resultantes de
sumas sucesivas. Realiza la misma función de un contador con la diferencia de que el incremento o
decremento de cada suma es variable en lugar de constante como en el caso del contador.
El siguiente diagrama de flujo representa la suma de los k números enteros.
Si
No
Inicio
N0
Suma0
Leer k
NN+1
SumaSuma+N
N=k
Escribir:
k,Suma
Fin
12. d) Estructuras de decisión o selección:
Cuando el programador desea especificar dos o más caminos alternativos en un algoritmo o
programa.
Instrucción alternativa con dos posibles caminos.
Instrucción con alternativa múltiple.
PROGRAMACIÓN ESTRUCTURADA
Es el conjunto de técnicas para desarrollar programas fáciles de escribir, verificar, leer y mantener.
El teorema de Bohm y Jacopini (1966) establece que un programa propio puede ser escrito
utilizando sólo tres tipos de estructuras de control:
Estructuras secuenciales:
Es aquella en que una acción sigue a otra en secuencia.
NoSi ¿Condición?
Acción 1 Acción 2
¿Condición?
Acción 2 Acción 4Acción 3Acción 1 Acción 5
13. Estructuras selectivas:
Se utilizan para tomar decisiones lógicas, se clasifican en:
Estructura si-entonces-sino (IF-THEN-ELSE).
Estructura si-entonces (IF-THEN).
Estructura según/caso (CASE).
Estructuras repetitivas.
Es la construcción y uso de bucles para implementar acciones que se deben ejecutar
repetidamente, los más importantes son:
Estructura mientras (WHILE).
Estructura repetir (REPEAT).
Estructura desde (FOR).
PROBLEMAS: