unidad 1 : introducciÓn. 1.1 conceptos ......hardware y software. 1. informÁtica: definición 1:...

70
Laura Setti Duque 1 UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ELEMENTALES. Hardware y Software. 1. INFORMÁTICA : Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir y tratar la información. Definición 2: Es la ciencia que estudia el tratamiento automático y racional de la información. Integra por lo tanto, las máquinas, los métodos de trabajo y las aplicaciones. 2. ELEMENTOS DE LA INFORMÁTICA: La informática involucra tres elementos, las computadoras, los programas y los sistemas de información. 3. PILARES BÁSICOS DE LA INFORMÁTICA: Los tres componentes básicos de la informática son Hardware (componentes físicos), Software (componentes lógicos) y el elemento Humano. 4. DATO : Representación de una realidad. 5. INFORMACIÓN: Mensaje válido para un receptor. 6. BIT: Unidad mínima de información. ( 0 ó 1 ). 7. BYTE: Conjunto de bits relacionados. ( 8 bit ). 8. LENGUAJE: Conjunto de símbolos y reglas que permiten, unidos en mensajes válidos, dar un significado a cada mensaje. 9. LENGUAJE DE PROGRAMACIÓN: Permite expresar programas que en último término serán realizados por la máquina. Deben ser lenguajes no ambiguos y cada construcción del lenguaje tiene un sentido único. 10. ALGORITMO: Secuencia de operaciones o pasos lógicos, bien definidos que ejecutados un número finito de veces permiten resolver un problema. Luego, un algoritmo debe ser efectivo, finito y bien definido (claro y sin ambiguedades). 11. INSTRUCCIÓN: Conjunto de caracteres que específica una operación a realizar. 12. REGISTRO: Colección de datos relacionados, pertenecientes a una entidad lógica. 13. SOFTWARE: Conjunto de programas. Aspectos lógicos o algorítmicos de un sistema computacional. 14. HARDWARE: Componentes físicos, discretos y reproducibles a partir de un patrón de un sistema computacional.(ej. CPU, memoria, dispositivos I/O, etc.). 15. PROGRAMA: Es un conjunto de comandos o sentencias ( instrucciones ) que representan un algoritmo en un lenguaje de programación determinado. 16. ARCHIVO: Es un conjunto de datos relacionados mediante una determinada característica o propiedad.

Upload: others

Post on 25-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

1

UNIDAD 1 : INTRODUCCIÓN.

1.1 CONCEPTOS ELEMENTALES. Hardware y Software.

1. INFORMÁTICA :

Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para

transmitir y tratar la información.

Definición 2: Es la ciencia que estudia el tratamiento automático y racional de la información.

Integra por lo tanto, las máquinas, los métodos de trabajo y las aplicaciones.

2. ELEMENTOS DE LA INFORMÁTICA: La informática involucra tres elementos, las

computadoras, los programas y los sistemas de información.

3. PILARES BÁSICOS DE LA INFORMÁTICA: Los tres componentes básicos de la informática

son Hardware (componentes físicos), Software (componentes lógicos) y el elemento Humano.

4. DATO : Representación de una realidad.

5. INFORMACIÓN: Mensaje válido para un receptor.

6. BIT: Unidad mínima de información. ( 0 ó 1 ).

7. BYTE: Conjunto de bits relacionados. ( 8 bit ).

8. LENGUAJE: Conjunto de símbolos y reglas que permiten, unidos en mensajes válidos, dar un

significado a cada mensaje.

9. LENGUAJE DE PROGRAMACIÓN: Permite expresar programas que en último término serán

realizados por la máquina. Deben ser lenguajes no ambiguos y cada construcción del lenguaje tiene

un sentido único.

10. ALGORITMO: Secuencia de operaciones o pasos lógicos, bien definidos que ejecutados un número

finito de veces permiten resolver un problema. Luego, un algoritmo debe ser efectivo, finito y bien

definido (claro y sin ambiguedades).

11. INSTRUCCIÓN: Conjunto de caracteres que específica una operación a realizar.

12. REGISTRO: Colección de datos relacionados, pertenecientes a una entidad lógica.

13. SOFTWARE: Conjunto de programas. Aspectos lógicos o algorítmicos de un sistema

computacional.

14. HARDWARE: Componentes físicos, discretos y reproducibles a partir de un patrón de un sistema

computacional.(ej. CPU, memoria, dispositivos I/O, etc.).

15. PROGRAMA: Es un conjunto de comandos o sentencias ( instrucciones ) que representan un

algoritmo en un lenguaje de programación determinado.

16. ARCHIVO: Es un conjunto de datos relacionados mediante una determinada característica o

propiedad.

Page 2: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

2

17. MEMORIA: Conjunto de registros, capaces de almacenar un valor. En ellos se almacenan el

programa y los datos.

18. PROCESADOR: Dispositivo físico capaz de ejecutar las instrucciones de un programa almacenado

en memoria. Puede también efectuar lectura/escritura desde y hacia memoria y/o dispositivos de

entrada/salida tales como unidades de discos, cintas, impresoras, etc.

19. SISTEMA OPERATIVO: Conjunto de programas cuya función es administrar eficientemente los

recursos tales como procesador (CPU), memoria, dispositivos de entrada/salida, etc. de un sistema

computacional. Entre las funciones que debe cumplir están las siguientes:

- Compartir los recursos entre los distintos usuarios.

- Proteger al sistema de accesos no autorizados.

- Asignar recursos a los usuarios en la cantidad adecuada y a tiempo.

- Recobrar al sistema en forma ordenada de los posibles errores.

Page 3: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

3

UNIDAD 2: SISTEMAS DE NUMERACIÓN.

2.1 SISTEMAS NUMÉRICOS.

2.1.1 Definición.

Se define como sistema de numeración, el conjunto de símbolos utilizados para la representación de

cantidades, así como las reglas que rigen dicha representación.

2.1.2 Distinción.

Un sistema de numeración se distingue fundamentalmente por su base, que es el número de símbolos

que utiliza y que, además, se caracteriza por ser el coeficiente que determina cuál es el valor de cada símbolo

dependiendo de su posición.

2.1.3 Sistemas posicionales.

Los sistemas de numeración actuales son sistemas posicionales, en los que el valor relativo que

representa cada símbolo o cifra depende de su valor absoluto y de la posición relativa que representa cada

símbolo o cifra con respecto a la coma decimal, íntimamente ligada al valor de la base del sistema de

numeración utilizado.

Ejemplo:

Sistema Binario, Base 2, Símbolos: 0, 1.

Sistema Octal, Base 8, Símbolos: 0,1,2,3,4,5,6,7.

Sistema Decimal, Base 10, Símbolos: 0,1,2,3,4,5,6,7,8,9.

Sistema Hexadecimal Base 16, Símbolos:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

2.1.4 Sistema decimal.

Desde hace muchos años, el hombre ha utilizado como sistema para contar el denominado decimal,

que derivó del sistema numérico indoárabico; posiblemente adoptado por contar con diez dedos de las manos.

Utiliza como base el 10, que corresponde al número de símbolos que comprende para la

representación de cantidades estos símbolos (también denominados dígitos) son: 0,1,2,3,4,5,6,7,8,9.

Ejemplo: La representación de las cantidad 2998 es:

2998 = 2 * 103 + 9 * 10

2 + 9 * 10

1 + 8 * 10

0

Page 4: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

4

2.1.5 Teorema fundamental de la numeración.

Se trata de un teorema que relaciona una cantidad expresada en cualquier sistema de numeración con

la misma cantidad expresada en el sistema decimal.

Supongamos una cantidad expresada en un sistema cuya base es B y representamos por cada X cada

uno de los dígitos que contiene dicha cantidad, donde el subíndice indica la posición del dígito con respecto a

la coma decimal, posición que hacia la izquierda de la coma se numera desde 0 en adelante y de 1 en 1, y

hacia la derecha se numera desde -1 y con incremento -1.

El teorema Fundamental de la Numeración dice que el valor decimal de una cantidad expresada en

otro sistema de numeración, viene dado por la fórmula:

. . . + X4 * B4 + X3 * B

3 + X2 * B

2 + X1 * B

1 + X0 * B

0 +

+ X-1 * B-1

+ X-2 * B-2

+ X-3 * B-3

+ . . .

2.1.6 Sistema binario.

Es el sistema de numeración que utiliza internamente el hardware de las computadoras actuales. Se

basa en la representación de cantidades utilizando los dígitos 1 y 0. Por tanto, su base es 2 (número de dígitos

del sistema).

Cada dígito de un número representado en este sistema se denomina bit (contracción de bynary y

digit). Se suelen utilizar con nombre propio determinados conjuntos de dígitos en binario:

Cuatro bits se denominan cuarteto (Ejemplo: 1001).

Ocho bits octeto o byte (Ejemplo: 10010110).

Al conjunto de 1.024 bytes se le llama kilobyte.

1.024 kilobytes forman el llamado megabyte.

1.024 megabytes se denomina gigabyte.

1.024 gigabytes se denomina terabyte.

Por tanto, es posible establecer las siguientes igualdades relacionadas al dígito binario (bit):

1 cuarteto = 4 bits

1 byte = 8 bits.

1 kilo byte = 1.024 * 8 bits = 8.192 bits.

1 Mega byte = 1.024 * 1.024 * 8 = 8.388.608 bits.

1 Giga byte = 1.0243 * 8 = 8.589.934.592 bits.

1 Tera byte = 1.0244 * 8 bits.

Page 5: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

5

2.2 ALGORITMOS DE TRANSFORMACIÓN.

2.2.1 De base B a base 10.

La pregunta aquí es la siguiente: ¿Qué número entero decimal representa al número XXX entero en B?.

Entonces diremos transforme un número representado en base B a base 10, para tal efecto se utiliza el

Teorema Fundamental de la Numeración.

Ejemplo:

1) 101101( 2 ) ( )( 10 )

101101( 2 ) = 1*20 + 0*2

1 + 1*2

2 + 1*2

3 + 0*2

4 + 1*2

5

= 1 + 0 + 4 + 8 + 0 + 32

= 45 ( 10 )

2) 3431( 8 ) ( )( 10 )

3431( 8 ) = 1*80 + 3*8

1 + 4*8

2 + 3*8

3

= 1 + 24 + 256 + 1536

= 1817 (10)

3) 3A3B( 16 ) ( )( 10 )

3A3B( 16 ) = 11*160 + 3*16

1 + 10*16

2 + 3*16

3

= 11 + 48 + 2560 + 12288

= 14907 (10)

Page 6: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

6

2.2.2 De base 10 a base B.

La pregunta aquí es la siguiente: ¿Qué número entero en una base B cualquiera representa al número

XXX entero decimal?. Entonces diremos transforme un número representado en base 10 a base B, para tal

efecto se utiliza el Algoritmo de la división. Este método consiste en dividir el número decimal por la base B,

el resultado de la división entera (cuociente) se divide nuevamente por la base B, y así sucesivamente hasta

obtener cuociente 0. El número decimal resulta de escribir los restos de cada una de las divisiones, en orden

inverso al que fueron obtenidos.

Ejemplo:

1) 23( 10 ) ( )( 2 )

23 : 2 = 11 1 Resto

11 : 2 = 5 1

5 : 2 = 2 1

2 : 2 = 1 0

1 : 2 = 0 1 El número en base 2 es: 10111

2) 97( 10 ) ( )( 12 )

97 : 12 = 8 1 Resto

8 : 12 = 0 8 El número equivalente en base 12 es 81.

3) 26( 10 ) ( )( 16 )

26 : 16 = 1 10=A Resto

1 : 16 = 0 1 El número equivalente en base 16 es 1A.

Page 7: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

7

2.2.3 Ejercicios propuestos. Aplique algoritmos de transformación para números enteros y fraccionarios.

1. (132)10 a ( )2 , ( )4 , ( )8 , ( )16 , ( )7

2. (14561)10 a ( ) 4, ( ) 8 , ( ) 32, ( ) 18

3. (987132)10 a ( )3 , ( )4 , ( )8 , ( )16 , ( )17

4. (2785)10 a ( )5 , ( )4 , ( )8 , ( )16 , ( )7

