Anda di halaman 1dari 30

1

INSTITUTO TECNOLOGICO DE ACAPULCO.

Programacin de sistemas Profesor: Mario Jimnez Vzquez Lenguaje de programacin C


Especialidad: Redes de Computadoras Hora: 07:00 am a 09:00 am Sptimo Semestre Aula 711 Integrantes del equipo No. 1:
Alumnos: Leonardo Veronico Eusebio Bustos Rodrguez Jos Martin Santos Prudente Yuliana Irene 09320838 09320837 09320743

Acapulco, Gro., a 25 de septiembre de 2012.

ndice Lenguaje de programacin C ........03 Requerimientos para instalacin....03 Palaras reservadas o palabras clave...04 Tipos de datos...08 Ciclos.10 Funciones..13 Arreglos.....16 Registros...20 Clases ..23 Constructores y destructores 24 Estructuras general de un programa ....27 Diferencia entre C y C++....28 Programa ejemplo ..29

Lenguaje de programacin C.
Tal vez se pregunte cual ha sido el origen del lenguaje C y de donde le vino su elegante nombre. El C fue creado por Dennis Ritchie en los laboratorios de la Bell Telephone, en 1972. El lenguaje no fue creado por el gusto de hacerlo, sino para un fin especfico: el diseo del sistema operativo UNIX (el cual es usado en muchos minicomputadoras). Desde el principio, el C tuvo como propsito ser til: permitir a los programadores atareados que las cosas se pudieran hacer. Como el C es un lenguaje muy poderoso y flexible, su uso se difundi rpidamente ms all de los laboratorios Bell. Sin embargo, diferentes organizaciones comenzaron a utilizar muy pronto sus propias versiones del C, y las pequeas diferencias entre las implementaciones empezaron a dar problemas a los programadores. Para dar solucin a este problema, el American National Standards Institute (ANSI) formo un comit en 1983 para establecer una definicin estndar del C, que llego a ser conocida como el C estndar ANSI. Con unas cuantas excepciones, todos los compiladores de C modernos se adhieren a este estndar. Ahora Por qu tiene este nombre? El lenguaje C se llama de esta forma debido a que su predecesor fue llamado B.

Requerimientos de instalacin.
Instalacin de C Los requerimientos mnimos para ejecutar C son: Microsoft Windows 95, 98, NT 4, 2000, XP 32 MB RAM 100 Mhz Intel compatible CPU 30 MB de espacio libre de disco Lector de CD-ROM Los requerimientos aconsejados para C son: Microsoft Windows 2000, XP 64 MB RAM 400 Mhz Intel compatible CPU 200 MB de espacio libre de disco Lector de CD-ROM

Palabras reservadas o palabras clave


Las palabras reservadas son identificadores predefinidos (tienen un significado especial). En todos los lenguajes de programacin existe un conjunto de palabras reservadas. En lenguaje C (ANSI), existen las siguientes: A este auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while

conjunto de palabras se les denomina "palabras reservadas". Las palabras reservadas son identificadores predefinidos reservados que tienen significados especiales y no se pueden utilizar como identificadores de sus programas. Microsoft ampla el lenguaje C++ con varias palabras clave adicionales. Las palabras clave con dos caracteres de subrayado iniciales son extensiones de Microsoft. __abstract 2 __alignof __asm __assume __based __box 2 __cdecl __declspec __delegate 2 __event __except __fastcall __finally __forceinline __gc 2 __hook 3 __identifier __if_exists bool __if_not_exists __inline __int8 __int16 __int32 __int64 __interface __leave __m64 __m128 __m128d __m128i __multiple_inheri tance __nogc 2 __noop __pin 2 __property 2 break __raise __sealed 2 __single_inherita nce __stdcall __super __try_cast 2 __try/__except, __unhook 3 __uuidof __try/__finally __value 2 __virtual_inherita nce __w64 case

catch char class const const_cast continue default delete deprecated 1 dllexport 1 dllimport 1 do double dynamic_cast else enum explicit extern false float for friend goto if inline int long mutable naked 1 namespace new noinline 1 noreturn 1 nothrow 1 novtable 1 operator private property 1 protected public register reinterpret_cast return selectany 1

short signed sizeof static static_cast struct switch template this thread 1 throw true try typedef typeid typename union unsigned using declaracion, using directiva uuid 1 virtual void volatile __wchar_t,wchar _t While

Funciones que realizan cada una de las palabras reservadas.


