5. A mí dedicada, comprensiva y amorosa familia,
A mis maestros, Víctor Hugo Angel y Marlon Manrique.
A todos mis antiguos, presentes y futuros alumnos.
11. 7.2.2.
7.2.3
7.3
7.3.1
7.3.2
8.
8.1
8.2
9.
9.1.
9.2.
9.2.1.
9.2.2
9.2.3
9.2.3.1
9.2.3.2
9.2.3.3
9.3.
9.3.1
9.3.2
9.3.3
9.3.3.1
9.3.3.2
9.4.
9.4.1.
9.4.2.
9.4.3.
10.
10.1.
10.2.
10.3.
El ciclo MientrasQue ... FinMientras
El ciclo Repita ... HastaQue
Usos de los ciclos.
Generadores de números.
Contadores
La prueba de Escritorio
Introducción
Reglas para usar una prueba de escritorio.
Arreglos.
Introducción
Arreglos unidimensionales o vectores
Reglas para nombrar vectores.
Declaración de una variable de tipo vector
Operaciones sobre vectores
Declaración e inicialización
Recorrido
Asignación y obtención de valores
Arreglos bidimensionales o matrices
Reglas para nombrar matrices.
Declaración de una variable de tipo matriz.
Operaciones sobre matrices
Declaración, inicialización y recorrido
Asignación y obtención de valores
Métodos de ordenamiento
Método burbuja
Método por selección
Método por inserción
Funciones
Introducción
Definición
Tipos de funciones
Anexos
Indice
179
182
184
184
193
211
212
212
219
220
220
223
224
224
225
226
227
242
242
244
244
245
246
255
255
257
257
263
264
264
266
277
283
14. 2. Fundamentos de programación, guía de autoenseñanza.
OBJETIVOS
Realizar un recorrido resumen acerca de la evolución de los computadores
personales (PC).
Presentar de manera general el hardware y del software de un computador.
Explicar los diferentes dispositivos de un ordenador.
Conocer que es la programación de computadores.
Entender el concepto de lenguaje de programación.
1.1. INTRODUCCIÓN.
Una computadora u ordenador es un dispositivo electrónico desarrollado para
ejecutar un conjunto de instrucciones, facilitar el manejo de la información y
procesar datos agrandes velocidades.
El avance de la electrónica hizo posible desarrollar este tipo de maquina, que es
utilizada por toda la sociedad en innumerables usos. Son herramientas esenciales
prácticamente en todos los campos de investigación y en tecnología aplicada. Pero
es para destacar que aun faltan muchos usos por dársele y sacar su máximo
provecho.
El objetivo de este capitulo pretende ambientar al lector sobre conceptos concisos
acerca de la computación, abordando ítems de su evolución desde dos puntos de
vista, a nivel físico o también llamado Hardware (componentes de un ordenador,
tipos de ordenadores, etc.) y en la capa lógica o software (sistemas operativos,
herramientas aplicadas, lenguajes de programación) encargado de administrar la
primera. Ya que es imposible hablar de una sin tenerse en cuenta la otra, y los
avances en ambas ramas repercuten directamente en la otra. Además de
proporcionar unos conceptos claros para que el lector pueda afianzar sus
conocimientos y generar unas sólidas bases.
Plan general.
1.1 Introducción.
1.2 Historia.
1.3 Hardware.
1.4 Software.
1.5 Programación.
15. Capitulo 1, Introducción a las computadoras y lenguajes de programación. 3
1.2. HISTORIA.
1.2.1. Historia del hardware.
600-
500
El ábaco fue la primera maquina desarrollada para ayudar y
realizar cálculos matemáticos, su origen data entre el año 600
y 500 A.C; la estructura consistía en una serie de bolas de
madera que se deslizaban sobre una varilla o cuerda,
avanzando o retrocediendo según la operación.
1617 El inventor de los logaritmos John Napier, construyo unas
piezas de calculo con huesos o marfil denominadas “Huesos
de Napier”, teniendo mucha influencia en la construcción de
la regla de calculo.
1642 El francés Blaise Pascal, matemático y filosofo, invento la
primera calculadora automática denominada “maquina de
Pascal” capaz de sumar y restar, creada originalmente para
apoyar la recaudación de impuestos de su padre.
1666 El maestro de la mecánica de la corte del rey Calos II de
Inglaterra, sir Samuel Morland, crea la maquina de
multiplicar compuesta por una serie de ruedas que
representan las unidades, decenas, centenas, entre otras.
1769 El húngaro Barón Kempelen, crea el jugador de ajedrez
autómata. En manos de Johann Nepomuk viaja por toda
Europa y estados unidos presentándose como el jugador de
ajedrez “robotizado”.
16. 4. Fundamentos de programación, guía de autoenseñanza.
1804 Joseph Marie Jacquard inspirado en las cajas de música que
emplean papel perforado para producir sonido, inventa el
telar Jacquard.
1822 Charles Babbage presenta la maquina diferencial, capaz de
realizar cálculos de tablas simples. Por este desarrollo se le
considera el “padre de los ordenadores modernos”.
1854 El ingles George Boole desarrollo el álgebra de boole,
generando una reducción de combinaciones mediante el uso
de los operadores algebraicos básicos: (y) and, “or” o y “not”
no. Por este desarrollo se le considera el padre de la teoría de
la información.
1906 El estadounidense Lee De Forest creo el tubo de vació. Tenia
tres elementos en una bombilla de cristal vacía. En los años
30 se empezó a utilizar el tuvo al vació para el desarrollo de
ordenadores.
1919 Los estadounidenses W. H. Eccles y F.W. Jordán
desarrollaron el primer Flip – Flop, dispositivo capaz de
cambiar entre dos estados. Este permitió a los circuitos
electrónicos tener dos estados fijos, forjando los modos de
almacenamiento de dígitos binarios para los computadores
modernos.
1946 J. Presper Eckert y John Maucly construyeron el ENIAC, el
primer ordenador electrónico digital. Contenía 18000 tubos
de vació.
1947 John Bardeen, Walter Brattain y William shockley inventaron
el transistor, dispositivo electrónico capaz de regular el flujo
de la corriente eléctrica, permitiendo la reducción en el
tamaño de los ordenadores. Por este desarrollo ganaron el
premio Nóbel en 1956.
1958 Jack Kilby, construyo el primer circuito integrado,
conformado por una serie de componentes de silicona
individuales, ensamblados en conjunto.
1964 IBM presento el System/360, reemplazando los transistores
por tecnología de circuitos integrados.
17. Capitulo 1, Introducción a las computadoras y lenguajes de programación. 5
1969 Data General Corporation distribuyo el primer ordenador a
16 BIT. Este ordenador denominado NOVA aumento la
velocidad y potencia.
1970 Corning Glass Works, inc, comercializó el primer cable de
fibra óptica. A diferencia que de otros cables de naturaleza de
metal, este trasmite as de luz a grandes velocidades,
permitiendo la transmisión de grandes volúmenes de datos.
1971 Intel Corporation desarrollo el primer chip microprocesador,
el 4004.
1975 Micro Instrumentation Telemetry System (MITS)
introdujeron al mercado el Altair. Este ordenador no tenia
teclado, monitor o un dispositivo básico de memoria. Tenia
un procesador Intel 8080 de 8 BIT.
1980 Laboratorio Bell introdujeron el primer microprocesador a 32
BIT, llamado Bellmac-32.
1981 IBM introdujo su primer ordenador basado de un procesador
Intel 8088, un disco flexible y alrededor de 128k o 256k en
memoria Ram. Utilizaba el sistema operativo D.O.S.
1984 Apple computer, inc. Comercializo el primer ordenador
personal Macintosh. Este ordenador tenia un monitor
integrado, ratón y una capacidad de memoria de 128k.
Además era el primer sistema de computo que poseía un
entorno grafico para el trabajo y administración.
1984 IBM distribuyo el PC-AT con procesador Intel 80286. sobre
este ordenador se introdujo un sistema de gráficos EGA,
permitiendo gráficos de 16 colores y un bus de datos de 16
BIT.
1992 Intel desarrollo el procesador 80486 igualando la calidad de
su homólogo 68040 de motorota.
18. 6. Fundamentos de programación, guía de autoenseñanza.
1.2.2. Historia del software.
1957 IBM desarrollo el primer lenguaje de programación de alto
nivel llamado FORTRAN (traductor de formulas). Es muy
usado aun actualmente por muchos científicos, ingenieros y
matemáticos.
1960 Un equipo de la universidad de Pensilvania, apoyado por el
departamento de defensa de los estados unidos, desarrollo un
primer lenguaje de programación llamado COBOL (lenguaje
común orientado a los negocios)
1962 Ivan Sutherland de M.I.T implemento el primer software de
gráficos, permitiendo dibujar interactivamente en la pantalla.
1964 Thomas Kurt y John Kemendy desarrollaron el lenguaje de
programación BASIC, muy popular y usado hasta los días de
hoy.
1967 Richard Greenblatt implemento el primer programa de
ajedrez con éxito llamado MacHack.
1970 E.F Codd publico el primer diseño de bases de datos
relacional.
1978 Brian Kernighan publico una descripción del lenguaje C,
confinando desde principios de los años 60 en Bell
Telephone. C fue y continua siendo el lenguaje de
programación más popular, en los años 80 dio origen al
lenguaje C++, basado sobre el lenguaje pero con el soporte
al paradigma de programación orientado a objetos.
1991 Sun Microsystem bajo el proyecto de James Gosling
desarrollaron el lenguaje Java. Java es el lenguaje mas usado
actualmente y empleado en diferentes ambientes como:
paginas web, ordenadores de escritorio, servidores de alto
rendimiento, equipos móviles y entre otros.
1997 IBM desarrollo el sistema de juego de ajedrez llamado Deep
Blue. En la imagen se muestra al campeón mundial de
ajedrez Gari Kaspárov durante una partida con Deep Blue en
Nueva York.
19. Capitulo 1, Introducción a las computadoras y lenguajes de programación. 7
1.3. HARDWARE
Corresponde a la parte física o tangible del ordenador y esta compuesta por los
siguientes elementos: dispositivos de entrada, salida y almacenamiento.
1.3.1. Elementos de un computador según utilización.
1.3.1.1.Dispositivos de entrada.
Generalmente estos componentes se encuentran ubicados fuera de la torre del
computador y permiten ingresar datos para ser procesados por la CPU. Entres estos
se encuentran: el mouse, teclado, lápiz óptico, tablas digitalizadoras, control de
juegos o joystick, pantallas sensibles al tacto que permiten el usuario señalar
acciones como emplean algunos cajeros electrónicos, cámaras, scanner,
micrófonos, entre otros.
20. 8. Fundamentos de programación, guía de autoenseñanza.
1.3.1.2.Dispositivos de salida.
Estos permiten la visualización de la información en una amplia gama de formatos
o modos. Entre estos se encuentran: las impresoras, las pantallas o monitores,
parlantes, entre otros. Con ellos se busca la representación de la información de
una manera más amena y entendible.
1.3.1.3.Dispositivos de almacenamiento.
A este grupo pertenecen todas las unidades de lectura / escritura (leer / guardar) de
datos. Existen unidades internas y externas a la torre del computador, creadas para
dar solución a las diferentes necesidades del usuario, aplicando diferentes
tecnologías de almacenamiento.
Las unidades CD-ROM, CD-RW, DVD son tanto internas como externas, utilizan
discos compactos para almacenar datos utilizando tecnologías ópticas para el
almacenamiento.
1.3.1.3.1. Internas.
La principal unidad de almacenamiento interna es el disco duro, donde se
almacenan los programas y datos que van a interactuar con el hardware como:
sistemas operativos, aplicaciones de escritorio y de servicios. La unidad de
disquete ha existido por mucho tiempo tendiendo a desaparecer, dadas sus
limitaciones en cantidad de almacenamiento y las innumerables variables como
temperatura, radiación, entre otras. Esta unidad es conocida como la unidad de tres
un medio (3 1/2) o la unidad A. Estas unidades emplean tecnologías magnéticas
para almacenar información.
21. Capitulo 1, Introducción a las computadoras y lenguajes de programación. 9
1.3.1.3.2. Externas.
Son las unidades que se conectan con el exterior de la torre y generalmente son
transportables. Las unidades USB son muy usadas actualmente permitiendo no
solo almacenar datos, sino también música en el formato mp3.
1.3.2. Partes del computador.
1.3.2.1.Mouse o Ratón.
Es un dispositivo apuntador o señalador que le permite a un usuario de un equipo
de computo navegar sobre la interfaz grafica, facilitando el acceso a acciones u
operaciones dentro del ordenador. Algunos mouse actuales emplean aun la
tecnología mecánica de rodillos y bolilla para ubicar el cursor del ratón dentro de
una interfaz grafica. La tecnología nueva emplea ratones infrarrojos que al no
depender de un sistema mecánico permiten tener una gran exactitud requerida para
el trabajo de diseño y creación visual de imágenes computarizadas.
1.3.2.2.El teclado.
Es el dispositivo básico de entrada de acciones hacia un ordenador presionando una
serie de teclas o mediante una combinación de las mismas. Cuenta con teclas de
función numeradas como F1 al F12, un teclado numérico, un teclado alfanumérico,
teclas de desplazamiento del cursor, indicadores de paneles activos.
22. 10. Fundamentos de programación, guía de autoenseñanza.
1.3.2.3.Monitor.
Es el dispositivo primario de salida donde se visualizan las imágenes generadas por
el ordenador, conectado mediante un adaptador de video, el cual responde por una
gran parte en la calidad de la imagen generada y otra proporcionada por el monitor.
Una de las tecnologías de monitores que se cuentan actualmente es la del tubo de
rayos catódicos con el también cuentan televisores, osciloscopios, radares. En este
las imágenes se representan con un haz de electrones que barren una superficie
fosforescente y proyectan imágenes.
Otra nueva tecnología presenta monitores de pantalla liquida LCD, usada por los
ordenadores portátiles.
23. Capitulo 1, Introducción a las computadoras y lenguajes de programación. 11
1.3.2.4.Torre del computador.
La gran mayoría de los usuarios de ordenadores la llaman “CPU”. El termino no
esta bien empleado ya que CPU corresponde a la Unidad Central de Proceso de la
computadora, y la torre es simplemente el soporte para una serie de componentes
albergados dentro. Explorando con detenimiento los elementos contenidos en la
torre se encuentran:
1.3.2.5.Disco duro.
Es la principal unidad de almacenamiento de los datos dentro de un computador.
Su forma interna corresponde a un apilamiento de discos o laminas rígidas de
forma circular, albergando los datos mediante procesos magnéticos. Estas laminas
giran alrededor de 3600 revoluciones por minuto. Cuentan con cabezas de lectura
escritura muy similares a las agujas de los equipos de sonido para el manejo de
acetatos, donde este cada uno se posiciona sobre un área del disco para guardar o
leer datos.
1.3.2.6.CPU.
Unidad central de proceso (UCP de sus siglas en ingles), es el dispositivo
electrónico encargado controlar y manejar los datos en los ordenadores. Esta
compuesta por la ALU (unidad aritmética lógica) que realiza todo tipo de
operaciones lógicas mediante el álgebra de bolee, y una serie de registro de
almacenamiento temporal para efectuar operaciones. Una CPU esta contenida en
un microprocesador que es un chip.
24. 12. Fundamentos de programación, guía de autoenseñanza.
1.3.2.7.La memoria Ram.
RAM (memoria de acceso aleatorio) es la memoria de trabajo del ordenador, es
decir, el disco duro almacena datos de forma permanente, mientras la Ram se
emplea para labores de procesos que se efectúan con el procesador y otros
periféricos, guardado datos mientras se estén usando, cuando se finaliza cualquier
tarea los espacios de memoria son usados por otra tarea de procesamiento. Además
es la memoria que mantiene los datos mientras usted desarrolla tareas sobre
aplicaciones como: procesadores de texto, juegos, hojas de calculo.
Es una memoria que guarda una replica mínima de los datos que contiene el disco
duro y que se están usando, ya que el ordenador se toma un tiempo mientras accede
al disco duro (recuerde la analogía con el toca discos de acetato y la “aguja” para
este caso la cabeza de lectura / escritura se posiciona en el lugar indicado), razón
por la cual emplea una memoria de acceso rápido.
Cuando en capítulos posteriores se este estudiando la programación básica,
denominada algoritmia, va encontrase una interacción constante con la memoria
Ram, es por eso que importante conocerla y conceptualizar su uso dentro de un
sistema de computo.
1.3.2.8.Tarjeta Madre, Main board o Placa Base.
Este componente electrónico contiene el procesador, la memoria Ram, los buses de
datos y otros elementos, es por eso que se le llama comúnmente tarjeta madre, es
una gran tarjeta que interconecta todos los elementos contenidos dentro de una
torre del computador.
1.3.2.9.Buses de datos.
Son los encargados de conectar cada dispositivo dentro de la torre del computador
con la tarjeta madre. Las labores de envió y recibo de datos a través de los buses o
correas de datos, son administradas por el microprocesador.
1.3.2.10. Unidades de CD-ROM.
Es un estándar de solo lectura en un disco compacto empleando tecnología de láser
ópticos.
25. Capitulo 1, Introducción a las computadoras y lenguajes de programación. 13
1.3.2.11. Unidades de CD-rw.
Es un estándar de lectura / escritura en un disco compacto con una capacidad de
almacenamiento de alrededor de 650 megas bytes.
1.3.2.12. Unidades de disquete.
También conocidas unidades flexibles de almacenamiento de baja capacidad,
pueden contener 1.44Megbytes. Son totalmente potables y todos los ordenadores
contienen esta unidad básica de almacenamiento.
1.4. SOFTWARE.
El software como se menciono antes es la parte lógica de un sistema de computo,
que no es tangible pero se hace visible cuando se saca algún provecho a un
ordenador. El software abarca todo tipo aplicaciones (aplicaciones o también
denominados programas) que sirven para controlar, manipular, capturar datos, que
luego son mostrados como información entendible para el usuario.
Para conocer de una manera diferente todos los tipos de programas que tiene en su
ordenador, se desarrollará etapa por etapa el simple proceso desde encender su
ordenador y dejarlo listo para ejecutar cualquier aplicación.
Cuando se presiona el botón de encendido de su sistema de computo suceden las
siguientes operaciones: existe un programa residente en un chip que se encarga de
verificar y chequear la configuración “hardware” de su maquina, por esto, recién
26. 14. Fundamentos de programación, guía de autoenseñanza.
enciende su maquina se muestra en el monitor ciertas textos que muestran
información de su computadora. Este chip se conoce como la Bios.
Finalizada la tarea de chequeo se inicia la ejecución del sistema operativo. Este
programa es el encargado de administrar todos los recursos1
de su maquina. El
sistema operativo más popular mundialmente es Windows, desarrollado por la
empresa Microsoft Corporation. Pero existen otras alternativas como esta el
sistema operativo Linux apoyado por la organización de software libre Gnu2
, en
cada una de sus diferentes distribuciones y para los usuarios de equipos mac esta
MacOs2. La labor de cualquier sistema operativo en este proceso de arranque es
preparar y verificar el estado del hardware ya combinado con algunas aplicaciones
para el usuario pueda empezar a interactuar y sacar el máximo provecho.
Finalmente, cuando se ingresa el sistema se puede empezar a utilizar software para
escribir documentos usando Microsoft Office o su alternativa en software libre
Open Office. Para navegar por Internet emplea un brouser o navegar web como
Internet Explorer para sistemas Windows o Mozilla, FireWorks, opera, entre otros.
En resumen, para utilizar y disfrutar de todo el hardware de un ordenador se hace
necesario el uso de programas que permitan interactuar directamente de una
manera discreta.
1.5. PROGRAMACIÓN.
Un programa para computadora es un conjunto de instrucciones que le indican al
hardware que tipo de acciones debe efectuar con los datos. La programación es la
acción de codificar o escribir esas instrucciones sobre un entorno llamado lenguaje
de programación, para generar aplicaciones software o simplemente programas.
Existen lenguajes de programación para casi todas las necesidades, desde
aplicaciones para manejar directamente un circuito electrónico, sistemas de
nomina, hasta software para registrarse y realizar compras por Internet. Incluso los
equipos móviles que son actualmente tan cotidianos emplean programas para
buscar un nombre en la lista telefónica, para jugar, y muchas mas opciones según
el tipo de equipo con el que se cuente.
Con la programación se puede hacer lo que se ocurra y se necesite, es un amplio
mundo con muchísimos campos de aplicación.
1
Cuando se menciona recursos se refiere a todo el hardware del ordenador.
2
Gnu / Open Source es una organización que lidera a nivel mundial para el desarrollo y
aprovechamiento de software libre.
27. Capitulo 1, Introducción a las computadoras y lenguajes de programación. 15
1.5.1. Lenguajes.
Como se menciono anteriormente, un lenguaje de programación es el entorno
donde se escribe una serie de instrucciones para que el hardware del ordenador
efectué cualquier operación. Esas instrucciones deben estar entonces dentro de una
serie de reglas que define el lenguaje. Los lenguajes informaticos no están lejos de
ser incluso tan estrictos como las normas cuando se habla otro idioma, cada uno
tiene sus parámetros de uso y de escritura.
1.5.1.1.Lenguaje máquina
Este es lenguaje nativo del computador, como se menciono su naturaleza eléctrica
puede oscilar entre dos estados: encendido y apagado. Los cuales se representan
como 1 (encendido) y 0 (apagado). Por consiguiente la maquina genera cadenas
extensas de unos y ceros, que representan un documento de texto, una imagen, un
correo electrónico, entre otros.
Para interactuar con la maquina era necesario tener un dominio completo de las
cadenas de unos y ceros, y así poderse generar unas nuevas o realizar
modificaciones. Una falla en el arreglo de unos y ceros podía representarse con la
aparición de fallas en el sistema de computo, incluso con la reprogramación de los
componentes y en el peor de los casos la adquisición de nuevo hardware.
1.5.1.2.Lenguaje ensamblador.
Este es lenguaje que se invento para manejar el hardware de una manera un poco
más amena. Su estructura corresponde a la identificación total de cada uno de los
elementos del ordenador y representarlos sobre una serie de registros o campos en
la memoria. Para este tipo de lenguaje se necesita un conocimiento extenso de cada
uno de los registros para evitar borrar o modificar alguno sin verse afectado la
integridad del sistema.
1.5.1.3.Lenguajes de alto nivel
Este tipo de lenguajes emplean términos mas cercanos a las estructuras
gramaticales de los lenguajes del hombre. Es decir, existen palabras y gramática
que son usadas comúnmente por las diferentes lenguas de habla, por ejemplo: si
usted desea mostrar un mensaje por pantalla que diga Hola, usted diría
28. 16. Fundamentos de programación, guía de autoenseñanza.
simplemente muestre o escriba Hola, ahora vera similitud que tienen algunos
lenguajes.
Lenguaje Expresión usada
Lenguaje algorítmico Escribir “Hola”
C print(“Hola”);
C++ cout>>”Hola”;
Java System.Out.Print(“Hola”);
Pascal Write(“Hola”);
Basic Print(“Hola”)
Un lenguaje de alto nivel se hace más fácil y cercano para el uso de los usuarios de
sistemas de computo.
29. Capitulo 1, Introducción a las computadoras y lenguajes de programación. 17
RESUMEN.
• Una computadora u ordenador es un dispositivo electrónico desarrollado para
ejecutar un conjunto de instrucciones, facilitar el manejo de la información y
procesar datos agrandes velocidades.
• El avance de la electrónica hizo posible desarrollar del computador.
• El ábaco fue la primera maquina desarrollada para ayudar y realizar cálculos
matemáticos.
• El inventor de los logaritmos John Napier, construyo unas piezas de calculo
con huesos o marfil denominadas “Huesos de Napier”.
• El francés Blaise Pascal, matemático y filosofo, invento la primera calculadora
automática denominada “maquina de Pascal”.
• El maestro de la mecánica de la corte del rey Calos II de Inglaterra, sir Samuel
Morland, crea la maquina de multiplicar.
• El húngaro Barón Kempelen, crea el jugador de ajedrez autómata.
• Joseph Marie Jacquard inspirado en las cajas de música que emplean papel
perforado para producir sonido, inventa el telar Jacquard.
• Charles Babbage presenta la maquina diferencial, capaz de realizar cálculos de
tablas simples.
• El ingles George Boole desarrollo el álgebra de boole, generando una
reducción de combinaciones mediante el uso de los operadores algebraicos
básicos: (y) and, “or” o y “not” no.
• El estadounidense Lee De Forest creó el tubo de vació.
• Los estadounidenses W. H. Eccles y F.W. Jordán desarrollaron el primer Flip –
Flop, dispositivo capaz de cambiar entre dos estados.
• J. Presper Eckert y John Maucly construyeron el ENIAC, el primer ordenador
electrónico digital. Contenía 18000 tubos de vació.
• John Bardeen, Walter Brattain y William shockley inventaron el transistor,
dispositivo electrónico capaz de regular el flujo de la corriente eléctrica.
30. 18. Fundamentos de programación, guía de autoenseñanza.
• Jack Kilby, construyo el primer circuito integrado.
• IBM presento el System/360, reemplazando los transistores por tecnología de
circuitos integrados.
• Data General Corporation distribuyó el primer ordenador a 16 BIT.
• Corning Glass Works, inc, comercializó el primer cable de fibra óptica.
• Intel Corporation desarrollo el primer chip microprocesador, el 4004.
• Micro Instrumentation Telemetry System (MITS) introdujeron al mercado el
Altair.
• Laboratorio Bell introdujeron el primer microprocesador a 32 BIT, llamado
Bellmac-32.
• IBM introdujo su primer ordenador basado de un procesador Intel 8088.
• Intel desarrollo el procesador 80486 igualando la calidad de su homólogo
68040 de motorota.
• IBM desarrollo el primer lenguaje de programación de alto nivel llamado
FORTRAN (traductor de formulas).
• Ivan Sutherland de M.I.T implemento el primer software de gráficos,
permitiendo dibujar interactivamente en la pantalla.
• Thomas Kurt y John Kemendy desarrollaron el lenguaje de programación
BASIC.
• Richard Greenblatt implementó el primer programa de ajedrez con éxito
llamado MacHack.
• E.F Codd publico el primer diseño de bases de datos relacional.
• Brian Kernighan publico una descripción del lenguaje C, confinando desde
principios de los años 60 en Bell Telephone.
• Sun Microsystem bajo el proyecto de James Gosling desarrollaron el lenguaje
Java.
31. Capitulo 1, Introducción a las computadoras y lenguajes de programación. 19
• IBM desarrollo el sistema de juego de ajedrez llamado Deep Blue.
• Hardware Corresponde a la parte física o tangible del ordenador y esta
compuesta por los siguientes elementos: dispositivos de entrada, salida y
almacenamiento.
• Los dispositivos de entrada se encuentran ubicados fuera de la torre del
computador y permiten ingresar datos para ser procesados por la CPU.
• Los dispositivos de salida permiten la visualización de la información en una
amplia gama de formatos o modos.
• Los dispositivos de salida son todas las unidades de lectura / escritura (leer /
guardar) de datos.
• El Mouse un dispositivo apuntador o señalador que le permite a un usuario de
un equipo de computo navegar sobre la interfaz grafica, facilitando el acceso a
acciones u operaciones dentro del ordenador.
• El teclado es el dispositivo básico de entrada de acciones hacia un ordenador
presionando una serie de teclas o mediante una combinación de las mismas.
• El monitor es el dispositivo primario de salida donde se visualizan las
imágenes generadas por el ordenador, conectado mediante un adaptador de
video, el cual responde por una gran parte en la calidad de la imagen generada
y otra proporcionada por el monitor.
• El disco duro es la principal unidad de almacenamiento de los datos dentro de
un computador. Su forma interna corresponde a un apilamiento de discos o
laminas rígidas de forma circular, albergando los datos mediante procesos
magnéticos.
• CPU: Unidad central de proceso (UCP de sus siglas en ingles), es el
dispositivo electrónico encargado controlar y manejar los datos en los
ordenadores.
• Tarjeta madre componente electrónico que contiene el procesador, la memoria
Ram, los buses de datos y otros elementos.
• Los Buses de datos son los encargados de conectar cada dispositivo dentro de
la torre del computador con la tarjeta madre.
32. 20. Fundamentos de programación, guía de autoenseñanza.
• El software como se menciono antes es la parte lógica de un sistema de
computo, que no es tangible pero se hace visible cuando se saca algún
provecho a un ordenador.
• Un programa para computadora es un conjunto de instrucciones que le indican
al hardware que tipo de acciones debe efectuar con los datos.
• Un lenguaje de programación es el entorno donde se escribe una serie de
instrucciones para que el hardware del ordenador efectué cualquier operación.
EJERCICIOS DE AUTO EVALUACIÓN.
1. ¿Cuál fue el componente que hizo posible la evolución de la computación?
2. ¿Cuál fue la primera maquina para realizar cálculos?
3. ¿Quién es el constructor de la maquina llamada "huesos de Napier"?
4. ¿Cuál el nombre del constructor de primera calculadora automática?
5. ¿El álgebra de boole es un invento de?
6. John Bardeen, Walter Brattain y William shockley inventaron el?
7. Fortran significa:
8. El lenguaje Java es el producto de?
9. Que significa CPU
RESPUESTAS A LOS EJERCICIOS DE AUTO EVALUACIÓN.
1. La electrónica
2. Ábaco
3. John Napier
4. Blaise Pascal
5. George Boole
6. Transistor
7. Traductor de formulas
8. Sun microsystem
9. Unidad central de proceso Unidad central de proceso
34. Fundamentos de programación22
OBJETIVOS
Presentar una serie de técnicas simples para resolver problemas.
Enfatizar sobre la importancia de la lógica.
Proponer una serie de ejercicios de lógica.
Realizar un acercamiento a la algoritmia.
2.1. INTRODUCCIÓN.
El interés de este capitulo es proporcionar un conjunto de elementos que permitan
afrontar cualquier tipo de problema, de una manera más eficaz facilitando el ahorro de
energía y tiempo. También se enfoca de una forma didáctica el uso de la lógica, en la
manera de pasar un tiempo resolviendo unos ejercicios y comprender la importancia de
la constante ejercitación mental.
El primer numeral presenta una serie de trucos que deben tenerse en cuenta en el
momento de enfrentar y dar solución a diferentes puntos problemáticos.
2.2. TÉCNICAS PARA LA SOLUCIÓN DE PROBLEMAS.
Cuando se piensa dar solución a un problema, lo más común es seguir una serie de
pasos que permitan encontrar respuestas lógicas, que expliquen el echo de la forma más
natural para quien lo estudia y de tener la certeza que los procedimientos seguidos son
los mas adecuados. Las reglas que se plasman a continuación pretenden proporcionar al
lector, una serie de herramientas con las cuáles aborde cualquier tipo de problema,
adaptando cada una de ellas según las necesidades.
Plan general.
2.1 Introducción.
2.2. Técnicas para solucionar problemas.
2.3. Ejercicios de lógica.
35. Capitulo 2, Ejercicios de lógica. 23
2.2.1. Leer y entender.
Aunque parezca una regla simple y conocida por todos, el 50% de la solución de un
problema se satisface, si se lee a conciencia entendiendo cada palabra, acción;
identificando cada unos de los elementos que pertenecen a la problemática, con esto,
lograr un manejo global del problema plasmado en unas líneas.
2.2.2. Repasar varias veces el problema y hacer énfasis en los
elementos del mismo.
En ocasiones los elementos de un problema se encuentran ocultos, el abordar varias
veces el problema conlleva a descubrir dichos elementos, y obtener una visión total de
todo el interrogante.
2.2.3. Un problema tiene varias soluciones para resolverlo.
Él aferrarse a lo que primero que se interpreta, limitará la capacidad de razonar otras
soluciones partiendo de los mismos elementos. Si la interpretación actual cumple con
los requerimientos solicitados y encuentra una solución satisfactoria, fluya con todas
esas ideas y plásmelas.
2.2.4. La tinta más pálida es mejor que la memoria más retentiva.
En ocasiones ese mar de ideas genera una oleada de confusión. El escribir en papel
todas las ideas, minimiza el número de pensamientos redundantes, resaltando los
conceptos precisos y adecuados para encontrar la solución más acertada.
2.2.5. Representar gráficamente un problema facilita la solución del
mismo.
La realización de bosquejos (o en algunos casos la utilización de diagramas
conceptúales) cuando se pretende dar solución a un problema, proporciona el elemento
visual con el cuál se incluye en el proceso de razonamiento un sentido más; que
permite pasar de la sola abstracción mental a un concepto gráfico más entendible y
ameno.
36. Fundamentos de programación24
2.2.6. El orden de los factores no altera el resultado.
El resultado de aplicar esta regla permite observar los elementos relacionados entre sí,
desde diferentes puntos de vista, dando una nueva visualización de los elementos del
problema, desarrollando una visión más concreta y real del mismo.
2.2.7. El cansancio acaba con la idea más simple.
Resulta demasiado difícil pensar en resolver un problema, si el cerebro requiere un
descanso; la acción de razonar genera un poco de cansancio. Lo más ideal es crear
secciones o bloques de trabajo donde se descanse por hora de trabajo de cinco (ideal) a
diez (máximo) minutos.
2.2.8. La carga compartida no es tan pesada.
Si razonando solos no se encuentra la solución, lo más práctico es discutir con otros el
problema, obteniendo diferentes puntos de vista y considerar otros elementos y formas
de resolver el mismo.
2.3. EJERCICIOS DE LÓGICA.
Lo más importante antes de conocer muchos lenguajes de programación, es tener lógica
de programación. Está sin incluirse en la computación (la lógica simplemente),
corresponde a la forma de cómo se debe pensar para encontrar soluciones a través de
diferentes métodos. La lógica es el pilar más importante en las ciencias de la
computación y de vital interés la lógica de programación en el desarrollo de software.
El interés con los siguientes ejercicios es incentivar la exploración de la lógica de una
forma divertida con una serie de juegos de ejemplo.
Nota.
En la realidad los problemas de computación no se encuentran ordenados y
desglosados como se plasman aquí, el ideal es que el alumno a medida que
practique adquiera la capacidad de crear sus propias técnicas para resolver
problemas.
37. Capitulo 2, Ejercicios de lógica. 25
La idea de en este numeral es generar un momento de diversión, de disfrute, de reto
intelectual frente a los siguientes problemas, buscando las soluciones a los ejercicios a
desarrollar en diferentes ambientes, dentro de todo este acompañamiento en los
fundamentos de programación de computadores. Goce este momento y desarrolle todos
los retos propuestos.
2.3.1. Ejercicios con soluciones.
El objetivo de estos ejercicios es enfrentar al lector a unos cuántos problemas típicos de
lógica. La mejor opción es que cada uno de ellos se realice y se busque la solución más
apropiada, además se discuta sobre cada uno de ellos.
1. El Almacén. En un almacén puedes conseguir un descuento del 20%, pero,
al mismo tiempo, tienes que pagar unos impuesto el 15%, ¿Qué preferirías que
calculasen primero, el descuento o el impuesto?.
2. La tira de papel. Imagínate una tira de papel larga y estrecha, extendida
ante ti sobre la mesa, de izquierda a derecha. Coge el extremo derecho y
colócalo encima del izquierdo. Ahora dobla la tira sobre la mesa aplanándola,
de manera que quede plegada por la mitad y presente un doblez. Repite toda la
operación dos veces más sobre la nueva tira doblada. ¿Cuántos dobleces se
producirán? ¿Cuántos dobleces habrá después de repetir la operación diez
veces en total?.
3. Números capicúas. A los números como el 12321, que se leen lo mismo de
derecha a izquierda que de izquierda a derecha, se les llama capicúas. Tengo
un amigo que asegura que todos los números capicúas de cuatro cifras son
divisibles por 11. ¿Es cierto?.
4. Los retazos de colores. Coge un cuadro y traza en él una recta que lo divida
en dos partes. Traza a continuación varias otras rectas arbitrariamente
distribuidas, de manera que dividan al cuadro en varias regiones o
<<retazos>>. La tarea a realizar consiste en colorear todas estas regiones
adyacentes (o con frontera común) resulten de distinto color. (Regiones que
sólo tengan un punto de frontera común no se considerarán adyacentes.)
¿Cuántos colores distintos serán necesarios, como mínimo, para colorear
Cualquier distribución de regiones de este tipo?.
5. Cuadros de Ajedrez. Alguien dijo una vez que el tablero de ajedrez
corriente tenía 204 cuadrados. ¿Puedes explicar esta afirmación?.
6. Madre. Una madre es 21 años mayor que su hijo, y en seis años la edad de
la madre será cinco veces la del niño. ¿Dónde está el padre?
38. Fundamentos de programación26
7. Herencia Caballos. Tres hermanos se reparten la herencia de su padre, esta
está formada por 35 caballos y en el testamento el padre dejó escrito que el
mayor se quedara con la mitad de la herencia, el mediano con la tercera parte y
el más pequeño con la novena parte, como las divisiones no eran exactas estos
no se ponían de acuerdo, por lo que decidieron consultar con un viejo
matemático que les propuso lo siguiente:
Puesto que 35 caballos no se pueden dividir exactamente por la mitad, ni por la
tercera parte ni por la novena, yo os regalo el mío, ahora tenéis 36 caballos por
lo que los tres saldréis ganando. Tú por ser el mayor te llevarás la mitad de 36,
es decir 18 caballos. Tú por ser el mediano la tercera parte, 12 caballos. Y tú
por ser el pequeño según los deseos de tú padre, la novena parte, 4 caballos.
Ahora ya tenéis los tres vuestra herencia, y como 18+12+4=34 ahora sobran
dos caballos, por lo que yo recupero el mío y me quedo también con el otro por
resolver vuestro problema.
¿Cómo es esto posible?
8. Excursionista. Un excursionista es capturado por caníbales y le dicen:
Si dices una mentira te matamos lentamente y si dices una verdad te matamos
rápidamente. ¿Que dice para que no lo maten?
9. Entre vacas, ovejas y gallinas. Compra de ganado. El amo le dio al criado
500 pesetas para que fuese al mercado a comprarle 100 cabezas de ganado,
teniendo éste que comprar: vacas, ovejas y gallinas y emplear justo las 500
pesetas. Cuando llegó al mercado comprobó que las vacas costaban 25 pesetas,
las ovejas 5 pesetas y las gallinas un real. ¿Cuántas cabezas de ganado compró
de cada una?
Una peseta equivale a 4 reales.
10. Matadero. En un matadero el jefe le dice al empleado: Hay que matar
estas 30 ovejas en 15 días, matando al menos una por día y siempre número
impar. ¿Puede el empleado cumplir la orden de su jefe?
11. Valores. ¿Cómo hacemos para que a veinte, agregándole uno nos dé
diecinueve?
12. Ovejas. Dos pastores hablaban: - ¿Por qué no me das una de tus ovejas,
así tendremos igual cantidad? A lo que su amigo le responde:
- Mejor dame una de las tuyas así yo tendré el doble de ovejas que tú.
¿Cuántas ovejas tenía cada uno?
39. Capitulo 2, Ejercicios de lógica. 27
13. El diablo y el campesino. Iba un campesino quejándose de lo pobre que
era, dijo: daría Cualquier cosa si alguien me ayudara. De pronto se le aparece
el diablo y le propuso lo siguiente:
Ves aquel puente, si lo pasas en Cualquier dirección tendrás exactamente el
doble del dinero que tenías antes de pasarlo. Pero hay una condición debes
tirar al rió 24 pesos por cada vez que pases el puente.
Pasó el campesino el puente una vez y contó su dinero, en efecto tenía dos
veces más, tiro 24 pesos al río, y pasó el puente otra vez y tenía el doble que
antes y tiro los 24 pesos, paso el puente por tercera vez y el dinero se duplicó,
pero resulto que tenía 24 pesos exactos y tuvo que tirarlos al río. Y se
quedo sin un peso. ¿ Cuánto tenía el campesino al principio?
¿Cuánto tenía el campesino antes de pasar por ultima vez?
Enviado por: Kerbe (Xavi Fernàndez Tejero)
14. La viejecita en el mercado: Una viejecita llevaba huevos al mercado
cuando se le cayó la cesta. - ¿Cuántos huevos llevabas? - le preguntaron,
- No lo sé, recuerdo que al contarlos en grupos de 2, 3, 4 y 5, sobraban 1, 2, 3 y
4 respectivamente. ¿Cuántos huevos tenía la viejecita?
15. La botella de vino. Si nos dicen que una botella de vino vale 10 euros y
que el vino que contiene cuesta 9 euros más que el envase, ¿cuánto cuestan el
vino y el envase por separado?.
16. Llenar la piscina: Para llenar de agua una piscina hay tres surtidores. El
primer surtidor tarda 30 horas en llenarla, el segundo tarda 40 horas y el
tercero tarda cinco días. Si los tres surtidores se conectan juntos, ¿cuánto
tiempo tardará la piscina en llenarse?.
17. En el bar: .Tres amigos van a tomar café. Piden la cuenta y el camarero les
dice que son 25 pesetas por los tres cafés. Cada uno pone 10 pesetas, en total
30. Con las 5 que sobran, se queda cada uno 1 peseta, y las otras 2 para el bote
del bar. Es decir, cada uno paga 9 pesetas, que por los tres serían 27, más las 2
de la propina, 29. ¿Dónde está la peseta que falta?
18. María y Juan. María tiene un hermano llamado Juan. Juan tiene tantos
hermanos como hermanas. María tiene el doble de hermanos que de hermanas.
¿Cuántos chicos y chicas hay en la familia?
19. El vagabundo. Un vagabundo se hace un pitillo con cada siete colillas que
encuentra en el suelo. ¿Cuántos pitillos podrá fumarse si encuentra 49 colillas?
40. Fundamentos de programación28
20. Juan y Pedro. Juan le dice a dice a Pedro: "si me das una oveja tengo yo el
doble que tú" Pedro le contesta: " no seas tan listo, dámela tú a mí, y a si
tenemos los dos igual" ¿Cuántas ovejas tiene cada uno?.
21. El tío y el sobrino. Un tío le dice a su sobrino: " Yo tengo el triple de la
edad que tú tenías cuando yo tenía la edad que tú tienes. Cuando tú tengas la
edad que yo tengo ahora, la suma de las dos edades será de 70 años". ¿Qué
edad tienen ahora ambos?
22. Las tres hijas. Dos amigos se encuentran por la calle: el primero le
pregunta al otro - qué tal están sus hijas y Cuántos años tienen, el segundo le
contesta: - El producto de las tres edades es 36 y la suma el número del portal
en el que vives, el primero le dice: - entonces, me falta un dato, y el amigo le
contesta - es cierto, la mayor toca el piano. ¿Cuál es la edad de cada hija?
23. La colección de monedas. Un comerciante decide vender una colección de
monedas de oro a tres coleccionistas. El primero compra la mitad de la
colección y media moneda; el segundo, la mitad de lo que queda y media
moneda y el tercero la mitad de lo que queda y media moneda. ¿Cuántas
monedas tenía el comerciante?
24. Pies por pulgadas. Cierto individuo ordenó telefónicamente un tramo de
cordel de X pies e Y pulgadas, y descubrió que el dependiente se había
equivocado con la orden y había intercambiado pies y pulgadas. Como
resultado, la cuerda media sólo 30% del tramo que el cliente deseaba. ¿De qué
longitúd era la cuerda ordenada?
25. Un problema de balanza sin pesas. Una bolsa contiene 27 bolas de billar
que parecen idénticas. Sin embargo, nos han asegurado que hay una defectúosa
que pesa más que las otras. Disponemos de una balanza, pero no de un juego
de pesas, de manera que lo único que podemos hacer es comparar pesos.
Demuestra que se puede localizar la bola defectúosa con solo tres pesadas.
26. La tela de araña. Una araña teje su tela en el marco de una ventana. Cada
día duplica la superficie hecha hasta entonces. De esta forma tarda 30 días en
cubrir el hueco de la ventana. Si en vez de una araña, fueran dos, ¿Cuánto
tardarían en cubrir dicho hueco?
27. La rana obstinada. Buscando agua, una rana cayó en un pozo de 30
metros de hondo. En su intento de salir, la obstinada rana conseguía subir 3
metros cada día, pero por la noche resbalaba y bajaba dos metros. ¿Podrías
decir cuántos días tardó la rana en salir del pozo?
41. Capitulo 2, Ejercicios de lógica. 29
28. El lechero ingenioso. Un lechero dispone únicamente de dos jarras de 3 y
5 litros de capacidad para medir la leche que vende a sus clientes. ¿Cómo
podrá medir un litro sin desperdiciar la leche?
29. Un problema de peso. Un tendero dispone de una balanza y cuatro pesas
distintas, y estas pesas son tales que le permiten pesar Cualquier número
exacto de kilogramos desde 1 a 40. ¿Cuánto pesa cada una de las pesas?
30. Siempre diofanto. ¿Cuál es el número de 3 cifras, que cumplen la
condición de que el producto de dichas cifras es igual a su suma?
31. Si nos falta la luz. En un cajón hay 12 pares de calcetines negros y doce
pares blancos. No habiendo luz en la habitación, usted quiere coger el mínimo
número de calcetines que le asegure que obtendrá al menos un par del mismo
color. ¿Cuántos calcetines deberá tomar del cajón?
SOLUCIONES
Ahora confronte sus estrategias o formas de resolver cada uno de los ejercicios, con las
posibles soluciones que se presentan a continuación. Recuerde que existen un sin
numero de soluciones para un mismo problema.
1. El Almacén. Es necesario particularizar los casos y determinar que
efectivamente se llega al mismo resultado, pero la parte importante es
determinar las ecuaciones que componen la solución.
2. La tira de papel.
Los dobleces siendo siempre dos darían un número exponencial de dos, según
el número de dobleces. Es decir:
n
2 .
3. Números capicúas. Números capicúas.
4. Los retazos de colores. Cuatro o cinco son los colores necesarios.
5. Cuadros de Ajedrez. La explicación es incluir los cuadrados internos, el
caso importante es determinar la ecuación que los gobierna.
N = 1 1
N = 2 5
N = 3 14
42. Fundamentos de programación30
N = 4 30
N = 5 55
...
El resultado se determina a través de la fórmula:
( )( )( )
6
121 ++ nnn
6. Madre.
Sea X la edad del niño, e Y la edad de la madre.
Y = X + 21
(Y + 6) = 5(X + 6)
Son las dos ecuaciones, son las que gobiernan el problema es necesario
resolver una en términos de la otra así:
(X + 21 + 6) = 5(X + 6) queda todo en términos de X
X + 27 = 5X + 30 Despejando
X - 5X = 30 - 27
-4X = 3 entonces, es decir - 0,75 años, cuál corresponde a - 9 meses, es decir
que el niño acaba de ser concebido. ¿Ahora dónde está el padre?
7. Herencia Caballos. La suma de los porcentajes de la herencia es 1/2 + 1/3 +
1/9 = 17/18 por lo que al hacer el reparto de los 35 caballos habrían sobrado
1/18 de estos, que es el equivalente a un caballo entero y parte de otro. Esta
parte incompleta de caballo es la que se reparte de mas entre los hermanos para
que se puedan llevar caballos enteros, y el otro caballo de sobra junto con el
del matemático son los dos caballos que se lleva este.
8. Excursionista. Si es tomado como verdad habría que matarlo rápidamente,
por que la respuesta sería mentira, y si se toma como tal habría que matarlo
lentamente, por lo que sería verdad.
9. Entre vacas, ovejas y gallinas.
80 gallinas X 1 real = 80 reales = 20 ptas.
1 oveja a 5 ptas.
19 vacas a 25 ptas. = 475 pesetas
80 gallinas = 20 ptas.
43. Capitulo 2, Ejercicios de lógica. 31
1 oveja = 5 ptas.
19 vacas = 475 ptas.
----------------------------------------------------
100 animales 500 ptas.
10. Matadero. El problema nos pide matar al menos una por día, partiendo de
matar una oveja por día en 15 días se matan 15 ovejas y nos quedan otras 15
por matar. Si en un día cualquiera matamos X ovejas en vez de una, y siendo X
un número impar, el número total de ovejas muertas ese día aumenta en un
número PAR.
Como no se puede llegar a 15 sumando números pares, no se pueden matar las
15 ovejas restantes aumentando un número par de ovejas muertas por día.
11. Valores. Veinte en número romanos es XX si le agregamos un uno en el
medio nos queda XIX.
12. Ovejas. Un pastor tenía 5 ovejas y el otro 7.
13. El diablo y el campesino. Tenía 21 pesos.
14. La viejecita en el mercado. Tenía 59 huevos
15. La botella de vino. El envase cuesta 0,5 y la botella 9,5.
16. Llenar la piscina. 15 horas.
17. En el bar. El problema está en que el lenguaje comete un fallo. Cada uno
paga 9 pesetas, en total 27, y dentro de esas, ya están las dos de propina. El
razonamiento correcto es: 25 de los cafés, más 2 del bote, serían las 27 que en
realidad han pagado.
18. María y Juan. Cuatro chicos y tres chicas.
19. El vagabundo. 8 pitillos.
20. JUAN Y PEDRO: Juan tiene 7 ovejas y Pedro tiene 5.
21. EL TIO Y EL SOBRINO: El tío tenía 30 años y el sobrino 20.
22. LAS TRES HIJAS: 9,2 y 2:
De todas las combinaciones de tres números cuyo producto es 36 sólo existen
dos que a su vez tengan el mismo resultado al ser sumadas, teniendo en cuenta
44. Fundamentos de programación32
que el personaje al que le ponen el a acertijo sabe en que portal vive, duda
entre estas dos combinaciones y es cuando pide un dato más para poder
resolverlo, 9x2x2= 36, 9+2+2= 13 y 6x6x1=36, 6+6+1=13 sólo la primera
combinación es posible ya que en la segunda existen dos hermanas mayores y
el último dato era que la mayor tocaba el piano.
23. LA COLECCIÓN DE MONEDAS: Había 7 monedas
24. PIES POR PULGADAS: 9 pies y 2 pulgadas, con lo que el dependiente
le dio 2 pies y 9 pulgadas. Además se pueden encontrar otras soluciones. A ver
si eres capaz de encontrarlas.
25. UN PROBLEMA DE BALANZA SIN PESAS: Compara 9 bolas
Cualesquiera con otras 9 y deja los 9 restantes en la caja. Si la balanza se
equilibra, la bola más pesada estará entre las 9 bolas que han quedado en la
caja y si no, estará entre las 9 del platillo que se incline hacia su lado la
balanza. Dividamos en 3 grupos de tres este conjunto y repitamos la operación.
De esta forma, con dos pesadas habremos aislado la bola más pesada en un
grupo de tres bolas. Si repetimos la operación una tercera vez, habremos
aislado la bola más pesada de las otras.
26. LA TELA DE ARAÑA: 29 días: Cuando una tenga cubierto medio hueco
en el día 29, la otra araña también lo tendrá, y entre las dos tendrán la ventana
completa.
27. LA RANA OBSTINADA: 28 días.
28. EL LECHERO INGENIOSO: Primero llena la jarra de 3 litros. Luego
vierte el contenido en la jarra de 5 litros. Vuelve a llenar la jarra de 3 litros y
vuelve a verter su contenido en la jarra de 5 litros que ya está medio llena. Lo
que quede en la jarra de 3 litros será un litro de leche.
29. UN PROBLEMA DE PESO: Las pesas son de 1, 3, 9 y 27 Kg. Con estas
pesas siempre encontraremos una combinación. Por ejemplo, para pesar 23 es
27 - 3 - 1, y así cualquier otra combinación.
30. SIEMPRE DIOFANTO: 1, 2 y 3
31. SI NOS FALTA LA LUZ: Tres.
45. Capitulo 2, Ejercicios de lógica. 33
2.3.2. Ejercicios adicionales, propuestos
Estos ejercicios típicos pretender retar al lector, basando en la experiencia adquirida
con los anteriores, con ejercicios clásicos matemáticos y algunos más cotidianos.
Un reloj se atrasa un cuarto de minuto durante el día, pero debido al cambio de
temperatura se adelanta un tercio de minuto durante la noche. ¿Al cabo de cuántos
días se habrá adelantado el reloj dos minutos, sabiendo que hoy al atardecer marca
la hora exacta?
Entre las ciudades M y C hay cinco caminos, desde la ciudad C hasta la ciudad P
hay cuatro caminos. ¿De cuántas maneras diferentes se puede ir de la ciudad M
hasta la ciudad P?
En cierto país legendario había tres ídolos que hablaban: el dios de la verdad, que
siempre decía la verdad; el dios de la mentira, que siempre decía mentiras; el dios
de la picardía, a veces decía la verdad y a veces decía mentiras. Los tres ídolos
eran iguales.
Un niño muy hábil le preguntó al ídolo de la mitad quien era él, y el ídolo le
contestó: “Yo soy el dios de la picardía”; le preguntó al de la izquierda quien era el
que estaba a su lado, y el ídolo le contesto: “El dios de la verdad”; le preguntó al de
la derecha quién estaba a su lado, y el ídolo le contestó: “El dios de la mentira”.
Con estas respuestas pudo descifrar el nombre de cada ídolo.
Tres hombres recibirán como pago de un servicio 21 vasos de vino iguales; siete
llenos, siete medio llenos y siete vacíos. ¿De qué manera se deben dividir los vasos
de forma que cada uno reciba la misma cantidad de vino?.
Colocar los números del 1 al 9 en la siguiente figura de forma tal que todas las
líneas sumen 15.
Cómo medir 6 litros de agua si se tienen dos recipientes de 4 y 9 litros
respectivamente.
Cuál es el tiempo mínimo requerido para asar 3 arepas, sabiendo que en la parrilla
únicamente se pueden calentar 2 arepas a la vez; el tiempo de calentamiento para
que se ase la arepa por uno de sus lados es de 30 segundos.
46. Fundamentos de programación34
Como intercambiar el contenido de dos vasos con líquidos diferentes (Leche -
Refresco.
Encuentre la solución más adecuada para resolver el siguiente problema: Un
camión de carga pretendía atravesar un túnel a alta velocidad. Por equivocación del
conductor el automóvil se atascó con el túnel, y por la inercia de la velocidad se
introdujo un tercio de su longitud. La diferencia de altura entre el túnel y el camión
es de unos pocos centímetros. El camión no tiene otro camino para llegar a su
objetivo que no sea atravesando el túnel. Tampoco puede retroceder porque podría
terminar de dañar la carga y además no se puede destrozar el túnel. Partiendo de
esta problemática encuentre una solución práctica.
47. Capitulo 2, Ejercicios de lógica. 35
2.3.3. Ejercicios con Sudoku.
Sudoku es un interesante crucigrama lógico japonés, basado en los cuadrados latinos
desarrollados por el matemático suizo Leonhard Euler en el siglo 18. El objetivo del
juego es rellenar una tabla compuesta por 9 cuadriculas de 9 elementos donde van
ubicados los números del 1 al 9 sin repetir ninguno por cuadricula.
Ejercicios.
1.
3 4
1 6 3
4 6 5 2 1
2 1 7 9
9 1
7 8 4 2 3
5 6 1 2 9
7 9
1 7 8 6
54. Fundamentos de programación42
20.
5 7 9
8 7 1 6
3 4 9 2
7 4 3 6
6 8 5
4 2 3
1 2 5 3
3 6 5 7 1
6 4
2.3.4. Ejercicios con el acompañamiento computacional.
La idea con esta serie de juegos es explorar un nuevo ambiente de desarrollo de
habilidades lógicas, empleado el ordenador como medio.
Los juegos están contenidos en CD en la carpeta Juegos de lógica que acompaña el
libro, además se adicionan direcciones web (url) para acceder a juegos sobre Internet.
Por respeto a los derechos de autor, cada grupo de juegos esta contenido en una carpeta
que con el nombre del sitio donde se descargo. Cada juego esta acompañado de una
pagina web con la explicación del juego y los enlaces para ingresar al sitio web.
Para realizar una corta demostración, ingrese a la carpeta plastelina.net y ejecute el
juego que se llama Padres_e_canibais. Es un divertido juego desarrollado en Flash,
compatible tanto para la ejecución en el computador como sobre paginas Web.
55. Capitulo 2, Ejercicios de lógica. 43
La idea del juego es pasar al otro lado del lago a los padres o misioneros y a los
caníbales. El juego tiene una simple regla, donde hay más caníbales que misioneros los
caníbales se comen a los misioneros, por eso hay la misma cantidad de personajes. En
la barca pueden subir máximo dos personajes, sean 2 misioneros, 2 caníbales o un
misionero y un caníbal.
Para iniciar la ejecución del juego de clic sobre la palabra Play. Para hacer una muestra
de cómo los caníbales se comen a los misioneros, de clic sobre cualquier misionero y
automáticamente se subirá a la barca.
En la parte superior de la pantalla se habilita el símbolo GO! para que el personaje o
personajes que están sobre la barca se desplacen al otro lado. De clic para desplazar al
misionero al otro lado. Como a la derecha quedan menos misioneros que caníbales, los
caníbales se los comen, así como se muestra a continuación.
56. Fundamentos de programación44
Para reiniciar el juego de clic sobre la opción Try again!.
Ahora rete a su imaginación y capacidad de abstracción dándole solución al juego,
piense en que es lo mas adecuado para llevar a todos los personajes al otro lado del
lago sin que los misioneros sean devorados por los caníbales.
SOLUCION AL JUEGO
El primer paso consiste en llevar al otro lado a los caníbales, por eso se suben 2 a la
embarcación y se llevan al otro lado.
57. Capitulo 2, Ejercicios de lógica. 45
Descargue uno de los caníbales y regrese por el otro.
Ahora como la barca no puede devolverse sola tendrá que ir con un caníbal al otro lado,
descárgalo y subir dos misioneros.
Si observa con detenimiento ninguno de los caníbales procede a devorar a los
misioneros por que de cada lado hay la misma cantidad de misioneros y de caníbales.
Para que no altere las cantidades, descargue a un misionero y suba a un caníbal a la
embarcación y desplácelos al otro lado del lago.
59. Capitulo 2, Ejercicios de lógica. 47
Descargue ahora a los misioneros, suba a la embarcación al caníbal y con este, traiga a
la orilla de la izquierda a los otros de caníbales.
60. Fundamentos de programación48
Cuando se descarga al ultimo caníbal se gana el juego. La clave era asegurar del otro
lado a los misioneros y luego pasar a los caníbales. Pruebe otras formas de resolverlo,
recuerde que un problema tiene múltiples soluciones.
Ahora abra la carpeta pabsolutist.comindex_es donde se encuentra la versión digital
del juego Sudoku y un juego digital de preguntas en ingles.
De doble clic sobre la pagina web index_es para que pueda ver la siguiente pagina
web.
De manera similar todos los juegos son versiones libres, tríales y demos. Ponga a
prueba de una manera interactiva sus conocimientos y su forma de solucionar
problemas.
61. Capitulo 2, Ejercicios de lógica. 49
RESUMEN.
• Existen una serie de formas para solucionar problemas de cualquier índole. Así
como los científicos usan el método científico, en el ámbito computacional
existen una serie de métodos para analizar un problema y generar una solución
informática.
• Los juegos de lógica son maneras de ejercitar la mente para adquirir mas
capacidad intelectual.
• Desde que se emplean las computadoras para educar, se han ampliado las
posibilidades en la generación de innumerables cantidades de ambientes como
juegos de rol, estrategia, en primera persona, en red y con dispositivos
especiales como las gafas en 3D (tercera dimensión) entre otros.
EJERCICIOS DE AUTO EVALUACIÓN.
Explore el contenido del CD y observe con detenimiento las especificaciones y reglas
de cada juego. Instale en su ordenador los de su preferencia y rete entonces su intelecto.
64. Fundamentos de programación52
OBJETIVOS
Presentar el concepto de algoritmo.
Conocer los tipos de representación de algoritmos.
Conocer la representación de los datos de la naturaleza en datos
computacionales.
Profundizar en el manejo de la memoria en sistemas de computo.
Entender la representación de formulas matemáticas en formulas matemáticas
computaciones.
3.1. INTRODUCCIÓN.
El propósito de este capitulo es proporcionar al lector los conceptos básicos de
fundamentos de programación a partir de una primera técnica denominada algoritmo.
De una manera progresiva se irán conociendo los elementos de la algoritmia hasta
desarrollar programas básicos computacionales.
3.2. ALGORITMO.
Cuando se quiere dar solución a un problema a nivel computacional se emplean
algoritmos. Estos corresponden a los bosquejos de posibles formas de solución, sobre
una serie de modelos de interpretación fácil y rápida, como son: el diagrama de flujo y
el pseudocodigo (que se explicaran con mas detenimiento más adelante. Entiéndase
algoritmo como una secuencia de pasos coherentes y finitos para resolver un problema.
En un algoritmo se fijan una serie de acciones precisas y lógicas que conllevan a
resolver cualquier problema.
Plan general.
3.1 Introducción.
3.2. Algoritmo.
3.3. Tipos de datos.
3.4. Variables.
3.5. Constantes.
3.6. Representación de Expresiones aritméticas.
Resumen
65. Capitulo 3, Fundamentos 53
Los algoritmos están conformados por tres elementos: Entrada, Proceso y Salida. En
algunos casos un algoritmo puede requerirlos en cualquier orden, o emplear uno o
varios, según la temática que se plantee para resolver el problema. Para fijar estos
conceptos, se interpretará con el siguiente ejemplo:
Ahora observe otro ejemplo.
Suponga que se desea sumar dos números, y saber el valor de esa suma.
Entrada: es conocer los dos números, por ejemplo 5 y 9.
Proceso: ejecutar la operación.
5
+ 9
--------
14
Salida: es obtener el valor de la suma que es igual a 14. Ya se ha realizado
el primer algoritmo, se creó una secuencia de pasos coherentes y
dependientes.
Coherentes en la medida que se obtuvo un valor de la forma correcta como
siempre se efectúa una suma.
Dependiente en que no se puede sumar dos números que no se conocen, y
obtener el resultado de la suma sin sumar los números.
Suponga que alguien le dice un número y a ese número le suma 15.
Entrada: imagine que el número que se da es 10. el número 15 no
corresponde a la entrada por que ya es un número conocido. El número 15 es
un valor fijo o un valor constante.
Proceso: sumar 10 y 15.
10
+15
--------
25.
La salida: el resultado de la suma es 25.
66. Fundamentos de programación54
3.3. TIPOS DE DATOS
El objetivo principal de todo programa para computador es procesar información, la
cuál es clasificada según su característica o naturaleza, como: datos personales,
monetarios, financieros, estadísticos, entre otros. Los tipos de datos proporcionan una
variada gama de modelos de datos, más adecuados para albergar esa información
dependiendo de su singularidad. Observe la siguiente analogía, no es correcto parquear
un camión de carga, en donde se puede parquear un automóvil pequeño como un
compacto. De esa misma manera; no es correcto alojar el nombre de una persona en un
tipo de dato, en donde se pueden almacenar datos numéricos.
Los tipos de datos se crearon para representar la información que se encuentra en la
naturaleza, como: datos de temperatura, estatura de una persona, edad, altura en una
manejable por los sistemas de computo. Un programa de computador representa o
simula un comportamiento humano, social, matemático.
Definiendo lo anterior en otros términos se tiene: cuando se maneja y procesa
información lo más adecuado es que dicha información no pierda sus características y
su forma. Los sistemas implementados en computadoras deben permitir dicha
conservación de características y para ello ofrecen modelos de datos. Entonces, los
modelos de datos de forma homóloga a una plantilla de figuras geométricas, se
construyeron con la finalidad de proporcionar varias formas de las cuáles el usuario
podrá disponer cada vez que las necesite y adaptarlas a la naturaleza de su uso.
Cada figura dentro de la plantilla tiene un uso particular, se pueden construir círculos,
óvalos, rectángulos, entre otros. De forma similar los modelos de datos permiten tener
números, textos o cadenas de caracteres, entre sus usos más comunes. Además cada
uno de ellos puede llegar a tener sus submodelos. Por ejemplo, los números tienen dos
modelos principales: los enteros y los reales. Los números enteros corresponden a los
números que no poseen valores con decimales, mientras que los números reales si
poseen valores con decimales.
Este tipo de subdivisión proporciona modelos más cercanos a la realidad, por ejemplo:
las temperaturas por lo general tienen valores decimales (25.6, 32.56 grados
Nota.
A medida que se plantean los ejercicios y se analizan con cierto
detenimiento se comprenderán de forma más profunda estos elementos
(datos entrada, proceso y datos de salida). Por el momento es importante
que se conozca su definición y se obtenga una idea personal de ellos.
67. Capitulo 3, Fundamentos 55
centígrados), la población mundial es un número muy grande, pero en cantidades
exactas, nunca se existen medios, tercios, 0.256 personas.
Partiendo de ello, observe la siguiente plantilla de modelos o tipos de datos.
En la siguiente sección se conocerán los tipos de datos y sus usos más comunes.
3.3.1. Datos tipo numérico
Como su nombre lo indica, son tipos de datos en los cuáles se puede almacenar y
representar números y sobre ellos se pueden efectuar operaciones o cálculos
matemáticos. Los datos de tipo numérico se clasifican en dos categorías distintas: los
numéricos enteros y los numéricos reales.
3.3.1.1. Tipo numérico entero
Este tipo de dato permite acumular cantidades enteras o cantidades sin valores
decimales, y pueden ser positivos o negativos, excepto los datos de tipo Byte. Existe
además, una subclasificación de este tipo de dato en Byte, enteros cortos y enteros
largos. Lo anterior con el fin de proporcionar un tipo de dato más al acomodo de las
necesidades en el manejo de cantidades enteras.
3.3.1.1.1 Byte
Este tipo de dato puede manejar cantidades en el rango de valores: 0 a 255.
Por lo tanto una cantidad de tipo Byte no puede ser menor de 0, y mayor que 255.
Plantilla de Tipos de datos.
Enteros
cortos
Reale
s
cortos
Byte
Reales
largos
Enteros
largos
Cadenas
de
caracteres
Boléanos
Definidos por el
usuario.
68. Fundamentos de programación56
Ejemplos de este tipo de dato son:
3.3.1.1.2 Enteros cortos
Este tipo de dato puede manejar cantidades en el rango de valores: -32768 a 32767.
Por lo tanto una cantidad entera corta no puede ser menor de –32768, y mayor que
32767.
Ejemplos de este tipo de dato son:
3.3.1.1.3 Enteros largos
Este tipo de dato puede manejar cantidades en el rango de valores: -2147483648 a
2147483647. Por lo tanto una cantidad entera larga no puede ser menor de –
2147483648, y mayor que 2147483647.
Ejemplos de este tipo de dato son:
3.3.1.2. Tipo numérico real
Este tipo de dato permite acumular cantidades reales o cantidades con valores
decimales, y pueden ser positivos o negativos. Existe además, una subclasificación de
este tipo de dato en reales cortos y reales largos.
3.3.1.2.1 Reales cortos
Este tipo de dato puede manejar cantidades en el rango de valores: -3.40E+38 a
3.40E+38.
Por lo tanto una cantidad real corta no puede ser menor de –3.40E+38, y mayor que
3.40E+38.
245 -8 25000 7894 -30000 14 -563 0
40000 -8 -2000000 5000000 -45792
245 13 50 78 3 14 63 1
69. Capitulo 3, Fundamentos 57
Ejemplos de este tipo de dato son:
3.3.1.2.2 Reales largos
Este tipo de dato puede manejar cantidades en el rango de valores: -1.79D+308 a
1.79D+308. Por lo tanto una cantidad real larga no puede ser menor de –1.79D+308, y
mayor que 1.79D+308.
Ejemplos de este tipo de dato son:
3.3.2. Datos tipo lógico
Este tipo de dato puede albergar uno de dos valores, Verdadero o Falso. Se emplea a
menudo en condiciones, banderas, entre otros usos más comunes.
Ejemplos de este tipo de dato:
3.3.3.Datos de tipo cadena de caracteres.
Se conocen como cadena de caracteres aquellos elementos que albergan uno o más
símbolos alfabéticos, numéricos y especiales de uso regular, y se encuentran contenidos
entre comillas simples (´´. A continuación se mostrarán ejemplos de cada tipo:
245.68 -8.23 25000.1245 7.894 -30000.478
40000.12455665 -8.2654878787 -50000.14898211542
5000000.49887979565 -45792.15499744646
Símbolos alfabéticos: el alfabeto (a,b,...y,z) (A,B,...,Y,Z).
Símbolos numéricos: los números (0,1,2,...,8,9).
Símbolos especiales: (¡, @, #, $,..., &,...)
Verdadero Falso
70. Fundamentos de programación58
Entonces, una cadena de caracteres puede estar conformada por solo símbolos
alfabéticos, o numéricos o especiales. Además se pueden crear combinaciones entre
símbolos como se observa en la figura 1.9, por ejemplo:
3.3.4.Tipos de datos definidos por el usuario.
A partir de los anteriores tipos de datos preestablecidos (enteros cortos, enteros largos,
reales cortos, entre otros), se pueden definir otros tantos mediante una serie de
combinaciones. Este característica brinda una amplia gama de posibilidades para
resolver un algoritmo. Estos tipos de datos podrían clasificasen en:
Arreglos (Vectores, Matrices.)
Estructuras de datos.
Punteros.
Estos tipos de datos se explicaran con más detenimiento en capítulos posteriores.
Alfabéticos: nombres de personas o elementos.
´Carlos Andrés Zapata Ospina´
´Fundamentos de Programación’
Numéricos: códigos o números con los cuales no se efectúan operaciones.
´75860´ ´5779898´ ´007´
Mixtos: agrupación de elementos de diferentes símbolos que producen un
significado.
´Luis V´ ´caz8@correo.com´
´789-562´ ´1 de marzo del 20001´
Nota.
El propósito de conocer los diferentes tipos de datos pretende orientar al
lector, en la forma en la cual la información y los datos son realmente
procesados y manejados en el computador mediante programas (software).
71. Capitulo 3, Fundamentos 59
3.4. VARIABLES.
Una variable es un espacio reservado en memoria que recibe un nombre representativo,
donde se almacena un dato de cualquier tipo mencionado anteriormente. Las variables
poseen la característica de cambiar de contenido sobre la ejecución de un algoritmo.
Además una variable solo puede almacenar información de un tipo de dato, en la cuál
se almacenan datos numéricos, o cadenas de caracteres, o datos de tipo lógico. Nunca
una misma variable puede almacenar datos de diferentes tipos en un propio algoritmo.
Definido de otra manera, una variable, es un contenedor (como una caja o recipiente)
en donde se puede almacenar datos y siendo estricto solo puede guardar un elemento a
la vez.
Retomando la explicación de los tipos datos en la figura 1.3. se observa que las
variables están ligadas a un tipo de dato.
Nombre de la variable. Tipo de dato al que corresponde.
Año Nombre Número ValorNeto
Plantilla de Tipos de datos.
Enteros
cortos
Reale
s
cortos
Byte
Reales
largos
Enteros
largos
Cadenas
de
caracteres
Boléanos
Definidos por el
usuario.
72. Fundamentos de programación60
3.4.1. Reglas para nombrar variables
3.4.1.1. El nombre de una variable debe comenzar con una letra, seguida de otras
letras, números o caracteres. Como ejemplo:
3.4.1.2. El nombre de las variables nunca debe emplear caracteres especiales como:
3.4.1.3. Cuando se nombre una variable, nunca emplee tildes, ni espacios, ni signos de
puntuación. Por ejemplo:
3.4.1.4. Las variables no pueden tener nombres empleados por palabras
reservadas. Estas se encuentran contenidas en la mayoría, por funciones
que se verán en el apartado 1.10.1 y 1.10.2, como funciones aritméticas y
de cadena de este capítulo.
A, valor, num1, valor_num1
Nombre ciudad potencia raíz
¡,!, |, “, @, ·, #, $, %, /, (, ), =, ‘, ¿, ?, +, -, *, {, }, [, ], ^, entre
otros.
Es incorrecto nombrar:
e-mail cantidad_$ #1 numero.1 el%interes
∑Sumatoria
Usos incorrectos
Código Nombre Empleado Cantidad.
Usos correctos
Codigo NombreEmpleado Cantidad
73. Capitulo 3, Fundamentos 61
Con lo anterior se concluye que las variables son espacios reservados en memoria,
definidos sobre un modelo de dato que indica que tipo de valor puede ser almacenado
en cada una de ellas. También que cada una de ellas recibe un nombre simbólico con el
cuál pueda ser usado.
El formato para la declaración de variables es el siguiente:
Por ejemplo:
Otra forma de declarar variables es también:
Donde se indica que Nombre y Salario son dos variables independientes una de la otra,
pero declaradas sobre la misma instrucción de Declaración
3.5. CONSTANTES
Como su nombre lo indica son datos que siempre van a tener el mismo valor, y por
ninguna razón este valor puede ser modificado. También comparten el mismo concepto
de reglas empleado en la declaración de variables. Las constantes se clasifican en:
Declaracion Nombre_Variable.
Declaracion Numero
Declaracion Nombre, Salario
Nota.
El nombre que puede recibir una variable es indiferente al valor que pueda
albergar. La idea es nombrar las variables con nombres nemotécnicos o que
indiquen con su nombre que van a almacenar. El manejo de los nombres de
variables nemotécnicos será un punto que más adelante se explicará.
74. Fundamentos de programación62
Constantes literales.
Constantes declaradas.
3.5.1. Constantes literales.
Son constantes que expresan el sentido directo de un valor de Cualquier tipo o de una
cadena de caracteres. Por ejemplo:
3.5.2. Constantes Declaradas.
Son constantes que deben ser declaras antes de ser usadas. En la declaración debe
usarse un nombre representativo que no se repita, seguidamente del valor que se desea
asignar. Cabe resaltar que para poder declararse una constante declarada debe usarse
una palabra reservada Constante. El formato de declaración es el siguiente:
Por ejemplo:
El verdadero propósito de las constantes y variables se conocerá más adelante con
ejemplos explicativos, por el momento es más importante conocer el concepto.
“la programación es fácil” 4895.6 “Carlos”
3.1416 “24 de abril 2000”
Constante Nombre: valor o cadena de caracteres.
Constante Pi = 3.1416
Constante Nombre = “Carlos Andrés”
Constante Salario = 150000
75. Capitulo 3, Fundamentos 63
3.6. REPRESENTACIÓN DE EXPRESIONES ARITMÉTICAS.
De manera frecuente es necesario desarrollar algoritmos en los cuáles, se utilicen
expresiones aritméticas para realizar de una manera rápida operaciones complejas.
Para esta sección en especial de libro es importante centrar la atención, en la
representación de dichas expresiones empleando los operadores antes vistos, con el
objetivo de convertir ese conocimiento teórico en uno práctico. Observe detenidamente
cada uno de los siguientes ejemplos.
Expresión aritmética 5 x (5²).
El símbolo para representar la multiplicación es *.
El símbolo para expresar el exponencial es ^.
Expresión Algorítmica resultante es 5 * ( 5 ^ 2 )
Expresión aritmética (a² + b²)
-----------
2
Expresión Algorítmica resultante es (a^2 + b^2) / 2
Representar la siguiente expresión 5 (5²).
Ejercicio.
Nota.
Todo elemento numérico seguido de un paréntesis, se interpretará
como una multiplicación, entonces 5 (5²) es igual a 5 x (5²)
Representar la siguiente expresión.
Ejercicio.
76. Fundamentos de programación64
De forma homóloga se representan en general todas las expresiones aritméticas, lo más
importante es reconocer el símbolo equivalente de la expresión en el algoritmo.
77. Capitulo 3, Fundamentos 65
RESUMEN.
• La lógica corresponde a la forma de cómo se debe pensar para encontrar
soluciones a través de diferentes métodos.
• Cuando se quiere dar solución a un problema a nivel computacional se
emplean algoritmos. Estos corresponden a los bosquejos de posibles formas de
solución, sobre una serie de modelos de interpretación fácil y rápida.
• Los algoritmos están conformados por tres elementos: Entrada, Proceso y
Salida.
• Los tipos de datos proporcionan una variada gama de modelos de datos, más
adecuados para albergar esa información dependiendo de su singularidad.
• Los tipos de datos se crearon para representar la información que se encuentra
en la naturaleza, como: datos de temperatura, estatura de una persona, edad,
altura en una manejable por los sistemas de computo.
• Datos de tipo numérico son tipos de datos en los cuáles se puede almacenar y
representar números y sobre ellos se pueden efectuar operaciones o cálculos
matemáticos.
• Datos de tipo lógico puede albergar uno de dos valores, Verdadero o Falso.
• Se conocen como cadena de caracteres aquellos elementos que albergan uno o
más símbolos alfabéticos, numéricos y especiales de uso regular, y se
encuentran contenidos entre comillas simples (´´.
• Una variable es un espacio reservado en memoria que recibe un nombre
representativo, donde se almacena un dato de cualquier tipo mencionado
anteriormente. Las variables poseen la característica de cambiar de contenido
sobre la ejecución de un algoritmo.
• El nombre de una variable debe comenzar con una letra, seguida de otras
letras, números o caracteres.
• El nombre de las variables nunca debe emplear caracteres especiales.
• Cuando se nombre una variable, nunca emplee tildes, ni espacios, ni signos de
puntuación
78. Fundamentos de programación66
• Las constantes son datos que siempre van a tener el mismo valor, y por
ninguna razón este valor puede ser modificado.
EJERCICIOS DE AUTO EVALUACIÓN.
1. El diagrama de flujo y el pseudocodigo son?
2. Un algoritmo es?
3. Los algoritmos están conformados por tres elementos:
4. Los tipos de datos se crearon para representar:
5. Los datos de tipo numérico entero pueden representar
6. Los datos de tipo byte pueden representar cantidades entre:
7. Los datos de tipo entero corto pueden representar cantidades entre:
8. Los datos de tipo entero corto pueden representar cantidades entre:
9. Los datos de tipo numérico real pueden representar
10. Los datos de tipo lógico pueden representar:
11. Que es una variable?
12. Que es una constante?
RESPUESTAS A LOS EJERCICIOS DE AUTO EVALUACIÓN.
1. Algoritmos
2. Una secuencia de pasos coherentes y finitos para resolver un problema
3. Entrada, Proceso y Salida
4. La información que se encuentra en la naturaleza
5. Cantidades enteras o cantidades sin valores decimales, y pueden ser positivos
o negativos
6. 0 a 255
7. -32768 a 32767
8. -2147483648 a 2147483647
9. Cantidades reales o cantidades con valores decimales, y pueden ser positivos o
negativos
10. Uno de dos valores, Verdadero o Falso
11. Un espacio reservado en memoria que recibe un nombre representativo, donde
se almacena un dato de cualquier tipo
12. Son datos que siempre van a tener el mismo valor, y por ninguna razón este
valor puede ser modificado
79. Capitulo 3, Fundamentos 67
EJERCICIOS PROPUESTOS.
Representar algorítmicamente las siguientes expresiones:
cba ++ 22
( )2
DC
B
A
++
( )adc +2
3
7
−
+
B
D
5
132 −+c 62 ++
+ LL
BA
2
22
5 r
yx
+
+
( )
−−
Y
X
4
19
ACT 22
−
a
acb
b
2
42
−
+−
Diseñe la solución para resolver cada uno de los siguientes problemas y trate de
refinar sus soluciones mediante algoritmos adecuados.
Cambiar la llanta de un automóvil.
Ir al cine.
Hacer un retiro de un cajero electrónico.
Llamar a un contacto con un celular.
Realizar una llamada desde un teléfono publico
Cocinar una tortilla
Arreglar un pinchazo en la bicicleta
Freír un huevo.
82. Fundamentos de programación70
OBJETIVOS
Presentar las diferentes formas de representar un algoritmo.
Reforzar el concepto de datos de entrada, proceso y datos de salida.
Mostrar los diferentes operadores que intervienen en un algoritmo.
Conocer y aplicar la jerarquía de operadores.
Desarrollar algoritmos básicos.
4.1. INTRODUCCIÓN.
Los algoritmos son los primeros pasos hacia el mundo de la programación de
computadores. La importancia de su estudio, permite mejorar la capacidad de
abstracción que desarrolla también las matemáticas y además facilita la aplicación de
los conocimientos básicos de programación, a cualquier campo de las ciencias de la
computación de una manera transparente, es decir con las bases que se proporcionan
aquí el lector podrá estudiar mas lenguajes de programación de ultima generación,
aprehender sistemas de desarrollo multimedia, trabajar en herramientas de simulación y
aplicaciones matemáticas.
Es por lo anterior, que los algoritmos son el campo más importante que todo estudiante
de computación o áreas afines debe conocer para garantizar desde un referente lógico.
Plan general.
4.1 Introducción.
4.2. Representación de los algoritmos.
4.3. Operadores.
Resumen
83. Capitulo 4, Algoritmia 71
4.2. REPRESENTACIÓN DE LOS ALGORITMOS.
La codificación de un algoritmo no se debe limitar estrictamente, a la sintaxis o a la
forma en el cuál un lenguaje de programación en particular, como (Basic, Cobol,
Fortran, Pascal, C, C++, entre otros), pueda llegar a representarlo.
Se podría comparar un algoritmo como el bosquejo que se hace antes de iniciar una
obra. En la cual el artista plasma sus ideas y realiza cierta cantidad de modelos con el
propósito de generar un resultado óptimo e ideal.
El algoritmo por si mismo contiene una notación fácil de entender, con un lenguaje
familiar representativo. Existen en la actualidad, gran cantidad de métodos para la
representación de algoritmos, de los cuáles serán motivo de estudio en este libro: El
Pseudocódigo.
Es de anotar que existe otro elemento para representar algoritmos en forma grafica,
llamado diagrama de flujo, del cual se conocerá de forma general.
4.2.1. El Diagrama de Flujo (DF)
El DF es una representación gráfica de un algoritmo, que emplea una serie de figuras o
símbolos, para indicar un proceso o instrucción sobre el cuál se ejecuta una acción.
Un diagrama de flujo se comporta de manera similar a la representación de un
organigrama dentro de una compañía. En el cuál se muestra el rango de mando u
operación, se señala además, el flujo o conducto regular para la toma de decisiones o
procesos que se generan dentro de la misma. Además, cuando se realiza la tarea del
análisis y diseño de cualquier proceso, unas de las herramientas de modelado emplean
características similares al DF, como son: El diagrama de flujo de datos, diagrama
entidad – relación, diagramas de transición de estados, para el análisis estructurado
moderno.
Las características más sobresalientes de un DF se muestran a continuación, con el
sentido de proporcionar una visión conceptual del mismo:
4.2.1.1. Características del DF
• La notación concisa que posee, facilita una interpretación inmediata y un
entendimiento consecuente. Simplemente con observarlo se puede
comprender.
84. Fundamentos de programación72
• Los DF generalmente ocupan una página, logrando captar toda la atención por
parte del que lo observa.
La siguiente figura muestra los símbolos representativos empleados por el diagrama de
flujo.
SÍMBOLOS PARA DIAGRAMA DE FLUJO.
Símbolos
Principales
Nombre y Función
Inicio. Representa el comienzo de un programa.
Fin. Representa el final de un programa.
Lectura. Captura de datos introducidos por el teclado.
Salida. Los mensajes o resultados de procesos sobre la
información son mostrados por pantalla.
Asignación. Representación de Cualquier tipo de
proceso donde cambie el valor de las variables.
Línea de Flujo. Indica la dirección de ejecución del
flujo del programa.
4.2.2. Pseudocódigo
Se conoció anteriormente una serie de símbolos para representar un algoritmo; el
Pseudocódigo de forma similar representa un algoritmo pero empleando palabras
simbólicas en vez de gráficos. Para complementar esta explicación, se cita a
continuación la definición dada por Luis Joyanes Aguilar:
INICIO
FIN
Nota.
Los símbolos vistos son los modelos estándar en la representación de
diagramas de flujo. Por lo general los otros modelos encierran cierta similitud
con estos y su uso sobre el diagrama es de forma exacta.
85. Capitulo 4, Algoritmia 73
“El Pseudocódigo nació como lenguaje similar al inglés y era un medio
de representar básicamente las estructuras de control de programación
estructurada que se verán en capítulos posteriores. Se considera un
primer borrador, dado que el Pseudocódigo tiene que traducirse
posteriormente a un lenguaje de programación. El Pseudocódigo no
puede ser ejecutado por una computadora. La ventaja del Pseudocódigo
es que en su uso, en la planificación de un programa, el programador se
puede concentrar en la lógica y en las estructuras de control y no
preocuparse de las reglas de un lenguaje especifico. ”3
En la siguiente figura se representan las palabras simbólicas, de forma similar y en el
mismo orden, de los símbolos gráficos:
Símbolo en
DF
Palabra en
Pseudocódigo
Comentario
Inicio Representa el comienzo de un programa.
Fin Representa el final de un programa.
Leer Captura de datos introducidos por el teclado.
Escribir Los mensajes o resultados de procesos sobre
la información son mostrados por pantalla.
Anteriormente se realizaba una asignación u
operación en el símbolo proceso. En
Pseudocódigo la operación o asignación se
efectuara de manera igual, se omite por
completo el símbolo.
En DF La flecha indica el flujo u orden con
el cuál se realizan las operaciones, en
Pseudocódigo se remplazara por la
justificación de cada una de las
instrucciones.
3
JOYANES AGUILAR, Luis. Fundamentos de Programación. Madrid. McGraw Hill.
1997. P.58.
INICIO
FIN
86. Fundamentos de programación74
4.2.2.1. Reglas para usar Pseudocódigo.
• El nombre de una variable debe respetar las reglas del apartado 3.4.1 reglas
para nombrar variables del capítulo 3. Además nunca se debe nombra una
variable con las palabras que representan los símbolos como: Inicio, Fin, Leer,
Escribir, entre otras que gradualmente se conocerán.
• Los mensajes de texto o cadenas de caracteres deben estar contenidos entre
comillas dobles para el Pseudocódigo (“”), mientras que en el DF se
emplearon comillas simples (‘’).
• A diferencia del DF, el Pseudocódigo estándar requiere de la declaración de
las variables que emplee, en uno o varios tipos de dato. Para el caso en
particular de esta publicación y las herramientas software con las que se
pretende realizar las prácticas y generar conocimiento, no se usará declaración
de variables sobre un tipo de dato. Simplemente se declararán variables para
reservar los espacios en memoria y realizar la tarea de inicializar las mismas.
• El encabezado que se va a adoptar para indicar las declaraciones de una o más
variables será Declaracion, de forma seguida se encontrara el nombre de las
variables que corresponden a ese tipo de dato. Observe el siguiente prototipo:
Declaración nombre de variable 1, nombre de variable 2, ...
Representar en un Pseudocódigo la declaración dos variables.
Ejercicio.
1
2
3
4
5
6
7
8
'Pseudocódigo Declaración de variables
Inicio
Declaracion Numero1
Declaracion Numero2
Fin
87. Capitulo 4, Algoritmia 75
EXPLICACIÓN POR INSTRUCCIÓN:
(1). Todo Pseudocódigo necesita de un nombre representativo, en este caso se
llama Declaración de variables.
(3). La palabra Inicio indica que se va iniciar un Pseudocódigo.
(4). Ese fragmento del código indica que la variable Número1 se va a declarar.
(5). Ese otro fragmento de código indica también que la variable Número2 se va a
declarar.
(6). La palabra Fin indica que se terminó un Pseudocódigo.
Es importante recordar los tipos de datos para la declaración de variables; en la
sección 3.3. Tipos de datos, del capítulo 3.
Conocidos ahora los elementos para el desarrollo de algoritmos, se repasará entonces
una herramienta básica para el análisis y desarrollo de dichos diagramas y
Pseudocódigo (que se conocerán sobre esta sección más adelante)
Como se vio en el capítulo anterior, todo algoritmo es una secuencia de pasos
secuencias y coherentes para solucionar un problema. Además que en la mayoría de los
casos, todo algoritmo posee: datos de entrada, proceso y datos de salida.
Nota.
Cuando se realiza la operación de declaración de variables, se está
reservando directamente en la memoria del computador, espacios
que estén disponibles para su uso. El nombre que se les proporciona
a cada una de las variables facilita su manejo, ya que por lo general
el computador les asigna nombres con valores hexadecimales, lo
cual hace que sea difícil manejarlo como lo hace el ordenador. Por
tanto se les asigna nombres representativos.
Cuando se declara una variable no posee ningún tipo de dato
definido, en el momento que se les asigna por primera vez un valor,
automática e internamente se define un tipo de dato más acorde con
el dato que se almacena en la variable.
88. Fundamentos de programación76
DATOS DE ENTRADA.
Se entiende por datos de entrada, todos los datos de los cuáles se requiere para la
ejecución del algoritmo. Para ilustrar esta definición se planteará el siguiente ejemplo:
Cuando se desea retirar dinero del cajero electrónico, se ingresa la tarjeta de crédito a
la ranura del cajero, seguidamente la pantalla del cajero solicita el número de la clave
para comprobar que el número de clave corresponde a esa tarjeta de crédito y realizar
las operaciones que se desean.
El dato de entrada para esta operación fue el número de clave. Sin ella, la tarjeta de
crédito no tendría validez alguna.
Para ser más generales se entiende como datos de entrada todas aquellas acciones que
requieren del ingreso de datos, bien sea desde el teclado (como números de clave,
valores, nombre, entre otros), como selecciones de menús de opciones (tipo de
operación, cantidad de efectivo, entre otros.)
PROCESO.
Corresponde a las diferentes operaciones que se realizan para procesar datos y generar
información requerida por el usuario. Continuando con el ejemplo del cajero
electrónico, tenemos:
Al ingresarse el número de la clave, el cajero electrónico realiza la operación de
validar la tarjeta, como se mencionó anteriormente. Este proceso de validación lo hace
revisando el conjunto de datos o registros de usuarios y tratando de ubicar al cliente.
Si encuentra al cliente en la lista de clientes, le permite retirar, revisar el saldo, entre
otras operaciones. Pero si no lo encuentra le indica que la clave es incorrecta y debe
ingresar otro número de clave.
De forma homóloga cuando se presionan teclas en un computador, este genera una
cantidad de procesos para capturar la tecla presionada y determinar que tipo de
operación se desea realizar.
DATOS DE SALIDA.
Los datos de salida son el objetivo por el cuál se genera un proceso. En otras palabras,
es la función por la cuál se implementan aplicativos o sistemas de información
(software). Los datos de salida que pueden visualizarse en la pantalla del computador
en una página mediante la impresión, es realmente lo que le interesa el usuario del
sistema. Continuando con el ejemplo:
89. Capitulo 4, Algoritmia 77
Terminada la comprobación del número de clave, el usuario solicita un recibo para
conocer su saldo. Selecciona la operación de impresión del recibo y espera la
impresión del mismo.
Todos los ejemplos contenidos en este libro, utilizan esta herramienta para analizar y
plantear un algoritmo.
EXPLICACIÓN POR INSTRUCCIÓN:
(1). Es recomendado colocar un nombre a los algoritmos, en este caso debe ir
siempre presidido de la comilla simple, seguido de la palabra Pseudocódigo y
luego del nombre del mismo. Como este ejemplo muestra un mensaje, así se
llamara el algoritmo.
(3). Todo Pseudocódigo contiene la palabra de Inicio, para indicar que se
comienza un Pseudocódigo.
(4). La palabra Escribir permite mostrar mensajes, siempre y cuando se
encuentren entre comillas dobles, como en este caso “Hola Mundo”. Los
mensajes a su vez pueden estar contenidos por paréntesis. Así como:
Escribir(“Hola Mundo”).
(5). Todo Pseudocódigo contiene la palabra Fin, para indicar que finaliza el
Pseudocódigo.
Diseñar un Pseudocódigo en el cuál se muestre el siguiente mensaje
“Hola Mundo.”
Ejercicio.
Entrada: no existe ningún dato de entrada. El mensaje es conocido.
Proceso: no se necesita efectuar ningún calculo ni acción.
Salida: mostrar el mensaje Hola Mundo.
1
2
3
4
5
6
‘Pseudocódigo mensaje
Inicio
Escribir “Hola Mundo”
Fin