SlideShare una empresa de Scribd logo
1 de 298
Descargar para leer sin conexión
Fundamentos de programación,
Guía de autoenseñanza
Fundamentos de programación,
Guía de autoenseñanza
Carlos Andrés Zapata Ospina
Alfaomega Ra-Ma
Fundamentos de programación, guía de autoenseñanza.
© Carlos Andrés Zapata Ospina.
ISBN 75-089-060, edición original publicada por RA-MA editorial,
Caldas, Colombia. Derechos reservados © RA-MA editorial.
Primera edición: Alfaomega grupo editor, Colombia, septiembre 2006.
ISBN 75-089-060
Derechos reservados.
Esta obra es propiedad intelectual de su autor y los derechos de publicación
en lengua española han sido legalmente transferidos al editor. Prohibida su
reproducción parcial o total por cualquier medio sin permiso por escrito del
propietario de los derechos del Copyright.
NOTA IMPORTANTE.
La información contenida en esta obra tiene un fin exclusivamente didáctico
y, por tanto, no esta previsto su aprovechamiento a nivel profesional o industrial.
Las condiciones técnicas y programadas incluidas, han sido elaboradas con
un gran cuidado por el autor y reproducidos bajo estrictas normas de control.
ALFAOMEGA GRUPO EDITOR no será jurídicamente responsable por:
Errores u omisiones; daños y perjuicios que se pudieran atribuir al uso de la
Información comprendida en este libro, ni por la utilización indebida que
pudiera dársele.
Impreso en Colombia – Printed in Colmbia.
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.
Contenido
1.
1.1
1.2
1.2.1
1.2.2
1.3
1.3.1
1.3.1.1
1.3.1.2
1.3.1.3
1.3.2
1.3.2.1
1.3.2.2
1.3.2.3
1.3.2.4
1.3.2.5
1.3.2.6
1.3.2.7
1.3.2.8
1.3.2.9
1.3.2.10
1.3.2.11
1.3.2.12
1.4
1.5
1.5.1
1.5.1.1
1.5.1.2
1.5.1.3
2
2.1
2.2
Introducción a las Computadoras y Lenguajes de
Programación.
Introducción
Historia
Historia del hardware
Historia del software
Hardware
Elementos de un computador según utilización
Dispositivos de entrada
Dispositivos de salida
Dispositivos de almacenamiento
Partes del computador
Mouse o ratón
Teclado
Monitor
Torre del computador
Disco duro
CPU
La memoria RAM
Tarjeta madre, Main board o placa base
Buses de datos
Unidades de CD-ROM
Unidades de cd-rw
Unidades de disquete
Software
Programación
Lenguajes
Lenguaje de maquina
Lenguaje ensamblador
Lenguajes de alto nivel
Ejercicios de lógica
Introducción
Técnicas para la solución de problemas
1
2
3
3
6
7
7
7
8
8
9
9
9
10
11
11
11
12
12
12
12
13
13
13
14
15
15
15
15
21
22
22
2.3
2.3.1
2.3.2
2.3.3
2.3.4
3
3.1
3.2
3.3
3.3.1
3.3.1.1
3.3.1.2
3.3.2
3.3.3
3.3.4
3.4
3.4.1
3.5
3.5.1
3.5.2
3.6
4
4.1
4.2
4.2.1
4.2.1.1
4.2.2
4.2.2.1
4.3
4.3.1
4.3.2
4.3.3
4.3.3.1
4.3.3.2
4.3.3.3
4.3.3.4
4.3.3.5
4.3.3.6
4.3.3.7
Ejercicios de lógica
Ejercicios con soluciones
Ejercicios adicionales, propuestos
Ejercicios con Sudoku
Ejercicios con el acompañamiento computacional
Fundamentos
Introducción
Algoritmo
Tipos de datos
Datos de tipo numérico
Tipo numérico entero
Tipo numérico real
Datos tipo lógico
Datos tipo cadena de caracteres
Tipos de datos definidos por el usuario
Variables
Reglas para nombrar variables
Constantes
Constantes literales
Constantes declaradas
Representación de expresiones aritméticas
Algoritmia
Introducción
Representación de los algoritmos
El diagrama de flujo
Características del diagrama de flujo
Pseudocódigo
Reglas para usar Pseudocódigo
Operadores
Operador de asignación
Operador de asociación
Operadores matemáticos
Suma
Resta
Multiplicación
División
División entera
Modulo
Exponencial
24
25
33
35
42
51
52
52
54
55
55
56
57
57
58
59
60
61
62
62
63
69
70
71
71
71
72
74
79
80
80
81
81
81
82
83
84
84
85
4.3.4
4.3.4.1
4.3.5
5
5.1
5.2
5.2.1
5.2.1.1
5.2.1.2
5.2.1.3
5.2.1.4
5.2.1.5
5.2.1.6
5.2.1.7
5.2.1.8
5.2.1.9
5.2.10
5.2.1.11
5.2.1.12
5.2.2
5.2.2.1
5.2.2.2
5.2.2.3
5.2.2.4
5.2.2.5
5.2.2.6
5.2.2.7
5.2.2.8
5.2.2.9
5.2.2.10
5.2.2.11
5.2.2.12
5.2.2.13
5.2.2.14
5.2.2.15
5.2.3
5.2.3.1
5.2.3.2
5.2.3.3
Operadores de cadenas de caracteres
Concatenar
Reglas de prioridad
Funciones establecidas, funciones del sistema
Introducción
Funciones
Funciones matemáticas
Función Abs
Función Arctan
Función Cos
Función Exp
Función Hex
Función Ln
Función Oct
Función Raiz2
Función Redondeo
Función Sen
Función Signo
Función Tan
Funciones de cadena
Función Ascii
Función Car
Función CadenaDer
Función CadenaIzq
Función CompararCadena
Función EnCadena
Función Invertir
Función Mayúscula
Función Minúscula
Función Longitud
Función Reemplazar
Función SinEspacioDer
Función SinEspacioIzq
Función SinEspacioLados
Función SubCadena
Funciones de fecha y hora
Función Anno
Función Fecha
Función FechaIntervalo
86
86
87
105
106
107
107
107
107
108
109
110
110
111
111
112
113
113
114
115
115
116
116
117
118
119
119
120
121
122
123
123
124
124
125
126
126
127
128
5.2.3.4
5.2.3.5
5.2.3.6
5.2.3.7
5.2.3.8
5.2.3.9
5.2.4
5.2.4.1
5.2.4.2
5.2.4.3
5.2.4.4
5.2.4.5
5.2.4.6
6.
6.1
6.2
6.2.1
6.2.1.1
6.2.1.2
6.2.1.3
6.2.1.4
6.2.1.5
6.2.1.6
6.2.2
6.2.2.1
6.2.2.2
6.2.2.3
6.2.2.4
6.2.2.5
6.3
6.3.1
6.3.2
6.3.3
6.3.4
7
7.1
7.2
7.2.1
Función FechaDiferencia
Función FechaParte
Función Dia
Función Hora
Función Mes
Función Minuto
Funciones de conversión de tipos
Función CBooleano
Función CFecha
Función CEnteroCorto
Función CEnteroLargo
Función CRealCorto
Función CCadena
Control del flujo I, Estructuras condicionales
Introducción
Control del flujo, toma de decisiones
Operadores de relación
Mayor que
Menor que
Mayor o igual que
Menor o igual que
Igual a
Diferente
Operadores lógicos
And [Y] conjunción
Or [o lógico]
Nand
Nor
Not
Estructuras condicionales
Él Sí simple
Él Si compuesto
Combinación de Sí simples y compuestos
La estructura SegunSea
Control del flujo II, Estructuras repetitivas
Introducción
Control del flujo, ciclos
El ciclo Para ... FinPara
129
129
130
131
131
132
133
133
133
134
135
136
136
143
144
144
145
145
146
146
147
148
149
149
149
150
151
152
152
154
154
157
160
162
171
172
172
175
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
1
Introducción
a las Computadoras,
y lenguajes de programación
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.
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”.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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
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.
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.
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.
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.
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
2
Ejercicios de
Lógica
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.
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.
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.
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?
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?
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?
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?
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
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.
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
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.
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.
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.
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
Fundamentos de programación36
2.
2 5
7 8 2
6 2 5 3 8 1
9 7 5
7 9 4
5 1 6
8 5 4 7 1
3 9 8
4 1 8 9
3.
4 3 6
3 6 5 4 2 8
7 9
7 9 4 6
8 5 7
2 7 6
7 8
1 3 4 6 9
6 9 2 5
4.
9 2 8
8 3 5 2 1
1 8 4
5 8 2
7 3 4 5
4 6 7
1 4 3 9
5 2 1 6
7 3 6
Capitulo 2, Ejercicios de lógica. 37
5.
2 6 4 9
5 8 1 6 4
6 5
3 5 9
3 4 2
7 5 9 1
8 3 5
9 7 2 8
1 5 4 6
6.
7 3 9
6 9 8 4 7
8 9 5
1 3 8 4
5 3 1
4 7 6 3
2 1 4
4 7 8 2
3 2 6
7.
9 5 7
2 9 6 8 1
6 5 2
6 1 4
1 2 7
2 7 8 5
8 4 7 9
7 9 8
3 6 2 4
Fundamentos de programación38
8.
7 1 3 5 4
2 9 1
9 8 2
7 2 3
2 1 7 5
5 9 4
5 4 9
6 2 1
1 4 8 5 6
9.
4 8 5 2
3 7 6
2 9 8
7 1 9 5 8
3 2
4 7 3 1
5 1 3
9 2 6 7 5
6 9 4
10.
1 7 2 8
3 4 5 1
9 7
7 4
9 5 1
3 6 9 2
1 8 6 2
3 9 4 1 5
4 6 2 1
Capitulo 2, Ejercicios de lógica. 39
11.
4 6 5 8
1 7 3 5
8 4 7
7 8 4
6 9
5 1 6
9 7
4 1 2 6 3
3 2 5
12.
5 7 4 1
2 3 8 6
9 6 4
9 2 8 3 2
8 5 1
1 6 7
1 5 9
5 7 2 8
4 6 3
13.
6 2 5
8 2
5 9 6 1 7
9 5 7 3
8 3 7
3 8 4 6 1
3 6 4 8
2 9 4
4 9 2
Fundamentos de programación40
14.
8 9
9 1
1 5 4 6 2 8
3 8 4
7 6 9
5 2 7 9 4
1 9 3 5 4
9 4 1
1 2
15.
2 8 3
4 3 8
3 5 6 9
9 8 5 7
4 5 9 8
1 6 9 3
7 6 2
2 9 3
7 1 4
16.
5 4 3 1 9
7 2 3
2 9 4 7
2 4 9 3
4 1 2
1 6
9 7 2 3 5
1 8
2 6 5 9
Capitulo 2, Ejercicios de lógica. 41
17.
9 8 3
8 7 5 4
5 4 6 7
3 7 5
1 6 9 2
8 9
3 1 5 9 6
4 2 9
5 2 8 4
18.
8 7
6 4 9 3 8
7 1 8 2
7 2 1 6 3
3 7 1
9 5 2
4 6 1 8
3 5 8 9 6
8
19.
6 8 7
1 5 3
9 7 6 1 4
7 3 9
8 6 4 7
4 9 8
2 5 4 1 7
5 9 3 2
6 5
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.
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.
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.
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.
Fundamentos de programación46
En este caso descargue al caníbal, y suba al otro misionero y diríjalos al otro lado del
lago.
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.
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.
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.
3
Fundamentos
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
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.
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.
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.
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
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
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).
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.
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
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á.
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
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.
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.
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
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
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.
4
Algoritmia
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
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.
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.
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
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
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.
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:
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
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro
180 zapata ospina_carlos_andres_2006 file2 libro

