09.12.2017 Views

proyecto final

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

PROYECTO FINAL<br />

DE PROGRAMACIÓN I<br />

PRESENTADO<br />

POR:<br />

LORENA<br />

BARRIOS<br />

MORALES<br />

LICENCIATURA<br />

EN<br />

INFORMÁTICA<br />

CON ÉNFASIS<br />

EN<br />

TELECOMUNI-<br />

CACIONES<br />

CÉDULA: 8-<br />

734-1221<br />

INF 0117<br />

PROFESORA:<br />

CARMEN<br />

ROVIRA<br />

2


INTRODUCCIÓN<br />

Este es mi portafolio digital que es un compendio de todos los conocimientos de<br />

programación I que hemos adquirido en este cuatrimestre. Este tiene 12 capítulos de<br />

diferentes contenidos, en este portafolio he incluido varias herramientas como lo son los<br />

mapas conceptuales, videos, diapositivas, prácticas en Dev++, línea del tiempo,<br />

documentos PDF.<br />

Los temas van desde la introducción a las computadoras, tipos de lenguajes de<br />

programación, introducción del C, los operadores y expresiones, entrada y salida de<br />

datos, los punteros, preparación de un programa, las funciones en programación, las<br />

diferentes instrucciones de control, archivo de datos, estructuras y uniones.<br />

Este trabajo <strong>final</strong> me ha permitido investigar los temas que en clase se<br />

mencionaron y que no me habían quedado claros por falta de tiempo.<br />

Espero sea de su agrado, y que además de aprender obtenga una alta calificación.<br />

3


CONTENIDO<br />

INTRODUCCIÓN<br />

1. Conceptos básicos<br />

1.1.1. Introducción a las computadoras<br />

1.1.2. Características de las computadoras<br />

1.1.3. Modos de operación<br />

1.1.4. Tipos de lenguajes de programación<br />

2. Introducción al C<br />

2.1. Algunos programas sencillos en C<br />

2.2. Características deseables de un programa<br />

2.3. Conceptos básicos de C<br />

2.4. El conjunto de caracteres de C<br />

2.5. Identificadores y palabras reservadas<br />

2.6. Tipos de datos<br />

2.7. Constantes<br />

2.8. Variables y arrays<br />

2.9. Declaraciones<br />

2.10. Expresiones<br />

2.11. Instrucciones<br />

2.12. Constantes simbólicas<br />

3. Operadores y expresiones<br />

3.1.1. Operadores aritméticos<br />

3.1.2. Operadores unarios<br />

3.1.3. Operadores relacionales y lógicos<br />

3.1.4. Operadores de asignación<br />

3.1.5. El operador condicional<br />

3.1.6. Funciones de biblioteca<br />

4


4. Entrada y salida de datos<br />

4.1 Introducción<br />

4.2. Entrada de un carácter - La función getchar<br />

4.3. Salida de un carácter - La función putchar<br />

4.4. Introducción de datos - La función scanf<br />

4.5. Más sobre la función scanf<br />

4.6. Escritura de datos - La función printf<br />

4.7. Más sobre la función printf<br />

4.8. Las funciones gets y puts<br />

4.9. Programación interactiva (conversacional)<br />

5. Preparación y ejecución de un programa en C<br />

5.1. Planificación de un programa en C<br />

5.2. Escritura de un programa en C<br />

5.3. Introducción de un programa en la computadora<br />

5.4. Compilación y ejecución de un programa<br />

5.5. Mensajes de error<br />

5.6. Técnicas de depuración<br />

6. Instrucciones de control<br />

6.1. Introducción<br />

6.2. Ejecución condicional: La instrucción if - else<br />

6.3. Bucles: la instrucción while<br />

6.4. Más sobre bucles: la instrucción do - while<br />

5


6.5. Más aún sobre bucles: la instrucción for<br />

6.6. Estructuras de control anidadas<br />

6.7. La instrucción switch<br />

6.8. La instrucción break<br />

6.9. La instrucción continue<br />

