Sunteți pe pagina 1din 31

1

INSTITUTO TECNOLOGICO DE TAPACHULA




PROGRAMA EDUCATIVO
Ing. en Sistemas Computacionales

MATERIA
Fundamentos de Programacin

DOCENTE
Rosel Muoz Lpez

ESTUDIANTES:
Ortiz Morales Reynaldo Daniel
De la Cruz de los Reyes Aurelio




TAPACHULA, CHIAPAS 08 DE SEPTIEMBRE DE 2014
2

NDICE

Introduccin -------------------------------------------------------------------------------------------- 3
1.1 Clasificacin del software de: sistemas y aplicacin -------------------------------- 4

1.2 Algoritmo --------------------------------------------------------------------------------------- 5

1.3 Lenguaje de programacin ---------------------------------------------------------------- 7

1.4 Programa --------------------------------------------------------------------------------------- 9

1.5 Programacin --------------------------------------------------------------------------------- 10

1.6 Paradigmas de programacin ------------------------------------------------------------ 12

1.7 Editores de texto ----------------------------------------------------------------------------- 13

1.8 Compiladoras e interpretes --------------------------------------------------------------- 17

1.9 Ejecutables ----------------------------------------------------------------------------------- 21

1.10 Consola de lnea de comandos ---------------------------------------------------------- 21
Preguntas ---------------------------------------------------------------------------------------------- 24
Conclusin --------------------------------------------------------------------------------------------- 29
Bibliografa --------------------------------------------------------------------------------------------- 30







3


INTRODUCCIN


El termino ingeniero de sistemas fue a fines de los aos 60 cuando empresas lo
introdujeron cono un cargo laboral ellos eran los que asesoraban como los productos
podan satisfacer las necesidades de procesamiento de bases de datos o informacin.
En la ltimas dcadas el desarrollo de software y programas ha sido cada vez mas
importantes y cada ao sale algo nuevo en lo que es en el rea de informtica ya que
debe de estarse actualizando ao con ao para crear nuevos sistemas que permitan
tanto a las personas como a las empresas e instituciones realizar sus trabajos es por
ello que el Ing. En sistemas debe de conocer los conceptos bsicos de un programa
para poder desenvolver un programa o aplicacin. En el siguiente documento
mostraremos las definiciones de los temas a tratar ya que son indispensables para
entender un poco mas sobre la materia. Ensearemos las clasificaciones del software y
para que se utilicen adems de los conceptos bsicos de cada tema, como se desarrolla
un algoritmo y sus ejemplos entre muchas cosas ms que lo descubrirn cuando lean el
texto.











4

CONCEPTOS BSICOS

1.1 Clasificacin de software de sistemas y aplicacin

Software de sistemas
El software del sistema coordina las diferentes partes de un sistema de computadora y
conecta e interacta entre el software de aplicacin y el hardware de la computadora.
Otro tipo de software del sistema que gestiona controla las actividades de la
computadora y realiza tareas de proceso comunes, se denomina utility o utilidades. El
software del sistema que gestiona y controla las actividades del computador se
denomina sistema operativo. Otro software del sistema son los programas traductores o
de traduccin de lenguajes de computador que convierten los lenguajes de
programacin, entendibles por los programadores, en lenguaje mquina que entienden
las computadoras El software del sistema es el conjunto de programas indispensables
para que la mquina funcione; se denominan tambin programas del sistema. Estos
programas son, bsicamente, el sistema operativo, los editores de texto, los
compiladores/intrpretes (lenguajes de programacin) y los programas de utilidad.

Software de aplicacin
El software de aplicacin tiene como funcin principal asistir y ayudar a un usuario de un
computador para ejecutar tareas especficas. Los programas de aplicacin se pueden
desarrollar con diferentes lenguajes y herramientas de software. Por ejemplo, una
aplicacin de procesamiento de textos (Word processin) tal como Word o Word Perfect
que ayuda a crear documentos, una hoja de clculo tal como Lotus 1-2-3 o Excel que
ayudan a automatizar tareas tediosas o repetitivas de clculos matemticos o
estadsticos, a generar diagramas o grficos, presentaciones visuales como PowerPoint,
o a crear bases de datos como Acces u Oracle que ayudan a crear archivos y registros
de datos. Los usuarios, normalmente, compran el software de aplicaciones en discos
CDs o DVDs (antiguamente en disquetes) o los descargan (bajan) de la Red Internet y
han de instalar el software copiando los programas correspondientes de los discos en el
disco duro de la computadora. Cuando compre estos programas asegrese que son
compatibles con su computador y con su sistema operativo. Existe una gran diversidad
de programas de aplicacin para todo tipo de actividades tanto de modo personal, como
de negocios, navegacin y manipulacin en Internet, grficos y presentaciones visuales,
5

etc. Los lenguajes de programacin sirven para escribir programas que permitan la
comunicacin usuario/mquina. Unos programas especiales llamados traductores
(compiladores o intrpretes) convierten las instrucciones escritas en lenguajes de
programacin en instrucciones escritas en lenguajes mquina (0 y 1, bits) que sta
pueda entender. Los programas de utilidad 6 facilitan el uso de la computadora. Un buen
ejemplo es un editor de textos que permite la escritura y edicin de documentos. Este
libro ha sido escrito en un editor de textos o procesador de palabras (Word proceso).
Los programas que realizan tareas concretas, nminas, contabilidad, anlisis
estadstico, etc., es decir, los programas que podr escribir en Turbo Pascal, se
denominan programas de aplicacin. A lo largo del tema se vern pequeos programas
de aplicacin que muestran los principios de una buena programacin de computadora.
Se debe diferenciar entre el acto de crear un programa y la accin de la computadora
cuando ejecuta las instrucciones del programa. La creacin de un programa se hace
inicialmente en papel y, a continuacin, se introduce en la computadora y se convierte
en lenguaje entendible por la computadora.

