Vous êtes sur la page 1sur 33

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.

Fundamentos de programacin: un enfoque prctico

photolibrary.com/photostogo.com
Mapa de
contenidos

5. Arreglos:
almacenamiento
temporal
1. Introduccin a la 3. Funciones:
programacin organizacin y
eficiencia

6. Cadenas de
caracteres

2. Conceptos bsicos
4. Estructuras de
control

7. Archivos:
almacenamiento
persistente

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Introduccin del eBook

E
n los aos recientes las aplicaciones de la computacin se han diversificado rpidamente, ahora incursionan en reas Glosario
en las que jams se habra pensado que poda intervenir una computadora. Las herramientas de software que se han
generado son cada vez ms sofisticadas. Sin embargo, los problemas actuales presentan retos an mayores, que exi- Scripting
gen de las herramientas computacionales el ms alto grado de flexibilidad. Secuencias de comandos almace-
nados como archivos que se pueden
En consecuencia, da a da se presentan lenguajes de programacin o scripting, que permiten extender la funcionalidad del ejecutar como programas.
software, e incluso crear nuevas herramientas de acuerdo con las necesidades de un proyecto. Es as como la programacin
ha dejado de ser un conocimiento exclusivo del desarrollador de software y se ha convertido en una poderosa herramienta para
otros profesionistas: artistas digitales, diseadores, ingenieros y financieros, entre otros.
Sin importar el dominio especfico donde se utilice, los fundamentos de la programacin son esencialmente los mismos, y su
correcta comprensin es un primer paso a considerar. Este eBook aborda esos fundamentos desde un punto de vista prctico,
apoyndose en ejemplos y ejercicios que permiten la adecuada comprensin de cada tema. As, abre al lector una puerta a la
enorme gama de oportunidades que ofrece el apasionante mundo de la programacin.

Pg. 1 de 1

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin


Organizador temtico

1.1 Uso de programas para la solucin de problemas

1.2 Del lenguaje natural al lenguaje mquina

1.3 Diseo de algoritmos

1.4 Notaciones para escribir algoritmos

1.5 Herramientas auxiliares de la programacin

1.6. Piense en grande: Alan Turing

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin


Glosario

TEMAS CAPTULO 1
5 1.1. Uso de programas para la solucin de problemas

URL
Introduccin a la programacin Acrnimo de Uniform Resource Loca-
tor. Una direccin para un recurso en
Internet. Los URL utilizan los explo-
1.1. Uso de programas para la solucin de problemas En la Figura 1.1 se observa el funcionamiento general
radores Web para localizar recursos
del software. Por principio ste recibe informacin de en- de Internet. Un URL especifica el pro-

U
na de las competencias ms valiosas en cualquier trada, es decir, aquellos datos necesarios para su funcio- tocolo que se va a utilizar al acce-

GLOSARIO
actividad profesional es la de analizar problemas e namiento. Comnmente esta informacin de entrada pro- der al recurso (como http: para una
viene de un archivo, del teclado, del mouse, de una URL pgina del World Wide Web o ftp:
identificar soluciones eficientes que los resuelvan. para un sitio FTP File Transfer Pro-
En reas donde el software juega un papel importante, o de un flujo de datos. El software procesa la informacin
tocol), el nombre del servidor donde
esta labor es an ms compleja, ya que con frecuencia de entrada y ofrece informacin de salida. Segn el pro- reside el recurso (como //www.white-
existen mltiples caminos para llegar a resultados simila- psito con que haya sido diseado, la salida puede ser un house.gov) y, opcionalmente, la ruta
res. Por esta razn resulta de gran importancia compren- mensaje en pantalla, una grfica, una imagen, un archivo o al recurso (como un documento de
cualquier otra representacin de informacin vlida. HTML o un archivo del servidor).
der el funcionamiento del software que se utiliza da con

RECURSOS
da, para posteriormente adentrarse en el proceso que se
sigue para crearlo.
Ligas de inters
Presenta los nmeros de la revis-
ta digital de ACM. Estas revistas
contienen artculos muy interesan-

ACTIVIDAD
tes sobre los problemas de fron-
tera que estn siendo estudiados
Salida por los mejores investigadores del
mundo.
Communications of the ACM. Maga-
zine Archive | Communications of the

CONCLUSIN
ACM:. Recuperado de Communica-
tions of the ACM

Figura 1. 1. Funcionamiento general del software.

Pg. 1 de 11

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin


Glosario

TEMAS CAPTULO 1
6 1.1. Uso de programas para la solucin de problemas

Lenguaje de programacin
En la prctica, con frecuencia, pueden encontrarse he- macin desarrolla en el programador habilidades muy ti-
rramientas de software prediseadas que resuelven los les, altamente valoradas y difciles de desarrollar como la Lenguaje que emplean los programa-
dores para desarrollar aplicaciones
problemas ms comunes para un problema especfico. Si capacidad de abstraccin, de anlisis, de sntesis y el ra- especficas. Entre los lenguajes de
se prueban estas herramientas en diferentes escenarios en zonamiento lgico. Adems, la programacin permite au- programacin ms extendidos estn
la gran mayora de los casos se resolver el problema sa- tomatizar tareas repetitivas y operaciones complejas, cuya Basic, Cobol, Pascal, C, C++ y Java.
tisfactoriamente. Pero si se piensa ms all, qu sucede realizacin demandara mucho ms tiempo y precisin del

GLOSARIO
cuando estas herramientas, no cuentan con la funcionali- que puede disponer una persona.
dad para hacer lo que un proyecto en particular requiere?
O peor an, qu pasa si no existe una herramienta que 1.2. Del lenguaje natural al lenguaje mquina

C
ofrezca una solucin al problema que se ha presentado?
omunicar instrucciones de manera efectiva a una
Sin importar cun sofisticada sea una pieza de computadora no es una tarea fcil, de hecho ha
software, siempre habr situaciones de uso sido un tema estudiado durante dcadas por ex-

RECURSOS
no contempladas en su diseo original que no pertos en ciencias computacionales. La principal dificultad
resolver. asociada a este problema radica en los mecanismos de
comunicacin tan dismiles que utilizan las personas y las
En este punto la programacin entra en escena ya que computadoras. Mientras las primeras se expresan a tra- Ligas de inters
permite agregar funcionalidad a las herramientas existen- vs del uso su lenguaje natural, las segundas entienden a
tes, o bien, disear nuevos elementos de software. la perfeccin el simple y elemental cdigo binario. Pgina con informacin sobre la
historia de los pioneros en el rea de
Cada una de estas formas de comunicacin tiene ven- la programacin y de la computacin
Elaborar un programa, en trminos prcticos, consiste en general. La informacin se pre-

