38
Carne: 2016530068 Facilitador: Ing. Elsner.Gonzáles O. Ingeniería en Sistemas de Información. Lab. De Programación 1 Alumno: Axel Pérez M. Manual de Lenguaje C/C++: -Variables y constantes.-Tipos de datos y expresiones.-Estructura y arreglos.-Funciones de Biblioteca.- Entrada y Salida.-Sentencias de bifurcación. -Sentencias de Iteración -Funciones y parámetros Universidad centroamerican a

Manual de c c++

Embed Size (px)

Citation preview

Page 1: Manual de c c++

Alumno: Axel Pérez M.

Manual de Lenguaje C/C++:

-Variables y constantes.-Tipos de datos y expresiones.-Estructura y arreglos.-Funciones de Biblioteca.-Entrada y Salida.-Sentencias de bifurcación. -Sentencias de Iteración -Funciones y parámetros

Carne: 2016530068

Facilitador: Ing. Elsner.Gonzáles O.

Ingeniería en Sistemas de Información.

Lab. De Programación 1

Universidad centroamericana

Page 2: Manual de c c++

ContenidoMapa de Caracteres validos en Lenguaje C/C++..............................................2Variables y constantes........................................................................................2Constantes:.........................................................................................................3Tipo de datos en C:.............................................................................................4

Datos numéricos:.............................................................................................5Datos lógicos o booleanos:..............................................................................5Caracteres:......................................................................................................6Tipo void:.........................................................................................................6

Palabras Reservadas:.........................................................................................6Operador Sizeof:.................................................................................................7Bifurcaciones e iteraciones:...............................................................................7

Simple IF:........................................................................................................7doble IF-ELSE:................................................................................................8Múltiple Switch:............................................................................................10Cascada (if… else anidado):..........................................................................12While:............................................................................................................12Do while:.......................................................................................................13For:................................................................................................................14

Arreglos:...........................................................................................................15Arreglos Unidimensionales:..........................................................................15Arreglos Bidimensionales:.............................................................................16

Estructuras:......................................................................................................17Estructuras Simples:.....................................................................................18Estructuras anidadas:...................................................................................18

Entrada y Salida:..............................................................................................21Archivos de Datos:............................................................................................22

Función Para escribir en el archivo:.............................................................25Funciones:........................................................................................................27

1

Page 3: Manual de c c++

Mapa de Caracteres validos en Lenguaje C/C++

a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z.

A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z.

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

!  *  +  \  "  < 

 #  (  =  |  {  > 

 %  )  ~  ;  }  / 

 ^  _  [  :  ,  ? 

 &  -  ]  '  .  (Blanco) 

Variables y constantes

Son datos cuyo valor puede cambiar en la ejecución del programa. Para asignar valores a una variable en una gran variedad de lenguajes que incluye a c++, se usa el operador igual (=), seguido del valor que le daremos a la variable.

2

Page 4: Manual de c c++

Constantes:

Son datos cuyo valor no cambian en la ejecución del programa. Para declarar constantes se hace antes de declarar las librerías y después de las funciones.

Se puede usar las siguientes sintaxis:1) #define nombre_constante valor;2) Const tipo_de_dato nombre_constante valor;

3

Page 5: Manual de c c++

Tipo de datos en C:Los tipos de datos predefinidos son: numéricos, lógicos, caracteres y cadenas.

De ellos, tan sólo el tipo cadena es compuesto. Los demás son los tipos de datos simples considerados estándares. Esto quiere decir que la mayoría de los lenguajes de programación permiten trabajar con ellos. Por ejemplo, en lenguaje C es posible utilizar datos de tipo entero, real y carácter; sin embargo, los datos de tipo lógico sólo algunos compiladores los utilizan (por ejemplo, DEV-CPP). El tamaño y el rango de algunos tipos de datos pueden variar, dependiendo del compilador utilizado. Algunas arquitecturas implementan tipos de datos de tamaño como lo podemos observar en la tabla 2.1; sin embargo en DEV-CPP el tipo int y float tienen 32 bits, el char 8 bits, y el double usualmente es de 64 bits; bool se implementa con 8 bits. En lenguaje C se puede utilizar el operador sizeof para determinar el tamaño de algunos tipos de datos en bytes (lo veremos más adelante, cuando veamos el tema de operadores). Hay cinco datos básicos del lenguaje C: entero, coma flotante, coma flotante con doble precisión, carácter y sin valor.

