Manual básico de Programación en C++

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Manual básico de Programación en C++"

Transcripción

1 UNIVERSIDAD CENTRAL DE VENEZUELA FACULTAD DE CIENCIAS ESCUELA DE COMPUTACIÓN Materia: ESTRUCTURA DEL COMPUTADOR Manual básico de Programación en C++ Selección: DZ

2 Índice (RECOPILACION I) Diferencias entre C y C++ (1) Programación orientada a objeto POO ENCAPSULACIÓN, POLIMORFISMO, HERENCIA Representación de datos en lenguaje C/C++ (2) Primer programa en C++ Declaraciones en C++: (2) Como se declaran variables en C Como se declaran constantes en C Reglas de alcance de una variable (3) signen, unsigned, short, long Tipo de datos 1 (TDD) Calificadores de tipo signen, unsigned, short, long Operador de resolución de alcance unario (4) (POO) Homonimia de funciones (5) Comentarios en C/C++ Secuencias de escape en C++ Estructuras condicionales en C (6) Formas básicas IF-ELSE-ELSE IF Sentencia CONTINUE, Estructura SWITCH Como hacer Ciclos en C++ (8) Tipos de ciclos en C++ Flujo de entrada/salida de C++ (10) Declaración de archivo de cabecera y su relación con las Funciones a usar en código fuente Uso de las sentencias con printf y scanf en C++ Especificadores de formato Uso de los apuntadores en C 3 (11) Operadores de Indirección y Dirección & y * Instrucción estática->consola: (12) Ideal para DEV-C++ Cómo crear nuevos tipos de datos en C++ Directivas del Preprocesador Typedef, #include (13) Arreglos unidimensionales (Vectores) Llamadas a funciones con arreglos (15) Arreglos multidimensionales (Matrices) Registros (17) Registros y funciones (19)

3 Arreglos de registros (21) Definición de tipos (Typedef) Archivos (22) Apertura de archivos Modo texto Modo binario Cierre de registros Escritura y lectura de registros: Un carácter Un número entero Una cadena de caracteres Con formato (CDT) Registros (material adicional) (28) Otras funciones para archivos Detección de final de archivo Prototipos de función y verificación de tipo de dato (29) Operador de resolución de alcance unario Cómo llamar funciones: parámetros por valor y parámetros por referencia. (RECOPILACION II) Resumen sobre las librerías de C++ (31) Las clases estándar de C++ para entrada/salida Declaración, apertura y cierre de canales para archivo Modo Descripción Como crear clases en C/C++ (32) Control de acceso a miembros (CDA) (33) Archivos de cabecera Declaración de las funciones (34) Paso de parámetros a una función Funciones constructoras (35) Función destructora (36) Cuando son llamados los destructores y constructores? Asignación por omisión en copia a nivel de miembro en C Funciones en línea Verificación de tipos en C++ (37) Cómo poner en práctica un TDA con una clase? Un código fuente en C++ (40) Como leer registros Pase de parámetros por referencia Variable booleana en un condicional Nuevo tipo interesante de arreglo en c Impresión de arreglo Librerías 9 de C++ (41) Librería stdio.h printf, scanf,puts,gets,fopen,fclose,fprintf, fgets Librería tdlib.h atof, atoi, itoa, exit Librería conio.h

4 clrscr,clreol,gotoxy,textcolor,textbackground,wherex,wherey,getch,getche 9 Las funciones de las librerias de C++ dependen del compilador que se este usando lo recomendable es no usar funciones que otros compiladores no reconoceran si el programa es para otros. Por ejemplo el void detalle cumple la funcion de gotoxy() Librería string.h strlen, strcpy, strcat, strcmp Funciones interesantes fflush(stdin),sizeof,cprintf,kbhit,random,randomize,system Conversión de tipos en C++ (CDT) (44) Excepciones en C++ (46) Operaciones con Objetos en C++ (47) ASIGNACIÓN DE OBJETOS ARRAY DE OBJETOS (48) Unidimensional Bidimensional DECLARACIÓN, INICIALIZACIÓN PASO DE OBJETOS A FUNCIONES: (50) OBJETOS DEVUELTOS POR FUCIONES (51) PUNTEROS A OBJETOS (52) Funciones Constructoras y Destructoras (53) CONSTRUCTORES CON PARAMETROS (56) Sobrecarga de Funciones y Operadores Prioridad de operadores en C (ver simplificada) (62) Funciones inline y Automáticas 2 (63) Utilización de Estructuras como Clases 2 (64) this, new y delete 2 (66) Referencias 2 (70) Herencia 2 (71) Herencia múltiple 2 (73) Funciones Virtuales 2 (76) Funciones Amigas 2 (77) Tipo de dato referencia 2 (79) Apuntadores en C, Por qué son Importantes los Apuntadores?, Operadores de Indirección y Dirección, Advertencia sobre C, La Aritmética de Apuntadores, Apuntadores a Funciones, Arreglos en C, Por qué Usar los Arreglos?, La Declaración de un Arreglo, Breve resumen sobre los arrays, Arreglos y Apuntadores Apuntadores a Funciones (83) Punteros a estructuras (88) Punteros a objetos constantes Punteros a void (89)

5 Los operadores NEW Y DELETE (90) SOBRE ENUMERACIONES, ESTRUCTURAS Y UNIONES EN C++ ENUMERACIONES (91) ESTRUCTURAS DE ALMACENAMIENTO UNIONES (92) CADENAS EN C++ (93) MAS SOBRE FUNCIONES EN C++ Definición de funciones (94) Argumentos por omisión en funciones Más sobre funciones en línea (inline) (95) Sobrecarga de funciones (96) Mas sobre el modificador <const> (97) Paso de parámetros a funciones 1. Por valor 2. Por dirección 3. Por referencia Paso de arrays en C (98) Tamaño de un TDD (El operador: sizeof) (100) La sentencia nula en C Prioridad y asociatividad de operadores en C (ver completa) (101)

6 MÁS SOBRE ENTRADAS Y SALIDAS BÁSICAS EN C Salida Uso de flujos para salida de caracteres. (102) Entrada (103) Manipuladores de C Palabras reservadas de C (ver completa) (105) Laboratorio 4 #1 de C++ UCV (106) Laboratorio 4 #2 de C++ UCV (112) Sentencias de salto (120) Sentencias break, continue, goto SOBRE ALGUNOS OPERADORES (?,::,) (121) Los backward_warning.h o warning!! de C/C++ (122) (Una cuestión para ignorar y ejecutar el programa) Estructuras de almacenamiento (EDA) (123) Manejo de EDA y apuntadores Gestión dinánica de memoria (125) Constantes de tipo enumeración (128) Diferencias entre POO y POC (129) La librería para generar tiempo en C++ time.h Uso del system( cls ) Creación de un objeto en C++ (130) (Código fuente del void detalle versión final) Plantilla de menú en C++ (136) (Código fuente del programa, una forma muy básica P.O.O.) Recursividad en C++ (139) Los ciclos infinitos de C++ (140) Sentencias break, continue Instrucciones inmediatas (141) if, else, for,.. Paso de punteros a objetos (145) Por valor y por referencia. Línea de comandos (148) Ubicación del programa en la unidad C: Entrada vs Salida Archivos

7 (RECOPILACION III) Material teórico-practico adicional de programación en C++ 7 Variables vs Apuntadores (149) Objeto vs Clase (notas) Aprenda a programar con clases (150) Definición de una clase Prototipo de clases Objetos de clases Funciones miembro Tipos de funciones miembro Funciones en línea y fuera de línea La palabra reservada inline Archivos de cabecera y de clases Constructores (160) Constructor por defecto Constructores sobrecargados Constructor de copia Inicialización de miembros en constructores Destructores (165) Clases compuestas (166) Sobrecarga de funciones polimorfismo Errores de programación frecuentes en POO Plantillas de funciones (templates) Visibilidad de una función (171) Variables estáticas y automáticas (174) Compilación separada (176) Parámetro const de una función (180) Argumentos por omisión Detalles de programación básica I (184) Resumen de la programación con clases (191) Errores de programación frecuente en POO con clases (193) Mas sobre el goto, ciclos. Conclusiones (199) Programación Bibliografía consultada (200) Programación adicional (201, )

8 1 En muchas sintaxis el TDD se coloca simplemente como <tipo>, <valor_devuelto>. Una función en cualquier lenguaje de programación, también se puede llamar como un: tipo operador. 2 Estudiar Operaciones con Objetos, éstos capítulos corresponden más a la programación dinámica (abstracta) en C++, mientras que el Manual Básico de Programación en C++, (antes del apéndice) de programación en C++ va más ligada a programación estructurada. 3 En pseudoformal el * se suela cambiar por ^ por lo general y se coloca delante de la variable, Sintaxis: <nombre_apuntador>^. 4 Se agregaron estos laboratorios, tal cual se publicaron el la pagina de la Facultad de Ciencias UCV contienen muy buena información. 7 Para los siguientes tópicos se recomienda revisar los contenidos de el libro Algoritmos, estructuras de datos y objetos L. Joyanes Aguilar, paj 141 para saber mas acerca las librerías, funciones y variables de C++ se pretendió abarcar los aspectos mas relevantes de los capítulos 2,3,6, PARTE II de la obra. *Fuentes usadas: (Total 200 paginas exactas de información y + de ñapa!) Charter BT (Inserción de algunos signos especiales), Verdana (texto teoría) Courier New (código fuente) Time New Roman (palabras reservadas)

