Está en la página 1de 27

Fundamentos de

Programacin/Programacin I
Carlos Benavides
2014
2
Administracin
Horario:
Lunes ,Miercoles, y Viernes
17:00 a 1900

Teora: Lunes Aula A2-9
Prctica: P1 Mircoles , Sala 1
P2 Viernes, Sala E I.Civil

3
Administracin
Evaluacin: Cada Hemisemestre
Deberes, Actuacin: 20%
Prueba de Control: 30%
Examen : 50%

Se enviarn lecturas relacionadas a temas de la
materia

Objetivo
Mostrar los fundamentos de la programacin,
de modo que al final del curso, el estudiante
ser capaz de disear algoritmos bsicos y
sencillos mediante ejercicios prcticos
utilizados cotidianamente en el desarrollo de
aplicaciones de software, con ayuda de las
diferentes tcnicas algortmicas, con la
finalidad de formarse una mentalidad de
programador.

CONTENIDO
I Fundamentos de Programacin -
Algoritmos
II Programacin Estructurada
III Introduccin a la Programacin
Orientada a Objetos
IV Fundamentos de Java


6
Clase de introduccin
1. Qu es un ordenador?
2. Programas y algoritmos
3. Lenguajes de programacin


7
Qu es un ordenador?
Un sistema digital con tecnologa microelectrnica
capaz de procesar informacin 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.
8
Elementos de un ordenador
Memoria Principal
(RAM)
Unidad de
Control (CU)
Unidad aritmetica
y logica (ALU)
Programa
Dispositivos de entrada Dispositivos de salida Dispositivos de
almacenamiento de datos
teclado
ratn
pantalla
impresora
disco duro
lector/grabador de CD-ROM
lector/grabador de disquete
Procesador
(CPU)
(hardware)
9
Representacin de los datos
en el ordenador
El nico cdigo que entiende la CPU son los bits.
Los bits son representados en circuitos electrnicos
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
10
Representacin de los datos
en el ordenador
Base 10:
Dgitos = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
1111 = 1*10
3
+ 1*10
2
+ 1*10
1
+ 1*10
0
Base 2:
Dgitos = {0, 1}
1111 = 1*2
3
+ 1*2
2
+ 1*2
1
+ 1*2
0
= 8 + 4 + 2 + 1 = 15
Cuntos valores puede representar un byte?
1 byte = 8 bits (Ej: 01100101)
Cada bit puede representar 2 valores (0 y 1)
Un byte puede representar 2
8
= 256 valores
11
Representacin 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
12
Representacin de imagen
Divisin de la imagen en una matriz de pixels (unidad
de la imagen)
Cada pixel asociado con un color
0 0 0 0 0 0 0 0
0 0 1 1 0 1 1 0
0 0 1 0 0 0 1 0
0 0 1 0 0 0 1 0
0 0 1 1 0 1 1 0
0 0 0 0 0 0 0 0
0 0 1 1 0 1 1 0
0 0 0 0 0 0 0 0
13
Representacin de sonido
Discretizacin de la amplitud
Un byte para cada valor
4 8 12 13 12 10 8
El Software
Las operaciones que debe realizar el
hardware son especificadas con una lista
de instrucciones, llamadas programas o
software.
Dos grandes grupos de software
Software del Sistema
Indispensable para que la mquina funcione y
poder escribir programas de aplicacin
Software de Aplicacin
Realizan tareas concretas que tienen utilidad para
ciertos usuarios
15
Qu es un programa?
Un programa es una secuencia de instrucciones a
la CPU
Cada instruccin es un conjunto de bytes
Ejemplos de instrucciones:
Leer un dato del teclado
Guardar un dato en la memoria
Ejecutar una operacin sobre dos datos
Mostrar un dato en la pantalla
etc.
16
Algoritmo
Un esquema para resolver cierto tipo de problema
Se puede traducir en un programa para ejecutarlo
en un ordenador
Pasos para la resolucin de un problema con
ordenador:
1. Diseo de un algoritmo
2. Codificacin de un programa
3. Ejecucin y validacin
17
Algoritmo
Componentes:
Entrada: datos del problema a resolver
Salida: el resultado de la resolucin
Proceso: pasos a seguir para la resolucin
Propiedades:
Preciso: orden estricto + expresiones precisas
Definido: con la misma entrada, siempre resulta la
misma salida
Finito: nmero finito de pasos
18
Algoritmo 1
Problema: Sumar dos nmeros
Solucin:
Entrada: dos nmeros
Salida: guardar la suma en la memoria y
imprimirla por pantalla
Proceso:
1) Aadir los dos nmeros
2) Guardar el resultado en la memoria
3) Imprimir el resultado por pantalla
19
Algoritmo 2
Problema: hacer una taza de t a la inglesa
Solucin:
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. Aadir leche
5. Remover

20
Algoritmo 3
Problema: averiguar la solvencia de un cliente que
ejecuta un pedido a una fbrica.
Solucin:
Entrada: el pedido
Salida: mensaje de aceptacin 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
Lenguajes de Programacin
(1/2)
Lenguajes utilizados para escribir
programas de computadoras que puedan
ser entendidos por ellas
Se clasifican en tres grandes categoras
lenguajes de mquina
instrucciones directamente entendibles por la
computadora (lenguaje binario)
lenguajes de bajo nivel
Proveen un juego de instrucciones ms
comprensibles por los humanos
lenguajes de alto nivel
Lenguajes de Programacin (2/2)


Lenguajes de alto nivel
Utilizan instrucciones escritas con palabras similares a
los lenguajes humanos
Son independientes de la mquina en la que se
ejecutan
Necesitan ser traducidos a instrucciones en lenguaje
mquina (Compilacin)
Existen diversos tipos
Estructurados
Orientados a Objetos
Declarativos
Funcionales
23
Lenguajes mquina
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 0s y 1s es muy difcil para nosotros
24
Lenguajes ensamblador
Instrucciones compuestas de palabras cortas y nmeros:
LOD 15 6
LOD 16 8
ADD 15 16 17
JMP 10
Ventajas:
Ms fcil a entender
Desventajas:
Todava bastante abstracto
Necesita traducir el cdigo a lenguajes mquina
25
Lenguajes de alto nivel
Diseados para ser ms parecidos a lenguaje natural
Ventajas:
Mucho ms fcil de dar instrucciones
Desventajas:
Ms complicado convertir en lenguajes mquina
26
Lenguajes de programacin:
Por qu hay tantos?
Cmo nacen, sobreviven y caducan?
1. Diferentes dominios de aplicacin:
Programacin de sistemas rapidez y acceso de
bajo nivel: C
Inteligencia artificial computacin simblica: LISP,
Prolog
Programacin cientfica frmulas matemticas:
Fortran
Negocios transacciones: COBOL
Uso especfico: SQL (bases de datos), Perl
(manipulacin de textos), JavaScript (pginas web),
Pascal (formacin)



27
Lenguajes de programacin:
Por qu hay tantos?
Cmo nacen, sobreviven y caducan?
1. Diferentes necesidades:
Fiabilidad: Ada
Escabilidad, paradigma orientado a objeto: C C++
Portabilidad: Java
2. Evolucin:
Mejora del hardware
Mejor comprensin de como reforzar criterios de
legibilidad, facilidad de aprender y escribir,
fiabilidad
3. Importancia de la estandardizacin
4. Nmero de usuarios!

También podría gustarte