Más contenido relacionado

La actualidad más candente

SISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINAL
SISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINALSISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINAL
SISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINALFrancisco Gonzalez Aguilar
 
Informe proyecto final programacion i (2)
Informe proyecto final programacion i (2)Informe proyecto final programacion i (2)
Informe proyecto final programacion i (2)CRISSTHOFER
 
Sistema experto test orientacion vocacional
Sistema experto test orientacion vocacionalSistema experto test orientacion vocacional
Sistema experto test orientacion vocacionalHarry G Portales
 
Trabajo escrito de tecnologia e informatica
Trabajo escrito de tecnologia e informaticaTrabajo escrito de tecnologia e informatica
Trabajo escrito de tecnologia e informaticaCristinaMuoz104
 
Disenoestructuradoalgoritmos
DisenoestructuradoalgoritmosDisenoestructuradoalgoritmos
Disenoestructuradoalgoritmosarmando_franco
 
Tecnologia tarea grupal 2.0
Tecnologia tarea grupal 2.0Tecnologia tarea grupal 2.0
Tecnologia tarea grupal 2.0tatianasaavedra9
 
Diseño de-un-sistema-de-informacion-para-registro-academico
Diseño de-un-sistema-de-informacion-para-registro-academicoDiseño de-un-sistema-de-informacion-para-registro-academico
Diseño de-un-sistema-de-informacion-para-registro-academicoRAUL CHIPANA LARICO
 