5. (1342)7 a ( )2 , ( )5 , ( )8 , ( )16 , ( )10

6. (3285)9 a ( )2 , ( )4 , ( )8 , ( )16 , ( )10

7. (ABC)16 a ( )10 , ( )4 , ( )8 , ( )11 , ( )7

8. (101111111)15 a ( )2 , ( )10 , ( )8 , ( )16 , ( )3

9. (11011111)2 a ( )12 , ( )4 , ( )8 , ( )16 , ( )10

10. (23132)4 a ( )2 , ( )6 , ( )10 , ( )16 , ( )8

11. (532)8 a ( )2 , ( )4 , ( )10 , ( )16 , ( )7

12. (142. 25)10 a ( )2 , ( )4 , ( )8 , ( )16 , ( )7

13. (14561. 75)10 a ( ) 4, ( ) 8 , ( ) 32, ( ) 18

14. (9832.125)10 a ( )3 , ( )4 , ( )8 , ( )16 , ( )17

15. (2785.134)10 a ( )5 , ( )4 , ( )8 , ( )16 , ( )7

16. (1342.32)7 a ( )2 , ( )5 , ( )8 , ( )16 , ( )10

17. (3285.85)9 a ( )2 , ( )4 , ( )8 , ( )16 , ( )10

18. (ABC.C)16 a ( )10 , ( )4 , ( )8 , ( )11 , ( )7

19. (101111111.11)15 a ( )2 , ( )10 , ( )8 , ( )16 , ( )3

20. (11011111.110011)2 a ( )12 , ( )4 , ( )8 , ( )16 , ( )10

21. (2332.25)4 a ( )2 , ( )6 , ( )10 , ( )16 , ( )8

Page 8: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

8

2.3 OPERACIONES NUMÉRICAS.

Ejercicios propuestos.

Realice las operaciones en las bases indicadas, pasando por la base 10 o base 2 según corresponda.

1. (27)8 * (52)16 = (?)2

2. (32)5 : (21)3 = (?)5

3. (100000)2 + (11000)2 = (?)2

4. (110100)2 + (?)2 = (100110)2

5. (78)3 * (?)4 = (2021)5

6. (250)8 + (?)3 = (2043)5

7. (A07)16 * (1111)9 = (?)2

8. (51)8 * (?)2 = (1111)9

9. (?)13 - (2460)7 = (1357)11

10. (460)18 - (?)4 = (ABC)16

11. (?)8 - (28A0)16 = (10010110)2

12. (123)8 + (123)4 = (?)16

13. (123.456)8 + (123.456)16 = (?)4

14. (405)8 * (?)4 = (15CAE)16

15. (?)16 * (325)8 = (12222122)4

16. (46)7 * (X)2 = (1212)4

17. (X)16 : (101)2 = (36)8

18. (101)2 + (X)8 = (101)4

19. (351234)7 + (34521)7 = ( )7

20. (ABCGI)20 + (123B)20 = ( )20

21. (461)32 * (X)2 = (1212)4

22. (X)16 : (101)2 = (36)32

23. (1011011)2 - (X)2 = (101)2

24. (351234)7 * (X)7 = (AB4DI)5

Page 9: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

9

25. (ABCGI)20 + (123B)20 = ( )20

26. (46)7 - (X)2 = (112)4

27. (X)1 6 * (101)2 = (32)8

28. (10111111)2 * (234)8 = ( )2

29. (334)5 + (4521)7 = ( )7

30. (ABCGI)19 + (123B)20 = ( )16

31. (416)7 * (X)2 = (12)3

32. (101)16 : (101)2 = ( )8

33. (101)2 + (X)8 = (101)4

34. (351234)8 - (34521)8 = ( )4

35. (AB12)20 + (123B)20 = ( )20

36. (24)(?) = (14)10

37. (21)(?) = (00100001)2

38. (0.7)(?) = (0.875)10

39. (0.3A)(?) = (0.0001101010)2

40. (5.5)(?) = (5.625)10

Page 10: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

10

2.4 REPRESENTACIÓN INTERNA DE LOS DATOS.

Tanto para los datos numéricos como para los datos literales, la representación será en base a

números binarios, ya que internamente no existe otra simbología.

2.4.1 Datos numéricos.

Los números se representan en formatos binarios para enteros y reales. Se pueden mencionar los

siguientes formatos en bytes:

2 BYTES

Punto Fijo, “Enteros Cortos”. Rango: -32768 . . 32767.

4 BYTES

Punto Fijo, “Enteros Largos”. Rango: -231

. . 231

- 1

Punto Flotante, “Reales Simples”.

8 BYTES

Punto Flotante, “Reales Dobles”.

Un número entero entonces se representa por su equivalente binario, y los enteros negativos por su

complemento dos. El formato punto fijo para 4 bytes es el siguiente:

1 BIT 31 BIT NÚMERO BINARIO

DE SIGNO

0 : POSITIVO

1 : NEGATIVO

En este caso se utilizan sólo 31 bits para representar al número, cualquier número que utilice más de

31 bits para su equivalente binario, no podrá representarse (overflow).

Ejemplo: Para el número 1026.

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0

Para representar un número real en 4 bytes, el formato punto flotante es el siguiente:

1 BIT 23 BIT MANTISA 8 BIT EXPONENTE

DE SIGNO

0 : POSITIVO

1 : NEGATIVO

Page 11: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

11

Todos los números reales se representan internamente en este formato, para el caso 32 bits se utiliza

un bit para el signo, 23 bits para los dígitos significativos del número (mantisa) y los 8 restantes para el

exponente; el punto fraccionario no se almacena.

Para poder almacenar exponentes negativos se introduce el concepto de CARACTERÍSTICA, que

es un número arbitrario conocido que se suma al exponente y se calcula como:

Característica = cantidad de números posibles de almacenar en n bit = 2n

2 2

Ejemplo: Para el número 492,17 Su equivalente binario es:

111101100.001010111000010100011110.......

desplazando el punto decimal a la izquierda, y considerando los primeros 23 dígitos de izquierda a derecha del

número binario, se obtiene:

.111101100001010111000010100011110 E 9

mantisa exponente

Conversión del exponente:

Característica 10000000 128 (28/2 = 256/2)

+ Exponente 00001001 + 9

10001001 137

Representación punto flotante.

0 1 1 1 1 0 1 1 0 0 0 0 1 0 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1

Para números con signo negativo se representan de la misma forma que los con signo positivo,

cambiando el bit se signo. Otra forma de representar negativos es cambiando además del bit de signo, la

mantisa por complemento dos.

Page 12: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

12

2.4.2 Datos alfanuméricos.

Muchos conjuntos de caracteres (o alfabetos) han sido diseñados con el correr de los años para

utilizarse en las computadoras. Dos de los conjuntos de caracteres más populares y completos son los

conocidos como EBCDIC (Extended Binary Coded Decimal Interchange Code) y ASCII (American Standard

Code for Information Interchange). EBCDIC es un sistema de codificación de caracteres que se utiliza

fundamentalmente en la serie de computadoras IBM/360-370. ASCII fue desarrollado originalmente como un

código estándar para la industria de las computadoras. Los conjuntos de caracteres que tienen estos dos tipos

de codificación son los siguientes.

CONJUNTO DE CARACTERES ASCII:

1. El alfabeto inglés, tanto en letras minúsculas como mayúsculas { a, b, c, ..., z, A, B, C, ..., Z}.

2. Los caracteres numéricos decimales: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.

3. Operaciones y caracteres especiales {+, -, *, /, >, <, =, , espacio, !, “, #, $, %, &, ‘, (, ), , , ; , : , ?, @,

[, ], , , , {, }, ~ }.

4. Caracteres de control como DEL (Eliminar o borrar), ESC (Aborta proceso), END(Fin de línea), etc.

Para propósito de comparación se tiene que ’A’ < ’B’ < ’C’ < ... < ’Y’ < ’Z’.

Algunos códigos (representación binaria) de caracteres:

Caracteres ASCII (8 bit) Decimal

0 00110000 48

1 00110001 49

2 00110010 50

. . .

. . .

9 01011001 57

. . .

A 01000001 65

B 01000010 66

C 01000011 67

Page 13: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

13

UNIDAD 3. INTRODUCCIÓN AL LENGUAJE C

CAPITULO 5: ALGORITMOS. CONCEPTOS FUNDAMENTALES.

TEMA 1: DEFINICIÓN.

Antes de trabajar con algoritmos es importante clarificar el significado que se le da a estos:

La palabra algoritmo significa “método de resolución de un problema en un número finito de pasos”.

Algoritmo no significa la resolución de un problema particular para unos datos particulares, sino la

resolución de todos los problemas del mismo tipo.

Un algoritmo es la descripción exacta y sin ambiguedades de la secuencia de pasos elementales a

aplicar para, a partir de los datos del problema, encontrar la solución buscada. Para que un algoritmo sea

completo deberá contemplar todas las alternativas lógicas posibles que las distintas combinaciones de valores

de los datos puedan presentar.

Un algoritmo es un método general de resolución de todos los problemas del mismo tipo.

Entre los distintos tipos de algoritmos se encuentran: Los diagramas de flujo que utilizan símbolos

gráficos para su resolución, seudocódigo que describe un algoritmo utilizando una mezcla de frases en

lenguaje común, instrucciones de lenguaje de programación y palabras clave que definen las estructuras

básicas.

Este método es el que trabajaremos en este curso y es el que presenta todas las ventajas a las

características de los algoritmos, técnica que es utilizada en todos los lenguajes estructurados como: Pascal, C,

Dbase, Cobol, etc.

Codificaremos los algoritmos escritos en seudocódigo a lenguaje C para que puedan ser ejecutados

por el computador.

Page 14: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

14

TEMA 2: TIPOS DE DATOS.

Para el trabajo con algoritmos y programas es muy importante tener claro que tipo de elementos se

van a manejar en las sentencias ejecutables, que son parte del proceso y que corresponden a las acciones que

van a afectar a los datos.

Estos son principalmente: Variables, Constantes y Tipos de datos.

5.2.1 Datos.

Los tipos de datos estándar se pueden dividir básicamente en dos grupos: datos numéricos y datos

alfanuméricos.

Numéricos: Se refiere principalmente a números enteros y reales. (Int, long, float, double)

Alfanuméricos: Se refiere al conjunto de uno o más caracteres alfanuméricos. (char, y cadena de char).

5.2.2 Tipos y tamaños de datos en C.

Los lenguajes de programación utilizan palabras reservadas que designan tipos de datos, en particular en C se

manejan como estándar los siguientes.

Char : Se utiliza para almacenar un carácter.

Int: Se utiliza para almacenar un entero en el rango –32768 a 32767.

Float: Se utiliza para almacenar un número real en precisión simple con 6 dígitos significativos.

Double: Se utiliza para almacenar un número real en precisión doble con 15 dígitos significativos.

Long y short: Son calificadores para enteros, y se refieren a diferentes tamaños de los números: long int ,

short int. También se puede omitir la palabra int.

TEMA 3: OPERADORES.

Son todos los símbolos que sirven de enlace entre cada uno de los argumentos que intervienen en

una operación, y se utilizan para construir expresiones.

Operadores Relacionales: Se utilizan en expresiones lógicas. Expresiones que al ser evaluadas producen un

valor de verdad (valor distinto de 0) o falsedad (valor igual a 0). Estos son: < (menor), == (igualdad), >

(mayor), <= (menor igual), >= (mayor igual), != (distinto).

Ejemplo: Con números y cadenas:

1. ‘A’ < ‘B’ V

2. ‘aaaa’ > ‘AAAA V

3. 2 < 12 V

4. ‘2’ < ‘12’ F

Operadores Aritméticos: Se utilizan en expresiones aritméticas, estos son:

+ (adición), - (sustracción), * (multiplicación), / (división), % (módulo).

Page 15: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

15

Operadores lógicos: Combinan sus operandos de acuerdo al álgebra de boole, y son: || (OR), && (AND), !

(NOT). La prioridad para estos operadores es: !, &&, ||.

Operadores de asignación: Se utilizan para asignar el valor de una expresión a una variable, estos son: =, +=,

- =, *=,%=. Combinan la asignación con una operación aritmética.

