Está en la página 1de 51

Introducción a la

programación.
¿Qué es un ordenador?
• “Un sistema digital con tecnología microelectrónica
capaz de procesar información a partir de un grupo
de instrucciones denominado programa”
• Componentes principales:
– Procesador (CPU: Central Processing Unit)
– Memoria (RAM: Random Access Memory)
• Componentes auxiliares:
– Disco duro
– Lector CD-ROM
– Teclado
– Pantalla
– etc.
2
Elementos de un ordenador
(hardware)

Unidad aritmetica Memoria Principal


yProcesador
logica (ALU)
(RAM)
(CPU)
Unidad de
Control (CU) Programa

Dispositivos de entrada Dispositivos de salida Dispositivos de


teclado pantalla almacenamiento de datos
ratón impresora disco duro
lector/grabador de CD-ROM
lector/grabador de disquete3
Representación de los datos
en el ordenador
• El único código que entiende la CPU son los bits.
• Los bits son representados en circuitos electrónicos
que pueden estar en estado “on” (1) u “off” (0)
• Las instrucciones se mandan a la CPU en forma de
bytes, que son palabras de 8 bits
• 1 byte = 8 bits
• 1 kilobyte = 1 024 bytes
• 1 megabyte = 1 024 kilobytes = 1 048 576 bytes

4
Representación de los datos
en el ordenador
• Base 10:
– Dígitos = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
– 1111 = 1*103 + 1*102 + 1*101 + 1*100
• Base 2:
– Dígitos = {0, 1}
– 1111 = 1*23 + 1*22 + 1*21 + 1*20 = 8 + 4 + 2 + 1 = 15
• ¿Cuántos valores puede representar un byte?
– 1 byte = 8 bits (Ej: 01100101)
– Cada bit puede representar 2 valores (0 y 1)
– Un byte puede representar 28 = 256 valores

5
Almacenamiento, direccionamiento y
representación en memoria.
• La computadora digital utiliza internamente el sistema
binario (0, 1) (encendido, apagado) para el
almacenamiento y acceso a los datos.
• Un número binario (0 ó 1) se representa mediante un bit.
Las equivalencias son:
– 1 byte = 8 bits.
– 1 KiloByte (KB) = 1024 bytes.
– 1 MegaByte(MB) = 1024 KB.
– 1 GigaByte(GB) = 1024 MB.

• En la práctica la computadora digital utiliza el sistema de


numeración binario y sistemas relacionados (octal y
hexadecimal).
Almacenamiento.

• La memoria esta compuesta por celdas


que almacenan información.
• Cada celda se reconoce de manera única
por una dirección.
• Para acceder a una dirección, el CPU
envía señales en el bus de dirección .
Almacenamiento
• Un tamaño normal del bus es de 32 bits,
este permite acceder a 4,294,967,296
direcciones diferentes (232).
• Las direcciones de memoria se
representan mediante el sistema numérico
hexadecimal.
Representación de textos

TEXTO: My name is Anders.


ASCII: 77-121-32-110-97-109-101-32-105-115-32-65-110-100-101-114-115-46
18 bytes 9
Representación de imagen
00000000
00110110
00100010
00100010
00110110
00000000
00110110
00000000

• División de la imagen en una matriz de pixels (unidad


de la imagen)
• Cada pixel asociado con un color

10
Representación de sonido

4 8 12 13 12 10 8…

• Discretización de la amplitud
• Un byte para cada valor

11
Acceso a la memoria
RAM
1 12
2 125
3 45
4 2
5 0
CPU
6 10
7 32
8 64
9 15

12
Clasificación del software.
Definición de software.

• Es el conjunto de los programas de


cómputo, procedimientos, reglas,
documentación y datos asociados que
forman parte de las operaciones de un
sistema de computación.
Capas del software.
Tipos de software.
• Software de sistema. Como Sistemas
operativos, controladores de dispositivo,
herramientas de diagnóstico, etc.
• Software de programación. Editores de
texto, compiladores, IDE – como
Netbeans-, etc.
• Software de aplicación. Aplicaciones
ofimáticas, bases de datos, sistemas de
control, videojuegos, etc.
Software del sistema.
• Su objetivo es desvincular adecuadamente al
usuario y al programador de los detalles del
computador en particular, aislándolo
especialmente del procesamiento referido a las
características internas de: memoria, discos,
puertos y dispositivos de comunicaciones,
impresoras, pantallas, teclados, etc.
• El software de sistema le procura al usuario y
programador adecuadas interfaces de alto nivel,
herramientas y utilidades de apoyo que
permiten su mantenimiento.
Ejemplos de software del sistema.
• Sistemas operativos
• Controladores de dispositivo
• Herramientas de diagnóstico
• Herramientas de Corrección y Optimizació
n