Fundamentos de packet tracer
Fundamentos de packet tracerFundamentos de packet tracer
Fundamentos de packet tracerUNAD
 
Jcf iind 2010-227 algoritmos y lenguajes de programacion
Jcf iind 2010-227 algoritmos y lenguajes de programacionJcf iind 2010-227 algoritmos y lenguajes de programacion
Jcf iind 2010-227 algoritmos y lenguajes de programacionMiguel Alejandro León Santos
 
Trabajo de tecnología
Trabajo de tecnologíaTrabajo de tecnología
Trabajo de tecnologíaLuisaCamargo6
 
Los conceptos basicos de la programacion 10 5 (1)
Los conceptos basicos de la programacion  10 5 (1)Los conceptos basicos de la programacion  10 5 (1)
Los conceptos basicos de la programacion 10 5 (1)VictoriaRamrez13
 
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010Instituto Tecnologico de Tepic
 
Hdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardwareHdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardwarelorena
 

La actualidad más candente (17)

SISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINAL
SISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINALSISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINAL
SISTEMA DE REGISTRO DE ALUMNOS Y EQUIPOS FINAL
 
Informe proyecto final programacion i (2)
Informe proyecto final programacion i (2)Informe proyecto final programacion i (2)
Informe proyecto final programacion i (2)
 