9 Diferencias entre C y C++ Aunque C++ es un súper conjunto de C, existen algunas diferencias entre los dos. En primer lugar, en C cuando una función no toma parámetros, su prototipo tiene la palabra void. Sin embargo en C++ void no es necesario (opcional). Prototipo en C: Prototipo en C++: char f1(void); char f1(); 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. También si una función de C++ es declarada para devolver un valor obligatoriamente la sentencia return debe devolver un valor, en C no es necesario que se devuelva. 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 función. La programación orientada a objetos (POO), permite descomponer un problema en subgrupos relacionados (método: divide y vencerás). Cada subgrupo pasa a ser un objeto auto contenido que contiene sus propias instrucciones y datos que le relacionan con ese objeto. Todos los lenguajes POO comparten tres características: Encapsulación, Polimorfismo y Herencia. ENCAPSULACIÓN: Es el mecanismo que agrupa el código y los datos que maneja. Los mantienen protegidos frente a cualquier interferencia y mal uso. Cuando el código y los datos están enlazados de esta manera se ha creado un objeto. Ese código y datos pueden ser privados para ese objeto o públicos para otras partes del programa. POLIMORFISMO: Es la cualidad que permite que un nombre se utilice para dos o más propósitos relacionados pero técnicamente diferentes. El propósito es poder usar un nombre para especificar una clase general de acciones. Por ejemplo en C tenemos tres funciones distintas para devolver el valor absoluto. Sin embargo en C++ incorpora Polimorfismo y a cada función se puede llamar abs(). El Polimorfismo se puede aplicar tanto a funciones como a operadores. HERENCIA: Proceso mediante el cual un objeto puede adquirir las propiedades de otro objeto. La información se hace manejable gracias a la clasificación jerárquica. OBJETO: Conjunto de variables y funciones pertenecientes a una clase encapsulados. A este encapsulamiento es al que se denomina objeto. Por tanto la clase es quien define las características y funcionamiento del objeto. Todo programa hecho en C puede correr en C++, pero no todos los programas hechos en C++ corren en C, para empezar abría que cambia su extensión de.cpp a.c (1)

10 Representación de datos en lenguaje C/C++ Estructura básica de un lenguaje en C++: (shell) (1) //Se hace la importación de librerías (2) #include <stdio.h> // pueden invocarse mas de una (3) (4) //Declaración de variables globales (5) int z=0; //variable (6) const float pi2 = 2* ; //constante (7) int main () (8) (9) int x=0,y=0; //variables locales a main (10) //bloque de instrucciones... (11) //creación de constructores opcionales (12) y=funcion (x,y); (13) /*instrucción estática->consola se usa con algunos (14) programas dev C++ por ejemplo*/ (15) return 0; //la función se puede comportar como una (cont.) (16) // acción también en C++ (17) int funcion (int &x,int y) (18) (19) int c=0; //variables local a función (20) c=y; //bloque de instrucciones (21) return c; (22) (23) //una línea vacía a veces es necesaria al final del código (24) /*a veces los cuerpos de funciones hay que declararlas arriba (25) va del cuerpo del main() para que el programa las reconozca (26) (DEV C++ ó C++) */ Declaraciones en C: Las declaraciones de variables o funciones pueden ser colocadas antes de cualquier enunciado ejecutable, siempre y cuando las declaraciones antecedan el uso de lo que se está declarando. Como se declaran variables en C: Se declaran siguiendo el patrón (sintaxis): <tipo> <nombre>; Como se declaran constantes en C: Existen dos tipos de constantes: -Constantes simbólicas: son las que permiten al programador ponerle un nombre a una constante y utilizarlo a todo lo largo del programa. Se declaran siguiendo el patrón (sintaxis): #define <identificador> <valor>; (2)

11 -Otra manera de declarar constantes en C es mediante la palabra reservada const. Este calificador permite especificar que un argumento pasado a una función no es modificable en dicha función o declarar variables constantes, en vez de declarar constantes simbólicas en el preprocesador con #define). const <tipodedato><identificador> =<valor>; Es posible inicializar y declarar más de una variable del mismo tipo en la misma sentencia: El calificador const se usa en la lista de parámetro de una función para especificar que un argumento pasado a la función no es modificable en dicha función. También puede ser utilizado para declarar un apuntador constante. Creación un apuntador constante a tipo. <tipodedato> *const <identificador>=<valor>; (Variable) Apuntador a la constante tipo. const <tipodedato> *<identificador>=<valor>; Apuntador constante a tipo constante: const <tipodedato> *const <identificador> = <valor>; Reglas de alcance de una variable El alcance de un identificador o variable es la porción del programa en el cual dicho identificador puede ser referenciado. Cuando declaramos una variable local en un bloque, esta puede ser referenciada solamente en dicho bloque o en los bloques anidados dentro de dicho bloque. <tipo> <nombre1>=<valor>,<nombre2>=<valor>,<nombre3>=<valor>; Tipo de datos: Tipo Tamaño Rango de valores char 1 byte -128 a 127 int 2 bytes a float 4 bytes 3'4 E-38 a 3'4 E+38 double 8 bytes 1'7 E-308 a 1'7 E+308 (3)

12 Calificadores de tipo Los calificadores de tipo tienen la misión de modificar el rango de valores de un determinado tipo de variable. Estos calificadores son cuatro: Signen: Le indica a la variable que va a llevar signo. Es el utilizado por defecto. Tamaño Rango de valores signed char 1 byte -128 a 127 signed int 2 bytes a Unsigned: Le indica a la variable que no va a llevar signo (valor absoluto). Tamaño Rango de valores unsigned char 1 byte 0 a 255 unsigned int 2 bytes 0 a Short: Rango de valores en formato corto (limitado). Es el utilizado por defecto. Tamaño Rango de valores short char 1 byte -128 a 127 short int 2 bytes a Long: Rango de valores en formato largo (ampliado). Tamaño Rango de valores long char 4 bytes a long int 10 bytes -3'36 E-4932 a 1'18 E+4932 Operador de resolución de alcance unario Es posible declarar variables locales y globales con un mismo nombre. C++ dispone del operador de resolución de alcance unario (::) para tener acceso a una variable global cuando está en alcance una variable local con el mismo nombre. No puede ser utilizado para tener acceso a una variable del mismo nombre en un bloque externo. Ejemplo: #include <iostream.h> float v; int main () int v=7; //se crea una variable entera ::v=10.5 //Utiliza la variable global v cout<< variable local v = <<v<< \n ; cout<< variable global v = <<::v<< \n ; return 0; (4)

13 Homonimia de funciones (Funciones con el mismo nombre) C++ permite que sean definidas varias funciones del mismo nombre (sobrecarga de funciones), siempre que estos nombres indiquen distintos conjuntos de parámetros. Esta capacidad se llama homonimia de funciones. La homonimia de la función se utiliza por lo común para crear varias funciones del mismo nombre, que ejecuten tareas similares, sobre tipos de datos distintos. Las funciones homónimas deben tener distintas listas de parámetros. La homonimia ayuda a eliminar el uso de las macros #define de C. /*Definimos dos funciones llamadas max(); una que regrese el mayor de dos enteros y otra que regrese el mayor de dos string.*/ #include <stdio.h> int max(int a,int b) if(a>d) return a; else return b; char *max(char *a, char *a) if(strcmp(a,b)>0) return a; else return b; int main() printf( max(19,69) = %d\n, max(19,69)); printf( max(abc,def) = %s\n, max( abc, def )); return 0; Comentarios en C/C++ No son tomados en cuenta por el compilador Comentario de una línea empiezan con // en adelante Comentario de texto empiezan con /* y terminan con*/ (5)

14 Secuencias de escape: Ciertos caracteres no representados gráficamente se pueden representar mediante lo que se conoce como secuencia de escape. A continuación vemos una tabla de las más significativas: \n salto de línea \b retroceso \t tabulación horizontal \v tabulación vertical \\ contrabarra \f salto de página \' apóstrofe \" comillas dobles \o fin de una cadena de caracteres Estructuras condicionales en C: Estructura IF...ELSE Sintaxis: if (<condición>) <sentencia>; // if sin llaves equivale a una sola sentencia //a ejecutar si se cumple la condición La sentencia solo se ejecuta si se cumple la condición. En caso contrario el programa sigue su curso sin ejecutar la sentencia. Otro formato: Estructura IF...ELSEIF ELSE if (<condición_1>) <sentencia_1>; else if (<condición_2>) <sentencia_2>; else if (<condición_3>) <sentencia_3>; else <sentencia_n>; /* Comentario en C observe que también un if puede también no llevar llaves en cuyo caso estaría ejecutando una instrucción inmediata */ Sentencia CONTINUE Se utiliza dentro de un bucle. Cuando el programa llega a una sentencia CONTINUE no ejecuta las líneas de código que hay a continuación y salta a la siguiente iteración del bucle. Existe otra sentencia, GOTO, que permite al programa saltar hacia un punto identificado con una etiqueta, pero el buen programador debe prescindir de su utilización. Es una sentencia muy mal vista en la programación en C. (6)

15 Ejemplo: /* Uso de la sentencia CONTINUE */ #include <stdio.h> main() int numero=1; while(numero<=100) if (numero==25) numero++; continue; printf("%d\n",numero); numero++; Estructura SWITCH Esta estructura se suele utilizar en los menús, de manera que según la opción seleccionada se ejecuten una serie de sentencias. Su sintaxis es: switch (<variable>) case <contenido_variable1>: <sentencias_1>; break; case <contenido_variable2>: <sentencias_n-1>; break; default: <sentencias_n>; break; (7)