• Servidores
• Utilidades
Software de aplicación.
• Aquel que permite a los usuarios llevar a
cabo una o varias tareas específicas, en
cualquier campo de actividad susceptible
de ser automatizado o asistido, con
especial énfasis en los negocios.
Ejemplos de software de
aplicación.
• Aplicaciones de Sistema de control y automatización industrial
• Aplicaciones ofimáticas
• Software educativo
• Software empresarial
• Bases de datos
• Telecomunicaciones (p.ej. internet y toda su estructura lógica)
• Videojuegos
• Software médico
• Software de Cálculo Numérico
• Software de Diseño Asistido (CAD)
• Software de Control Numérico (CAM)
¿Qué es un programa?
• Un programa es una secuencia de instrucciones a
la CPU
• Cada instrucción es un conjunto de bytes
• Ejemplos de instrucciones:
– Leer un dato del teclado
– Guardar un dato en la memoria
– Ejecutar una operación sobre dos datos
– Mostrar un dato en la pantalla
– etc.

20
Conceptos de programación.
Definición de programa.
•Un programa, o también
llamado programa informático,
programa de computación o
programa de ordenador, es
simplemente un conjunto de
instrucciones para una
computadora.
Programa
• Las computadoras necesitan de los
programas para funcionar, y un programa
no hace nada a menos que sus
instrucciones sean ejecutadas por el
procesador.
• Un programa se puede referir tanto a un
programa ejecutable como a su
código fuente, el cual es transformado en
un ejecutable cuando es compilado.
Definición de programación.
•La programación es un proceso el cual
consiste en escribir o editar el código
fuente.
•Editar el código fuente significa poner a
prueba, analizar y redefinir.
•La persona que tiene la habilidad para
programar se le llama programador o
desarrollador de software.
La primer programadora.
• Ada Lovelace, hija del
prestigioso poeta Lord
Byron, es considerada la
primera programadora de
la historia. Su contribución
consistió en un método
para calcular los números
de Bernoulli en la máquina
analítica de Charles
Babbage, matemático con
el que colaboraba en 1842.
El programador hoy.
• Hoy por hoy, un programador requiere
profundos conocimientos que incluyen:
matemáticas, electrónica, algorítmica,
ingeniería del software, teoría de la
computación, interacción persona-
ordenador, etc. Por tanto, se trata de una
profesión de alta calificación.
Definición de lenguaje de
programación.
• Un lenguaje de programación es un
conjunto de símbolos y reglas sintácticas y
semánticas que definen su estructura y el
significado de sus elementos y
expresiones. Es utilizado para controlar el
comportamiento físico y lógico de una
máquina.
Algunos “lenguajes de programación”.
Algoritmo
• Un esquema para resolver cierto tipo de problema
• Se puede traducir en un programa para ejecutarlo
en un ordenador
• Pasos para la resolución de un problema con
ordenador:
1. Diseño de un algoritmo
2. Codificación de un programa
3. Ejecución y validación

28
Algoritmo
• Componentes:
– Entrada: datos del problema a resolver
– Salida: el resultado de la resolución
– Proceso: pasos a seguir para la resolución
• Propiedades:
– Preciso: orden estricto + expresiones precisas
– Definido: con la misma entrada, siempre resulta la
misma salida
– Finito: número finito de pasos

29
Algoritmo 1
• Problema: Sumar dos números
• Solución:
– Entrada: dos números
– Salida: guardar la suma en la memoria y
imprimirla por pantalla
– Proceso:
1) Añadir los dos números
2) Guardar el resultado en la memoria
3) Imprimir el resultado por pantalla

30
Algoritmo 2
• Problema: hacer una taza de té a la inglesa
• Solución:
– Entrada: agua, bolsa de té, leche, tetera, taza,
cuchara
– Salida: una taza de té a la inglesa
– Proceso:
1. Poner la bolsa de té en la taza
2. Poner el agua a hervir en la tetera
3. Verter el agua hervida en la taza
4. Añadir leche
5. Remover

31
Algoritmo 3
• Problema: averiguar la solvencia de un cliente que
ejecuta un pedido a una fábrica.
• Solución:
– Entrada: el pedido
– Salida: mensaje de aceptación o rechazo
– Proceso:
1. Leer el pedido
2. Examinar la ficha del cliente
3. Si el cliente es solvente, aceptar pedido
4. En caso contrario, rechazar pedido

32
Características y formas de los
algoritmos
Los algoritmos pueden ser creados de dos
formas distintas:
1. Pseudo-código: es un conjunto pequeño y
claro de instrucciones; en secuencia, que
permite llevar a cabo una tarea.
2. Diagrama de flujo: es la representación de
la secuencia, a través de símbolos, de la
tarea que se va a realizar.
Características y formas de los
algoritmos