1.-Unsigned: Modificador que su efecto es eliminar el signo al tipo de dato aplicado 2.-Signed: Modificador que forza al compilador a utilizar un tipo de dato con signo si antes se declar como de tipo unsigned. As, el tipo char con el modificador signed, puede tomar valores numricos entre -128 y 127. Con el modifiador unsigned, el rango est entre 0 y 255. 3.-Volatile: Especifica una variable que almacena datos cuyo contenido puede cambiar en cualquier momento sea por la accin del programa como reaccin de la interaccin del usuario con el programa. 4.-Const: Especifica una variable cuyo contenido no puede cambiar bajo ninguna circunstancia. 5.-Static: Especifica una variable que slo puede cambiar por efecto del programa. 6.-Typedef: Define un tipo de dato para fcil manejo del programador basado en los datos definidos por el compilador. Muy til cuando se programa en lenguajes diferentes al ingls. 7.-Sizeof: Funcin que devuelve el tamao en bytes del tipo de dato al que se aplica. 8.-If: Instruccin condicional 9.-Else: Se utiliza conjuntamente con la instruccin if 10.-Switch: Estructura condicional 11.-Case: Define los elementos de una estructura condicional switch, vase La instruccin switch 12.-Default: Define las acciones a ejecutar no especificadas por una instruccin case dentro de una estructura condicional switch 13.-Break: Obliga a salir de una estructura condicional switch 14.-For: Bucle que se ejecuta tantas veces como se cumplan las condiciones especificadas dentro del parntesis de la instruccin 15.-While: Bucle condicional que se ejecuta conforme la condicin entre el parntesis sea cierta 16.-Do: Bucle condicional que se ejecuta en conjunto con la instruccin while 17.-Continue: Instruccin para suspender un ciclo de un bucle 18.-Goto: Instruccin que ejecuta un salto a otra parte del cdigo 19.-Struct: Define una estructura 20.-Return: Especifica el dato que devuelve una funcin. 21.-Union: Un tipo de dato compuesto de otros datos definidos 22.-Register: Permite almacenar un dato en el registro del sistema. 23.-Extern: Especifica una variable funcin que se encuentra en un archivo fuente diferente. 24.-Void: Especifica que una funcin no devuelve valor alguno. 25.-Auto: Una de las cuatro clases de almacenamiento de datos, auto es la opcin por defecto, las otras tres son register, static y extern. 26.-Stream: flujo de datos

27.-Cin: entrada estndar 28.-Cout: salida estndar 29.-Cerr: salida de mensajes de error 30.-Streambuf: operacin de I/O a bajo nivel 31.-Istream : operacin de I/O a alto nivel 32.-Ostream: operacin de I/O a alto nivel 33.-Iostream: operacin de I/O a alto nivel 34.-Ios: clase para el manejo de la I/O a alto nivel 35.-Setf(): mtodo de la clase ios para inicializar los indic de formato 36.-Flags(): metodo de la clase ios para inicializar los indic de formato 37.-Unsetf(): metodo de la clase ios para desactivar los indic de formato 38.-Width(): funcin declarada en las clases istream, ostream e iostream 39.-Precision(): funcin declarada en las clases istream, ostream e iostream 40.-Fill(): funcin declarada en las clases istream, ostream e iostream 41.-Endl: manipulador sin argumentos definidos en iomanip.h 42.-Flush: manipulador sin argumentos definidos en iomanip.h << >>: operadores de insercin o extraccin de flujo 43.-Ifstream : Clase necesaria para la insercin de flujo de datos en fichs. 44.-Ofstream : Clase necesaria para la extraccin de flujo de datos en fichs. 45.-Fstream: Clase necesaria para la I/O de flujo de datos en fichs. 46.-Fstream.h : Librera para poder leer o escribi desde ficheros. dec, hex y oct : establecen base para enteros ws: se saltan los blancos iniciales 47.-Endl: se imprime un n y se vaca el buffer de salida 48.-Flush : se vaca el buffer de salida 49.-Setw(int w) : establece la anchura mnima de campo 50.-Setprecision(int p) : establece el nmero de cifras 51.-Setfill(char ch): establece el carcter de relleno 52.-Setiosflag(long i): equivale al indicador setf() 53.-Unsetiosflag(long i): equivale a unsetf() 54.-Skipws : descartan los blancos iniciales a la entrada 55.-Left: la salida se alinea a la izquierda 56.-Rigth : la salida se alinea a la derecha 57.-Internal: alinea el signo y los caracteres indicativos de la base por la izq y las cifras por la der 58.-Dec: salida decimal para enteros (defecto) 59.-Oct : salida octal para enteros 60.-Hex: salida hexadecimal al para enteros 61.-Show: base se muestra la base de los valores numricos 62.-Showpoint : se muestra el punto decimal 63.-Uppercase : los caracteres de formato aparecen en maysculas 64.-Showpos : se muestra el signo (+) en los valores positivos 65.-Scientific : notacin cientfica para coma flotante 66.-Fixed: notacin normal para coma flotante 67.-Unitbuf : salida sin buffer (se vuelca cada operacin) 68.-Adjustfield: es una combinacin excluyente de left, rigth e internal 69.-Basefield: una combinacin excluyente de dec, oct e hex 70.-Floatfield: es una combinacin excluyente scientific y fixed

