Sunteți pe pagina 1din 7

Universidad Central de Venezuela

Escuela de Computacin
Algoritmo y Programacin

TEMA 1: INTRODUCCIN A LA PROGRAMACIN

CONCEPTOS BSICOS
Computador: Dispositivo electrnico utilizado para procesar datos en forma automtica y
obtener resultados los cuales pueden a su vez ser organizados y analizados para producir
informacin.
Hardware: es el conjunto de componentes fsicas que forman un computador, siendo las tres
componentes principales del hardware:
-La memoria principal o memoria RAM (Random Access Memory).
-La Unidad Central de Proceso o CPU.
-Los Dispositivos Perifricos.
Software: es el conjunto de programas (sistemas) que permiten la utilizacin de los recursos del
computador y comprende:
- Sistema Operativo: Software bsico encargado de controlar diferentes procesos en el
computador mediante tres grandes funciones: 1) Gestionar y controlar el hardware del
computador, 2) Organizar los archivos en diversos dispositivos de almacenamiento, como discos
flexibles, discos duros, cds., y 3) Gestionar los errores de hardware y la prdida de datos.
- Software de Aplicacin: Programa diseado para facilitar al usuario la realizacin de
trabajo especfico, que por supuesto estn desarrolladas 'a la medida'. Son ejemplos de este
tipo de software los programas que realizan tareas concretas como manejo de nmina, anlisis
de estadsticas, manejo de almacn, etc.
- Software Utilitario: Son programas que facilitan el uso del computador como
herramienta para solucionar actividades generales como la edicin de textos o la digitalizacin
de materiales. En muchos casos los programas utilitarios son agrupados en paquetes integrados
de software, por ejemplo el Microsoft Office o el OpenOffice en software libre, donde se ofrece
soluciones ms generales, pero se incluyen varias aplicaciones (procesador de textos, de hoja
de clculo, manejador de base de datos, correo electrnico, visor de imgenes, etc.).

Profesora. Silvia Diaz

Marzo 2008

Universidad Central de Venezuela


Escuela de Computacin
Algoritmo y Programacin

Estructura de un Computador (Arquitectura de Von Neumann)

La arquitectura Von Neumann se refiere a las arquitecturas de computadoras que utilizan el


mismo dispositivo de almacenamiento para las instrucciones y para los datos (a diferencia de la
arquitectura Harvard TE RECOMIENDO INVESTIGAR AL RESPECTO). El trmino se acu en
el ao 1945, escrito por el conocido matemtico John Von Neumann, que propuso el concepto de
programa almacenado.
Los ordenadores con arquitectura Von Neumann constan de las siguientes partes:
Memoria Principal: Es el subsistema donde se almacenan temporalmente los datos e
instrucciones que son utilizados por el computador. Esta informacin est representada en una
codificacin binaria de 0 y 1. La memoria se divide en celdas, donde cada celda tiene una
direccin nica, de tal forma que el contenido de ellas puede ser buscado, extrado y utilizado.
Unidad Central de Proceso (CPU o Procesador), quien a su vez est formada por:

La Unidad Lgico-Aritmtica (ALU)

La Unidad de Control (UC)


Los Dispositivo de Entrada/Salida, estn formados por:

La Memoria Secundaria: permite conservar datos y programas en forma permanente,


an luego de apagar el computador.

Los Dispositivos Perifricos: dispositivos utilizados para suministrar informacin entre el


computador y el exterior (monitor, teclado, ratn, tarjeta de red, impresoras, tarjetas de
memoria, escner, etc.)

El Bus: Permite la transferencia interna de datos que se manejan en un sistema


computacional en funcionamiento. En el Bus todos los nodos reciben los datos aunque
no se dirijan a todos los nodos, los nodos a los que no van dirigidos simplemente lo
ignoran.
Hay tres clases de buses:
1) Bus de Datos: Mueve los datos entre los dispositivos del hardware de Entrada como el

Teclado, el Escner, el Ratn, etc.; de salida como la Impresora, el Monitor o la tarjeta de


Sonido; y de Almacenamiento como el Disco Duro, el Disquete o la Memoria Flash.
Estas transferencias que se dan a travs del Bus de Datos son gobernadas por varios
dispositivos y mtodos, de los cuales el Controlador PCI ("Peripheral Component Interconnect")

Profesora. Silvia Diaz

Marzo 2008

Universidad Central de Venezuela


Escuela de Computacin
Algoritmo y Programacin

o Interconexin de Componentes Perifricos, es uno de los principales. Su trabajo equivale,


