Libro Algoritmos PDF

Title Libro Algoritmos
Author Alfonso Tejeda
Pages 238
File Size 13.4 MB
File Type PDF
Total Downloads 95
Total Views 158

Summary

PRIMERA EDICIÓN, Enero de 2009 SEGUNDA EDICIÓN, Enero de 2010 corregida y aumentada. ALGORITMOS Y PROGRAMACIÓN Inga. Jenny M. Rodríguez . DERECHOS DE AUTOR REGISTRADOS ® Se pohibe su reproducción total o parcial por cualquier medio. G. ;a,A, C. A., 2010. AGRADECIMIENTOS A Dios, por todas las bendii...


Description

Accelerat ing t he world's research.

Libro Algoritmos Alfonso Tejeda

Related papers

Download a PDF Pack of t he best relat ed papers 

ALGORIT MO Y EST RUCT URA DE DAT OS I UNIVERSIDAD T ECNOLÓGICA DEL PERÚ Aaron Sanchez Carrillo

ISI103IC02T dsgdsf dsfsdfs Int roduccion a la programacion orient ada a objet os jocelyn arenas

PRIMERA EDICIÓN, Enero de 2009 SEGUNDA EDICIÓN, Enero de 2010

corregida y aumentada.

ALGORITMOS Y PROGRAMACIÓN Inga. Jenny M. Rodríguez . DERECHOS DE AUTOR REGISTRADOS ® Se pohibe su reproducción total o parcial por cualquier medio.

G. ;a,A, C. A., 2010.

AGRADECIMIENTOS A Dios, por todas las bendiiones rcibidas y or rcibir. A mis padrs y hemanos, por todo su amor y esmero. A mi hijo Sergio lván, regalo tan maravilloso que Dios me ha dado. A mis alumnos, me han enseñado a ser una mejor persona.

INTRODUCCION La intención del presente libro, es la de presentar un texto práctio y sen�llo que ayude en los primeros pasos del aprendizaje de los algoritmos y la gramación. o deseo llenar dicho texto con demasiada teoría, mas bien con mucha rácica aunque incluyo bastants explicacions. .n ste libro nos enfoaremos a la programación orientada a procedimientos y al lenguaje de programación C+, ya que dicho lenguaje es ideal para aliaciones cientíicas y nos permite entrar al ámbito tanto de la rogramación orientada a procedimientos omo de la programación oientada a objetos. n las bases de este libro, más adelante usted podrá profundizar en oros nguajes. eseo realcale que /a pgramación es una habilidad que adquirirá on mucha práctica. Espero que usted, que está iniciando en esta rama del aber, aprenda desde el pincipio que así como hay nom,as de calidad paa poducir alzado, medicinas, y otros productos, también hay nomas de alidad para prducir programas, y desde ya usted aprenda a elaborar programas con calidad, on excelencia.

INDICE 1. DEFINICIONES GENERALES.....................................................................1 1.1. Las partes de un sistema de cómputo.............................................1 1.2. Algoritmo..........................................................................................2 1.3. Etapas en la solución de un problema............................................ .4 1.4. Características de un algoritmo ...................................................... .4 1.5. Programa.........................................................................................4 1.6. Lenguajes de programación............................................................ .4 1.7. Tipos de Instucciones .....................................................................5 1.8. Datos, tipos de datos.......................................................................5 1.9. Memoria e identificadores ................................................................6 1.1O. La operación asignación................................................................8 1.11. Funciones intenas.........................................................................8 1.12. Jerarquía de las operaciones matemáticas ...................................9 1.13. Expresiones aritméticas y algorítmicas........................................ 12 1.14. Expresiones lógicas..................................................................... 14 1.15. La operacón de declarar o definir ................................................17 1.16. Mas acerca de la operación asignación ....................................... 18 1.17. Ciclo de procesamiento de datos.................................................20 1.18. Ejemplos de algoritmos ................................................................21 1.19. Diagramas de flujo.......................................................................30 2. PROGRAMACION EN C++........................................................................35 2.1. Estructura general de un programa en c++...................................35 2.2. Estuctura típia de un programa en c++.......................................35 2.3. Tipos de datos en c++....................................................................36 2.4. Declaración de variables ................................................................36 2.5. Declaración de constantes.............................................................37 2.6. Caracteres secuenciales (códigos) de escape ............................ 38 2.7. Entrada de datos ( cin).........•........................................................38 2.8. Operadores y expresiones .............................................................43 2.9. Librería conio.h..............................................................................45 2.1O. Funciones matemáticas...............................................................47 3. ESTRUCTURAS SELECTIVAS O ALTERNATIVAS ( CONDICIONES )...48 3.1. Estructuras selectivas simples.......................................................48 3.2. Estructuras selectivas compuestas o dobles.................................56 3.3. Si ( if ) anidados o en cascada.......................................................67 3.4. Altenativa múltiple o selección múltiple........................................ 74