6.10. El operador coma<br />

6.11. La instrucción gota<br />

7. Funciones<br />

7.1. Introducción<br />

7.2. Definición de una función<br />

7.3. Acceso a una función<br />

7.4. Prototipos de funciones<br />

7.5. Paso de argumentos a una función<br />

7.6. Recursividad<br />

8. Estructura de un programa<br />

8.1. Tipos de almacenamiento<br />

8.2. Variables automáticas<br />

8.3. Variables externas (globales)<br />

8.4. Variables estáticas<br />

8.5. Programas de varios archivos<br />

8.6. Más sobre funciones de biblioteca<br />

9. Arrays<br />

6


9.1. Definición de un array<br />

9.2. Procesamiento de un array<br />

9.3. Paso de arrays a funciones<br />

9.4. Arrays multidimensionales<br />

9.5. Arrays y cadenas de caracteres<br />

10. Punteros<br />

10.1. Conceptos básicos<br />

10.2. Declaración de punteros<br />

10.3. Paso de punteros a una función<br />

10A. Punteros y arrays unidimensionales.<br />

10.5. Asignación dinámica de memoria<br />

10.6. Operaciones con punteros<br />

10.7. Punteros y arrays mu1tidimensiona1es<br />

10.8. Arrays de punteros<br />

10.9. Paso de funciones a otras funciones<br />

10.10. Más sobre declaraciones de punteros<br />

11. Estructuras y uniones<br />

11.1. Definición de una estructura<br />

11.2. Procesamiento de una estructura<br />

11.3. Tipos de datos definidos por el usuario (typedef)<br />

11.4. Estructuras y punteros<br />

11.5. Paso de estructuras a una función<br />

7


11.6. Estructuras autorreferenciadoras<br />

11.7. Uniones<br />

12. Archivos de datos<br />

12.1. Apertura y cierre de un archivo<br />

12.2. Creación de un archivo<br />

12.3. Procesamiento de un archivo<br />

12.4. Archivos sin formato<br />

8


9


GENERALIDADES DE LAS COMPUTADORAS<br />

10


EVOLUCIÓN DE LA COMPUTADORA TANTO DEL HADWARE<br />

Y SOFWARE<br />

11


MAPA CONCEPTUAL DE LAS GENERACIONES DE LAS<br />

COMPUTADORAS<br />

12


MAPA CONCEPTUAL DE LENGUAJES DE PROGRAMACIÓN<br />

13


CAPÍTULO 2<br />

INTRODUCCIÓN AL C<br />

14


Tema 2--<br />

Introducción a la programación en C<br />

EL CONJUNTO DE CARACTERES DE C<br />

Para formar los elementos básicos del programa (constantes, variables, operadores,<br />

expresiones, etc.), C utiliza como bloques de construcción las letras mayúsculas de la A a la<br />

z, las minúscula de la a la z, los dígitos del O al 9 y ciertos caracteres especiales. Se presenta<br />

continuación una lista de estos caracteres especiales:<br />

+<br />

<<br />

? ><br />

* / "<br />

= % & # \ I ] { } (espacio en blanco)<br />

La mayoría de las versiones del lenguaje también permiten que otros caracteres, como@ y<br />

$, se incluyan en cadenas de caracteres y comentarios. C utiliza ciertas combinaciones de<br />

estos caracteres, como \b, \n y \ t, para representar elementos especiales como el retroceso<br />

de un espacio, nueva línea y un tabulador, respectivamente. Estas combinaciones de<br />

caracteres se conocen como secuencias de escape. Trataremos las secuencias de escape en<br />

la sección 2.4. Por ahora nos limitaremos a decir que cada secuencia de escape representa<br />

un solo carácter, aun cuando se escriba con dos o más caracteres.<br />

15


IDENTIFICADORES Y PALABRAS RESERVADAS<br />

Los identificadores son nombres que se les da a varios elementos de un programa, como<br />

variables, funciones y formaciones. Un identificador está formado por letras y dígitos, en<br />