Tipo Tamaño (Bytes) Rango

int (entero) 2 232,768 a 32,767

float (flotante) 4 3.4 E238 a 3.4 E138

double (flotante de doble precisión)

8 1.7 E2308 a 1.7 E1308

char (carácter) 1 2128 a 127

void 0 Sin valor.

4

Page 6: Manual de c c++

Datos numéricos:

Este tipo de datos se divide en enteros y reales. Tipos enteros. Son aquellos números que no tienen fracciones o decimales. Pueden ser negativos o positivos y el rango es de 232,768 a 32,767, aunque este rango puede variar de un compilador a otro (por ejemplo DEV-CPP). Se almacenan internamente en 2 o 4 bytes de memoria y pueden ser: unsigned int, short int, int, unsigned long o long (cada uno de estos datos puede almacenar un rango diferente de valores). Cuando el rango de los tipos básicos no es suficientemente grande para sus necesidades, se consideran tipos enteros largos. Ambos tipos long requieren 4 bytes de memoria (32 bits) de almacenamiento. Tipos reales o de coma flotante (float/double). Los tipos de datos flotantes contienen una coma (un punto) decimal, tal como 3.1416, pueden ser positivos y negativos formando el subconjunto de los números reales. Para representar números muy pequeños o muy grandes se emplea la notación de punto flotante, que es una generalización de la notación científica. En esta notación se considera al número real como mantisa y al exponente la potencia de 10 a la que se eleva este número, por ejemplo 340 5 3.4 3 102. C soporta tres formatos de coma flotante; el tipo float requiere 4 bytes de memoria, double 8 bytes, y long double 10 bytes.

Datos lógicos o booleanos:Hay lenguajes que sólo pueden tomar uno de dos valores: verdadero (true) o falso ( false ). En lenguaje C no existe el tipo lógico pero se puede implementar con un número entero, 0 es falso y cualquier número diferente

5

Page 7: Manual de c c++

de cero es verdadero. Algunos compiladores, como por ejemplo el DEV-C11 utilizan el bool.

Caracteres:El almacenamiento de caracteres en el interior de la computadora se hace en “palabras” de 8 bits (1 byte). Este tipo representa valores enteros en el rango 2128 a 1127. El lenguaje C proporciona el tipo unsigned char para representar valores de 0 a 255 y así representar todos los caracteres ASCII. Una característica de la parte estándar del conjunto de caracteres (los 128 primeros) es que contiene las letras mayúsculas, las minúsculas y los dígitos, y que cada uno de estos tres subconjuntos está ordenado en su forma natural, por lo que podemos manejar rangos de caracteres bien definidos. Así, la siguiente expresión booleana decide si el carácter contenido en la variable c es una letra minúscula (‘a’,5c && c,5‘z’). Los caracteres se almacenan internamente como números y por lo tanto se pueden realizar operaciones aritméticas con datos tipo char. Existe también el dato tipo cadena (compuesto), que es una sucesión de caracteres que se encuentran delimitados por comillas; la longitud de una cadena es el número de caracteres comprendidos entre los delimitadores “[long_cad]”.

Tipo void:Son datos vacíos o sin valor. Por ejemplo la función main no regresa valor alguno (nada): void main() o void main(void) porque tampoco tiene parámetros. Debemos tener cuidado, ya que esta característica es propia de algunos compiladores, pero por ejemplo en DEV-C11 el main tiene que regresar un entero (int), por el return 0, es decir int main(void) o int main(); pero las demás funciones predefinidas sí pueden utilizar el tipo void; esto lo analizaremos en detalle en el capítulo de funciones.

Palabras Reservadas:

 auto     extern    sizeof   break    float     static   case     for       struct   char     goto      switch 

6

Page 8: Manual de c c++

  const    if        typedef   continue int       union   default  long      unsigned   do       register  void   double   return    volatile   else     short     while   enum     signed 

Operador Sizeof:El operador Sizeof, sirve para ver el valor en memoria de un tipo de dato, ya sea entero, real, carácter, etc. Siempre que utilicemos el operador sizeof, mostrara en pantalla, el peso en bytes, del tipo de dato.