4. ESTRUCTURAS REPETITIVAS (CICLOS, ITERACIONES, BUCLES)....84 4.1. Ciclos mientras ( while ).................................................................85 4.2. Ciclos controlados por contador.....................................................88 4.3.

Acumuladores................................................................................................93 4.4. Ciclos controlados por centinela ( o bandera o lag ).....................98 4.5. Encontrando el menor y el mayor de los datos ingresados......... 101 4.6. Ciclos desde o para ( for ) ...........................................................106 4 7. Ciclos hacer-mientras ( do-while )................................................113 4.8. Ciclos anidados ............................................................................122 4.9. Librería stdlib.h .............................................................................128 5. PROGRAMACION MODULAR ( FUNCIONES Y PROCEDIMIENTOS ).129 5.1. Funciones intemas: ...................................................................... 131 5.2. Procedimientos intenos...............................................................133 5.3. Funciones deinidas por el usuario ( programador )....................134 5.4. Procedimientos ............................................................................142 5.5. Recursividad................................................................................147 6. ESTRUCTURAS DE DATOS....................................................., .............150 6.1. Arreglos o arrays unidimensionales ( vectores )..........................1SO 6.2. Arreglos paralelos........................................................................160 6.3. Arreglos bidimensionales ( o matrices o tablas ).........................167 6.4. Matrices paralelas........................................................................179 6.5. Arreglos de más de dos dimensiones ( multidimensionales )......188 6.6. Manejo de areglos utilizando funciones......................................190 6. 7. Cadenas de caracteres................................................................195 6.8. Esructuras o registros.................................................................202 6.8.1 Estucturas........................................................................202 6.8.2. Estructuras anidadas.......................................................209 6.8.3. Areglos de estructuras....................................................214 6.8.4. Arreglos de estuctoras utilizando procedimientos..........219 - 9. . •-cnivs....................._. .................................................................221 5.9. 1. rchivos texto ..................................................................221 6.9.. hivos binarios .............................................................225

1

! ,nos y Programación 1. DEFINICIONES GENERALES

-iaremos nuestro estudio con algunas definiciones generales: .1. LAS PARTES DE UN SISTEMA DE COMPUTO

as·amente son cuatro: • hardware, • software, • datos y • usuaios. iARDWARE:

O junto de componentes físicos de una computadora. Equipo físico. -.enplos: monitor, impresora, disco duro, etc. OFTWARE:

==-

. ·unto de programas que controlan el funcionamiento de una computadora. o lógico. =:nplos: dos, Windows, Word, etc.

DATOS

-nos o piezas individuales de información que por si mismos no tienen mucho ·do. El trabajo principal de una computadora es el de procesar estas q eñas piezas de datos de distintas maneras convitiéndolas en información '

>rlo tanto, INFORMACION implia datos procesados y organizados. USUARIO

=s la persona que opera la computadora. Ninguna computadora es mpletamente autónoma. Las personas diseñan, construyen, programan y :oaran todos los sistemas de cómputo.

Inga. Jenny M. Rodrfguez V.

Algoritmos y Prgramación

2