simplificando el asunto, a una central de semforos para el trfico en las calles de una ciudad.
2) Bus de Direcciones: El Bus de Direcciones, por otra parte, est vinculado al bloque de
Control de la CPU para tomar y colocar datos en el Sub-sistema de Memoria durante la
ejecucin de los procesos de cmputo.
3) Bus de Control: El Bus de Control transporta seales de estado de las operaciones
efectuadas por el CPU con las dems unidades.
En la siguiente figura podrs observar los componentes que forman la arquitectura de Von
Neumann.

LENGUAJES DE PROGRAMACIN

El computador slo entiende un lenguaje conocido como cdigo binario o cdigo mquina,
consistente en ceros y unos. Es decir, slo utiliza 0 y 1 para codificar cualquier accin. Los
lenguajes de programacin sirven para escribir programas que permitan la comunicacin
usuario/mquina y la solucin de problemas utilizando las ventajas, poder de clculo,
procesamiento y almacenamiento del computador.
Los lenguajes ms prximos al hardware se denominan lenguajes de bajo nivel y los que se
encuentran ms cercanos a los programadores y usuarios se denominan lenguajes de alto nivel.
Lenguajes de bajo nivel
Son prcticamente diseados a medida del hardware por lo tanto aprovechan al mximo las
caractersticas del mismo.
Dentro de este grupo se encuentran:
Profesora. Silvia Diaz

Marzo 2008

Universidad Central de Venezuela


Escuela de Computacin
Algoritmo y Programacin

El lenguaje mquina: este lenguaje ordena a la mquina las operaciones fundamentales


para su funcionamiento. Consiste en la combinacin de 0's y 1's para formar las ordenes
entendibles por el hardware de la mquina. Este lenguaje es mucho ms rpido que los
lenguajes de alto nivel. La desventaja es que son bastantes difciles de manejar y usar,
adems de tener cdigos fuente enormes donde encontrar un fallo es casi imposible.

El lenguaje ensamblador: es un derivado del lenguaje mquina y esta formado por


abreviaturas de letras y nmeros llamadas nemotcnicos. Con la aparicin de este
lenguaje se crearon los programas traductores quienes se encargar de traducir los
programas escritos en lenguaje ensamblador a lenguaje mquina. Como ventaja con
respecto al cdigo mquina es que los cdigos fuentes eran ms cortos y los programas
creados ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo
prcticamente las mismas que las del lenguaje ensamblador, aadiendo la dificultad de
aprender un nuevo lenguaje difcil de probar y mantener.

Lenguajes de alto nivel


Son aquellos que se encuentran ms cercanos al lenguaje natural que al lenguaje mquina. Se
tratan de lenguajes independientes de la arquitectura del computador. Por lo que, en principio, un
programa escrito en un lenguaje de alto nivel, lo puedes migrar de una mquina a otra haciendo
los cambios necesarios que aplicaran sin fuese el caso.
Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la
mquina en la que se est diseando el programa.
ALGORITMO
Es una lista finita y sucesiva de pasos que permiten obtener una solucin a un problema. Para
un mismo problema pueden existir muchos algoritmos que conducen a su solucin. La eleccin
del mejor algoritmo casi siempre est guiada por criterios de eficiencia y eficacia.
Es un conjunto bien definido de procedimientos lgicos o matemticos que se pueden seguir
para resolver un problema.
Aunque su popularidad est asociada al rea de la computacin el trmino proviene de
Mohammed al-Khowarizmi, matemtico persa que vivi durante el siglo IX y alcanz gran
reputacin por el enunciado de las reglas paso a paso para sumar, restar, multiplicar y dividir
nmeros decimales; la traduccin al latn del apellido en la palabra algorismus que deriv
Profesora. Silvia Diaz

Marzo 2008

Universidad Central de Venezuela


Escuela de Computacin
Algoritmo y Programacin

posteriormente en algoritmo. Euclides, matemtico griego del siglo IV a.c, que invent el mtodo
para encontrar el mximo comn divisor de dos nmeros se considera el otro gran padre de la
algoritmia.
Los algoritmos pueden escribirse en lenguaje natural, por ejemplo: una receta de cocina escrita
en espaol, o en pseudoformal el cual permite una representacin intermedia entre el lenguaje
natural y los lenguajes de programacin (ste ser el lenguaje que utilizaremos en las clases de
teora de la materia).
Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan como
de la computadora que los ejecuta. Un mismo algoritmo se puede traducir a dos o ms lenguajes
de programacin por ejemplo: Java, Visual Basic, C, Pascal, etc; slo deben considerarse las
reglas de sintaxis que apliquen en cada caso.
Caractersticas de los algoritmos
Las caractersticas fundamentales que debe cumplir todo algoritmo son:

Un algoritmo debe ser preciso e indicar el orden de realizacin de cada paso.

El resultado del algoritmo debe estar definido. Si se sigue un algoritmo dos veces con los
mismos datos de entrada, se debe obtener el mismo resultado cada vez.

Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algn


momento, es decir, se debe tener un nmero finito de pasos.

PSEUDO-CDIGO
En un algoritmo expresado de manera ms formal. Se utiliza como una representacin
intermedia entre el lenguaje natural y los lenguajes de programacin.
PROGRAMA
Es el conjunto de instrucciones que definen la secuencia de eventos que un computador debe
ejecutar para llevar a cabo una tarea, realizando clculos y suministrando resultados. Un
programa est codificado en un lenguaje que la mquina es capaz de entender y procesar.
La definicin de un programa en un determinado lenguaje de programacin cubre tres aspectos:
1. Lxico: definen los smbolos que sirven para la redaccin de un programa y las reglas
para la formacin de palabras en el lenguaje. Por ejemplo, 10 es un nmero entero
2. Sintaxis: conjunto de reglas que permiten organizar las palabras del lenguaje en frases,
Profesora. Silvia Diaz

Marzo 2008

Universidad Central de Venezuela


Escuela de Computacin
Algoritmo y Programacin

por ejemplo, la operacin de divisin se define como Dividendo/Divisor


3. Semntica: definen las reglas que dan sentido a una frase
La calidad de un programa se mide considerando los siguientes aspectos:

Legibilidad

Robustez

Eficiencia

Adaptabilidad

Reusabilidad del software

Eficacia
Portabilidad

INVESTIGA ACERCA DE ESTOS CONCEPTOS


ABSTRACCIN
Mecanismo intelectual principal en la actividad de anlisis y solucin de un problema, el cual
permite la separacin de los aspectos relevantes de los irrelevantes en el contexto estudiado.
Por ejemplo, si el problema consiste en determinar cul es la persona ms alta del saln, lo
relevante es la estatura de cada persona, y no color de ojos, talla de calzado, etc.
ANALOGA
Es el proceso mediante el cual se puede establecer una relacin entre el problema que se
pretende solucionar y otros, cuya solucin es conocida; considerando los elementos de diferente
ndole: mtodos, acciones a seguir, datos, resultados, que puede ser similares, permitiendo
as que el proceso de anlisis sea mucho ms sencillo.
ENFOQUES PARA SOLUCIONAR UN PROBLEMA
1. Programacin Modular.
2. Enfoque Divide y Vencers.
3. Diseo Descendente (top-down).
INVESTIGA ACERCA DE ESTOS ENFOQUES

FASES EN LA RESOLUCIN DE PROBLEMAS


1. Anlisis del problema: El problema se analiza teniendo en cuenta los requerimientos o
necesidades expresadas por el cliente, la empresa o las personas que utilizaran el

Profesora. Silvia Diaz

Marzo 2008

Universidad Central de Venezuela


Escuela de Computacin
Algoritmo y Programacin

programa.
2. Diseo del algoritmo (utilizando pseudo-cdigo): Una vez analizado el problema se
disea una solucin que conduce a un algoritmo que resuelve los elementos ms
significativos del programa.
3. Codificacin (utilizando un lenguaje de programacin): La solucin expresada en
pseudocdigo se traduce a un programa que el computador pueda procesar utilizando
un lenguaje de programacin de alto nivel.
4. Compilacin, Ejecucin y Verificacin: El programa se ejecuta (corre) y se verifica
para eliminar errores de programacin o de lgica.
5. Documentacin: Se agregan al cdigo del programa lneas de texto que ayudan al
programador y a las personas que a futuro harn mantenimiento al software a entender
su estructura y comportamiento. Cuando el programa que se est creando no tiene una
solucin trivial es recomendable agregar estas lneas de texto al mismo tiempo que se
hace la implementacin.
La documentacin tambin incluye escribir informes en donde se describe cmo se
realizaron las diferentes fases (en especial los procesos de anlisis, diseo, codificacin
y prueba), se agregan manuales de usuario y de referencia, as como normas para el
mantenimiento.
6. Depuracin y Mantenimiento: El programa se actualiza y modifica en la medida en que
sea necesario de manera que cumpla con las necesidades de los usuarios las cuales
tambin cambian en el tiempo.
BIBLIOGRAFA

JOYANES, Luis. Fundamentos de Programacin: Algoritmos y Estructuras de Datos


3era. Edicin. McGraw-Hill, 2003. Disponible en libro de teora y libro de problemas.
CARBALLO, Yusneyi. Gua de clases y ejercicios
Escuela de Computacin. Recopilaciones varias desde 2004. Disponibles en la pgina:
http://www.ciens.ucv.ve/algoritmosyprogramacion/paraRevisar.htm
No Olvides consultar frecuentemente nuestra Pgina

http://www.ciens.ucv.ve/algoritmosyprogramacion/

Profesora. Silvia Diaz

Marzo 2008

S-ar putea să vă placă și