71.-Biblioteca: Gestin bsica de una biblioteca: Altas y Consultas 72.-Bcstring: Cadena hbrida BSTR-C-C++, aprovecha las bondades de los tres tipos de cadenas y las proporciona en una sola clase 73.-Amvutils1: Plantillas para comparacin de cadenas estilo C y de apuntadores a objetos 74.-Application: Base para aplicaciones que se invocan en main() 75.-Shell: Base para aplicaciones que se invocan en main() y funcionan como intrprete de rdenes 76.-ChessServer: Permite a dos personas jugar ajedrez 77.-MagicSquare: Cdigo fuente del programa anterior 78.-Sorting: Cdigo fuente del algoritmo de ordenamiento quicksort 79.-Encoder: Cdigo fuente del algoritmo de cifrado XOR 80.-Maps: Ejemplo de uso de mapas 81.-Book: Crea un libro desde un archivo de texto y permite explorarlo seccin por seccin 82.-cpp.txt: Ejemplo usado por el programa book 83.-Algorithm: Algoritmos tiles para contenedores STL 84.-Allocator: Similar a la clase allocator de la STL 85.-Amvdefs: Alias para tipos del espacio de nombres std 86.-BinaryTree: rbol binario 87.-Bitarray: Arreglo de bits (til para valores booleanos) 88.-Complex: Permite manejar nmeros complejos en forma binmica o polar 89.-Converters: Convertidores de archivos: 90.-RemoveComments(...): Quita los comentarios de un archivo CPP 91-FloatBCD: Tipo para el manejo de nmeros BCD de punto flotante 92.-Function: Clase para funciones usadas por la clase expression 93.-Matrix: Tipo para manipular matrices 94.-MemoryAMV: Funciones para manejo de memoria 95.-Pointer e ipointer: Tipos para manejo de apuntadores en contenedores 96.-REEvaluator: Evaluador de expresiones regulares por medio de autmatas finitos no deterministas (AFNs) 97.-Stack: Similar a la clase stack de la STL 98.-Streambufw: Permite el acceso al bfer de un streambuf 99.-String: Tipo para el manejo de cadenas de caracteres 100.-Tree: rbol con N nodos hijos y M niveles de profundidad

Tipo de datos
Un tipo de dato define todo el posible rango de valores que una variable puede tomar al momento de ejecucin del programa y a lo largo de toda la vida til del propio programa. Se pueden clasificar en: 1. De texto (char, signed char) 2. Datos enteros (int, signed int, short int) 3. Datos flotantes (float, double) 4. Datos enumerados (enum)

1. De Texto: est constituido por caracteres simples, como a, Z, , 3 y cadenas, como Esto es una prueba (normalmente, de 8 bits o un byte por carcter, con un rango de 0 a 255). 2. Los valores enteros: son aquellos nmeros que se aprendieron a contar (1, 4, -2, 1354); normalmente, tienen un tamao de 16 bits, 2 bytes o una palabra, con rango de -32768 a 32767. En Windows 98 y Windows NT, los valores enteros tienen un tamao de 32 bits con un rango de -2147483648 a 2147483647. 3. Los valores en coma flotante: son nmeros que tienen una parte fraccional, como por ejemplo pi (3,14159), y exponentes (7,5631021). Tambin se conocen como nmeros reales (normalmente, son de 32 bits, 4 bytes o 2 palabras, con un rango de +/-3,4E-38 a 3,4E+38). 4. Los tipos de datos enumerados: permiten al usuario definir tipos de datos. El tipo void se utiliza para especificar valores que ocupan cero bits y no tienen valor (este tipo tambin se puede utilizar para la creacin de punteros genricos. El tipo de dato puntero no contiene informacin en el mismo sentido que el resto de los tipos de datos; en su lugar, cada puntero contiene la direccin de la posicin de memoria que almacena el dato actual. El tipo de dato bool, al que se le puede asignar las constantes true (verdadero) y false (falso). Rango de los tipos de datos

El rango de un entero short puede variar segn el computador o compilador que se utilice, utiliza 16 bits de almacenamiento mientras que su rango es -32.768 a 32.767 .

Ciclos

10

Las Sentencias de Iteracin o Ciclos son estructuras de control que repiten la ejecucin de un grupo de instrucciones. Bsicamente, una sentencia de iteracin es una estructura de control condicional, ya que dentro de la misma se repite la ejecucin de una o ms instrucciones mientras o hasta que una a condicin especfica se cumpla. Muchas veces tenemos que repetir un nmero definido o indefinido de veces un grupo de instrucciones por lo que en estos casos utilizamos este tipo de sentencias. En C y C++ los ciclos o bucles se construyen por medio de las sentencias for, while y do - while. BUCLE WHILE La sentencia while permite ejecutar repetidamente un bloque de cdigo mientras se cumpla una determinada condicin que es chequeada antes de cada iteracin. Sintaxis while ( <condicion> ) <sentencia> ; Descripcin La sentencia while ejecuta iterativamente el bucle definido por el bloque de cdigo <sentencia> siempre que el valor devuelto por la expresin <condicin> (que debe estar entre parntesis) sea cierto. Puesto que la condicin se evala antes que cada ejecucin del bucle, si al comienzo <condicion> devuelve falso, <sentencia> nose ejecuta ninguna vez, y el control pasa a la siguiente sentencia. Si <condicin> devuelve cierto se ejecuta el bucle <sentencia>, y a continuacin se vuelve a evaluar <condicion> con lo que se repite el ciclo. Ejemplo: #include<iostream> using namespace std; int main() { int contador = 0; while(contador<=10) { contador =contador+1; cout<<"Hola Mundo"; }} El contador Indica que hasta que este llegue a el total de 10 entonces se detendr y ya no se realizar el cdigo contenido dentro de la sentencia while, de lo contrario mientras el "contador" sea menor a 10 entonces el cdigo contenido se ejecutar desplegando hasta 10 veces "Hola Mundo" en pantalla.

11

BUCLE DO...WHILE La sentencia do ... while permite ejecutar repetidamente un bloque de cdigo mientras se cumpla una determinada condicin que es chequeada despus de cada iteracin. La sentencia do es usada generalmente en cooperacin con while para garantizar que una o ms instrucciones se ejecuten al menos una vez. Sintaxis
do { <sentencia> ; } while ( <condicin> );

Descripcin La sentencia do ejecuta repetidamente el bucle definido por el bloque de cdigo <sentencia> hasta que la sentencia de control <condicin> devuelve el valor falso. Puesto que el control se evala despus de cada ejecucin del bucle, resulta que este se ejecuta al menos una vez, aunque<condicin> devuelva el valor falso desde el principio (si requiere que el bucle no se ejecute ninguna vez, es mejor utilizar while). Ejemplo: #include<iostream> using namespace std; int main() { int contador = 0; do { contador ++; cout<<"Hola Mundo"; } while(contador > 10); } } Observe cmo en el caso de do la condicin es evaluada al final en lugar de al principio del bloque de instrucciones y, por lo tanto, el cdigo que le sigue al do se ejecuta al menos la primera vez.

12

BUCLE FOR Esta sentencia permite realizar un bucle repetidamente en base a una condicin, la cual suele estar basada en el valor de un contador que se actualiza despus de cada ejecucin del bucle. Sintaxis for ( <contador> ; <condicin> ; <incremento> ) { <sentencia>; } Donde: <contador> es una variable numrica <condicin> es la condicin que se evala. <incremento> es el valor que se suma o resta al <contador>.

La sentencia for es til para los casos en donde se conoce de antemano el nmero de veces que una o ms sentencias han de repetirse.

Ejemplo 1: #include<iostream> using namespace std; int main() { for(i=1; i<=10; i++) { cout<<"Hola Mundo"; } } Esto indica que el contador "i" inicia desde 1 y finaliza cuando el contador "i" sea menor o igual a 10 (en este caso llegar hasta 10) e "i++" realiza la sumatoria por unidad lo que hace que el for y el contador se sumen. Repitiendo 10 veces "HOLA MUNDO" en pantalla. Ejemplo 2: #include<iostream> using namespace std; int main() { for(i=10; i>=0; i--) {

13

cout<<"Hola Mundo"; } } Este ejemplo hace lo mismo que el primero, salvo que el contador se inicializa a 10 en lugar de 1; y por ello cambia la condicin que se evala as como como que el contador se decrementa en lugar de ser incrementado.

