El Lenguaje de Programación C (Pt. 2) Organización de Computadoras Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur

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

Download "El Lenguaje de Programación C (Pt. 2) Organización de Computadoras Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur"

Transcripción

1 El Lenguaje de Programación C (Pt. 2) Organización de Computadoras Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur

2 Organización de Computadoras 2 Copyright Copyright A. G. Stankevicius Se asegura la libertad para copiar, distribuir y modificar este documento de acuerdo a los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta delantera o trasera. Una copia de esta licencia está siempre disponible en la página

3 Organización de Computadoras 3 Contenidos Introducción al paradigma imperativo. Sentencias de control. Entrada y salida estándar. Pasaje de parámetros. Tipos de datos estructurados. Gestión de la memoria dinámica. Estructuras de datos dinámicas. Gestión de archivos.

4 Organización de Computadoras 4 Punteros Las variables declaradas de tipo puntero representan direcciones de memoria. En todo momento se debe tener clara la diferencia entre una variable de tipo puntero y el dato alojado en la dirección por él apuntada. Los punteros se declaran con un asterisco delante del identificador de la variable: int *px, y; /* px es un puntero e y es un entero */

5 Organización de Computadoras 5 Operaciones sobre punteros En relación a los punteros, existen dos operadores fundamentales: Desreferenciamiento: si px es un puntero, la expresión *px denota al contenido apuntado por el puntero (es decir, el valor almacenado en la dirección referenciada por el puntero). Enreferenciamiento: si x es una variable, la expresión &x denota a la dirección de memoria donde se encuentra almacenado el valor de x.

6 Organización de Computadoras 6 Operaciones sobre punteros int x = 10, y = 5; int *px; 1000: 1001: 1002: 10 5? int x int y int *px px = &x; *px = &y; 1000: 1001: 1002: int x int y int *px px = 1234; // tendrá sentido?

7 Organización de Computadoras 7 Aritmética sobre punteros Los punteros se comportan como cualquier otra tipo elemental, es decir, admiten toda la gama de operaciones aritméticas. La clave para entender esto radica en que los punteros almacenan en esencia direcciones de memoria, en otras palabras, enteros positivos. Las operaciones aritméticas se comportan de manera inteligente, teniendo en cuenta el tipo base al cual apuntan los punteros.

8 Organización de Computadoras 8 Aritmética sobre punteros int vector[5] = {10, 20, 30, 40, 50}; int *pv = vector; // aquí, qué denota *pv? *pv = 15; *(pv + 3) += 5; // y aquí? char string[250] = {'M', 'a', 'r', 'í', 'a'}; char *ps = &string[2]; *(ps + 2) = 'o'; // en qué cambió string?

9 Organización de Computadoras 9 Pasaje por referencia Los punteros permiten simular un pasaje de parámetros por referencia: int reset(int *a, int b) { } *a = 0; b = 0; // *a y b son reseteados. void main() { } int x = 1, y = 1; reset(&x, y); // x vale 0, pero y vale 1.

10 Organización de Computadoras 10 Pasaje por referencia int a = 10, b = 20; void cambiar(int p, int *q) { } p += 2; *q += p; int main () { } cambiar(a, &b); printf( a vale %i y b vale %i, a, b);

11 Organización de Computadoras 11 Punteros genéricos Para declarar un puntero genérico, el cual sea capaz de apuntar datos de distintos tipos, se debe apelar al tipo void. Este tipo solo puede figurar como tipo base de un punteros, es decir, declarar a una variable común de tipo void carece de sentido. void *px; // válido. void x; // inválido.

12 Organización de Computadoras 12 Definición de arreglos La definición de arreglos y matrices se realiza indicando las dimensiones entre corchetes: // un arreglo de 25 enteros int a[25] // una matriz de reales de 4x4 float vx[4][4]; // un arreglo de carácteres char string[250];

