Guia2.Acosta.chanatasig.erika.realidad Nacional y Geopolitica 1
Guia2 Programacion
-
Upload
edwin-j-ortega -
Category
Documents
-
view
214 -
download
0
Transcript of Guia2 Programacion
-
7/30/2019 Guia2 Programacion
1/7
Principios de
1
ProgramacionGua de trabajo 02
Universidad Santiago de CaliFacultad de ingenieraProf: Ing. Edwin J. Ortega Z.
Colombia 2013
-
7/30/2019 Guia2 Programacion
2/7
Algoritmia y ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP02
2
Definicin de lenguaje de programacin
Un programa es un conjunto de rdenes para un computador. Estas rdenes se le deben dar en uncierto lenguaje, que el computador sea capaz de comprender.
El problema es que los lenguajes que realmente entienden los computadores resultan difciles para
nosotros, porque son muy distintos de los que nosotros empleamos habitualmente para hablar.
Escribir programas en el lenguaje que utiliza internamente
el computador (llamado lenguaje mquina o cdigo
maquina) es un trabajo duro, tanto a la hora de crear el
programa como (especialmente) en el momento de corregir
algn fallo o mejorar lo que se hizo.
Por eso, en la prctica se emplean lenguajes mas parecidos
al lenguaje humano, llamados lenguajes de programacin.
Normalmente, estos son muy parecidos al idioma ingles,
aunque siguen unas reglas mucho ms estrictas. Existen
lenguajes de programacin de alto y de bajo nivel los cuales
se definen a continuacin.
Lenguajes de bajo nivel
Se llaman de bajo nivel porque estn muy cercanos al hardware del computador. Es necesario
conocer a fondo la arquitectura de la maquina para la que se va a programar.
El primer lenguaje de este tipo que se utiliz fue el lenguaje mquina, que consiste en un conjunto
de instrucciones en binario, es decir, con ceros y unos, con los cuales se indica al computador qu
hacer. Este lenguaje es muy complicado y la posibilidad de cometer errores es muy alta, por lo que
ya no se utiliza.
Para solventar estas dificultades apareci el lenguaje ensamblador, que consiste en asignar una
abreviatura a cada instruccin en binario, de forma que sea ms fcil recordarla y ms difcil
equivocarse. Sin embargo, con este lenguaje sigue siendo necesario conocer muy bien el hardware
del computador.
Lenguajes de alto nivel
Los lenguajes de alto nivel suelen utilizar trminos ingleses del tipo LIST, PRINT u OPEN como
comandos que representan una secuencia de decenas o de centenas de instrucciones en lenguaje
mquina. Los comandos se introducen desde el teclado, desde un programa residente en la memoria
o desde un dispositivo de almacenamiento, y son interceptados por un programa que los traduce a
instrucciones en lenguaje mquina.
Los programas traductores son de dos tipos: intrpretes y compiladores. Con un intrprete, los
programas que repiten un ciclo para volver a ejecutar parte de sus instrucciones, reinterpretan la
-
7/30/2019 Guia2 Programacion
3/7
Algoritmia y ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP02
3
misma instruccin cada vez que aparece. Por consiguiente, los programas interpretados se ejecutan
con mucha mayor lentitud que los programas en lenguaje mquina. Por el contrario, los
compiladores traducen un programa ntegro a lenguaje mquina antes de su ejecucin, por lo cual se
ejecutan con tanta rapidez como si hubiesen sido escritos directamente en lenguaje mquina.
Aunque existen centenares de lenguajes informticos y de variantes, hay algunos dignos de
mencin, como el PASCAL, diseado en un principio como herramienta de enseanza, hoy es uno
de los lenguajes de microcomputador ms populares; el Logo fue desarrollado para que los nios
pudieran acceder al mundo de la informtica; el C se utiliza ampliamente en el desarrollo de
programas de sistemas, al igual que su sucesor, el C++. El LISP y el PROLOG han alcanzado
amplia difusin en el campo de la inteligencia artificial.
Ensambladores, compiladores e intrpretes
Las rdenes que nosotros hemos escrito (lo que se conoce
como programa fuente) deben convertirse a lo que el
computador comprende (obteniendo el programa
ejecutable).
Si elegimos un lenguaje de bajo nivel, como el
ensamblador (en ingls Assembly, abreviado como Asm),
la traduccin es sencilla, y de hacer esa traduccin se
encargan unas herramientas llamadas ensambladores (en
ingls Assembler).
Cuando el lenguaje que hemos empleado es de alto nivel,
la traduccin es ms complicada, y a veces implicar
tambin recopilar varias fuentes distintas o incluir posibilidades que se encuentran en bibliotecas
que no hemos preparado nosotros. Las herramientas encargadas de todo esto son los compiladores.
El programa ejecutable obtenido con el
compilador o el ensamblador se podra
hacer funcionar en otro computador
similar al que habamos utilizado para
crearlo, sin necesidad de que ese otro
computador tenga instalado el
compilador o el ensamblador.
Por ejemplo, en el caso de Windows (y
de MsDos), y del programa que nos
saluda en lenguaje Pascal, tendramos
un fichero fuente llamado
SALUDO.PAS. Este fichero no servira
de nada en un computador que no
-
7/30/2019 Guia2 Programacion
4/7
Algoritmia y ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP02
4
tuviera un compilador de Pascal. En cambio, despus de compilarlo obtendramos un fichero
SALUDO.EXE, capaz de funcionar en cualquier otro computador que tuviera el mismo sistema
operativo, aunque no tenga un compilador de Pascal instalado.
Un intrprete es una herramienta parecida a un compilador, con la diferencia de que en los
intrpretes no se crea ningn programa ejecutable capaz de funcionar por s solo, de modo que
si queremos distribuir nuestro programa a alguien, deberemos entregarle el programa fuente y
tambin el intrprete que es capaz de entenderlo, o no le servir de nada. Cuando ponemos el
programa en funcionamiento, el intrprete de encarga de convertir el programa en lenguaje de alto
nivel a cdigo mquina, orden por orden, justo en el momento en que hay que procesar cada una de
las rdenes.
Para algunos lenguajes, es frecuente encontrar compiladores pero no suele existir intrpretes. Es el
caso del lenguaje C, de Pascal y de C++, por ejemplo. En cambio, para otros lenguajes, lo habitual
es trabajar con intrpretes y no con compiladores, como ocurre con Python, Ruby y PHP.
Adems, hoy en da existe algo que parece intermedio entre un compilador y un intrprete: Existen
lenguajes que no se compilan para obtener un ejecutable para un computador concreto, sino un
ejecutable genrico, que es capaz de funcionar en distintos tipos de computadores, a condicin de
que en ese computador exista una mquina virtual capaz de entender esos ejecutables genricos.
Esta es la idea que se aplica en Java: los fuentes son ficheros de texto, con extensin .java, que se
compilan a ficheros .class. Estos ficheros .class se podran llevar a cualquier computador que
tenga instalada una mquina virtual Java (las hay para la mayora de sistemas operativos). Esta
misma idea se sigue en el lenguaje C#, que se apoya en una mquina virtual llamada Dot Net
Framework (algo as como armazn punto net).
Diagramas de flujo
Los diagramas de flujo son una manera de representar visualmente el flujo de datos a travz de
sistemas de tratamiento de informacin. Los diagramas de flujo describen que operacines y en que
secuencia se requieren para solucionar un problema dado.
Un diagrama de flujo u organigrama es una representacin diagramtica que ilustra la secuencia de
las operaciones que se realizarn para conseguir la solucin de un problema. Los diagramas de flujo
se dibujan generalmente antes de comenzar a programar el cdigo frente a la computadora. Los
diagramas de flujo facilitan la comunicacin entre los programadores y la gente del negocio. Estos
diagramas de flujo desempean un papel vital en la programacin de un problema y facilitan lacomprensin de problemas complicados y sobre todo muy largos. Una vez que se dibuja el
diagrama de flujo, llega a ser fcil escribr el programa en cualquier idima de alto nivel. Vemos a
menudo cmo los diagramas de flujo nos dan ventaja al momento de explicar el programa a otros.
Por lo tanto, est correcto decir que un diagrama de flujo es una necesidad para la documentacin
mejor de un programa complejo.
-
7/30/2019 Guia2 Programacion
5/7
Algoritmia y ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP02
5
Reglas para dibujar un diagramas de flujo.
Los Diagramas de flujo se dibujan generalmente usando algunos smbolos estndares; sin embargo,
algunos smbolos especiales pueden tambin ser desarrollados cuando san requeridos. Algunossmbolos estndares, que se requieren con frecuencia para diagramar programas de computadora se
muestran a continuacin:
Inicio o fin del programa
Pasos, procesos o lneas de instruccion de programa de
computo
Operaciones de entrada y salida
Toma de desicines y Ramificacin
Lneas de flujo
Simbolos grficos
Dentro de los simbolos fundamentales para la creaacin de diagramas de flujo, los smbolos
grficos son utilizdos especificamente para para operacines aritmticas y relacines
condicionales. La siguiente es una lista de los smbolos ms comunmente utilizados:
+ Sumar Mayor oigual que
- Menos Menor o
igual que
* Multiplicacin o Diferentede
/ Divisin Si
Mas o menos No
= Equivalente a True
> Mayor que False
< Menor que
-
7/30/2019 Guia2 Programacion
6/7
Algoritmia y ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP02
6
Reglas para la creacion de Diagramas
1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.
2. Los smbolos se unen con lneas, las cuales tienen en la punta una flecha que indica ladireccin que fluye la informacin procesos, se deben de utilizar solamente lneas de flujo
horizontal o verticales (nunca diagonales).
3. Se debe evitar el cruce de lneas, para lo cual se quisiera separar el flujo del diagrama a un
sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo
se vana utilizar conectores cuando sea estrictamente necesario.
4. No deben quedar lneas de flujo sin conectar
5. Todo texto escrito dentro de un smbolo debe ser legible, preciso, evitando el uso de
muchas palabras.
6. Todos los smbolos pueden tener ms de una lnea de entrada, a excepcin del smbolo
final.
7. Solo los smbolos de decisin pueden y deben tener mas de una lnea de flujo de salida.
Pseudocdigo
A pesar de que los lenguajes de alto nivel se acercan al lenguaje natural, que nosotros empleamos,
es habitual no usar ningn lenguaje de programacin concreto cuando queremos plantear los pasos
necesarios para resolver un problema, sino emplear un lenguaje de programacin ficticio, no tan
estricto, muchas veces escrito incluso en espaol. Este lenguaje recibe el nombre de pseudocdigo.
Esa secuencia de pasos para resolver un problema es lo que se conoce como algoritmo (realmente
hay alguna condicin ms, por ejemplo, debe ser un nmero finito de pasos). Por tanto, unprograma de computador es un algoritmo expresado en un lenguaje de programacin.
Por ejemplo, un algoritmo que controlase los pagos que se realizan en una tienda con tarjeta de
debito, escrito en pseudocdigo, podra ser:
Leer banda magntica de la tarjeta
Conectar con central de cobros
Si hay conexin y la tarjeta es correcta:
Pedir cdigo PIN
Si el PIN es correcto
Comprobar saldo_existente
Si saldo_existente > importe_compraAceptar la venta
Descontar importe del saldo.
Sino
Escribir mensaje de saldo insuficiente
Fin Si
Fin Si
Fin Si
-
7/30/2019 Guia2 Programacion
7/7
Algoritmia y ProgramacionIng. Edwin J. Ortega
Universidad Santiago de CaliMAP02
7
Ejercicios propuestos
1. Mejorar el seudocdigo del ejemplo de la tarjeta de debito para que envi un mensaje
de error cuando el pin es incorrecto, cuente la cantidad de intentos y bloquee la tarjeta
cuando pase de 4 intentos fallidos.
2. Realice un programa en seudocdigo que describa el funcionamiento de una lavadora
de ropa.
3. Realice un programa en seudocdigo que tome dos nmeros por teclado, y me permita
elegir entre sumarlos, restarlos y multiplicarlos; mostrando el resultado en pantalla.
4. Indique cual es el resultado del siguiente diagrama de flujo.