Operadores de incremento y decremento:

Solo son aplicables a variables y no a expresiones. Se pueden emplear como sufijos y prefijos en las

variables.

Incremento en 1: ++. Aumenta en una unidad a su operando.

Decremento en 1: --. Disminuye en una unidad a su operando.

Ejemplo:

++n : Incrementa n antes de usar su valor.

n++ : Incrementa n después de que se ha empleado su valor.

Si n es 5 entonces: x=n++ ; pone un 5 en x, pero x=++n; pone un 6 en x. En ambos casos el valor final de n es

6.

Paréntesis( ): Se utiliza para anidar expresiones.

Orden de evaluación de los operadores: En orden descendente, para igual prioridad se evalúa de izquierda a

derecha.

Paréntesis.

Productos y divisiones.

Sumas y restas.

Relacionales.

Lógicos.

Page 16: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

16

TEMA 4: VARIABLES.

Son objetos básicos que se manipulan en un programa. Se considera variable a una zona de memoria

referenciada por un nombre, donde se puede almacenar el valor de un dato o de una expresión, que puede ser

cambiado cuando se desee.

El nombre de una variable puede ser elegido por el usuario.

El computador asigna a cada variable una dirección de memoria.

Las variables pueden almacenar distintos tipos de información (numérica, alfanumérica).

Para ser utilizadas en un programa estas deben ser definidas, asignándole un nombre, y el tipo de la

información que van a almacenar.

TEMA 5: CONSTANTES.

Son objetos básicos que se manipulan en un programa. Se considera constante a una zona de

memoria referenciada por un nombre, donde se puede almacenar el valor de un dato, que no puede ser

cambiado. El tipo de la constante es de acuerdo al valor que almacena, que puede ser numérico o

alfanumérico.

CAPITULO 6: ESTRUCTURA DE UN PROGRAMA EN C.

TEMA 1: DESCRIPCIÓN DE UN PROGRAMA EN C.

Los programas escritos en C normalmente constan de una gran cantidad de pequeñas funciones en

lugar de pocas y grandes.

En la estructura general de un programa escrito en lenguaje C se encuentran los siguientes elementos:

Comentarios opcionales, que describen la naturaleza del programa y/o algunas instrucciones.

Directivas del preprocesador que comienzan con #. Inclusión de bibliotecas que permiten el uso de

un conjunto de funciones predefinidas.

Una sección de declaraciones, que identifica los objetos usados en el programa. Aquí se incluyen

tipos de datos globales, definición de constantes y de variables globales.

Una sección de definición de funciones.

Definición de la función main, que es donde se específican las acciones que se ejecutarán, y desde

donde se ejerce el control principal del programa .

TEMA 2: FORMATO BASICO.

Directivas de preprocesador (comienzan con #)

[Declaración de tipos globales] /*opcional*/

[Declaración de variables globales] /*opcional*/

[Definición de funciones] /*opcional*/

Definición de función main()

/* Inicio de sentencias función main*/

{

[Sentencias para el control principal del programa]

}

/*Fin de sentencias función main*/

Page 17: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

17

Ejemplo:

#include <stdio.h> /*Definición de biblioteca estándar*/

#define Largo 100 /*Definición de la constante entera largo*/

int n; /* Definición de la variable global entera n*/

main() /* Definición de la función main*/

{

int n, k; /* Definición de las variables locales enteras n y k*/

k=10;

n=k*10;

return(0);

}

Page 18: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

18

UNIDAD 4: ESTRUCTURAS BÁSICAS DE CONTROL, Secuenciales, selectivas e iterativas.

La programación estructura es una técnica de programación que utiliza estructuras de control

previamente definidas, estas estructuras se clasifican en cuatro formas básicas para las sentencias

(instrucciones): secuenciales, selectivas, iterativas y de subprogramas.

CAPITULO 7: LENGUAJE C, SECUENCIA.

TEMA 1: SECUENCIA, Sintáxis.

Si se tiene un conjunto de acciones {S1, S2, ...., Sn} cuyos índices señalan el orden en que se ejecutan,

entonces determinan una secuencia. Las típicas sentencias secuenciales son de lectura de variables, asignación

de expresiones y salida de resultados.

Formato:

Inicio

S1: Inicio

S2: Ejecutar sentencia A A

S3: Ejecutar sentencia B B

S4 : Ejecutar sentencia C

. C

.

Sn: Parar Parar

Consideremos el siguiente algoritmo:

S1: Inicio

S2: Introducir a y b

S3: Calcular a*b

s4: Mostrar resultado

S5: Parar

En un algoritmo o programa secuencial estructurado, no se puede ejecutar por ejemplo la sentencia 4

sin haber realizado las anteriores (1,2,3). No está permitido devolverse, es decir no pueden existir saltos

incondicionales.

En el ejemplo se presenta un algoritmo más bien narrativo que seudocódigo. Los formatos que

utilizaremos para sentencias secuenciales son los siguientes:

Page 19: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

19

TEMA 2: LECTURA DE VARIABLES.

Permite el ingreso de uno o más datos, a una o más variables desde el teclado o desde un archivo.

Formato:

Leer(V1, v2,v3,..,Vn) { primer valor ingresado se almacena en la variable V1, segundo valor ingresado se

almacena en la variable V2,....., en la variable Vn se almacena el enésimo

valor}

o

Leer(V1)

Leer(V2)

Leer(Vn)

.

.

Leer(Vn)

TEMA 3: ASIGNACIÓN DE EXPRESIONES.

Permite almacenar en una variable el valor de una expresión. La variable y la expresión debe ser del mismo

tipo, o el tipo de la variable contener al de la expresión. Ejemplo: Una variable real puede contener a un valor

entero, o una variable cadena puede contener a un valor carácter.

Formato:

Variable <Expresión>

Salida de resultados: Permite imprimir por pantalla, impresora o salida a un archivo, una o más expresiones

de tipo numérica o alfanumérica.

Formato:

Escribir(Exp1, Exp2, Exp3 ,.., Expn) { el primer valor que se imprime es el de la expresión Exp1, segundo

valor que se imprime es el de la expresión Exp2,....., y

así sucesivamente}

o

Escribir(Exp1)

Escribir(Exp2)

Escribir(Exp3)

.

.

Escribir(Expn)

TEMA 4: LENGUAJE C, SECUENCIA APLICACIONES.

Page 20: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

20

Ejercicios resueltos.

1. Escribir un algoritmo en seudocódigo y programa que lea dos números enteros, calcule la suma, la

diferencia y el producto de ese par de números, y finalmente imprima sus resultados.

Algoritmo en seudocódigo:

Inicio

Leer (A,B)

Suma A + B

Resta A - B

Producto A * B

Escribir(Suma, Resta, Producto)

Fin

Programa en C.

#include <stdio..h>

#include <conio.h>

main()

{

int A,B,Suma,Resta,Producto;

printf("Ingrese dos números enteros \n");

scanf("%d",&A);

scanf("%d",&B);

Suma=A+B;

Resta=A-B;

Producto=A*B;

printf("La suma es: %d \n",Suma);

printf("La resta es: %d \n",Resta);

printf("El producto es: %d \n",Producto);

getche();

}

Page 21: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

21

2. Escribir un algoritmo en seudocódigo y programa que ingrese el costo de un artículo, calcule el

I.V.A. y el precio de venta. Finalmente imprima precio de costo, I.V.A. y el precio de venta.

Algoritmo en seudocódigo:

Inicio

Leer (Pcosto)

Iva Pcosto*0.18

Pventa Pcosto + Iva

Escribir(‘ Precio de costo =’, Pcosto)

Escribir(‘ I.V.A. =’, Iva)

Escribir(‘ Precio de Venta =’, PVenta)

Fin

Programa en C.

#include <stdio.h>

#include <conio.h>

float Pcosto,Iva,Pventa,suma;

main()

{

printf("Ingrese precio de costo \n");

scanf("\n %f",&Pcosto);

Iva=(Pcosto*0.18);

Pventa=(Pcosto+Iva);

printf("\n I.V.A. = %f",Iva);

printf("\n Precio de Venta= %f",Pventa);

getche();

}

3. Escribir un algoritmo en seudocódigo y programa que ingrese un número real e imprima el número

truncado y redondeado.

Algoritmo en seudocódigo:

Inicio

Leer (Num)

Escribir(Truncado(Num))

Escribir(Redondeado(Num))

Fin

Page 22: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

22

Programa en C.

#include <stdio.h>

#include <conio.h>

#include <math. h>

main()

{ double num;

printf("Ingrese un número cualquiera");

scanf ("%lf",&num);

printf("El número truncado es: %ld",int(num));

printf("El número redondeado es: %lf",ceil(num));

getche();

}

4. Escribir un algoritmo en seudocódigo y programa que calcule e imprima el promedio de cuatro

números reales.

Algoritmo en seudocódigo:

Inicio

Leer (A,B,C,D)

Suma A + B + C + D

Promedio Suma/4

Escribir( A, B, C, D)

Escribir(‘ Su promedio es:’,Promedio)

Fin

Programa en C.

#include <stdio.h>

#include <conio.h>

main()

{

float A, B, C, D, Suma, Promedio;

printf("Ingrese 4 números cualquiera \n");

scanf("%f",&A);

scanf("%f",&B);

scanf("%f",&C);

scanf("%f",&D);

Suma = A + B + C + D;

Promedio= Suma/4;

printf("\n Su promedio es: %f", Promedio);

getche();

}

Page 23: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

23

TEMA 5: LENGUAJE C, secuencia. Aplicaciones. Ejercicios Propuestos.

1. Ingresar una temperatura real que está en grados Farenheit y convertirla a grados Celsius. Imprimir

ambos valores.

Cº = (Fº -32) *5/9

2. Se ingresa una longitud expresada en pies y otra en pulgadas, determinar su equivalente métrico tanto

en metros como en centímetros.

1 pie = 12 pulgadas

1 pulgada = 2.54 cm.

1 metro = 100 cm.

3. La lechería despacha al supermercado N cartones de mantequilla de C Kg. cada uno. La mantequilla

está envasada en paquetes de E Kg.. Calcular cuántos paquetes se despacharon y cuántos paquetes

contiene cada cartón.

4. Se tiene una habitación de L metros de largo y A de ancho. Calcular el perímetro de la habitación. Si

está se llena con cajas de C cm2 . Determinar el número de cajas que puede contener la habitación.

5. Se tiene un jarro que puede contener hasta N litros. Calcular el número de vasos de agua de X cc. que

llenarían el jarro.

6. Un tren salió a las hh:mm y llegó puntualmente, h horas y m minutos después a su destino. Determinar

la hora de llegada.

7. Si la fecha de nacimiento de una persona se lee en el formato ddmmaa. Determinar su edad a la fecha

actual y emitir un mensaje si está de cumpleaños.

8. Un tren salió de Santiago a las H1 hrs. y viajó a una velocidad de X1 kms/hora y otro tren salió de

Puerto Montt a las H2 hrs. y viaja a una velocidad de X2 kms./hora. ¿ A qué hora y en que kilómetro se

encuentran los dos trenes suponiendo que la distancia entre las dos ciudades es de T kms. ?

9. Transforme un número N entero de cuatro dígitos de base B (2..9) a base 10.

10. Invierta el orden de los dígitos de un número entero de 4 dígitos.

11. Tres Empresas de Transporte de pasajeros han enviado a licitación al Ministerio de Transporte y

Urbanismo el valor del pasaje que empezará a regir a partir del segundo semestre de 1999. El personal

encargado de realizar el estudio ha perdido el valor enviado por la tercera empresa (Z), pero aún

Page 24: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

24

mantienen los precios de las otras dos (X, Y), y además recuerdan que el valor perdido (Z) se podía

calcular de la tercera parte del valor de la primera empresa (X), más las tres cuartas partes del valor de

la segunda (Y). Se pide:

a) Determinar e imprimir el valor del pasaje (Z) de la tercera empresa.

b) Se piensa que en diez años más el valor del pasaje de cada empresa

(X, Y,Z) aumentará al doble. Determine e imprima el valor del pasaje para cada empresa en ese

tiempo.