1.2 Algoritmo
Un algoritmo es un mtodo para resolver un problema. Aunque la popularizacin del
trmino ha llegado con la aparicin de la era informtica, algoritmo proviene de
Mohammed al-Khowrizmi, 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 deriv posteriormente en algoritmo. Euclides, el gran matemtico griego (del
siglo IV antes de Cristo) que invent un mtodo para encontrar el mximo comn divisor
de dos nmeros, se considera con Al-Khowrizmi el otro gran padre de la algoritmia
(ciencia que trata de los algoritmos). El profesor Niklaus Wirth inventor de Pascal,
Modula-2 y Obern titul uno de sus ms famosos libros, Algoritmos + Estructuras de
datos = Programas, significndonos que slo se puede llegar a realizar un buen
programa con el diseo de un algoritmo y una correcta estructura de datos. Esta
ecuacin ser una de las hiptesis fundamentales consideradas en esta obra. La
resolucin de un problema exige el diseo de un algoritmo que resuelva el problema
propuesto.

Los pasos de resolucin de un problema son:


Problema
Diseo de
algoritmo
Programa
de
computador
a
6

1.- Diseo del algoritmo, que describe la secuencia ordenada de pasos sin
ambigedades que conducen a la solucin de un problema dado. (Anlisis del problema
y desarrollo del algoritmo.)

2.- Expresar el algoritmo como un programa en un lenguaje de programacin adecuado.
(Fase de codificacin.)

3. Ejecucin y validacin del programa por la computadora.

Para llegar a la realizacin de un programa es necesario el diseo previo de un
algoritmo, de modo que sin algoritmo no puede existir un programa. Los algoritmos son
independientes tanto del lenguaje de programacin en que se expresan como de la
computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un
lenguaje diferente de programacin y ejecutarse en una computadora distinta; sin
embargo, el algoritmo ser siempre el mismo. As, por ejemplo, en una analoga con la
vida diaria, una receta de un plato de cocina se puede expresar en espaol, ingls o
francs, pero cualquiera que sea el lenguaje, los pasos para la elaboracin del plato se
realizarn sin importar el idioma del cocinero. En la ciencia de la computacin y en la
programacin, los algoritmos son ms importantes que los lenguajes de programacin o
las computadoras. Un lenguaje de programacin es tan slo un medio para expresar un
algoritmo y una computadora es slo un procesador para ejecutarlo. Tanto el lenguaje
de programacin como la computadora son los medios para obtener un fin: conseguir
que el algoritmo se ejecute y se efecte el proceso correspondiente. Dada la importancia
del algoritmo en la ciencia de la computacin, un aspecto muy importante ser el diseo
de algoritmos. A la enseanza y prctica de esta tarea denominada algoritmia se dedica
gran parte de este libro. El diseo de la mayora de los algoritmos requiere creatividad y
conocimientos profundos de la tcnica de la programacin. En esencia, la solucin de un
problema se puede expresar mediante un algoritmo.

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.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener
el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algn
momento; o sea, debe tener un nmero finito de pasos.
La definicin de un algoritmo debe describir tres partes: Entrada, Proceso y Salida. En
un algoritmo de receta de cocina se tendr:
7


Entrada: ingredientes y utensilios empleados.
Proceso: elaboracin de la receta en la cocina.
Salida: terminacin del plato (por ejemplo, pollo).


1.3 Lenguaje de programacin

Como se ha visto en el apartado anterior, para que un procesador realice un proceso se
le debe suministrar en primer lugar un algoritmo adecuado. El procesador debe ser
capaz de interpretar el algoritmo, lo que significa.

- Comprender las instrucciones de cada paso.
- Realizar las operaciones correspondientes.

Cuando el procesador es una computadora, el algoritmo se ha de expresar en un
formato que se denomina programa, ya que el pseudocdigo o el diagrama de flujo no
son comprensibles por la computadora, aunque pueda entenderlos cualquier
programador. Un programa se escribe en un lenguaje de programacin y las
operaciones que conducen a expresar un algoritmo en forma de programa se llaman
programacin. As pues, los lenguajes utilizados para escribir programas de
computadoras son los lenguajes de programacin y programadores son los escritores y
diseadores de programas. El proceso de traducir un algoritmo en pseudocdigo a un
lenguaje de programacin se denomina codificacin, y el algoritmo escrito en un
lenguaje de programacin se denomina cdigo fuente. En la realidad la computadora no
entiende directamente los lenguajes de programacin sino que se requiere un programa
que traduzca el cdigo fuente a otro lenguaje que s entiende la mquina directa- mente,
pero muy complejo para las personas; este lenguaje se conoce como lenguaje mquina
y el cdigo correspondiente cdigo mquina. Los programas que traducen el cdigo
fuente escrito en un lenguaje de programacin tal como C++ a cdigo mquina se
denominan traductores. El proceso de conversin de un algoritmo escrito en
pseudocdigo hasta un programa ejecutable comprensible por la mquina, se muestra
en figura 1. Hoy en da, la mayora de los programadores emplean lenguajes de
programacin como C++, C, C#, Java, Visual Basic, XML, HTML, Perl, PHP,
JavaScript..., aunque todava se utilizan, sobre todo profesionalmente, los clsicos
COBOL, FORTRAN, Pascal o el mtico BASIC. Estos lenguajes se denominan lenguajes
de alto nivel y permiten a los profesionales resolver problemas convirtiendo sus
algoritmos en programas escritos en alguno de estos lenguajes de programacin.

8


Fig. 1 proceso de transformacin de un algoritmo en pseudocdigo en un programa
ejecutable.

Los principales tipos de lenguajes utilizados en la actualidad son tres:
- Lenguajes de mquina.
- Lenguaje de bajo nivel (ensamblador).
- Lenguajes de alto nivel
Lenguaje de maquina
En los primeros das de las computadoras, los nicos lenguajes de programacin
disponibles eran lenguajes de mquina. Cada computador tena su propio lenguaje de
mquina, hecho de patrones (streams) de 0s y 1s. Estas lneas de cdigo, cuando ests
escrita en lenguaje de mquina, hacen once lneas de cdigo binario, cada una de 16
bits.


Lenguaje de bajo nivel (ensamblador)
9