16 /* Uso de la sentencia condicional SWITCH. */ #include <stdio.h> /*ejemplo de como hacer un switch*/ main() int dia; printf("introduce el día: "); scanf("%d", &dia); switch(dia) case 1: printf("lunes"); break; case 2: printf("martes"); break; case 3: printf("miércoles"); break; case 4: printf("jueves"); break; case 5: printf("viernes"); break; case 6: printf("sábado"); break; case 7: printf("domingo"); break; default: printf( Día incorrecto ); break; Cada case puede incluir una o más sentencias sin necesidad de ir entre llaves, ya que se ejecutan todas hasta que se encuentra la sentencia BREAK. La variable evaluada sólo puede ser de tipo entero o caracter. default ejecutará las sentencias que incluya, en caso de que la opción escogida no exista. Como hacer Ciclos en C: Estructura DO...WHILE Su sintaxis es: Do <sentencia1>; <sentencia2>; while (<condición>); (8)

17 Ejemplo: /* Uso de la sentencia DO...WHILE para hacer un menú*/ #include <stdio.h> main() char seleccion; do printf("1.- Comenzar\n"); printf("2.- Abrir\n"); printf("3.- Grabar\n"); printf("4.- Salir\n"); printf("escoge una opción: "); seleccion = getchar(); /*función que lee un caracter*/ switch(seleccion) case '1':printf("Opción 1"); break; case '2':printf("Opción 2"); break; case '3':printf("Opción 3"); while(seleccion!='4'); Estructura FOR Su sintaxis es: for (<inicialización>;<condición>;<incremento>) <sentencia1>; <sentencia2>; El flujo del bucle FOR transcurre de la siguiente forma: (9)

18 Estructura WHILE Su sintaxis es: while(<condicion>) <Sentencia1>; <Sentencia2>; Flujo de entrada/salida de C++ C++ ofrece una alternativa a las llamadas de función printf y scanf para manejar la entrada/salida de los tipos y cadenas de datos estándar. Así. En lugar de printf usamos el flujo de entrada de salida cout y el operador <<( colocar en ); y en lugar de scanf usamos el flujo de entrada estandar cin y el operador >>( obtener de ) operadores de inserción y extracción de flujo, a diferencia de printf y scanf, no requiere cadena de formato y de especificadores de conversión( especificadores de formato) para indicar los tipos de datos que son extraídos o introducidos. Para utilizar entradas/salidas de flujo, se debe incluir el archivo de cabecera iostream.h. Uso de las sentencias printf y scanf Sentencia printf ( ) La rutina printf permite la aparición de valores numéricos, caracteres y cadenas de texto por pantalla. El prototipo de la sentencia printf es el siguiente: printf(<control>,<arg1>,<arg2>...); Sentencia scanf ( ) La rutina scanf permite entrar datos en la memoria del ordenador a través del teclado. El prototipo de la sentencia scanf es el siguiente: scanf(<control>,<arg1>,<arg2>...); Suponiendo que arg1 fuera una variable mientras que arg2 fuera un especificador de formato se puede indicar al computador con que datos va a trabajar Tanto la función printf como la función scanf trabajan con especificadores de formato los cuales son: (10)

19 %c Un único carácter %d Un entero con signo, en base decimal %u Un entero sin signo, en base decimal %o Un entero en base octal %x Un entero en base hexadecimal %e Un número real en coma flotante, con exponente %f Un número real en coma flotante, sin exponente %s Una cadena de caracteres %p Un puntero o dirección de memoria El formato aunque no muy usado completo de los modificadores es el siguiente: % [signo] [longitud] [.precisión] [l/l] conversión Signo: indicamos si el valor se ajustará a la izquierda, en cuyo caso utilizaremos el signo menos, o a la derecha (por defecto). Longitud: especifica la longitud máxima del valor que aparece por pantalla. Si la longitud es menor que el número de dígitos del valor, éste aparecerá ajustado a la izquierda. Precisión: indicamos el número máximo de decimales que tendrá el valor. l/l: utilizamos l cuando se trata de una variable de tipo long y L cuando es de tipo double. Uso de los apuntadores en C: (Se recomienda consultar el apendice).-un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable que contiene el dato. Los apuntadores también deben de seguir las mismas reglas que se aplican a las demás variables, deben tener nombre únicos y deben de declararse antes de usarse Operadores de Indirección y Dirección. Hay 2 operadores que se usan cuando trabajan con direcciones en un programa C; el Operador de Indirección ( * ) y el de Dirección (&). Estos operadores son diferentes de los tratados anteriormente. El Operador de Dirección (&) regresa la dirección de una variable. Este operador está asociado con la variable a su derecha: &h; Esta línea regresa la dirección de la variable h. El Operador de Indirección (*) trabaja a la inversa del operador de Dirección. También esta asociado con la variable a su derecha, toma la dirección y regresa el dato que contiene esa dirección. Por ejemplo, la siguiente línea determina la dirección de la variable h y luego usa el operador de Indirección para accesar la variable y darle un valor de 42. Ejemplo: *(&h)=42; (11)

20 La declaración de un puntero de manera general es: Tipo *nombre de apuntador; Tipo : Especifica el tipo de objeto apuntado y puede ser cualquier tipo. Nombre de apuntador: Es el identificador del apuntador Instrucción estática->consola: (ie->c) En los programas de C algunas veces después de ejecutar el programa la consola se cierra muy rápido y no permite visualizar en un tiempo razonable el resultado del programa por consola, entonces es conveniente agregar al final de este una instrucción de modo que la consola dure un tiempo adecuado abierta esta es: system("pause"); return EXIT_SUCCESS; Esta se coloca justo antes de la última llave del main. Programa estándar hecho en C++ #include <stdlib.h> //libreria de C #include <iostream> #include <stdio.h> //libreria de C #include <cstdlid> /*variables globales, estructuras, funciones, clases, acciones*/ using namespace std; // (ie->c) main(int argc, char *argc) // main() en C/C++ da igual /*todo el bloque del programa*/ system("pause"); // (ie->c) return EXIT_SUCCESS; //puede no ser necesaria aveces(ie->c) /*se hace un enter después de la ultima llave para indicar un separador al compilador de C++, en la mayoría de los casos, si el programa se hace en lenguaje C++ el cuerpo de las funciones se declaran arriba del cuerpo del main() desde donde son llamadas*/ Cómo crear nuevos tipos de datos en C++ C++ proporciona la capacidad de crear nuevos tipos definidos por el usuario mediante el uso de la palabra reservada enum, la palabra reservada struct, la palabra reservada union y la palabra reservada class. Por ejemplo, las enumeraciones en C++ son declaradas mediante la palabra enum y se convierte en un tipo de dato nuevo. Luego, para declarar una variable del nuevo tipo de dato ya no es necesaria la palabra reservada enum, sino que se utiliza directamente el nombre del nuevo tipo de dato. Ejemplo: enum boolean FALSE, TRUE; struct Nombre char primer [10];char segundo[10];; (12)

21 Directivas del Preprocesador-> typedef La palabra reservada typedef proporciona un mecanismo para la creación de sinónimos o alias para tipos de datos anteriormente definidos. Al crear un nuevo nombre utilizando typedef no se crea un nuevo tipo; typedef simplemente crea un nuevo nombre de tipo que puede ser utilizado como un seudónimo para un nombre de tipo ya existente, lo cual ayuda a autodocumentar el programa. Ejemplo: typedef int IntArray10 [10]; La directiva del preprocesador-> #include La directiva del preprocesador #include permite que se incluya una copia del archivo especificado. Las dos formas de la directiva son: #include <filename> #include filename La diferencia entre estas formas estriba en la localización donde el preprocesador buscará el archivo a incluirse. Si el nombre del archivo está encerrado entre comillas, el preprocesador buscará el archivo en el mismo directorio que el archivo que se está compilando (este método se utiliza normalmente para incluir archivos de cabecera definidos por el programador). Si el nombre del archivo está encerrado entre corchetes angulares (< y >) la búsqueda se llevará a cabo en los directorios predesignados (por ejemplo cuando se incluyen los archivos de cabecera de la biblioteca estándar). Arreglos unidimensionales (Vectores) Un vector es un arreglo unidimensional, es decir, sólo utiliza un índice para referenciar a cada uno de los elementos. Su declaración será: <tipo> <nombre> [<tamaño>]; //tamaño es una variable por decir x El tipo puede ser cualquiera de los ya conocidos y el tamaño indica el número de elementos del vector (se debe indicar entre corchetes [ ]). En el ejemplo se puede observar que la variable i es utilizada como índice, el primer for sirve para rellenar el vector y el segundo para visualizarlo. Como se aprecia, las posiciones van de 0 a 9 (total 10 elementos). Ejemplo: /* Declaración de un arreglo. */ #include <stdio.h> main() int vector[10],i; for (i=0;i<10;i++) vector[i]=i; for (i=0;i<10;i++) printf(" %d", vector[i]); (13)

