Beruflich Dokumente
Kultur Dokumente
lenguaje C"
Captulo 1
CONCEPTOS BSICOS DE INFORMTICA
1
1
OBJETIVOS
Saber distinguir entre software y hardware. Entender el funcionamiento bsico de una computadora. Conocer la utilidad de las redes informticas.
Un programa informtico es un conjunto de instrucciones que indican a la computadora las operaciones que sta debe realizar con unos datos determinados. Pero, de qu est compuesta una computadora?, cmo es sta capaz de ejecutar un programa?, dnde se almacenan los datos?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
2
CONTENIDO
1.1 INTRODUCCIN 1.2 LAS COMPUTADORAS DIGITALES 1.3 TIPOS DE PROGRAMAS 1.4 REDES INFORMTICAS
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
3
Tiempo
. .. .
. ..
.. . . .. ... .. .. .. ... .. . ..
Tiempo
5
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
5
Transistor: Material semiconductor (amplificador, interruptor, oscilador). Circuito integrado (chip): Componentes miniaturizados (transistores, resistencias, condensadores, etc.). Microchip: Millones de transistores agrupados en lminas de silicio del tamao de una ua.
6
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
6
Datos de salida
7
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
7
Datos de entrada: Son los que la computadora va a procesar (3 y 5). Datos de salida: Son datos derivados, es decir, obtenidos a partir de los datos de entrada (8). Informacin: Los datos son la informacin que maneja la computadora (textos, imgenes, sonidos, vdeos,...).
En un sentido ms filosfico: los datos de entrada son la materia prima de los datos de salida, considerados estos como la verdadera informacin.
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
8
Software: Conjunto de programas y datos con los que trabaja una computadora, el cual es inmaterial (o lgico).
No se puede ver ni tocar.
9
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
9
Minicomputadoras. Mayor potencia y tamao. Uso en universidades, laboratorios, empresas medianas,... Mainframes. Ms grande y caro. Uso en centros de investigacin, instituciones gubernamentales, empresas grandes,...
Supercomputadoras. Realizan billones de instrucciones por segundo.
10
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
10
Unidad de almacenamiento secundario: Disco duro, disco flexible o disquete, CD, DVD,...
11
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
11
Unidad de entrada
Unidad de salida
Unidad de memoria
Perifricos: No son imprescindibles. Son fuente y/o destino de los datos utilizados por los programas.
Externos: Impresoras, teclados, ratones,... Internos o externos: Discos duros, mdems,...
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
12
12
13
13
Red cliente/servidor:
Estacin de trabajo Escner
Impresora Servidor
Estacin de trabajo
Las estaciones de trabajo son equipos cliente que pueden emplear los usuarios de una red para solicitar informacin (datos) y servicios (impresin de documentos, transferencia de ficheros, correo electrnico,...) a los equipos servidores.
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
14
14
Impresora PC PC
Escner
Impresora PC
Todos los equipos pueden ser cliente y servidor al mismo tiempo, es decir, no existen clientes exclusivos ni servidores dedicados.
15
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
15
Oficina de Valencia
Una empresa que tiene oficinas en distintas ciudades, lo normal es que instale una LAN en cada oficina y las interconecte formando una WAN.
17
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
17
18
Pamplona
Madrid
LAN LAN Universidad de San Diego Oficina de Valencia
Sevilla
Si un empleado de la oficina de una empresa ubicada en Valencia se conecta a Internet y accede a un servidor de pginas web de la Universidad de San Diego. Toda la informacin a la que acceda esta persona viajar por la red, desde el servidor de San Diego a su equipo en Valencia. A todas las computadoras intermedias entre el servidor y el cliente se les denomina nodos de conexin. 19
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
19
20
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
20
Intranet: Red interna que ofrece a todos los usuarios de dicha red los mismos servicios que Internet (correo electrnico, transferencia de ficheros, pginas web,...).
Una intranet puede ser pblica o privada, dependiendo de si se puede acceder a ella desde Internet o, nicamente, desde los equipos de la propia red.
21
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
21
EJERCICIOS RECOMENDADOS
Resueltos: 1 y 2. Propuestos: 1, 2 y 3.
22
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
22
http://www.carlospes.com
23
23
lenguaje C"
Captulo 2
REPRESENTACIN DE LOS DATOS
1
24
OBJETIVOS
Entender cmo la computadora digital es capaz de representar a distintos tipos de datos. Saber realizar conversiones de base entre los Sistemas Decimal, Binario, Octal y Hexadecimal. Conocer los tipos de codificacin binaria ms utilizados para representar a los nmeros enteros, nmeros reales y caracteres.
Las computadoras se utilizan para procesar informacin (grficos, sonidos, textos,...). Pero, cmo es capaz la computadora digital de representar a toda esta informacin con tan solo dos smbolos, el cero (0) y el uno (1)?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
25
CONTENIDO
2.1 INTRODUCCIN 2.2 SISTEMAS DE NUMERACIN 2.3 CONVERSIONES DE BASES 2.4 ARITMTICA BINARIA 2.5 REPRESENTACIN DE NMEROS ENTEROS 2.6 REPRESENTACIN DE NMEROS REALES 2.7 REPRESENTACIN DE CARACTERES
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
26
Palabra: Mximo nmero de bits con que la CPU puede trabajar en paralelo (a la vez).
Suele ser mltiplo de un byte: 8, 16, 32, 64 bits, etc.
5
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
28
Inconveniente: No facilita la realizacin de clculos matemticos por escrito. No es un sistema de numeracin posicional.
6
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
29
Siendo:
(N) el nmero o secuencia de signos. (b) la base. (p) el nmero de dgitos de la parte entera. (q) el nmero de dgitos de la parte fraccionaria. (ai) las cifras del nmero. (i) la posicin de cada cifra con respecto a la coma (,).
Siendo:
( N = 4305,86 ) el nmero. ( b = 10 ) la base. ( p = 4 ) el nmero de dgitos de la parte entera. ( q = 2 ) el nmero de dgitos de la parte fraccionaria. ( a3 = 4, a2 = 3, a1 = 0, a0 = 5, a-1 = 8 y a-2 = 6 ) las cifras del nmero.
10
Siendo:
( N = 11010,001 ) el nmero. ( b = 2 ) la base. ( p = 5 ) el nmero de dgitos de la parte entera. ( q = 3 ) el nmero de dgitos de la parte fraccionaria. ( a4 = 1, a3 = 1, a2 = 0, a1 = 1, a0 = 0, a-1 = 0 , a-2 = 0 y a-3 = 1 ) las cifras del nmero.
Dgito ms significativo (de mayor peso): ap-1 Dgito menos significativo (de menor peso): a-q Frmula:
EJEMPLO:
4305,8610 = 4103 + 3102 + 0101 + 5100 + 810 -1 + 610 -2 4305,8610 = 4000 + 300 + 0 + 5 + 0,8 + 0,06
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
36
13
14
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
37
PASO 2: Convertir la parte fraccionaria del nmero N10, multiplicndola, repetidamente, por b, hasta obtener un cero en la parte fraccionaria o hasta que se considere oportuno.
La parte fraccionaria del nmero buscado lo formarn las partes enteras de los nmeros que se hayan ido obteniendo en cada producto, cogidas en ese mismo orden.
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
38
15
0,312510 = 0,01012
16
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
39
Paso 2:
17
40
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
EJEMPLOS:
De base 8 a base 2 De base 2 a base 8
18
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
41
0 0000 8 1000
1 0001 9 1001
2 0010 A 1010
3 0011 B 1011
4 0100 C 1100
5 0101 D 1101
6 0110 E 1110
7 0111 F 1111
19
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
42
EJERCICIOS RECOMENDADOS
Resueltos: 1, 2, 3, 4, 5, 6, 7, 8 y 9. Propuestos: 1, 2, 3, 4, 5, 6 y 7.
20
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
43
21
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
44
22
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
45
23
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
46
24
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
47
3 9 +
EJEMPLO: Para n = 8
26
49
EJEMPLO: Para n = 8
29
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
52
EJEMPLOS:
Inconvenientes:
Desbordamiento. El nmero 010 = 0000000SM = 10000000SM (dos representaciones)
30
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
53
Rango de representacin:
EJEMPLO: Para n = 16
31
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
54
EJEMPLO:
Inconvenientes:
Desbordamiento. El nmero 010 = 00000000000SM = 1111111111111111SM
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
55
32
Rango de representacin:
EJEMPLO: Para n = 16
33
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
56
EJEMPLO:
Inconveniente:
Desbordamiento.
34
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
57
EJEMPLOS:
Rango de representacin:
EJEMPLO: Para n = 16
35
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
58
EJEMPLO:
Inconveniente:
Desbordamiento.
36
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
59
EJEMPLOS:
De base 10 a BCD De BCD a base 10
37
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
60
EJERCICIOS RECOMENDADOS
Resueltos: 10, 11, 12, 13 y 14. Propuestos: 8, 9, 10, 11 y 12.
38
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
61
EJEMPLOS:
39
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
62
EJEMPLOS:
40
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
63
41
64
Normalizar: 10011,10012 = 1,001110012 x 24 Exponente en Exceso 2n-1-1: 410 + (211-1-1)10 = 102710 = 10000000011EX. A 1023 Mantisa con bit implcito: 0011100100000000000000000000000000000000000000000000
42
65
Si todos los bits del exponente son ceros (00...0), no se est utilizando bit implcito. Si, adems, la mantisa es distinta de todo ceros, el nmero es muy pequeo. (Exponente -126 -1022).
43
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
66
44
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
67
45
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
68
46
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
69
EJERCICIOS RECOMENDADOS
Resueltos: 15 y 16. Propuestos: 13, 14, 15 y 16.
47
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
70
Unicode:
Todos los smbolos de todos los idiomas. Utiliza grupos de 16 bits. (216 = 65536 caracteres).
49
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
72
50
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
73
51
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
74
52
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
75
http://www.carlospes.com
53
76
lenguaje C"
Captulo 3
CICLO DE VIDA DE UN PROGRAMA
1
77
OBJETIVOS
Saber qu es la Ingeniera del Software. Conocer los pasos que se tienen que dar para desarrollar un programa. Entender cmo el programador puede escribir unas instrucciones comprensibles para la mquina.
Hoy en da, la computadora es una herramienta indispensable en muchos mbitos, tales como: la medicina, la astronoma, las comunicaciones, etc. Gracias a la informtica, se han producido avances tecnolgicos que eran impensables antes de la llamada revolucin de las computadoras. No obstante, la mquina no puede hacer absolutamente nada sin un software, es decir, sin un programa que le diga qu es lo que tiene que hacer. Pero, cmo se hace un programa?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
78
CONTENIDO
3.1 INTRODUCCIN 3.2 ANLISIS 3.3 DISEO 3.4 CODIFICACIN 3.5 PRUEBAS 3.6 MANTENIMIENTO
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
79
Software no a medida:
EJEMPLOS:
Procesadores de textos. Juegos. Enciclopedias electrnicas.
4
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
80
Paradigmas de programacin:
Programacin estructurada.
Aplicacin del diseo modular. Utilizacin, exclusivamente, de estructuras secuenciales, alternativas y repetitivas. Empleo de estructuras de datos adecuadas para manipular informacin.
5
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
81
Planificacin de tareas (fechas de inicio y fin). Control de tareas (seguimiento continuo del proyecto).
6
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
82
9
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
85
11
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
87
Pseudocdigo:
Es un lenguaje de programacin algortmico. Es un lenguaje intermedio entre el lenguaje natural y cualquier lenguaje de programacin especfico, como son: C, FORTRAN, Pascal, etc.
Ordinograma:
Representa, de manera grfica, el orden de los pasos o acciones de un algoritmo.
12
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
88
13
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
89
leer( a )
leer( b )
a + b
FIN
14
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
90
15
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
91
16
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
92
Programa Ensamblador
18
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
94
Si numero es mayor que cero, entonces, escribir por pantalla el mensaje: El nmero es positivo. Ventaja: S es portable.
Computadora Instrucciones en un lenguaje de alto nivel Instrucciones en un lenguaje mquina
Programa Compilador
19
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
95
Instruccin en ensamblador
Instruccin binaria
10100011 10001001 00101010 00000001
01101010 10101110 Instruccin 00010101 10101000 binaria 01100101 00101001 11101011 10101111
20
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
96
21
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
97
Tipos de errores:
de sintaxis de ejecucin de lgica
22
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
98
3.5 PRUEBAS
Pruebas:
Tratamiento de los datos. Adaptacin al resto sistema informtico. Interaccin con otras aplicaciones.
Hay que comprobar, exhaustivamente, la funcionalidad. Es imposible probarlo todo. Pueden darse situaciones inesperadas.
25
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
101
3.6 MANTENIMIENTO
Mantenimiento:
Reparacin de errores no detectados en las fases anteriores. Modificaciones para ampliar o cambiar alguna funcionalidad.
Documentacin:
Externa: ERS, algoritmos, cdigos fuentes, manuales de usuario,... Interna: Comentarios en el cdigo fuente.
26
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
102
EJERCICIOS RECOMENDADOS
Resueltos: 1 y 2. Propuestos: 1, 2, 3 y 4.
27
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
103
http://www.carlospes.com
28
104
lenguaje C"
Captulo 4
INTRODUCCIN A LOS TIPOS DE DATOS
1
105
OBJETIVOS
Conocer los tipos de datos que pueden utilizar los programas. Saber identificar de qu tipo son los datos utilizados en un programa. Conocer las palabras reservadas que se utilizan en pseudocdigo para algunos tipos de datos.
Ya se ha estudiado que, en general, los programas obtienen unos datos de salida a partir de unos datos de entrada, pero, cules son los tipos de datos que pueden utilizar los programas?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
106
CONTENIDO
4.1 INTRODUCCIN 4.2 DATOS DE TIPO NUMRICO 4.3 DATOS DE TIPO LGICO 4.4 DATOS DE TIPO CARCTER 4.5 DATOS DE TIPO CADENA 4.6 CLASIFICACIN DE LOS TIPOS DE DATOS SIMPLES
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
107
Nombre de persona:
Nombre...: Ana (compuesto por tres caracteres)
5
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
109
6
110
En pseudocdigo, utilizamos la palabra reservada: logico En C no existen datos de tipo lgico. No obstante, se pueden simular con datos de tipo entero, considerndose el valor cero (0) como falso, y cualquier otro valor entero como verdadero.
7
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
111
8
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
112
9
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
113
Todos los datos simples son ordinales, excepto el tipo de dato real.
10
EJERCICIOS RECOMENDADOS
Resueltos: 1 y 2. Propuestos: 1 y 2.
11
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
115
http://www.carlospes.com
12
116
lenguaje C"
Captulo 5
IDENTIFICADORES, VARIABLES Y CONSTANTES
1
117
OBJETIVOS
Saber qu es y para qu sirve un identificador. Saber qu son y para qu sirven las variables y las constantes.
En el captulo anterior se han estudiado algunos de los tipos de datos que pueden utilizar los programas, pero, dnde estn los datos que utiliza un programa?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
118
CONTENIDO
5.1 INTRODUCCIN 5.2 IDENTIFICADORES 5.3 VARIABLES 5.4 CONSTANTES
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
119
5.1 INTRODUCCIN
Para disear algoritmos en pseudocdigo, se pueden utilizar los siguientes elementos: Tipos de datos Variables Constantes Operadores Expresiones Instrucciones
4
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
120
Identificadores predefinidos:
EJEMPLO:
entero, real, logico, caracter, cadena, verdadero y falso forman parte del lenguaje algortmico (son palabras reservadas).
Durante la ejecucin de un programa, el valor que tome el dato almacenado en una variable puede cambiar tantas veces como sea necesario. El tipo de dato de una variable no puede ser cambiado durante la ejecucin de un programa. Grficamente, se puede representar como:
9
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
125
10
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
126
Puesto que las dos variables son del mismo tipo de dato, se pueden declarar en la misma lnea separndolas por medio de una coma (,). entero edad, numero_de_hijos
11
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
127
Sintaxis para declarar una variable: Sintaxis para declarar ms de una variable:
En pseudocdigo, para declarar una constante, vamos a utilizar la sintaxis: <nombre_de_la_constante> = <expresin>
15
17
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
133
EJEMPLOS:
ESTADO = verdadero INTERRUPTOR = falso
18
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
134
EJEMPLOS: declaraciones:
LETRA = 's'
NUMERO = '9' SIGNO = '-' ESPACIO_EN_BLANCO = ' ' COMILLA_SIMPLE = '\''
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
135
19
EJEMPLOS: declaraciones:
NOMBRE = "Alejandro" CIUDAD = "Lucerna" OLIMPIADAS = "Barcelona 2000" FIESTA = "7 de julio \"San Fermn\""
20
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
136
EJERCICIOS RECOMENDADOS
Resueltos: 1, 2 y 3. Propuestos: 1 y 2.
21
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
137
http://www.carlospes.com
22
138
lenguaje C"
Captulo 6
TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR
1
139
OBJETIVOS
Conocer los tipos de datos que pueden ser definidos por el programador. Conocer la sintaxis para definir tipos de datos en pseudocdigo.
En un programa se pueden usar los distintos tipos de datos predefinidos por el lenguaje de programacin en el que est escrito. Adems, algunos lenguajes de programacin tambin permiten que el programador pueda definir sus propios tipos de datos, pero, para qu definir nuevos tipos de datos?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
140
CONTENIDO
6.1 INTRODUCCIN 6.2 DATOS DE TIPOS ENUMERADOS 6.3 DATOS DE TIPOS SUBRANGOS
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
141
6.1 INTRODUCCIN
El programador tiene la posibilidad de definir (declarar) sus propios tipos de datos. Los tipos de datos simples que puede definir el programador son: Enumerados Subrangos
4
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
142
La lista de constantes est ordenada, y cada una de ellas representa a un valor entero empezando por el 0, e incrementndose de uno en uno. De manera que, las constantes declaradas representan a los valores enteros { 0, 1, 2, 3 }. EJEMPLO:
enumerado direcciones { NORTE = -2, SUR, ESTE, OESTE }
En este caso, las constantes declaradas representan a los valores enteros { -2, -1, 0, 1 }.
6
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
144
O tambin:
subrango <nombre_del_tipo> = <valor_mnimo>..<valor_mximo>
EJEMPLO: Suponiendo que la calificacin de una asignatura sea dada con un valor perteneciente al subrango { 0, 1, 2, ..., 8, 9, 10 } del rango { -32768, ..., 0, ..., 32767 }:
subrango calificaciones = 0..10
10
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
148
11
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
149
EJERCICIOS RECOMENDADOS
Resueltos: 1 y 2. Propuestos: 1 y 2.
13
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
151
http://www.carlospes.com
14
152
lenguaje C"
Captulo 7
OPERADORES Y EXPRESIONES
1
153
OBJETIVOS
Conocer los tipos de operadores y expresiones que existen en programacin. Saber evaluar las expresiones que aparecen en un programa.
En programacin, los operadores realizan operaciones sobre los datos que utiliza un programa. Por su parte, las operaciones que se pueden realizar sobre cada dato, dependen del tipo de dato en cuestin, pero, qu es una operacin? y qu tipos de operaciones existen?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
154
CONTENIDO
7.1 INTRODUCCIN 7.2 EXPRESIONES ARITMTICAS 7.3 EXPRESIONES LGICAS 7.4 EXPRESIONES DE CARCTER 7.5 EXPRESIONES DE CADENA 7.6 PRIORIDAD DE LOS OPERADORES ARITMTICOS, RELACIONALES, LGICOS Y DE CADENA
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
155
Cuando se combinan uno o ms operadores con uno o ms operandos se obtiene una expresin. operadores escrita bajo unas reglas de sintaxis.
5
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
157
Un operador siempre forma parte de una expresin, en la cual, el operador siempre acta sobre al menos un operando. Por el contrario, un operando s puede aparecer solo en una expresin. 6
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
158
8
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
160
9
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
161
Se obtienen los valores: -2 26 -6 9 (actan en orden los operadores: signo menos (-), (*) y (mod)) (actan en orden los operadores: (**) y resta (-)) (actan en orden los operadores: (mod), signo menos (-) y (*)) (actan en orden los operadores: resta (-) y (**))
10
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
162
11
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
163
Para escribir una expresin relacional (lgica) se utiliza la sintaxis: <operador_de_relacin> <expresin_2>
12
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
164
<expresin_1>
El operador conjuncin (y) y el operador disyuncin (o) siempre actan sobre dos operandos, mientras que, el operador negacin (no) slo acta sobre un operando, o dicho de otra forma, es un operador monario.
14
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
166
EJEMPLO: De evaluar: 9 > 3 y 8 > 9 se obtiene: falso (9 > 3 es verdadero y 8 > 9 es falso)
15
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
167
EJEMPLO: De evaluar: 9 > 3 y 8 > 9 se obtiene: verdadero (9 > 3 es verdadero y 8 > 9 es falso)
16
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
168
18
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
170
de carcter siempre se
21
22
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
174
7.6 PRIORIDAD DE LOS OPERADORES ARITMTICOS, RELACIONALES, LGICOS Y DE CADENA (2/2) EJEMPLOS: De las siguientes expresiones:
5 * 4 > 5 + 4 o falso y "ab" < "aa" ( 5 * 4 > 5 + 4 o falso ) y 'f' < 'b' no verdadero < falso no ( verdadero < falso ) Se obtienen los valores:
verdadero (actan en orden los operadores: (*), suma (+), (>), (<), (y) y (o)) falso (actan en orden los operadores: (*), suma (+), (>), (o), (<) e (y)) falso (actan en orden los operadores: (no) y (<)) verdadero (actan en orden los operadores: (<) y (no))
23
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
175
EJERCICIOS RECOMENDADOS
Resueltos: 1 y 2. Propuestos: 1 y 2.
24
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
176
http://www.carlospes.com
25
177
lenguaje C"
Captulo 8
ASIGNACIN, SALIDA Y ENTRADA
1
178
OBJETIVOS
Conocer las instrucciones primitivas, y saber hacer uso de ellas. Saber utilizar los elementos ya estudiados para escribir instrucciones primitivas.
De los elementos que se utilizan para disear algoritmos, slo quedan por estudiar las instrucciones. En este captulo se van a estudiar las tres instrucciones ms elementales que existen en programacin, conocidas como instrucciones primitivas (asignacin, salida y entrada). Las instrucciones primitivas son las primeras que todo programador debe conocer, pero, de qu manera estn relacionadas con los elementos ya estudiados?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
179
CONTENIDO
8.1 INTRODUCCIN 8.2 ASIGNACIN 8.3 SALIDA 8.4 ENTRADA
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
180
8.1 INTRODUCCIN
En programacin, las instrucciones que se utilizan para disear algoritmos se pueden clasificar en:
Primitivas. De control. Llamadas a subalgoritmos (llamadas a subprogramas).
8.2 ASIGNACIN
Una instruccin de asignacin (o simplemente asignacin) consiste en asignar el resultado de la evaluacin de una expresin a una variable: <nombre_de_la_variable> <expresin>
6
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
183
al escribir
escribir( nombre, " tiene ", edad, " aos." ) escribir( nombre, " tiene ", hijos, " hijos." )
7
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
184
para cada una de ellas se puede recoger un valor (dato) desde el teclado, escribiendo:
leer( nombre ) leer( apellidos ) leer( edad )
al escribir:
escribir( "Introduzca su nombre: " ) leer( nombre ) escribir( "Introduzca un nmero real: " ) leer( numero ) escribir( nombre, ", el doble de ", numero, " es: ", numero * 2 )
10
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
187
EJERCICIOS RECOMENDADOS
Resueltos: 1, 2 y 3. Propuestos: 1, 2, 3 y 4.
11
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
188
http://www.carlospes.com
12
189
lenguaje C"
Captulo 9
ESTRUCTURA DE UN ALGORITMO
1
190
OBJETIVOS
Conocer la estructura de un algoritmo. Saber organizar los elementos de un algoritmo.
Aunque todava no se han estudiado todos los tipos de instrucciones que existen en programacin, ya se conocen todos los elementos que se pueden utilizar parar disear algoritmos, pero, de qu manera se organizan dichos elementos en un algoritmo?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
191
CONTENIDO
9.1 INTRODUCCIN 9.2 CABECERA 9.3 DECLARACIONES 9.4 CUERPO 9.5 COMENTARIOS
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
192
9.1 INTRODUCCIN
La estructura de un algoritmo sirve para organizar a los elementos que aparecen en l. En pseudocdigo, todos los algoritmos tienen la misma estructura, la cual viene definida por tres secciones:
Cabecera. Declaraciones. Cuerpo.
4
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
193
9.2 CABECERA
En la cabecera de un algoritmo se debe indicar el nombre (identificador) asignado al mismo. La sintaxis es: algoritmo <nombre_del_algoritmo>
El algoritmo puede llamarse Area_de_una_circunferencia, por tanto, en la cabecera se puede escribir: algoritmo Area_de_una_circunferencia
5
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
194
9.3 DECLARACIONES
En esta seccin se declaran las constantes, los tipos de datos y las variables que se usan en el algoritmo. La sintaxis es:
[ constantes <declaraciones_de_constantes> ] [ tipos_de_datos <declaraciones_de_tipos_de_datos> ] [ variables <declaraciones_de_variables> ]
Para resolver el problema planteado en el apartado anterior, es necesario declarar una constante y dos variables:
constantes PI = 3.141592 variables real area, radio
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
195
inicio y fin son palabras reservadas que marcan el principio y final de la seccin cuerpo, que es donde est el bloque de instrucciones principal del algoritmo.
7
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
196
8
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
197
9.5 COMENTARIOS
En los algoritmos es conveniente escribir comentarios para explicar el diseo y/o funcionamiento del mismo:
/* Cabecera */ algoritmo Area_de_una_circunferencia /* Declaraciones */ constantes PI = 3.141592 variables real area, radio /* Cuerpo */ inicio escribir( "Introduzca radio: " ) leer( radio ) area PI * radio ** 2 escribir( "El rea de la circunferencia es: ", area ) fin
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
200
11
EJERCICIOS RECOMENDADOS
Resueltos: 1, 2, 3, 4, 5 y 6. Propuestos: 1, 2, 3, 4, 5, 6, 7 y 8.
12
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
201
http://www.carlospes.com
13
202
lenguaje C"
Captulo 10
INTRODUCCIN A LOS DIAGRAMAS DE FLUJO
1
203
OBJETIVOS
Aprender a representar algoritmos mediante diagramas de flujo. Conocer las diferencias existentes entre un algoritmo escrito en pseudocdigo o representado mediante un diagrama de flujo.
Ya sabemos disear algoritmos sencillos utilizando pseudocdigo, pero, cmo se pueden representar esos mismos algoritmos utilizando diagramas de flujo?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
204
CONTENIDO
10.1 INTRODUCCIN 10.2 ASIGNACIN 10.3 ENTRADA Y SALIDA 10.4 INICIO Y FIN 10.5 DECISIONES
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
205
10.1 INTRODUCCIN
4
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
206
10.2 ASIGNACIN
EJEMPLOS:
5
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
207
EJEMPLOS:
6
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
208
7
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
209
10.5 DECISIONES
Las decisiones siempre forman parte de las instrucciones de control, las cuales sirven para determinar el orden en el que se tienen que ejecutar las instrucciones de un programa. EJEMPLO:
8
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
210
EJERCICIOS RECOMENDADOS
Resueltos: 1, 2, 3, 4, 5 y 6. Propuestos: 1, 2, 3, 4, 5, 6, 7 y 8.
9
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
211
http://www.carlospes.com
10
212
lenguaje C"
Captulo 11
INTRODUCCIN A LA CODIFICACIN EN C
1
213
OBJETIVOS
Aprender a codificar en C los algoritmos diseados hasta el momento. Conocer algunas diferencias existentes entre C y nuestro pseudocdigo CEE.
Ya sabemos disear algoritmos sencillos utilizando instrucciones primitivas, pero, cmo se codifican en lenguaje C?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
214
CONTENIDO
11.1 INTRODUCCIN 11.2 FASES DE LA PUESTA A PUNTO DE UN PROGRAMA 11.3 ESTRUCTURA DE UN PROGRAMA 11.4 TIPOS DE DATOS 11.5 VARIABLES 11.6 CONSTANTES 11.7 OPERADORES 11.8 ENTRADA Y SALIDA ESTNDAR 11.9 COMENTARIOS 11.10 LA FUNCIN fflush 11.11 TIPOS DE ERRORES
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
215
5
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
217
6
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
218
TIPOS DE INSTRUCCIONES:
De expresin De control Compuestas
7
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
219
Por pantalla:
8
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
220
9
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
221
EJEMPLOS:
int edad; int numero_de_hijos; int edad, numero_de_hijos; int numero = 35;
10
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
222
Los caracteres del array pueden ser referenciados mediante el identificador del mismo, seguido de un nmero entre corchetes. A dicho nmero, de manera formal, se le llama "ndice", y puede oscilar entre el valor 0 y n-1, siendo n el nmero de caracteres que pueden ser almacenados en memoria en el array, en este caso 7. Por ejemplo, nombre[3] hace referencia al espacio de memoria donde est el carcter 'b'. 11
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
223
11.6 CONSTANTES
Sintaxis para declarar una constante simblica:
#define <nombre_de_la_constante> <secuencia_de_caracteres>
EJEMPLOS:
#define PI 3.141592 #define NUMERO_E 2.718281 const int temperatura = -5;
12
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
224
EJERCICIOS RECOMENDADOS
Resueltos: 1 y 2. Propuestos: 1 y 2.
13
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
225
14
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
226
( <tipo_de_dato> ) <expresin>
EJEMPLO: Declaradas la variables:
int h = 3, v = 6;
De las expresiones:
( ( ( ( 5 float ) v float ) v float ) 5 int ) 5.0 / ( int ) / h / h / 2 2.
La funcin pow devuelve, sobre el propio identificador de la funcin, el resultado que se obtiene de elevar el <operando_nmero_base> al <operando_exponente>. El valor de retorno de la funcin es de tipo double, con independencia de que los operandos sean reales o enteros. EJEMPLO: Declarada la variable: int numero = 9; De la expresin:
1 + pow( numero, 2 )
Se obtiene el valor:
82.000000 (se obtiene de 1 + 81.000000)
La declaracin de la funcin pow se encuentra en el archivo de cabecera math.h.
17
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
229
18
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
230
De su evaluacin se obtiene:
1 (C simula el valor lgico verdadero con el valor entero 1)
En C, los datos de tipo lgico se simulan con datos de tipo entero, considerndose el valor 0 como falso, y cualquier otro valor entero como verdadero.
19
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
231
20
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
232
La expresin se evala a:
0 (C simula el valor lgico falso con el valor entero 0)
21
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
233
En C, no existe el operador concatenacin (+). Sin embargo, para concatenar cadenas, se puede utilizar la funcin strcat, que est disponible en la biblioteca estndar de C. La funcin strcat aade el contenido de la <cadena_fuente> a la <cadena_destino>. EJEMPLO: Dadas las siguientes declaraciones de arrays de caracteres: char nombre[8] = "Ana", apellido[4] = "Luz"; es posible escribir:
24
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
236
m = m + 3;
25
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
237
En C, para asignar una expresin de cadena a un array de caracteres, no se puede utilizar el operador de asignacin (=). Para ello, se puede utilizar la funcin strcpy, que est disponible en la biblioteca estndar de C. La funcin strcpy copia el contenido de la <cadena_fuente> en la <variable_destino>, siendo sta un array de caracteres. EJEMPLO: Habiendo declarado: char ciudad[6]; es posible escribir:
27
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
239
28
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
240
29
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
241
EJERCICIOS RECOMENDADOS
Resueltos: 3 y 4. Propuestos: 3 y 4.
30
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
242
En la <cadena_de_control>, el programador debe indicar el formato de salida de los datos que se van a mostrar por pantalla. Para ello, se puede hacer uso de:
Texto ordinario (texto normal). Especificadores de formato. Secuencias de escape.
El texto ordinario es texto normal y corriente, a diferencia de los especificadores de formato y de las secuencias de escape, que se les considera texto especial.
31
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
243
32
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
244
33
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
245
34
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
246
35
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
247
En la <cadena_de_control>, el programador debe indicar el formato de entrada de los datos que se van a recoger por teclado. Para ello, se puede hacer uso de: Especificadores de formato. Otros caracteres.
36
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
248
37
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
249
11.9 COMENTARIOS
EJEMPLO:
/***************************************************/ /* Programa: Area_de_una_circunferencia */ /***************************************************/ #include <math.h> #include <stdio.h> #define PI 3.141592 /* Definicin de una constante */ int main() { float area, radio; printf( "\n Introduzca radio: " ); scanf( "%f", &radio ); /* Clculo del rea de la circunferencia */ area = PI * pow( radio, 2 ); /* Salida por pantalla del resultado */ printf( "\n El area de la circunferencia es: %f", area ); return 0; }
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
251
39
EJERCICIOS RECOMENDADOS
Resueltos: 5, 6, 7 y 8. Propuestos: 5, 6, 7, 8 y 9.
40
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
252
EJERCICIOS RECOMENDADOS
Resueltos: del 9 al 18. Propuestos: del 10 al 17.
45
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
257
http://www.carlospes.com
46
258
lenguaje C"
Captulo 12
INSTRUCCIONES DE CONTROL ALTERNATIVAS
1
259
OBJETIVOS
Conocer las instrucciones de control alternativas, y saber hacer uso de ellas. Saber qu es el anidamiento, y cundo hacer uso de l.
Todas las instrucciones de los algoritmos vistos hasta este momento se ejecutan secuencialmente, una detrs de otra, sin excepcin, pero, en un algoritmo, pueden existir instrucciones que no se ejecuten, o que se ejecuten a veces s a veces no?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
260
CONTENIDO
12.1 INTRODUCCIN 12.2 INSTRUCCIONES ALTERNATIVAS 12.3 ANIDAMIENTO 12.4 DISTINTAS SOLUCIONES PARA UN PROBLEMA 12.5 VARIABLE INTERRUPTOR
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
261
4
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
262
Una instruccin alternativa doble (o simplemente alternativa doble) permite seleccionar, por medio de una condicin, el siguiente bloque de instrucciones a ejecutar, de entre dos posibles. EJEMPLO. Se quiere disear el algoritmo de un programa que: 1) Pida por teclado la nota (dato real) de una asignatura. 2) Muestre por pantalla:
"APROBADO", en el caso de que la nota sea mayor o igual que 5. "SUSPENDIDO", en el caso de que la nota sea menor que 5.
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
264
8
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
266
En C:
if ( <expresin_lgica> ) { <bloque_de_instrucciones_1> } else { <bloque_de_instrucciones_2> }
En ordinograma:
10
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
268
EJERCICIOS RECOMENDADOS
Resueltos: 1, 2 y 3. Propuestos: 1, 2 y 3.
11
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
269
En este problema, no se va a mostrar por pantalla "SUSPENDIDO" en el caso de que la nota sea menor que 5.
12
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
270
13
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
271
14
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
272
15
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
273
En C:
if ( <expresin_lgica> ) { <bloque_de_instrucciones> }
En ordinograma:
16
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
274
18
19
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
277
20
En ordinograma:
21
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
279
] ]
] ]
22
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
280
24
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
282
25
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
283
"Listado de signos del zodaco:" ) "1. Aries" ) "2. Tauro" ) "3. Gminis" )
leer( numero ) numero ) : escribir( : escribir( : escribir( : escribir( : escribir( " no est fin_segun_sea fin segun_sea ( 1, 5, 9 2, 6, 10 3, 7, 11 4, 8, 12 sino
"Es un signo de Fuego." ) "Es un signo de Tierra." ) "Es un signo de Aire." ) "Es un signo de Agua." ) "ERROR: ", numero, asociado a ningn signo." )
"\n
Es un signo de Fuego." );
"\n
Es un signo de Tierra." )
"\n
Es un signo de Aire." )
"\n "\n
27
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
285
EJERCICIOS RECOMENDADOS
Resueltos: 4 y 5. Propuestos: 4 y 5.
28
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
286
29
30
31
32
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
290
33
34
35
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
293
36
294
37
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
295
EJERCICIOS RECOMENDADOS
Resueltos: 6 y 7. Propuestos: 6, 7 y 8.
38
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
296
39
40
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
298
41
299
42
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
300
44
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
302
algoritmo Calificacion_segun_nota variables real nota inicio escribir( "Introduzca nota (entera): " ) leer( nota ) si ( nota >= 0 y nota <= 10 ) segun_sea ( nota ) 10, 9 : escribir( "SOBRESALIENTE" ) 8, 7 : escribir( "NOTABLE" ) 6 : escribir( "BIEN" ) 5 : escribir( "SUFICIENTE" ) 4, 3 : escribir( "INSUFICIENTE" ) 2, 1, 0 : escribir( "MUY DEFICIENTE" ) fin_segun_sea sino escribir( "ERROR: Nota incorrecta." ) fin_si fin
45
303
EJERCICIOS RECOMENDADOS
Resueltos: 8, 9, 10, 11 y 12. Propuestos: 9, 10, 11, 12 y 13.
46
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
304
47
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
305
49
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
307
http://www.carlospes.com
50
308
lenguaje C"
Captulo 13
INSTRUCCIONES DE CONTROL REPETITIVAS
1
309
OBJETIVOS
Conocer las instrucciones de control repetitivas, y saber hacer uso de ellas. Aprender a anidar instrucciones de control repetitivas.
Ya se ha estudiado que las instrucciones de un algoritmo pueden ejecutarse secuencialmente. Por otra parte, puede darse el caso de que unas instrucciones se ejecuten y otras no, utilizando instrucciones alternativas. Pero, cmo se puede hacer que un bloque de instrucciones se ejecute ms de una vez?
2
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
310
CONTENIDO
13.1 INTRODUCCIN 13.2 INSTRUCCIONES REPETITIVAS 13.3 CUNDO USAR UN BUCLE U OTRO? 13.4 ANIDAMIENTO
3
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
311
13.1 INTRODUCCIN
Las instrucciones que se utilizan para disear algoritmos se pueden clasificar en:
Primitivas De control Llamadas a subalgoritmos (llamadas a subprogramas)
4
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
312
A las instrucciones repetitivas tambin se las conoce como bucles, ciclos o lazos. Sintaxis de una instruccin repetitiva mientras en pseudocdigo:
mientras ( <expresin_lgica> ) <bloque_de_instrucciones> fin_mientras
5
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
313
Solucin en pseudocdigo:
algoritmo Numeros_del_1_al_10 variables entero contador inicio contador 1 /* Inicializacin del contador */ mientras ( contador <= 10 ) /* Condicin */ escribir( contador ) /* Salida */ contador contador + 1 /* Incremento */ fin_mientras fin
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
315
9
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
317
Cuando el <bloque_de_instrucciones> slo contiene una instruccin, los caracteres abrir llave ({) y cerrar llave (}) son opcionales.
10
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
318
contador = 1; /* Inicializacin del contador */ while ( contador <= 10 ) /* Condicin */ { printf( "%d ", contador ); /* Salida */ contador++; /* Incremento */ } return 0; }
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
319
11
Solucin en pseudocdigo:
algoritmo Numeros_del_10_al_1 variables entero contador inicio contador 10 mientras ( contador >= 1 ) escribir( contador ) contador contador 1 fin_mientras fin
En pantalla:
14
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
322
En pantalla:
15
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
323
En pantalla:
16
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
324
En pantalla:
17
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
325
3) Repita los pasos 1 y 2, mientras que, la nota introducida sea incorrecta. 4) Muestre por pantalla:
"APROBADO", en el caso de que la nota sea mayor o igual que 5. "SUSPENDIDO", en el caso de que la nota sea menor que 5.
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
326
18
19
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
327
20
EJERCICIOS RECOMENDADOS
Resueltos: 1, 2 y 3. Propuestos: 1, 2 y 3.
21
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
329
En un bucle hacer...mientras, primero se ejecuta el bloque de instrucciones y, despus, se evala la condicin. En el caso de que sta sea verdadera, se vuelve a ejecutar el bloque de instrucciones. Y as sucesivamente, hasta que, la condicin sea falsa. El <bloque_de_instrucciones> de un bucle hacer...mientras puede ejecutarse una o ms veces (iteraciones). Tambin hay que prevenir que el bucle no sea infinito. En resumen, una instruccin repetitiva hacer...mientras permite ejecutar repetidamente (una o ms veces) un bloque de instrucciones, mientras que, una determinada condicin sea verdadera.
22
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
330
Solucin en pseudocdigo:
algoritmo Numeros_del_1_al_10 variables entero contador inicio contador 1 /* Inicializacin del contador */ hacer escribir( contador ) /* Salida */ contador contador + 1 /* Incremento */ mientras( contador <= 10 ) /* Condicin */ fin
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
331
23
24
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
332
Cuando el <bloque_de_instrucciones> slo contiene una instruccin, los caracteres abrir llave ({) y cerrar llave (}) son opcionales.
25
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
333
contador = 1; /* Inicializacin del contador */ do { printf( "%d ", contador ); /* Salida */ contador++; /* Incremento */ } while ( contador <= 10 ); /* Condicin */ return 0; }
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
334
26
28
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
336
29
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
337
30
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
338
31
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
339
EJERCICIOS RECOMENDADOS
Resueltos: 4, 5 y 6. Propuestos: 4, 5 y 6.
32
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
340
En una instruccin repetitiva para, siempre se utiliza una <variable> a la que se debe asignar un <valor_inicial>. En cada iteracin del bucle, al valor de la <variable> se le suma el <valor_incremento> y, cuando la <variable> supera el <valor_final>, el bucle finaliza. Por tanto, una instruccin repetitiva para permite ejecutar, repetidamente, un bloque de instrucciones, en base a un valor inicial y a un valor final. El bucle para es ideal usarlo cuando, de antemano, ya se sabe el nmero de veces (iteraciones) que tiene que ejecutarse un determinado bloque de instrucciones. El bucle para es una variante del bucle mientras y, al igual que ste, puede iterar cero o ms veces. Sin embargo, el bucle para slo se suele usar cuando se conoce el nmero exacto de veces que tiene que iterar el bucle.
33
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
341
Solucin en pseudocdigo:
algoritmo Numeros_del_1_al_10 variables entero contador inicio para contador 1 hasta 10 incremento 1 hacer escribir( contador ) fin_para fin
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
342
34
35
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
343
36
37
EJEMPLO
algoritmo Numeros_del_10_al_1 variables entero contador inicio para contador 10 hasta 1 decremento 1 hacer escribir( contador ) fin_para fin
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
346
38
39
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
347
40
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
348
Cuando el <bloque_de_instrucciones> de una repetitiva para slo contiene una instruccin, los caracteres abrir llave ({) y cerrar llave (}) son opcionales.
41
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
349
for ( contador = 1 ; contador <= 10 ; contador++ ) printf( "%d ", contador ); return 0; }
42
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
350
43
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
351
Si la respuesta es afirmativa, habitualmente se usa un bucle para. En caso contrario, nos plantearemos la siguiente pregunta:
El bloque de instrucciones debe ejecutarse al menos una vez?
En este caso, si la respuesta es afirmativa, generalmente haremos uso de un bucle hacer...mientras, y si la respuesta es negativa, usaremos un bucle mientras.
44
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
352
EJERCICIOS RECOMENDADOS
Resueltos: 7, 8, 9, 10, 11 y 12. Propuestos: 7, 8, 9, 10, 11 y 12.
45
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
353
47
48
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
356
/* Bucle 1 */
/* Inicio del anidamiento */ para j 1 hasta 10 hacer /* Bucle 2(anidado) */ r i * j escribir( i, " * ", j, " = ", r ) fin_para /* Fin del anidamiento */ fin_para fin
49
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
357
50
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
358
51
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
359
52
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
360
53
54
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
362
55
56
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
364
57
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
365
58
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
366
59
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
367
EJERCICIOS RECOMENDADOS
Resueltos: 13, 14, 15 y 16. Propuestos: 13, 14, 15, 16 y 17.
60
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
368
61
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
369
2) Pida por teclado la opcin deseada (dato entero). 3) Ejecute la opcin del men seleccionada. 4) Repita los pasos 1, 2 y 3, mientras que, el usuario no seleccione la opcin 4 (Salir) del men.
62
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
370
63
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
371
Calcular el doble de un nmero entero." ) Calcular la mitad de un nmero entero." ) Calcular el cuadrado de un nmero entero." ) Salir." )
/* Filtramos la opcin elegida por el usuario */ hacer escribir( "Introduzca opcin: " ) leer( opcion ) mientras( opcion < '1' o opcion '>' 4 ) /* La opcin slo puede ser '1', '2', '3' '4' */
64
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
372
EJERCICIOS RECOMENDADOS
Resueltos: del 17 al 22. Propuestos: del 18 al 25.
65
Libro: EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
373
http://www.carlospes.com
66
374