La siguiente evolucin en programacin vino con la idea de reemplazar el cdigo binario
por instrucciones y direcciones con smbolos o mnemnicos. Debido a que utilizaban
smbolos, estos lenguajes fueron primeramente conocidos como lenguajes simblicos.
El conjunto de estos lenguajes mnemnicos fueron ms tarde conocidos como lenguajes
debajo nivel. El lenguaje bajo nivel para nuestro ordenador hipottico que reemplaza el
lenguaje de mquina.
Lenguaje de alto nivel
Aunque los lenguajes ensambladores mejorado mucho la eficiencia de programacin,
todava requera que los programadores se concentrasen en el hardware que utilizaban.
Trabajar con lenguajes simblicos tambin era muy tedioso, ya que cada instruccin de
mquina tena que ser codificada individualmente. El deseo de mejorar la eficiencia del
programador y cambiar el enfoque desde el ordenador al problema a resolver dio lugar
al desarrollo de lenguajes de alto nivel.
Con los aos, varios lenguajes, sobre todo BASIC, COBOL, Pascal, Ada, C, C++ y Java,
fueron desarrollados. El siguiente programa muestra el cdigo para sumar dos nmeros
enteros tal y como aparecera en el lenguaje C++.


1.4 Programa

Un programa, concepto desarrollado por Von Neumann en 1946, es un conjunto de
instrucciones que sigue la computadora para alcanzar un resultado especfico. El
programa se escribe en un lenguaje de programacin a partir de un diagrama de flujo
diseado con anterioridad. Un lenguaje de programacin, por otra parte, est constituido
por un conjunto de reglas sintcticas (especifica la formacin de instrucciones vlidas) y
semnticas (especifica el significado de estas instrucciones), que hacen posible escribir
un programa. Cientos de lenguajes de programacin se han desarrollado hasta la fecha.
Ya en 1969, se haban enumerado ms de 120 que haban sido utilizados amplia-
mente. Actualmente a los lenguajes de programacin podemos clasificarlos teniendo en
cuenta el tipo de problemas que son capaces de resolver de manera natural. As
tenemos, por ejemplo, para programacin estructurada: PASCAL. C, BASIC, FORTRAN,
COBOL; estos tres ltimos en su versin estructurada. Para programacin orientada a
objetos: C + +, SMALLTALK y JAVA. Para programacin simblica: LISR y para
programacin lgica: PROLOG. Cabe sealar que slo hicimos mencin de algunos
lenguajes y tipos de lenguajes. En este libro nos enfocaremos sobre el tipo de lenguajes
de programacin estructurada. En este enfoque los programas se disean de arriba
10

hacia abajo (top-Down) jerrquicamente, usando slo un conjunto restringido de
estructuras de control en cada nivel, instrucciones secuenciales, estructuras selectivas y
estructuras repetitivas. Cuando esto se hace en forma adecuada el programa resulta
muy fcil de entender, depurar y modificar. Cuando tenemos que resolver un problema
de tipo algortmico, entendiendo por esto aquellos que tienen una solucin
determinstica, primero desarrollamos el algoritmo, que proporciona una solucin muy
general. Posteriormente construimos el diagrama de flujo, que esquematiza grfica y
detalladamente la solucin del problema, y a partir de ste, escribimos el programa en
algn lenguaje de programacin estructurado. Pensamos que la tarea intelectual, la que
requiere de un pensamiento profundo, de una capacidad de razonamiento flexible y
crtica, es la de la construccin del diagrama de flujo, que representa la solucin
detallada del problema. La escritura del programa puede ser muy simple, conociendo las
reglas sintcticas y semnticas que constituyen el lenguaje de programacin. El
lenguaje que utilizaremos en este libro para la construccin de los programas es un
lenguaje algortmico de pseudocdigo, independiente de cualquier lenguaje de
programacin. Esta caracterstica consideramos que es muy importante, ya que permite
al lector comprender las estructuras de datos y los algoritmos aso- ciados a ellas sin
relacionarlos a un lenguaje de programacin en particular. Se considera que una vez
que el lector domine correctamente estos conceptos, muy fcilmente podr transportar
los programas realizados a un lenguaje de programacin, tal como PASCAL o C.


1.5 Programacin


La programacin es el proceso de disear, codificar, depurar y mantener el cdigo
fuente de programas computacionales. El cdigo fuente es escrito en un lenguaje de
programacin. El propsito de la programacin es crear programas que exhiban un
comportamiento deseado. El proceso de escribir cdigo requiere frecuentemente
conocimientos en varias reas distintas, adems del dominio del lenguaje a utilizar,
algoritmos especializados y lgica formal. Programar no involucra necesariamente otras
tareas tales como el anlisis y diseo de la aplicacin (pero s el diseo del cdigo),
aunque s suelen estar fusionadas en el desarrollo de pequeas aplicaciones.




11

Objetivos de la Programacin
La programacin debe perseguir la obtencin de programas de calidad. Para ello se
establece una serie de factores que determinan la calidad de un programa. Algunos de
los factores de calidad ms importantes son los siguientes:
Correctitud: Un programa es correcto si hace lo que debe hacer tal y como se
estableci en las fases previas a su desarrollo. Para determinar si un programa hace
lo que debe, es muy importante especificar claramente qu debe hacer el programa
antes de su desarrollo y, una vez acabado, compararlo con lo que realmente hace.
Claridad: Es muy importante que el programa sea lo ms claro y legible posible,
para facilitar tanto su desarrollo como su posterior mantenimiento. Al elaborar un
programa se debe intentar que su estructura sea sencilla y coherente, as como
cuidar el estilo de programacin. De esta forma se ve facilitado el trabajo
del programador, tanto en la fase de creacin como en las fases posteriores de
correccin de errores, ampliaciones, modificaciones, etc. Fases que pueden ser
realizadas incluso por otro programador, con lo cual la claridad es an ms
necesaria para que otros puedan continuar el trabajo fcilmente. Algunos
programadores llegan incluso a utilizar Arte ASCII para delimitar secciones de
cdigo; una prctica comn es realizar aclaraciones en el cdigo fuente
utilizando lneas de comentarios. Contrariamente, algunos por diversin o para
impedirle un anlisis cmodo a otros programadores, recurren al uso de cdigo
ofuscado.
Eficiencia: Se trata de que el programa, adems de realizar aquello para lo que fue
creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible
los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se
suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido
creado y a la cantidad de memoria que necesita, pero hay otros recursos que
tambin pueden ser de consideracin para mejorar la eficiencia de un programa,
dependiendo de su naturaleza (espacio en disco que utiliza, trfico en la red que
genera, etc.).
Portabilidad: Un programa es portable cuando tiene la capacidad de poder
ejecutarse en una plataforma, ya sea hardware o software, diferente a aqulla en la
que se desarroll. La portabilidad es una caracterstica muy deseable para un
12