ACTIVIDAD
en escribir una secuencia de instrucciones en un lenguaje tajas y desventajas. El lenguaje natural, por un lado, es senta en forma de videos realizados
adecuado para las personas por su riqueza expresiva, pero con una excelente produccin.
que la computadora sea capaz de interpretar y procesar.
tiene la enorme desventaja de ser ambiguo y demasiado British Computer Society. Pioneers who
La programacin es el proceso que consiste impreciso para ser interpretado correctamente por una truly enabled the information society
computadora. Por su parte, el cdigo binario es preciso y Recuperado de Information Pioneers
en escribir, analizar y depurar programas,
diseados en un lenguaje de programacin, concreto, lo que facilita que la computadora lo comprenda,
Presenta el conjunto de compilado-
para que sean interpretados correctamente pero es muy difcil de utilizar por las personas, debido so- res del proyecto GNU as como una

CONCLUSIN
por una computadora. bre todo a su escasa capacidad expresiva y a lo complejo serie de recursos relacionados con
que resulta asociar cada significado con un trmino o sm- el mundo del software libre.

Por si esto fuera poco, de manera colateral, la progra- bolo numrico. Free Software Foundation, Inc. GCC, the
GNU Compiler Collection. Recuperado de
GNU Project:
Pg. 2 de 11

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

MAPA
Captulo 1. Introduccin a la programacin
Glosario

TEMAS CAPTULO 1
7 1.2 Del lenguaje natural al lenguaje mquina

Sintaxis
Como es de suponerse ante tal desbalance el punto medio es con frecuencia lo ms adecuado. Partiendo de este ra-
zonamiento, se han creado decenas, quiz cientos, de lenguajes de programacin, que no son ms que una representa- Orden en que deben introducirse los
cin intermedia entre el lenguaje natural de las personas y el lenguaje binario de la computadora. En la Figura 1.2 puede comandos y parmetros de coman-
dos en el indicador del sistema infor-
observarse este fenmeno.

glosarioGLOSARIO
mtico. Reglas gramaticales de un
lenguaje de programacin.
Semntica
rea de la gramtica que interpreta el
significado de los enunciados gene-
rados por el lxico y la sintaxis.

RECURSOS
RECURSOS
Figura 1. 2. Diferentes mecanismos de comunicacin.

El lenguaje de programacin es un conjunto mo sus ventajas en favor de la generacin de soluciones a


de reglas sintcticas y semnticas que definen los principales problemas de la industria y de las personas.

ACTIVIDAD
la forma de escribir programas para ser
interpretados por una computadora. 1.3. Diseo de algoritmos

ACTIVIDAD
Hasta este punto se ha abordado el funcionamiento ge-
Los lenguajes de programacin buscan proporcionar al
usuario lo mejor de ambos mundos. Por un lado, tienen neral del software y la dificultad implcita de programar una
una sintaxis bien definida que les permite ser expresados computadora. Sin embargo, es importante no perder de
sin ambigedad y, al mismo tiempo, su semntica ofrece la vista que la solucin al problema es diseada por las per-
flexibilidad y la expresividad necesarias para representar sonas. Para ello primero se lleva a cabo un anlisis con-

CONCLUSIN
soluciones a problemas complejos. cienzudo del problema, luego se elabora una secuencia
ordenada de los pasos que deben llevarse a cabo para

CONCLUSIN
Cuando se usa un lenguaje de programacin es posible resolverlo y finalmente se elabora el programa, es decir, se
comunicar instrucciones a la computadora de manera cada traduce la solucin que se dise a un lenguaje de progra-
vez ms eficiente y precisa, con el fin aprovechar al mxi-
macin que la computadora sea capaz de entender.
Pg. 3 de 11

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
8 1.3 Diseo de algoritmos

A la secuencia ordenada de pasos que deben seguirse para resolver un problema se le A continuacin se muestra un ejemplo concreto
denomina algoritmo. que permitir comprender mejor el proceso des-
crito:
Un algoritmo debe ser en principio: preciso, definido y finito. Su diseo se deriva directamente del
anlisis que se hace del problema, y es independiente de cualquier lenguaje de programacin.

GLOSARIO
En la Figura 1.3 se observa el proceso de programacin y la relacin entre cada una de las activi-
dades que lo integran. Es muy importante notar la separacin entre la fase de resolucin del problema
y la fase de trabajo en la computadora. Un principio primordial para la programacin eficiente consiste
en que el algoritmo deber ser diseado antes de escribir una sola instruccin en la computadora. Esta
es la regla de oro que se debe recordar y privilegiar siempre que se emprenda la tarea de programar
una computadora.

RECURSOS
ACTIVIDAD
Enunciado del problema: Actualmente en
la planta automotriz se estn realizando
pruebas con los nuevos modelos de
autos, una de ellas consiste en determinar
el rendimiento de gasolina de manera
experimental. Para ello se conduce el auto

CONCLUSIN
durante una cierta distancia y se registran la
distancia recorrida en kilmetros y cantidad
Figura 1. 3. Proceso para la solucin de problemas a travs de la programacin.
precisa de gasolina empleada en litros.

Pg. 4 de 11

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
9 1.3 Diseo de algoritmos

Anlisis del problema Diseo del algoritmo


El primer paso consiste en identificar los datos de entrada y los datos El segundo paso consiste el escribir el algoritmo. En la Figura 1.4 se
de salida (ver la Figura 1.1). Adems es necesario distinguir aquellos ele- observa el algoritmo diseado; siempre se comienza por Inicio y se avanza
mentos importantes de los que no son relevantes dentro del enunciado del de manera secuencial hasta terminar en Fin. El diseador de algoritmos
problema. debe tener como objetivo cumplir con tres importantes caractersticas: que

GLOSARIO
el algoritmo sea preciso, sea definido y sea finito.
Datos de entrada: Distancia recorrida (en kilmetros) y cantidad de ga-
solina (en litros).
Datos de salida: Rendimiento de gasolina (en kilmetros por litro).
Anlisis: El dato de que se el auto se desarrolla en una planta automo-
triz es irrelevante, lo mismo el dato que el auto es nuevo. El enunciado po-
dra quedar de la siguiente manera:

RECURSOS
Dados los datos de la distancia recorrida y la cantidad de gasolina em-
pleada, determinar el rendimiento de un auto en kilmetros por litro.
Al explorar las frmulas o relaciones tiles, se plantea la solucin utili-
zando una regla de tres que involucre los datos de los que se disponen:

ACTIVIDAD
Figura 1. 4. Algoritmo diseado para la solucin del problema.

CONCLUSIN
Dado el anlisis, las variables necesarias para elaborar el algoritmo se-
ran: distancia, gasolina y rendimiento.
Pg. 5 de 11

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin


Glosario

TEMAS CAPTULO 1
10 1.3 Diseo de algoritmos

Lenguaje de programacin C++


Verificacin del algoritmo Elaboracin del programa
Extensin del lenguaje de progra-
El tercer paso consiste en validar que el algoritmo en Una vez diseado el algoritmo que resuelve el proble- macin C que incluye varias amplia-
efecto resuelva el problema que se plante. Comnmente ma, y que ste fue verificado, se traduce a un lenguaje de ciones del bsico, sobre todo para
se utilizan casos de prueba conocidos u operaciones con programacin. En la Figura 1.6 aparece el algoritmo tradu- soportar la programacin orientada a
objetos. Ha ganado gran aceptacin
resultados predecibles. Se debe pensar en cubrir el mayor cido al lenguaje de programacin C++, que se usar a lo en los ltimos aos.

