Вы находитесь на странице: 1из 20

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

11 LLeenngguuaajjee ddee PPrrooggrraammaacciióónn

Los lenguajes de programación son un conjunto de reglas, herramientas y condiciones que nos permiten crear programas o aplicaciones dentro de una computadora. Estos programas son los que nos permiten ordenar distintas acciones a la computadora en su “idioma” comprensible por ella. Como su nombre lo indica, un lenguaje tiene su parte sintáctica y su parte semántica. ¿Qué quiere decir esto? Que todo lenguaje de programación posee reglas acerca de cómo se deben escribir las sentencias y de qué forma.

A su vez, los lenguajes de programación se dividen en tres grandes grupos: los lenguajes de

máquina, los lenguajes continuación:

que pasaremos a explicar a

de bajo nivel

y

los

de alto nivel.

Los

Los lenguajes de máquina son los que entiende una computadora sin la necesidad de realizar ninguna conversión. Escribirlos resulta extremadamente difícil para un programador convencional. Hoy en día, nadie programa en éste lenguaje, pero como es necesario para la que la computadora entienda lo que tiene que hacer, existen programas que se encargan de transformar el código comprensible por un programador en código comprensible por una computadora.

Las instrucciones en este tipo de lenguaje se componen de la unidad de memoria más pequeña que existe dentro de una computadora, que se llama bit. Cada una de estas unidades puede tener sólo dos valores posibles: 1 o 0. Veamos algunos ejemplos de este tipo de lenguaje:

0101

1001 0000 1101

0000

1111 1010 1011

Para facilitar la tarea del programador, se han diseñado otro tipo de lenguajes, que son más comprensibles que el de máquina. Esto son el de bajo nivel y el de alto nivel.

11

11

11

LLeenngguuaajjee ddee BBaajjoo NNiivveell

Los lenguajes de bajo nivel, también llamados ensambladores, son aquellos cuyas sentencias están formadas por códigos nemotécnicos (abreviaturas de palabras inglesas).

Son lenguajes que, por más complejos que sean, resultan mucho más comprensibles que los lenguajes de máquina.

A continuación vemos un ejemplo de código para este tipo de lenguaje:

inicio: mov cx,25

ini:

mov ah,6

mov dl,13

int 21h

mov dl,10

int 21h

loop ini

mov ah,9

lea dx,nombre

push cs

pop ds

int 21h

lea dx,nombre push cs pop ds int 21h … P P r r o o g

PPrrooggrraammaacciióónn yy aannáálliissiiss ddee ssiisstteemmaass

22

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

Estos lenguajes son, además, dependientes de la arquitectura de cada procesador, ya que cada procesador ofrece un conjunto de instrucciones distinto para trabajar en este nivel de programación. Una vez escrito el programa en este lenguaje, se necesita otro llamado programa ensamblador, para que traduzca las sentencias en instrucciones comprensibles por la máquina.

11

11

22

LLeenngguuaajjee ddee AAllttoo NNiivveell

Los lenguajes de alto nivel son aquellos que poseen sentencias formadas por palabras similares a las de los lenguajes humanos. Por lo tanto, resulta mucho más sencillo escribir un programa en un lenguaje de alto nivel para luego traducirlo en código comprensible para una computadora.

Algunos ejemplos de este tipo de lenguajes son: Pascal, Delphi, Cobol, Foxpro, JAVA y la mayoría de los lenguajes visuales, como Visual Basic, Visual Foxpro, etc. Además, podemos decir que, dentro de este conjunto de lenguajes de programación, algunos son de más alto nivel que otros, pero, en general, todos entran en esta categoría.

En el caso de C, muchos autores opinan que este lenguaje es de nivel medio, o sea, que posee una escritura sencilla y comprensible por los programadores, pero a la vez ofrece una potente y variada gama de posibilidades para realizar miles de tareas con una computadora. Se puede decir que se puede hacer casi lo mismo que con un lenguaje ensamblador. Observe que es posible insertar código assembler dentro del código de C. En conclusión, C pertenece a un nivel intermedio entre un lenguaje de bajo nivel y uno de alto nivel.