22 Podemos inicializar (asignarle valores) un vector en el momento de declararlo(igual que en Java). Si lo hacemos así no es necesario indicar el tamaño. Su sintaxis es: <tipo> <nombre> []=<valor_1>,<valor_2>,... Ejemplos: int vector[]=1,2,3,4,5,6,7,8; char vector[]="programador"; char vector[]='p','r','o','g','r','a','m','a','d','o','r'; Una particularidad con los vectores de tipo char (cadena de caracteres), es que deberemos indicar en que elemento se encuentra el fin de la cadena mediante el caracter nulo (\0). Esto no lo controla el compilador, y tendremos que ser nosotros los que insertemos este carácter al final de la cadena. Por tanto, en un vector de 10 elementos de tipo char podremos rellenar un máximo de 9, es decir, hasta vector[8]. Si sólo rellenamos los 5 primeros, hasta vector[4], debemos asignar el caracter nulo a vector[5]. Es muy sencillo: vector[5]='\0'; Ahora veremos un ejemplo de como se rellena un vector de tipo char. /* Vector de tipo char. */ #include <stdio.h> main() char cadena[20]; int i; for (i=0;i<19 && cadena[i-1]!=13;i++) cadena[i]=getche( ); if (i==19) cadena[i]='\0'; else cadena[i-1]='\0'; printf("\n%s",cadena); Podemos ver que en el for se encuentran dos condiciones: 1.- Que no se hayan rellenado todos los elementos (i<19). 2.- Que el usuario no haya pulsado la tecla ENTER, cuyo código ASCII es 13. También podemos observar una nueva función llamada getche( ), que se encuentra en conio.h. Esta función permite la entrada de un caracter por teclado. Después se encuentra un if, que comprueba si se ha rellenado todo el vector. Si es cierto, coloca el caracter nulo en el elemento 20 (cadena[19]). En caso contrario tenemos el else, que asigna el caracter nulo al elemento que almacenó el caracter ENTER. (14)

23 En resumen: al declarar una cadena deberemos reservar una posición más que la longitud que queremos que tenga dicha cadena. Llamadas a funciones con arreglos Como ya se comentó en el tema anterior, los arreglos únicamente pueden ser enviados a una función por referencia. Para ello deberemos enviar la dirección de memoria del primer elemento del arreglo. Por tanto, el argumento de la función deberá ser un puntero. Ejemplo: /* Envío de un arreglo a una función. */ #include <stdio.h> void visualizar(int []); /* prototipo */ main() int array[25],i; for (i=0;i<25;i++) printf("elemento nº %d",i+1); scanf("%d",&array[i]); visualizar(&array[0]); void visualizar(int array[]) /* desarrollo */ int i; for (i=0;i<25;i++) printf("%d",array[i]); En el ejemplo se puede apreciar la forma de enviar un arreglo por referencia. La función se podía haber declarado de otra manera, aunque funciona exactamente igual: declaración o prototipo void visualizar(int *); desarrollo de la función void visualizar(int *arreglo) Arreglos multidimensionales (Matrices) Una matriz es un arreglo multidimensional. Se definen igual que los vectores excepto que se requiere un índice por cada dimensión. (15)

24 Su sintaxis es la siguiente: <tipo> <nombre> [<tamaño_1>][<tamaño_2>],...,[<tamaño_n>]; Una matriz bidimensional se podría representar gráficamente como una tabla con filas y columnas. La matriz tridimensional se utiliza, por ejemplo, para trabajos gráficos con objetos 3D. En el ejemplo puedes ver como se rellena y visualiza una matriz bidimensional. Se necesitan dos bucles para cada una de las operaciones. Un bucle controla las filas y otro las columnas. Ejemplo: /* Matriz bidimensional. */ #include <stdio.h> main() int x, i, numeros[3][4]; /* rellenamos la matriz */ for (x=0;x<3;x++) for (i=0;i<4;i++) scanf("%d",&numeros[x][i]); /* visualizamos la matriz */ for (x=0;x<3;x++) for (i=0;i<4;i++) printf("%d",numeros[x][i]); Si al declarar una matriz también queremos inicializarla, habrá que tener en cuenta el orden en el que los valores son asignados a los elementos de la matriz. Veamos algunos ejemplos: int numeros[3][4]=1,2,3,4,5,6,7,8,9,10,11,12; Quedarían asignados de la siguiente manera: numeros[0][0]=1 numeros[0][1]=2 numeros[0][2]=3 numeros[0][3]=4 numeros[1][0]=5 numeros[1][1]=6 numeros[1][2]=7 numeros[1][3]=8 numeros[2][0]=9 numeros[2][1]=10 numeros[2][2]=11 numeros[2][3]=12 (16)

25 También se pueden inicializar cadenas de texto: char dias[7][10]="lunes","martes",,"viernes","sábado","domingo"; Para referirnos a cada palabra bastaría con el primer índice: printf("%s",dias[i]); Registros Concepto de registro Un registro es un conjunto de una o más variables, de distinto tipo, agrupadas bajo un mismo nombre para que su manejo sea más sencillo. Su utilización más habitual es para la programación de bases de datos, ya que están especialmente indicadas para el trabajo con registros o fichas. La sintaxis de su declaración es la siguiente: struct <nombre_tipo_estructura> <TDD> <nombre_variable1>; <TDD> <nombre_variable2>; <TDD> <nombre_variable3>; ; Donde tipo_estructura es el nombre del nuevo tipo de dato que hemos creado. Por último, tipo_variable y nombre_variable son las variables que forman parte del registro. Para definir variables del tipo que acabamos de crear lo podemos hacer de varias maneras, aunque las dos más utilizadas son éstas: Una forma de definir el registro es: struct trabajador char nombre[20]; char apellidos[40]; int edad; char puesto[10]; ; struct trabajador fijo, temporal; (17)

26 Otra forma es: struct trabajador char nombre[20]; char apellidos[40]; int edad; char puesto[10]; fijo, temporal; En el primer caso declaramos el registro, y en el momento en que necesitamos las variables, las declaramos. En el segundo las declaramos al mismo tiempo que al registro. El problema del segundo método es que no podremos declarar más variables de este tipo a lo largo del programa. Para poder declarar una variable de tipo registro, el mismo tiene que estar declarado previamente. Se debe declarar antes de la función main. El manejo de los registros es muy sencillo, así como el acceso a los campos (o variables) de estos registros. La forma de acceder a estos campos es la siguiente: <variable>.<campo>; Donde variable es el nombre de la variable de tipo registro que hemos creado, y campo es el nombre de la variable que forma parte del registro. Lo veremos mejor con un ejemplo basado en el registro definido anteriormente: temporal.edad = 25; Lo que estamos haciendo es almacenar el valor 25 en el campo edad de la variable temporal de tipo trabajador. Otra característica interesante de los registros es que permiten pasar el contenido de un registro a otro, siempre que sean del mismo tipo naturalmente: (Véase: Operaciones con Objetos en C++, paj. 47) fijo=temporal; Al igual que con los otros tipos de datos, también es posible inicializar variables de tipo registro en el momento de su declaración: struct trabajador fijo="pedro","hernández Suárez", 32, "gerente"; Si uno de los campos del registro es un arreglo de números, los valores de la inicialización deberán ir entre llaves: struct notas char nombre[30]; int notas[5]; ; struct notas alumno="carlos Pérez",8,7,9,6,10; (18)

27 Registros y funciones Podemos enviar un registro a una función de las dos maneras conocidas: 1.- Por valor: su declaración sería: Ejemplo: void visualizar(struct trabajador); Después declararíamos la variable fijo y su llamada sería: visualizar(fijo); Por último, el desarrollo de la función sería: void visualizar(struct trabajador datos) /* Paso de un registro por valor. */ #include <stdio.h> struct trabajador char nombre[20]; char apellidos[40]; int edad; char puesto[10]; ; void visualizar(struct trabajador); main() struct trabajador fijo; printf("nombre: "); scanf("%s",fijo.nombre); printf("\napellidos: "); scanf("%s",fijo.apellidos); printf("\nedad: "); scanf("%d",&fijo.edad); printf("\npuesto: "); scanf("%s",fijo.puesto); visualizar(fijo); void visualizar(struct trabajador datos) printf("nombre: %s",datos.nombre); printf("\napellidos: %s",datos.apellidos); printf("\nedad: %d",datos.edad); printf("\npuesto: %s",datos.puesto); (19)

28 2.- Por referencia: su declaración sería: void visualizar(struct trabajador*); Después declararemos la variable fijo y su llamada será: visualizar (&fijo); Por último, el desarrollo de la función será: void visualizar(struct trabajador *datos) Fíjense que en la función visualizar, el acceso a los campos de la variable datos se realiza mediante el operador ->, ya que lo tratamos con un puntero. En estos casos siempre utilizaremos el operador ->. Se consigue con el signo menos seguido de mayor que. Ejemplo: /* Paso de un registro por referencia. */ #include <stdio.h> struct trabajador char nombre[20]; char apellidos[40]; int edad; char puesto[10]; ; void visualizar(struct trabajador *); main() struct trabajador fijo; printf("nombre: "); scanf("%s",fijo.nombre); printf("\napellidos: "); scanf("%s",fijo.apellidos); printf("\nedad: "); scanf("%d",&fijo.edad); printf("\npuesto: "); scanf("%s",fijo.puesto); visualizar(&fijo); void visualizar(struct trabajador *datos) printf("nombre: %s",datos->nombre); printf("\napellidos: %s",datos->apellidos); printf("\nedad: %d",datos->edad); printf("\npuesto: %s",datos->puesto); (20)