13 Organización de Computadoras 13 Indexado de arreglos A diferencia de otros lenguajes, en C la primer componente de un arreglo ocupa la posición 0: int i, vector[10]; for (i = 0; i < 10; i++) { // empieza en 0 } vector[i] = i; // y termina en 9!

14 Organización de Computadoras 14 Inicialización de arreglos Los arreglos en C pueden inicializarse al mismo tiempo que son definidos: int vector[5] = {0, 1, 2, 3, 4}; int matrix[2][3] = { {1, 2, 3}, char cadena1[250] = {4, 5, 6} }; {'H', 'o', 'l', 'a', '!'}; char cadena2[250] = Hola! ; // será cadena1 == cadena2?

15 Organización de Computadoras 15 Cadenas de caracteres En este lenguaje las cadenas de caracteres son simples arreglos de caracteres que terminan en un caracter nulo ('\0'): char cadena1[250] = {'H', 'o', 'l', 'a', '!', '\0'}; char cadena2[250] = Hola! ; /* ahora cadena1 y cadena2 resultan equivalentes. */

16 Organización de Computadoras 16 Asignación de arreglos El operador de asignación no puede utilizarse con arreglos ni con cadenas de caracteres. int a[5], b[5]; a[0] = 1; a[2] = 3; b = a; // Error! No confundir con la inicialización de arreglos, la cual si está permitida: int c[5] = {0, 3, 2, 0, 0};

17 Organización de Computadoras 17 Funciones de librería C dispone de una gran cantidad de funciones de librería sobre cadenas de caracteres (presentes en la librería strings): strcat(): para concatenar strings. strcpy(): para copiar strings. strcmp(): para comparar dos strings lexicográficamente. strlen(): para determinar la longitud de un string. strstr(): para buscar un string en otro.

18 Organización de Computadoras 18 Entrada estándar de strings El modificador %s permite el ingreso de cadenas de caracteres por parte del usuario: char str[25]; scanf( %s, str); // no falta algo?? /* lee hasta encontrar un separador (blancos, fin de líneas, etc.) */ Para leer un string hasta el fin de línea se debe usar el modificador %[^\n] : scanf( %[^\n], str); // lee hasta el '\n'

19 Organización de Computadoras 19 Arreglos y punteros Una variable de tipo arreglo se asimila a un puntero a su primer componente. En consecuencia, puede ser utilizada como tal: int *pb, *pc; int a[5] = {10,20,30,40,50}; pb = a; *pb = 15; pc = &a[3]; *pc += 5; a: pb: pc:

20 Organización de Computadoras 20 Pasaje de arreglos Al pasar un arreglo como argumento, se debe dejar su primera dimensión sin especificar: void times(int vector[], int matrix[][4]) { }... int main() { } int a[12], b[4][4]; times(a, b);

21 Organización de Computadoras 21 Pasaje de arreglos Cabe señalar que, producto de esta omisión, no resulta del todo trivial determinar la longitud de los arreglos recibidos como argumento. Una alternativa relativamente directa consiste en agregar un parámetro adicional que informe el valor de la dimensión faltante. Otra posibilidad es usar alguna variable global para comunicar ese dato. Una tercer propuesta es acordar que el arreglo tenga un tamaño predeterminado, haciendo uso por caso de una constante para denotar ese tamaño.

22 Organización de Computadoras 22 Usando un parámetro extra void mostrar(int vx[], int size) { } int i; for (i = 0; i < size; i++) printf( Elto nro. %i = %i\n, i, vx[i]); int main() { } int a[5] = {10, 20, 30, 40, 50}; mostrar(a,5);

23 Organización de Computadoras 23 Usando una variable global int size = 5; void mostrar(int vx[]) { } int i; for (i = 0, i < size, i++) printf( Elto nro. %i = %i\n, i, vx[i]); int main() { } int a[5] = {10, 20, 30, 40, 50}; mostrar(a);

24 Organización de Computadoras 24 Registros Frecuentemente hace falta manipular múltiples datos de una cierta entidad. Por caso, nombre, apellido y número de registro de un alumno. También, frecuentemente hay que retener datos de múltiple entidades. Qué estructura de datos resulta más conveniente usar? Múltiples arreglos, uno para cada atributo de las entidades?

25 Organización de Computadoras 25 Definición de un registro Los registros son un tipo de dato estructurado compuesto de un conjunto de campos, los que son de otros tipos (básicos o complejos) y que se les asocia una etiqueta a cada uno: struct etiqueta { tipo1 campo1; tipo2 campo2;... } variable1, variable2,...;

26 Organización de Computadoras 26 Definición de un registro struct persona { char nombre[20]; int edad; float altura; } profesor, alumnos[10]; struct persona unprofesor = { Juan Perez, 32, 1.82}; struct persona *palumno;

27 Organización de Computadoras 27 Acceso a los campos Los campos se acceden de dos maneras: Usando el operador punto (.), si es un registro. O bien, usando el operador flecha (->), si se trata de un puntero a un registro. struct persona el, *ella, todos[20]; printf( Nombre: %s\n, el.nombre); todos[2].edad = 20; ella = &todos[2]; printf( Su edad es %d\n, ella->edad);

28 Organización de Computadoras 28 Pasaje de registros En general, ninguna estructura de datos compleja debe ser pasada por valor. La razón es que esto implica el copiado en tiempo de ejecución de mucha información. Por ende, los registros no deben ser pasados como argumentos, al menos no de forma directa. En otras palabras, siempre conviene pasar por valor un puntero a la estructura en cuestión. En todas las arquitecturas, los punteros ocupan apenas unos bytes.

29 Organización de Computadoras 29 Definición de enumerados Los enumerados son conjuntos de constantes numéricas definidas por el usuario. enum colores {rojo, verde, azul}; enum colores fondo, borde = verde; enum booleano { falso = 0, verdadero = 1 }; enum booleano condicion = falso;

30 Organización de Computadoras 30 Definición de tipos de datos Para definir nuevos tipos de datos a partir de otros ya definidos se usa la sentencia typedef: typedef int booleano; typedef struct persona tpersona; typedef struct punto { int coordenadas[3]; enum colores color; } tpunto; tpunto plano[3];

31 Organización de Computadoras 31 Modificadores de variables La declaración de variables acepta los siguientes modificadores: static: el valor de la variable se debe conservar entre las llamadas a la función. register: la variable es almacenada, de ser posible, en un registro del procesador, en vez de hacerlo en memoria principal. volatile: la variable puede ser modificada por un proceso exterior. const: la variable no puede ser modificada, sólo inicializada.

32 Organización de Computadoras 32 Modificadores de variables #include <stdio.h> void count() { } static int acc = 0; printf( %d\n, acc++); int main() { // qué valores se imprimen? } count(); count(); count(); return 0;

33 Organización de Computadoras 33 Modificadores de variables const int max = 10; int letra(const char *text, char l) { int i, acc = 0; for (i=0; i < max && text[i]; i++) if(text[i] == l) acc++; return acc; }

34 Organización de Computadoras 34 Declaraciones constantes Existen dos formas de declarar una variable como constante: const int x = 5; int const x = 5; Pero, al tratarse de punteros no da lo mismo: const char * origen; char * const origen; Consejo práctico: leer la declaración siempre de atrás para adelante!

35 Organización de Computadoras 35 Modificadores de funciones Las funciones también pueden ser declaradas con otros modificadores: static: esta es una restricción de enlace. Denota que sólo se puede usar dentro del archivo de código fuente actual. extern: la variable o función en cuestión será declarada pero no será definida (su definición será provista en otro archivo fuente). inline: la función debe ser expandida íntegramente al ser invocada (es decir, no se va a generar un salto a la función).

36 Organización de Computadoras 36 Modificadores de funciones uno.c static void f() {... } void g() { f(); } dos.c extern void f(); extern void g(); int main() { g(); f(); // Error! }

37 Organización de Computadoras 37 Memoria dinámica La declaración de toda variable reserva un espacio de tamaño previamente conocido en el registro de activación en curso. El espacio reservado para las variables de tipos de dato elementales coincide con lo retornado por la función sizeof(). El espacio reservado para las variables de tipos de dato estructurados coincide con la suma del espacio reservado para cada uno de sus componentes. Por otra parte, también es posible gestionar la reserva y liberación de memoria dinámica.

38 Organización de Computadoras 38 Memoria dinámica C cuenta con las siguientes funciones para la gestionar la asignación de memoria dinámica: void* malloc(size_t): esta función intenta reservar la cantidad indicada de memoria dinámica. free(void*): esta función libera la porción de memoria dinámica que comienza donde se indica. void* realloc(void*, size_t): esta función reajusta al tamaño solicitado el espacio de memoria dinámica que comienza donde se indica.

39 Organización de Computadoras 39 Memoria dinámica Al terminar de hacer uso de grandes estructuras dinámicas enlazadas se debe tener cuidado al liberar el espacio que ocupaban. La invocación a free() sólo libera el espacio reservado por el malloc() que generó el puntero pasado como argumento. Si una estructura se armó mediante múltiples IMPORTANTE! invocaciones a malloc(), su espacio deberá ser retornado mediante múltiples invocaciones a free().

40 Organización de Computadoras 40 int *i; char *c; Memoria dinámica struct persona p; i = (int *) malloc(sizeof(int)); c = (char *) malloc(sizeof(char)); p = (struct persona *) free(i); malloc(sizeof(struct persona)); c = (char *) realloc(c, sizeof(char) * 9);

41 Organización de Computadoras 41 Java vs. C Hasta ahora los lenguajes de programación Java y C han compartido bastantes similitudes, sobre todo a nivel de sintaxis. En este punto aparece una diferencia que estamos obligados a tener siempre en cuenta: Java se hace cargo por completo de la recuperación de la memoria dinámica asignada a un objeto cuyo uso finalizó. C, en contraste, deja esa tarea por completo en manos del programador.

42 Organización de Computadoras 42 Listas Recordemos las principales características de la estructura de datos dinámica lista : Es una estructura de datos dinámica. El espacio ocupado por sus elementos es asignado a medida que se necesite. Cada elemento apunta al siguiente, determinando una relación lineal. Puede ser simple o doblemente enlazada. Permite implementar pilas y colas.

43 Organización de Computadoras 43 struct celda { }; tipo elemento; struct celda *sig; Listas elto sig elto sig elto sig elto sig

44 Organización de Computadoras 44 Listas Recordemos algunas de las particularidades de esta estructura de datos: Los elementos usualmente son todos del mismo tipo. Por lo general, cada celda es creada por separado invocando repetidamente a la función malloc(). Cada celda apunta a la siguiente. La última celda apunta a NULL. La lista completa se representa mediante un puntero al primer elemento.

45 Organización de Computadoras 45 Posición directa vs. indirecta La posición de un elemento denota su ubicación dentro de la lista. Existen principalmente dos variantes para el concepto de posición: Posición directa: la posición se denota mediante un puntero a la celda conteniendo el elemento deseado. Posición indirecta: la posición se denota mediante un puntero a una celda conteniendo un puntero a la celda conteniendo el elemento deseado.

46 Organización de Computadoras 46 Posición directa vs. indirecta Considerando el elemento elto, el puntero pd representa su posición directa y pi su posición indirecta: pd - sig elto sig - sig - sig pi

47 Organización de Computadoras 47 Inserción en listas Veamos cómo agregar una nueva celda *cel a continuación del elemento en la posición *pd (usando el concepto de posición directa): struct celda *cel, *pd; pd 10 sig 20 sig cel 25 sig 30 sig

48 Organización de Computadoras 48 Inserción en listas Veamos cómo agregar una nueva celda *cel antes que el elemento en la posición *pd (usando el concepto de posición directa): struct celda *cel, *pd; cómo hago para acceder a esta celda? pd 10 sig 20 sig cel 15 sig 30 sig

49 Organización de Computadoras 49 Inserción en listas Para agregar un elemento a una lista antes de otro hace falta poder acceder al elemento anterior en la lista. Esto se puede resolver de varias formas, siempre pagando algún costo: Recorriendo la lista desde el principio. Haciendo uso de posición indirecta en vez de directa. Implementando una lista doblemente enlazada. Qué costo pago en cada caso?

50 Organización de Computadoras 50 Fases de la compilación Compilación (traducción): Preprocesado. Generación de código assembler. Generación de código objeto. Enlazado o vinculación: Enlazado con otros archivos objeto. Enlazado con librerías estándar. Generación del ejecutable.

51 Organización de Computadoras 51 Fases de la compilación.c preprocesado generación de.c código assembler.s.exe compilación.o enlazado ensamblado.o.c.c librerías estándares y del usuario.a.a

52 Organización de Computadoras 52 Directrices al preprocesador Las directrices al preprocesador son interpretadas antes de la compilación: #define: define una nueva constante o macro del preprocesador. #include: indica que se debe incluir el contenido de otro archivo en el punto indicado. #ifdef, #ifndef: señala el comienzo de un bloque de preprocesamiento condicionado. #endif: marca el fin de un bloque de preprocesamiento condicionado.

53 Organización de Computadoras 53 Constantes y macros El preprocesador permite asociar valores constantes a ciertos identificadores que serán expandidos antes de la compilación propiamente dicha: #define variable valor-cte Análogamente, las macros son funciones que han de ser expandidas antes de la compilación: #define macro(args,...) def-función

54 Organización de Computadoras 54 Constantes y macros #define PI 3.14 #define CANT 5 #define AREA(rad) PI * rad * rad #define MAX(a, b) (a > b? a : b) int main() { } int i; float vector[cant]; for(i = 0; i < CANT; i++) vector[i] = MAX(i * 5.2, AREA(i));

55 Organización de Computadoras 55 Archivos de encabezamiento Los archivos de encabezamientos incluidos mediante la directiva #include suelen tener la extensión.h. Las funciones declaradas en los archivos de encabezamiento no incluyen sus implementaciones. Las variables que allí aparezcan están declaradas como extern, ya que su definición ha de figurar en otro archivo fuente.

56 Organización de Computadoras 56 Preprocesado condicional Para incluir código cuya compilación dependa de ciertas circunstancias, se puede hacer uso de las siguientes directivas: #ifdef variable <bloque de sentencias> #endif #ifndef variable <bloque de sentencias> #endif

57 Organización de Computadoras 57 Preprocesado condicional #define DEBUG int main() { } int i, acc; for (i = 0; i < 10; i++) acc = i * i - 1; #ifdef DEBUG printf( fin del bucle: %d, acc); #endif

58 Organización de Computadoras 58 Argumentos en línea En C torna simple acceder a los argumentos suministrados en la línea de comandos: void main(int argc, char *argv[]) { } int i; printf( %d argumentos, argc); for (i = 1; i < argc; i++) { } printf( %d: %s\n, i, argv[i]);

59 Organización de Computadoras 59 Argumentos en línea Cabe acotar que la convención es que el primer argumento es el nombre del programa que se está ejecutando. printf( Invocado como: %s,argv[0]); Es decir, los argumentos en las las restantes posiciones (de 1 a argc-1), son los argumentos en la línea de comando efectivos. Nótese que los argumentos se reciben como cadenas de caracteres, incluso al tratarse de números.

60 Organización de Computadoras 60 Gestión de archivos C comparte la filosofía UNIX en el sentido de considerar prácticamente todo como si fuera un archivo: La lectura de información desde un archivo convencional no difiere del ingreso de datos a través del el teclado. La escritura de información hacia un archivo convencional no difiere de la salida de datos por pantalla.

61 Organización de Computadoras 61 Funciones de librería C cuenta con diversas funciones de librería sobre archivos: FILE* fopen(char*, char*): apertura de un archivo para lectura o escritura. int fclose(file*): cierre de un archivo. int fprintf(file*,...): escritura con formato. int fscanf(file*,...): lectura con formato. int feof(file*): determina si se ha alcanzado el final de un archivo.

62 Organización de Computadoras 62 Archivos especiales Todo programa asocia tres constantes de tipo FILE* por defecto a los siguientes archivos: stdin: entrada estándar (descriptor 0). stdout: salida estándar (descriptor 1). stderr: error estándar (descriptor 2). Por caso: fprintf(1, Usuario: ); fscanf(0, %s, usuario); fprintf(stderr, Error: No válido );

63 Organización de Computadoras 63 Conversión de tipos C cuenta con diversas funciones de librería para asistir al programador en la conversión entre tipos de datos: int atoi(char*): traduce de strings a enteros. long atol(char*): traduce de strings a enteros largos. double atof(char*): traduce de strings a reales. char* itoa(char*, int): traduce de enteros a strings.

64 Organización de Computadoras 64 Código enrevezado C, fiel a su filosofía minimalista, permite como válido código un tanto llamativo, a saber: int a[5]; int b = 3; a[1] = 101; // a[1] = 101 2[a] = 102; // a[2] = 102 a[b] = 103; // a[3] = b[a]; // a[3] = 104 (++b)[a] = 104; // a[4] = 104

65 Preguntas? Organización de Computadoras 65

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

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

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez 1. PUNTEROS 2. MEMORIA DINÁMICA 2 1. PUNTEROS 3 Qué es un puntero? Un tipo de variable cuyo valor es la dirección de memoria de otra variable.

Más detalles

Tema 13: Apuntadores en C

Tema 13: Apuntadores en C Tema 13: Apuntadores 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 Contenido Introducción

Más detalles

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido

Más detalles

Programación en C. (Segunda Parte) DATSI, FI, UPM José M. Peña. jmpena@fi.upm.es. Programación en C

Programación en C. (Segunda Parte) DATSI, FI, UPM José M. Peña. jmpena@fi.upm.es. Programación en C (Segunda Parte) DATSI, FI, UPM José M. Peña jmpena@fi.upm.es 1 Índice Estructura de un programa C. Variables básicas. Operaciones aritméticas. Sentencias de control. Arrays y Strings. Funciones. Estructuras

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

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

Apuntadores (Punteros)

Apuntadores (Punteros) Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable

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

Introducción al lenguaje C

Introducción al lenguaje C Programación 2 Profesorado de Informática CeRP del Suroeste, Uruguay 29 de marzo de 2016 Estructuras de control IV Iteración Sentencia for: for (inicio; condicion; paso) cuerpo for (int i = 0; i < 10;

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

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior PUNTEROS

Analista Universitario en Sistemas. Taller de Programación II. Instituto Politécnico Superior PUNTEROS PUNTEROS 1 Punteros en C Un puntero es una variable que almacena direcciones de memoria tipo *puntero; tipo variable; puntero = &variable; ffd0 valor variable fff0 ffd0 puntero A partir de la última sentencia

Más detalles

Instituto Tecnológico de Celaya

Instituto Tecnológico de Celaya CADENAS DE CARACTERES Hasta ahora se han manejado variables de tipo caracter cuyo valor es un sólo caracter. En algunos casos, sin embargo, es necesario usar variables cuyos valores sean un conjunto (cadena)

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

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

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones

Más detalles

Programación. Test Autoevaluación Tema 3

Programación. Test Autoevaluación Tema 3 Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

Lenguaje C [Apuntadores y arreglos]

Lenguaje C [Apuntadores y arreglos] Lenguaje C [Apuntadores y arreglos] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 14-O Sergio Luis Pérez (UAM CUAJIMALPA) Curso de Lenguaje C 1 / 20 Apuntadores y direcciones

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

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación 1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos

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

Tema 8 Vectores y Matrices

Tema 8 Vectores y Matrices Tema 8 Vectores y Matrices Contenidos 1. Vectores. 1.1. Declaración. 1.2. Inicialización. 1.3. Acceso a elementos. 1.4. Operaciones. 2. Cadenas de caracteres (vectores de caracteres). 2.1. Declaración,

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

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

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

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes: Constantes Las constantes se pueden declarar con la palabra reservada const y se le asigna un valor en el momento de la declaracion, este valor no se puede modificar durante el programa y cualquier intento

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

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

Escuela Politécnica Superior de Elche

Escuela Politécnica Superior de Elche EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs SEPTIEMBRE 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, una clase derivada puede acceder

Más detalles

FUNDAMENTOS DE INFORMÁTICA

FUNDAMENTOS DE INFORMÁTICA FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería

Más detalles

2.2 Nombres, Ligado y Ámbito

2.2 Nombres, Ligado y Ámbito 2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el

Más detalles

Tema 10: Tipos de datos definidos por el usuario

Tema 10: Tipos de datos definidos por el usuario Tema 10: Tipos de datos definidos por el usuario Indice 1. Introducción 2. Registros 2.1. Elementos de un registro 2.2 Arrays de registros 2.3. Registros con arrays 2.4. Registros con registros 2.5. Paso

Más detalles

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES. APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación

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

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I

PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I Table of contents 1 INFORMACIÓN GENERAL...2 2 INTRODUCCIÓN... 2 3 OBJETIVOS GENERALES DE LA ASIGNATURA... 3 4 OBJETIVOS, TEMAS Y SUBTEMAS... 3 5 PLAN TEMÁTICO...6

Más detalles

Por ejemplo, para declarar un arreglo de enteros llamado a con diez elementos se hace de la siguiente forma:

Por ejemplo, para declarar un arreglo de enteros llamado a con diez elementos se hace de la siguiente forma: Arreglos unidimensionales y multidimensionales Los arreglos son una colección de variables del mismo tipo que se referencian utilizando un nombre común. Un arreglo consta de posiciones de memoria contigua.

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

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS Departamento de Ciencias de la Computación e IA Subprogramas en C Objetivo Una vez que tengamos un programa que resuelva un problema concreto, ser capaces de usarlo

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

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

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 2: Memoria dinámica y Bibliotecas Objetivos Practicar conceptos

Más detalles

Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y

Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y distribución. Listas Enlazadas Estructuras de datos dinámicas

Más detalles

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola) Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación

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

TEMA 8: Gestión dinámica de memoria

TEMA 8: Gestión dinámica de memoria TEMA 8: Gestión dinámica de memoria 8.1.-Tipo de datos puntero Hasta ahora, los tipos de datos que hemos visto (a excepción de strings y ficheros) eran estructuras de datos estáticas, es decir, estructuras

Más detalles

funciones printf scanf

funciones printf scanf FUNCIONES EN C FUNCIONES Los módulos en C se llaman funciones. Hemos estado utilizando funciones de la biblioteca estandar stdio.h como por ejemplo printf y scanf. Comenzaremos viendo algunas funciones

Más detalles

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

Tema 16: Tipos de datos estructurados en lenguaje C

Tema 16: Tipos de datos estructurados en lenguaje C Tema 16: Tipos de datos estructurados 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

Más detalles

Cadena de caracteres. 1. Fundamentos de cadenas y caracteres

Cadena de caracteres. 1. Fundamentos de cadenas y caracteres 1. Fundamentos de cadenas y caracteres Cadena de caracteres Los caracteres son bloques de construcción fundamentales para los programas fuente. Un programa puede contener constantes de carácter. Una constante

Más detalles

Java para programadores

Java para programadores Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Variables. Tipos

Más detalles

Lenguaje de programación C. Introducción

Lenguaje de programación C. Introducción Lenguaje de programación C Introducción 1 Elementos del lenguaje C Colección de funciones Estas funciones contienen declaraciones, sentencias, expresiones y otros elementos que en conjunto indican a la

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

El Lenguaje de Programación C (Pt. 1) Organización de Computadoras Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur

El Lenguaje de Programación C (Pt. 1) Organización de Computadoras Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur El Lenguaje de Programación C (Pt. 1) Organización de Computadoras Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur Organización de Computadoras - 2016 2 Copyright Copyright 2011-2015 A. G. Stankevicius

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

Tema 14: Arreglos estáticos en C

Tema 14: Arreglos estáticos en C Tema 14: Arreglos estáticos en C Solicitado: Ejercicios 05: Ejercicios con arreglos estáticos unidimensionales M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom

Más detalles

USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++

USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++ USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++ Bruno López Takeyas Instituto Tecnológico de Nuevo Laredo Reforma Sur 2007, C.P. 88250, Nuevo Laredo, Tamps. México http://www.itnuevolaredo.edu.mx/takeyas

Más detalles

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO TIPOS DE DATOS BÁSICOS: Tipo Tipo Tamaño aproximado en bits Rango mínimo Carácter char 8 0 a 55 Entero int 16-3767 a 3767 Real float 3

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

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

TIPOS DE DATOS BASICOS EN LENGUAJE C

TIPOS DE DATOS BASICOS EN LENGUAJE C TIPOS DE DATOS BASICOS EN LENGUAJE C TIPO char int float double void ANCHO EN BIT 64 0 TIPOS DE DATOS RANGO EN PC -12 a 127 3.4E-3 a 3.4E+3 1.7E-30 a 1.7E+30 sin valores TIPO ANCHO EN BIT RANGO EN PC char

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

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

Ficha de Aprendizaje N 13

Ficha de Aprendizaje N 13 Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que

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 Funciones en lenguaje C Funciones en lenguaje C Definición de funciones Declaración de funciones Relación entre variables y funciones Parámetros

Más detalles

4. Operadores Operador asignación

4. Operadores Operador asignación Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre

Más detalles

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos Construyendo clases nuevas La forma más simple de una clase en Java es: Class Nombre_de_la_Clase { } /* constructores */ /* métodos

Más detalles

Se guardan en archivos con extencion c y los cabezales con extension h

Se guardan en archivos con extencion c y los cabezales con extension h Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767

Más detalles

Tipos de Datos Estructurados

Tipos de Datos Estructurados - Unidad 3 Tipos de Datos Estructurados 1 Tipos de Datos Compuestos en C 2 Arreglos (1) Un arreglo (array) una colección homogénea de datos simples ó compuestos, que se referencian con un nombre comú,

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

Procesadores de lenguaje Tema 6 La tabla de símbolos

Procesadores de lenguaje Tema 6 La tabla de símbolos Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de

Más detalles

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Descripción y Contenido del Curso. Programación C++ Capacity Academy. Descripción y Contenido del Curso Programación C++ Capacity Academy Educación en Tecnología de la Información Online, Efectiva y Garantizada Qué aprenderá si toma este Curso? En este curso aprenderás todo

Más detalles

Tema: Clases y Objetos en C#. Parte II.

Tema: Clases y Objetos en C#. Parte II. Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y

Más detalles

Programación I Unidad III. Tema: Tipos, estructuras y uniones

Programación I Unidad III. Tema: Tipos, estructuras y uniones Programación I Unidad III Tema: Tipos, estructuras y uniones El especificador typedef La palabra reservada typedef representa un especificador de clase de almacenamiento, y se utiliza para definir nuevos

Más detalles

Lenguaje C. Lenguaje C. Erwin Meza Vega

Lenguaje C. Lenguaje C. Erwin Meza Vega Lenguaje C Erwin Meza Vega Outline 1 Introducción 2 Tipos básicos de datos 3 Estructuras de control 4 Funciones 5 Ejemplos de funciones 6 Tipos compuestos de datos 7 Arreglos 8 Apuntadores (punteros) 9

Más detalles

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo

Más detalles

Guía práctica de estudio 11: Funciones

Guía práctica de estudio 11: Funciones Guía práctica de estudio 11: Funciones Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 11: Funciones Objetivo: Elaborar

Más detalles

El lenguaje C. 1. Identificadores, constantes y variables

El lenguaje C. 1. Identificadores, constantes y variables Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria

Más detalles

Fundamentos de Programación 2017-I

Fundamentos de Programación 2017-I Fundamentos de Programación 2017-I Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación C a través de un análisis

Más detalles

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Directivas del procesador Main() { Declaraciones Definiciones proposiciones }

Más detalles

Introducción a los Computadores

Introducción a los Computadores Introducción a los Computadores Práctica nº 4 Introducción. Un tipo de datos estructurado es un tipo de datos formado por una colección organizada de componentes de algún otro tipo de datos. Podremos hacer

Más detalles

Lenguaje de Programación

Lenguaje de Programación UG C++ C++ Universidad de Guanajuato Sesión 33 Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos sostenidas o mantenidas juntas en una sola unidad. La unidad es la estructura.

Más detalles

Resumen de Sintaxis en C

Resumen de Sintaxis en C 1 Tipos, operadores y expresiones Resumen de Sintaxis en C Identificadores: Formados por letras, números y '_'. Los primeros 31 caracteres son significativos (dependiente del compilador). Las mayúsculas

Más detalles

7. Manejo de Archivos en C.

7. Manejo de Archivos en C. 7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de

Más detalles

Esquema de un programa en C: bloques básicos

Esquema de un programa en C: bloques básicos Esquema de un programa en C: bloques básicos // Incluimos los ficheros de cabecera que necesitemos. // Esto es un comentario #include #include // Si queremos definir alguna constante,

Más detalles

PROGRAMACION / Clave: 11214

PROGRAMACION / Clave: 11214 PRACTICA 10. Programas en DevC++ 1.- Programa que imprima las tablas de multiplicar del 1 al 10, se deberá hacer una pausa entre tabla y tabla de multiplicar. 2.- Programa que se repita N cantidad de veces

Más detalles

ANEXO XVII DE LA RESOLUCION N

ANEXO XVII DE LA RESOLUCION N Hoja 1 de 7 UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas Físicas y Naturales República Argentina Programa de: Código: Informática Carrera: Materia común Res. Nº Plan: Puntos:3.5 Escuela:

Más detalles

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 1: Punteros Objetivos Se hará hincapié en la aritmética de punteros

Más detalles

INICIACIÓN A LA PROGRAMACIÓN EN C

INICIACIÓN A LA PROGRAMACIÓN EN C INICIACIÓN A LA PROGRAMACIÓN EN C Estructura de un programa sencillo en lenguaje c: Librería estándar de entrada salida Llave de apertura para delimitar el cuerpo de la función Llave de cierre para delimitar

Más detalles

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un

Más detalles

Tema 6. Gestión dinámica de memoria

Tema 6. Gestión dinámica de memoria Tema 6. Gestión dinámica de memoria http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz@icc.uji.es Estructuras de datos y de la

Más detalles

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad

Más detalles

LENGUAJE. Tema 1 - Introducción

LENGUAJE. Tema 1 - Introducción LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del

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

Un módulo de programa tiene dos partes bien diferenciadas: la definición del módulo y la invocación o llamada al módulo.

Un módulo de programa tiene dos partes bien diferenciadas: la definición del módulo y la invocación o llamada al módulo. 4 MODULARIDAD Un principio ampliamente difundido e importante para resolver problemas es el de dividir para reinar, es decir separar el problema en partes, en problemas más pequeños, para así enfrentarlos

Más detalles

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado Facultad de Ingeniería. Escuela de computación. 2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas

Más detalles

Tema: Punteros a Objetos. Puntero this.

Tema: Punteros a Objetos. Puntero this. Programación II. Guía 6 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Punteros a Objetos. Puntero this. Objetivos Manejar objetos por medio de punteros. Utilizar el puntero

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