Sistema experto test orientacion vocacional
Sistema experto test orientacion vocacionalSistema experto test orientacion vocacional
Sistema experto test orientacion vocacional
 
Trabajo escrito de tecnologia e informatica
Trabajo escrito de tecnologia e informaticaTrabajo escrito de tecnologia e informatica
Trabajo escrito de tecnologia e informatica
 
Disenoestructuradoalgoritmos
DisenoestructuradoalgoritmosDisenoestructuradoalgoritmos
Disenoestructuradoalgoritmos
 
Tecnologia tarea grupal 2.0
Tecnologia tarea grupal 2.0Tecnologia tarea grupal 2.0
Tecnologia tarea grupal 2.0
 
Diseño de-un-sistema-de-informacion-para-registro-academico
Diseño de-un-sistema-de-informacion-para-registro-academicoDiseño de-un-sistema-de-informacion-para-registro-academico
Diseño de-un-sistema-de-informacion-para-registro-academico
 
Implementaciontestvocacional
ImplementaciontestvocacionalImplementaciontestvocacional
Implementaciontestvocacional
 
Fundamentos de packet tracer
Fundamentos de packet tracerFundamentos de packet tracer
Fundamentos de packet tracer
 
Jcf iind 2010-227 algoritmos y lenguajes de programacion
Jcf iind 2010-227 algoritmos y lenguajes de programacionJcf iind 2010-227 algoritmos y lenguajes de programacion
Jcf iind 2010-227 algoritmos y lenguajes de programacion
 
Semana 1 - Informàtica
Semana 1 - InformàticaSemana 1 - Informàtica
Semana 1 - Informàtica
 
Proyecto programacion
Proyecto programacionProyecto programacion
Proyecto programacion
 
Trabajo de tecnología
Trabajo de tecnologíaTrabajo de tecnología
Trabajo de tecnología
 
Los conceptos basicos de la programacion 10 5 (1)
Los conceptos basicos de la programacion  10 5 (1)Los conceptos basicos de la programacion  10 5 (1)
Los conceptos basicos de la programacion 10 5 (1)
 
Tecnologia e informatica
Tecnologia e informaticaTecnologia e informatica
Tecnologia e informatica
 
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
Tutorial uso-packet-tracer-y-aplicaciones-resueltas-corpocides-2010
 
Hdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardwareHdl lenguaje descriptivo de hardware
Hdl lenguaje descriptivo de hardware
 

Similar a 180 zapata ospina_carlos_andres_2006 file2 libro

Aprenda C++ como si estuviera en primero
Aprenda C++ como si estuviera en primeroAprenda C++ como si estuviera en primero
Aprenda C++ como si estuviera en primeroAndy Juan Sarango Veliz
 
programacion c++ basico
programacion c++  basicoprogramacion c++  basico
programacion c++ basicoLoyda PM
 
Modulo intr a_los_pc
Modulo intr a_los_pcModulo intr a_los_pc
Modulo intr a_los_pcliz perez
 
Vergara escobar esneider yesid
Vergara escobar esneider yesidVergara escobar esneider yesid
Vergara escobar esneider yesidEsneider Vergara
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskJohann Chambilla
 
Guia de inicio rsview32
Guia de inicio rsview32Guia de inicio rsview32
Guia de inicio rsview32Gilbert_28
 
Tecnico hardware desde cero
Tecnico hardware desde ceroTecnico hardware desde cero
Tecnico hardware desde ceroWhaleejaa Wha
 
Presentacion introduccion
Presentacion introduccionPresentacion introduccion
Presentacion introduccionguesta39fced
 
Desarrollo de habilidades de pensamientos
Desarrollo de habilidades de pensamientosDesarrollo de habilidades de pensamientos
Desarrollo de habilidades de pensamientospabloandresbueno
 
Curso de arduino basico 1ra edicion saenz flores misael
Curso de arduino basico 1ra edicion   saenz flores misaelCurso de arduino basico 1ra edicion   saenz flores misael
Curso de arduino basico 1ra edicion saenz flores misaelDesk SOS
 
Sistema operativo elizabeth aguilar
Sistema operativo elizabeth aguilarSistema operativo elizabeth aguilar
Sistema operativo elizabeth aguilarelizatlv29
 

Similar a 180 zapata ospina_carlos_andres_2006 file2 libro (20)

Cppbasico
CppbasicoCppbasico
Cppbasico
 
Tutorial de C
Tutorial de CTutorial de C
Tutorial de C
 
Aprenda C++ como si estuviera en primero
Aprenda C++ como si estuviera en primeroAprenda C++ como si estuviera en primero
Aprenda C++ como si estuviera en primero
 
C++ basico subido JHS
C++ basico subido JHSC++ basico subido JHS
C++ basico subido JHS
 
Cppbasico
CppbasicoCppbasico
Cppbasico
 
Tutorial de c++
Tutorial de c++Tutorial de c++
Tutorial de c++
 
programacion c++ basico
programacion c++  basicoprogramacion c++  basico
programacion c++ basico
 
Introducción a la informática
Introducción a la informáticaIntroducción a la informática
Introducción a la informática
 
Modulo intr a_los_pc
Modulo intr a_los_pcModulo intr a_los_pc
Modulo intr a_los_pc
 
Vergara escobar esneider yesid
Vergara escobar esneider yesidVergara escobar esneider yesid
Vergara escobar esneider yesid
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoresk
 
Guia de inicio rsview32
Guia de inicio rsview32Guia de inicio rsview32
Guia de inicio rsview32
 
Tecnico hardware desde cero
Tecnico hardware desde ceroTecnico hardware desde cero
Tecnico hardware desde cero
 
Presentacion introduccion
Presentacion introduccionPresentacion introduccion
Presentacion introduccion
 
Desarrollo de habilidades de pensamientos
Desarrollo de habilidades de pensamientosDesarrollo de habilidades de pensamientos
Desarrollo de habilidades de pensamientos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Curso de arduino basico 1ra edicion saenz flores misael
Curso de arduino basico 1ra edicion   saenz flores misaelCurso de arduino basico 1ra edicion   saenz flores misael
Curso de arduino basico 1ra edicion saenz flores misael
 
Sistema operativo elizabeth aguilar
Sistema operativo elizabeth aguilarSistema operativo elizabeth aguilar
Sistema operativo elizabeth aguilar
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
Flex y bison
Flex y bisonFlex y bison
Flex y bison
 

Más de desi2907