programa, ya que permite, por ejemplo, a un programa que se ha elaborado para el
sistema GNU/Linux ejecutarse tambin en la familia de sistemas
operativos Windows. Esto permite que el programa pueda llegar a ms usuarios ms
fcilmente.

1.6 Paradigmas de programacin

Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una
comunidad de programadores cuyo ncleo central es incuestionable en cuanto a que
nicamente trata de resolver uno o varios problemas claramente delimitados. Es un
estilo de programacin empleado. La resolucin de estos problemas debe suponer
consecuentemente un avance significativo en al menos un parmetro que afecte a la
ingeniera de software. Tiene una estrecha relacin con la formalizacin de
determinados lenguajes en su momento de definicin. Un paradigma de programacin
est delimitado en el tiempo en cuanto a aceptacin y uso ya que nuevos paradigmas
aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente.
El paradigma de programacin que actualmente es el ms usado es la orientacin a
objetos. El ncleo central de este paradigma es la unin de datos y procesamiento en
una entidad llamada "objeto", relacionable a su vez con otras entidades "objeto".
Tradicionalmente datos y procesamiento se han separado en reas diferente del diseo
y la implementacin de software. Esto provoc que grandes desarrollos tuvieran
problemas de fiabilidad, mantenimiento, adaptacin a los cambios y escalabilidad. Con
la orientacin a objetos y caractersticas como el encapsulado, polimorfismo o la
herencia se permiti un avance significativo en el desarrollo de software a cualquier
escala de produccin.
Un paradigma de programacin representa un enfoque particular o filosofa para disear
soluciones. Los paradigmas difieren unos de otros, en los conceptos y la forma de
abstraer los elementos involucrados en un problema, as como en los pasos que
integran su solucin del problema, en otras palabras, el cmputo.
La orientacin a objeto parece estar ligada en sus orgenes con lenguajes como Lisp y
Simula aunque el primero que acu el ttulo de programacin orientada a objetos fue
Smalltalk.

13

Tipos de paradigmas de programacin ms comunes

Imperativo o por procedimientos: es considerado el ms comn y est
representado es decir elogiado, por ejemplo, por C, BASIC o Pascal.
Funcional: est representado por Scheme o Haskell. Este es un caso del paradigma
declarativo.
Lgico: est representado por Prolog. Este es otro caso del paradigma declarativo.
Declarativo: por ejemplo la programacin funcional, la programacin lgica, o la
combinacin lgico-funcional.
Orientado a objetos: est representado por Smalltalk, un lenguaje completamente
orientado a objetos.
Programacin dinmica: est definida como el proceso de romper problemas en
partes pequeas para analizarlos.
Programacin multiparadigma: es el uso de dos paradigmas dentro de una
funcin.


1.7 Editores de texto

Un editor de texto es un programa que permite crear y modificar archivos digitales
compuestos nicamente por un texto sin formato, conocidos comnmente
como archivos de texto o texto plano. El programa lee el archivo e interpreta
los bytes ledos segn el cdigo de caracteres que usa el editor. Hoy en da es
comnmente de 7- u 8-bits en ASCII oUTF-8, rara vez EBCDIC.
Por ejemplo, un editor ASCII de 8 bits que lee el nmero binario 0110 0001 (decimal 97
o hexadecimal 61) en el archivo lo representar en la pantalla por la figura a, que el
usuario reconoce como la letra "a" y ofrecer al usuario las funciones necesarias para
cambiar el nmero binario en el archivo.
Los editores de texto son incluidos en el sistema operativo o en algn paquete de
software instalado y se usan cuando se deben crear o modificar archivos de texto como
archivos de configuracin, scripts o el cdigo fuente de algn programa.
14

El archivo creado por un editor de texto incluye por convencin en DOS y Microsoft
Windows la extensin ".txt", aunque pueda ser cambiada a cualquier otra con
posterioridad. Tanto Unix como Linux dan al usuario total libertad en la denominacin de
sus archivos.
Al trasladar archivos de texto de un sistema operativo a otro se debe considerar que
existen al menos dos convenciones diferentes para sealar el trmino de una
lnea: Unix y Linux usan slo retorno de carro en cambio Microsoft de carro y salto de
lnea.

Tipos de editores de texto
Hay una gran variedad de editores de texto. Algunos son de uso general, mientras que
otros estn diseados para escribir o programar en un lenguaje. Algunos son muy
sencillos, mientras que otros tienen implementadas gran cantidad de funciones.
El editor de texto debe ser considerado como una herramienta de trabajo del
programador o administrador de la mquina. Como herramienta permite realizar ciertos
trabajos, pero tambin requiere de aprendizaje para que el usuario conozca y obtenga
destreza en su uso. La llamada curva de aprendizaje es una representacin de la
destreza adquirida a lo largo del tiempo de aprendizaje. Un editor puede ofrecer muchas
funciones, pero si su curva de aprendizaje es muy larga, puede desanimar el
aprendizaje y terminar siendo dejado de lado. Puede que un editor tenga una curva de
aprendizaje muy empinada y corta, pero si no ofrece muchas funciones el usuario le
reemplazar por otro ms productivo. Es decir la eleccin del editor ms apropiado
depende de varios factores, alguno de ellos muy subjetivos. Esta coyuntura de intereses
ha dado lugar a largas discusiones sobre la respuesta a la pregunta "cul es el mejor
editor de texto?". Hoy en da muchos editores originalmente salidos de Unix o Linux han
sido portados a otros sistemas operativos, lo que permite trabajar en otro sistemas sin
tener que aprender el uso de otro editor.
Algunos editores son sencillos mientras que otros ofrecen una amplia gama de
funciones.
Editores para profesionales deben ser capaces de leer archivos de gran extensin,
mayor que la capacidad e la memoria RAM de la mquina y tambin arrancar
rpidamente, ya que el tiempo de espera disminuye la concentracin y disminuye de por
si la productividad. Los editores de texto sirven para muchas cosas pues facilitan el
trabajo.
15

