You are on page 1of 91

Fundamentos de Programacin

Qu es una computadora? I
Dispositivo electrnico. Procesar informacin. Resultados.

Datos

e informacin de entrada(input). Procesamiento. Salida(output).

Que es una computadora? II

Hardware: Fsicos, dispositivos de entrada y salida.


Programa: Instrucciones que dan funcionalidad a una computadora. Software: Conjunto de programas.

Organizacin fsica de una computadora

Unidad de control. Unidad Aritmtico Lgica. Memoria principal. Programa. Dispositivos de entrada. Dispositivos de salida.

Organizacin Fsica de una Computadora

Unidad de Control
Coordina las operaciones de la computadora. Determina que operaciones deben realizarse y el orden.

Extraer de memoria instruccin a ejecutar. Determinar circuitos de la UAL a intervenir . Extraer de memoria principal los datos necesarios . Ordenar a la AUL efectuar operaciones . Si la instruccin a proporcionado nuevos datos estos son almacenados en la memoria principal Incrementar en una unidad el contenido del contador de instrucciones a ejecutar.

Unidad Aritmtico Lgica (UAL)

Operaciones aritmticas y lgicas.

Aritmticas como sumas, restas.


Logicas como operaciones (si, y, o, no).

Memoria Principal
RAM (Random Acces Memory). Almacena informacin:

Instrucciones.

Datos.

Programa ubicado en memoria. Datos necesarios para ejecucin del programa.

Memoria Principal
Se organiza en unidades de almacenamiento (celdas). Cada celda consta de un cierto nmero de bits. 1 carcter se representa en 1 Byte.

Hola

Facultad Sistemas PBT-8401

Memoria Principal
Cada celda tiene asociado una direccin. La informacin almacenada es su contenido. Al contenido se les denominan palabras. Existen palabras de 8, 16, 32, 64 bits.

Memoria Principal

Tipos de Memoria Principal

RAM: Random Access Memory, voltil.


ROM: Read Only Memory, solo de lectura, grabada por el fabricante.
No

se puede escribir. Se graba programas bsicos para el arranque de la computadora.

Organizacin Fsica de una Computadora

Memoria Cache

Almacenamiento intermedio entre memoria principal y procesador.

Codificacin

Cdigo EBCDIC (Extended Binary Coded Decimal Inter Change Code).


Este cdigo utiliza n = 8 bits. ste fue el primer cdigo utilizado para computadoras, aceptado en principio por IBM.

Cdigo ASCII (American Standard Code for Information Interchange).