Algorithms notesforprofessionals
Algorithms notesforprofessionalsAlgorithms notesforprofessionals
Algorithms notesforprofessionalsdesi2907
 
Mprogintc++ prog(3)
Mprogintc++ prog(3)Mprogintc++ prog(3)
Mprogintc++ prog(3)desi2907
 
Analisis y disenio_de_algoritmos-libro 4
Analisis y disenio_de_algoritmos-libro 4Analisis y disenio_de_algoritmos-libro 4
Analisis y disenio_de_algoritmos-libro 4desi2907
 
Algoritmos libro 6
Algoritmos  libro 6Algoritmos  libro 6
Algoritmos libro 6desi2907
 

Más de desi2907 (6)

Pb1
Pb1Pb1
Pb1
 
Modulo1
Modulo1Modulo1
Modulo1
 
Algorithms notesforprofessionals
Algorithms notesforprofessionalsAlgorithms notesforprofessionals
Algorithms notesforprofessionals
 
Mprogintc++ prog(3)
Mprogintc++ prog(3)Mprogintc++ prog(3)
Mprogintc++ prog(3)
 
Analisis y disenio_de_algoritmos-libro 4
Analisis y disenio_de_algoritmos-libro 4Analisis y disenio_de_algoritmos-libro 4
Analisis y disenio_de_algoritmos-libro 4
 
Algoritmos libro 6
Algoritmos  libro 6Algoritmos  libro 6
Algoritmos libro 6
 

Último

UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024AndreRiva2
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicaFlor Idalia Espinoza Ortega
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 

Último (20)

UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
celula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamicacelula, tipos, teoria celular, energia y dinamica
celula, tipos, teoria celular, energia y dinamica
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 

