Algoritmos y
a) Preparaduria 5% ( 2 Quizzes de 2% c/u + 1 % participación)
b) Proyectos Dos (2) 20% del promedio de las notas obtenidas en ambos proyectos.
c) Parciales Tres (3) 70% 1er. Parcial 15% , 2do. Parcial 20%, y 3er. Parcial 35%.
d) Participación 5% (2 Quizzes de 2% c/u + 1 % participación)
Práctica 20% Teoría 70%
Se tienen que aprobar los dos (2) componentes principales de la materia con carácter de obligatoriedad, es decir: Componente Teórico (70% 14 ptos) mínimo siete (7) puntos (>=7) ; Componente Práctico (20% 4 ptos) mínimo dos (2) puntos (>=2). Para ambos casos no aplica redondeo.
Algoritmos y Programación
Un algoritmo es un método para resolver
problemas
La programación de computadoras es el arte
de hacer que una computadora haga lo que
nosotros queramos, mediante la escritura de
un programa de computación.
Un programa de computación es simplemente un
conjunto de instrucciones que le dicen a la
computadora cómo realizar una tarea en
particular. Es parecido a una receta: un grupo de
instrucciones que le dicen al cocinero cómo
preparar un determinado plato. Describe los
ingredientes (los datos) y la secuencia de pasos
(la funcionalidad) necesarios para convertir los
ingredientes en una rica torta, un programa tiene
un concepto muy similar.
Es el lenguaje que nos permite escribir
instrucciones al computador y que este la
entienda.
Es una notación para describir programas y
estructuras de datos.
.
de máquina
ensamblador Lenguajes de bajo nivel
interpretados
compilados Lenguajes de alto nivel
De máquina
Es el lenguaje nativo de la computadora, contiene sólo unos y ceros (1 y 0), los cuales forman las instrucciones.
Ensamblador
Es un lenguaje de etiquetas, donde cada instrucción se corresponde con una instrucción en lenguaje de máquina.
Lenguajes de alto nivel
Son aquellos lenguajes semejantes al lenguaje natural, donde cada instrucción es una o más instrucciones en lenguaje ensamblador o de máquina.
Ejemplos de lenguajes
Lenguaje C Lenguaje Ensamblador Lenguaje máquina
main MiPrograma {
printf("Hola"); }
ADD ACUM, i CAR AUX, i
STZ CONTINUA RES ACUM, j MOVE X, Y
Programación imperativa o procedimental
El programador le debe indicar al computador a cada momento lo que debe hacer. Ejemplos: C, Pascal, Fortran, Cobol, PLI. El programa se debe estructurar así:
Encabezamiento del programa
Declaraciones: variables y tipos.
Cuerpo: serie de instrucciones que el computador ha de seguir para la resolución del problema.
Son lenguajes orientados a instrucciones. El diseño de estos lenguajes está influido en gran parte por la máquina de Von Neumann.
Programación estructurada
Los problemas se dividen en subproblemas más sencillos y estos son resueltos por separado para lograr en conjunto una simplificación de la tarea a programar.
Programación orientada a objetos (POO)
Forma especial de programar mas cercana a como expresaríamos las cosas en la vida real, se basa en objetos que no son mas que cosas. (Métodos, propiedades, objetos).
Las clases son implementaciones de objetos. Esto quiere decir que la definición de un objeto es la clase. Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programar una clase.
Programación orientada a objetos (POO)
Ejemplo
Carro tiene una serie de características: color, tamaño, modelo, marca. Además tiene una serie de funcionalidades: arrancar, retroceder, parar, etc. En un esquema de POO: carro es el objeto, características son las propiedades y los métodos serian las funcionalidades. Ejemplos: C++, Java.
Programación lógica (Prolog, Lisp)
Forma de programar basado en hechos y reglas, estas se pueden almacenar o no en una base de datos.
Ejemplos: Sistemas Expertos, Inteligencia artificial, juegos.
Programación funcional (Haskell)
Basado en estructuras de listas. Ejemplos: demostración de teoremas matemáticos, IA, planes de acción para robots, etc.
Los
traductores
de
lenguaje
son
programas que traducen a código de
máquina (1 y 0) los programas escritos en
lenguaje de alto nivel.
Interpretadotes
Compiladores
Interpretador
Es un programa que convierte sentencia por sentencia de un programa o código fuente, lo comprueba y lo
ejecuta.
Interprete Datos
Programa
fuente Resultados
Compilador
Programa que se encarga de traducir el programa o código fuente a a programa o código de máquina o ejecutable. Para poder utilizar un programa escrito en lenguaje compilado hay que seguir como mínimo dos fases:
Fase o tiempo de compilación: aquí se corrigen los fallos de la gramática del código fuente y se pasa en un bloque a código máquina. Esta operación se realiza una vez y se guarda en memoria para luego ejecutarlo directamente.
Fase o tiempo de ejecución: se ejecuta el programa previamente corregido y compilado desde la memoria.Edición del programa fuente
Programa fuente
Compilador
Errores Programa objeto Encuadernador Librerías
Programa ejecutable no
si
Traductores
Diferencias entre interpretador y Compilador
El compilador traduce y ejecuta todo el programa en un bloque, mientras que el intérprete realiza esta función sentencia por
sentencia.
El compilador es más eficaz al obtener el código máquina, pero por el contrario, este código ocupa mucha más memoria que el interpretado
En un principio el intérprete era el método de compilación más utilizado, ya que la memoria era escasa, pero gracias a que los
ordenadores de hoy en día poseen mucha más memoria, podemos utilizar el compilador para obtener un código más eficaz.
La sintáxis nos dice cuál es la forma correcta de escribir los programas en un lenguaje determinado. Es lo primero que tenemos que conocer de un lenguaje antes de empezar a usarlo.
La semántica especifica el significado de lo que podemos construir con este lenguaje.
- Fundamentos de Programación Piensa en C
Osvaldo Cairó / Prentice Hall / 1era. Edición 2006
- C / C++ Cómo Programar y Java
Harvey M. Deitel / Paul J. Deitel / Prentice Hall / 4ta. Edición 2004
- Programación en C
Byron Gottfried / Schaum / 2da. Edición 1997
Nota: Se puede utilizar cualquier texto de Programación en C …