12. Ana María tiene A años, y su amigo Miguel tiene B años, ambos desean saludar a su amigo en común

Mario, pero no recuerdan exactamente cuántos años cumple, sólo recuerdan que se calculaba de la

mitad de la edad de Ana María, más un tercio de la edad de Miguel. Se pide:

a) Determinar e imprimir la edad actual de Mario.

b) Determinar e imprimir la edad que tendrán los tres amigos en 10 años más.

13. Para una persona que opta por un subsidio habitacional se necesita determinar su puntaje de

postulación. Los antecedentes necesarios para el cálculo son: valor de la UF al momento de postular,

años de antigüedad, total de dinero ahorrado en pesos, número de cargas familiares, cantidad de UF

pactada y sueldo líquido. El puntaje se obtiene como:

a) Por cada UF ahorrada se contabiliza 1 punto.

b) Por cada carga familiar incluida la persona 10 puntos.

c) Por cada año de antigüedad 4 puntos.

d) Por cada Uf que exceda lo pactado ½ punto.

Determine e imprima el puntaje obtenido para la postulación.

14. Los antecedentes personales y académicos de los alumnos que ingresaron al DUOCUC el primer

semestre de 2001, están almacenados en C carpetas donde cada carpeta contiene X fichas (una por

alumno), cada ficha contiene a lo más D datos. Cada dato corresponde a una palabra de un byte.

Determinar e imprimir cuántos discos se necesitan para almacenar el total de la información de los

alumnos, sabiendo que cada disco tiene una capacidad de Z kilobytes.

Page 25: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

25

CAPTIULO 8: LENGUAJE C, selección simple y compuesta.

TEMA 1: DEFINICIÓN.

Las instrucciones condicionales o tomas de decisión permiten realizar acciones alternativas, por lo

tanto, la ejecución de una línea o grupos de líneas de un algoritmo o programa depende de si cumplen o no

una o varias condiciones. Una condición corresponde al valor de una expresión lógica.

TEMA 2:TOMA DE DECISIÓN.

a) Alternativa Simple: Involucra una alternativa de acción y su estructura en seudocódigo es:

Si <CONDICIÓN> entonces

<ACCIÓN>

Finsi

que corresponde a la proposición If de C:

If <CONDICIÓN>

BLOQUE;

CONDICIÓN: Es una expresión de tipo lógica.

BLOQUE: Es un conjunto de instrucciones encerradas entre llaves { }

Ejemplo:

Si (Buen_tiempo) entonces

Paseo ‘ bajar a la playa’

Finsi

b) Alternativa Compuesta: Involucra dos alternativas de acción y la estructura en seudocódigo es:

Si <CONDICIÓN> entonces

<ACCIÓN1>

Sino

<ACCIÓN2>

Finsi

Page 26: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

26

que corresponde a la proposición if/else en C:

If <CONDICIÓN>

BLOQUE1;

else

BLOQUE2;

Si el valor de la condición es verdadero, la acción que sigue a entonces es ejecutada, si es falso se

ejecuta la acción que sigue a sino.

Ejemplo 1.

Inicio

Escribir(‘Ingrese un número’)

Leer(Numero)

Si (Numero>=0) entonces

Total Raiz2(Numero)

Sino

Total Cuadrado(Numero)

Finsi

Escribir(‘ El total es:’, Total)

Fin

Ejemplo 2.

Inicio

Escribir(‘Ingrese medida del lado del cuadrado’)

Leer(Lado)

Si (Lado >0) entonces

Area Cuadrado(Lado)

Perimetro 4*Lado

sino

Lado 0

Escribir (‘ Lado negativo o nulo, no hay mediciones’)

Finsi

Fin

Ejercicio: Codifique los algoritmos de los ejemplos 1 y 2 a lenguaje C.

Page 27: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

27

CAPITULO 8: SENTENCIAS CONDICIONALES ANIDADAS.

TEMA 1: DEFINICIÓN.

Las sentencias que siguen a entonces y/o a sino, pueden ser a su vez otras sentencias selectivas, y si este es el

caso, estamos en presencia de una estructura condicional anidada.

TEMA 2: EJEMPLOS.

Ejemplo 1:

main()

{

int numero;

char nombre;

char Tipo_carac;

printf(" Ingrese tipo de dato a leer “dígito o letra \n");

scanf("%c",&Tipo_carac);

if (Tipo_carac == ‘d’)

scanf("%d",&numero);

else

if (Tipo_carac == ‘l’)

scanf("%c",&nombre);

else

printf("Errorrrrrr");

}

Ejemplo 2: Dado tres números distintos , determinar el mayor.

Inicio

Escribir(‘ Ingrese tres números’)

Leer(A,B,C)

Si (A > B) entonces

Si (B > C) entonces

Mayor A

Sino

Mayor C

Finsi

Sino

Si (A > C) entonces

Mayor B

Sino

Mayor C

Finsi

Finsi

Escribir(‘ El mayor es:’, Mayor)

Fin

Page 28: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

28

En C queda de la siguiente forma:

#include <stdio.h>

#include <conio.h>

main()

{

float a,b,c,mayor;

printf("Ingrese tres numeros \n");

scanf("%f",&a);

scanf("%f",&b);

scanf("%f",&c);

if (a > b)

if (a > c)

mayor = a;

else

mayor = b;

else

if (b > c)

mayor = b;

else

mayor = c;

printf("\n El mayor es: %f", mayor);

getche();

}

Ejemplo 3. Determinar e imprimir las raíces de una ecuación cuadrática de la forma ax2 + bx + c = 0.

Análisis:

Entradas: Los coeficientes (a, b, c).

Salidas : Las raíces (x1, x2).

Proceso : Calculo de las raíces.

Caso a: Si a=0 y b=0, no existe ecuación.

Caso b: Si a=0 y b<>0, se convierte en una ecuación lineal y la solución única es : -c/b.

Caso c: Si a<>0 y b<>0, entones se aplica la fórmula X = -b ± √ b2 - 4ac

2a

en este caso los valores de las raíces va a depender del discriminante dis=b2 - 4ac, para dis= 0 dos raíces

reales e iguales, para dis>0 dos raíces reales y distintas, y para dis<0 dos raíces complejas.

Page 29: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

29

Algoritmo:

Inicio

Escribir(‘Ingrese los coeficientes de la ecuación cuadrática’)

Leer(a,b,c)

Si (a=0) y (b=0) entonces

Escribir(‘ No existe ecuación’)

Sino

Si (a=0) entonces

Escribir(‘ La única raíz es:’, -c/b)

Sino

Dis cuadrado(b) - (4*a*c)

Re -b/(2*a)

Im raíz2(absoluto(Dis))/(2*a)

Si (Dis=0) entonces

Escribir(‘ Las raíces son reales e iguales y son:’, Re, Re)

Sino

Si (Dis > 0) entonces

Escribir(‘ Las raíces son reales y distintas y son:’)

Escribir(‘X1 =’, Re + Im, ‘X2 =’, Re - Im)

Sino

Escribir(‘ Las raíces son complejas y son:’)

Escribir(‘X1 =’, Re ,’+’, Im, ‘X2 =’, Re,’ -‘, Im)

Finsi

Finsi

Finsi

Finsi

Fin

Código en C:

#include <stdio.h>

#include <conio.h>

main()

{

float a, b, c, dis, re, im;

printf("Ingrese los coeficientes de la ecuación cuadrática \n") ;

scanf("%f",&a);

scanf("%f",&b);

scanf("%f",&c);

if ((a==0) && (b==0))

printf("No existe ecuación \n");

else

if (a==0)

printf("La única raíz es: %f", -c/b);

else

{

dis = (b*b) - (4*a*c) ;

re = -b/(2*a) ;

Page 30: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

30

im = sqrt( abs(dis) ) /(2*a);

if (dis==0)

printf("\n Las raíces son reales e iguales y son:%f %f", re, re);

else

if (dis > 0)

{

printf("\n Las raíces son reales y distintas y son:");

printf("x1 =%f ,x2 =%f ", re+ im,re-im) ;

}

{

printf("Las raíces son complejas y son:");

printf("x1 =%f + %f ,x2 =%f - %f", re, im,re,im);

}

}

getche();

}

Ejercicio: Determine las salidas del programa para las entradas:

a=0, b=0, c=7 ;

a=0, b=10, c=2 ;

a=2, b=3, c=0 ;

a=1, b=5, c=6 ;

a=1, b=1, c=1

Page 31: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

31

CAPITULO 10: SENTENCIA SWITCH DE C.

TEMA 1: DEFINICIÓN.

La sentencia Switch de C es similar a un conjunto de sentencias If anidadas. Si el valor de expresión selectora

coincide con uno de los valores de la lista de constantes, el bloque de instrucciones asociado con la lista se

ejecutará, sino coincide con ninguna, la sentencia Switch no se realizará y la ejecución continuará con la

siguiente sentencia del programa.

Formato:

Switch (Expresión_selectora) Instrucciones;

Expresión_selectora: Es una expresión escalar. Puede ser de tipo entero o caracter. No podrá ser una

expresión de tipo real o cadena

Una instrucción switch puede incluir varios grupos de instrucciones y cada instrucción se identifica con una o

varias etiquetas (distintas opciones o valores).

Forma 1:

Switch (Expresión_selectora)

Case expresión:

Bloque;

Forma 2:

Switch (Expresión_selectora)

Case expresión 1:

Case expresión 2:

.

.

Case expresión n:

Bloque;

TEMA 2: EJEMPLOS.

Ejemplo 1:

Switch (indicador)

{

case –1:

y = fabs(x);

break;

Page 32: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

32

case 0:

y = sqrt(x);

break;

case 1:

y = x;

break;

case 2:

case 3:

y = 2*(x-1);

break;

default:

y=0;

}

La instrucción break se utiliza para terminar la ejecución de ciclos o salir de una instrucción.

Ejemplo 2: Determinar el largo de un mes cualquiera.

main()

{

int yy,mm,lar;

printf(“Ingrese mes”);

scanf(“%d”,&mm);

. . .

Switch ( mm)

{

Case 1:

Case 3

Case 5:

Case 7:

Case 8:

Case 10:

Case 12:

lar=31;

break;

Case 4:

Case 6:

Case 9:

Case 11:

lar=30;

break;

Case 2:

printf(“Ingrese año”);

scanf(“%d”,&yy);

If ((yy%4= = 0) && (yy % 100!= 0 ) )

lar= 29;

Else

lar= 28;

break;

}

Page 33: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

33

TEMA 3: SELECCIÓN . Aplicaciones.

Escriba un algoritmo en seudocódigo y su correspondiente programa en C para cada enunciado.

1. Resolver un sistema de ecuaciones con dos incógnitas utilizando la regla de cramer, verificar condición.

2. Determine si un número n entero positivo ingresado por teclado es par o impar, envíe el mensaje

adecuado.

3. Determine el valor a pagar por el envío de un telegrama, sabiendo que por cantidad de palabras menor 0

igual a 50 se pagan $500 y que por cada palabra en exceso se agregan $5.

4. Determine el valor a pagar por el envío de un encomienda, sabiendo que por peso menor 0 igual a 5 kilos

se pagan $2000 y que por cada gramo de exceso se agregan $500.

5. Determine si una fecha ingresada por teclado es válida. La fecha se lee en formato ddmmaaaa.

6. Determinar la edad de una persona dada su fecha de nacimiento y fecha actual. Imprima la edad en años,

meses y días. Si está de cumpleaños envíe un mensaje. Utilice formato ddmmaaaa para las fechas.

7. Determine la estación del año para un día y mes ingresado por teclado.

8. Determine el signo del horóscopo para el día y mes de nacimiento de una persona ingresados por teclado.

9. Transforme si es posible un número entero en base 16 de 4 dígitos a las bases 2,4,8 y 10. El número en

base 16 puede ser leído como cadena.

10. Dados tres números distintos, determinar el mayor de ellos.

11. Dados tres números distintos, determinar el menor de ellos.

12. Imprimir de mayor a menor tres números distintos.

13. Imprimir de mayor a menor tres números distintos.

14. Calcular e imprimir las raíces de una ecuación cuadrática de la forma:

ax2 + bx + c = 0

15. Determine si un medicamento está vencido a la fecha actual. Las fechas se ingresan en formato ddmmaaaa.

Page 34: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

34

16. Se pide calcular el peaje a pagar por un vehículo. Este peaje determina según tipo, año y kilometraje del

vehículo, de acuerdo a la siguiente tabla:

Tipo Cargo según año Cargo según kilometraje.$ / kms.

Moto <= 1985 $200 $30

> 1985 $300

Auto <= 1985 $500 $50

> 1985 $650

Furgón <= 1985 $550 $60

> 1985 $700

Bus <= 1985 $600 $70

> 1985 $750

camión <= 1985 $650 $80

> 1985 $800

17. Dadas 10 monedas iguales, una de las cuales es más liviana que las demás, determinar cual de ellas es con

el mínimo de sentencias Si.

18. Un número entero es divisible por seis si es divisible por dos y por tres a la vez. Un entero es divisible

por tres si la suma de sus dígitos es múltiplo de 3. Verifique mediante este método si un número N entero

de 4 dígitos es o no divisible por seis.

19. Verifique que el ingreso de una fecha en que se realizó una bienal de arte en el centro cultural

Expresiones está correcta. Se sabe que los eventos se empezaron a realizar a partir del año 1971, y de ahí

en adelante cada dos años, en los meses de setiembre y diciembre alternadamente, la primera se realizó

en setiembre. La fecha se ingresa en formato ddmmaa. Verifique día, mes y año.

20. Escribir un programa que acepte un año escrito en cifras arábicas y lo visualice en números romanos,

dentro del rango 1000 a 2000.

21. Determinar la cantidad de días de un mes conociendo el número del mes y el número del año.

Page 35: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

35

22. Un análisis de control de calidad de un proceso de fabricación de productos ha determinado como

defectuosos las piezas con códigos en el siguiente rango:

146-156, 700-799,y 888-911. Determine si un artículo con un número de serie determinado es

defectuoso correcto.

23. Dadas dos letras minúsculas del alfabeto determinar: a) cuántas letras las separan, b) escribir la letra