180 zapata ospina_carlos_andres_2006 file2 libro

  • 2.
  • 3. Fundamentos de programación, Guía de autoenseñanza Carlos Andrés Zapata Ospina Alfaomega Ra-Ma
  • 4. Fundamentos de programación, guía de autoenseñanza. © Carlos Andrés Zapata Ospina. ISBN 75-089-060, edición original publicada por RA-MA editorial, Caldas, Colombia. Derechos reservados © RA-MA editorial. Primera edición: Alfaomega grupo editor, Colombia, septiembre 2006. ISBN 75-089-060 Derechos reservados. Esta obra es propiedad intelectual de su autor y los derechos de publicación en lengua española han sido legalmente transferidos al editor. Prohibida su reproducción parcial o total por cualquier medio sin permiso por escrito del propietario de los derechos del Copyright. NOTA IMPORTANTE. La información contenida en esta obra tiene un fin exclusivamente didáctico y, por tanto, no esta previsto su aprovechamiento a nivel profesional o industrial. Las condiciones técnicas y programadas incluidas, han sido elaboradas con un gran cuidado por el autor y reproducidos bajo estrictas normas de control. ALFAOMEGA GRUPO EDITOR no será jurídicamente responsable por: Errores u omisiones; daños y perjuicios que se pudieran atribuir al uso de la Información comprendida en este libro, ni por la utilización indebida que pudiera dársele. Impreso en Colombia – Printed in Colmbia.
  • 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.
  • 6.
  • 7. Contenido 1. 1.1 1.2 1.2.1 1.2.2 1.3 1.3.1 1.3.1.1 1.3.1.2 1.3.1.3 1.3.2 1.3.2.1 1.3.2.2 1.3.2.3 1.3.2.4 1.3.2.5 1.3.2.6 1.3.2.7 1.3.2.8 1.3.2.9 1.3.2.10 1.3.2.11 1.3.2.12 1.4 1.5 1.5.1 1.5.1.1 1.5.1.2 1.5.1.3 2 2.1 2.2 Introducción a las Computadoras y Lenguajes de Programación. Introducción Historia Historia del hardware Historia del software Hardware Elementos de un computador según utilización Dispositivos de entrada Dispositivos de salida Dispositivos de almacenamiento Partes del computador Mouse o ratón Teclado Monitor Torre del computador Disco duro CPU La memoria RAM Tarjeta madre, Main board o placa base Buses de datos Unidades de CD-ROM Unidades de cd-rw Unidades de disquete Software Programación Lenguajes Lenguaje de maquina Lenguaje ensamblador Lenguajes de alto nivel Ejercicios de lógica Introducción Técnicas para la solución de problemas 1 2 3 3 6 7 7 7 8 8 9 9 9 10 11 11 11 12 12 12 12 13 13 13 14 15 15 15 15 21 22 22
  • 8. 2.3 2.3.1 2.3.2 2.3.3 2.3.4 3 3.1 3.2 3.3 3.3.1 3.3.1.1 3.3.1.2 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.5 3.5.1 3.5.2 3.6 4 4.1 4.2 4.2.1 4.2.1.1 4.2.2 4.2.2.1 4.3 4.3.1 4.3.2 4.3.3 4.3.3.1 4.3.3.2 4.3.3.3 4.3.3.4 4.3.3.5 4.3.3.6 4.3.3.7 Ejercicios de lógica Ejercicios con soluciones Ejercicios adicionales, propuestos Ejercicios con Sudoku Ejercicios con el acompañamiento computacional Fundamentos Introducción Algoritmo Tipos de datos Datos de tipo numérico Tipo numérico entero Tipo numérico real Datos tipo lógico Datos tipo cadena de caracteres Tipos de datos definidos por el usuario Variables Reglas para nombrar variables Constantes Constantes literales Constantes declaradas Representación de expresiones aritméticas Algoritmia Introducción Representación de los algoritmos El diagrama de flujo Características del diagrama de flujo Pseudocódigo Reglas para usar Pseudocódigo Operadores Operador de asignación Operador de asociación Operadores matemáticos Suma Resta Multiplicación División División entera Modulo Exponencial 24 25 33 35 42 51 52 52 54 55 55 56 57 57 58 59 60 61 62 62 63 69 70 71 71 71 72 74 79 80 80 81 81 81 82 83 84 84 85
  • 9. 4.3.4 4.3.4.1 4.3.5 5 5.1 5.2 5.2.1 5.2.1.1 5.2.1.2 5.2.1.3 5.2.1.4 5.2.1.5 5.2.1.6 5.2.1.7 5.2.1.8 5.2.1.9 5.2.10 5.2.1.11 5.2.1.12 5.2.2 5.2.2.1 5.2.2.2 5.2.2.3 5.2.2.4 5.2.2.5 5.2.2.6 5.2.2.7 5.2.2.8 5.2.2.9 5.2.2.10 5.2.2.11 5.2.2.12 5.2.2.13 5.2.2.14 5.2.2.15 5.2.3 5.2.3.1 5.2.3.2 5.2.3.3 Operadores de cadenas de caracteres Concatenar Reglas de prioridad Funciones establecidas, funciones del sistema Introducción Funciones Funciones matemáticas Función Abs Función Arctan Función Cos Función Exp Función Hex Función Ln Función Oct Función Raiz2 Función Redondeo Función Sen Función Signo Función Tan Funciones de cadena Función Ascii Función Car Función CadenaDer Función CadenaIzq Función CompararCadena Función EnCadena Función Invertir Función Mayúscula Función Minúscula Función Longitud Función Reemplazar Función SinEspacioDer Función SinEspacioIzq Función SinEspacioLados Función SubCadena Funciones de fecha y hora Función Anno Función Fecha Función FechaIntervalo 86 86 87 105 106 107 107 107 107 108 109 110 110 111 111 112 113 113 114 115 115 116 116 117 118 119 119 120 121 122 123 123 124 124 125 126 126 127 128
  • 10. 5.2.3.4 5.2.3.5 5.2.3.6 5.2.3.7 5.2.3.8 5.2.3.9 5.2.4 5.2.4.1 5.2.4.2 5.2.4.3 5.2.4.4 5.2.4.5 5.2.4.6 6. 6.1 6.2 6.2.1 6.2.1.1 6.2.1.2 6.2.1.3 6.2.1.4 6.2.1.5 6.2.1.6 6.2.2 6.2.2.1 6.2.2.2 6.2.2.3 6.2.2.4 6.2.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 7 7.1 7.2 7.2.1 Función FechaDiferencia Función FechaParte Función Dia Función Hora Función Mes Función Minuto Funciones de conversión de tipos Función CBooleano Función CFecha Función CEnteroCorto Función CEnteroLargo Función CRealCorto Función CCadena Control del flujo I, Estructuras condicionales Introducción Control del flujo, toma de decisiones Operadores de relación Mayor que Menor que Mayor o igual que Menor o igual que Igual a Diferente Operadores lógicos And [Y] conjunción Or [o lógico] Nand Nor Not Estructuras condicionales Él Sí simple Él Si compuesto Combinación de Sí simples y compuestos La estructura SegunSea Control del flujo II, Estructuras repetitivas Introducción Control del flujo, ciclos El ciclo Para ... FinPara 129 129 130 131 131 132 133 133 133 134 135 136 136 143 144 144 145 145 146 146 147 148 149 149 149 150 151 152 152 154 154 157 160 162 171 172 172 175
  • 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
  • 12.
  • 13. 1 Introducción a las Computadoras, y lenguajes de programación
  • 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
  • 48. Fundamentos de programación36 2. 2 5 7 8 2 6 2 5 3 8 1 9 7 5 7 9 4 5 1 6 8 5 4 7 1 3 9 8 4 1 8 9 3. 4 3 6 3 6 5 4 2 8 7 9 7 9 4 6 8 5 7 2 7 6 7 8 1 3 4 6 9 6 9 2 5 4. 9 2 8 8 3 5 2 1 1 8 4 5 8 2 7 3 4 5 4 6 7 1 4 3 9 5 2 1 6 7 3 6
  • 49. Capitulo 2, Ejercicios de lógica. 37 5. 2 6 4 9 5 8 1 6 4 6 5 3 5 9 3 4 2 7 5 9 1 8 3 5 9 7 2 8 1 5 4 6 6. 7 3 9 6 9 8 4 7 8 9 5 1 3 8 4 5 3 1 4 7 6 3 2 1 4 4 7 8 2 3 2 6 7. 9 5 7 2 9 6 8 1 6 5 2 6 1 4 1 2 7 2 7 8 5 8 4 7 9 7 9 8 3 6 2 4
  • 50. Fundamentos de programación38 8. 7 1 3 5 4 2 9 1 9 8 2 7 2 3 2 1 7 5 5 9 4 5 4 9 6 2 1 1 4 8 5 6 9. 4 8 5 2 3 7 6 2 9 8 7 1 9 5 8 3 2 4 7 3 1 5 1 3 9 2 6 7 5 6 9 4 10. 1 7 2 8 3 4 5 1 9 7 7 4 9 5 1 3 6 9 2 1 8 6 2 3 9 4 1 5 4 6 2 1
  • 51. Capitulo 2, Ejercicios de lógica. 39 11. 4 6 5 8 1 7 3 5 8 4 7 7 8 4 6 9 5 1 6 9 7 4 1 2 6 3 3 2 5 12. 5 7 4 1 2 3 8 6 9 6 4 9 2 8 3 2 8 5 1 1 6 7 1 5 9 5 7 2 8 4 6 3 13. 6 2 5 8 2 5 9 6 1 7 9 5 7 3 8 3 7 3 8 4 6 1 3 6 4 8 2 9 4 4 9 2
  • 52. Fundamentos de programación40 14. 8 9 9 1 1 5 4 6 2 8 3 8 4 7 6 9 5 2 7 9 4 1 9 3 5 4 9 4 1 1 2 15. 2 8 3 4 3 8 3 5 6 9 9 8 5 7 4 5 9 8 1 6 9 3 7 6 2 2 9 3 7 1 4 16. 5 4 3 1 9 7 2 3 2 9 4 7 2 4 9 3 4 1 2 1 6 9 7 2 3 5 1 8 2 6 5 9
  • 53. Capitulo 2, Ejercicios de lógica. 41 17. 9 8 3 8 7 5 4 5 4 6 7 3 7 5 1 6 9 2 8 9 3 1 5 9 6 4 2 9 5 2 8 4 18. 8 7 6 4 9 3 8 7 1 8 2 7 2 1 6 3 3 7 1 9 5 2 4 6 1 8 3 5 8 9 6 8 19. 6 8 7 1 5 3 9 7 6 1 4 7 3 9 8 6 4 7 4 9 8 2 5 4 1 7 5 9 3 2 6 5
  • 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.
  • 58. Fundamentos de programación46 En este caso descargue al caníbal, y suba al otro misionero y diríjalos 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.
  • 62.
  • 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.
  • 80.
  • 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