GLOSARIO
espectro posible de datos de entrada. En la Figura 1.5 se largo de este eBook. No se espera que en este momento
observa el uso de un caso especfico para probar el algorit- el lector identifique cada una de las partes del programa,
mo. Segn los resultados obtenidos, es factible regresar al ni mucho menos las reglas que se siguieron para su escri-
anlisis del problema, modificar el algoritmo y verificar las tura. El programa se muestra al lector con fines ilustrati-
veces que sea necesario. vos, con la intencin de ubicar el momento de su creacin
dentro del proceso general. En los siguientes captulos se
abordar a detalle el tema del lenguaje de programacin.

RECURSOS
Ligas de inters
Despliega una gran variedad de
recursos asociados con el lengua-
je de programacin C++: ligas a

ACTIVIDAD
Figura 1. 5. Verificacin de un algoritmo. artculos, videos, tutoriales, espe-
cificaciones, estndares y mucho
Se sugiere al lector no abandonar la fase de ms.
resolucin del problema hasta no tener un alto Stroustrup, B. The C++ Programming
nivel de certeza sobre el algoritmo diseado. Language. Recuperado de Bjarne
Invertir tiempo en esta fase, ahorra mucho Stroustrups Homepage

CONCLUSIN
tiempo en etapas posteriores del proceso.

Pg. 6 de 11

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
11 1.3 Diseo de algoritmos

Verificacin del programa


Esta tarea consiste en corroborar que el programa funcione correctamente,
no slo con los ejemplos utilizados en su diseo, sino bajo cualquier circuns-
tancia. Para ello se sugiere analizar los posibles escenarios de uso y alimentar
con ellos el programa para validar su funcionamiento.

GLOSARIO
Del conjunto de pruebas a las que se somete el programa pueden derivarse
modificaciones al mismo, como aadir instrucciones para mejorar su funciona-
miento e incluso modificar la estructura del programa. Por este motivo es muy
importante que esta tarea se realice con sumo cuidado. Incluso puede darse el
caso que estas pruebas revelen algn defecto grave en el diseo del algoritmo,
lo cual obligara a regresar a la fase de resolucin del problema. Esta situacin,
aunque poco frecuente, est contemplada en la Figura 1.3.

RECURSOS
Lo ms importante del proceso descrito es separar la tarea de
disear y verificar el algoritmo de la tarea de escribir y verificar el
programa. Estas dos tareas son ciertamente complementarias, pero
Figura 1. 6. Programa escrito en el lenguaje de programacin C++ que calcula
el rendimiento de un auto.
de naturaleza muy distinta. Por un lado, el diseo de un algoritmo
se centra en encontrar la solucin al problema, mientras que la
escritura de un programa se centra en traducir un algoritmo a un

ACTIVIDAD
Ntese que al traducir el algoritmo al lenguaje de programacin, el lenguaje de programacin, de acuerdo con las reglas del mismo.
nmero de instrucciones es mayor al nmero de pasos del mismo al-
goritmo expresado en lenguaje natural. Esto era de esperarse, ya que
el mayor nivel de expresividad lo posee indiscutiblemente el lenguaje
natural. Sin embargo, es justo tambin aclarar que el mismo algoritmo
expresado en cdigo binario, el lenguaje computacional, tomara varias

CONCLUSIN
decenas de lneas. De ah el que los lenguajes de programacin se
hayan consolidado desde hace varios aos, como el paso intermedio
entre el lenguaje de las personas y el de la computadora.

Pg. 7 de 11

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
12 1.3 Diseo de algoritmos

Ejemplos:
A continuacin se presentan algunos ejemplos en los que se observa cada etapa de la fase de resolucin del problema. Es primordial que esta primera
parte quede muy clara para el lector, de tal forma que facilite su aprendizaje en los temas siguientes.
En la figura 1.7 puede revisarse, detalladamente, el proceso a seguir en un nuevo problema, el de las patinetas:

GLOSARIO
Problema Anlisis del problema

Una planta de produccin de patinetas est Datos de entrada: El punto clave es que se requiere saber el
a punto de cerrar, se necesita saber cuntas Nmero de tablas en almacn nmero de patinetas completas.

RECURSOS
patinetas completas pueden producirse con Nmero de ruedas en almacn
el material que resta en almacn. La materia Dividir las tablas entre dos determina el n-
prima consta de las siguientes partes: tablas Datos de salida: mero mximo de patinetas que se pueden
y ruedas. Nmero de patinetas completas que pue- fabricar con las tablas existentes.
den ser producidas Dividir las ruedas entre cuatro determina el
Se sabe que para producir una patineta se re- nmero mximo de patinetas que se pue-
Planteamiento del problema: den fabricar con las ruedas existentes.
quieren 2 tablas y 4 ruedas.
Dados el nmero de tablas y el nmero de rue-

ACTIVIDAD
das que restan en el almacn, calcular las pa- El valor que limita la fabricacin es el menor
tinetas completas que pueden producirse. Se de los dos anteriores.
sabe que para hacer una patineta se requieren
2 tablas y 4 ruedas. Variables a utilizar: ruedas, tablas, pares,
cuartetos, total.

CONCLUSIN
Pg. 8 de 11

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
13 1.3 Diseo de algoritmos

Diseo del algoritmo Verificacin del algoritmo

GLOSARIO
1. Inicio Nmero de tablas = 6
2. Leer el nmero de tablas en almacn Nmero de ruedas = 10
3. Leer el nmero de ruedas en almacn
4. Calcular el nmero de pares, dividiendo el nmero de Nmero de pares = 6 / 2 = 3
tablas entre dos. Nmero de cuartetos = 10 / 4 = 2 y sobran 2 ruedas

RECURSOS
5. Calcular nmero de cuartetos, dividiendo el nmero de
ruedas entre cuatro. Nmero de cuartetos (2) es menor que nmero de pa-
6. El nmero de patinetas completas que pueden produ- res (3), entonces solo pueden producirse 2 patinetas
cirse se calcula tomando el menor valor entre pares y
completas.
cuartetos.
7. Escribir el nmero total de patinetas completas que
pueden producirse

ACTIVIDAD
8. Fin

CONCLUSIN
Figura 1. 7. Fase de resolucin del problema para el problema de las patinetas.

Pg. 9 de 11

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
14 1.3 Diseo de algoritmos

Observe cmo de cada una de las etapas se debe derivar, naturalmente, la siguiente. Es importante que si el lector se est iniciando en el mundo de la
programacin, lleve a cabo con cuidado cada etapa. Poco a poco, algunas etapas irn fluyendo de manera ms natural conforme se adquiere habilidad en
la solucin de problemas.
De la misma forma, ahora se revisar otro problema, el de la deteccin de colisiones. En la Figura 1.8 pueden apreciarse cada una de las etapas de la
fase de resolucin del problema.