Bifurcaciones e iteraciones:

Simple IF: if (condición){ acciones..}

7

Page 9: Manual de c c++

Permite que el flujo del diagrama siga por un camino específico si se cumple una condición determinada. Si la condición se cumple, hace el procedimiento que está dentro de la estructura IF, sino se cumple, simplemente lo obvia.

doble IF-ELSE:

if (condición) { acciones...}Else{acciones...}

8

Page 10: Manual de c c++

Permite que el flujo del diagrama siga por un camino específico si se cumple una condición determinada. Si la condición se cumple, hace el procedimiento que está dentro de la estructura IF, sino se cumple, hará lo que está escrito en el ELSE (sino), Para entender mejor veamos un ejemplo:

Aquí podemos ver, que la condición se cumple, y muestra en pantalla lo que está dentro del IF, ahora veamos uno donde se cumpla el ELSE (sino):

9

Page 11: Manual de c c++

Podemos ver que, la primera condición no la cumple, por lo tanto ejecuta o muestra en pantalla, lo que está en el ELSE (sino).

Múltiple Switch:La estructura switch, funciona como un según sea, básicamente trata de que según la condición, el hará determinadas acciones, a continuación veremos un ejemplo más su sintaxis:

10

Page 12: Manual de c c++

Ahora el mismo ejemplo pero usando la opción de multiplicar que sería mostrando el otro resultado:

Porque el “break”, bueno el break funciona, para detener una acción, ya que si no ponemos el break, se imprimirá en pantalla todas las acciones siguientes de esa acción, aunque solo se haya seleccionado una.

11

Page 13: Manual de c c++

Cascada (if… else anidado):El concepto de anidamiento es muy utilizado en la programación y consiste en insertar (anidar) una estructura dentro de otra.La expresión “si anidados” se refiere a que podemos utilizar una sentencia si (if ) dentro de otra sentencia si (if ). Esto se emplea cuando se tienen que cumplir varias condiciones para poder ejecutar una acción.Uno de los aspectos más confusos de las sentencias si (if ) en el lenguaje de programación es el si(if ) anidado. Un si (if ) anidado es una sentencia si (if ) que es el objeto de otro si (if ) o si no (else). La razón por la que los si (if ) anidados son tan problemáticos es que resulta confuso saber qué else se asocia con qué si (if ).A continuación tendremos un ejemplo de si sino anidado, con su respectiva sintaxis:

While:Al ejecutarse la instrucción mientras (while), se evaluará la expresión booleana suministrada en los paréntesis (condición), y si su valor es verdadero (distinto de cero) se realizará el ciclo o bucle (una o varias instrucciones).

12

Page 14: Manual de c c++

Después, la condición es reevaluada y se procede de la misma manera. Cuando la condición se vuelve falsa (es decir, cero), en la siguiente evaluación se dará por terminado el ciclo mientras (while).Si la condición nunca se vuelve cero, el ciclo nunca terminará y, dependiendo de las instrucciones incluidas en el bucle, se generaría un error de ejecución que detendría el programa, o podría ser que el programa itere indefinidamente hasta ser detenido en forma manual.En esta estructura no se conoce necesariamente el número de veces que entrará al ciclo, ya que esto dependerá de la condición definida.

Do while: Esta estructura le permite al programador especificar que se repita una acción en tanto cierta condición sea verdadera; cuando ésta es falsa se sale del ciclo. La condición la revisa después del ciclo o bucle.Existen algoritmos y programas que requieren que por lo menos se ejecute el ciclo una vez y al final se revise la condición; en este caso utilizamos la estructura hacer_mientras. Es muy semejante al ciclo mientras, con la diferencia de que la condición se evalúa después de ejecutar el cuerpo del bucle. Tanto el ciclo mientras como el hacer_mientras pueden utilizarse cuando no se conoce de antemano el número de veces que se repetirá el ciclo.

13

Page 15: Manual de c c++