o las dos letras centrales del intervalo que determinan en mayúsculas.

24. Dado un año determinar a qué siglo pertenece.

25. Dado los nombres y edades de tres personas, imprima el nombre de la persona con menor edad.

Page 36: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

36

CAPITULO 11: LENGUAJE C. Iteración

TEMA 1: DEFINICIÓN.

A menudo es necesario repetir un mismo conjunto de instrucciones bajo una <CONDICIÓN>,

durante la ejecución de un programa. La situación anterior corresponde a un proceso iterativo (o repetitivo).

La estructura iterativa debe contener instrucciones que incidan en el valor de verdad de la <CONDICiÓN>

para poder abandonarla en algún momento.

TEMA 2: SENTENCIA MIENTRAS.

La primera sentencia iterativa que analizaremos es la llamada Mientras (Mientras/Haga/Fin Mientras).

Formato:

Seudocódigo:

Mientras <CONDICIÓN> Haga

<ACCIÓN>

Fin Mientras

Al encontrar la estructura se evalúa la <CONDICIÓN>, sólo si es verdadera se ejecuta la sentencia

Mientras, se continúa dentro de la estructura mientras se cumpla la condición. El ciclo Mientras de repite cada

vez que la condición es verdadera y termina cuando la condición es falsa, continuando con la siguiente

sentencia del programa.

Lenguaje C:

while <CONDICIÓN> BLOQUE;

Ejemplo:

. . .

Escribir(‘ Ingresar edad’)

Leer( Edad)

Mientras ( edad < 0 ) Haga

Escribir(‘ ERROR, edad negativa’)

Leer( Edad)

Fin Mientras

. . .

Page 37: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

37

En Lenguaje C:

main()

{

int edad;

printf("Ingresar edad \n") ;

scanf("%d",&edad);

while (edad < 0)

{

printf("ERROR,\n");

scanf("%d",&edad) ;

}

}

TEMA 3: SENTENCIA Hacer/Mientras.

Una segunda sentencia iterativa es la denominada Hacer/Mientras.

Formato:

Seudocódigo:

Hacer

BLOQUE

Mientras <CONDICIÓN>

Se ingresa a la estructura incondicionalmente, esto implica que la acción contenida en el

Hacer/Mientras se ejecuta al menos una vez. A continuación se evalúa la <CONDICIÓN>, si es falsa se

termina el ciclo, en caso contrario, se repite todo el ciclo desde la primera instrucción contenida en él.

Lenguaje C:

do

BLOQUE;

while <CONDICIÓN>;

Para esta forma se ejecuta por lo menos una vez el bloque de instrucciones, y luego se evalúa la

condición. Cada vez que sea verdadera la condición se ejecuta nuevamente el bloque de instrucciones.

Page 38: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

38

Ejemplo:

. . .

Hacer

Escribir(‘ Ingresar tres números’)

Leer(N1,N2,N3)

S N1 + N2 + N3

P S/3

Escribir(‘ El promedio de los tres números es:’, P)

Escribir(‘ Otros tres S/N?’)

Leer(Resp)

Mientras (Resp = ‘S’)

. . .

En Lenguaje C:

#include <stdio. h>

#include <ctype. h>

main()

{

float n1,n2,n3,suma,prom;

char resp;

do

{

printf("Ingresar tres números \n");

scanf("%f",&n1);

scanf("%f",&n2);

scanf("%f",&n3);

suma = n1 + n2 + n3 ;

prom = suma/3 ;

printf("\n El promedio de los tres números es: %f", prom);

printf("\n desea seguir usando el programa s/n?") ;

fflush(stdin);

scanf("%c",&resp);

}

while ( (toupper(resp) ==’S’);

}

Page 39: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

39

TEMA 4: SENTENCIA Para/Fin para.

La última sentencia iterativa que revisaremos es la estructura PARA. Esta estructura incluye tres expresiones,

la primera permite la inicialización de variables, la segunda condiciona la ejecución del ciclo, y la tercera

modifica la/s variables inicializadas en la primera expresión.

Formato:

Seudocódigo:

Para (expresión1, expresión2, expresión3)

BLOQUE

Fin Para

Expresión1 : Es una expresión de asignación.

Expresión2: Representa una condición que debe ser satisfecha para que continúe la ejecución del bloque de

instrucciones contenido en el ciclo.

Expresión3: Se utiliza para modificar el valor de la variable inicialmente asignado en la expresión1.

Lenguaje C:

for (expresión1; expresión2; expresión3)

BLOQUE;

Para las expresiones indicadas en el Fo r, C permite incluir más de una en cada caso. Es decir más de una

asignación, más de una condición, más de una modificación de variables dependiendo de la situación a

resolver.

Ejemplo: Segmento que imprime la tabla de multiplicar de un entero N.

. . .

Escribir(‘ Ingrese un número’)

Leer(N)

Para (I=1,I< 12,I=I+1)

Escribir(N,’ * ‘, I, ‘ = ‘, N*I)

Fin Para

. . .

Lenguaje C

main()

{

int n;

int i;

printf("Ingrese un número \n");

scanf("%d",&n);

for (i=1; i<=12; i++)

printf("%d * %d = %d",n,i,n*i);

getch();

}

Page 40: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

40

CAPITULO 12: LENGUJAE C. Iteración, Aplicaciones

TEMA 1: EJERCICIOS RESUELTOS.

1. Determinar si un número entero positivo es primo. Un número es primo si sólo es divisible por 1 y si

mismo.

Inicio

Escribir(‘ Ingrese un entero positivo’)

Leer(N)

Sw 0

I 2

Hacer

Si (Resto(N / I) = 0) entonces

Sw 1

Escribir(N,‘ No es un número primo’)

Fin si

I I + 1

Mientras ( I<= Entero(N/2) ) y ( Sw = 0)

Si (Sw = 0) entonces

Escribir(N, ‘ Es un número primo’)

Fin si

Fin

2. Determine el total a pagar por la compra de N productos adquiridos en un supermercado.

Inicio

Escribir(‘ Ingrese total de artículos’)

Leer(N)

Total 0

Para (I=1,I<= N,I=I+1)

Escribir(‘ Ingrese valor del artículo’)

Leer(Valor)

Escribir(‘ Ingrese total de unidades a comprar’)

Leer(Unidades)

Total Total + (Valor * Unidades)

Fin Para

Escribir( ‘ El total a pagar es:’, Total)

Fin

3. Calcule e imprima el valor de ab, b entero.

Inicio

Escribir(‘ Ingrese base y exponente entero’)

Leer(a,b)

P 1

Si ( b < 0) entonces

b -b

a 1/a

Fin si

Para (I=1,I<= b,I=I+1)

P P*a

Fin Para

Escribir(a,’ elevado a’, b,’ es :’, P)

Page 41: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

41

Fin

Ejercicio: Codifique a lenguaje C los ejercicios 1, 2 y 3.

4. Programa que imprime cada carácter con su correspondiente código ascii.

main()

{

int i;

for (i=1;i<=255;i++)

{

printf("%c,%d\n", (char)(i),i);

}

getch();

}

TEMA 2: EJERCICIOS PROPUESTOS.

Diseñe un algoritmo en seudolenguaje y su correspondiente programa en lenguaje C para cada uno de

los siguientes problemas.

1. Imprimir los números enteros de 0 a 100.

2. Imprimir los números enteros de 100 a 0.

3. Imprimir los números pares 0 a 100.

4. Imprimir la suma de los primeros 100 números naturales.

5. Imprimir los números impares hasta 100 y contarlos.

6. Imprimir los números impares desde 100 hasta 1 y calcular la suma.

7. Imprimir los números naturales desde 1 hasta un número ingresado por teclado.

8. Imprimir y contar los múltiplos de 3 desde 1 hasta 100.

9. Calcular la suma de los números impares entre 0 y 100.

10. Imprimir, contar y sumar los múltiplos de 2 hasta un número introducido por teclado.

11. Introducir un número por teclado menor de 500. Imprimir, sumar y contar los números que están

separados entre si 8 posiciones, desde ese número al 500.

12. Contar e imprimir los múltiplos de 5 que hay entre 1 y 500.

13. Calcular la suma de los cuadrados de los números pares entre 0 y 100.

14. Introducir un número por teclado menos de 100. Imprimir la suma de los cuadrados de los números

que están separados entre sí cuatro posiciones.

Page 42: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

42

15. Imprimir y contar los números que hay del 1 al 100, excepto los múltiplos de 5, entregar la suma de

los múltiplos de 5.

16. Introducir una serie de números. Sumar los múltiplos de 8, determinar cuál es el mayor y cuántos

números se han introducido.

17. Imprimir 10 veces la serie de números de 1 a 10.

18. Imprimir y contar los números que son múltiplos de 2 o 3 que hay entre 1 y 100.

19. Imprimir y contar los números que son múltiplos de 2 y 3 que hay entre 1 y 100.

20. Introducir tantos números como queramos. Decir sin son mayores o menores que un número que

previamente introducimos por teclado.

21. Imprimir, contar y sumar los múltiplos de 2 de la serie de números que hay entre dos números

ingresados por teclado, tal que el segundo sea mayor o igual al primero.

22. Dado un número ingresado por teclado imprimir su tabla de multiplicar.

23. Determinar la suma de N números.

24. Determinar el promedio de N números.

25. Determinar la multiplicación de dos números enteros mediante sumas sucesivas.

26. Determinar la división de dos números enteros mediante restas sucesivas.

27. Determinar el resto de la división entera entre dos números enteros, mediante restas sucesivas.

28. Determinar la cantidad de dígitos de un número entero positivo.

29. Contar las veces que se repite un dígito d cualquiera en un número entero positivo.

30. Determinar si un número N entero positivo es primo.

31. Determinar e imprimir los primeros N términos de la serie fibonacci.

32. Determinar e imprimir los primeros N términos primos de la serie fibonacci.

33. Calcular el factorial de un número entero positivo.

34. Invertir los dígitos de un número entero positivo.

35. Determinar si un número entero positivo es palíndromo.

36. Identificar si la suma de los dígitos de un número entero positivo es par o impar.

37. Se ingresan los datos de N personas, estos son nombre, edad, estado civil y no de cargas familiares.

Se pide determinar e imprimir: la edad promedio de las personas, la mayor y menor edad, cantidad de

solteros con cargas familiares y cantidad de casados con más de una carga familiar.

38. Simplificar la fracción N/M, con N y M enteros positivos.

Page 43: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

43

39. Determinar e imprimir el valor de la serie 1 + ½ + 1/3 + ¼ + 1/5 + ... + 1/N.

40. Determinar e imprimir el valor de la serie 1 + ½! + 1/3! + ¼! + 1/5! + ... + 1/N! .

41. Determinar si M es divisor de N mediante restas sucesivas.

42. Determinar e imprimir los valores de la función F(x) = x3 - x

2 + 1 para valores de x entre 1 y N

enteros.

43. Determinar e imprimir los valores de la serie :

x - x2/2! + x

3/3! - x

4/4! + x

5/5! - ... + x

N/N!

44. Calcule e imprima el valor de ab, a:real y b:entero.

45. Averigue mediante restas sucesivas si un número n es par o impar.

46. Imprima los N primeros números primos.

47. Imprima la suma de los N primeros números primos.

48. Determine todos los factores primos que componen un entero N.

49. Imprima un mensaje que indique la cantidad de dígitos de un número n es par o impar.

50. Determine los N primeros números perfectos.

51. Imprimir cada valor y obtener la suma de los N primeros términos de la serie:

1, 12, 123, 1234, . . .

52. Se ingresan N números desde el teclado, calcular e imprimir el promedio de los datos positivos, y el

promedio de los datos negativos (considere al cero como positivo).

53. Se ingresan N números enteros positivos, imprima aquellos cuyos últimos k dígitos sean divisibles

por 7.

54. Determinar e imprimir la suma de los dígitos pares de un número entero positivo N.

55. Valide el dígito verificador de un rut ingresado por teclado.

56. Se ingresan para N matrimonios los siguientes datos: años de matrimonio de cada pareja y edad de

cada integrante de la pareja. Se desea conocer el promedio de edad de todos los matrimonios con más

de X años de casados.

57. Se lee un número N entero positivo y se desea imprimir los dígitos pares de este.

Ejemplo: Si N= 1876543, se imprimen los dígitos 4, 6 y 8.

58. Se ingresan los datos de N pasajeros de un viaje en autobús con dirección al sur de Chile, por cada

pasajero se lee la información de: Número de asiento, destino y edad. Se pide crear un programa en

lenguaje C que determine e imprima:

a) La edad promedio de los pasajeros.