29 Arreglos de registros Es posible agrupar un conjunto de elementos de tipo registro en un arreglo. Esto se conoce como arreglo de registros: struct trabajador char nombre[20]; char apellidos[40]; int edad; ; struct trabajador fijo[20]; Así podremos almacenar los datos de 20 trabajadores. Ejemplos sobre como acceder a los campos y sus elementos: para ver el nombre del cuarto trabajador, fijo[3].nombre;. Para ver la tercera letra del nombre del cuarto trabajador, fijo[3].nombre[2];. Para inicializar la variable en el momento de declararla lo haremos de esta manera: struct trabajador fijo[20] = "José", "Herrero Martínez", 29, "Luis", "García Sánchez", 46 ; Definición de tipos El lenguaje 'C' dispone de una declaración llamada typedef que permite la creación de nuevos tipos de datos. Ejemplos: typedef int entero; entero*/ entero a, b = 3; /*acabamos de crear un tipo de dato llamado /*declaramos dos variables de este tipo*/ Su empleo con registros está especialmente indicado. Se puede hacer de varias formas: Una forma de hacerlo: struct trabajador char nombre[20]; char apellidos[40]; int edad; ; typedef struct trabajador datos; datos fijo, temporal; (21)

30 Otra forma: typedef struct char nombre[20]; char apellidos[40]; int edad; trabajador datos; datos fijo, temporal; Archivos Por último veremos la forma de almacenar datos que podremos recuperar cuando deseemos. Estudiaremos los distintos modos en que podemos abrir un archivo, así como las funciones para leer y escribir en él. Apertura de archivos Antes de abrir un archivo necesitamos declarar un puntero de tipo FILE, con el que trabajaremos durante todo el proceso. Para abrir el archivo utilizaremos la función fopen(). Su sintaxis es: FILE *<nombre_del_puntero>; puntero = fopen (<nombre del archivo>, "<modo de apertura>" ); Donde puntero es la variable de tipo FILE, nombre del archivo es el nombre que daremos al archivo que queremos crear o abrir. Este nombre debe ir encerrado entre comillas. También podemos especificar la ruta donde se encuentra o utilizar un arreglo que contenga el nombre del archivo (en este caso no se pondrán las comillas). Algunos ejemplos: puntero = fopen("datos.dat","r"); puntero = fopen("c:\\txt\\saludo.txt","w"); Un archivo puede ser abierto en dos modos diferentes, en modo texto o en modo binario. A continuación lo veremos con más detalle. Modo texto w crea un archivo de escritura. Si ya existe lo crea de nuevo. w+ crea un archivo de lectura y escritura. Si ya existe lo crea de nuevo. a abre o crea un archivo para añadir datos al final del mismo. a+ abre o crea un archivo para leer y añadir datos al final del mismo. r abre un archivo de lectura. r+ abre un archivo de lectura y escritura. (22)

31 Modo binario wb w+b ab a+b rb r+b crea un archivo de escritura. Si ya existe lo crea de nuevo. crea un archivo de lectura y escritura. Si ya existe lo crea de nuevo. abre o crea un archivo para añadir datos al final del mismo. abre o crea un archivo para leer y añadir datos al final del mismo. abre un archivo de lectura. abre un archivo de lectura y escritura. La función fopen devuelve, como ya hemos visto, un puntero de tipo FILE. Si al intentar abrir el archivo se produjese un error (por ejemplo si no existe y lo estamos abriendo en modo lectura), la función fopen devolvería NULL. Por esta razón es mejor controlar las posibles causas de error a la hora de programar. Un ejemplo: FILE *pf; pf=fopen("datos.txt","r"); if (pf == NULL) printf("error al abrir el archivo"); La función freopen cierra el archivo apuntado por el puntero y reasigna este puntero a un archivo que será abierto. Su sintaxis es: freopen(<nombre del archivo>,"<modo de apertura>",<nomb_puntero>); Donde nombre del archivo es el nombre del nuevo archivo que queremos abrir, luego el modo de apertura, y finalmente el puntero que va a ser reasignado. Cierre de registros Una vez que hemos acabado nuestro trabajo con un archivo es recomendable cerrarlo. Los archivos se cierran al finalizar el programa pero el número de estos que pueden estar abiertos es limitado. Para cerrar los archivos utilizaremos la función fclose();. Esta función cierra el archivo, cuyo puntero le indicamos como parámetro. Si el archivo se cierra con éxito devuelve 0. fclose(<nomb_puntero>); Un ejemplo ilustrativo es: FILE *pf; pf = fopen("agenda.dat","rb"); if ( pf == NULL ) printf ("Error al abrir el archivo"); else fclose(pf); (23)

32 Escritura y lectura de registros A continuación veremos las funciones que se podrán utilizar dependiendo del dato que queramos escribir y/o leer en el archivo. Un ejemplo: Un carácter: fputc(<variable_caracter>,<puntero_archivo>); Escribimos un caracter en un archivo (abierto en modo escritura). FILE *pf; char letra='a'; if (!(pf=fopen("datos.txt","w"))) /* forma de controlar si hay un error */ printf("error al abrir el archivo"); exit(0); /* abandonamos el programa */ else fputc(letra,pf); fclose(pf); La función fgetc(<puntero_archivo>), lee un caracter de un archivo (abierto en modo lectura). Deberemos guardarlo en una variable. Un ejemplo: FILE *pf; char letra; if (!(pf=fopen("datos.txt","r"))) /* controlamos si se produce un error */ printf("error al abrir el archivo"); exit(0); /* abandonamos el programa */ else letra=fgetc(pf); printf("%c",letra); fclose(pf); (24)

33 Un número entero: putw(<variable_entera>,<puntero_archivo>); Escribe un número entero en formato binario en el archivo. Ejemplo: FILE *pf; int num=3; if (!(pf=fopen("datos.txt","wb"))) /* controlamos si se produce un error */ printf("error al abrir el archivo"); exit(0); /* abandonamos el programa */ else fputw(num,pf); /* también podíamos haber hecho: fputw(3,pf); */ fclose(pf); La función getw( puntero_archivo ), lee un número entero de un archivo, avanzando dos bytes después de cada lectura. Un ejemplo: FILE *pf; int num; if (!(pf=fopen("datos.txt","rb"))) /* controlamos si se produce un error */ printf("error al abrir el archivo"); exit(0); /* abandonamos el programa */ else num=getw(pf); printf("%d",num); fclose(pf); (25)

34 Una cadena de caracteres: fputs(<variable_array>,<puntero_archivo>); Escribe una cadena de caracteres en el archivo. Ejemplo: FILE *pf; char cad="me llamo Vicente"; if (!(pf=fopen("datos.txt","w"))) /* controlamos si se produce un error */ printf("error al abrir el archivo"); exit(0); /* abandonamos el programa */ else fputs(cad,pf); /* o también así: fputs("me llamo Vicente",pf); */ fclose(pf); La función fgets( variable_array, variable_entera, puntero_archivo ), lee una cadena de caracteres del archivo y la almacena en variable_array. La variable_entera indica la longitud máxima de caracteres que puede leer. Un ejemplo: FILE *pf; char cad[80]; if (!(pf=fopen("datos.txt","rb"))) /* controlamos si se produce un error */ printf("error al abrir el archivo"); exit(0); /* abandonamos el programa */ else fgets(cad,80,pf); printf("%s",cad); fclose(pf); (26)