For:El desde (for) es la estructura repetitiva más utilizada y simple de manejar, ya que repite un conjunto de instrucciones un número determinado de veces. Una de sus aplicaciones principales son los arreglos. Dónde: expr_ini(s): expresión(es) de asignación que se utilizan para iniciar la(s) variable(s) de control del bucle. cond: es una expresión relacional o lógica (booleana) que determina cuándo finalizará el ciclo o bucle. La condición puede ser simple o compuesta (una o varias). inc(s): define cómo cambiará(n) la(s) variable(s) de control cada vez que se repite el bucle o ciclo.Las tres componentes pueden tener una o varias instrucciones, las cuales deben ir separadas por comas. La cond nos lleva al valor final.

14

Page 16: Manual de c c++

Arreglos: Un arreglo es un tipo de dato estructurado que almacena en una sola variable un conjunto limitado de datos o elementos del mismo tipo. Asimismo, es un conjunto de localidades de memoria contiguas donde la dirección más baja corresponde al primer elemento y la dirección más alta al último. Por sí mismo, el nombre del arreglo apunta a la dirección del primer elemento del arreglo. Los datos se llaman elementos del arreglo y su posición se numera consecutivamente: 1, 2, 3…n. Un arreglo en lenguaje C inicia en la posición cero, por lo tanto el i-ésimo elemento está en la posición i-1, es decir si el arreglo llamado a tiene n elementos, sus nombres son a [0], a [1],..., a [n-1]. El tipo de elementos almacenados en el arreglo puede ser cualquier tipo de dato.Para acceder a un elemento específico de un arreglo se usa un índice o subíndice.Un arreglo se caracteriza por:1. Ser una lista de un número finito de n elementos del mismo tipo.2. Almacenar los elementos del arreglo en memoria contigua.3. Tener un único nombre de variable que representa a todos los elementos y éstos se diferencian por un índice o subíndice.4. Acceder de manera directa o aleatoria a los elementos individuales del arreglo, por el nombre del arreglo y el índice o subíndice. Al igual que cualquier variable, los arreglos ocupan espacio en memoria. El programador especifica el tipo de dato y el total de elementos requerido por el arreglo de tal forma que la computadora pueda reservar la cantidad apropiada de memoria. Si el programador declara un arreglo de 100 elementos de tipo entero y sólo utiliza 10 espacios, desperdicia 90 en memoria para datos de tipo entero. Por lo contrario, si se declara un arreglo de 50 elementos y se quieren manejar 100, faltarán 50 espacios; sin embargo, no se presentará mensaje de error en el tiempo de compilación o ejecución, sino hasta que el sistema operativo se dé cuenta y por lo tanto surja la falla en el programa.

Arreglos Unidimensionales: Un arreglo unidimensional es un conjunto de n elementos del mismo tipo almacenados en memoria continua en un vector o lista. Para acceder a cada elemento del arreglo se requiere de un solo índice o subíndice, el cual representa la posición en la que se encuentra.

15

Page 17: Manual de c c++

Arreglos Bidimensionales: Un arreglo bidimensional es un conjunto de n elementos del mismo tipo almacenados en memoria contigua En una matriz o tabla. A diferencia de los arreglos unidimensionales que sólo requieren de un subíndice, los Arreglos bidimensionales para acceder a cada elemento del arreglo requieren de dos índices o subíndices Declarados en dos pares de corchetes, donde el primer corchete se refiere al tamaño de filas y el segundo al Tamaño de columnas.A continuación un ejemplo de arreglo bidimensional, int x [3] [5];X Columna 0 Columna 1 Columna 2 Columna 3 Columna 4Fila 0 [0][0] [0][1] [0][2] [0][3] [0][4]Fila 1 [1][0] [1][1] [1][2] [1][3] [1][4]Fila 2 [2][0] [2][1] [2][2] [2][3] [2][4]

16

Page 18: Manual de c c++

A estos arreglos antes mencionados, se les puede cambiar el tipo int a tipo char, o cualquier otro tipo de dato. /*Con la única condición que un arreglo de tipo char no acepta el “space/espacio”*/

Estructuras: Una estructura define una plantilla con la que posteriormente se puede declarar una variable. Una de las características de las estructuras es que hay que definirlas antes de usarlas en la declaración de variables. En la definición no se declara ni reservando memoria para ninguna variable, sólo se construye una estructura con determinadas características, para después poder declarar una variable de ese tipo. Aunque también se puede definir la estructura y declarar variables del tipo estructura definida, lo normal es declararlas fuera de la definición. Más adelante se muestra la forma de declarar una estructura, un tipo de dato y una variable tipo registro (struct).