Funciones
Desde un punto de vista prctico, podemos decir que una funcin es una parte de un programa (subrutina) con un nombre, que puede ser invocada (llamada a ejecucin) desde otras partes tantas veces como se desee. Un bloque de cdigo que puede ser ejecutado como una unidad funcional. Opcionalmente puede recibir valores; se ejecuta y puede devolver un valor. Desde el punto de vista de la organizacin, podemos decir que una funcin es algo que permite un cierto orden en una maraa de algoritmos. Como resumen de lo anterior podemos concluir que el uso de funciones se justifica en dos palabras: organizacin y reutilizacin del cdigo. Desde este ltimo punto de vista (reutilizacin), puede decirse que son un primer paso de la programacin genrica, ya que representan un algoritmo parametrizado. La sintaxis de una definicin de funcin es: tipo_valor_retorno nombre_funcion (lista de parametros) { declaracin de variables y/o otras funciones cdigo ejecutable return (expresin) optativo }

Cada funcin dispone de sus propias variables, las cuales son visibles dentro del bloque donde fueran definidas El cdigo ejecutable es el conjunto de instrucciones que se ejecutan cada vez que la funcin es llamada. Cuando una funcin es ejecutada, puede devolver al programa que la ha llamado un valor, cuyo tipo debe ser especificado en el encabezado de la funcin. Si no se desea devolver ningn valor, el tipo de valor de retorno es void. La sentencia return permite devolver el control al programa que llama. Si no hay ningn return, el control se devuelve cuando se llega al final del cuerpo de la funcin. Puede ir seguido de una expresin. La lista de parmetros tambin llamada argumentos formales es una lista de declaraciones de variables. Son la forma mas natural y directa para que la funcin reciba valores desde el programa que la llama, correspondindose en numero y tipo con otra lista de argumentos

14

La llamada de una funcin se hace incluyendo su nombre seguido de una lista de argumentos (argumentos actuales) separados por comas y encerrados entre parntesis. Los argumentos pueden o no ser variables o constantes, si no tambin expresiones. Como: int max(int a, int b) char SexoPersona(int dni_persona) float producto(float x, int y) int dame_un_numero_cualquiera( )

Funciones con un numero indeterminado de argumentos: Se utilizan puntos suspensivos (), para representar los argumentos desconocidos. Void mi_funcion(int i, double a, .); Definir valores por defecto para los argumentos: La funcin modulo puede declararse: double modulo (double x[], int n=3); Y puede ser llamada: v= modulo (x, n); v= modulo (x);

Una funcin de inicio