cualquier orden, excepto el primer carácter, que debe ser una letra. Se pueden utilizar<br />

mayúsculas y minúsculas, aunque es costumbre utilizar minúsculas para la mayoría de los<br />

identificadores. No se pueden intercambiar mayúsculas y minúsculas (esto es, una letra<br />

mayúscula no es equivalente a la correspondiente minúscula.) El carácter de subrayado L)<br />

se puede incluir también, y es considerado como una letra. Se suele utilizar este carácter en<br />

medio de los identificadores. Un identificador también puede comenzar con un carácter de<br />

subrayado, aunque en la práctica no se suele hacer.<br />

EJEMPLO 2.1. Los siguientes nombres son identificadores válidos.<br />

x nombres<br />

y12 area<br />

_temperatura TABLA<br />

Los siguientes nombres no son identificadores válidos por las razones señaladas.<br />

16


4num "XII orden-no indicador error<br />

el primer carácter debe ser una letra caracteres ilegales (n) carácter ilegal (-) carácter ilegal<br />

(espacio en blanco)<br />

NO hay límite para la longitud de los identificadores. Algunas implementaciones de C<br />

reconocen sólo los ocho primeros caracteres, aunque la mayoría de ellas reconocen más<br />

(típicamente, 31 caracteres). El resto de los caracteres son utilizados para la comodidad del<br />

programador.<br />

TIPOS DE DATOS<br />

C ofrece distintos tipos de datos, cada uno de los cuales se puede encontrar representado<br />

de forma diferente en la memoria de la computadora. A continuación se presenta una lista<br />

de los tipos de datos básicos. También se dan los requerimientos de memoria típicos. (El<br />

requerimiento de memoria para cada tipo de datos numéricos determinará el rango<br />

permisible de valores para ese tipo de datos. Hay que señalar que las necesidades de<br />

memoria para cada tipo de datos pueden variar de un compilador de C a otro.)<br />

Tipo de datos Descripción<br />

int Cantidad entera<br />

char Carácter<br />

float Número en coma flotante (un número que incluye punto decimal y/o exponente)<br />

Requisito típico de memoria<br />

2 bytes o una palabra (varía de un compilador a otro)<br />

1 byte<br />

1 palabra (4 bytes)<br />

CONSTANTES<br />

C tiene cuatro tipos básicos de constantes: constantes enteras, constantes en coma<br />

flotante, constantes de carácter y constantes de cadena de caracteres (hay también<br />

constantes enumeradas, que se tratan en la sección 14.1). Es más, hay distintas ciases de<br />

constantes enteras y en coma flotante, como se discute a continuación. Las constantes<br />

enteras y en coma flotante representan números. Se las denomina, en general, constantes<br />

de tipo numérico. Las siguientes reglas se pueden aplicar a todas las constantes numéricas.<br />

l. No se pueden incluir comas ni espacios en blanco en la constante. 2. Si se desea, la<br />

constante puede ir precedida de un signo menos (-). (Realmente, el signo menos es un<br />

operador que cambia el signo de una constante positiva, aunque se puede ver como parte<br />

de la constante misma.) 3. El valor de una constante no puede exceder un límite máximo y<br />

17


un mínimo especificados. Para cada tipo de constante, estos límites varían de un compilador<br />

de C a otro.<br />

Veamos cada tipo de constante individualmente.<br />

Constantes enteras<br />

Una constante entera es un número con un valor entero, consistente en una secuencia de<br />

dígitos. Las constantes enteras se pueden escribir en tres sistemas numéricos diferentes:<br />

decimal (base 10), octal (base 8) y hexadecimal (base 16). Normalmente, los programadores<br />

que se están iniciando no utilizarán más que las constantes enteras decimales. Una<br />

constante entera decimal puede ser cualquier combinación de dígitos tomados del conjunto<br />

de Oa 9. Si la constante tiene dos o más dígitos, el primero de ellos debe ser distinto de O.<br />