GLOSARIO
Problema Anlisis del problema

Datos de entrada: Cada crculo puede ser representado por sus coordenadas y el
Se debe disear el sistema de colisiones de
Radio y coordenadas del crculo 1 radio.
un videojuego de aviones. De acuerdo con el (x2, y2)

RECURSOS
planteamiento del juego cada avin est re- Radio y coordenadas del crculo 2
(x1, y1) r2
presentado en el espacio por un crculo que (x1, y1) (x2, y2)
Datos de salida:
lo encierra. Elabore un algoritmo que permita r1 r2 r1
Si hay colisin o no
identificar si hay colisin o no entre dos avio- d
nes, en un instante dado del juego d
Planteamiento del problema:
Dados dos crculos ubicados en el es- El radio no depende de la orientacin por lo que es una buena
pacio, determinar si stos se intersec- medida para que la solucin no dependa de la alineacin de los

ACTIVIDAD
tan o no. crculos.
Por otro lado la distancia entre los dos centros se puede calcu-
lar con la frmula:
d = (x2- x1) + (y2-y1)
2 2

De ah se observa que la suma de los radios debe ser mayor


que la distancia entre los centros para que exista colisin.

CONCLUSIN
Pg. 10 de 11

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
15 1.3 Diseo de algoritmos

Diseo del algoritmo Verificacin del algoritmo

GLOSARIO
Sean:
1. Inicio r1 = 2, (x1, y1) = (0,0) y r2 = 2, (x2, y2) = (3,0)
2. Leer el radio r1 y posicin (x1, y1) del crculo 1
Suma de los radios = 4
3. Leer el radio r2 y posicin (x2, y2) del crculo 2
4. Calcular la suma de los radios sumando r1 + r2 d=3
5. Calcular la distancia d entre el centro del crculo 1 y el

RECURSOS
centro del crculo 2. Para obtener d calcular la raz cua- La suma de los radios (4) es mayor que la distancia entre
drada de la suma de los cuadrados de las diferencias en los centros (3) por lo tanto s hay colisin.
los componentes (x, y) de los crculos. y
6. Si la suma de los radios es mayor que la distancia d en-
tonces Escribir S hay colisin, de lo contrario Escribir x
No hay colisin. 0 1 2 3 4 5

ACTIVIDAD
7. Fin

Figura 1. 8. Fase para la resolucin del problema de las colisiones.

CONCLUSIN
Pg. 11 de 11

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
16 1.4 Notaciones para escribir algoritmos

1.4. Notaciones para escribir algoritmos

E
l uso del lenguaje natural no es la nica opcin al momento de escribir
un algoritmo. Existen adems otras opciones, cada una con ventajas y
desventajas respecto de las dems. En este eBook se abordarn las
tres ms utilizadas: lenguaje natural, diagramas de flujo y pseudocdigo.

GLOSARIO
RECURSOS
Lenguaje natural: Esta opcin se presenta como la ms accesible, su ca-

ACTIVIDAD
pacidad expresiva es muy alta, pero con frecuencia tiende a ser ambigua. Por
otro lado, en el caso de problemas ms complejos, resultara muy complicado Figura 1. 9. Simbologa utilizada para construir diagramas de flujo.
describir cada detalle del algoritmo en lenguaje natural.
Diagramas de flujo: Esta forma de representar algoritmos, involucra ele- En los ejemplos mostrados en la Figura 1.9 puede observarse que
mentos grficos para representar las operaciones que se pueden realizar. Cada aunque se utiliza el mismo smbolo para entrada y salida de datos, son
elemento tiene un significado determinado y est unido a los dems por flechas las palabras Obtener y Mostrar las que determinan el uso especfico del

CONCLUSIN
que especifican el orden en que se realiza la secuencia. En la Figura 1.9 pue- smbolo en el contexto de un algoritmo. Tambin se usan las palabras
den observarse los principales smbolos grficos utilizados en los diagramas leer y escribir para denotar entrada y salida de datos, respectivamente.
de flujo.

Pg. 1 de 5

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
17 1.4 Notaciones para escribir algoritmos

Cada algoritmo, representado por medio de un diagrama de flujo, debe cumplir con ciertas reglas
bsicas de diseo:
1. Por principio todo algoritmo debe tener un solo smbolo de inicio y uno de fin.
2. Despus de realizar cada accin, debe quedar claro cul es el siguiente paso.

GLOSARIO
3. Todos los posibles caminos deben conducir, eventualmente, al fin del algoritmo.
En la Figura 1.10 se observan los diagramas de flujo que corresponden a los algoritmos para cal-
La representacin que se muestra en la Figura
cular el rendimiento de gasolina y la produccin de patinetas completas.
1.10 resulta conveniente para aquellas personas
que comprenden los conceptos de manera vi-
sual, ya que est basada en elementos grficos.
De hecho es muy comn que quienes se inician

RECURSOS
en el mundo de la programacin, encuentren esta
representacin ms comprensible, pues presenta
con claridad la secuencia y el funcionamiento del
un algoritmo, paso a paso. Las bifurcaciones en
el flujo del algoritmo, como la que se observa en
la Figura 1.10 (b), son fcilmente comprensibles
bajo esta notacin ya que resulta muy claro que
el flujo contina por uno de los dos posibles ca-

ACTIVIDAD
minos.
Si el lector desea experimentar con esta no-
tacin para la representacin de algoritmos hay
diferentes herramientas diseadas para ese fin.
Raptor por ejemplo est diseada para elabo-
rar y ejecutar diagramas de flujo que proporciona

CONCLUSIN
un acercamiento directo al diseo de algoritmo
Figura 1. 10. Algoritmos expresados en forma de diagrama de flujo. (a) Para calcular el rendimiento de gasolina. (b) de manera visual, simulando incluso el algoritmo
Para calcular la produccin mxima de patinetas completas. en ejecucin.
Pg. 2 de 5

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
18 1.4 Notaciones para escribir algoritmos

Observe, en la Figura 1.11, los algoritmos antes descritos elaborados


Pseudocdigo: Esta representacin es la ms cercana a lo que signifi-
y ejecutados en Raptor. cara escribir un programa directamente en un lenguaje de programacin. Su
sintaxis es menos especfica que la de un lenguaje de programacin, pero
mantiene una estructura muy similar. En la Figura 1.12 se muestra la notacin
bsica para el uso del pseudocdigo: (los elementos delimitados por los sm-
bolos <> denotan elementos genricos y deben ser sustituidos por smbolos

GLOSARIO
especficos dentro los algoritmos que se diseen).

RECURSOS
Figura 1. 11. Diagramas de flujo elaborados en Raptor. (a) Para calcular el
rendimiento de gasolina. (b) Para calcular la produccin mxima de patinetas
completas.