Algunos editores de texto incluyen el uso de lenguajes de programacin para
automatizar engorrosos o repetidos procedimientos a realizar en el texto. Por ejemplo,
Emacs puede ser adaptado a las necesidades del usuario, incluso las combinaciones de
teclas para ejecutar funciones pueden ser adaptadas y es programable en Lisp.
Muchos editores de texto incluyen coloreado de sintaxis y funciones que ofrecen al
usuario completar una palabra iniciada usando para ello la configuracin.
Algunas funciones especiales son:
Editores diseados para un lenguaje de programacin determinado, con coloreado
de sintaxis, macros, completacin de palabras, etc.
Editores con regiones plegables. A veces no todo el texto es relevante para el
usuario. Con este tipo de editores ciertas regiones con texto irrelevante pueden ser
plegadas, escondidas, mostrando al usuario solo lo importante del texto.
Un Entorno de desarrollo integrado es un programa que incluye un editor y otras
herramientas de trabajo, como compiladores, extractores de diferencias entre dos
textos, repositorios, etc., incluidos en un solo programa.

Funciones tpica de un editor de texto
Marcar regin
Es la funcin que marca, visualmente o no, una parte del texto para ser elaborada con
otras funciones. La regin puede contener varias lneas del texto (regin horizontal) o
bien varias columnas adyacentes del texto (regin vertical).
Bsqueda y reemplazo
El proceso de bsqueda de una palabra o una cadena de caracteres, en un texto plano y
su reemplazo por otra. Existen diferentes mtodos: global, por regin, reemplazo
automtico, reemplazo con confirmacin, bsqueda de texto o bsqueda de
una Expresin regular.
Copiar, cortar y pegar
Sirve para copiar, trasladar o borrar una regin marcada.
Formatear
Los editores de texto permiten automatizar las nicas funciones de formateo que
utilizan: quebrar la lnea, indentar, formatear comentarios o formatear listas.
16

Deshacer y rehacer
Consiste en que el programa editor va almacenando cada una de las operaciones
hechas por el usuario hasta un nmero configurable. Si el usuario se arrepiente de algn
cambio, por muy anterior que sea, el editor le permite revertir todos los cambios hechos
hasta el nmero configurado. Rehacer es por consiguiente, revertir algo revertido.
Importar
Agregar o insertar el contenido de un archivo en el archivo que se est editando.
Algunos editores permiten insertar la salida o respuesta a un programa cualquiera
ejecutado en la Lnea de comandos al archivo que se est editando.
Filtros
Algunos editores de texto permiten hacer pasar las lneas del texto o de una regin por
algn programa para modificarlas u ordenarlas. Por ejemplo, para ordenar
alfabticamente una lista de nombres o sacar un promedio de una lista de nmeros.
Acceso remoto
Un editor para trabajar en la administracin de una red de computadoras debe ofrecer la
funcionalidad de editar archivos en mquinas remotas, ya sea por medio de ftp, ssh o
algn otro protocolo de red. Emacs lo puede hacer mediante el plugin tramp
(ampliamente configurable con ssh, ftp, scp, sftp, etc.), Ultraedit, del ambiente Windows,
lo hace mediante ftp.


Ejemplos
Bloc de notas, editor integrado en Windows, tambin conocido como Notepad (en
ingls).
Emacs, otro editor muy comn en Unix.
Gedit, editor libre que se distribuye junto con GNOME para sistemas tipo Unix.
Tambin disponible para Windows.
jEdit, editor popular multiplataforma.
Kate, editor para Unix.
Notepad++, editor de cdigo fuente para Windows.
Vi, editor muy comn en Unix.

17

1.8 Compiladores e Intrpretes
Compilador
Un compilador es un programa que traduce un programa escrito en un lenguaje de
programacin a otro lenguaje de programacin, generando un programa equivalente que
la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de
mquina, pero tambin puede ser un cdigo intermedio (bytecode), o simplemente texto.
Este proceso de traduccin se conoce como compilacin.
Un compilador es un programa que permite traducir el cdigo fuente de un programa
en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de
mquina). De esta manera un programador puede disear un programa en un lenguaje
mucho ms cercano a cmo piensa un ser humano, para luego compilarlo a un
programa ms manejable por una computadora.
Como parte importante de este proceso de traduccin, el compilador informa a su
usuario de la presencia de errores en el programa fuente.
Partes de un compilador
La construccin de un compilador involucra la divisin del proceso en una serie de fases
que variar con su complejidad. Generalmente estas fases se agrupan en dos tareas: el
anlisis del programa fuente y la sntesis del programa objeto.
Anlisis: Se trata de la comprobacin de la correccin del programa fuente, e incluye
las fases correspondientes al Anlisis lxico (que consiste en la descomposicin del
programa fuente en componentes lxicos), Anlisis sintctico (agrupacin de los
componentes lxicos en frases gramaticales ) y Anlisis semntico (comprobacin de
la validez semntica de las sentencias aceptadas en la fase de Anlisis Sintctico).
Sntesis: Su objetivo es la generacin de la salida expresada en el lenguaje objeto y
suele estar formado por una o varias combinaciones de fases de Generacin de
Cdigo (normalmente se trata de cdigo intermedio o de cdigo objeto) y de
Optimizacin de Cdigo (en las que se busca obtener un cdigo lo ms eficiente
posible).

Tipos de compiladores
Esta taxonoma de los tipos de compiladores no es excluyente, por lo que puede haber
compiladores que se adscriban a varias categoras:
18

Compiladores cruzados: generan cdigo para un sistema distinto del que estn
funcionando.
Compiladores optimizadores: realizan cambios en el cdigo para mejorar su
eficiencia, pero manteniendo la funcionalidad del programa original.
Compiladores de una sola pasada: generan el cdigo mquina a partir de una nica
lectura del cdigo fuente.
Compiladores de varias pasadas: necesitan leer el cdigo fuente varias veces antes
de poder producir el cdigo mquina.
Compiladores JIT (Just In Time): forman parte de un intrprete y compilan partes del
cdigo segn se necesitan.
Pauta de creacin de un compilador: En las primeras pocas de la informtica,
el software de los compiladores era considerado como uno de los ms complejos
existentes.
Los primeros compiladores se realizaron programndolos directamente en lenguaje
mquina o en ensamblador. Una vez que se dispone de un compilador, se pueden
escribir nuevas versiones del compilador (u otros compiladores distintos) en el lenguaje
que compila ese compilador.
Actualmente existen herramientas que facilitan la tarea de escribir compiladores
intrpretes informticos. Estas herramientas permiten generar el esqueleto
del analizador sintctico a partir de una definicin formal del lenguaje de partida,
especificada normalmente mediante una gramtica formal y barata, dejando nicamente
al programador del compilador la tarea de programar las acciones semnticas
asociadas.