35 Con formato: fprintf(<puntero_archivo>,<formato>,<argumentos>); Funciona igual que un printf pero guarda la salida en un archivo. Ejemplo: FILE *pf; char nombre[20]="santiago"; int edad=34; if (!(pf=fopen("datos.txt","w"))) /* controlamos si se produce un error */ printf("error al abrir el archivo"); exit(0); /* abandonamos el programa */ else fprintf(pf,"%20s%2d\n",nombre,edad); fclose(pf); La función fscanf(<puntero_archivo>,<formato>,<argumentos>), lee los argumentos del archivo. Al igual que con un scanf, deberemos indicar la dirección de memoria de los argumentos con el símbolo & ( ampersand ). Un ejemplo: FILE *pf; char nombre[20]; int edad; if (!(pf=fopen("datos.txt","rb"))) /* controlamos si se produce un error */ printf("error al abrir el archivo"); exit(0); /* abandonamos el programa */ else fscanf(pf,"%20s%2d\",nombre,&edad); printf("nombre: %s Edad: %d",nombre,edad); fclose(pf); (27)

36 Registros fwrite( *buffer,<tamaño>,<nº de veces>,<puntero_archivo>); Se utiliza para escribir bloques de texto o de datos, registros, en un archivo. En esta función, *buffer será la dirección de memoria de la cuál se recogerán los datos; tamaño, el tamaño en bytes que ocupan esos datos y nº de veces, será el número de elementos del tamaño indicado que se escribirán. fread( *buffer,<tamaño>,<nº de veces>,<puntero_archivo>); Se utiliza para leer bloques de texto o de datos de un archivo. En esta función, *buffer es la dirección de memoria en la que se almacenan los datos; tamaño, el tamaño en bytes que ocupan esos datos y nº de veces, será el número de elementos del tamaño indicado que se leerán. Otras funciones para archivos: rewind( <puntero_archivo> ): Sitúa el puntero al principio del archivo. fseek(<puntero_archivo>,long <posición>,int <origen>): Sitúa el puntero en la posicion que le indiquemos. Como origen podremos poner: 0 = SEEK_SET, el principio del archivo 1 = SEEK_CUR, la posición actual 2 = SEEK_END, el final del archivo rename(<nombre1>,<nombre2>): Su función es exactamente la misma que la que conocemos en MS-DOS. Cambia el nombre del archivo nombre1 por un nuevo nombre, nombre2. remove(<nombre>): Como la función del DOS del, podremos eliminar el archivo indicado en nombre. Detección de final de archivo La función feof(<puntero_archivo>), siempre deberemos controlar si hemos llegado al final de archivo cuando estemos leyendo, de lo contrario podrían producirse errores de lectura no deseados. Para este fin disponemos de la función feof(). Esta función retorna 0 si no ha llegado al final, y un valor diferente de 0 si lo ha alcanzado. Pues con esto llegamos al final del tema. Espero que no haya sido muy pesado. No es necesario que te aprendas todas las funciones de memoria. Céntrate sobre todo en las funciones fputs(), fgets(), fprintf(), fwrite() y fread(). Con estas cinco se pueden gestionar los archivos perfectamente. (28)

37 Prototipos de función y verificación de tipo de dato Los prototipos de función le permiten al compilador verificar por tipo la exactitud de las llamadas de función. En C++ los prototipos de función son requeridos para todas las funciones. Sin embargo, una función definida en un archivo, antes de cualquier llamada a la misma, no requiere de un prototipo de función, ya que el encabezado de función actúa como tal. Todos los parámetros de la función deberán declararse entre los paréntesis del prototipo y de la definición de función. En caso que no existan parámetros, bastará con colocar paréntesis vacíos. Ejemplo: int potencia (int, int); Operador de resolución de alcance unario Es posible declarar variables locales y globales con un mismo nombre. El operador de resolución de alcance unario (::) permite tener acceso a una variable global cuando está en alcance una variable local con el mismo nombre. El operador de resolución de alcance unario no puede ser utilizado para tener acceso a una variable con el mismo nombre en un bloque externo. Se puede tener acceso a una variable global de forma directa, sin usar el operador de resolución de alcance unario, siempre que no exista una variable local en alcance con el mismo nombre. Cómo llamar funciones: parámetros por valor y parámetros por referencia. Cuándo los argumentos se pasan en una llamada de una función por valor se efectúa una copia del valor del argumento y este se pasa a la función llamada. Las modificaciones a la copia no afectarán el valor original de la variable del llamador. Cuando un argumento es pasado por referencia, el compilador pasa la dirección de memoria del valor del parámetro a la función. Cuando se modifica el valor del parámetro (la variable local), este valor queda almacenado en la misma dirección de memoria, por lo que al retornar a la función llamadora la dirección de memoria donde se almacenó el parámetro contendrá el valor modificado. Para declarar una variable parámetro como paso por referencia, el símbolo & debe preceder al nombre de la variable. Por ejemplo la función de intercambio, que intercambia los valores de dos variables: void intercambio ( int &a, int &b) int aux = a; a = b; b = aux; Los parámetros a y b son parámetros por referencia. Por consiguiente, cualquier cambio efectuado en el interior de la función se transmitirá al exterior de la misma. Para llamar a la función intercambio () por referencia, simplemente se pasan las variables a intercambiar, por ejemplo: (29)

38 Ejemplo: int i = 3, j = 50; intercambio (i, j); También un parámetro por referencia es un seudónimo ( alias ) de su argumento correspondiente. Para indicar que un parámetro de función es pasado por referencia, solo hay que colocar un ampersand (&) después del tipo del parámetro en el prototipo de función. Debemos usar apuntadores para pasar argumentos que pudieran ser modificados por la función llamada, y usar referencias a constantes para pasar argumentos extensos que no serán modificados. Las variables de referencia deben ser inicializadas en sus declaraciones, y no pueden ser reasignadas como seudónimos a otras variables. Cuando se regresa un apuntador o una referencia a una variable declarada en la función llamada, la variable deberá ser declarada static dentro de dicha función. Las referencias pueden ser usadas como argumentos de funciones y regresar valores. Ejemplo: int ix; // ix es una variable en entera int &rx=ix; // rx es el alias de ix ix=1; // tambien rx ==1 rx=2; // tambien ix==2 Las referencias se pueden usar para proveer una función con un alias de un argumento real de llamada de función. Este permite cambiar el valor del argumento de llamada de función tal como se conoce de otros lenguajes de programación de llamada por referencia: /*U se pasa por valor y S por referencia*/ void mira (int U, int &S) U=42; S=42; void mar() int U,S; U=S=1; //inicializacion en una linea mirar(u,s); //en este punto S=42 y U=1; (30)

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

Sintaxis de los aspectos generales de un lenguaje de programación

Sintaxis de los aspectos generales de un lenguaje de programación Sintaxis de los aspectos generales de un lenguaje de programación por Iván Cruz Un lenguaje de programación cuenta con una estructura y sintaxis que debe ser utilizada exactamente como se indique para

Más detalles

Programación estructurada (Introducción a lenguaje C)

Programación estructurada (Introducción a lenguaje C) Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada

Más detalles

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Departamento de Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Uso de punteros Objetivos de la práctica: - Entender la representación de números (enteros y reales) en el

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:

Más detalles

CAPITULO 2: VARIABLES Y CONSTANTES

CAPITULO 2: VARIABLES Y CONSTANTES CAPITULO 2: VARIABLES Y CONSTANTES 1. TIPOS DE DATOS. Existen cinco tipos de datos atómicos en C; char: carácter, int: entero, float: real coma flotante, double: real de doble precisión y void: sin valor.

Más detalles

Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno

Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno 1.1. Gramática Léxica 1.1.1. Elementos Léxicos Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno ->

Más detalles

TEMA 7. ARRAYS (LISTAS Y TABLAS).

TEMA 7. ARRAYS (LISTAS Y TABLAS). TEMA 7. ARRAYS (LISTAS Y TABLAS). En capítulos anteriores se han descrito las características de los tipos de datos básicos o simples (carácter, entero y coma flotante). Asimismo, se ha aprendido a definir

Más detalles

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv Introducción al lenguaje C Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Instrucciones del pre-procesador procesador 4. Tipos de datos

Más detalles

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Objetivos Conocer los elementos que conforman un programa en C 1. Elementos léxicos de un Programa Cuando el programa

Más detalles

Caracter a caracter los datos pueden ser escritos o leidos carácter a carácter, con las funciones fputc() y fgetc().

Caracter a caracter los datos pueden ser escritos o leidos carácter a carácter, con las funciones fputc() y fgetc(). Notas auxiliares sobre manejo de archivos Las funciones de entrada salida (E/S) de las librerías estandar de C, permiten leer y escribir datos a, y desde, archivos y dispositivos. La caracteristica fundamental

Más detalles

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C. El primer objetivo de un programa informático es el manejo de datos. Un dato es toda aquella información que se puede tratar en un programa informático. En este artículo vamos a conocer los tipos de datos

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

Tipos de Datos en C. Palabras reservadas en C

Tipos de Datos en C. Palabras reservadas en C Tipos de Datos en C Tipo Tamaño de bits Rango char 8-128 a 127 unsigned char 8 0 a 255 signed char 8-128 a 127 int 16 32768 a 32767 unsigned int 16 0 a 65535 signed int 16 Igual que int short int 16 Igual

Más detalles

INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C

INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C Programación en Entornos Multitarea Curso 2006/2007 Introducción C: lenguaje de medio nivel 32 palabras clave Eficiencia de ejecución del código generado Portabilidad

Más detalles

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Introducción al lenguaje C Ampliación de Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Tipos de datos escalares 4. Operadores básicos

Más detalles

Algoritmos y Programación I

Algoritmos y Programación I Algoritmos y Programación I ARREGLOS Y ESTRUCTURAS EN C Arreglos Un arreglo o vector es un conjunto de datos del mismo tipo, almacenados de forma contigua (es decir uno al lado del otro) en memoria principal.

Más detalles

Apuntadores en C y C++

Apuntadores en C y C++ Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta

Más detalles

Departamento de Electrónica

Departamento de Electrónica Introducción al Departamento de Electrónica Fundación San Valero Introducción al 1 Introducción al Introducción al 2 Introducción al Introducción al 3 Características del Características del Departamento

Más detalles

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero

TEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando

Más detalles

Introducción a la Programación

Introducción a la Programación Introducción a la Programación Fundamentos de Programación Ingeniería Informática en Sistemas de Información Alicia Troncoso 1 Contenido l Introducción l Mi primer programa l Etapas a seguir en la programación

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos

Más detalles

Programación Estructurada. Sesión 2:El lenguaje de programación C

Programación Estructurada. Sesión 2:El lenguaje de programación C Programación Estructurada Sesión 2:El lenguaje de programación C Contextualización Una parte importante del lenguaje C son las palabras reservadas, son identificadores con un significado predefinido. Estas

Más detalles

Tema 3: Entrada/Salida de Ficheros

Tema 3: Entrada/Salida de Ficheros Tema 3: Objetivo: Almacenar datos en un dispositivo de almacenamiento secundario (p.e. disco duro). Pasos a seguir: 1 Abrir fichero 2 Escribir/leer del fichero 3 Cerrar fichero 1 Tema 3: Abrir el fichero:

Más detalles

Estructura de datos y Programación

Estructura de datos y Programación Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de

Más detalles

Análisis y escritura de las estructuras de control

Análisis y escritura de las estructuras de control Análisis y escritura de las estructuras de control por Iván Cruz En esta lectura se abordarán las estructuras de control del lenguaje de programación C, estas estructuras. Permiten al programador comunicarse

Más detalles

Objetivos. El alumno conocerá y aplicará el concepto de archivo para el almacenamiento y recuperación de datos persistentes.

Objetivos. El alumno conocerá y aplicará el concepto de archivo para el almacenamiento y recuperación de datos persistentes. Objetivos El alumno conocerá y aplicará el concepto de archivo para el almacenamiento y recuperación de datos persistentes. Al final de esta práctica el alumno podrá: 1. Utilizar las herramientas para

Más detalles

Instituto Tecnológico de Celaya

Instituto Tecnológico de Celaya ELEMENTOS BÁSICOS DE C++: DECLARACIÓN DE VARIABLES A través de operaciones aritméticas (suma, resta, etc.) y lógicas (por ejemplo, comparaciones) los programas manipulan datos tales como números y caracteres.

Más detalles

Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas

Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas Agenda 2.1 Familiarización con el ambiente de programación 2.2 Análisis de la estructura de un programa 2.3 Envío de mensajes a la salida estándar

Más detalles

Estructuras de Datos Declaraciones Tipos de Datos

Estructuras de Datos Declaraciones Tipos de Datos Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación

Más detalles

PROGRAMACIÓN EN LENGUAJE C VARIABLES Y CONSTANTES

PROGRAMACIÓN EN LENGUAJE C VARIABLES Y CONSTANTES VARIABLES Y CONSTANTES Variables: Es un espacio reservado en la memoria donde podemos almacenar un valor durante la ejecución de un programa, a dicho espacio se le asocia un nombre (identificador). El

Más detalles

UNIDAD 1. Algoritmo se define como un conjunto de instrucciones que la computadora debe seguir para resolver un problema.

UNIDAD 1. Algoritmo se define como un conjunto de instrucciones que la computadora debe seguir para resolver un problema. UNIDAD 1 1.1 Definición de Algoritmo La palabra algoritmo se deriva de la traducción al latín del nombre Muhammad Musa Al-khawarizmi, un matemático y astrónomo árabe que en el siglo IX escribió un tratado

Más detalles

Funciones Definición de función

Funciones Definición de función Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas

Más detalles

CURSO DE LENGUAJE C. 4.1 Conceptos básicos de funciones 4.2 Funciones que regresan valores no enteros 4.3 Variables externas 4.4 Reglas de alcance

CURSO DE LENGUAJE C. 4.1 Conceptos básicos de funciones 4.2 Funciones que regresan valores no enteros 4.3 Variables externas 4.4 Reglas de alcance Capítulo 1. Introducción general 1.1 Comencemos 1.2 Variables y expresiones aritméticas 1.3 La proposición FOR 1.4 Constantes simbólicas 1.5 Entrada y salida de caracteres 1.6 Arreglos 1.7 Funciones 1.8

Más detalles

TEMA 02 TIPOS, OPERADORES Y EXPRESIONES

TEMA 02 TIPOS, OPERADORES Y EXPRESIONES TEMA 02 TIPOS, OPERADORES Y EXPRESIONES 2.1.- Introducción. 2.2.- Datos. 2.3.- Entrada y salida básica. 2.4.- Modificadores. 2.5.- Cadenas de caracteres. 2.6.- Operadores. 2.7.- Precedencia de operadores.

Más detalles

Lección 2 Introducción al lenguaje C

Lección 2 Introducción al lenguaje C Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)