ACTIVIDAD
Cabe aclarar que hay variaciones en la notacin utilizada por Raptor,
esto debido a las convenciones de la propia herramienta. Por ejemplo,
emplea las palabras GET y PUT en lugar de leer y escribir. Adems, agre-
ga mensajes de texto adicionales a las entradas y salidas. Por otro lado,
aade pequeas flechas a la izquierda o derecha del smbolo de entrada/
salida de datos con la finalidad de hacer ms evidente la diferencia entre
un uso y el otro. Finalmente, Raptor ampla en smbolo de decisin por

CONCLUSIN
cuestiones de despliegue en pantalla, ya que por ser una forma romboidal
Figura 1. 12. Notacin utilizada para escribir algoritmos en pseudocdigo.
su tamao se incrementara desproporcionadamente para expresiones
de gran tamao.
Pg. 3 de 5

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
19 1.4 Notaciones para escribir algoritmos

Normalmente esta representacin se utiliza por quienes estn muy fa- Como se observa en los ejemplos, para la especificacin de algoritmos
miliarizados con el diseo de algoritmos, y es una representacin estndar en trminos de pseudocdigo existe un esquema general. ste se muestra
para comunicar algoritmos de manera efectiva y especficas, pero sin en- a continuacin:
trar en la sintaxis de un lenguaje de programacin en particular. En la Figu-
ra 1.13 se observan los algoritmos de rendimiento de gasolina y produccin Algoritmo <nombre_del_algoritmo>
de patinetas representados en forma de pseudocdigo. [ Constantes

GLOSARIO
<declaraciones_de_constantes> ]
[ Tipos_de_datos
<declaraciones_de_tipos_de_datos> ]
[ Variables
<declaraciones_de_variables> ]

Inicio
<bloque_de_instrucciones>
Fin

RECURSOS
Hasta el momento, slo se han identificado a las variables como con-
tenedores que representan a los datos con los que opera el programa.
En el captulo 2 se abordar este tema con mayor detalle, adems de las
constantes y los tipos de datos. Estos dos ltimos trminos aparecen en el
esquema general que se presenta y es posible que en este momento quiz
escapen a la comprensin del lector.

ACTIVIDAD
Si el lector desea experimentar con esta notacin para la representa-
cin de algoritmos existen mltiples herramientas diseadas para ese fin.
Figura 1. 13. Algoritmos representados en forma de pseudocdigo. (a) Para PseInt, por ejemplo, es una herramienta diseada para elaborar e interpre-
calcular el rendimiento de gasolina. (b) Para determinar la produccin mxima de tar pseudocdigos.
las patinetas.

CONCLUSIN
Pg. 4 de 5

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
20 1.4 Notaciones para escribir algoritmos

Observa en la Figura 1.14 los algoritmos antes descritos elaborados y eje-


cutados en PseInt.

GLOSARIO
RECURSOS
(a) (b)
Figura 1. 14. Pseudocdigo elaborado en PseInt. (a) Para calcular el rendimiento de
gasolina. (b) Para calcular la produccin mxima de patinetas completas.

Sin importar cul sea la representacin del algoritmo en cuestin, lo ms im-

ACTIVIDAD
portante es escribirlo de la manera ms precisa y clara posible. En este eBook
se utilizar mayormente el pseudocdigo debido a su capacidad expresiva y a
la expansin que ha tenido su uso en el mundo de la programacin y el scrip-
ting.
Una vez que se analiza el problema y se disea el algoritmo que lo resuelve,
es momento de proceder a escribir el programa, para lo cual se requieren he-

CONCLUSIN
rramientas especializadas. En la siguiente seccin se abordar el tema de las
herramientas y el software necesario para escribir programas en un lenguaje
de programacin especfico.
Pg. 5 de 5

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

MAPA
Captulo 1. Introduccin a la programacin
Glosario

TEMAS CAPTULO 1
21 1.5 Herramientas auxiliares de la programacin

Cdigo fuente
1.5. Herramientas auxiliares de la programacin
A un programa, compuesto por una serie de Instrucciones de los programas legibles
instrucciones, derivado de un algoritmo y y que han sido escritos en un lenguaje
de alto nivel o ensamblador que no es
escrito en un lenguaje de programacin, se le directamente legible por una computa-
dora. Es necesario compilar el cdigo

glosarioGLOSARIO
denomina cdigo fuente. fuente antes de que una computadora
pueda ejecutarlo.
Hasta este punto, el cdigo fuente no es comprensible Cdigo objeto
directamente para la computadora; cabe recordar que el Cdigo generado por un compilador o
un ensamblador, que ha sido traducido
lenguaje de programacin es una representacin interme- del cdigo fuente de un programa. Este
dia. Para transformar el cdigo fuente en una representa- trmino se refiere habitualmente a cdi-
go mquina, que puede ser ejecutado
cin asequible, es necesario un traductor. directamente por la unidad central de

RECURSOS
procesamiento del sistema (CPU), aun-
Primero se traduce el cdigo fuente a cdigo objeto y que puede tratarse tambin de cdigo
fuente de lenguaje ensamblado, o una
luego, ste ltimo se traduce en cdigo ejecutable. Estas

RECURSOS
variante del cdigo mquina.
dos tareas se realizan por dos programas: el compilador Cdigo ejecutable
y el enlazador, respectivamente.

A
Corresponde a las unidades de progra-
s como existe software diseado para redactar mas, donde el ordenador puede realizar
Como parte de esta traduccin, el compilador revisa las instrucciones compiladas mediante
documentos, para procesar imgenes y para na- el compilador y el enlazador de libreras.
que el programa est correctamente escrito, de acuerdo
vegar en internet, tambin hay software diseado Generalmente se confunde con el cdi-

ACTIVIDAD
con las reglas del lenguaje de programacin. En la Figura go objeto, ya que al leer su estructura se
para escribir programas. El objetivo de este software es comprende como smbolos.
1.14 se observa el procedimiento descrito.
proporcionar a las personas un ambiente cmodo y las

ACTIVIDAD
Compilador
herramientas necesarias para hacerlo.
Programa que convierte un programa
fuente, un conjunto de instrucciones
Lo primero que se requiere para escribir un programa en forma de texto, de un lenguaje de
es un editor de texto. ste puede ser el editor bsico que alto nivel en cdigo mquina. El cdigo
mquina es el lenguaje que el ordenador
todo sistema operativo tiene, o bien el editor ms sofistica- puede ejecutar directamente.

CONCLUSIN
do que los ambientes integrados de desarrollo, IDE por sus Enlazador
siglas en ingls, proporcionan. En cualquier caso el editor

CONCLUSIN
Los ficheros objeto resultantes, junto
es necesario, ya que es ah donde se escriben las instruc- con las libreras ya existentes y nuevas
ciones. A este conjunto de instrucciones de programacin rutinas de cdigo que se deseen aadir,
se agrupan mediante la operacin de
se le denomina comnmente cdigo fuente. enlazado de forma ordenada en un slo
fichero ejecutable.
Pg. 1 de 2

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin


Anexo

TEMAS CAPTULO 1
22 1.6 Piense en grande: Alan Turing