Para crear una estructura primero comenzamos por definir el tipo de estructura, para ello se procede de manera parecida a la definición de una variable, con algunas modificaciones; en lenguaje C para definir una

17

Page 19: Manual de c c++

estructura, se utiliza la palabra reservada struct, normalmente seguida por un nombre y llave izquierda; después se define el tipo y nombre para uno o más campos. Se permite cualquier definición de tipo habitual, incluso punteros y estructuras. Cada definición de campo acabará con un punto y coma. Por último se coloca una llave derecha. Si hay campos del mismo tipo, se pueden declarar en la misma línea, separándolos por comas.

Estructuras Simples: La sintaxis de una estructura simple es:palabra reservada Struct, el nombre de la estructura, las variables. Ej:

struct persona{char nombre[20];int edad;…...} ;

Estructuras anidadas:Las estructuras anidadas, utilizan, la misma sintaxis, dela estructura simple, con la única diferencia, que para anidar, una estructura a otra se usa el struct_nombre de la estructura_nombre de la estructura a anidar.

18

Page 20: Manual de c c++

Ejemplo:

struct persona{char nombre [20];int edad;…};

struct datos{int teléfono;char domicilio [20];…struct persona pers;};

para mandar a llamar la estructura que contiene ambas estructuras se le asigna un nombre a esa estructura:

struc datos dats;

para poder acceder a una estructura se hace lo siguiente:

dats.pers.nombre ;

/*aquí llamamos a la estructura datos, que contiene a la estructura persona, que contiene las variables que requerimos.*/

19

Page 21: Manual de c c++

Cuando necesitamos almacenar, más de un dato, como en el ejemplo pasado solo hacemos a lo que llamamos arreglos de estructuras; en el ejemplo pasado, almacenábamos datos de una persona, pero si queremos hacer más de una, solo hacemos lo siguiente:Donde está el struct datos dats, le agregamos el arreglo a dats, para definir la cantidad de personas que se desea almacenar; quedaría así: struct datos dats [2]; … aquí almacenaremos datos de 2 personas, y para guardar los datos de la primera persona hacemos esto: cin>>dats[0].pers.nombre; … Aquí estamos diciendo que almacene ese dato en la posición 0, es decir para la primera persona.

20

Page 22: Manual de c c++

Entrada y Salida: El lenguaje C no tiene palabras reservadas para la e/s estándar del sistema (teclado y pantalla). Estas operaciones se realizan mediante funciones de biblioteca que encontramos en el archivo de cabecera stdio.h (standard input-output header). La e/s con formato se realiza por medio de las funciones scanf() y printf. Las f de scanf() y de printf() significan “con formato”.

La función scanf() se usa para la entrada y nos permite leer (introducir) datos desde el teclado y asignarlos a variables de C, de acuerdo con el formato especificado.Sintaxis: scanf (“cadena de control”, argumento1, argumento2 …);La cadena de control tiene uno o varios especificadores o códigos de formato que harán referencia al tipo de dato de los argumentos y, si se desea, su anchura. Los códigos estarán precedidos por el carácter % seguido de un carácter de conversión. La cadena de control deberá escribirse entre comillas (“ ”). La lista de argumentos serán las variables; scanf necesita saber la posición de memoria de la computadora en que se encuentra la variable para poder almacenar la información obtenida, para ello utilizaremos el símbolo ampersand (&), que colocaremos antes del nombre de cada variable. Por lo tanto, el & sirve para apuntar a la dirección de memoria de dicha variable.

Algunas conversiones para entrada y salida de datos:“%d”-> recibe/imprime un número “%s”-> recibe/imprime una cadena“%c”-> recibe/imprime un carácter“%u”-> recibe/imprime unsigned (sin signo) “%f”-> recibe/imprime un flotante (real o decimal)

Ejemplo: /*Lee e imprime un carácter*/char x;scanf (“%c”, &x); //Se captura un carácter y lo almacena en la variable x.printf(“%c”, x); //se imprime el valor de x, leído anteriormente.

De la misma forma hacemos con cualquier tipo de dato, según su formato.

21

Page 23: Manual de c c++

Secuencia de escape (salida):

