Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Repaso
Base r Dec: Sumar el resultado de multiplicar cada digito por la
n 1
base elevada a su posición.
N a r
i m
i
i
Dec Base r:
• Parte entera: Divisiones sucesivas por la base a la cual se quiere
pasar, se toma el ultimo cociente y los residuos de todas las
divisiones (comenzando por el ultimo residuo).
• Parte decimal: Multiplicaciones sucesivas por el la base a la cual
se quiere pasar, se toma la parte entera del resultado comenzando
por la primer multiplicación.
Introducción a la programación
Traductores de código
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Capas de Abstracción
Problema
Algoritmo
Programa
Instruction-set Architecture
Micro-arquitectura
Circuitos
Transistores
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Capas de Abstracción
PROGRAMADOR (Ideas)
Lenguaje Humano
(Mi idea es…)
Alto nivel
INICIO
ESCRIBA(“ingrese a”)
Lenguaje de LEA(a)
ESCRIBA(“ingrese b”)
Programación
LEA(b)
c a + b
ESCRIBA(“La suma:”,c)
FIN_INICIO
Bajo nivel
Lenguaje de Máquina
(1000110)
MÁQUINA
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Lenguajes de programación
Un lenguaje es un conjunto de reglas que
permiten transmitir una idea. (Semántica)
conjunto preciso y finito de instrucciones
ALGORITMO: que describe como ejecutar una tarea
especifica mediante una serie de pasos.
es la implementación o descripción de un
PROGRAMA:
algoritmo en un lenguaje de programación
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Lenguajes de programación
•Programación: Actividad
que consiste en expresar Traducción
un algoritmo en forma de 11100101
????
Computadora…
Mata a Flanders
0
programa.
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Lenguajes de programación
Principales lenguajes utilizados en la actualidad:
Lenguaje de alto nivel Lenguaje de bajo nivel.
#include <stdio.h>
int main (void) MOV AX, @data;
{ MOV DS, AX;
char x; MOV DX, offset;
printf (“Introduce un caracter\n”); MOV AH, 9;
scanf(“%c”, &a); INT 21h;
if(a>=48 && a<=57)
printf ("Es un numero");
}
Lenguaje de maquina.
Introduce un carácter 101001001001111
4 101010101001010
Es un numero
100101111000111
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Lenguaje de Bajo Nivel
Assembler (Ensamblador)
Cada arquitectura tiene el propio.
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Lenguaje de Alto Nivel
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Lenguajes de Programación
Algoritmo(sumar) C,C+
Variables: +,C#,Java,
a, b, c: entero Fortran,
INICIO
ESCRIBA(“Introduzca el primer numero (entero)”)
Pascal,
LEA(a) XML,HTML
ESCRIBA(“Introduzca el segundo numero (entero)”)
LEA(b)
c a + b
ESCRIBA(“La suma es: ”,c) Ensamblado
FIN_INICIO r
Fin(sumar)
Máquina
Máquina
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
A continuación…
Introducción a la programación
Traductores de código
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Programación
Un computador solo es capaz de ejecutar ordenes
y operaciones
Aritmetica y lógica
Comparaciones numericas o alfanumericas.
Almacenar y recuperar información
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Traductores de Código
PROGRAMADOR (Ideas)
Lenguaje Humano
(Mi idea es…)
Alto nivel
INICIO
ESCRIBA(“ingrese a”)
Lenguaje de LEA(a)
ESCRIBA(“ingrese b”)
Programación
LEA(b)
c a + b
ESCRIBA(“La suma:”,c)
FIN_INICIO
Bajo nivel
Lenguaje de Máquina
(1000110)
10001100011
10010101001
00101010001 MÁQUINA
Circuitos
Circuitos Digitales
Informática I III III
Digitales
01111001010 Universidad2010/1
2009/1
2010/1
de Antioquia
Traductores de Código
Clasificación:
Compiladores: Lenguaje de
alto nivel --> Lenguaje de
maquina.
Interprete: Un traductor que
toma un programa fuente, lo
traduce y a continuación lo
ejecuta.
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Compilador
Programa que traduce un programa escrito en un
lenguaje de alto nivel al lenguaje de máquina, para
poder ser ejecutado por el computador.
C C++ FORTRAN
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Intérprete
Intérprete: programa que hace el trabajo de un
compilador pero en tiempo de ejecución
(runtime).
myprog.c myprog.m myprog.java
public class
int main(void){
HelloWorld { public
int a, b; b = 2;
static void
a = 3; function [a] = f1(b)
main(String[] args)
printf(“a=%d”, a = b+ 1;
{ System.out.println(“
a); a
a=3"); } }
exit(0); }
}
COMPILADOR
(a bytecode)
COMPILADOR myprog.class
INTÉRPRETE 0101001001010
(Matlab engine) 10100101010001
myprog.exe 11101010010101
00010101001011
0101001001010 01001
1010010101000
11110101001010 Java Virtual
1000101010010
1101001 Machine
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Compilador vs Intérprete
El compilador toma El intérprete toma UNA
TODO EL CÓDIGO y INSTRUCCIÓN del código
produce un archivo en fuente y genera el código
código maquina maquina equivalente y lo
equivalente. ejecuta
Lenguaje de Lenguaje de INSTRUCCIÓN
CODIGO FUENTE Alto nivel Alto nivel CODIGO FUENTE
COMPILADOR INTERPRETE
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
A continuación…
Introducción a la programación
Traductores de código
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Método solución de problemas
PROGRAMADOR (Ideas)
Lenguaje Humano
(Mi idea es…)
Alto nivel
Lenguaje de
Programación
Bajo nivel
Lenguaje de Máquina
(1000110)
MÁQUINA
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Método solución de problemas
A partir del planteamiento de un problema, es
conveniente usar un método para la resolución del
problema, que tendrá como objetivo final el
algoritmo que dará una solución.
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Método de Polya
George Polya, Matemático húngaro, autor del libro
How to solve it (1945). En él, Polya propone cuatro
pasos generales para la solución de un problema:
1 ●
Entender el problema
2 ●
Diseñar un plan
3 ●
Implementar el plan
4 ●
Revisar el plan
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Método de Polya
1. Entienda el problema: parece obvio pero es con
frecuencia un gran obstáculo. Entender de
manera clara el problema que se esta
resolviendo:
¿Entiende todas las palabras de la formulación del problema?
¿Qué le están pidiendo que encuentre?
¿Puede usted reformular el problema en sus propias palabras?
¿Puede hacer un dibujo que represente el problema?
¿Hay suficiente información para encontrar la solución?
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Método de Polya
2. Diseñe un plan: Es la fase donde se le da
solución al problema. Para esto es necesario
escoger una estrategia para resolver el problema
Divida el problema en problemas más simples.
Elimine posibilidades.
Aproveche simetrías.
Seleccione la información de entrada al problema.
Seleccione la información de salida del problema.
Busque relaciones, es decir la dependencia entre la información
de entrada y la información de salida.
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Método de Polya
3. Implemente el plan: es la fase en la que se
construye el algoritmo que permitirá encontrar la
solución al problema. Esta fase requiere mucho
cuidado en los detalles, paciencia y experiencia.
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Método de Polya
4. Revise el plan: haga una pausa, revise y
reflexione sobre el trabajo hecho. El objetivo es
verificar y corregir los errores hasta lograr lo
deseado.
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Método solución de problemas
Problema
PROGRAMADOR
Algoritmo Aplicar Método de
solución de
PROGRAMADOR
problemas
Programa
COMPILADOR
Instruction-set Architecture
Micro-arquitectura
Circuitos
Transistores
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Algoritmos
El método aplicado para la resolución de problemas
mediante programas.
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia
Bibliografía
• Joyanes A. Luis. Programacion en c.
Metodologia, algoritmos y estructura de datos.
McGrawHill. 2000
• Nell Dale y John Lewis, Computer Science
Illuminated Jones and Bartlett, 2002
• Oviedo, Efrain. Lógica de Programación
• www.google.com
Circuitos
Circuitos Digitales
Informática I III III
Digitales Universidad2010/1
2009/1
2010/1
de Antioquia