EJEMPLO 2.4. A continuación se muestran varias constantes enteras decimales.<br />

o 1 743 5280 32767 9999<br />

Las siguientes constantes enteras decimales están escritas incorrectamente por las razones<br />

que se indican. 12,245 36.0 10 20 30 123-45-6789 0900 carácter ilegal (. ). carácter ilegal (.<br />

). carácter ilegal(espacio en blanco);· carácter ilegal (~). el primer dígito no puede ser cero.<br />

2.5. VARIABLESY ARRAYS<br />

Una variable es un identificador que se l1tiliza para representar cierto tipo de información<br />

dentro de una determinada parte del programa. En su forma más sencilla, una variable es<br />

un identificador que se utiliza para representar un dato individual; es decir, una cantidad<br />

numérica o una constante de carácter. En alguna parte del programa se asigna el dato a la<br />

variable. Este valor .se puede recuperar después en el programa con simplemente hacer<br />

referencia al nombre de la variable. A una variable se le pueden asignar diferentes valores<br />

en distintas partes del programa. De esta forma la información representada puede cambiar<br />

durante la ejecución del programa. Sin embargo, el tipo de datos asociado a la variable no<br />

puede cambiar.<br />

44 PROGRAMACIÓN EN C<br />

EJEMPLO 2.18. Un programa en e contiene las siguientes líneas:<br />

int a, b, c; char d;<br />

a = 3 ; b = 5 ; e = a + b; d = 'a' ;<br />

a = 4 ; b = 2 . , e = a - b; d = 'W' ;<br />

Las dos primeras líneas son declaraciones de tipo, en las cuales se establece que a, b y e son<br />

variables enteras y que d es una variable de tipo carácter. De esta forma a, b y e<br />

representarán sendas cantidades enteras y d representará un carácter. Estas declaraciones<br />

de tipo se mantienen para todo el programa (más sobre esto en la sección 2.6). Las<br />

18


siguientes cuatro líneas hacen lo siguiente: a a se le asigna la cantidad entera 3, a b se le<br />

asigna 5 yac se le asigna la suma de a + b (es decir 8). A d se le asigna el carácter 'a' . En la<br />

tercera línea de este grupo puede verse cómo se accede a los valores de las variables a y b<br />

simplemente escribiéndolas a la derecha del signo igual. Las últimas cuatro líneas cambian<br />

los valores asignados a las variables de la forma siguiente: la cantidad entera 4 es asignada<br />

a a, sustituyendo el anterior valor 3; después se asigna 2 a b, reemplazando al valor anterior,<br />

5; se le asigna a e la diferencia entre a y b (es decir, 2), reemplazando al anterior valor, 8.<br />

Finalmente, se le asigna a d el carácter 'W', sustituyendo al anterior carácter, 'a'.<br />

El array es otra clase de variable que se utiliza con frecuencia en C. Un array es un<br />

identificador que referencia una colección de datos con el mismo nombre. Los datos deben<br />

ser del mismo tipo (por ejemplo, todos enteros, todos caracteres, etc.). Cada uno de estos<br />

datos es representado por su elemento del array correspondiente (por ejemplo, el primer<br />

dato es representado por el primer elemento del array, etc.). Los elementos individuales<br />

del array se distinguen unos de otros por el valor que se le asigna al índice.<br />

2.6. DECLARACIONES<br />

Tema 3<br />

Declaraciones<br />

Una declaración asocia un tipo de datos especificado a un grupo de variables. Se deben<br />

declarar todas las variables antes de que aparezcan en las instrucciones ejecutables. Una<br />

declaración consta de untipo de datos, seguido de uno o más nombres de variables,<br />

<strong>final</strong>izando con un punto y coma. (Los tipos de datos pennitidos se han discutido en la sec<br />

46 PROGRAMACIÓN EN C<br />

19


ción 2.3.) Cada variable array debe ir seguida de un par de corchetes, con un entero positivo<br />

dentro de éstos que especifica el tamaño (el número de elementos) del array.<br />