11

22

PPrrooggrraammaa

Definición: El conjunto formado por la representación de datos utilizados y el algoritmo en si, se conoce con el nombre de programa.

Definición: Un programa es la descripción paso a paso de un proceso en un cierto lenguaje de programación.

Definición: Secuencia de acciones entendibles por la computadora y que conduce a realizar una tarea determinada y el correcto tratamiento de los datos.

Los programas constan de una serie de sentencias y estas a su vez de instrucciones que son las acciones concretas que debe realizar la máquina.

11

22

11

CCaarraacctteerrííssttiiccaass ddeell SSooffttwwaarree

El software es un elemento lógico en vez de físico del sistema.

1. El software es desarrollado no fabricado en un sentido clásico. Aunque existen algunas

similitudes entre el desarrollo del software y la construcción del hardware, las dos actividades fundamentalmente diferentes. En ambas actividades la buena calidad se adquiere mediante un buen diseño, pero la fase de construcción del hardware puede producir problemas de calidad que no existen en el software, es decir, ambas actividades requieren la construcción de un producto pero los métodos son diferentes.

2. El software no se rompe pero se deteriora. Durante su vida el software sufre cambios

(mantenimiento).

Conforme se hacen los cambios, es probable que se introduzcan nuevos

defectos.

cambios, es probable que se introduzcan nuevos defectos. P P r r o o g g

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

3.

existentes.

La

mayoría de los

software se construye a medida en vez de ensamblando componentes

Con unas cuantas excepciones, no existen no existen catálogos para componentes de software. Es posible pedir programas ya hechos pero sólo como una unidad completa común, no como componentes que pueden ensamblarse con nuevos programas.

11 22 22

AApplliiccaacciioonneess ddeell SSooffttwwaarree

El software puede aplicarse en cualquier situación en la que se haya definido previamente un conjunto finito de pasos, es decir, un algoritmo.

Las siguientes áreas indican la amplitud de las posibles aplicaciones:

1. Software de Sistemas

El software de sistemas es una colección de programas escritos para servir a otros programas, como por ejemplo compiladores, editores, utilidades de gestión de archivos, etc.

2. Software de Tiempo Real

El software que mide analiza y controla sucesos del medio real conforme ocurre se llama de tiempo real. Los elementos del software de tiempo real incluye una componente de acumulación de datos que recolecta y formatea la información de un entorno externo, una componente de análisis que transforma la información según requiera la información, una componente de control – salida que responda al entorno externo de una componente de monitorización que coordina a todos los demás componentes de forma que pueda mantenerse la respuesta en tiempo real.

3. Software de Gestión

El procesamiento de información comercial constituye la mayor d las áreas de aplicación del software por ejemplo nóminas, cuentas de haberes y deberes, inventarios etc.

Las aplicaciones en esta área reestructuran los datos existentes en orden a facilitar las operaciones comerciales y gestionar la toma de decisiones.

4. Software de Ingeniería y Científico

Este se ha caracterizado por los algoritmos de manejo de números. Las aplicaciones desde la vulcanología hasta la astronomía, desde el análisis de la presión a la dinámica orbital de los cohetes espaciales y desde la biología molecular hasta la fabricación automática.

5. Software Empotrado

Este software reside en memoria de sólo lectura y se utiliza para controlar productos y sistemas de mercados industriales y de consumidores. El software empotrado puede ejecutar funciones muy limitadas, por ejemplo el control de las teclas de un horno microondas, funciones digitales en un auto tales como el control de la gasolina.

6. Software de Computadores Personales

El procesamiento de palabras, las hojas de cálculo, los gráficos por computadora, juegos gestión de bases de datos, aplicaciones financieras comerciales y personales, redes externas o acceso a base de datos son unos cuantos de las cientos de aplicaciones.