El cdigo ASCII bsico utiliza 7 bits. y permite representar 128 caracteres (letras maysculas ASCII ampliado con 8 bits permite llegar a 28 (256) caracteres.

Cdigo Unicode

Este cdigo utiliza un patrn nico de 16 bits

Representacin de textos
Se representa mediante un cdigo (secuencia de bits) asignado. Los caracteres se agrupan en 5 categoras:

Caracteres

alfabticos: Letras maysculas y minsculas. Caracteres Numricos: 1,2,3,4,5,6,7,8,9,0 Caracteres Especiales: ,%,& Caracteres Geomtricos: , | Caracteres de Control: Retorno de carro.

Representacin Numrica
Ineficiente representarlos como caracteres. Notacin binaria mas eficiente.

Al

ingresar un valor numrico en la computadora , ste es almacenado como caracteres. Dentro del programa se especifica el tipo de dato (tarea). El compilador del lenguaje transforma los caracteres en su representacin binaria.

Representacin de caracteres

Codificacin, ms utilizada ASCII (American Standar Code for Information Interchange). Algunos lenguajes como java usan UNICODE.

Codificacin ASCII

Representacin de Imgenes

Mapas de bits: Coleccin de puntos.


BMP:

Microsoft. JPEG: Grupo JPEG.

Mapas de Vectores: Coleccin de objetos.

Algoritmo

Conjunto de reglas, ordenadas de forma lgica, para desarrollar un clculo o para solucionar un problema, ya sea de forma manual o utilizando una mquina. Es recomendable la utilizacin de un algoritmo como paso previo al desarrollo de un programa de computador. Debe tratarse que cada paso descrito en el algoritmo pueda ser reflejado mediante una instruccin en un lenguaje de programacin.

Pasos bsicos para la resolucin de un problema

Diseo del algoritmo: describir pasos ordenados para la solucin del problema dado.
Expresar el algoritmo en un lenguaje de programacin. Ejecucin y validacin del programa.

Caractersticas de un algoritmo
Independiente del lenguaje de programacin. Preciso: Orden de ejecucin de cada paso. Definido: El mismo resultado. Finito: Debe terminar en algn momento.

Definicin de un algoritmo

Debe describir 3 partes:


Entrada. Proceso. Salida.

Ejemplo:

Realizar la suma de los nmeros pares entre 2 y 1000.


2+4+6+8+10+..1000.

Lenguajes de programacin

Escribir programas que permitan la comunicacin usuario mquina.


Compiladores o interpretes convierten las instrucciones en lenguaje de mquina.

Lenguajes ms utilizados

Lenguaje de mquina
Lenguaje ensamblador(bajo nivel) Lenguaje de alto nivel

Lenguaje de mquina

Escritos en lenguaje inteligible para la computadora (0,1). Dependen del HW de la computadora. Ventaja: Velocidad de ejecucin superior. Desventajas:
Dificultad

y lentitud al codificar. Dificultad de verificacin.

Lenguaje bajo nivel (ensamblador)


Creados para permitir escribir programas en lenguajes similares al humano. Dependen del HW. Las instrucciones son llamadas nemotcnicos. ADD, SUB,DIV ADD M N P 0110 1001 1010 1011 Ensamblador FUENTE, traducido OBJETO

Lenguaje bajo nivel (ensamblador)

Reducido para desarrollo de aplicaciones. Aplicaciones tiempo real. Control dispositivos electrnicos.

Lenguajes de alto nivel


Ms fcil de entender. Independiente del HW. Ventajas:

Fcil

de aprender. Similares a los lenguajes humanos. Facilidad de comprobacin y actualizacin Portabilidad.

Lenguajes de alto nivel

Desventajas
Nmero

de traducciones para lenguaje de mquina. de utilizacin de memoria.

Aumento Ms

lentos en ejecucin.

Traducidos por los compiladores.

Diagrama de flujo de datos

Reflejan la secuencia de pasos realizados para la resolucin de un determinado problema.


Proceso
Entrada manual Documento Decisin Pantalla Entrada/Salidas Conector Inicio Fin

Ejemplo
inicio b= base h= altura

Calcular el rea y permetro de un rectngulo

area= b*h permetro= 2*(b+h) area permetro Fin

Pseudocodigo

Un pseudocdigo o falso Lenguaje, establecido en lenguaje natural como una serie de instrucciones parecida a los lenguajes de programacin, pero sin llegar a la rigidez de sintaxis. Permite codificar un programa con mayor agilidad que en cualquier lenguaje de programacin, con la misma validez semntica, normalmente se utiliza en las fases de anlisis o diseo de software.

Pseudocodigo

No puede ser ejecutado o interpretado por un PC. Describe un algoritmo utilizando una mezcla de frases en lenguaje natural. El objetivo del pseudocdigo es permitir que el programador se centre en los aspectos lgicos de la solucin, evitando las reglas de sintaxis de los lenguajes de programacin.

Programacin Modular
Divisin del programa en mdulos. Cada modulo ejecuta una actividad especifica.

Se codifican en forma independiente.

Programacin Estructurada

Tcnica en la cual la estructura de un programa, es construida mediante el uso de tres estructuras lgicas de control:

Secuencia: Sucesin simple de dos o mas operaciones. Seleccin: Bifurcacin condicional de una o ms operaciones. Repeticin: Repeticin de una operacin mientras se cumple una condicin.

Programacin Estructurada

NO SE UTILIZA SENTENCIAS TIPO:


GOTO IR Etc.

Para regresar a una lnea del programa anterior.

Teorema de la Programacin Estructurada

1966 Bohm Jacopini, demuestra que un programa propio puede ser resuelto utilizando nicamente las tres estructuras de control:
Secuencial. Seleccin.

Repeticin.

Programa Propio
Posee un solo punto de entrada. Posee un solo punto de salida. Existen caminos desde la entrada hasta la salida que se pueden seguir pasando por todo el programa. No existen lazos infinitos.

Estructura de control: SELECCION

Segn la condicin ejecuta uno u otro grupo de sentencias.


IF-THEN-ELSE

IF (Condicin) THEN (Bloque de sentencias 1) ELSE (Bloque de sentencias 2) END IF

Estructura de control: SELECCION

SELECT-CASE
SELECT (Expresin) CASE Valor1 (Bloque de sentencias 1) CASE Valor2 (Bloque de sentencias 2) CASE Valor n (Bloque de sentencias n) CASE ELSE (Bloque de sentencias "Else") END SELECT

Estructura de control: REPETICION

DO-WHILE
DO WHILE (Condicin) (Bloque de sentencias) LOOP

DO-UNTIL
DO (Bloque de sentencias) UNTIL (Condicin)

Estructura de control: REPETICION

FOR-NEXT
FOR (Variable= Expresin1) TO (Expresin2) STEP (Salto) (Bloque de sentencias) NEXT

Subalgoritmos o Subprogramas

Dividir problemas complejos (problemas ms sencillos). Diseo descendente. Desarrollo independiente.

Subalgoritmos o Subprogramas

Ejemplo:

rea del Rectngulo. Base X Altura. Impresin.

El problema principal es resuelto por el programa principal (llamado controlador). Hace llamado a subprogramas denominados procedimientos y funciones.

Subalgoritmos o Subprogramas

Procedimiento: Recibe datos desde el programa principal para procesarlos. Regresa el control al programa principal.

El control retorna al lugar donde fue llamado el subprograma.

Programa

Conjunto de instrucciones (ordenes dadas a la maquina), para producir la ejecucin de una determinada tarea. Fases en el desarrollo de un programa:
Definicin

del problema. Diseo del algoritmo. Codificacin. Depuracin y verificacin. Documentacin. Mantenimiento.

Elementos bsicos de un programa

Es necesario separar el diseo del algoritmo de la implementacin en un lenguaje.


Importante distinguir claramente los conceptos de programacin. Un lenguaje de programacin contiene elementos bsicos, el uso de estos elementos se especifican en reglas (sintaxis). Instrucciones sintcticamente correctas son aceptadas. Instrucciones sintcticamente errneas son rechazadas.

Elementos bsicos de un programa

Palabras reservadas (void, begin, public,). Identificadores (nombres: de variables, funciones, procedimientos,). Caracteres especiales(&&, ; ,.. ). Constantes. Variables. Expresiones (Combinacin de operadores). Instrucciones.

Tipos de datos Bsicos


Numricos( int, float,double). Lgicos (bool). Caracteres( char, string).

Datos Numricos

Valores numricos:
Enteros. Reales.

Datos Lgicos

Denominado booleano.
Toman el valor de TRUE o FALSE.

Datos Carcter y cadena.

Conjunto de caracteres que la computadora reconoce.


Caracteres

alfabticos. Caracteres numricos. Caracteres especiales.

Cadena de caracteres, sucesin de caracteres delimitados por o , depende del lenguaje de programacin.

Constantes

Valores que no cambian durante la ejecucin del programa. Menos memoria.

Variables

Nombre que empieza por una letra, puede estar formada por varios caracteres. Su valor puede variar durante la ejecucin del programa. Numricas. Alfanumricas. Booleanas.

Expresiones

Combinaciones de constantes, variables, smbolos de operacin, parntesis, nombres de funciones especiales, etc.
A+b*(C+d);
pepe+a.substring(1,2);

Instrucciones

Ejecutables y no ejecutables.

No ejecutables: Declaraciones, provee al computador caractersticas de las variables, informacin de formato.

Funciones internas

Llamadas tambin funciones de biblioteca.

Subproceso pre programado.


Todo lenguaje de programacin cuenta con funciones internas.

Ejemplo

Calcular el salario neto de un trabajador: De acuerdo al nmero de horas trabajadas, precio de la hora. Al salario se le hacen descuentos por concepto de impuestos equivalentes al 20% del salario bruto Inicio leer nombre, horas, precio_hora salario_bruto = horas * precio_hora impuestos =0.20 * salario_bruto salario_neto = salario_bruto - impuestos
escribir nombre,, salario_neto

Fin

Diagramas Estructurados Nassi/Schneiderman

El diagrama N-S o tambin conocido como diagrama de Chapin es una tcnica de especificacin de algoritmos que combina la descripcin textual, propia del pseudocdigo, con la representacin grfica del diagrama de flujo. Las palabras reservadas ms utilizadas son:
Inicio Fin Leer Escribir Mientras Repita Hasta Para Incrementar Decrementar Hacer Funcin Entero Real Caracter Cadena Lgico Retornar

Ejemplo

Calcular porcentaje de hombres y mujeres en un grupo

Estructuras De Control

Secuencia: Un conjunto de instrucciones ejecutadas en el mismo orden que ha sido escritas Condicionales:

Simples Mltiples

Repetitivas:

Mientras Desde Repetir

Condicionales (If)

Mediante la evaluacin de una expresin, se ejecuta una alternativa determinada. Se utilizan para tomar decisiones lgicas; de ah que se suelan denominar tambin estructuras de decisin o alternativas.

Representacin
Diagrama de Flujo Pseudocodigo
SI <CONDICIN> ENTONCES

Diagramas N/S CONDICIN? no

no Condicin
SINO

ACCIN .

si

ACCIN
.

si Accin
FIN_SI

Alternativas Multiples (Case)

Cuando existen ms de dos alternativas posibles, es cuando se presenta el caso de alternativas mltiples.

Representacin
Diagrama de Flujo Pseudocodigo
CASE <CONDICIN>

Diagramas N/S CONDICIN? otros 3


a3

no Condicin
1
a1

V1: a1
N= 1 2

V2: a2 4 V3: a3 V4: a4


a1 a2

2
a2 a3

3
a4

ELSE OTRAS
END_CASE

Repetitivas Mientras (WHILE)

MIENTRAS (WHILE) Se realiza una serie de instrucciones mientras la condicin se cumple

Representacin
Diagrama de Flujo Pseudocodigo
MIENTRAS <CONDICIN> HAGA

Diagramas N/S

no Condicin

A1 A2

Mientras Condicion A1
A2

FIN MIENTRAS

a1

a1

Repetir Hasta (Until)


HASTA (UNTIL) Se realiza una serie de instrucciones HASTA que la condicin se cumple

Representacin
Diagrama de Flujo
a1

Pseudocodigo
HAGA A1

Diagramas N/S

A1 A2

no Condicin

A2

HASTA QUE CONDICION

HAGA HASTA Condicion

a1

Arreglos

Arreglos: Son listas de datos del mismo tipo que pueden ser accedidos a travs de un ndice

Arreglos: Creacin

Arreglos: Inicializacin de Elementos

Lenguajes de programacin

Programar Plantear solucin a un problema mediante un Lenguaje de Programacin.


El Paradigma de Programacin condiciona la forma en que se expresa la solucin a un problema. El Lenguaje de Programacin (que se encuadra en un determinado paradigma) es la herramienta que permite expresar nuestra solucin.

Lenguajes de programacin

Los lenguajes de programacin son herramientas que nos permiten crear programas y software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java,Javascript etc.. Los lenguajes de programacin facilitan la tarea de programacin, ya que disponen de formas adecuadas que permiten ser ledas y escritas por personas, a su vez resultan independientes del modelo de computador a utilizar.

Lenguajes de programacin

Los lenguajes de " Alto Nivel" son los mas utilizados como lenguaje de programacin. En ese sentido se llama "Independientes de la maquina". Ejemplos de estos lenguajes de alto nivel son PASCAL , JAVA y FORTRAN ,COBOL C, ETC. Los "Lenguajes Ensambladores" y los "Lenguajes Maquina" son dependientes de la maquina. Cada tipo de maquina, tal como VAX de digital, tiene su propio lenguaje maquina distinto y su lenguaje ensamblador asociado.

Lenguajes de programacin

La programacin de un lenguaje de alto nivel requiere, de algn tipo de interfaz con el lenguaje maquina para que el programa pueda ejecutarse. Las interfaces mas comunes: un "compilador" y un "interprete". El compilador traduce el programa a otro equivalente en el lenguaje X de la maquina "residente" como un paso separado antes de la ejecucin. El interprete ejecuta directamente las instrucciones en un lenguaje Y de alto nivel, sin un paso de procesamiento previo.

Lenguajes de programacin

Hay lenguajes de programacin que utilizan compilador. 1) Traducir el programa simblico a cdigo mquina 2) Ejecucin y procesamiento de los datos. Otros lenguajes de programacin utilizan un programa intrprete o traductor, el cual analiza directamente la descripcin simblica del programa fuente y realiza las instrucciones dadas.

