TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición

Anuncio
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA
1. Definición de Algoritmo
1.1.
Propiedades de los Algoritmos
2. ¿Qué es un Programa?
2.1.
Cómo se construye un Programa
3. Definición y uso de herramientas para describir
soluciones: Diagramas de flujo, Pseudocódigo
3.1.
El Diagrama de Flujo
3.2.
El pseudocódigo
4. Traducción de ideas a un lenguaje de programación
concreto: El problema de la implementación
4.1.
Acciones y Estructuras de control
4.2.
Procedimientos
5. Lenguajes de programación. Clasificación. Colocación
en la clasificación del lenguaje C
5.1.
5.1.1.
Lenguajes máquina
5.1.2.
Lenguajes de bajo nivel
5.1.3.
Lenguajes de alto nivel
5.2.
Tema 2.
Clasificación de los lenguajes de programación
El lenguaje C
Pág. 1
1.Definiciones de Algoritmo:
• Un algoritmo es la expresión de una secuencia precisa
de operaciones que conduce a la resolución de un
problema.
• Sistema de reglas que permiten obtener una salida
específica a partir de una entrada específica. Cada paso
debe estar definido exactamente, de forma que pueda
traducirse a lenguaje de computadora
1.1 Propiedades de los Algoritmos.
- Debe ser finito
- Toda regla debe definir perfectamente la acción a
desarrollar
- Todos sus pasos deben ser simples y tener un orden
definido.
- Un Algoritmo no debe resolver un solo problema
particular sino una clase de problemas.
- Un Algoritmo debe ser eficiente y rápido.
Métodos para escribir algoritmos: Diagramas de
Flujo y pseudocódigo
2. Definiciones de Programa.
• Un programa para ordenador es la expresión de un
algoritmo en un lenguaje artificial formalizado.
• Conjunto de Instrucciones que controlan el
funcionamiento del ordenador
Tema 2.
Pág. 2
2.1. Cómo se contruye un programa. Fases en la
construcción de un programa
• Análisis del problema: equivale a decidir qué es lo que
tenemos que hacer
• Diseño o desarrollo de la solución: en esta etapa se
define cómo vamos a hacerlo
Los Métodos más eficaces se apoyan en el conocido
Divide y vencerás, (diseño descendente o top down o
modular
• Codificación o construcción de la solución en forma de
programa
• Pruebas
• Mantenimiento
3.1 Definición y uso de Herramientas para describir
soluciones. Diagramas de Flujo.
Es una representación gráfica de un algoritmo, mediante
símbolos (cajas) que tiene los pasos del algoritmo escritos
en cajas unidas por flechas, denominadas líneas de flujo,
que indican la secuencia en que se debe ejecutar.
Tema 2.
Pág. 3
Terminal
C
F
Comienzo
Fin
Entrada/Salida
Proceso
NO
Decisión
SI
Decisión Multiple
Linea de Flujo
Conectores
Misma Página
Otra Página
Llamada a Subrutina
Tema 2.
Pág. 4
Ejemplo: Diagrama de Flujo para indicar si un Nº es par o
impar
3.2. Definición y uso de Herramientas para describir
soluciones. Pseudocódigo.
Es una herramienta que permite la descripción narrativa de
algoritmos, en donde no hay reglas sintácticas estrictas, ya
que el interés se centra en la secuencia de instrucciones.
Tema 2.
Pág. 5
Pseudocódigo para indicar si un Nº es par o impar
1. Inicio
2. Si N=2 escribe par e ir a 6, en caso contrario continuar
3. Si N=1 escribe impar e ir a 6, en caso contrario
continuar
4. N=N-2
5. Volver al punto 2
6. Fin
Pseudocódigo que permite deducir si un Nº es primo o no.
1. Inicio
2. Solicitar N (N es el Nº que queremos averiguar si es o
no primo)
3. Poner X=2 (X representa a la variable que va a contener
los divisores del número N)
4. Dividir N por X
5. Si el Resultado de N / X es entero y X <>N entonces N
no es primo y bifurcar al punto 9. En caso contrario
continuar
6. Si el resultado de N / X es entero y X = N entonces N es
un Nº primo y bifurcar al punto 9. En caso contrario
continuar
7. Suma 1 a X
8. Bifurcar al punto 5
9. Fin
Tema 2.
Pág. 6
4. Traducción de ideas a un lenguaje de programación
concreto: El problema de la implementación
4.1. Acciones y Estructuras de Control
Las acciones marcan el juego de operaciones que se
pueden realizar, mientras que las estructuras de control
determinan el orden de realización de las mismas.
Acciones:
Asignación
Entradas-salidas
Instrucciones Aritmético-lógicas
Estructuras de Control
Decisiones
Ciclos (repetitivo o condicional)
4.2. Procedimientos
Es un fragmento de programa que realiza una tarea
concreta y recibe un nombre por el que puede ser llamado
o activado desde otra parte del programa. Concepto de
argumentos.
5. Lenguajes de Programación. Clasificación.
Un programa es un conj. Ordenado de Instrucciones
que se dan al ordenador indicándole las operaciones a
realizar. Estas instrucciones (que son las acciones a
realizar), se construyen con elementos o simbolos tomados
de un determinado repertorio y siguiendo reglas precisas
(Esto es lo que constituye el lenguaje de programación).
Tema 2.
Pág. 7
5.1. Clasificación de lenguajes
5.1.1 Lenguaje máquina
Los lenguajes máquina son directamente inteligibles
por el ordenador, ya que sus instrucciones son cadenas
binarias (caracteres 0 y 1) que especifican una operación,
y las posiciones (dirección) de memoria implicadas en la
misma. Estas instrucciones se llaman instrucciones
máquina o código máquina
- Ventajas: No necesitan traducción lo que supone una
gran velocidad de ejecución superior a cualquier otro
lenguaje de programación.
- Inconvenientes:
dificultad y lentitud en la codificación,
poca fiabilidad,
dificultad grande de verificar y poner a punto los
programas
Los programas sólo son ejecutables en el mismo
procesador
5.1.2. Lenguajes de bajo nivel (ensamblador).
Un programa escrito en lenguaje ensamblador no
puede ser ejecutado directamente por la computadora, sino
que requiere una fase de traducción al lenguaje máquina
Los programas en ensamblador son más fáciles de
codificar que en lenguaje máquina. Sin embargo siguen
dependiendo totalmente de la máquina, y la formación de
los programas en ensamblador es más compleja que la
correspondiente a los programas de alto nivel
Tema 2.
Pág. 8
5.1.3. Lenguajes de alto nivel
Este tipo de lenguajes presentan las siguientes ventajas:
La escritura de programas se basa en reglas sintácticas
similares a los lenguajes humanos.
Las modificaciones y puestas a punto de los programas
son más fáciles.
Portabilidad.
Y sus inconvenientes son:
Se necesitan varias traducciones del programa fuente
para conseguir el programa definitivo.
No se aprovechan los recursos internos de la máquina.
El tiempo de ejecución es mucho mayor.
Traducción
Compiladores (código fuente + código objeto)
Interpretes (análisis, traducción del código fuente)
5.2 Lenguaje C:
C combina elementos de lenguajes de alto nivel con la
funcionalidad del lenguaje ensamblador.
Permite la manipulación de bits, bytes (palabras),
direcciones (punteros).
Soporta el concepto de tipos de datos (conj. Valores que
puede tener una variable junto a conj de operaciones)
Tema 2.
Pág. 9
Descargar