b) Número de pasajeros que viajan a Puerto Varas.

59. Calcular la suma de los términos de la serie ½ + 2/22 + 3/2

3 + . . . + n/2

n

Page 44: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

44

60. Determinar de cuántas maneras posibles un número entero positivo N puede descomponerse en la suma

de enteros positivos.

61. Dado el siguiente algoritmo en seudo lenguaje responda las preguntas para

N = 11339778. Realice la traza.

1.- Cuál es el valor de la variable P ?

2.- Cuál es el valor final para las variables S, I y N ?

4.- Cuál es la salida del algoritmo ?

Inicio

Escribir(’Ingrese valor’)

Leer(N)

S 0

I 2

Hacer

Si (I=8) entonces

I 2

Fin si

S S + ( ( N % 10 ) * I )

I I + 1

N N / 10

Mientras (N> 0)

P 11 - (S % 11)

Si (P>0) y (P<=9) entonces

Escribir(P)

Sino

Si (P = 10) entonces

Escribir(’K’)

Sino

Escribir(’0’)

Fin si

Finsi

Fin

62. Visualizar en pantalla una figura similar a la siguiente:

#

# #

# # #

# # # #

# # # # #

63. Multiplique dos números enteros mediante el algoritmo de la multiplicación rusa. Este algoritmo

multiplica por 2 el multiplicando y divide por 2 el multiplicador hasta que el multiplicador toma el valor 1.

Después suma todos los multiplicadores correspondientes a multiplicadores impares. Dicha suma es el

resultado del producto de los dos números.

Ejemplo: 37 * 12 = 444 ( multiplicador :37, multiplicando:12)

37 12

18 24

9 48

4 96

2 192

1 384

producto = 12 + 48 + 384 = 444

Page 45: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

45

UNIDAD 5: SUBPROGRAMAS.

CAPITULO 13: CONCEPTO DE SUBPROGRAMA.

TEMA 1: DEFINICIÓN.

Un subprograma es una parte de un programa que ejecuta una tarea específica, incluida dentro de la

más general que realiza este último.

TEMA 2: Relación con el programa principal.

Cada vez que se necesita un subprograma, se le llama desde algún punto del programa principal, y el

control es transferido al subprograma. Cuando termina la ejecución del subprograma, el control vuelve al

punto del programa principal desde el que se efectúo la llamada.

Un mismo subprograma puede ser llamado desde distintos puntos del programa principal, un ejemplo

de esto son las pantallas de presentación de menús.

Un subprograma puede también ser llamado desde otro subprograma. En este caso el subprograma

llamador se comporta como el programa principal de la situación descrita anteriormente.

Un subprograma puede también llamarse a sí mismo, lo que se conoce como recursión.

TEMA 2: FUNCIONES EN C

En el contexto de C se entenderá como subprograma una función.

Las funciones en C responden a las mismas características de un subprograma. Se utilizan para dar a los

programas una estructura jerárquica.

Una función puede o no devolver (retornar) un valor de tipo simple (entero, real, carácter)

alfanumérico.

En la función se debe indicar el tipo de dato que devuelve.

TEMA 3: ESTRUCTURA GENERAL DE UN PROGRAMA EN C,CON FUNCIONES.

Librerias

Definciones de variables y constantes globales

funciones

Main()

{

Definciones de variables y constantes locales

Instrucciones locales

Llamada a las funciones

}

Page 46: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

46

TEMA 4:TIPOS DE VARIABLES.

La posibilidad de cada función declare sus variables genera dos tipos de ellas: las globales y las

locales.

a) Variables locales: Son aquellas que se declaran dentro de una función y tienen las característica de

existir sólo dentro de ella, durante su ejecución.

b) Variables globales: Son aquellas variables que tienen validez en todo el programa y sus funciones

salvo que en uno de estos últimos exista una variables local con el mismo nombre.

TEMA 5: ESTRUCTURA DE UNA FUNCIÓN.

Formato:

[Tipo devuelto] nombre ([parámetros])

{

definición de variables

instrucciones

[return(valor)]

}

Una función si no lleva tipo devuelto no debe llevar return.

Invocación: Una función es tratada como un valor, así que puede ser invocada como componente de una

expresión, en una asignación a una variable o en una sentencia de salida.

Para llamar a la función se debe tener en cuenta lo siguiente:

a) Si la función no tiene tipo devuelto:

Nombrefunción(pérámetros);

b) Si la función tiene tipo devuelto:

Variable=nombrefunción(parámetros);

La variable debe ser del mismo tipo que el tipo devuelto

TEMA 6: PARAMETROS.

Cuando se necesita que una función maneje datos creados en alguna zona del programa principal, o

que los datos generados en una función deban utilizarse en el resto del programa, será necesario recurrir a los

parámetros.

a) Parámetros: Son canales de comunicación para pasar datos entre programas y funciones en ambos

sentidos. Los parámetros van asociados a variables, constantes y expresiones.

Los parámetros deben coincidir en tipo, número y orden, tanto en la declaración de la función, como

en su llamada.

b) Parámetro por valor: Se identifica en la cabeza de la función, en paréntesis a continuación del

identificador del subprograma, indicando las lista de ellos separados por una coma (,) y su tipo.

Puede ser invocado por una expresión, una constante o variable. Las modificaciones que sufra este

tipo de parámetro sólo son válidas dentro de la función en que se declaró. Estos parámetros de

utilizan para recibir datos de entrada (parámetros de entrada) desde otro lugar del programa, del tal

manera que si éstos datos se modifican mantienen su valor original a la salida de la función.

c) Parámetro Variable o por referencia. Se reconoce en la cabecera de la función porque le antecede al

identificador del parámetro un * . Puede ser invocado sólo por una variables. Las modificaciones que

Page 47: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

47

sufra este tipo de parámetro serán válidas para el resto del programa, es decir modifica su valor

inicial al final de la ejecución de la función. Estos parámetros se utilizan para generan resultados en

la función y enviarlos al exterior sin usar return. Se utilizan como parámetros de salida y de

entrada/salida. En la llamada de la función se debe mandar el parámetro antecedido por un &.

CAPITULO 14: TIPOS DE FUNCIONES

TEMA 1: FUNCIONES SIN TIPO DEVUELTO.

Estructura para este caso:

Void NombreFunción([parámetros])

{

definición de variables

instrucciones

}

Ejemplo 1 :

void Imprime_Pares(int num)

{

int i;

for (i=1;i<=num/2;i++)

printf("%d",2* i);

}

void Imprime_Pares(int);

main()

{

int n;

printf("Ingrese numero entero positivo \n");

scanf("%d",&n);

Imprime_Pares(n);

getch();

}

Ejemplo 2:

void Imprime_Tabla(int num)

{

int i;

for (i=1;i<=12;i++)

printf("%d * %d = %d",num,i,num*i);

}

void Imprime_Tabla(int);

main()

{

int n;

printf("Ingrese numero entero positivo \n");

scanf("%d",&n);

Imprime_Tabla(n);

getch();

}

Page 48: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

48

TEMA 2: FUNCIONES CON TIPO DEVUELTO.

Estructura para este caso:

tipo NombreFunción([parámetros])

{

definición de variables

instrucciones

return(expresion)

}

Ejemplo 1:

int minimo(int, int);

main( )

{ int a,b,c;

printf(“Ingrese dos números enteros”);

scanf(“%d%d”,&a,&b);

c= minimo(a,b); /*Invocación a la función Minimo asignando el valor a C*/

printf(“El menor entre %d y %d es %d”,a,b,c);

}

int minimo(int x, int y)

/*Función que retorna el menor de dos números enteros*/

{

int m;

If (x<y)

m= x;

Else

m= y;

Return(m);

}

Ejemplo 2:

float potencial(float,float);

main()

{

float a,b;

printf("Ingrese base positiva y exponente \n");

scanf("%f",&a);

scanf("%f",&b);

printf("%5.1f elevado %5.1f es: %5.1f ",a,b,potenciak(a,b));

getch();

}

float potencial(float a,float b)

{

return pow(a,b);

}

Page 49: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

49

TEMA 3: FUNCIONES. Ejercicios resueltos.

1. Se recibe un número entero positivo n, y se retorna en x el número n invertido.

int Invierte(int n)

{

int x=0;

do

{

x=((x*10)+(n%10));

n=n/10;

}

while(n>0);

return(x);

}

2. Determinar el área y el perímetro de un círculo de radio R.

#define pi 3.141516

float a,p; /*variables globales*/

void circulo(float r)

{

a= pi*r*r;

p= 2*pi*r;

}

3. Determinar la suma de los dígitos pares de N entero positivo, y el producto de los dígitos impares.

Int sum,prod; /*variables globales*/

void prodsum(int n)

{

int d;

sum=0;

prod=1;

do

{

d= (n%10);

if ((d%2)==0)

sum=sum+d;

else

prod=prod*d;

n=n / 10;

}

while(n!=0);

}

Page 50: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

50

4. Se ingresan los datos de N personas, la información por persona es edad y nombre. Se pide determinar el

nombre de la persona con mayor edad y el de menor edad, como también el promedio de las edades.

#include <string. h>

Typedef

Char cadena[30];

float Est(int N,cadena NMax,cadena NMin)

{

int i,Edad,Min,Max;

cadena Nom;

float Prom=0;

Min=200;

Max=-1;

for(i=1;i<=N;i++)

{

printf("Ingrese Nombre %d",i);

fflush(stdin);

scanf("%s",Nom);

printf("Ingrese Edad %d",i);

scanf("%d",&Edad);

if(Edad> Max)

{

Max=Edad;

Strcpy(Nmax,Nom);

}

else

if (Edad<Min)

{

Min=Edad;

Strcpy(Nmin,Nom);

}

Prom=Prom+Edad;

}

return (Prom/N);

}