EJEMPLO 2.21. Un programa en e contiene las siguientes declaraciones de tipos:<br />

int a, b, e;<br />

float raizl, raiz2; char indicador, texto[80];<br />

De esta forma se declaran a, b y c como variables enteras, raizl y raiz2 son variables en coma<br />

flotante, indicador una variable de tipo carácter y texto un array de tipo carácter de 80<br />

elementos. Observe los corchetes que delimitan la especificación de tamaño de texto.<br />

También se podrían haber escrito las declaraciones anteriores como sigue:<br />

int a¡ int b; int c¡ float raizl; float raiz2; char indicador i char texto [80];<br />

INSTRUCCIONES<br />

Una instrucción hace que la computadora efectúe alguna acción. Hay tres tipo diferentes<br />

de instrucciones en C. Éstas son las instrucciones de expresión, instrucciones compuestas e<br />

instrucciones de control. Una instrucción de expresión consiste en una expresión seguida<br />

de un punto y coma. La ejecución de una instrucción de expresión hace que se evalúe la<br />

expresión.<br />

EJEMPLO 2.28. A continuación se muestran varias instrucciones de expresión.<br />

a ::::; 3; e = a + b; ++i¡ printf(UArea - %fllrarea)¡<br />

2.9. CONSTANTES SIMBÓLICAS<br />

Una constante simbólica es un nombre que sustituye una secuencia de caracteres. Los<br />

caracteres pueden representar una constante numérica, una constante de carácter o una<br />

constante de cadena de caracteres. Por tanto, una .constante simbólica permite que<br />

aparezca un nombre en lugar de una constante numérica, una constante de carácter o una<br />

constante de cadena de caracteres. Cuando se compila un programa, cada aparición de una<br />

constante simbólica es reemplazada por su correspondiente secuencia de caracteres. Las<br />

constantes simbólicas se suelen definir al comienzo del programa. Las constantes simbólicas<br />

pueden entonces aparecer después en el programa en lugar de las. constantes numéricas,<br />

las constantes de carácter, etc., que representan dichas constantes simbólicas. Se define<br />

una constante simbólica escribiendo<br />

#define nombre texto<br />

en donde nombre representa un nombre simbólico, que se suele escribir en letras<br />

mayúsculas, y texto representa)a secuencia de caracteres asociada al nombre simbólico.<br />

Adviértase que texto no acaba con un punto y coma, ya que la definición de una constante<br />

simbólica no es una verdadera instrucción de C. Es más, si texto acabase con un punto y<br />

20


coma, este punto y coma se trataría como si fuese parte de la constante numérica, la<br />

constante de carácter o la constante de cadena de caracteres que se sustituye por el<br />

nombre simbólico.<br />

PROGRAMACIÓN EN C<br />

EJEMPLO 2.31. Un programa en e contiene las siguientes definiciones de constantes<br />

simbólicas:<br />

#define INTERES 0.23<br />

#define PI 3.141593<br />

#define TRUE 1 #define FALSE O<br />

#define AMIGA 11 Susana 11<br />

Nótese que los nombres simbólicos están escritos en mayúsculas, para distinguirlos de los<br />

identificadores ordinarios de C. Adviértase también que las definiciones no acaban en punto<br />

y coma.<br />

21


22


23


CAPÍTULO 3<br />

OPERADORES Y<br />

EXPRESIONES<br />

24


Tema 4b<br />

Operadores<br />

25


26


27


CAPÍTULO 4<br />

ENTRADA Y SALIDA DE<br />

DATOS<br />

28


29


PRÁCTICA CON ENTRADA DE DATOS CON GETCHAR<br />

30


FUNCIÓN SCANF<br />

Mediante la función<br />

scanf podemos introducir<br />

cualquier combinación de<br />

valores numéricos, caracteres<br />

sueltos y cadenas de<br />

caracteres a través del<br />

teclado. En<br />

definitiva, scanf lee datos<br />

formateados de la entrada<br />

estandar. ... La función<br />