\a Alerta

\b Espacio atrás

\f Salto de página

\n Salto de línea

\r Retorno de carro

\t Tabulación horizontal

\v Tabulación vertical

\\ Barra invertida

\’ Comilla simple

\” Comillas dobles

\ooo Visualiza un carácter cuyo código ASCII es OOO en octal

\xhhh Visualiza un carácter cuyo código ASCII es HHH en hexadecimal

Gets,Pust,Getch,Putch (Breve explicación):Para leer cadenas con espacios (tipo string), usamos la función gets(variable);y para imprimir dicha variable utilizamos puts(variable);ej:printf(“Ingrese su nombre”);char nombre[20];

22

Page 24: Manual de c c++

gets(nombre);//Se ingresa Axel Perez

Puts(nombre);//Se imprime Axel Perez con el espacio

Igualmente si solo leeremos un carácter, la sintaxis es la variable, ej: char a ;a=getch();Igualmente el imprimir esta variable utilizamos Putch(variable);

Archivos de Datos:En programación, llega un momento en que el usuario necesita guardar información en una de nuestras aplicaciones o sistemas, en este caso, aprenderemos a guardar en archivos de textos (.txt). Para crear un archivo se usa la palabra reservada FILE (Todo Mayúscula).

Nuestra primera instrucción que aprenderemos es: FILE *puntero_archivo;

Esta función indica a “puntero_archivo”, que es un apuntador al inicio de la estructura FILE (área del búfer).

Nuestra segunda instrucción es utilizando el fopen, (f=fichero).

puntero_archivo=fopen( nombre_Archivo, “ tipo_archivo”);

Permite abrir un archivo llamado nombre_archivo, y que puede ser de tipo .txt es decir de texto (Block de notas), o también .bat.

23

Page 25: Manual de c c++

Para cerrar el archivo anterior mente abierto, se usa la siguiente instrucción:

fclose(apuntador_archivo);

Para validar si el archivo, se pudo abrir usaremos un if…Else.

if (apuntador != NULL){proceso; /*Trabajo con el archivo*/fclose(apuntador_archivo);}else{printf(“No se pudo abrir el archivo”);}

24

Page 26: Manual de c c++

También podemos escribir en el fichero, y usarlo como almacenamiento, y se usa la siguiente función:fwrite (); Que recibe los siguientes parámetros:

Puntero a la matriz de elementos a ser escrito, convertido a un const void * . Tamaño en bytes de cada elemento que se escribe. Size_t es un tipo entero sin signo. Número de elementos, cada uno con un tamaño de tamaño bytes. Size_t es un tipo

entero sin signo. Puntero a un archivo objeto que especifica una secuencia de salida.

Función Para escribir en el archivo: Al aprender el uso de manejo de ficheros, nos servirá para poder aprender la lógica utlizada en lenguajes avanzados como Java, para poder almacenar datos.

En este caso utilizaremos el ya aprendido FILE *Puntero_Archivo para almacernar datos, utilizaremos la función Fwrite(), que recibe los siguientes parámetros:

Puntero a la matriz de elementos a ser escrito, convertido a un const void *.

Tamaño en bytes de cada elemento que se escribe. Size_t es un tipo entero sin signo.

25

Page 27: Manual de c c++

Número de elementos, cada uno con un tamaño de tamaño bytes. 

Size_t  es un tipo entero sin signo.

Puntero a un ARCHIVO objeto que especifica una secuencia de salida.

He aquí un ejemplo:

Y si buscamos el fichero creado…

26

Page 28: Manual de c c++

Si queremos mandar a llamar un dato almacenado en el fichero, utilizamos la función:

fread();que recibé los siguientes parámetros:

ptr

Puntero a un bloque de memoria con un tamaño de al menos (tamaño * COUNT) bytes, convertido a un void * .

tamañoEl tamaño, en bytes, de cada elemento para ser leído. Size_t es un tipo entero sin signo.

contarNúmero de elementos, cada uno con un tamaño de tamaño bytes. Size_t es un tipo entero sin signo.

corrientePuntero a un ARCHIVO objeto que especifica una secuencia de entrada.

Utilizando este mismo programa, mandaremos a llamar los datos ya antes almacenados:

Funciones: //Una función, es como decir Sub-proceso.