Interprete
Intrprete o interpretador es un programa informtico capaz de analizar y ejecutar otros
programas, escritos en un lenguaje de alto nivel. Los intrpretes se diferencian de
los compiladores en que mientras estos traducen un programa desde su descripcin en
un lenguaje de programacin al cdigo de mquina del sistema, los intrpretes slo
realizan la traduccin a medida que sea necesaria, tpicamente, instruccin por
instruccin, y normalmente no guardan el resultado de dicha traduccin.
Usando un intrprete, un solo archivo fuente puede producir resultados iguales incluso
en sistemas sumamente diferentes (ejemplo. una PC y un PlayStation 3). Usando un
19

compilador, un solo archivo fuente puede producir resultados iguales solo si es
compilado a distintos ejecutables especficos a cada sistema.
Los programas interpretados suelen ser ms lentos que los compilados debido a la
necesidad de traducir el programa mientras se ejecuta, pero a cambio son ms flexibles
como entornos de programacin y depuracin (lo que se traduce, por ejemplo, en una
mayor facilidad para reemplazar partes enteras del programa o aadir mdulos
completamente nuevos), y permiten ofrecer al programa interpretado un entorno no
dependiente de la mquina donde se ejecuta el intrprete, sino del propio intrprete (lo
que se conoce comnmente como mquina virtual).
Para mejorar el desempeo, algunas implementaciones de programacin de lenguajes
de programacin pueden interpretar o compilar el cdigo fuente original en una ms
compacta forma intermedia y despus traducir eso al cdigo de mquina
(ej. Perl, Python, MATLAB, y Ruby). Algunos aceptan los archivos fuente guardados en
esta representacin intermedia (ej. Python, UCSD Pascal y Java).
Comparando su actuacin con la de un ser humano, un compilador equivale a un
traductor profesional que, a partir de un texto, prepara otro independiente traducido a
otra lengua, mientras que un intrprete corresponde al intrprete humano, que traduce
de viva voz las palabras que oye, sin dejar constancia por escrito.
En la actualidad, uno de los entornos ms comunes de uso de los intrpretes
informticos es Internet, debido a la posibilidad que estos tienen de ejecutarse
independientemente de la plataforma.

Interpretadores de bytecode
Hay un espectro de posibilidades entre la interpretacin y la compilacin, dependiendo
de la cantidad de anlisis realizados antes de que el programa sea ejecutado. Por
ejemplo, el Emacs Lisp es compilado a bytecode, que es una representacin altamente
comprimida y optimizada del cdigo fuente del Lisp, pero no es cdigo de mquina (y
por lo tanto no est atado a cualquier hardware particular). Este cdigo "compilado" es
entonces interpretado por un interpretador de bytecode (que est escrito en C). En este
caso, el cdigo compilado es el cdigo de mquina para una mquina virtual, que no
est implementada en el hardware, sino en el interpretador de bytecode. El mismo
acercamiento es utilizado con el cdigo Forth usado en sistemas Open Firmware: el
lenguaje fuente es compilado en "cdigo F" (un bytecode), que entonces es interpretado
por una mquina virtual.

20

Interpretadores de rbol de sintaxis abstracta
En el espectro entre la interpretacin y la compilacin, otro acercamiento est
transformando el cdigo fuente en un rbol de sintaxis abstracta optimizado (AST), y
despus procediendo a ejecutar el programa siguiendo esta estructura arborescente. En
este acercamiento cada sentencia necesita ser analizada (parsed) solo una vez. Como
una ventaja sobre el bytecode, el AST mantiene la estructura y las relaciones globales
del programa entre las sentencias (que se pierden en una representacin de bytecode),
y proporciona una representacin ms compacta.
As, el AST se ha propuesto como un mejor formato intermedio para los compiladores
justo a tiempo que el bytecode. Tambin, permite realizar un mejor anlisis durante
tiempo de ejecucin. Un interpretador Java basado en AST ha demostrado ser ms
rpido que un interpretador similar basado en bytecode, gracias a las ms poderosas
optimizaciones permitidas al tener la estructura completa del programa, as como tipos
de datos de alto nivel, disponibles durante la ejecucin.

Ejemplos
Algunos ejemplos de lenguajes que son normalmente interpretados en vez de
compilados son:
Perl
PHP
Javascript
Logo
ASP (hasta la versin 3)
Python
Tcl
Ruby
J#
ASP



21

1.9 Ejecutables

En informtica, un ejecutable o archivo ejecutable, es tradicionalmente un, o como se le
conoce mayormente, archivo binario cuyo contenido se interpreta por el ordenador como
un programa.
Generalmente, contiene instrucciones en cdigo mquina de un procesador en concreto,
pero tambin puede contener bytecode que requiera un intrprete para ejecutarlo.
Adems suele contener llamadas a funciones especficas de un sistema operativo
(llamadas al sistema).
Dependiendo del tipo de que se traten las instrucciones, hablaremos de
ejecutables portables (se pueden ejecutar en varias plataformas) y no portables
(destinado a una plataforma concreta). Por ejemplo, un ejecutable Java es portable ya
que utiliza un bytecode no asociado a un procesador en concreto.
Sin embargo en un sentido ms general, un programa ejecutable no tiene por qu
necesariamente contener cdigo de mquina, sino que puede tener instrucciones a
interpretar por otro programa. Este tipo de ejecutables son conocidos con el nombre
de scripts.
Determinar si un archivo es ejecutable es sobre todo una cuestin de convencin. Unos
sistemas operativos se basan en la extensin de archivo (como la terminacin .exe) y
otros lo hacen leyendo los metadatos (como los bits de permiso de ejecucin en Unix).
En la mayora de los sistemas modernos, un archivo ejecutable contiene
mucha informacin que no es parte del programa en s: recursos como textos
e imgenes, requisitos del entorno de ejecucin, informacin simblica y de depuracin,
u otra informacin que ayude al sistema operativo a ejecutar el programa.