En pseudo-código
Inicio
Escribe: (“calcula el area de cualquier rectangulo”)
Escribe: (“de largo mide”)
Captura: (largo)
Escribe: (“de ancho mide”)
Captura: (“ancho”)
Formula: área = largo x ancho
Escribe: (“ el area mide:” , area)
fin
Características y formas de
los algoritmos
En diagrama de flujo
Entrada (in) Entrada (in)

inicio ancho largo

Salida (out)

área Área = largo x ancho


fin
Datos
Definición.
•El dato (del latín datum), es una
representación simbólica (numérica,
alfabética, algorítmica etc.), atributo o
característica de una entidad.
•En programación un dato es la expresión
general que describe las características de
las entidades sobre las cuales opera un
algoritmo.
Datos
• Un dato por sí mismo no constituye
información, es el procesado de los datos
lo que nos proporciona información.
Lenguajes de programación
• Un computador solo entiende lenguaje
binario
• Un procesador tiene un conjunto finito de
operaciones binarias
• Un programa de computador es una
secuencia de estas instrucciones
Lenguajes de programación

• Lenguajes máquina
• Lenguajes ensamblador
• Lenguajes de alto nivel: C, C++, Visual Basic, Java,
Pascal, Prolog, LISP,…

40
Lenguajes de programación
{Lenguaje Pascal}
program suma;

var x,s,r:integer; {declaración de las variables}


begin {comienzo del programa principal}
writeln('Ingrese 2 números enteros');{imprime el texto}
readln(x,s); {lee 2 números y los coloca en las variables x y s}
r:= x + s; {suma los 2 números y coloca el resultado en r}
writeln('La suma es ',r); {imprime el resultado}
readln;
end.{termina el programa principal}

;Lenguaje ensamblador, sintaxis Intel para procesadores x86


mov eax,1 ;mueve a al registro eax el valor 1
xor ebx, ebx ;pone en 0 el registro ebx
int 80h ;llama a la interrupción 80h (80h = 128 sistema decimal)
Lenguajes máquina
• Programas son secuencias de instrucciones compuestas
de bytes:
– 16 29 156 9 82 75
• Ventajas:
– La CPU entiende estos programas
• Desventajas:
– Pensar en modo de 0’s y 1’s es muy difícil para nosotros

42
Lenguajes ensamblador
• Instrucciones compuestas de palabras cortas y números:
– LOD 15 6
– LOD 16 8
– ADD 15 16 17
– JMP 10
• Ventajas:
– Más fácil a entender
• Desventajas:
– Todavía bastante abstracto
– Necesita traducir el código a lenguajes máquina

43
Lenguajes de alto nivel
• Diseñados para ser más parecidos a lenguaje natural
• Ventajas:
– Mucho más fácil de dar instrucciones
• Desventajas:
– Más complicado convertir en lenguajes máquina

44
Lenguajes de programación:
¿Por qué hay tantos?
¿Cómo nacen, sobreviven y caducan?
1. Diferentes dominios de aplicación:
• Programación de sistemas – rapidez y acceso de
bajo nivel: C
• Inteligencia artificial – computación simbólica: LISP,
Prolog
• Programación científica – fórmulas matemáticas:
Fortran
• Negocios – transacciones: COBOL
• Uso específico: SQL (bases de datos), Perl
(manipulación de textos), JavaScript (páginas web),
Pascal (formación)
45
Lenguajes de programación:
¿Por qué hay tantos?
¿Cómo nacen, sobreviven y caducan?
1. Diferentes necesidades:
• Fiabilidad: Ada
• Escabilidad, paradigma orientado a objeto: C  C++
• Portabilidad: Java
2. Evolución:
• Mejora del hardware
• Mejor comprensión de como reforzar criterios de
legibilidad, facilidad de aprender y escribir,
fiabilidad…
3. Importancia de la estandardización
4. ¡Número de usuarios! 46
Traductores de lenguaje:
intérpretes
PROGRAMA FUENTE

INTERPRETE

EJECUCION DE LA(S)
INSTRUCCION(ES)
INTERPRETADA(S)

47
Traductores de lenguaje:
compiladores
OPCION 1 OPCION 2
PROGRAMA FUENTE
Fase de compilación

Fase de compilación COMPILADOR


programa
ENLAZADOR objeto
programa
ejecutable (binder, linker)
Fase de ejecución

Fase de ejecución
EJECUCION

48
OUTPUT

HDD

INPUT
RAM

CPU
Programa de computador

INSTRUCCIÓN 1
INSTRUCCIÓN 2 OUTPUT
PROGRAMA INSTRUCCIÓN 3

RAM CPU INPUT

HDD
Programa de computador
PROGRAMA

Datos del
Código ejecutable programa
(variables)

RAM

También podría gustarte