Anexo 1
que decir con respecto a este.
Escribe Cdigo
fuente

GLOSARIO
Compilador

Humano
Cdigo 1.6. Piense en grande: Alan Turing
objeto

T
odos los das se obtienen grandes beneficios gra-
cias a las posibilidades que brinda el mundo de la

RECURSOS
Enlazador computacin: cada vez que se hace una compra o
venta, cuando se accede a internet, al enviar un mensaje

Ejecuta Cdigo
multimedia o simplemente al transitar por las calles de una
ciudad. Las computadoras y el software estn en tantos lu-
Ligas de inters
Ejecutable ejecutable gares que pareciera como si siempre hubieran estado ah.
Pero, quin tuvo la idea que llev a que todo esto fuera Bjarne Stroustrup Creator of C++: how
C++ Combats Global Warming.
posible?, de qu mente visionaria surgi el concepto que
Figura 1. 15. Procedimiento para traducir el cdigo fuente en hoy brinda tantos beneficios? Revise la liga al video que se

ACTIVIDAD
cdigo ejecutable.
presenta en la barra lateral.
El proceso detallado en la Figura 1.15 puede llevarse
Alan Turing imagin lo que en ese momento pareca im-
a cabo a travs de una gran variedad de lenguajes de pro-
posible, luch y defendi sus ideas a pesar de las crticas
gramacin, en el Anexo 1 se aborda, con mayor detalle, el
de los supuestos expertos de la poca. Sirva esto como un
tema de los entornos de desarrollo y la importancia que el
claro ejemplo de lo que el ingenio humano, combinado con
lenguaje C++ tiene en el mundo de la computacin.
el trabajo constante, puede lograr.

CONCLUSIN
En el video de la barra lateral se presenta lo que el mis-
Nadie lo sabe, pero de su mente, estimado lector, podra
msimo Bjarne Stroustrup, creador del lenguaje C++, tiene
surgir la gran idea que represente el siguiente paso en la
evolucin tecnolgica de la humanidad.
Pg. 2 de 2

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
23 Actividad de repaso

Actividad de repaso

A
nalice los siguientes problemas y realice, para cada uno, las tres etapas de la fase de resolucin del problema. En cada caso se indica la
representacin del algoritmo que debe presentarse.

GLOSARIO
Problema 1. Serie aritmtica (algoritmo en lenguaje natural) pantalla presente el mensaje normal. Si es mayor o igual a 20 y menor
Elaborar un programa que calcule los dos siguientes nmeros de una a 100 que presente alerta amarilla y el factor RK (que resulta de dividir
serie. Para ello el programa deber pedir los tres primeros nmeros y el nmero de oscilaciones entre 100). Finalmente, si es mayor o igual a
calcular automticamente los dos siguientes para mostrarlos en pan- 100 que muestre alerta roja.
talla. Nota: La secuencia de la serie slo puede estar determinada por Problema 4. Puerta automtica (algoritmo en diagrama de flujo)
sumas y restas, por ahora no tomes en cuenta series ms complejas. Se tienen tres lecturas provenientes de tres sensores de proximidad
Problema 2. Lneas de produccin (algoritmo en lenguaje natural) ubicados en la parte superior de una puerta elctrica. Para que la puerta

RECURSOS
En una maquila, un supervisor de produccin registr durante un buen se abra es necesario que al menos dos de los tres sensores presenten
tiempo la cantidad de producto terminado que genera diariamente cada lecturas menores a 1.5 metros.
lnea de produccin. Despus de dos meses, calcul lo que produce Disea un algoritmo que pida las lecturas de los tres sensores e indique
cada una de ellas en promedio por da. Se tienen tres lneas de produc- si la puerta debe abrirse o debe permanecer cerrada.
cin y se desea tener un programa que permita saber cuntos das se Problema 5. Cotizaciones (algoritmo en diagrama de flujo)
necesitan para surtir un pedido de N camisas; la intencin es mejorar
la planeacin de los tiempos de entrega y la de los insumos necesarios En el gobierno del Estado se est licitando la construccin de una carre-

ACTIVIDAD
para producirlas, ya que ltimamente se han registrado retrasos en los tera. Se tienen 5 empresas candidatas. Elabora un programa que pida
tiempos de entrega. el monto de las 5 cotizaciones. Enseguida se deber descartar la ms
barata y la ms cara, luego se deber obtener el promedio de las que
Problema 3. Alerta ssmica (algoritmo en diagrama de flujo) restan. El programa deber mostrar en pantalla las cotizaciones que se
En el tablero controlador R300 del sistema nacional de alerta ssmica, eliminan y el promedio del resto de las cotizaciones. Debes pensar en
existe un medidor que indica el nmero de oscilaciones por minuto que una manera eficiente de descartar usando el menor nmero de condi-
registra un sensor. Se requiere elaborar un programa que permita mos- ciones posible (menos de 10).

CONCLUSIN
trar una alerta en la pantalla de los operadores de acuerdo con las si-
guientes condiciones: si el nmero de oscilaciones es menor a 20 que la

Pg. 1 de 2

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
24 Actividad de repaso

Actividad de repaso
Problema 6. Relaciones (algoritmo en pseudocdigo) saber cuntos refrescos puede llenar la mquina de una sola vez, sin
Dados tres nmeros determina si la suma de cualquier pareja de ellos recargar el contenedor. Slo se tienen los datos del radio de la base y
es igual al tercer nmero. Si se cumple esta condicin escribir Existe la altura, ambos medidos en metros.

GLOSARIO
relacin y mostrar la relacin, de lo contrario escribir No se relacio- Problema 10. Promedio (algoritmo diagrama de flujo)
nan. Por ejemplo 3 9 6 s tienen relacin puesto que 6+3=9. Dadas tres calificaciones se requiere saber si el promedio es superior o
Problema 7. Piezas lego (algoritmo en pseudocdigo o diagrama igual a 70, de ser as deber mostrar el mensaje Aprobado y mostrar
de flujo) el promedio calculado; de lo contrario deber mostrar slo el mensaje
Se tiene un conjunto de piezas de lego para construir. Slo existen dos Reprobado y el nmero de puntos que le faltaron para aprobar.
tipos de piezas, cubos y ruedas. Para formar un auto se requieren 10 Problema 11. Transferencias (algoritmo en pseudocdigo)
cubos y 4 ruedas. Para formar un avin se requieren 15 cubos y 2 rue-

RECURSOS
Elabore un programa que pida el monto de 6 transacciones bancarias,
das. enseguida la computadora deber mostrar la suma total de las transac-
Dados el nmero de cubos y ruedas, determina cul modelo conviene ciones y el nmero de transacciones de monto mayor o igual a 15,000
construir si se quiere construir el mayor nmero de modelos posible, y pesos.
otra condicin es que todos ellos deben ser del mismo modelo. Problema 12. Clientes preferenciales (algoritmo en diagrama de
Problema 8. Regiones y reas (algoritmo en lenguaje natural) flujo)
Dado un cuadrado con un crculo circunscrito dibujado en el interior, se El negocio de don Rmulo es una empresa cuya actividad comercial es