Denominada main(), principal. Define el punto de entrada al programa, adems es posible pasarle argumentos y tambin puede tener valor de retorno. Existen otras funciones que se declaran en cabeceras o dentro de los ficheros fuente a las que llamamos prototipos. La forma general de la definicin es: valor-devuelto nombre-funcin (lista-de-argumentos) { sentencias; // "cuerpo" de la funcin } Ejemplo: float cuadrado (float x); // prototipo float cuadrado (float x) { return x*x; } // definicin Funciones recursivas: funciones que se llaman as mismas directa o indirectamente.

Ejemplo:

15

Unsigned long factorial(unsigned long numero) { if(numero==1||nummero==0) return 1; else return numero*factorial(numero-1); } Funciones para cadenas de caracteres:

Entre las ms utilizadas estan: Sus prototipos o declaraciones estan en el fichero string.h strlen(): su nombre proviene de string length, sirve para contar el numero de caracteres de una cadena. Unsigned strlen(conts char*s); strcat(): su nombre proviene de string concate, se emplea para unir dos cadenas de caracteres. Los argumentos son los dos punteros de las cadenas ah unir. char*strcat(char *s1, const char *s2); strcmp(): su nombre proviene de string comparison, sirve para comparar dos cadenas de caracteres. Como argumentos utiliza las cadenas que se van a comparar. Devuelve cero si las cadenas son iguales. int strcmp(const char *s1,const char *s2); strcpy():su nombre proviene de string copy, se utiliza para copiar cadenas. Utiliza como argumentos dos punteros de carcter (puntero a la cadena copia y puntero a la cadena original).

char *strcpy(char *s1, const char *s2);

Arreglos en C y C++
Un arreglo es una coleccin ordenada de variables del mismo tipo. Las variables que pertenecen a un arreglo se conocen por el nombre del elemento. El trmino ordenado significa que en la coleccin hay un primer elemento, un segundo elemento, un tercer elemento, y as sucesivamente. Adems, los elementos pueden a su vez organizarse en subgrupos llamadas dimensiones.

16

En resumen, un arreglo: No es una variable; es un grupo de variables conocidas como elementos Cada elemento ocupa una posicin dentro del grupo Todos los elementos son del mismo tipo El nombre del arreglo indica donde se localiza el grupo en la memoria de la computadora Los arreglos se clasifican de acuerdo a las dimensiones que tengan Las dimensiones no tienen relacin con el plano Cartesiano; nada que ver con matemtica Las dimensiones indican como estn organizados los elementos dentro del grupo Los arreglos de dos dimensiones pueden visualizarse como tablas Los valores que se guarden en el arreglo se almacenan en los elementos ya que los elementos son las variables Para crear arreglos en C y C++ hay que indicar: 1. el tipo de los elementos (ejemplo, int, char, double, bool o un tipo definido por el programador) 2. el nombre del arreglo . 3. la cantidad de dimensiones y sus tamaos; cada dimensin comienza con el signo. [ seguido por el tamao de la dimensin y termina con el signo ] Para crear un arreglo de una dimensin, el formato es el siguiente: <tipo de los elementos> <nombre del arreglo> [ <tamao primera dimensin>

ARRAYS UNIDIMENSIONALES Un array unidimensional es aquel en donde los componentes son accesibles por medio de uno y solamente un ndice que apunte al componente requerido. Los arrays de ese tipo son conocidos tambin con el nombre de vectores. Conceptualmente, podemos pensar en un array unidimensional como en una lista compuesta de lneas o filas en donde para referirnos a una de ellas emplearemos un nmero para indicar la posicin de la misma dentro de la lista. Por ejemplo, consideraremos el caso de la tabla o array VentaSemanal, la cual est pensada para registrar las ventas de cada uno de los das de la semana. De manera conceptual podemos ver el array como se muestra a continuacin:

17

Declaracin:int VentaSemanal [7] ;

Si en el array VentaSemanal queremos que el elemento 4 (por ejemplo) contenga el valor de 8987 lo podemos lograr con la instruccin VentaSemanal[4] = 8987; y el estado de array sera :

ARRAYS BIDIMENSIONALES Un array bidimensional es aquel en donde los componentes son accesibles por medio de una pareja de ndices que apunten a la fila y a la columna del componente requerido. Los arrays de este tipo son conocidos tambin como matrices. Ejemplo:

18

int matriz[ nmero total de filas ] [ nmero total de columnas ] ; Si declaramos: int matriz[3][4] ; Esquemticamente la disposicin "espacial" de los elementos seria:

Ejemplo: Conceptualmente, podemos pensar en un array bidimensional como en una lista compuesta de filas y columnas, en donde para referirnos a una de ellas emplearemos un nmero para indicar la posicin de la fila y otro numero para indicar la posicin de la columna del componente deseado. Por ejemplo, consideremos el caso de una tabla o array VentaSemanaQ, la cual est pensada para registrar las ventas de cada uno de los das de la semana por cuatro semanas, o sea, una tabla de 7x 4 elementos. De manera conceptual podemos ver el array como se muestra a continuacin: Declaracin: Int VentaSemanaQ [7][4];

19

Si en el array VentaSemanaQ queremos que el elemento de la fila 4, columna 3 (por ejemplo) contenga el valor de 5000 lo podemos lograr con la instruccin: VentaSemanaQ[4][3] = 5000; y el estado de array sera;

Registros
Un registro es una estructura cuyos componentes pueden ser de diferente tipo. Para declarar un tipo registro se debe incluir el nombre y el tipo de cada componente del mismo. En C y C++ se usa la palabra reservada struct para indicar que el tipo que se est definiendo es un registro o estructura. Los campos de un registro pueden ser de cualquier tipo, incluyendo arrays y registros y son llamados campos o variables miembro que pueden ser accedidas individualmente mediante notacin '.' Formalmente, podemos definir un registro de la siguiente manera: Sintaxis:

20

struct [<nombre de la estructura>] { [<tipo> <nombre de variable>[,<nombre de variable>,...]]; . } [<variable de estructura>[,<variable de estructura>,...]; Las variables de estructura son variables declaradas del tipo de la estructura, y su inclusin tambin es opcional. Sin bien, al menos uno de estos elementos debe existir, aunque ambos sean opcionales. En el interior de una estructura, entre las llaves, se pueden definir todos los elementos que consideremos necesarios, del mismo modo que se declaran las variables. Las estructuras pueden referenciarse completas, usando su nombre, como hacemos con las variables que ya conocemos, y tambin se puede acceder a los elementos en el interior de la estructura usando el operador de seleccin (.), un punto. Tambin pueden declararse ms variables del tipo de estructura en cualquier parte del programa, de la siguiente forma: [struct] <nombre de la estructura> <variable de estructura>[,<variable de estructura>...]; La palabra "struct" es opcional en la declaracin de variables. Ejemplo: struct Persona { char Nombre[65]; char Direccion[65]; int AnyoNacimiento; } Fulanito; Este ejemplo declara a Fulanito como una variable de tipo Persona. Para acceder al nombre de Fulanito, por ejemplo para visualizarlo, usaremos la forma: cout << Fulanito.Nombre;

Arrays de estructuras: La combinacin de las estructuras con los arrays proporciona una potente herramienta para el almacenamiento y manipulacin de datos. Ejemplo: struct Persona { char Nombre[65]; char Direccion[65]; int AnyoNacimiento; } Plantilla[200];

21

Vemos en este ejemplo lo fcil que podemos declarar el array Plantilla que contiene los datos relativos a doscientas personas. Podemos acceder a los datos de cada uno de ellos: cout << Plantilla[43].Direccion; O asignar los datos de un elemento de la plantilla a otro: Plantilla[0] = Plantilla[99];

Estructuras en C.
Una estructura es un mtodo de almacenamiento de datos designado por el programador, para que se ejecute exactamente a las necesidades de programacin. Estructuras simples. Una estructura es una coleccin de una o ms variables, agrupadas bajo un solo nombre para facilitar su manejo. Las variables en la estructura, a diferencia de las que se encuentran en arreglos, pueden ser diferentes tipos de variable. Una estructura puede contener cualquier tipo datos del C, incluyendo arreglos y otras estructuras. Cada variable dentro de una estructura se llama miembro de la estructura.
Ejemplos de algunos tipos de estructuras

1.- Estructuras de seleccin C++ tiene dos estructuras de control para la seleccin, if (seleccin simple y binaria) y switch (seleccin mltiple). Estructura if La sentencia if elige entre varias alternativas en base al valor de una o ms expresiones booleanas. Las formas ms sencillas de esta sentencia, son : if (<expres_bool>) <sentencia> if (<expres_bool>) <sentencia> else <sentencia>

Estructura switch Aunque la sentencia if de C++ es muy potente, en ocasiones su escritura puede resultar tediosa, sobre todo en casos en los que el programa presenta varias elecciones despus de chequear una expresin: seleccin mltiple o multialternativa. En situaciones donde el

22

valor de una expresin determina qu sentencias sern ejecutadas es mejor utilizar una sentencia switch en lugar de una if. <sent_switch>::= switch (<expresion>) { {case <caso> [break]} [default <sec_sent>] } <caso> ::= <expresion_constante> : <sec_sent> La palabra reservada break permite que el flujo de programa se detenga justo despus de la ejecucin de la sentencia anterior a ese break, impidiendo que se ejecuten las sentencias correspondientes a las siguientes alternativas del switch. Por tanto, debemos obligatoriamente acabar cada bloque de sentencias correspondiente a cada alternativa con una sentencia break. Por otro lado, la alternativa default es opcional y engloba un conjunto de sentencias (que puede ser vaco, contener una sola sentencia o varias) que se ejecutan en caso de que ninguna de las alternativas del switch tenga un valor coincidente con el resultado de evaluar la expresin del selector. 2.-Estructuras de iteracin C++ nos ofrece 3 esquemas de iteracin diferentes: while do while for Estructura while <sent_while> ::= while (<expres_bool>) <sec_sent> Lo ms importante a recordar de la sentencia while es que su condicin de terminacin se comprueba cada vez antes de que el cuerpo del bucle sea ejecutado. El cuerpo se ejecuta mientras se cumpla la condicin de control. Si la condicin es false (0), entonces el cuerpo no se ejecuta. Hay que hacer notar que, si la condicin es true (1) inicialmente, la sentencia while no terminar (bucle infinito) a menos que en el cuerpo de la misma se modifique de alguna forma la condicin de control del bucle. Una sentencia while se ejecutar cero o ms veces. Estructura do while Su sintaxis viene dada por : <sent_do_while> ::= do <sec_sent> while (<expres_bool>) Al igual que en la sentencia while, en esta sentencia el cuerpo del bucle se ejecuta mientras que sea verdad la expresion booleana que constituye la condicion de control. Adems, esta condicin se comprueba cada vez tras la ejecucin del cuerpo, no antes,

23

como en el while. El cuerpo de una sentencia do/while siempre se ejecuta al menos una vez. Cuando esto pueda ocurrir es mas conveniente su uso que la sentencia while. Estructura for Su sintaxis: <sent_for> ::= for (<expres_ini>;<expres_bool>;<expres_inc>) <sec_sent> El bucle for contiene las cuatro partes siguientes: Parte de inicializacin (<expres ini>), que inicializa las variables de control del bucle. Se puede utilizar variables de control de bucle simples o multiples. Lo ms normal es inicializar en este punto una sola variable cuyo valor vara luego en la parte de incremento. Si se inicializan varias variables de control, cada inicializacin se separa de la anterior con una coma. Parte de iteracin (<expres bool>), que contiene una expresin lgica que hace que el bucle realice las iteraciones de las sentencias, mientras que a expresion sea verdadera. Parte de incremento (<expres inc>), que modifica la variable o variables de control de bucle. Si se modifican varias variables de control, cada operacion se separa de la anterior por una coma. Sentencias (sec sent), acciones o sentencias que se ejecutaran por cada iteracin del bucle.

En escencia, una clase en C++ es una estructura en el estilo de C con algunas ventajas sencillas pero muy potentes.

Declaracin de clases

Para declarar una clase, todo lo que se necesita es escribir una definicin de estructura y sustituir la palabra reservada struct por class. Por ejemplo, una clase empleado con campos como el nombre, el departamento, la posicin, el una funcin que nos imprima la informacin de este quedara as:

24

Class Empleado { char* char* char* long void Imprimir( Empleado infoEmpleado); } m_nombre; m_departamento; m_posicion; m_salario;

Cuando usted declara una clase en C++, no se reserva memoria para la clase hasta que usted crea un objeto de la clase. Crear un objeto de una clase se llama instanciar un objeto. Un objeto creado de una clase de denomina instancia de una clase. Por ejemplo, yo puedo tener una instancia de empleado con el valor en m_nombre=Jose, m_departamento=Sistemas, m_posicion=programador y m_salario=3000000 por ejemplo.

CONSTRUCTORES Y DESTRUCTORES Constructores Su nombre es exactamente el mismo que el nombre de la clase y construye los valores de los datos miembrosdelaclase. Un constructor se declara y se define tal y como se muestra a continuacin:

Cuando una clase contiene un constructor como el que se ha definido anteriormente, se garantiza que un objeto creado por la clase ser inicializado automticamente, es decir no slo se crea el objeto sino que adems, inicializa sus datos miembros. No es necesario escribir ninguna sentencia para invocar a la funcin constructor.

25

Un constructor que no acepta parmetros es llamado constructor predeterminado. Las funciones constructoras tienen las siguientes caractersticas:

Son declaradas en la relacin pblica. Son invocadas de forma automtica cuando los objetos son creados. No tienen tipo de retorno, ni siquiera void y, por tanto, no pueden retornar ningn valor. Al igual que otras funciones C++, pueden tener argumentos predeterminados. Los constructores no pueden ser virtuales (se aclarar ms adelante). No se pueden hacer referencias a sus direcciones. Un objeto con un constructor (o destructor) no puede ser utilizado como miembro de una unin. Realizan "llamadas implcitas" a los operadores new y delete cuando se requiere la reserva de memoria.

Destructores Un destructor se utiliza para destruir objetos que han sido creados por un constructor. El destructor es una funcin miembro cuyo nombre es el mismo que el nombre de la clase, pero precedida por una tilde (~). Por ejemplo, el destructor de la clase entero puede ser definido tal y como se muestra: ~entero(){} Un destructor nunca tiene argumentos y no devuelva ningn valor. Ser invocado de forma implcita por el compilador cuando el programa finaliza para limpiar la zona de memoria ocupada que ya no es accesible. Por ejemplo, el destructor para la clase matriz vista anteriormente podra definirse tal y como se muestra: matriz::~matriz() { for(int i=0;i<d1;i++) delete [] p[i]; delete [] p; } Esto es necesario debido a que cuando los punteros a objetos salen fuera de mbito, el destructor no es llamado de forma implcita. El ejemplo muestra que el destructor ha sido invocado de forma implcita por el compilador.

26

La salida sera: EJECUTANDO PROGRAMA PRINCIPAL N de objeto creado 1 N de objeto creado 2 N de objeto creado 3 N de objeto creado 4 EJECUTANDO BLOQUE 1 N de objeto creado 5 N de objeto destruido 5 EJECUTANDO BLOQUE 2 N de objeto creado 5 N de objeto destruido 5 EJECUTANDO DE NUEVO PROGRAMA PRINCIPAL

27

N de objeto destruido 4 N de objeto destruido 3 N de objeto destruido 2 N de objeto destruido 1

3.-Estructura General de un programa en C. Todo programa en C tiene una estructura comn que consta de varias partes como se muestra en la imagen

Comentarios: Sirven para explicar la finalidad del programa, que pueden ser de lnea o de bloque. Utilizamos un comentario de lnea (//) cuando queremos explicar el propsito de una sola lnea del programa. Utilizamos un comentario de bloque (/**/) cuando queremos comentar varias lneas. Seccin del preprocesador: Esta seccin de un programa en c++ consiste en un conjunto de instrucciones que empiezan con el smbolo especial #. La instrucciones ms utilizada es #include que el indica al compilador que inserte un archivo determinado en el lugar donde se encuentra la instruccin. Le archivo a incluir (archivo cabecera) puede ser una construido por el usuario o uno que conozca C++. Un archivo cabecera tiene una extensin (.h). Extensin .h Un compilador C++ contendr algunos archivos cabecera estndar con rutinas muy tiles para muchos programas, as el usuario no necesita preocuparse por escribirlas. Por ejemplo math.h, string.h, stdio.h, stdlib.h constream.h, etc.

28

Seccin funcin principal: En esta seccin se escriben las instrucciones ejecutables de C++. Estas instrucciones se agrupan dentro de funciones (bloques function). Una funcin (function) en C++ es un subprograma que regresa un valor simple o una serie de valores, o que realiza una tarea especfica, como entrada y salida. Todo programa en C++ requiere de una funcin principal, antecedida por una palabra clave que normalmente es int. Una llave izquierda, {, debe seguir al identificador de la funcin principal: int main( ) { antes que cualquier otra funcin. Esta llave define el inicio de bloque de funcin principal y por lo tanto tambin se requiere una llave que indique su final, }. En C siempre se usa un par de llaves, { }, para definir un bloque de cdigo. Si se declara una constante o una variable antes que el bloque de la funcin principal main() estar disponible para todo el programa, a diferencia de las que se declaran dentro del bloque, que slo tienen alcance local. Siempre declara tus objetos constantes como globales tanto como sea posible, y tus objetos variable como locales tanto como sea posible. Las instrucciones del programa o declaraciones dentro de cada bloque de funcin deben terminar con un ; (punto y coma), lo que le indica al compilador C++ que ah termina la instruccin.

Diferencia entre C y C++ Tal vez nos preguntemos cuales son las diferencias entre estos dos lenguajes y si se debe aprender C++ en lugar de c no hay de qu preocuparse C++ es una versin mejorada lo que significa que el C++ contiene todo lo que contiene C. YA QUE GRACIAS A LA NORMA (ANSI) CUMPLE CON LA NORMA ESTANDAR DE ESTE LENGUEJE.

Aunque C++ es un superconjunto de C, existen algunas diferencias entre los dos. En primer lugar, en C cuando una funcin no toma parmetros, su prototipo tiene la palabra void. Sin embargo en C++ void no es necesario(opcional). Prototipo en Prototipo en C++: char f1(); C: char f1(void);

Otra diferencia entre C y C++ es que en un programa de C++ todas las funciones deben estar en forma de prototipo, en C los prototipos se recomiendan, pero son opcionales. Tambin si una funcin de C++ es declarada para devolver un valor obligatoriamente la sentencia return debe devolver un valor, en C no es necesario que se devuelva.

29

Otra diferencia es el lugar donde se declaran las variables locales. En C, deben ser declaradas solo al principio del bloque, mientras que en C++ las variables se pueden declarar en cualquier punto. Aunque es conveniente realizarlo siempre al comienzo de la funcin. C es un lenguaje de programacin creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolucin del anterior lenguaje B, a su vez basado en BCPL. Al igual que B, es un lenguaje orientado a la implementacin de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del cdigo que produce y es el lenguaje de programacin ms popular para crear software de sistemas, aunque tambin se utiliza para crear aplicaciones. Se trata de un lenguaje dbilmente tipificado de medio nivel pero con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar cdigo en ensamblador con cdigo C o acceder directamente a memoria o dispositivos perifricos. La primera estandarizacin del lenguaje C fue en ANSI, con el estndar X3.159-1989. El lenguaje que define este estndar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estndar ISO (ISO/IEC 9899:1990). La adopcin de este estndar es muy amplia por lo que, si los programas creados lo siguen, el cdigo es porttil entre plataformas y/o arquitecturas. C++ es un lenguaje de programacin diseado a mediados de los aos 1980 por Bjarne Stroustrup. La intencin de su creacin fue el extender al exitoso lenguaje de programacin C con mecanismos que permitan la manipulacin de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje hbrido. Posteriormente se aadieron facilidades de programacin genrica, que se sum a los otros dos paradigmas que ya estaban admitidos (programacin estructurada y la programacin orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programacin multiparadigma. Actualmente existe un estndar, denominado ISO C++, al que se han adherido la mayora de los fabricantes de compiladores ms modernos. Existen tambin algunos intrpretes, tales como ROOT. Una particularidad del C++ es la posibilidad de redefinir los operadores (sobrecarga de operadores), y de poder crear nuevos tipos que se comporten como tipos fundamentales.

30

El nombre C++ fue propuesto por Rick Mascitti en el ao 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio cientfico. Antes se haba usado el nombre "C con clases". En C++, la expresin "C++" significa "incremento de C" y se refiere a que C++ es una extensin de C.

Bibliografa: Libro: Turbo c y Lenguaje C++ Autor: Luis Joyanes Aguilar

Anda mungkin juga menyukai