1.2. ALGORITMO Secuencia ordenada de pasos, sin ambigüedades, que conducen a la solución de un problema dado. Ejemplos de algoritmos de la vida diaria: Cambiar bombilla quemada en el techo:

• • • • • • • •

Apagar interruptor, Adquirir bombilla adecuada y probada Acercar una escalera o silla y subirse con bombilla en mano Quitar bombilla quemada Colocar bombilla buena Bajarse Probar con interuptor, Limpiar y ordenar.

Elabore usted los siguientes algoritmos:

• • • • •

Cambiar vidrio roto de una ventana Cambiar llanta pinchada Poner la mesa para comer Preparar una taza de afé Preparar un pastel

Inga. Jenny M. Rodríguez V.

gitmos y Programación

3

.3. ETAPAS EN LA SOLUCION DE UN PROBLEMA a resolución de un problema con una computadora conduce a la escritura y �ción de un programa. • ,:es de escribir un programa, el programador debe entender el problema con a ·dad, qué datos van a usarse, el resultado deseado y el procedimiento a __ ar para producir este resultado. _as fases o etapas de resolución de un problema con computadora son: • ANALISIS: El problema se analiza según los requerimientos de quien solicita el programa. • DISEÑO: Una vez analizado el problema, se diseña una solución que conducirá a un algoritmo. En esta etapa se pueden utilizar herramientas como Diagramas, pseudocódigo, etc. • CODIFICACION ( IMPLEMENTACION }: El algoritmo lleva a escribir un programa utilizando un lenguaje de programación. • COMPILACION: El programa se compila, se eliminan los errores de sintaxis que pudiera tener. •

EJECUCION Y VERIFICACION: Se comprueba que produzca los resultados requeridos. Es importante ejecutar muchas veces el programa con datos correctos y erróneos para detectar errores de lógica y que el programa funcione como se requiere.

• DEPURACION Y MANTENIMIENTO: El programa se modiica cada vez que el usuario lo requiera, ya que las necesidades de éste pueden variar con el tiempo y _uso. • DOCUMENTACION: Escritura de las diferentes fases del ciclo de v_ida del software, principalmente análisis y diseño así como manuales de usuario y de referencia así como normas para el mantenimiento.

Inga. Jenny M. Rodríguez .

sy Prgramación

5

TADUCTORES DE LENGUAJE o orogramas que traducen instrucciones de programas fuente de alto nivel a uaje máquina. Se dividen en Intérpretes y Compiladores. • Intérpretes: Traducen una línea, si no hay error la ejecutan y continúa así con cada una de las siguientes líneas. Ejemplo: Basic. • Compiladores: Traduce el total de todas las líneas, si hay error, despliega un informe y no permite ejecutar nada sino hasta no encontrar ningún error de sintaxis. Ejemplo: c++, pascal.

.7. • • • • •

TIPOS DE INSTRUCCIONES De entrada/ salida Aitmético/ lógicas Selectivas Repetitivas De principio/ fin

.8. DATOS, TIPOS DE DATOS e dividen en: • Numéricos Enteros (sin decimales) Reales (manejan decimales) • Lógicos

Verdadero (true) Falso (false)

• Carácter ,

a,b,c, ... A,B, C, ... (letras) *, @, /, ... (caracteres especiales) 1, 2, 3, ... (números utilizados como letras, no se pueden operar)

Inga. Jenny M. Rodríguez V.

6

Algoritmos y Prgramación También los datos se pueden clasificar como:

• Constantes (no cambian su valor durante la ejecución de todo el programa), y • Variables (pueden cambiar de valor durante la ejecución del programa). Y también se pueden clasificar como: • Simple ( consisten en una sola casilla de memoria ) y ! ! • Estucturados ( conjunto de casillas de memoria como los arreglos ). 1

1

1

1

1

1

1

1

1.9. MEMORIA E IDENTIFICADORES La memoria ram es semejante a una cuadrícula de millones de bytes. Al elaborar un programa resevamos espacios de esta memoria para guardar datos y así poder procesarlos por medio del programa. A estos espacios o celdas o casillas de memoria se les asigna un nombre o identificador. Un identificador es el nombre que se le da a las casillas de memoria a utilizar y se 'ona de acuerdo a las siguientes normas:

w. arácter que forma un identificador debe ser una letra (a, b, e, ...

3. -

2. _s ::a s ieres pueden ser letras(a, b, ... ), o dígitos(1,2,... ) o guión -':;-·

3. � -_ -e:-- ce>e ser (--=.-.ó-:

representativo del uso que se le dará

Inga. Jenny M. Rodríguez .

gtmos y Programación

7

�r ejemplo si declaramos la variable edad, resevamos 4 bytes en los que �rdaremos valores numéricos enteros, como: 28 ó 36 ó 59, etc.

5 declaramos la variable nombre, resevamos unos 30 bytes para guardar adenas de caracteres como: Juan Pueblo. = declaramos la variable sueldo, resevamos 4 bytes para guardar valores a es como 3824.56. s· éeclaramos la variable x, no tendremos idea de lo que guardaremos en dicho siacio de memoria, por lo que evitaremos utilizar identificadores tan cotos y ,. ,ién evitaremos identificadores tan largos como: fecha_de_nacimiento c¡ue tendemos a cometer errores y nos tardaremos mas tiempo en escribir :-:os caractres, lo ideal es utilizar entre 2 y 7 caracteres por nombre o � tific3dor.

._

aeclarar dichas variables, en memoria se podrían representar así: Memoria AM

-nbre

Inga. Jenny M. Rodríguez V.

B

Algoritmos yPrgamacióñ

1.1 O. LA OPERACION ASIGNACION Después de haber declarado o definido o resevado la variable de memoria, ya podemos colocar datos en ella, utilizando la operación asignación, mediante el signo igual o mediante una flecha, así: Ejemplos: edad� 23 • edad= 23 ó • nombre= 'Juan Pueblo' ó nombre� 'Juan pueblo' - /carácter) ó sueldo� 3824.56 • sueldo = 3824.56 • bandera = falso bandera= 5 < 3 ó

(si es numérica) -(si es (si es lógica).

Al asignar valor a dichas variables, en memoria se podría representar así: Memoria RAM edad

ü

nombre IJ Iu la In I IP lu le lb 11 lo 1 sueldo 113824.56 I

1.11. FUNCIONES INTERNAS Los lenguajes ontienen funciones matemáticas como: • ab(x); alula el valor absoluto de x • s·,, x); alcula el seno de x ( en radianes ) • {x¡; c.uJa el oseno de x ( en radianes ) • :an[x ,; 2La la �angente de x ( en radianes ) • r�x:· ��o natural de x ( x>O) • lg\x,1; ¿o >ase 10 de x ( x>O) • ex(x ,; exc..c' natural de x ( ex ) • sq{x); 2 a acrado de x ( square ( x2 )) • sqt(x); se :a.-s � -aiz uadrada de x ( x>=O)) • y muchas s Inga. Jenny M. Rodríguez V.

qrfmos y Prgramación Ejemplos: • y= abs(-3); y vale 3, • y= sqr(4); y vale 16, • x = sqrt{9); x vale 3, • x = log(1 O); x vale 1, • z = cos(0); z vale 1,

9 que es el valor absoluto de -3 que es el cuadrado de 4 que es la raíz cuadrada de 9 que es el logaritmo común de 1 O que es el coseno de O

Ejercicios: .ál es el valor de x: . x = sin(0) 2_ x = sqrt(9) + sqr(9) 3. x = log(1) + ln(1) .. x = tan(0) + cos(0) 5. x - abs(5) - exp(0)

1• 2. JERARQUIA DE LAS OPERACIONES MATEMÁTICAS lenguajes se rigen por las mismas reglas prioritarias que la matemática, estas : s

• • • •

Signos de agrupación Exponentes y Radicales Multiplicación y División, Operadores div y mod Sumas y Restas

Operadores div y mod: • div: parte entera del cociente de la división • mod: residuo de la división antes del punto decimal.

Inga. Jenny M. Rodríguez V.

JO

Algoritmos y Prqramacióa Ejemplo: Al dividir 5 entre 3: Por lo tanto:

_1_ 315

�parte entera del cociente ( div)

2

?residuo antes del punto decimal ( mod )

x = 5 div 3; x vale 1 x = 5 mod 3; x vale 2 (residuo). x = 5/3; x vale 1.6667 ( incluye los decimales). Otro ejemplo:

Al dividir 7 entre 2:

_3_ 217 1

?parte entera del cociente ( div)

?residuo antes del punto decimal ( mod )

Por lo tanto: x = 7 div 2; x vale 3 y = 7 mod 2; y vale 1 z = 7/2; z vale 3.5 ( incluye los decimales).

Ejercicios: Resuelva los siguientes incisos, cuánto vale x ? 15 div 4 20 md 6 = 50/6 • x = 20v 3 • X = 20 d 3 • X • X • X

= =

Inga. Jenny M. Rodríguez V.

�y Prgramación

.

11

plos de jerarquía de operaciones:

• X=3+6*14 x=3+4 8 (primero se multiplica, por último se suma) X=87 • x = -4*7+2"3/4-5 x= -4*7+ 8 /4-5 -5 X = -28 + 2 X= -31 • x = 3+2* (184"2 ) agupación ) x = 3+2*(18-16) x=3+2*2 x = 3+4 x=7

(primero el exponente) (después multiplicaciones y divisiones) (por último sumas y restas) ( prime> el exponente dentro del signo de . ( signos de agrupación ) ( multiplicación ) ( por último sumas y restas )

• ¡ = 2°+ 52 / 5 - 7* 8 ( primero los exponentes ) J =1 +25/5 - 7 * 8 ( multiplicaciones y divisiones ) =1 + 5 - 56 ( por último sumas y restas ) = -50 ! • : = 7+3 ** 5 -(4*7+ 40 div 8 -36mod 5 )+16/ 8+ 5 2 3 - ( 28 + 5 z = 7+ 4 1 ) + 2 +5 z = 250 - 32 + 2 + 5 z = 225 • a=5 b=4 ¡=a * 2+b*4-( a*b+b* a )+b* 3/ a = 5** 2+ 4*4-( 5*4+ 4* 5 )+ 4*3/ 5 y=25 + 16 - ( 20 + 20 )+ 12/ 5 40+ 2.4 y = 25+1 6y= 3.4

i�rcicios: Resuelva los siguientes incisos, cuánto vale x ?

• • • • •

x = 16* 6-3 *2 Respuesta: x = 90 x = ( 33+3*4 )/ 5 Respuesta: x = 9 x = 2"2* 3 Respuesta: x=12 x = -22 Respuesta: x =-4 4 x = (-2)2 Respuesta: x=

Inga. Jenny M. Rodríguez V.

11

Algoritmos y Programación 1.13. EXPRESIONES ARITMETICAS Y ALGORITMICAS

Expresiones aritméticas son las que vemos en nuestros libros de matemática. Expresiones algorítmicas son las que se utilizan en los programas para computadora. Las expresiones algorítmicas deben escribirse en una sola línea de caracteres, Todos los caracteres del mismo tamaño ( no subíndices ni superíndices ), Indicar siempre la multiplicación con un *, Indicar la división con una /, No utilizar símbolos como 1T, #, +.

v, �.

Ejemplos de expresiones aritméticas y algorítmicas

• expresión aritmética: x= a2+ b2

algorítmica: x = a * a+ b * b

• expresión aritmética: x = _1�--­ y

algorítmica: x = 1 / y

• expresión aritmética: a = ( z+ w) y

• expresión aritmética:

algorítmica: a= ( x /y)* ( z+ w)

a+­ c = y __ algorítmica: y= ( a + b/ c )/ ( d - e/ f ) d-g

f



l=·- o-.sa:

_

algorítmia:

y

= S.-E

X

=<...


Similar Free PDFs