Академический Документы
Профессиональный Документы
Культура Документы
ALGORITMOS
Implementacion en: C++, JAVA y PHP
Prologo
Desde hace mucho tiempo los algoritmos han existido para solucionar problemas. En la
actualidad se han convertido en el fundamento bsico de la programacin de
computadoras; y porque no decirlo en la generacin de soluciones de diversos problemas
de las ciencias y la rutinas constantes del hombre.
La utilizacin de las computadoras en la solucin de problemas, hace de los algoritmos una
codificacin exacta y precisa, basada en una lgica y matemtica gestionable por las
computadoras y el hombre. Es as que esto conlleva a la generacin de un lenguaje comn
hombre mquina, llamado programa. Est permitir adaptar a la computadora a
soluciones de problemas a medida del usuario.
En este ejemplar encontrara una variedad de ejercicios resueltos as como propuestos e
implementados en 3 lenguajes de programacin como C++, JAVA y PHP, siendo estos de
mucha aplicacin.
Captulo 1:
Captulo 4:
Captulo 5:
Modularidad: Procedimientos y funciones (Mtodos)
Comprender las tcnicas de organizacin a travs de mecanismos capaces de
agrupar las rutinas, que generan soluciones, mediante valores lmites y
condiciones en una variable.
Aprender a descomponer la solucin de un problema, encontrando mecanismos
independientes, capaces de llevar valores de variables de manera local y global.
Captulo 6:
Estructuras, Unin, Enumeracin
Aprender nuevos aspectos de organizar la informacin a medida del programador y
atendiendo el contexto de programacin de una solucin.
n
Captulo 7:
Mtodos de Ordenamiento y Bsqueda
Descubrir los diversos mtodos para interpretar mediante rutinas de estructuras de
cdigos, formas de ordenar, buscar e intercalar un dato dentro un bloque de informacin.
Captulo 8:
Archivos (Ficheros)
Conocer la estructura interna de la generacin de un almacenamiento interno y
externo de la informacin.
Descubrir los diversos mtodos para interpretar mediante rutinas de estructuras
de cdigos, formas de ordenar, buscar e intercalar un dato dentro un bloque de
informacin.
Captulo 9:
Recursividad
Aprender estrategias de programacin para simplificar una solucin reutilizando las
mismas rutinas.
Captulo 10: Memoria Dinmica y Manejo de Punteros
Conocer la organizacin dinmica del almacenamiento del valor de una variable en la
memoria del computador.
INDICE DE CONTENIDOS
Introduccin.
XV
XVI
XVII
CD de Soporte........
XVII
2
3
3
3
4
4
5
7
11
11
17
18
20
20
25
29
31
31
34
35
41
41
43
45
46
2.1. Introduccin
2.2. Lenguaje de Programacin C++
2.2.1. Declaraciones Previas
2.2.2. Estructura Bsica de un Programa
2.2.3. Tipos de Datos
2.2.4. Palabras reservadas
2.2.5. Comentarios
2.2.6. Operadores
2.2.7. Gestin de Entrada / Salida en C++
2.2.8. Estructura de Control
2.2.9. Bibliografa
47
48
50
54
57
57
2.3. Lenguaje de Programacin JAVA
2.3.1. Estructura de un Programa en JAVA
2.3.2. Identificadores
2.3.3. Palabras reservadas
2.3.4. Literales
2.3.5. Arrays
2.3.6. Operadores
2.3.7. Separadores
2.3.8. Estructuras de control de Flujo
2.3.9. Excepciones: try-catch-throw
2.3.10.
Bucles Infinitos
2.3.11.Clases
2.3.12.
Tipos de Clases
2.3.13.
Variables y Mtodos de Instancia
2.3.14.
mbito de una variable
2.3.15.
Mtodos y Constructores
2.3.16.
Finalizadores
2.3.17.
Import
2.3.18.
Paquetes de Java
2.3.19.
Bibliografa
58
74
59
60
62
62
63
64
66
67
72
73
73
73
74
75
77
79
80
82
82
85
85
86
87
Capitulo III: Herramientas y Estructuras Algortmicas para Formular programas
88
89
89
89
91
92
92
92
93
93
94
97
100
101
102
103
104
105
106
107
117
118
118
119
120
125
128
130
135
135
de Caracteres
135
4.1. Introduccin
4.2. Arreglos
4.2.1. Vectores
Actividades de Programacin Resueltas
Actividades de Programacin Propuestas
4.2.2. Matrices
Actividades de Programacin Resueltas
Actividades de Programacin Propuestas
4.2.3. Multidimensionales
Actividades de Programacin Resueltas
Practica de Laboratorio
Actividades de Programacin Propuestas
4.3.
Cadenas de Caracteres
Actividades de Programacin Resueltas
Actividades de Programacin Propuestas
158
164
164
164
213
213
245
248
248
250
291
295
295
296
312
Captulo V: Modularidad
5.1.
5.2.
5.3.
5.4.
5.5.
5.6.
5.7.
317
320
321
343
353
353
356
364
Introduccin
Estructuras o registros
Acceso a registros
Anidamiento de Estructuras
Array de Estructuras
Registros como Parmetros
Tratamientos de registros en C++
Actividades de Programacin Resueltas
368
378
383
384
385
6.8.
6.9.
386
392
409
411
413
6.10. Uniones
6.11. Enumeraciones
Actividades de Programacin Propuestas
418
420
424
431
445
451
463
468
481
482
483
486
488
491
494
496
498
521
526
527
528
529
531
531
532
534
535
538
540
542
543
545
546
549
553
Introduccin
Procedimientos recursivos
Como generar Recursividad o Recursin
Estructura de una funcin o procedimiento recursivo
La Multiplicacin de los conejos
Actividades de Programacin Resueltas
Actividades de Programacin Propuestas
556
557
558
559
559
562
564
567
567
570
572
577
577
579
579
583
588
600
600
601
604
608
APENDICES
-
613
613
624
625
631
632
652
654
655
658
659
660
663
672
675
676
677
678
680
692
692
700
718
719
719
722
723
723
725
737
741
742
742
743
744
746
747
748
750
751
751
757
763
765
766
768
768
769
771
774
776
787
809
856
INTRODUCCION
Los algoritmos se presentan en las diversas rutinas que efectuamos a diario, es decir que
en nuestro entorno ejecutamos nuestras tareas a travs de una secuencia de pasos. El
desarrollo de algoritmos es un tema fundamental en el diseo de soluciones de problemas,
antes de ser automatizados en programas para ser operados a travs de una
computadora.
El algoritmo nos da la solucin genrica a un problema y lo podremos emplear todas las
veces que se nos presente ese mismo problema. Por ejemplo, el algoritmo de la divisin es
genrico e independiente de los nmeros que tengamos que dividir.
Una vez descubierto un algoritmo para efectuar una tarea, la realizacin de sta ya no
requiere entender los principios en que se basa dicho algoritmo, pues el proceso se reduce
a seguir las instrucciones del mismo. Por ejemplo, podemos hacer una divisin siguiendo el
algoritmo sin entender por qu funciona el algoritmo. La inteligencia requerida para llevar a
cabo la tarea est codificada en el algoritmo.
Las mquinas algortmicas son aquellas capaces de llevar a cabo algoritmos, y entre ellas
estn los computadores. En el mbito de los computadores, los algoritmos se expresan
como programas. Los programas son algoritmos codificados con un lenguaje no ambiguo
cuya sintaxis y semntica "entiende" el computador. Hay muchos lenguajes de
programacin de computadores, entre ellos, C, C++, Java, PHP, Delphi, etc.
As pues, si queremos que un computador efecte una tarea, primero debemos descubrir
un algoritmo para llevarla a cabo, programar el algoritmo en la mquina consiste en
representar ese algoritmo de modo que se pueda comunicar a una mquina. En otras
palabras debemos transformar el algoritmo conceptual en un conjunto de instrucciones y
representar estas ltimas en un lenguaje sin ambigedad.
Gracias a la capacidad para comunicar nuestros pensamientos mediante algoritmos,
podemos construir mquinas cuyo comportamiento simula, en alguna medida la
inteligencia. El nivel de inteligencia que simula la mquina est limitado por la inteligencia
que podamos comunicarle por medio de algoritmos. Las mquinas slo pueden realizar
tareas algortmicas. Si encontramos un algoritmo para dirigir la ejecucin de una tarea,
podemos construir una mquina para llevarla a cabo siempre que la tecnologa haya
avanzado lo suficiente. Si no encontramos un algoritmo, es posible que la ejecucin est
fuera de las capacidades de las mquinas. Un computador es todo aparato o mquina
destinada a procesar informacin, entendindose por proceso las sucesivas fases,
manipulaciones o transformaciones que sufre la informacin para resolver un problema
determinado, siguiendo las instrucciones de un programa registrado.
Razones para leer este libro
Este libro le permitir conocer y estudiar las diversas tcnicas bsicas de programacin,
as como aprender la programacin estructurada en los lenguajes de programacin como
C++, JAVA y PHP. Siendo muy importante tener un claro conocimiento de las diferencias
que cada uno de ellos muestra, este libro se desarroll basado en la necesidad que los
estudiantes presentan cuando buscan encontrar diversas formas de como plantear una
solucin as como para aquellos que busquen la integracin de sus soluciones a nivel de
los diversos entornos de estos lenguajes de programacin.
El CD de soporte
En este libro se incluye un CD con ms de 200 ejemplos vistos a nivel del libro y otros que
no fueron incluidos en esta obra didctica por razones de espacios. Las formas de ver los
cdigos fuentes de los ejemplos del libro u otros se puede hacerse de 2 maneras:
-
A nivel de un archivo ndice web ndice.htm el cual le mostrara una pgina local
enlazada a su CD y poder consultar la informacin por temas y captulos, segn la
el cubo de Rubik, es necesario memorizar una serie de algoritmos o secuencias con lo cual
estamos trabajando la memoria y otros aspectos del aprendizaje.