1.10 Consola de lnea de comandos
La interfaz de lnea de comandos, traduccin del ingls command-line interface o CLI la
cual es, en realidad, una transcripcin incorrecta de Interfaz de lnea de rdenes, por
el falso amigo command (orden/instruccin) es un mtodo que permite a los usuarios
dar instrucciones a algn programa informtico por medio de una lnea de texto simple.
Debe notarse que los conceptos de CLI, shell yemulador de terminal no son lo mismo,
aunque suelen utilizarse como sinnimos.
22

Las CLI pueden emplearse interactivamente, escribiendo instrucciones en alguna
especie de entrada de texto, o pueden utilizarse de una forma mucho ms automatizada
(archivo batch), leyendo rdenes desde un archivo de scripts.
Esta interfaz existe casi desde los comienzos de la computacin, superada en
antigedad solo por las tarjetas perforadas y mecanismos similares. Existen para
diversos programas y sistemas operativos, para diverso hardware, y con distinta
funcionalidad.
Por ejemplo, las CLI son parte fundamental de los shells o emuladores de terminal.
Aparecen en todas las interfaces de escritorio (GNOME, KDE, Microsoft Windows) como
un mtodo para ejecutar aplicaciones rpidamente. Aparecen como interfaz
de lenguajes interpretados tales como Java, Python, Ruby oPerl. Tambin se utilizan en
aplicaciones cliente-servidor, en gestores de bases de datos, en clientes FTP, etc. Las
CLI son un elemento fundamental de aplicaciones de ingeniera tan importantes
como MATLAB y AutoCAD.
La contraparte de CLI es la interfaz grfica de usuario (GUI) que ofrece una esttica
mejorada y una mayor simplificacin, a costa de un mayor consumo de recursos
computacionales, y, en general, de una reduccin de la funcionalidad alcanzable.
Asimismo aparece el problema de una mayor vulnerabilidad dada su complejidad.
Las CLI son usadas por muchos programadores y administradores de sistemas como
herramienta primaria de trabajo, especialmente en sistemas operativos basados
en Unix; en entornos cientficos y de ingeniera, y un subconjunto ms pequeo de
usuarios domsticos avanzados.
En dispositivos porttiles y PDA, las CLI no se utilizan, debido a lo complejo que resulta
ingresar datos de texto, o por la ausencia total de teclados

Funcionamiento
En su forma ms simple, una CLI consiste en un espacio donde se pueden escribir
rdenes (por lo usual sealizando con un prompt). El usuario teclea una orden y la
ejecuta al pasar a la lnea siguiente, utilizando la tecla Entrar.
Las rdenes dadas a la CLI son con frecuencia de la forma:
PROMPT>aplicacin [parmetros] ficheros o URI...
Al finalizar y enviar la orden con la tecla Entrar, un mdulo interpretador de rdenes
analiza la secuencia de caracteres recibida y, si la sintaxis de la orden es correcta,
ejecuta la orden dentro del contexto del programa o del sistema operativo donde se
23

encuentra. Esta forma de trabajo es secuencial, y equivale a un tipo
de programacin paso a paso.
El usuario percibe el procesamiento de sus instrucciones en forma de accin. Si al
usuario se le enva esta informacin de procesamiento en forma de texto simple,
entonces se le llama salida estndar o stdout. El usuario tambin puede recibir un
informe textual de errores en un canal especializado llamado stderr. Casi todos
los shells implementan la visualizacin de stdout y stderr al mismo dispositivo, en la
mayora de los casos la pantalla.
Tambin es posible usar scripts, es decir, archivos con instrucciones guardadas como si
se estuviesen escribiendo en el momento. En caso de error, la ejecucin
del script puede abortarse. De esta forma, la lnea de comandos puede utilizarse sin
siquiera tener que lidiar con el prompt, ni estando presente frente al monitor o teclado.

Ejemplos de interaccin
La instruccin para listar archivos, en diversos entornos:
Programa o sistema
operativo
Orden Tipo de programa
Bourne Ls Shell de Unix
CMD Dir Shell de Windows
NewShell list o dir AmigaDOS (shell de AmigaOS/MorphOS/AROS)
Matlab Dir Procesamiento matricial
Quake /dir Videojuego para PC
TACL FILEINFO Shell de Guardin
24

PREGUNTAS
1. QUE ES UN SOFTWARE DE SISTEMAS? R: El software del sistema coordina las
diferentes partes de un sistema de computadora y conecta e interacta entre el
software de aplicacin y el hardware de la computadora.

2. QUE ES UN SOFTWARE DE APLICACIN?R: El software de aplicacin tiene
como funcin principal asistir y ayudar a un usuario de un computador para
ejecutar tareas especficas
.
3. EJEMPLOS DE SOFTWARE DE APLICACIN R: hay de procesamiento de
textos tales como la paquetera de Word, corel draw, entre otros.

4. QUE ES UN ALGORITMO? R: Es una secuencia de pasos que llevan orden
para llegar a un fin o meta.

5. CUALES SON LAS CARACTERISTICAS DEL ALGORITMO? R: Preciso, finito,
definido.

6. COMO SE DESCRIBE UN ALGORITMO?: Se puede describir en tres partes:
entrada proceso y salida


7. DAME UN EJEMPLO DE UN ALGORITMO: Entrada: ingredientes y utensilios
empleados. Proceso: elaboracin de la receta en la cocina. Salida: terminacin del
plato (por ejemplo, pollo).

8. QUE ES UN LENGUAJE DE PROGRAMACION? Un lenguaje de
programacin es un lenguaje formal diseado para expresar procesos que pueden
ser llevados a cabo por mquinas como las computadoras.

9. PARA QUE PUEDE USARSE UN LENGUAJE DE PROGRAMACION?: Pueden
usarse para crear programas que controlen el comportamiento fsico y lgico de
una mquina, para expresar algoritmos con precisin, o como modo de
comunicacin humana

10. COMO ESTA FORMADO UN LENGUAJE DE PROGRAMACION? R: Est
formado por un conjunto de smbolos y reglas sintcticas y semnticas que
definen su estructura y el significado de sus elementos y expresiones. Al proceso
25