Más detalles

Una función es un miniprograma dentro de un programa. Las funciones contienen varias

Una función es un miniprograma dentro de un programa. Las funciones contienen varias TEMA 6. FUNCIONES. Una función es un miniprograma dentro de un programa. Las funciones contienen varias sentencias bajo un solo nombre, que un programa puede utilizar una o más veces para ejecutar dichas

Más detalles

Archivos. Programación en C 1

Archivos. Programación en C 1 Archivos Programación en C 1 Índice Tipos de archivos. Apertura de archivos. Cierre de archivos. Lectura de archivos. Escritura de archivos. Acceso directo en archivos binarios. Programación en C 2 Introducción

Más detalles

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE) Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben

Más detalles

6. Archivos. Programación II, FCFM, BUAP

6. Archivos. Programación II, FCFM, BUAP 6. Archivos Programación II, FCFM, BUAP Definición Un archivo o fichero desde el punto de vista informático es una colección de información almacenada en memoria secundaria (un medio externo) y no en memoria

Más detalles

Programación En Lenguaje C

Programación En Lenguaje C Programación En Lenguaje C Introducción Básica para Primero de Bachillerato TECNOLOGÍA DE LA INFORMACIÓN IES PALAS ATENEA Lenguaje C Estructurado Secuencial De alto Nivel Altamente portable Necesita un

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación

Más detalles

Datos y tipos de datos

Datos y tipos de datos Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato

Más detalles

Tema 13: Manejo de archivos en lenguaje C

Tema 13: Manejo de archivos en lenguaje C Tema 13: Manejo de archivos en lenguaje C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco)

Más detalles

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos 1.1 Tipos de Datos Primitivos 1.2 Tipos de datos estructurados 1.2.1 Arreglos unidimensionales, bidimensionales y cadenas de caracteres 1.2.2 Registros o Estructuras (unión y estructura) 1.3 Definición

Más detalles

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.

Más detalles

Para C un chero no es más que una porción de almacenamiento

Para C un chero no es más que una porción de almacenamiento Ficheros en C Para C un chero no es más que una porción de almacenamiento de memoria. C representa un chero como una estructura, de hecho el chero stdio.h contiene la dención de un chero como si fuese

Más detalles

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen Fundamentos de Informática. Dpto. de ATC - Página 1 de 8 conceptos Manejo de ficheros en C Contienen los datos que se almacenan en dispositivos de almacenamiento masivo: disquetes, discos duros, DROM,

Más detalles

Tema 5. Entrada y Salida

Tema 5. Entrada y Salida Tema 5 Entrada y Salida Contenidos 1. Conceptos Previos de Entrada y Salida de Datos. 2. Funciones de Salida de Datos. putchar puts printf 3. Funciones de Entrada de Datos. getchar gets scanf 4. Ficheros

Más detalles

U.A.B.C. Facultad de Ingeniería Programación Estructurada UNIDAD III

U.A.B.C. Facultad de Ingeniería Programación Estructurada UNIDAD III UNIDAD III Funciones 3.1 Forma general de una función. C fué diseñado como un lenguaje de programación estructurado, también llamado programación modular. Por esta razón, para escribir un programa se divide

Más detalles

LENGUAJE. Tema 8 Ficheros

LENGUAJE. Tema 8 Ficheros LENGUAJE Tema 8 Ficheros FICHEROS EN C Los ficheros, en contraposición con las estructuras de datos vistas hasta ahora (variables simples, vectores, registros, etc.), son estructuras de datos almacenadas

Más detalles

Lenguaje de Programación: C++ Repaso de Material C++

Lenguaje de Programación: C++ Repaso de Material C++ UG Lenguaje de Programación: C++ Repaso de Material C++ Universidad de Guanajuato Octubre 2010 Variables Tipos de Variables Operadores Variable Para poder leer algo, necesitamos un lugar donde poner lo

Más detalles

Introducción a C++ y Code::Blocks

Introducción a C++ y Code::Blocks Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete

Más detalles

Índice. Estructuras de datos en Memoria Principal. Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa

Índice. Estructuras de datos en Memoria Principal. Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa Índice Estructuras de datos en Memoria Principal Vectores Matrices Cadenas de caracteres Estructuras Estructuras de datos en Memoria Externa Ficheros Tema: Estructuras de Datos 2 Estructuras Una estructura

Más detalles

Tipos de datos y Operadores Básicos

Tipos de datos y Operadores Básicos Módulo I: Conceptos Básicos Tema 1. Qué es un ordenador? Tema 2. Cómo se representan los datos en un ordenador? Tema 3. Qué es un lenguaje de programación? Tema 4. Cómo se hace un programa informático?

Más detalles

Laboratorio de Arquitectura de Redes. Datos en lenguaje C

Laboratorio de Arquitectura de Redes. Datos en lenguaje C Laboratorio de Arquitectura de Redes Datos en lenguaje C Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales Tamaño y rango de los datos

Más detalles

Introducción general al Lenguaje C (2010/2011)