5. Se recibe un número x entero positivo, y se retorna la cantidad de dígitos de x.

int sumadig(int x)

{

int s=0;

do

{

s=s+1;

x=x/10;

}

while(x!=0);

return (s);

}

Page 51: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

51

6. Determinar cuántos lanzamientos de una moneda ocurren hasta que aparezcan tres caras consecutivas.

#include <stdlib. h>

Int caras(void)

/* 0 : Cara, 1: Sello*/

{

int T,M,C;

Randomize();

T=0;

Do

{

T++;

M=Rand()%2;

C=0;

Printf(“%d”,M); /*Se imprime el lanzamiento*/

While ((M=0) && (C<3))

{

C++;

M=Rand()%2;

T++;

Printf(“%d”,M);

}

}

While (C!=3);

Return(T-1);

}

7. Determinar el factorial de un número N entero positivo.

int fac(int n)

{

int f,i;

f=1;

for(i=2;i<=n;i++)

f=f*i;

return( f);

}

8. Determinar el e-nésimo término de la serie fibonacci: 1, 1, 2, 3, 5, 8, 13, .....

int fib(int n)

{ int f1=0,f2=1, f3;

if (n==1)

f3=0;

else

If (n==2)

f3=1;

else

for (i=3; i<=n; i++)

{

f3= f1 + f2;

f1= f2;

f2= f3;

}

return (f3);

}

Page 52: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

52

9. Ingreso de nota entre 1 y 7.

float validanota(void)

{

float nota;

do

{

printf("Ingrese nota entre 1 y 7 \n");

scanf("%f",&nota);

}

while ((nota < 1)||(nota > 7));

printf("Nota correcta");

return(nota);

}

10. Validación de la lectura de la variables resp.

#include <ctype. h>

char validaresp(void)

{

char resp;

do

{

printf("Desea seguir s/n \n");

fflush(stdin);

scanf("%c",&resp);

}

while((toupper(resp)!=’S’)&&(toupper(resp)!=’N’));

return(resp);

}

11. Validación de un número entero positivo.

#include <stdlib. h>

Typedef

Char cadena[8];

long validanum(void)

{

long n;

cadena s;

do

{

printf("Ingrese numero entero positivo \n");

fflush(stdin);

scanf("%s",&s);

n=atol(s);

}

while (n<0 );

return(n);

}

Page 53: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

53

TEMA 4: FUNCIONES. Ejercicios propuestos.

Desarrolle una función para cada caso.

1. Genere e imprima los elementos de la serie:

1, -1, ½, -1/3, ¼, -1/5,.......

2. Los números de las claves de dos cajas fuertes están mezcladas en un número entero llamado clave

maestra. Determine ambas claves, la primera clave se construye con los dígitos impares de la clave

maestra y la segunda con los pares. Ejemplo: Clave maestra = 12345, Clave1= 135, Clave2=24.

3. Se recibe como parámetro una cadena de caracteres. Se pide imprimir el primer carácter, luego los

dos primeros, luego los tres primeros y así sucesivamente hasta imprimir la cadena completa.

Ejemplo: Para la cadena ‘HOLA’, el procedimiento imprime

‘H’

‘HO’

‘HOL’

‘HOLA’

4. Mezcle ordenadamente dos números enteros A y B en un tercer número C que contenga el total de

dígitos de ambos números. A y B tienen sus dígitos ordenados ascendentemente de derecha a

izquierda, el número C debe quedar ordenado de igual forma.

Ejemplo: A = 7321, B = 87543 se obtiene C = 877543321

5. Determinar el mayor y menor elemento de N datos ingresados por teclado.

6. Escriba el operador BASEB, que recibe un número entero en base 10 e imprime su equivalente

número entero en una base base b (2..9).

7. Determinar el N-ésimo término de la serie fibonacci.

8. Cuente el número de dígitos que tiene un número N entero.

9. Escriba el operador BDIEZ, que recibe un número entero en base b y lo transforma a base diez. Puede

utilizar la función POT(a,b), que retorna a elevado a b.

10. Diseñe el operador DIGITO(N,K), que retorna el k-ésimo dígito de la derecha del entero positivo N.

11. Determine el factorial de un número N entero positivo.

12. Se recibe un valor entero positivo y se retorna el número de dígitos cinco (5) que posee.

13. Determinar la suma de los n primeros términos de la serie:

4 + x2/3 - x4/5 + x6/7 - x8/9..... evaluada en un valor x real.

14. Determinar cuántos dígitos distintos tiene un número entero positivo cualquiera.

Page 54: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

54

15. Se tiene la función mayor3(a,b,c), que retorna el mayor de tres enteros . Se pide crear la función

mayor5(a,b,c,d,e) que retorna el mayor de cinco números enteros, usando mayor3. No puede usar

sentencias selectivas ni iterativas.

16. Determine usando una función booleana si una palabra s es palíndroma.

17. Sumar los n primeros números enteros positivos.

18. Determinar si un número entero positivo es par utilizando restas sucesivas. No utilice los operadores /

y %

Page 55: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

55

UNIDAD 6: TIPO DE DATO CADENA.

CAPITULO 15: LENGUAJE C. Cadenas.

TEMA 1: DEFINICIÓN.

Una cadena o string es una lista o secuencia de caracteres que se tratan como una unidad. Las

expresiones se identifican por estar delimitadas entre comillas dobles. Los caracteres individuales en lenguaje

C tienen valores enteros, por lo tanto no es necesario su conversión a entero.

Ejemplo:

“Hola a todos”

“Buenos días”

“1028”

“- 542.75”

a) Longitud: La longitud de una cadena es el número de caracteres encerrados entre doble comillas.

b) Cadena nula o vacía. Una cadena se denomina nula si no tiene ningún carácter. Su representación es

‘\0’.

c) Cadena blanca. Contiene sólo caracteres blanco.

d) Representación de caracteres. Según código Ascii.

0 - 31 : Caracteres de control.

32 : Espacio en blanco.

33 - 47 : Símbolos.

48 - 57 : Dígitos.

58 - 64 : Símbolos.

65 - 90 : Letras mayúsculas.

91 - 96 : Símbolos.

97 - 122 : Letras minúsculas.

123 - 254 : Símbolos.

Page 56: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

56

TEMA 2: OPERACIONES CON CADENAS.

Concatenación: Consiste en añadir una cadena a otra. En lenguaje C se utiliza la función strcat. Para usar esta

función es necesario incluir la biblioteca <string.h>.

Ejemplo:

Strcat(“Hola”, “ a todos ”) = “Hola a todos ”

TEMA 3: COMPARACIÓN DE CADENAS.

Las cadenas de caracteres se comparan de acuerdo a sus códigos ASCII. Cuando se comparan dos

cadenas, éstas se comparan de acuerdo al valor numérico del código ASCII de sus caracteres de izquierda a

derecha.

Ejemplo:

1) “Antonio” < “Bartolomé”

2) “‘No” < “Noo”

3) “Marga” < “Margarita”

4) “AAA” < “AAAA”

5) “400” < “45”

6) “A” < “a”

Para comparar dos cadenas en lenguaje C se utiliza la función strcmp(s1,s2) que devuelve 0 si las cadenas son

idénticas, devuelve un valor menor que 0 si la primera cadena es menor que la segunda, y devuelve un valor

mayor a cero si la primera cadena es mayor que la segunda. Para utilizar esta función es necesario incluir la

biblioteca <string.h>

Entonces según el ejemplo:

1) Strcmp(“Antonio”, “Bartolomé”) < 0

2) Strcmp(“No”, “Noo”) <0

3) Strcmp(“Marga”, “Margarita”) < 0

4) Strcmp(“AAA”, “AAAA”)< 0

5) Strcmp(“400”, “45”) < 0

6) Strcmp(“A”, “a”) < 0

Page 57: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

57

TEMA 4: ALGUNOS OPERADORES DE CONVERSIÓN EN C.

Para utilizar estas funciones se necesita incluir la biblioteca <string.h>

Strlen(S): Proporciona la longitud de la cadena S. Esta función retorna un valor entero.

Strlwr(S): Convierte a minúsculas las letras de una cadena S.

Strupr(S): Convierte a mayúsculas las letras de una cadena S.

Strcpy(S1,S2): Copia la cadena s2 en s1.

Page 58: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

58

CAPITULO 16: TIPO DE DATO CADENA. APLICACIONES.

TEMA 1: TRATAMIENTO DE UNA CADENA EN C.

En lenguaje C una cadena se maneja como un arreglo de caracteres que termina con el carácter

‘\0’. Se tiene acceso a una cadena mediante un apuntador al primer carácter de la cadena. El valor de

una cadena es la dirección de su primer carácter.

Al declarar un arreglo de caracteres que contenga una cadena, el arreglo debe ser lo

suficientemente grande para almacenar la cadena y su carácter de terminación NULL. Si una cadena

resulta más larga que el arreglo de caracteres en la cual debe almacenarse, los caracteres que excedan

del final del arreglo sobreescribirán datos en memoria a continuación del mismo.

Los siguientes subprogramas utilizan las cadenas como una estructura de arreglo lineal, es decir que

cada carácter se ubica en una posición determinada de la cadena, de esta manera si S es la cadena S[0] es el

primer carácter de S, S[1] el segundo, y así sucesivamente hasta S[strlen(S)] que corresponde al último

carácter de S de izquierda a derecha.

Declaración de tipo de datos para una cadena de tamaño 200:

Typedef

Char cadena [200];

Luego se puede definir la variable S como:

Cadena S; /*entonces S puede almacenar hasta 199 caracteres */

Page 59: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

59

TEMA 2: EJERCICIOS RESUELTOS.

1. IZQ(cadena, n, CadIzq) : devuelve en CadIzq los n primeros caracteres de una expresión de cadena

contando desde la izquierda. Si n es mayor o igual a la longitud de la cadena se obtiene toda la cadena. Si

n es 0 devuelve la cadena nula.

#include <string. h>

Typedef

Char string[100];

void IZQ( string cadena,int n,string CadIzq)

{

int i=0;

do

{

CadIzq[i]=cadena[i];

i++;

while((i<strlen(cadena))&&(i<n));

cadIzq[i]=’\0’;

}

2. Separa(cadena,S1,S2): Devuelve dos cadenas S1 y S2 una con los caracteres de orden par de cadena y la

otra con los caracteres de orden impar.

#include <string. h>

Typedef

Char string[100];

void Separa(string cadena,string S1,string S2)

{

int i,j=0,k=0;

for(i=0;i<strlen(cadena);i++)

if (cadena[i]%2==0)

{

S1[j]=cadena[i];

J++;

}

else

{

S2[k]=cadena[i];

k++;

}

S1[j]=’\0’;

S2[k]=’\0’;

}

Page 60: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

60

3. Digitos(cadena): Determina si cadena contiene sólo caracteres dígitos. Retorna true si cumple la

condición y false en otro caso.

#include <string.h>

Typedef

Char string[100];

int Digitos(string cadena)

{

int i=0;

int R;

R=0;

Do

{

if ((cadena[i]<0)||(cadena[i]>9))

R=1;

else

i++;

}

while ((i<strlen(cadena))&& (R==0));

return(R);

}

4. Pali(Pal) : Función booleana que determina si la cadena Pal es palindrómica, es decir si se lee

exactamente igual de izquierda a derecha, como de derecha a izquierda.

#include <string. h>

Typedef

Char string[100];

int Pali(string Pal)

{

int i,f;

i=0;

f=strlen(Pal)-1;

do

{

i=i+1;

f:=f-1;

}

while ((pal[i]==pal[f])&&(i<f));

return (i>=f);

}

Page 61: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

61

TEMA 3: EJERCICIOS PROPUESTOS.

1. Min(cadena): Devuelve el número de letras minúsculas que contiene la cadena.

2. Der(cadena,n): Devuelve el número indicado de caracteres comenzando por la derecha. Si n es mayor

que la longitud de la expresión de cadena se devuelve la expresión. Si n es 0 se devuelve la cadena nula.

3. Suste(cadena_e,cadena_u): Sustituye todas las letras e de la cadena_e por letras u en la cadena_u.

4. Invierte(cadena,inversa): retorna en la cadena inversa de cadena.

5. Pos(cadena1,cadena2): Devuelve la posición de la cadena2 en la cadena1. Si no la encuentra devuelve

0, sino devuelve la posición del primer carácter de la cadena2 en la cadena1.

6. Mayus_Minus(cadena): Sustituye mayúsculas por minúsculas en la cadena.

7. Copiar(cadena1, inicio, n, cadena2): Compone la cadena2 con n caracteres de la cadena1 desde la

posición inicio. Si inicio es mayor que la longitud de cadena1 se retorna en cadena2 la cadena nula.

Controle final de cadena1.

Page 62: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

62

UNIDAD 6. TIPOS ESTRUCTURADOS ARREGLOS.

CAPITULO 17: TIPO DE DATO ARREGLO.

TEMA 1: DEFINICION.

Un arreglo es una colección finita de elementos homogéneos y ordenados, es decir es una estructura

formada por elementos del mismo tipo. Cada elemento es almacenado en una celda en el sentido gráfico y en

direcciones consecutivas de memoria, donde cada celda tiene asociado un índice, que al estar ordenados se

puede hablar de primer, i-ésimo o último elemento.

Un arreglo es un tipo de variable estructurada, es decir puede almacenar más de un dato a la vez a

diferencia de las variables simples.

TEMA 2: REPRESENTACIÓN.

Un arreglo se representa por el nombre de la variable. Un elemento del arreglo se representa por el

nombre de la variable, seguido del (de los) índice (es) encerrado (s) en paréntesis (en C paréntesis cuadrado),

donde cada índice representa la posición dentro del arreglo.

Ejemplo:

0 1 2 i n-2 n-1

A = d Z m . . . v . . . f a

En este caso: A[2] = m A[i] = v A[n-1]=a

Para los distintos tipos de arreglos:

a) Nombre_arreglo[índice] : Arreglo unidimensional (vector, lista).