Lenguajes de programacin

El intrprete en los lenguajes de programacin simula una mquina virtual, donde el lenguaje de mquina es similar al lenguaje fuente. Mquina virtual: Software que crea un entorno virtual entre la plataforma de la computadora y su sistema operativo, de tal forma que un usuario final puede ejecutar programas en una Mquina Abstracta

Lenguajes de programacin: Mquina Virtual

Lenguajes de programacin: Mquina Virtual

Lenguajes de programacin

La ventaja del proceso interprete es que no necesita de dos fases para ejecutar el programa, sin embargo su inconveniente es que la velocidad de ejecucin es ms lenta ya que debe analizar e interpretar las instrucciones contenidas en el programa fuente.

Cuerpo del programa

Conformado por una serie de preposiciones, de diferentes tipos:


Declarativas:

Define las variables y elementos que participan en el programa Operacionales: Realizan operaciones con las variables Estructurales: Controlan el flujo del programa

Cuerpo del programa


Una variable se define como un identificador que se utiliza para almacenar todos los datos generados durante la ejecucin de un programa.
Claras

y con referencia directa al problema. No espacios en blanco, ni smbolos extraos en ellas. Se pueden usar abreviaturas, pero solo de carcter general. No deben ser palabras reservadas del lenguaje.

Ejemplo 1: Serie de Fibonacci

Serie de Fibonacci: es una sucesin de nmeros enteros que fue descrita por primera vez en Europa por Leonardo de Pisa, tambin conocido como Fibonacci.

Ejemplo 1: Serie de Fibonacci

Se obtiene mediante la siguiente funcin recursiva:

O sea, que se empieza con 0 y 1, y luego cada nmero es la suma de los dos anteriores.

Ejemplo 1: Serie de Fibonacci


n 0 1 F(n) 0 1

2
3 4

1
2 3

5
6 7 8 9 10 11 12

5
8 13 21 34 55 89 144

inicio

Ejemplo 1

Lea Numero trminos (N)

N1 = 1 T=1

Serie de Fibonacci
NO

Serie = T
ndice = 2 ndice >=2
SI
NO

ndice <= N-1


SI

N2 = N1

N1 = T
T = N1 + N2 Serie = Serie & T ndice = ndice +1 Serie = 1 & Serie serie FIN

Tomado de :
http://www.monografias.com/trabajos19/algoritmos/algoritmos.shtml http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo