Anda di halaman 1dari 29

FUNDAMENTOS DE PROGRAMACIN

Componentes del Computador


Hardware
El termino hardware se usa para los elementos del
computador que son tangibles, es decir, es el conjunto de
componentes fsicos de un computador.

Unidad Central de Proceso


Subsistema de Entrada / Salida
Subsistema de Memoria

Software
Se denomina software a todos los componentes
intangibles de un computador, es decir, al conjunto de
programas y procedimientos necesarios para hacer
posible la realizacin de una tarea especfica.
o Software de Sistema
o Software de Programacin
o Software de Aplicacin

Sistema Operativo
Un sistema operativo (SO) es un conjunto de programas
destinados a permitir la comunicacin del usuario con el
computador y gestionar sus recursos de manera eficiente.
Componentes:
Llamadas al Sistema.
Intrprete de Comandos.
Ncleo (o Kernel).
Programas del Sistema.
Programas de Aplicacin
Clasificacin:
Monousuario / Multiusuario
Monotarea / Multitarea

Lenguajes de Programacin
Un lenguaje de programacin es una tcnica estndar de
comunicacin que permite expresar las instrucciones que
deben ser ejecutadas en un computador.
Consiste en un conjunto de reglas sintcticas y semnticas
que definen un lenguaje informtico.
A grandes rasgos los podemos clasificar en:

Lenguaje de Mquina

El lenguaje mquina es el nico que entiende directamente la computadora, utiliza el


alfabeto binario que consta de los dos nicos smbolos 0 y 1, denominados bits (abreviatura
inglesa de dgitos binarios).

Lenguajes de Bajo Nivel

Un lenguaje de programacin de bajo nivel es aquel en el que sus instrucciones ejercen un


control directo sobre el hardware y estn condicionados por la estructura fsica de la
computadora que lo soporta.

Lenguajes de Alto Nivel

Son aquellos que permiten una mxima flexibilidad al programador a la hora de abstraerse o
de ser literal. Permiten un camino bidireccional entre el lenguaje mquina y una expresin
casi oral entre la escritura del programa y su posterior compilacin. Estos lenguajes estn
orientados a objetos. Los objetos se componen de propiedades cuya naturaleza emerge de
procedimientos.
4

ALGORITMOS
Los computadores hacen lo que se les indica que hagan
No debe existir ambigedades en las instrucciones que se les
proporcione.
No debe haber la posibilidad de otras interpretaciones
Hay que tener cuidado de que exista una sola alternativa
Un algoritmo es una secuencian ordenada de pasos libre de
ambigedades, que lleva a la solucin de un problema dado en un
tiempo finito.

Problemas y Soluciones
Un problema es una abstraccin de la realidad para la cual nos interesa
conocer una solucin.
Una solucin es un procedimiento o mtodo para establecer el
mecanismo de transformacin del mundo que nos lleve a satisfacer
ciertos requerimientos.

Resolucin De Problemas
Resolver un problemas muchas veces no es trivial, ya que es
necesario comprender qu se quiere resolver, encontrar las
herramientas adecuadas para resolver el problema, y luego
implementar la solucin con las herramientas disponibles.

Problema

Solucin

Problema
Resuelto

Qu Es Un Modelo?

Se entender por modelo a toda


estructura que se utiliza para
abstraer de la realidad a un conjunto
de acciones o fenmenos que
guardan entre s ciertas relaciones.

El diseo e implementacin de un
modelo
es
fundamental
en
bsqueda de la solucin de
problemas computacionales.

Qu Es Un Algoritmo?
Un algoritmo es un procedimiento
detallado y preciso para resolver un
problema en pasos (o etapas), cada uno
de los cuales toma un tiempo finito.
Se puede definir tambin a un algoritmo
como un conjunto ordenado y finito de
operaciones que permite hallar la
solucin de un problema.

Cmo Escribir Un Algoritmo?

Al describir un algoritmo es necesario ser lo ms preciso posible, de modo que


sea sencillo implementar el procedimiento especificado.

Es necesario entonces:

Definir una serie de operaciones bsicas con las cuales se har la


especificacin.
A partir de las operaciones definidas, se debe proceder a enumerar los
pasos que componen el algoritmo.
En esta etapa se debe tener en consideracin el control de flujo del
mismo:
Secuencia
Decisin
Iteracin

Caractersticas de los algoritmos


El cientfico de computacin Donald Knuth ofreci una
lista de cinco propiedades, que son ampliamente
aceptadas como requisitos para un algoritmo:
Carcter finito. "Un algoritmo siempre debe terminar
despus de un nmero finito de pasos".
Precisin. "Cada paso de un algoritmo debe estar
precisamente definido; las operaciones a llevar a cabo
deben ser especificadas de manera rigurosa y no
ambigua para cada caso".

Entrada. "Un algoritmo tiene cero o ms entradas:


cantidades que le son dadas antes de que el
algoritmo comience, o dinmicamente mientras el
algoritmo corre. Estas entradas son tomadas de
conjuntos especficos de objetos".
Salida. "Un algoritmo tiene una o ms salidas:
cantidades que tienen una relacin especfica con
las entradas".

Eficacia. "Tambin se espera que un algoritmo sea


eficaz, en el sentido de que todas las operaciones a
realizar en un algoritmo deben ser suficientemente
bsicas como para que en principio puedan ser
hechas de manera exacta y en un tiempo finito por
un hombre usando lpiz y papel".

LA RESOLUCIN DE PROBLEMAS

La principal razn para que las personas aprendan a programar


en general y los lenguajes de programacin en particular es
utilizar la computadora como una herramienta para la resolucin
de problemas. Ayudado por una computadora, la resolucin de
un problema se puede dividir en tres fases importantes:

1.-Anlisis del problema.


2.-Diseo o desarrollo del algoritmo.
3.-Resolucin del algoritmo en la computadora.

ANLISIS DEL PROBLEMA


El propsito del anlisis de un problema, es ayudar al
programador para llegar a una cierta comprensin de la
naturaleza del problema. El problema debe estar bien definido
si ase desea llegar a una solucin satisfactoria.
Para poder definir con precisin el problema se requiere que
las especificaciones de entrada y salida sean descritas con
detalle. Una buena definicin del problema, junto con una
descripcin detallada de las especificaciones de entrada y
salida, son los requisitos ms importantes para llegar a una
solucin eficaz.
El anlisis del problema exige una lectura previa del problema
a fin de obtener una idea general de lo que se solicita.

La segunda lectura deber servir para resolver a las


preguntas:
Qu informacin debe proporcionar la resolucin del
problema?
Qu datos se necesitan para resolver el problema?
La respuesta a la primera pregunta indicar los resultados
deseados a las salidas del problema.
La respuesta a la segunda pregunta indicar que datos se
proporcionan a las entradas del problema.

Ejemplo:
Leer el radio de un circulo y calcular e imprimir su superficie y la longitud de
la circunferencia.

ANALISIS.
Las entradas de datos en este problema se concentran en el
radio del circulo. Dado que el radio puede tomar cualquier
valor dentro del rango de los nmeros reales, el tipo de datos
radio debe ser real.
Las salidas sern dos variables: superficie y circunferencia, que
tambin sern de tipo real.

Entradas: radio del circulo(variable RADIO).


Salidas: superficie del circulo(variable Area).
Circunferencia del circulo(variable Circunferencia).
Variables: Radio, rea y circunferencia (tipo real).

DISEO DEL ALGORITMO.


Una computadora no tiene capacidad para solucionar
problemas mas que cuando se le proporcionan los
sucesivos pasos a realizar. Estos pasos sucesivos que
indican las instrucciones a ejecutar por la maquina,
constituyen, como ya conocemos, el algoritmo.
La informacin proporcionada al algoritmo, constituye su
entrada y la informacin producida por el algoritmo
constituye su salida.
Los problemas complejos se pueden resolver mas
eficazmente con la computadora, cuando se rompen en sub
problemas que sean ms fciles de solucionar que el
original. Este mtodo se suele denominar divide y vencers
(divide and conquer) que consiste en dividir un problema
complejo en otros ms simples

As el problema de encontrar la superficie y longitud de un


circulo se puede dividir en tres problemas ms simples o
subproblemas
La descomposicin del problema original en subproblemas
ms simples y a continuacin dividir estos subproblemas en
otros ms simples que pueden ser implementados para su
solucin en la computadora se denomina diseo
descendente (top-down design).
Normalmente los pasos diseados en el primer esbozo del
algoritmo son incompletos e indicaran solo unos pocos
pasos.
Tras esta primera descripcin, estos se amplan en una
descripcin mas detallada con ms pasos especficos.
Para problemas complejos se necesitan con frecuencia
diferentes niveles de refinamiento antes de que se pueda
obtener un algoritmo claro, preciso y completo.

Escritura inicial del algoritmo.


Como ya se ha comentado anteriormente, el sistema para
describir (escribir) un algoritmo consiste en realizar una
descripcin paso a paso con un lenguaje natural del citado
algoritmo.

Recordemos que un algoritmo es un mtodo o un conjunto


de reglas para solucionar un problema.
En clculos elementales estas reglas tienen las siguientes
propiedades:
deben de estar seguidas de algunas secuencias definidas
de pasos hasta que se obtenga un resultado coherente
Slo puede ejecutarse una operacin a la vez.

PSEUDOCDIGO
El pseudocdigo es un lenguaje de especificacin (descripcin)
de algoritmos. El uso de tal lenguaje hace el paso de
codificacin final (esto es, la traduccin a un lenguaje de
programacin) relativamente fcil.

El pseudocdigo naci como un lenguaje similar al ingles y era


un medio de representar bsicamente las estructuras de control
de programacin estructurada.
Se considera un primer borrador, dado que el pseudocdigo
tiene que traducirse posteriormente a un lenguaje de
programacin.

PSEUDOCDIGO
El pseudocdigo no puede ser ejecutado por una computadora.

La ventaja del pseudocdigo es que en su uso, en la


planificacin de un programa, el programador se puede
concentrar en la lgica y en las estructuras de control y no
preocuparse de las reglas de un lenguaje especifico.
Es tambin fcil modificar el pseudocdigo si se descubren
errores o anomalas en la lgica del programa, mientras que en
muchas ocasiones suele ser difcil el cambio en la lgica, una vez
que esta codificado en un lenguaje de programacin.
Otra ventaja del pseudocdigo es que puede ser traducido
fcilmente a lenguajes estructurados

SINTAXIS DEL PSEUDOCDIGO


Todo nombre de programa, procedimiento, funcin, proceso,
constante o variable, es una secuencia de caracteres que se
inicia siempre con una letra, acompaada de otras letras, dgitos
y el carcter de subrayado(_)
No pueden haber espacios en blanco o guiones en los nombres
y deben escribirse siempre con Mayscula.
Todo algoritmo empieza con la palabra Programa seguida del
nombre del programa.
Un proceso est constituido por un conjunto de instrucciones
que cumplen un objetivo determinado.
Al final de cada instruccin o sentencia del programa se pondr
un punto y coma (;), con el fin de separar cada instruccin,
excepto en la ltima instruccin del proceso.

SINTAXIS DEL PSEUDOCDIGO


El conjunto de instrucciones del programa, de un
procedimiento, de una funcin y de un proceso, debe ir entre
delimitadores para indicar su inicio y su final.
Las instrucciones de un proceso se escribirn con sangra
respecto a sus delimitadores para resaltar dicho proceso.
En cualquier instruccin se puede incluir comentarios, estos no
afectan al programa, sirven como aclaracin. Los comentarios se
inician con * y terminan con *
Las asignaciones o transferencias de valores se indican con el
smbolo <- Todo programa termina con un punto (.) y todo procedimiento o
funcin con un punto y coma (;).

ESTRUCTURA DE UN PROGRAMA
Programa NOMBRE
Const
CONSTANTES

Var
VARIABLES

Inicia
INSTRUCCIONES

Fin Programa NOMBRE.

Ejemplo: Disear un algoritmo para cambiar una llanta pinchada de un auto.


Programa CAMBIO_RUEDA;
Utiliza:
AUTO; (* Automvil que se va a cambiar la llanta *)
PINCHADA; (*llanta pinchada*)
REPUESTO; (* Llanta de repuesto *)
GATO;
SERVICIO; (* Estacin de servicio *)
TORNILLOS; (*Tornillos de sujecin de las llantas*)
Inicia CAMBIO_RUEDA
Si GATO esta averiado Entonces
Llamar a SERVICIO
Caso Contrario
Levantar el AUTOMOVIL con el GATO
Repetir
Aflojar y sacar TORNILLOS
Hasta que TORNILLOS estn flojos y quitados;
quitar PINCHADA;
poner REPUESTO;
Repetir
Poner TORNILLOS y apretarlos
Hasta que TORNILLOS estn puestos;
Bajar el GATO
Fin Programa CAMBIO_RUEDA.