devolverá el número de datos<br />

que se han introducido<br />

correctamente.<br />

31


FUNCIÓN PRINTF<br />

Complementariamente a scanf,<br />

printf puede escribir cualquier<br />

combinación de valores<br />

numéricos, caracteres sueltos y<br />

cadenas de caracteres. La función<br />

printf transporta datos desde la<br />

memoria a la pantalla, a<br />

diferencia de scanf, que envía<br />

datos desde el teclado para<br />

almacenarlos en la memoria.<br />

32


PRÁCTICA CON USO DE IF Y PRINTF<br />

33


PRÁCTICA CON SENTENCIA IF<br />

34


35


FUNCIONES GETS Y PUTS<br />

Un par de funciones mas que se pueden utilizar<br />

en la entrada y salida de datos serie RS232 son<br />

las funciones gets() y puts().<br />

gets(string): esta función lee los caracteres que<br />

se introducen por el teclado hasta que encuentra<br />

un retorno de carro (tecla Enter).<br />

puts(string): esta función envía la cadena de<br />

texto contenida dentro de los paréntesis al pin<br />

que hayamos configurado en el parámetro XMIT<br />

de la directiva #use RS232, en el ejemplo de<br />

abajo el pin RD4. Una vez enviada la cadena<br />

añade un retorno SENTENCIA de carro. IF ELSE<br />

36


37


SENTENCIA IF….ELSE<br />

38


39


40


CAPÍTULO 6<br />

INSTRUCCIONES DE<br />

CONTROL<br />

41


PRÁCTICA CON USO DE While<br />

42


PRÁCTICA CON IF…ELSE<br />

43


44


Estructuras de Control<br />

Corina Flores Villarroel<br />

UMSS - Programa MEMI<br />

Corina Flores V<br />

Programa MEMI<br />

45


CAPÍTULO 7<br />

FUNCIONES<br />

46


Funciones en lenguaje C<br />

47


CAPÍTULO 8<br />

ESTRUCTURA DE UN<br />

PROGRAMA<br />

48


Tema 2<br />

Estructura de un programa en C<br />

49


CAPÍTULO 9<br />

ARRAYS<br />

50


Universidad tecnológica Oteima<br />

Trabajo de:<br />

Programación<br />

Tema<br />

“arreglos”<br />

Docente<br />

Carmen Rovira<br />

Integrantes<br />

Lorena Barrios<br />

Keiry Hernández<br />

Grupo LINF-0117<br />

Licenciatura en Informática con<br />

Énfasis en Redes y telecomunicación<br />

Tema 8b<br />

Búsqueda y ordenación en arreglos<br />

51


CAPÍTULO 10<br />

PUNTEROS<br />

52


NO TIENEN<br />

VALOR<br />

ESPECÍFICO<br />

VARIABLES<br />

PUNTEROS<br />

MANIPULAR<br />

COLAS<br />

MANIPULAR<br />

LISTAS<br />

ENLAZADAS<br />

MANIPULAR<br />

PILAS<br />

53


54


PRÁCTICA DE PUNTEROS<br />

55


56


CAPÍTULO 11<br />

ESTRUCTURA Y<br />

UNIONES<br />

57


1343616647.EstructyUniones1_14.pdf<br />

Ilustración 1ESTRUCTURA Y UNIONES<br />

58


CAPÍTULO 12<br />

ARCHIVOS DE DATOS<br />

59


ARCHIVO DE DATOS.pdf<br />

Tema 10b<br />

Manejo de archivos de caracteres en<br />

C<br />

60


INFOGRAFÍA<br />

UNIVERSIDAD TECNOLÓGICA NACIONAL - FACULTAD REGIONAL TUCUMÁN Ingeniería<br />

Electrónica – Guía de Estudios de Informática I – 1R2 - Año 2014 Tema: Estructuras y<br />

Uniones en C<br />

https://www.inf.utfsm.cl/~mcloud/iwi-131/diapositivas.html<br />

61

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!