Introducción general al Lenguaje C (2010/2011) Luis Valencia Cabrera lvalencia@us.es (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice

Más detalles

Tipos de variables. Lenguaje C. Departamento de Electrónica. Tipos de datos, variables y constantes. Fundación San Valero

Tipos de variables. Lenguaje C. Departamento de Electrónica. Tipos de datos, variables y constantes. Fundación San Valero Lenguaje C Tipos de variables Departamento de Electrónica Fundación San Valero Tipos de datos, Cinco tipos de datos básicos: Carácter (char): 8 bits -128 a 127. Entero (int): 32 bits -2.147.483.648 a 2.147.483.647.

Más detalles

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. Tema 2. TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. PARTE : VARIABLES, OPERADORES Y CONSTANTES.. INTRODUCCIÓN AL LENGUAJE C 2. PROGRAMAS BÁSICOS EN LENGUAJE C 3. DATOS EN LENGUAJE C

Más detalles

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Laboratorio de Arquitectura de Redes. Entrada y salida estándar Laboratorio de Arquitectura de Redes Entrada y salida estándar Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato: scanf() El buffer de teclado Entrada

Más detalles

Índice. Estructuras de datos en Memoria Principal: Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa:

Índice. Estructuras de datos en Memoria Principal: Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa: Índice Estructuras de datos en Memoria Principal: Vectores Matrices Cadenas de caracteres Estructuras Estructuras de datos en Memoria Externa: Ficheros Tema: Estructuras de Datos 2 Cadenas de caracteres

Más detalles

CAPITULO 4: ENTRADA Y SALIDA DE DATOS.

CAPITULO 4: ENTRADA Y SALIDA DE DATOS. CAPITULO 4: ENTRADA Y SALIDA DE DATOS. 1. INTRODUCCIÓN. Hemos visto que el lenguaje C va acompañado de una colección de funciones de biblioteca que incluye un cierto número de funciones de entrada/salida.

Más detalles

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs. Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1

Más detalles

Operaciones de E/S en ANSI C

Operaciones de E/S en ANSI C Operaciones de E/S en ANSI C Las operaciones de entrada/salida estándar (realizadas habitualmente con printf y scanf) se realizan en realidad sobre ficheros que representan los dispositivos mediante los

Más detalles

LEER RECUPERAR EXTRAER DATOS DE FICHEROS O ARCHIVOS EN C. FGETC, GETC, FGETS, FSCANF. EJERCICIOS (CU00538F)

LEER RECUPERAR EXTRAER DATOS DE FICHEROS O ARCHIVOS EN C. FGETC, GETC, FGETS, FSCANF. EJERCICIOS (CU00538F) APRENDERAPROGRAMAR.COM LEER RECUPERAR EXTRAER DATOS DE FICHEROS O ARCHIVOS EN C. FGETC, GETC, FGETS, FSCANF. EJERCICIOS (CU00538F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C

Más detalles

Estructura de Datos ARREGLOS

Estructura de Datos ARREGLOS Estructura de Datos ARREGLOS ESTRUCTURAS DE INFORMACIÓN Una estructura de datos o de información es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen

Más detalles

Introducción a Lenguaje C. Jornadas de Octubre 2009 Grupo de Usuarios de Linux Universidad Carlos III Tania Pérez

Introducción a Lenguaje C. Jornadas de Octubre 2009 Grupo de Usuarios de Linux Universidad Carlos III Tania Pérez Jornadas de Octubre 2009 Grupo de Usuarios de Linux Universidad Carlos III Tania Pérez El lenguaje C es: Estructurado Portable. Flexible, veloz y potente. Fácil modificación. Compilado. 2 Algunas características

Más detalles

El lenguaje C. if (a>3) { printf("hola"); // bloque printf("%d",a); // de getch(); //código } Partes de un programa en C.

El lenguaje C. if (a>3) { printf(hola); // bloque printf(%d,a); // de getch(); //código } Partes de un programa en C. El lenguaje C El lenguaje C es uno de los lenguajes de programación estructurada más utilizados en nuestros días. El principal componente estructural de C es la función. En C, las funciones son bloques

Más detalles

Informática I para Bachillerato

Informática I para Bachillerato CIMAT C++ C/C++ de Datos CIMAT Sesión 15 Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos sostenidas o mantenidas juntas en una sola unidad, a diferencia de los arreglos

Más detalles

Descripción de un Programa

Descripción de un Programa Unidad 2 Descripción de un Programa 1 El Lenguaje C (1) El lenguaje C fue creado en 1972 por Ken L. Thompson y Dennis M. Ritchie en los Laboratorios Bell. Es evolución de un lenguaje más antiguo: B (a

Más detalles

Fundamentos de Informática 4. Primeros Programas, Primeros Diseños

Fundamentos de Informática 4. Primeros Programas, Primeros Diseños Fundamentos de Informática 4. Primeros Programas, Primeros Diseños Fundamentos de Informática Grado en Ingeniería Química 2 Contenidos 1 Empezando con C 2 Variables 3 Entrada de datos 4 Operadores 5 Condiciones

Más detalles

Lenguajes de programación

Lenguajes de programación Lenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa de computador es una secuencia de estas instrucciones Etapas

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

Cursosindustriales. Curso de C / C++ Por Deimos_hack

Cursosindustriales. Curso de C / C++ Por Deimos_hack MÓDULO 1. ESTRUCTURAS Y FUNCIONES. En los capítulos anteriores has visto como los arrays permiten almacenar diferentes datos, pero todos del mismo tipo de dato. En la práctica esto no compensa debido a

Más detalles

Archivos. Conceptos SESION 13

Archivos. Conceptos SESION 13 Archivos SESION 13 Conceptos Definición Un archivo es una secuencia de bits almacenados en algún dispositivo externo tal como un disco o una cinta magnética. En C un archivo es simplemente un flujo(stream)

Más detalles

Estructuración del programa en partes más pequeñas y sencillas

Estructuración del programa en partes más pequeñas y sencillas Introducción Estructuración del programa en partes más pequeñas y sencillas Modularización Propósito único Identificable Reusable Mayor claridad: programación, depuración, etc. Construcción de librerías

Más detalles

LENGUAJE. Tema 2 Elementos de un programa

LENGUAJE. Tema 2 Elementos de un programa LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar

Más detalles

Estructuras de Datos Estáticas. Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos estáticas

Estructuras de Datos Estáticas. Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos estáticas Fundación Misión Sucre Colegio Universitario de Caracas Taller 2: Estructuras de Datos Estáticas Objetivo Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos estáticas Contenido

Más detalles

Programación Orientada a Objetos en C++

Programación Orientada a Objetos en C++ Unidad I Programación Orientada a Objetos en C++ Programación Orientada a Objetos en C++ Programación I - 0416202 Contenido Esta lección abarca los siguientes temas: Estructura y declaración de una clase

Más detalles

Curso de Programación Avanzada en C

Curso de Programación Avanzada en C Curso de Programación Avanzada en C Copyright, 1996 Universidad Sim on Bol ivar 1 Prof. Mariela J. Curiel Contenido del Curso Conceptos BásicosB Estructuras de Control Arreglos Otros tipos de datos derivados

Más detalles

Capítulo 4. Control de flujo. Continuar

Capítulo 4. Control de flujo. Continuar Capítulo 4 Control de flujo Continuar Introducción El control de flujo permite encausar a la computadora sobre la ruta que debe seguir al momento de la ejecución de un programa, para ello se apoya en las

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial V1.1 Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C V1.1 Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales

Más detalles

REPRESENTACIÓN DE DATOS

REPRESENTACIÓN DE DATOS REPRESENTACIÓN DE DATOS Tipos de datos primitivos Tipos de Datos Estructurados TIPOS DE DATOS SIMPLES O PRIMITIVOS Dato Longitud Rango 2 TIPOS DE DATOS SIMPLES O PRIMITIVOS Surgen de la necesidad de tener

Más detalles

PUNTEROS (Apuntadores)

PUNTEROS (Apuntadores) PUNTEROS (Apuntadores) Unidad III INTRODUCCIÓN A PUNTEROS. CONCEPTOS BÁSICOS. DECLARACIÓN DE PUNTEROS. PUNTEROS Como una colección de posiciones de memoria consecutivas. En ella se almacenan los distintos

Más detalles

PARADIGMA DE POO - CLASES

PARADIGMA DE POO - CLASES PARADIGMA DE POO - CLASES Los programas estructurados se basan en estructuras de control bien definidas, bloques de código, subrutinas independientes que soportan recursividad y variables locales. La esencia

Más detalles

DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0

DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0 DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0 Este documento define los elementos de programación del lenguaje P-0, basado en un subconjunto del lenguaje de programación Arduino. 1.- PROGRAMA Un programa

Más detalles

INTRODUCCIÓN AL LENGUAJE C

INTRODUCCIÓN AL LENGUAJE C INTRODUCCIÓN AL LENGUAJE C Fundamentos de Informática EUP ULPGC Jose Torres 1 de 36 Historia de C Precursores: muchas ideas provienen de BCPL (Martin Richards, 1967) y de B (Ken Thompson, 1970) C fue diseñado

Más detalles

Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C. Presentación resumen del libro: EMPEZAR DE CERO A PROGRAMAR EN lenguaje C Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C 1 OBJETIVOS Aprender a

Más detalles

Tema 05: Elementos de un programa en C

Tema 05: Elementos de un programa en C Tema 05: Elementos de un programa en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1

Más detalles

UNIDAD IV ESTRUCTURA DE DATOS ESTÁTICAS MATRICES

UNIDAD IV ESTRUCTURA DE DATOS ESTÁTICAS MATRICES UNIDAD IV ESTRUCTURA DE DATOS ESTÁTICAS MATRICES 1. Arreglos Unidimensionales (Vectores) Con fines académicos, un arreglo unidimensional puede compararse con una columna de una hoja electrónica, por ejemplo,

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Entrada y salida estándar V1.3 Autores Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato:

Más detalles

1 Introducción a los algoritmos y a la programación de computadoras... 1

1 Introducción a los algoritmos y a la programación de computadoras... 1 Contenido - IX Contenido 1 Introducción a los algoritmos y a la programación de computadoras... 1 1.1 Introducción... 2 1.2 Concepto de algoritmo... 2 1.2.1 Definición de algoritmo y problema... 2 1.2.2

Más detalles

EJERCICIOS. Algo de C CADENAS

EJERCICIOS. Algo de C CADENAS EJERCICIOS (1) Sea el lenguaje Todos los números binarios que contienen el grupo 00 por lo menos una vez. Dibuje el DT de un AFN que lo reconozca. (2) Escriba la descripción formal del AFN diseñado en

Más detalles