ACTIVIDAD
necesita saber cul es el rea del espacio que est fuera del crculo, la de vender libretas por mayoreo. El precio unitario de la libreta vara
pero dentro del cuadrado. Define cul sera el menor nmero de datos dependiendo de la cantidad de libretas que el cliente solicite.
de entrada que necesitaras y elabora el algoritmo que resuelva el pro- Desde 1 a 100 libretas el precio unitario es de $6.00, de 101 a 1000
blema. el precio es de $5.20 y de 1001 en adelante el precio es de $4.50 por
Problema 9. Mquina envasadora (algoritmo en diagrama de flu- pieza.
jo) Se requiere un algoritmo que obtenga la cantidad de libretas que va a
Resulta que ha llegado una nueva mquina embotelladora de refres- comprar. Dependiendo de ello deber calcularse y mostrarse el total a

CONCLUSIN
cos, el contenedor principal de la mquina tiene forma cilndrica. Se pagar.
sabe que cada envase de refresco debe contener M mililitros. Se desea

Pg. 2 de 2

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
25 Ejercicio integrador del captulo 1

Ejercicio integrador del captulo 1

GLOSARIO
RECURSOS
ACTIVIDAD
CONCLUSIN
Pg. 1 de 1

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Captulo 1. Introduccin a la programacin

TEMAS CAPTULO 1
26 Conclusin del captulo 1

Conclusin del captulo 1

GLOSARIO
omo se vio en este captulo, el proceso para solucionar problemas a tra-
vs de la programacin no es una tarea sencilla, requiere de una serie
de conocimientos y habilidades especficas. La buena noticia es que, sin
saberlo, todos han trabajado en el desarrollo de dichas habilidades, en mayor
o menor medida, a lo largo de la propia formacin acadmica e incluso desde
la infancia temprana.

RECURSOS
Las personas disean algoritmos todos los das sin pensarlo siquiera: por las
maanas al determinar el orden de las actividades para llegar temprano a traba-
jar en funcin del tiempo restante; al jugar cuando se piensa en una estrategia
para vencer al oponente en funcin de su pericia; mientras se trabaja y se busca
la manera de mejorar un proceso para ahorrar tiempo o dinero.
Los siguientes captulos, abordarn los diferentes aspectos del lenguaje C++;
a fin de que cada lector se convierta, gradualmente, en el autor de sus propias

ACTIVIDAD
herramientas tecnolgicas. Las computadoras han llegado para quedarse, y el
profesionista que sea capaz de programarlas, ir siempre un paso delante de
los dems.

CONCLUSIN
Pg. 1 de 1

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

TEMAS CAPTULO 1
GLOSARIO
Glosario del captulo 1

RECURSOS
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
C go fuente antes de que una computadora pueda Programa que convierte un programa fuente, un
ejecutarlo. conjunto de instrucciones en forma de texto, de
Cdigo ejecutable un lenguaje de alto nivel en cdigo mquina. El
Corresponde a las unidades de programas, don- cdigo mquina es el lenguaje que el ordenador
Cdigo objeto puede ejecutar directamente.

ACTIVIDAD
de el ordenador puede realizar las instrucciones
compiladas mediante el compilador y el enlaza- Cdigo generado por un compilador o un ensam-
dor de libreras. Generalmente se confunde con
el cdigo objeto, ya que al leer su estructura se
blador, que ha sido traducido del cdigo fuente
de un programa. Este trmino se refiere habitual- E
comprende como smbolos. mente a cdigo mquina, que puede ser ejecu- Enlazador
tado directamente por la unidad central de pro-
cesamiento del sistema (CPU), aunque puede Los ficheros objeto resultantes, junto con las li-
Cdigo fuente tratarse tambin de cdigo fuente de lenguaje breras ya existentes y nuevas rutinas de cdigo
que se deseen aadir, se agrupan mediante la

CONCLUSIN
Instrucciones de los programas legibles y que ensamblado, o una variante del cdigo mquina.
operacin de enlazado de forma ordenada en un
han sido escritos en un lenguaje de alto nivel o slo fichero ejecutable.
ensamblador que no es directamente legible por Compilador
una computadora. Es necesario compilar el cdi-
Pg. 1 de 2

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

TEMAS CAPTULO 1
Glosario del captulo 1
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
I Semntica
rea de la gramtica que interpreta el significado de los enunciados gene-

GLOSARIO
IDE rados por el lxico y la sintaxis.
Acrnimo de Integrated Device Electronics. Tipo de interfaz para unidades Sintaxis
de disco, cuya electrnica de control reside en la propia unidad, elimina la
necesidad de una tarjeta adaptadora independiente. Orden en que deben introducirse los comandos y parmetros de comandos
en el indicador del sistema informtico. Reglas gramaticales de un lenguaje
L de programacin.
Lnea de comandos T

RECURSOS
En algunos sistemas operativos de tipo no grfico, la interfaz permite al
usuario introducir, desde el teclado, las instrucciones y mandatos necesa- Terminal
rios para la correcta explotacin de las tareas que ejecuta el ordenador. Dispositivo que consiste en un adaptador de vdeo, un monitor y un teclado.
El adaptador y monitor y, a veces, el teclado normalmente se combinan en
Lenguaje de programacin
una sola unidad. Una terminal realiza poco o nada del procesamiento de la
Lenguaje que emplean los programadores para desarrollar aplicaciones es- computadora por s misma; en cambio, se conecta a una computadora con
pecficas. Entre los lenguajes de programacin ms extendidos estn Basic, un enlace de comunicaciones sobre un cable. Las terminales se utilizan
Cobol, Pascal, C, C++ y Java. principalmente en sistemas multiusuario, pues actualmente no se encuen-
tran a menudo sobre computadoras personales de un slo usuario.

ACTIVIDAD
Lenguaje de programacin C++
Extensin del lenguaje de programacin C que incluye varias ampliaciones U
del bsico, sobre todo para soportar la programacin orientada a objetos.
Ha ganado gran aceptacin en los ltimos aos. URL

S Acrnimo de Uniform Resource Locator. Una direccin para un recurso en


Internet. Los URL utilizan los exploradores Web para localizar recursos de
Scripting Internet. Un URL especifica el protocolo que se va a utilizar al acceder al
recurso (como http: para una pgina del World Wide Web o ftp: para un sitio

CONCLUSIN
Secuencias de comandos almacenados como archivos que se pueden eje- FTP File Transfer Protocol), el nombre del servidor donde reside el recur-
cutar como programas. so (como //www.whitehouse.gov) y, opcionalmente, la ruta al recurso (como
un documento de HTML o un archivo del servidor).

Pg. 2 de 2

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

TEMAS CAPTULO 1
GLOSARIO
Recursos del captulo 1