de datos son unos cuantos de las cientos de aplicaciones. P P r r o o

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

7. Software de Inteligencia Artificial

El software de Inteligencia Artificial hace uso de algoritmos no numéricos para resolver problemas complejos que no son adecuados para el cálculo o análisis directo. Actualmente el área más activa de la Inteligencia Artificial es la de los Sistemas Expertos también llamados Sistemas Basados en el Conocimiento. Otras áreas de aplicación par el software de inteligencia artificial es el reconocimiento de patrones (imágenes y voces) prueba de teoremas y juegos.

11 33

TTiippooss ddee PPrrooggrraammaacciióónn

No sólo existen varios tipos de Lenguajes de programación, sino que también podemos encontrar distintas formas de programar una aplicación. Hay diversos paradigmas que nos permiten encontrar una solución más adecuada a nuestros problemas. La idea es que el programador los conozca y sepa seleccionar el adecuado para cada situación particular. Lo que es verdad es que para cada paradigma conviene utilizar ciertos programas de programación, y no cualquiera. Esto se debe a que la mayoría de los lenguajes fueron creados para ser utilizados en determinados ambientes de programación.

A continuación veremos las formas de programar más conocidas y utilizadas en la actualidad.

11 33 11

PPrrooggrraammaacciióónn SSeeccuueenncciiaall

Este tipo de programas se basa en la creación de programas a partir de un conjunto de sentencias escritas en forma secuencial y cuya ejecución sigue dicha secuencia. Aquí se utiliza la secuencia como goto o similar para realizar un bifurcación en la ejecución del programa hacia una etiqueta determinada. Una etiqueta es una marca en el código de un programa para que sea referenciado en algún momento de su ejecución.

Algunos lenguajes que se utilizan para este tipo de programación son Basic, Assembler, Fortram, y COBOL entre otros.

11 33 22

PPrrooggrraammaacciióónn EEssttrruuccttuurraaddaa

La programación estructurada es una de las más conocidas y antiguas que existen. Sus fundamentos los impulsó Edsgar Dijkstra hace ya mucho tiempo. Hoy en día, más allá de que nuevos tipos de programación están copando el mercado, la programación estructurada perdura en el fondo de los leguajes modernos.

Este tipo de programación se basa en la modularidad de los programas. Esto quiere decir que los programas se dividen en módulos más pequeños, y cada uno realiza una tarea específica. Así, la complejidad de un programa determinado también se ve reducida al dividir sus tareas, que, en su conjunto, permiten la resolución de éste.

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

Los programas para éste tipo de programación poseen un procedimiento central, que es el encargado de llamar y controlar el correcto funcionamiento de cada módulo que compone la aplicación.

La programación estructurada hace uso de estructuras de control básicas: secuencial, repetición y selección. Además, no permite el uso de sentencias como goto o similares que produzcan bifurcaciones en la ejecución de las sentencias de un programa.

Los lenguajes que s utilizan en esta programación son C, Pascal, entre otros.

11 33 33

PPrrooggrraammaacciióónn OOrriieennttaaddaa aa OObbjjeettooss

La Programación Orientada a Objetos (POO) es una forma de estructurar un programa sobre la base de objetos. Cada elemento o componente en un programa que se basa en esta técnica es concebido como un objeto que tiene propiedades y métodos. La ejecución de un programa depende pura y exclusivamente de una interacción de los objetos que lo componen.

Las propiedades y los métodos de los objetos se especifican en su clase. Una clase de objeto vendría a ser el molde de cada instancia particular del objeto. Por lo tanto, cuando uno programa una aplicación orientada a objetos, define clases y luego crea las instancias de objetos a través de esas clases para que interaccionen entre sí.

Existen otros conceptos importantes sobre objetos, que son l herencia y el polimorfismo.