b) Nombre_arreglo[índice][índice2] : Arreglo bidimensional (matriz, tabla de doble entrada).

c) Nombre_arreglo[índice1][índice2][índice3,.....] : Arreglo multidimensional.

Page 63: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

63

TEMA 3: ARREGLOS UNIDIMENSIONALES. Declarativa: Definición de vectores.

#define max <valor>; /*max es el máximo número de casillas para el arreglo*/

Typedef

<tipo base> elemento; /* es el tipo de datos que va a contener el arreglo*/

Typedef

elemento Vector [max]; /* tipo vector */

/*definición de variables de tipo vector*/

vector A1,. ., Aj, . . , An ;

Ejemplo:

#define max 100; /*max es el máximo número de casillas para el arreglo*/

Typedef

int elemento; /* es el tipo de datos que va a contener el arreglo*/

Typedef

elemento Vector [max]; /* tipo vector */

vector A1,. ., Aj, . . , An ;

/*variables de tipo vector de 100 casillas, numeradas desde la 0 hasta la 99 y que pueden almacenar hasta 100

enteros*/

TEMA 4: USO DE EXPRESIONES.

Todos los elementos de tipo base de un arreglo unidimensional (vector), pueden ser usados en

cualquier expresión compatible con su tipo.

Ejemplos:

1. suma= suma + a[i];

2. a[i]= 678;

3. a[10]=a[10]*f;

4. Existe=a[j]=e;

5. a[i]=a[b[1]];

6. scanf(“%d%d”,&a[i],&b[j]);

7. printf(“%3.4f”,a[k]);

Page 64: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

64

TEMA 5: ARREGLOS UNIDIMENSIONALES. Ejercicios resueltos.

Se usará la siguiente declaración de tipo de datos para los ejercicios resueltos.

Typedef

Int vector[100];

1. Ingresar los elementos a un vector A de tamaño N.

void Ingresa(vector A,int N)

{

int i;

for(i=0;i<N;i++)

{

printf("Ingrese elemento");

scanf("%d",&A[i]);

}

}

2. Imprimir los elementos de un vector V de tamaño N.

void ImpVec(vector V,int N)

{

int i;

for(i=0;i<n;i++)

printf("%d",V[i]);

}

3. Utilice un vector para calcular el e-nésimo término de la serie fibonacci.

int Fib(int N)

{

int A[50];

A[0]=1;

A[1]=1;

for(i=2;i<N;i++)

A[i]=A[i-1]+A[i-2];

return (A[N-1]);

}

4. Obtener el promedio de los elementos ubicados en las posiciones impares de un vector V de tamaño

N.

Page 65: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

65

float PosImp(vector V,int N)

{

int i,P,j=0;

i=0;

do

{

j++;

P=P+V[i];

i=i+2;

}

while(i<N);

return (P/j);

}

Page 66: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

66

.......

TEMA 6: ARREGLOS UNIDIMENSIONALES. Ejercicos Propuestos.

Escriba un subprograma para cada caso.

1. Imprimir los elementos de un vector.

2. Invertir los elementos de un vector.

3. Determinar la suma de los elementos de un vector.

4. Realice la función SUMAPRIM(A,N), que suma los elementos primos del vector A de largo N. Utilice

para ello la función PRIMO(M), que retorna 1 si M es primo y 0 en otro caso.

5. Determine el mayor y el menor elemento de un vector.

6. Escriba un subprograma PROMPAR(A, n, B), que retorna en el vector B, los promedios parciales de

los elementos del arreglo A de largo n. Por ejemplo:

A = 2 6 1 3 3

B=

7. Encontrar la posición de un elemento e en un vector V .

8. Contar en un vector los números iguales a x.

9. Determinar la cantidad de valores mayores que X, en un vector A de N elementos reales.

2 4 3 3 5 ........

Page 67: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

67

CAPITULO 18: ARREGLOS BIDIMENSIONALES.

TEMA 1:DECLARATIVA. Definición de matrices.

#define max1 <valo1>

#define max2<valor2>

Typedef

<tipo base > Elemento;

Typedef

Elemento Matriz [max1][max2] ;

matriz A1,. ., Aj, . . , An ;

Ejemplo:

#define max1 10; /*filas*/

#define max2 5; /*columnas*/

Typedef

float Elemento;

Typedef

Elemento matriz[max1][max2] ;

matriz A1,. ., Aj, . . , An ;

/*variables de tipo Matriz de 50 (10*5) casillas, filas numeradas desde 0 hasta 9*/

/* columnas numeradas desde 0 a 4 y que pueden almacenar hasta 50 reales*/

TEMA 2: USO DE EXPRESIONES.

Todos los elementos de tipo base de un arreglo bidimensional (vector), pueden ser usados en

cualquier expresión, indicado el nombre de la variable matriz seguido de la posición fila, posición columna en

paréntesis cuadrado.

Ejemplos:

1. suma= suma + a[i][,j];

2. a[i][ j ]= 1678;

3. a[1][0]=a[1,0]*f;

4. Existe=a[ j ][5]=e;

5. a[i][ j ]=a[b[1][,j], b[2][3] ];

6. scanf(“%f”,&a[i][k], &b[j][k]);

7. printf(“%4.5f”,a[k][i]);

Page 68: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

68

TEMA 3: ARREGLOS BIDIMENSIONALES. Ejercicios resueltos.

Para los ejercicios resueltos se usará la siguiente declarativa de tipo de datos.

Typedef

Int matriz[30][30]

1. Ingresar por filas los elementos a una matriz A de orden NxM.

Ingreso(matriz A,int N,int M)

{

int i,j;

for(i=0;i<N;i++)

for(j=0;j<M;j++)

scanf("%d",A[i][j]);

}

2. Determinar si un elemento e se encuentra en la fila i de una matriz A de orden NxM.

int buscar(matriz a,int e,int m,int i)

{

int j=0;

while ((j<m)&&(e!=a[i][j]))

{

j=j+1;

}

return (j<m);

}

3. Imprime por filas los elementos de una matriz X de orden NxN.

void ImpMatriz(matriz X,int N)

{

int i, j;

for (i=0;i<N;i++)

{

for (j=0;j<N;j++)

printf("%d",X[i][j]);

printf();

}

}

Page 69: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

69

TEMA 4: ARREGLOS BIDIMENSIONALES. Ejercicios propuestos.

Escriba un subprograma para cada caso.

1. Diseñe una función que indique si una matriz de orden NxN es simétrica. Una matriz es simétrica si se

cumple que A[i] [ j ] = A[ j ] [i] para todo i,j=1..N.

2 Dada una matriz A de orden nxm, realizar un subprograma que genere una matriz C de orden hx2, con

todas las posiciones ( i , j ) en que se encuentra un elemento x dado, si no lo encuentra retorne C=[ 0 0]).

Los índices de fila y columna deben quedar en la primera y segunda columna de C respectivamente. Por

ejemplo:

4 7 5 1 1

A = 3 4 4 C = 2 2

2 3

X = 4

3. Escriba un subprograma que determine si A y B dos matrices de NxM son una espejo de la otra.

4. Diseñe una función que determine el elemento más cercano al promedio de una matriz M.

5. Determinar si una matriz cuadrada M es diagonal dominante. Una matriz es diagonal dominante si se

n

cumple que: fila i abs(A[ i] [j]) < abs(A[i] [ i]) con i j.

i=1

6. Sumar los elementos de la triangular superior de una matriz cuadrada M, sin incluir la diagonal principal.

7. Encontrar el elemento mayor de la fila i de una matriz M.

8. Dada una matriz M, en que sus elementos son pares ordenados de la forma: (x, y).

a) Obtener el par de mayor y menor promedio.

b) Generar un par (x1, y1), en que x1 corresponde a la suma de todos los x, y la suma de todos los y en

y1.

c) Almacenar en un vector todos los x mayores de cada fila, y en otro vector los elementos y

menores de cada columna.

M =

9. Dada una matriz de orden N, determine el cuociente entre la suma de los elementos de la diagonal

principal y la suma de los elementos de la diagonal secundaria.

1 2 3 4

4

0 1

3 1 1 0 -1 4

Page 70: UNIDAD 1 : INTRODUCCIÓN. 1.1 CONCEPTOS ......Hardware y Software. 1. INFORMÁTICA: Definición 1: Ciencia encargada del estudio y desarrollo de crear máquinas, y métodos para transmitir

Laura Setti Duque

70

10. Diseñe un subprograma que permita buscar y contar la cantidad de veces que se encontró un elemento e,

en una columna j de una matriz A de orden NxM.

11. Se pide crear un operador que determine si un elemento e se encuentra en la diagonal secundaria de una

matriz A de orden N. Para ello utilice los operadores PosFila(A,N,M,e) y PosColumna(A,N,M,e), el

primero retorna la fila en que se encuentra el elemento e, y el segundo la posición columna en que se

ubica e, en la matriz A de orden NxM.

12.

12. Dada una matriz A de orden NxM que contiene caracteres. Cree un vector V que contenga los caracteres

de A y agregue después de cada carácter vocal una casilla con una letra p y otra casilla con dicha vocal.

Confeccione un subprograma que reciba la matriz A, retorne el vector V y la cantidad de elementos de

V.

Ejemplo:

Matriz A

A L A

R M A

Vector V resultante

A P A L A P A R M A P A

13. Se tiene almacenada en una matriz llamada Nac el número de nacimientos mensuales (1..12) de la

última década (1987 - 1997), donde cada fila i almacena la información de nacimiento durante un año.

Es decir Nac[i,j] representa la cantidad de nacimientos en el mes j del año i.

Se pide:

a) Cree una función que retorne el año en que hubo más nacimientos.

b) Diseñar un operador que determine en que mes del año i hubo menos nacimientos.

c) Cree una función que determine si fue febrero el mes con más alto promedio de nacimientos

en la última década. Retorne True si cumple febrero la condición y false en caso contrario.

14. Cree un subprograma que reciba una matriz A de orden N que contiene en cada casilla un carácter, y

retorne un vector V con los elementos de A, en el siguiente orden: primero los elementos de la

diagonal principal de A, luego los de la diagonal secundaria, y a continuación el resto de los

elementos. El vector no debe contener dos veces el dato de una casilla. 1

1 Laura Setti Duque