Un lema bastante conocido en el área de programación, más que un lema, es un refrán, y en parte es un método bastante efectivo, Hablo del famoso “Divide et impera” en latín, traducido al español castellano sería “Divide y

27

Page 29: Manual de c c++

vencerás”.

Un problema difícil es más sencillo al dividirlo en pequeñas partes y tratar de buscar la solución de cada una de ellas y así resolver todo el problema general; lo mismo sucede en programación, la mejor forma de elaborar y dar mantenimiento a un programa complejo es construirlo a partir de bloques menores o módulos, pues de esta manera es más fácil analizar, programar y darle mantenimiento a cada uno de ellos, que si estuviera todo el código en el programa principal. Dichos módulos se escriben solamente una vez, pero pueden ser llamados en diferentes puntos del programa principal o de cualquier otro módulo.Al método que plantea la solución de un problema principal partiendo de las soluciones de sus sub-problemas se le conoce como diseño descendente.1 Se denomina así ya que inicia en la parte superior con un problema general y el diseño específico de las soluciones de los sub-problemas.La programación modular es una técnica que consiste en dividir un programa en tareas y dar origen a la creación de pequeños programas llamados módulos, subprogramas o subrutinas con la finalidad de simplificar la elaboración y mantenimiento del mismo (véase figura 5.1), donde cada módulo se codifica y se procesa de manera independiente, sin importar los detalles de otros módulos. Esto facilita la localización de un error cuando se produce. Este tipo de programación es uno de los métodos de diseño más flexibles y potentes para mejorar la productividad de un programa.En lenguaje C a cada módulo o subprograma se le conoce como función; en este lenguaje se trabaja a base de funciones y, de manera general, los programas se elaboran combinando funciones que el programador escribe y funciones “predefinidas” disponibles en la biblioteca estándar de C.

Las ventajas de la programación modular son las siguientes:1. Facilita el diseño descendente.2. Se simplifica un algoritmo complejo.3. Cada módulo se puede elaborar de manera independiente, lo que permite trabajar simultáneamente a varios programadores y con ello disminuir el tiempo de elaboración del algoritmo.4. La depuración se lleva a cabo en cada módulo.5. El mantenimiento es más sencillo.6. Creación de bibliotecas con módulos específicos (se pueden utilizar en otros programas).

Función Principal-> Int main () { //Códigos return 0}¿Porque el Return 0?Respuesta: La función principal main es de tipo entero (int), como podemos ver su nombre Int main(), lo que significa que retornará un valor de tipo entero, en algunos Libros se dice que el return 0, es un indicar a la función su finalización correcta, sin embargo, también es porque a como mencionamos anteriormente, debe retornar un valor tipo int, en este caso 0, ya que no retorna nada, en algunos casos se retorna una variable.

Este retornar no solamente funciona con la función main o con funciones de tipo int, también se pueden declarar funciones de tipo float que retornan un valor flotante.

¿Hay una función que no retorne nada? Respuesta: Si. La función de tipo void no retorna o no devuelve absolutamente nada,

28

Page 30: Manual de c c++

que sucede, bueno, al llamar a la función solamente realiza lo que está en dicha función los códigos plasmados ahí y finaliza.

Variable local. Variable declarada en una determina función, sólo se encuentra disponible durante el funcionamiento de la misma, es decir está en memoria cuando dicha función está activa.Variable global. Variable declarada fuera de cualquier función y que puede ser utilizada por las funciones que se encuentran después de dicha declaración; por lo tanto si la declaramos junto a las librerías, la podrá utilizar todo el programa. Esta característica es propia del lenguaje C.

Para llamar una función es necesario escribir el nombre o identificador de la función y en seguida un par de paréntesis, que estarán vacíos si hablamos de funciones sin paso de parámetros y tendrán información en caso de ser funciones con paso de parámetros.

Se mostrara un ejemplo de funciones, utilizando todo lo aprendido en este material:

(Utilizando la plataforma paste.ofcode.org para escribir códigos)

29

Page 31: Manual de c c++

30

Page 32: Manual de c c++

31

Page 33: Manual de c c++

URL De código original: http://paste.ofcode.org/sWp3rdBJkcwhVgPMpt9a8r

32

Page 34: Manual de c c++

33