Los lenguajes que se utilizan en este tipo de programación son muchos, pero los más importantes hoy en día son: JAVA, C++, Delphi, Smalltalk y la gran mayoría de los lenguajes de la nueva plataforma de Microsoft .NET, entre los cuales podemos encontrar Visual Basic.NET, C# y ASP.NET

11 33 44

PPrrooggrraammaacciióónn LLóóggiiccaa

La programación lógica es una forma de programar donde lo más importante es definir un conjunto de hechos, que se conocen con anterioridad, y un conjunto de reglas que nos definen las distintas relaciones que existen entre los componentes del programa. Estos hechos y reglas conforman lo que se llama la base del conocimiento. La programación lógica utiliza lenguajes de alto nivel que se asemejan muchos a los lenguajes humanos. Una de las utilidades más importantes de ésta técnica de programación es la inteligencia artificial. Uno de los lenguajes que se utilizan para éste tipo de desarrollos es Prolog, un

También se usa C, que provee

lenguaje de programación lógica antiguo pero potente más velocidad de procesamiento.

Por lo general, este tipo de programación hace uso de algoritmos recursivos.

¿Existen más?

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

22 AAllggoorriittmmoo

Definición: Serie de operaciones detalladas y no ambiguas, a ejecutar paso a paso y que conduce a la resolución de un problema.

Definición: Conjunto de reglas para resolver una cierta clase de problemas o una forma de describir la solución del mismo, cada una de las acciones de las que consta un algoritmo se llamará sentencia, y estas deben estar escritas en términos de un cierto lenguaje de comprensible para el ejecutor (máquina).

22 11

CCaarraacctteerrííssttiiccaass ddee llooss AAllggoorriittmmooss

1. Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.

2. Un algoritmo debe ser definido, es decir, si se sigue un algoritmo dos veces se debe obtener el

mismo resultado.

3. Un algoritmo debe ser finito, es decir, si se sigue un algoritmo

momento.

se debe terminar en algún

22

22

EEttaappaass ppaarraa llaa ssoolluucciióónn ddee pprroobblleemmaass ppoorr ccoommppuuttaaddoorr

1.

Análisis del problema.

2.

Diseño de un algoritmo.

3.

Codificación de un algoritmo.

4.

Edición, ejecución y prueba del programa.

5.

Mantenimiento (Soporte) del programa.

22

33

EEssttrruuccttuurraa GGeenneerraaddaa ddee uunn PPrrooggrraammaa

1.

Análisis del problema.

Comprende la descripción y la definición del problema. Se debe decir exactamente lo que el programa debe hacer, qué datos debe procesar, y qué información producirá.

2. Diseño de un algoritmo.

Comprende el desarrollo de la secuencia lógica de pasos a seguir para la resolución del problema.

2.1. Prueba del Algoritmo

Seguir los pasos del algoritmo y ver si resuelve realmente el problema, el algoritmo de resolución suele expresarse en previo a la codificación en el lenguaje de programación, en alguna de las siguientes representaciones:

a) Pseudocódigo

b) Diagrama de flujo

c) Diagrama Estructurado o Diagrama de Chopin

de flujo c) Diagrama Estructurado o Diagrama de Chopin P P r r o o g

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

3. Codificación de un algoritmo.

Conversión del algoritmo en un programa escrito en algún lenguaje de programación.

4. Edición, ejecución y prueba del programa.

Introducir el programa en la memoria, ejecutarlo y probar sus resultados corrigiendo los errores hasta su puesta a punto final, es decir:

Depurar el programa

Verificar el programa

Documentar el programa

5. Uso y Mantenimiento (Soporte) del programa.

El programador debe mantener el programa corrigiendo cualquier error o introduciendo las modificaciones necesarias para que el programa continúe funcionando durante todo el tiempo de su vida activa.

22 44

PPrrooggrraammaacciióónn