por el cual se escribe, se prueba, se depura, se compila (de ser necesario) y se
mantiene el cdigo fuente de un programa informtico se le llama programacin.

11. CMO SE LE DEDOMINA AL PROCESO DE TRADUCIR UN ALGORITMO EN
PSEUDOCDIGO A UN LENGUAJE DE PROGRAMACIN? R: codificacin

12. CMO SE LE DENOMINA A UN ALGORITMO ESCRITO EN UN LENGUAJE
DE PROGRAMACIN? R: se denomina cdigo fuente.

13. DAME UNOS EJEMPLOS DE LENGUAJES DE PROGRAMACIN : c++, c,
java, pascal, visual hasta el mtico basic.

14. CULES SON LOS PRINCIPALES TIPOS DE LENGUAJES UTILIZADOS EN
LA ACTUALIDAD? Son tres y son lenguaje mquina, lenguaje de bajo nivel o
ensamblador lenguaje de alto nivel

15. CULES SON LAS CARACTERSTICAS DEL LENGUAJE MAQUINA? R: Est
conformado por 0s y 1, hecho de lneas de cdigo que cuando ests escrita en
lenguaje de mquina, hacen once lneas de cdigo binario, cada una de 16 bits.


16. QU ES UN LENGUAJE DE BAJO NIVEL O ENSAMBLADOR? R: Estos
lenguajes fueron primeramente conocidos como lenguajes simblicos. El conjunto
de estos lenguajes mnemnicos fueron ms tarde conocidos como lenguajes
debajo nivel.

17. Qu es un lenguaje de alto nivel? R: Un lenguaje de programacin se
caracteriza por expresar los algoritmos de una manera adecuada a la
capacidad cognitiva humana, en lugar de la capacidad ejecutora de las mquinas.

18. Qu es un programa? R: Un programa de computadora o simplemente
un programa, es una secuencia de instrucciones, escritas para realizar una tarea
especfica con una computadora.

19. Qu es la programacin? R: La programacin es el proceso de disear,
codificar, depurar y mantener el cdigo fuente de programas computacionales. El
cdigo fuente es escrito en un lenguaje de programacin.

20. Qu es un paradigma de programacin? R: Es una propuesta tecnolgica
que es adoptada por una comunidad de programadores cuyo ncleo central es
26

incuestionable en cuanto a que nicamente trata de resolver uno o varios
problemas claramente delimitados









































27

1. ayuda a un usuario de un computador para ejecutar tareas especficas
( )

2. conecta e interacta entre el software de aplicacin y el hardware de la computadora
( )

3. es un mtodo para resolver un problema ( )

4. sirven para escribir programas que permitan la comunicacin usuario/mquina ( )

5. Los nicos lenguajes de programacin que se usaron En los primeros das de las
computadoras ( )

6. Cuantos tipos de lenguajes de programacin hay ( )

7. estn diseados para escribir o programar en un lenguaje ( )

8. es el proceso de disear, codificar, depurar y mantener el cdigo fuente de programas
computacionales ( )

9. es un mtodo que permite a los usuarios dar instrucciones a algn programa
informtico por medio de una lnea de texto simple ( )

10. editor integrado en Windows, tambin conocido como Notepad ( )

11. es un conjunto de instrucciones que sigue la computadora para alcanzar un resultado
especfico ( )

12. es un programa que permite traducir el cdigo fuente de un programa en lenguaje de
alto nivel, a otro lenguaje de nivel inferior ( )

13. Considerado como una herramienta de trabajo del programador o administrador de la
mquina ( )

14. Estos programas son, bsicamente, el sistema operativo, los editores de texto, los
compiladores/intrpretes (lenguajes de programacin) y los programas de utilidad. ( )

15. tiene como funcin principal asistir y ayudar a un usuario de un computador para
ejecutar tareas especficas ( )

16. El paradigma de programacin que actualmente es el ms usado ( )
28


17. Realizan cambios en el cdigo para mejorar su eficiencia, pero manteniendo la
funcionalidad del programa original ( )

18. es un programa informtico capaz de analizar y ejecutar otros programas, escritos en
un lenguaje de alto nivel ( )


19. Consiste en que el programa editor va almacenando cada una de las operaciones
hechas por el usuario hasta un nmero configurable ( )

20. El proceso de traducir un algoritmo en pseudocdigo a un lenguaje de programacin
( )



C.- Codificacin X.- Deshacer y rehacer Z.- Interprete R.- Compilador
P.- Compiladores optimizadores O.- Orientacin a objetos
U.- Software de aplicacin Y.- Software de sistema T.- Editor de texto
E.- Programa W.- Bloc de notas Q.- Consola de lneas de comando
K.- La programacin H.- 3 G.-Lenguaje maquina F.- Lenguaje de programacin
D.- Algoritmo S.- Software de sistemas A.- Software de aplicacin M.- Java
N.- Seudocdigo B.- Computadora V.- Hadware C.- Proceso











29

CONCLUSIN


Aprendimos los diferentes conceptos de cada tema y sus clasificaciones
que es programa sus paradigmas e incluso vimos un poco sobre
programacin debemos conocer cada aspecto de cada definicin ya que es
de suma importancia conocer mas sobre estos temas y para que se utilizan
cada ves la vida se vuelve mas competente y a esto tambin uno debe de
ser mas competente, en las unidades siguientes veremos mas en practica
estos temas y conoceremos mas a fondo.















30

BIBLIOGRAFIA
Lenguajes de Lenguajes de Programacin Prof.: J. Solano 2011
Fundamentos de programacin Luis joyanes Aguilar 3 edicin mc Graw hill
interamericana de Espaa, S, A, U.
Metodologa de la programacin Algoritmos, diagramas de flujo y programas
Dr. Osvaldo Cairo Battistutti 2005 ALFAOMEGA GRUPO EDITOR, S.A. de C.V.
Pitgoras 1139, Col. Del Valle. 03100 Mxico. D.F.
PRIETO ESPINOSA, Alberto y PRIETO CAMPOS, Beatriz. Conceptos de Informtica.
Coleccin Schaum. Madrid: McGraw-Hill (2005).
PRIETO, A., LLORIS, A. y TORRES, Introduccin a la informtica, 3. ed., Madrid:
McGraw-Hill (2005).














31

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