RECURSOS
En este sitio encontrar los videos de las series Alterados por Pi y Alterados por Pi II. Serie de captulos donde Adrin Paenza aborda problemas cien-
tficos y matemticos, muchos de ellos relacionados con el mundo de la computacin.
Communications of the ACM. Magazine Archive | Communications of the ACM:. Recuperado de Communications of the ACM http://cacm.acm.org/ma-
gazines
Presenta los nmeros de la revista digital de ACM. Estas revistas contienen artculos muy interesantes sobre los problemas de frontera que estn sien-

ACTIVIDAD
do estudiados por los mejores investigadores del mundo.
British Computer Society. Pioneers who truly enabled the information society. Recuperado de Information Pioneers http://pioneers.bcs.org/
Pgina con informacin sobre la historia de los pioneros en el rea de la programacin y de la computacin en general. La informacin se presenta en
forma de videos realizados con una excelente produccin.
Eclipse Foundation. C/C++ Development Tooling (CDT). Recuperado de Eclipse - The Eclipse Foundation open source community website
http://www.eclipse.org/projects/project_summary.php?projectid=tools.cdt En este sitio encontrar el IDE Eclipse, as como una serie de recursos aso-

CONCLUSIN
ciados con su aprendizaje y uso efectivo.

Pg. 1 de 2

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Recursos del captulo 1

TEMAS CAPTULO 1
Free Software Foundation, Inc. GCC, the GNU Compiler Collection. Recuperado de GNU Project: http://gcc.gnu.org/
presenta el conjunto de compiladores del proyecto GNU as como una serie de recursos relacionados con el mundo del software libre.
Stroustrup, B. The C++ Programming Language. Recuperado de Bjarne Stroustrups Homepage http://www2.research.att.com/~bs/C++.html

GLOSARIO
Despliega una gran variedad de recursos asociados con el lenguaje de programacin C++: ligas a artculos, videos, tutoriales, especificaciones, estn-
dares y mucho ms.

RECURSOS
ACTIVIDAD
CONCLUSIN
Pg. 2 de 2

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

ndice
Introduccin del eBook iii Conclusin del captulo 247
Captulo 1. Introduccin a la programacin iv Glosario del captulo 248
1.1. Uso de programas para la solucin de problemas 1 Recursos del captulo 250
1.2. Del lenguaje natural al lenguaje mquina2 Captulo 3. Funciones: Organizacin y eficiencia51
1.3. Diseo de algoritmos3 3.1 Definicin de funcin y parmetros 52
1.4. Notaciones para escribir algoritmos12 3.2 Funciones predefinidas 59
1.5. Herramientas auxiliares de la programacin17 3.3 Creacin de funciones 68
1.6. Piense en grande: Alan Turing18 3.4 Valores de retorno78
Actividad de repaso19 3.5 Estrategia de diseo, divide y vencers 79
Ejercicio integrador del captulo 121 3.6 Piense en grande: desarrollo de videojuegos, equipos gigantes
Conclusin del captulo 122 de trabajo79
Glosario del captulo 123 Actividad de repaso80
Recursos del captulo 125 Ejercicio integrador del captulo 381
Captulo 2. Conceptos bsicos27 Conclusin del captulo 382
2.1. Estructura bsica de un programa28 Glosario del captulo 383
2.2. Entradas y salidas de datos32 Recursos del captulo 385
2.3. Definicin de tipos de datos, variables y constantes34 Captulo 4. Estructuras de control86
2.3.1 Tipos de datos y variables34 Estructuras de control87
2.3.2 Representacin y almacenamiento de datos36 4.1 Condiciones (if y switch) 87
2.4. Lmites y conversiones entre tipos de datos, casting explcito e 4.2 Expresiones lgicas simples y compuestas107
implcito 37 4.3 Repeticiones for, while108
2.5. Operadores aritmticos, relacionales y lgicos39 4.4 Repeticiones do-while120
2.5.1 Precedencia de operadores41 4.5 Criterios para el uso de ciclos124
2.6. Convenciones de codificacin y documentacin42 4.6 Piense en grande: minera de datos, procesar terabytes de infor-
2.7. Piense en grande: criptografa, el arte de la transformacin43 macin125
Actividad de repaso44 Actividad de repaso126
Ejercicio integrador del captulo 246 Actividad de repaso127

Pg. 1 de 2

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

ndice
Actividad de repaso128 Actividad de repaso179
Ejercicio integrador del captulo 4129 Ejercicio integrador del captulo 6180
Conclusin del captulo 4130 Conclusin del captulo 6181
Glosario del captulo 4131 Glosario del captulo 6182
Recursos del captulo 4132 Recursos del captulo 6184
Captulo 5. Arreglos: almacenamiento temporal133 Captulo 7. Archivos: almacenamiento persistente185
Arreglos: almacenamiento temporal134 Archivos: almacenamiento persistente186
5.1 Definicin de arreglo 134 7.1 Definicin de archivo 186
5.2. Manejo de ndices138 7.2 Operaciones sobre archivos de texto y binarios 189
5.3. Uso de arreglos para representar y procesar datos compuestos 7.3 Almacenamiento de informacin191
154 7.4 Recuperacin de informacin199
5.4 Piense en grande: bioinformtica, secuencias e identificacin de 7.5 Piense en grande: Centros de datos, ocanos de informacin
patrones154 203
Actividad de repaso155 Actividad de repaso204
Ejercicio integrador del captulo 5156 Ejercicio integrador del captulo 7205
Conclusin del captulo 5157 Conclusin del captulo 7206
Glosario del captulo 5158 Glosario del captulo 7207
Recursos del captulo 5159 Recursos del captulo 7208
Captulo 6. Cadenas de caracteres160 Ligas de inters209
Captulo 6. Cadenas de caracteres161 Glosario general213
6.1 Definicin de cadena de caracteres 161 Referencias220
6.2 Operaciones sobre cadenas de caracteres 162 ndice223
6.3 Uso de cadenas de caracteres para procesar textos170 Aviso legal226
6.4 Concatenacin y divisin, delimitadores174
6.5 Piense en grande: caso Watson, el nuevo paso en la evolucin
computacional177
Actividad de repaso178

Pg. 2 de 2

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.


Fundamentos de programacin: un enfoque prctico

Aviso legal

Hernndez Alamilla, Sergio Francisco

Fundamentos de programacin: un enfoque prctico / Hernndez Alamilla, Sergio Francisco

p. 240 cm.

1. Programacin de computadoras

LC: QA76.6 Dewey: 001.642

eBook editado, diseado, publicado y distribuido por el Instituto Tecnolgico y de Estudios Superiores de Monterrey.
Se prohbe la reproduccin total o parcial de esta obra por cualquier medio sin previo y expreso consentimiento por escrito del Instituto Tecnolgico y de Es-
tudios Superiores de Monterrey.

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico. 2014


Ave. Eugenio Garza Sada 2501 Sur Col. Tecnolgico C.P. 64849 | Monterrey, Nuevo Len | Mxico.

ISBN en trmite
Edicin: Enero 2014

Pg. 1 de 1

D.R. Instituto Tecnolgico y de Estudios Superiores de Monterrey, Mxico 2014.