RReepprreesseennttaacciióónn ddee aallggoorriittmmooss ppoorr mmeeddiioo ddee GGrrááffiiccaass UUttiilliizzaaddaass eenn eell AAnnáálliissiiss ddee llaa

En la etapa previa a la codificación del algoritmo se realiza una representación gráfica clara y detallada que refleje la secuencia en que deben ser ejecutadas las diferentes operaciones por la máquina. Estas representaciones gráficas son las herramientas utilizadas en el análisis de la programación. Se clasifican en tres grandes grupos:

 

Diagramas de Flujo u Organigramas

Pseudocódigo

Tablas de Decisión

22

44 11

DDiiaaggrraammaass ddee FFlluujjoo uu OOrrggaanniiggrraammaass

Un diagrama de programación es la representación gráfica de los procedimientos y de la secuencia u orden en que deben ejecutarse. Deben ser independientes del lenguaje de programación que se vaya a utilizar.

Se pueden considerar tres tipos fundamentales:

a) Diagramas del Sistema o de Configuración.

Estos son diagramas destinados a describir el flujo de información entre los distintos soportes físicos de un sistema informático. Reflejan las operaciones normales para el desarrollo del proceso que realizan los componentes utilizados en un programa.

b) Diagramas de Macro Procesos o Bloques.

Representan la estructura a través de módulos o bloques que se han realizado del problema a resolver. Incluye también el flujo de información entre los diversos módulos, así como e orden de ejecución de los mismos. Estos diagramas están relacionados con el proceso.

mismos. Estos diagramas están relacionados con el proceso. P P r r o o g g

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

c) Diagrama de Detalle u Ordinograma.

Son las órdenes en secuencia que se deben dar a la máquina para la resolución del problema. Debe mostrar las operaciones que realiza un programa con el detalle necesario para que una vez confeccionados se pueda realizar la etapa de codificación.

22 44 11

11

DDiiaaggrraammaass ddee FFlluujjoo ddeell SSiisstteemmaa

Los símbolos utilizados sirven para representar operaciones manuales y automáticas con los diferentes dispositivos del sistema Informático

con los diferentes dispositivos del sistema Informático P P r r o o g g r

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

22 44 11

11

11

SSíímmbboollooss UUttiilliizzaaddooss eenn llooss DDiiaaggrraammaass ddee SSiisstteemmaass

Símbolo

m a a s s d d e e S S i i s s t
m a a s s d d e e S S i i s s t
m a a s s d d e e S S i i s s t
m a a s s d d e e S S i i s s t
m a a s s d d e e S S i i s s t

Función

Tarjeta perforada.

Cinta perforada (lectora / perforadora).

Lectora de documentos ópticos / impresora de documentos ópticos.

Cinta magnética / lectora / grabadora de cinta magnética.

Disco magnético (lectora o grabadora de un fichero almacenado en disco).

/

pantalla ).

Pantalla

CRT (

Salida de datos a

través

de

Almacenamiento de datos en línea./ pantalla ). Pantalla CRT ( Salida de datos a través de Impresora (Salida de datos

Impresora (Salida de datos en forma impresa). de datos a través de Almacenamiento de datos en línea. Terminal o consola (Introducción manual de

Terminal o consola (Introducción manual de datos desde el teclado o consola del operador).en línea. Impresora (Salida de datos en forma impresa). Dirección del proceso o flujo de datos.

manual de datos desde el teclado o consola del operador). Dirección del proceso o flujo de
manual de datos desde el teclado o consola del operador). Dirección del proceso o flujo de

Dirección del proceso o flujo de datos.

del operador). Dirección del proceso o flujo de datos. P P r r o o g

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

Ejemplo:

Una aplicación consiste en la emisión de facturas a partir de los datos introducidos por teclado y los datos del cliente almacenados en un fichero de disco. La factura se debe presentar en pantalla y una vez dada la conformidad, escribirla en impresora.

Pantalla Teclado Programa Impresora Almacenamiento
Pantalla
Teclado
Programa
Impresora
Almacenamiento
Impresora
Impresora
Teclado Programa Impresora Almacenamiento Impresora P P r r o o g g r r a

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

22 44 11

bb)) yy cc)) DDiiaaggrraammaass ddee FFlluujjoo ddee DDeettaalllleess // MMaaccrroo PPrroocceessooss oo BBllooqquuee

22

DDiiaaggrraammaass ddee BBllooqquueess

Los Ordinogramas o Diagramas de Flujo de Detalle y de Macroprocesos o Bloque deben mostrar las operaciones que realiza un programa con el detalle necesario para que una vez confeccionados se pueda realizar la etapa siguiente de la programación ( la codificación).

Para lenguajes tales como COBOL es suficiente representar únicamente los grandes bloques de tratamiento de entrada / salida, proceso y decisión sin tener que detallar las operaciones elementales.

22 44 11

22

11

SSíímmbboollooss UUttiilliizzaaddooss eenn llooss DDiiaaggrraammaass ddee FFlluujjoo ddee DDeettaalllleess // BBllooqquuee

PPrriinncciippaalleess SSíímmbboollooss

Terminal ( representa el comienzo “Inicio” y final “Fin”)

( representa el comienzo “Inicio” y final “Fin”) : Entrada / Salida (Cualquier tipo de introducción
( representa el comienzo “Inicio” y final “Fin”) : Entrada / Salida (Cualquier tipo de introducción
:
:

Entrada / Salida (Cualquier tipo de introducción de datos en la memoria desde los periféricos, “Entrada” o registro de la información procesada en un periférico ) Proceso ( Cualquier tipo de operación definida que pueda originar cambio de valor, formato o posición de la información almacenados en memoria: operaciones aritméticas, de transferencia de datos, etc.) Conector ( Sirve par enlazar dos partes cualesquiera de un organigrama a través de un conector de salida y otro de entrada – conexión de la misma página). Indicador de dirección o línea de flujo (indica el sentido de ejecución de las operaciones).

Conector ( distintas páginas)

de las operaciones). Conector ( distintas páginas) : Llamado a subrutina o a un proceso predeterminado.

: Llamado a subrutina o a un proceso predeterminado.

: Llamado a subrutina o a un proceso predeterminado. Comentario. P P r r o o

Comentario.

a subrutina o a un proceso predeterminado. Comentario. P P r r o o g g

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióónn eenn PPsseeuuddoolleenngguuaajjee

22

55

OOppeerraacciioonneess AArriittmmééttiiccaass

 

Movimiento de una posición de memoria a otra.

 

Cambios en campos de información. 

Adiciónmemoria a otra.   Cambios en campos de información. - Sustracción * Multiplicación / División ^

-

Sustracción

*

Multiplicación

/

División

^

Exponenciación

22

66

OOppeerraaddoorreess ddee RReellaacciióónn

<, >, < >

Ejemplo de utilización de los símbolos

Lectura de un fichero de datos de empleados de una empresa ( nombre, edad, nro. Seguro Social, pago) e impresión de los datos personales de cada empleado así como la suma Total de sueldos que paga la empresa.

IInniicciioo

SSTT == 00

NN,, EE,, SS,, PP
NN,, EE,, SS,, PP
IImmpprriimmee ssuueellddooss ttoottaalleess
IImmpprriimmee ssuueellddooss
ttoottaalleess
SSii Ultimo empleado? NNoo SSTT == SSTT ++ PP
SSii
Ultimo empleado?
NNoo
SSTT == SSTT ++ PP

FFiinn

SSii Ultimo empleado? NNoo SSTT == SSTT ++ PP F F i i n n P
SSii Ultimo empleado? NNoo SSTT == SSTT ++ PP F F i i n n P

FFuunnddaammeennttooss ddee PPrrooggrraammaacciióónn UUnniiddaadd 22 PPrrooggrraammaacciióó