Descomposición funcional (Parte II)
|
|
- Felipe Cordero Montero
- hace 6 años
- Vistas:
Transcripción
1 2012 Descomposición funcional (Parte II) Ing. Ileana Camacho
2 Pasar un array a una función Cuando pasamos un array a una función lo que se escribe como argumento en la llamada a esa función es el nombre del array, es decir, el argumento que se pasa es la dirección del array, por lo que el parámetro formal correspondiente tiene que ser también un array, el cual, después de la llamada, queda inicializado con esa dirección. Los arrays son siempre pasados por referencia, porque no se pasa una copia de todos sus elementos. Tanto la función que invoca, como la función invocada trabajan sobre el mismo espacio de memoria (sobre el mismo array). En otras palabras: Cuando un argumento (parámetro) de una función es un arreglo, el parámetro (arreglo) se pasa por referencia: Cuando se declara un array unidimensional como parámetro de una función, no se requiere que se especifique su dimensión (no se hace una reserva de memoria para una copia total del array), ya que lo que se pasa es la dirección del array. int leer(tficha bibli[ ], int NMAX); Ejemplo - Imprime arreglo Escriba una función en C llamada imprimir que reciba como argumento un vector formado por 0; 1; 2; : : : ; 9 y los muestre por pantalla. Solución #include<stdio.h> #define n 10 // define n=10
3 /* declaración de la función imprimir de dos maneras */ void imprimir1(int x[]); void imprimir2(int *x); int main() int x[n], i; // Inicializa arreglo for (i=0; i<n; i++) x[i] = i; imprimir1(x); // Imprime arreglo // imprimir2(x); // Definición de la función imprimir1 void imprimir1(int x[]) int i; for (i=0; i<n; i++) printf(" %d nt", x[i]); // Definición de la función imprimir2 void imprimir2(int *x) int i; for (i=0; i<n; i++) printf(" %d nt", x[i]);
4 Ejemplo 2 (promedio arreglo) Escriba un programa en C que calcule el promedio de los elementos de un arreglo de tamaño n. El programa debe constar de tres funciones, una que lea el arreglo (leer vector), otra que imprima el arreglo por pantalla (escribir arreglo) y otra que calcule el promedio (promedio). Solución Datos de entrada: n: tamaño del vector x[n]: vector Funciones: void leer_arreglo(double x[], int n) void escribir_arreglo(double x[], int n) double promedio(double x[], int n) int main() int n; printf("ingrese número de elementos: "); scanf("%d", &n); double x[n]; leer_arreglo(x, n); escribir_arreglo(x, n); printf("nnpromedio = %lf", promedio(x,n));
5 //definión de las funciones void leer_arreglo(double x[], int n) int i; for (i=0; i<n; i++) printf("x( %d) = ", i+1); scanf("%lf", &x[i]); // Definición de las funciones void escribir_arreglo(double x[], int n) int i; for (i=0; i<n; i++) printf(" %5.8lf nt", x[i]); double promedio(double x[], int n) int i; double suma = 0.0; for (i=0; i<n; i++) suma += x[i]; return suma/n; Ejemplo 3 (Busca elemento) Escriba una función en C que determine si un elemento dado está en un arreglo
6 Solución Datos de entrada: n: tamaño del vector x[n]: vector v: elemento a buscar int pertenece(double v, double x[], int n) int s = 0, k = 0; while (s==0 && k<n) if (v==x[k]) s=1; k++; return s; Ejemplo 4. Funciones con arreglos de caracteres void imp_rev(char s[]) int t; for( t=strlen(s)-1; t>=0; t--) printf("%c",s[t]); int main()
7 char nombre[]="facultad"; imp_rev(nombre); Observar que en la función imp_rev se usa la función strlen para calcular la longitud de la cadena sin incluir el terminador nulo. Por otra parte, la función imp_rev no usa la sentencia return ni para terminar de usar la función, ni para regresar algún valor. Ejemplo 5: Función que pasa a mayúsculas una cadena de caracteres void F1(char cadena[], int lng) int i; for (i=0; i!=lng; i++) cadena[i] = toupper(cadena[i]); int main () char caracteres[80] = "Ejemplo"; int longitud = strlen(caracteres); puts(caracteres); F1(caracteres, longitud); puts(caracteres); return 0; Un ejemplo con matrices bidimensionales
8 Realizar una función llamada ceros, que toma como parámetro una matriz de 3x4 de números enteros y no devuelve nada. Debe rellenar con ceros la matriz de 3x4 que recibe como parámetro. Realizar una función llamada mostrar, que toma como parámetro una matriz de 3x4 de números enteros y no devuelve nada. Debe mostrar el contenido de las celdas de la matriz en pantalla. Solución #include<stdio.h> void ceros(int matriz[3][4]); void mostrar(int matriz[3][4]); int main() int matriz[3][4]; ceros(matriz); mostrar(matriz); return(0); // Función ceros: Pone las celdas a cero. void ceros(int matriz[3][4]) int fila, columna; for(fila=0;fila<=2;fila++) for(columna=0;columna<=3;columna++)
9 matriz[fila][columna]=0; // Función mostrar: Muestra la matriz void mostrar(int matriz[3][4]) matriz. int fila, columna; for(fila=0;fila<=2;fila++) for(columna=0;columna<=3;columna++) printf( %i, matriz[fila][columna]); printf( \n ); Ejercicios propuestos 1) Escribir una función ``reemplaza'', la cual toma una cadena como parámetro, le reemplaza todos los espacios de la cadena por un guión bajo, y devuelve el número de espacios reemplazados. Por ejemplo: char cadena[] = "El gato negro"; n = reemplaza( cadena );
10 deberá devolver: cadena convertida "El_gato_negro" n = 2 2) Escribir un programa que lea una línea de texto en un buffer (una cadena de caracteres) usando la función gets y calcule la longitud de la línea (NO usar la función strlen). 3) Modificar el programa anterior para que lea un archivo de texto. El archivo deberá redireccionarse al programa, debiendo mostrar el contenido del mismo. En caso de que se lea una línea con longitud 0 deberá terminar el programa. Estructuras y funciones Hemos visto que las variables y los arrays pueden pasarse como argumentos a las funciones y todo ello sin problemas. Por lo tanto puede ocurrir lo mismo con las estructuras? la respuesta, como todos esperábamos, es afirmativa. Es posible pasar estructuras a las funciones como argumentos. Una estructura puede ser pasada a una función por valor o por referencia. Cuando pasamos una estructura por valor, el parámetro actual que representa la estructura se copia en el correspondiente parámetro formal, produciéndose un duplicado. Si alguno de los miembros del parámetro formal se modifica, los cambios no afectan al parámetro actual correspondiente. Si pasamos la estructura por referencia, lo que recibe la función es el lugar de la memoria donde se localiza dicha estructura. En el siguiente ejemplo veremos cómo funciona mediante el uso de funciones. Para ello escribiremos dos nuevas funciones. Una de ellas leerá del teclado la información sobre un nuevo trabajador y la otra visualizará en pantalla la información de un trabajador. #include <stdio.h>
11 #define LONGITUD 30 struct trabajadores char nombre [LONGITUD]; int num; ; /**** la función nuevo_nombre lee la información de un nuevo trabajador y la función visualizar_datos visualiza la información de un trabajador. ****/ struct trabajadores nuevo_nombre(void); void visualizar_datos (struct trabajadores currela); void main (void) struct trabajadores tra_1 ; struct trabajadores tra_2 ; tra_1 = nuevo_nombre(); tra_2 = nuevo_nombre (); printf ( LISTA DE AGENTES SECRETOS:\n ); visualizar_datos (tra_1); visualizar_datos (tra_2);
12 /* Como se puede apreciar esta función devuelve una estructura tipo trabajadores donde se almacena la información necesaria sobre cada trabajador, utilizando para ello la sentencia return */ struct trabajadores nuevo_nombre(void) struct trabajadores currela; printf ( \ndatos del agente. \nintroduce el nombre: ); gets (currela.nombre); printf ( Introduce el número: ); scanf ( %d, & currela.num); fflush (stdin); return (currela); void visualizar_datos (struct trabajadores currela) printf ( \n\n Agente secreto\n ); printf ( \tnombre : %s \n, currela.nombre); printf ( \t Número del agente %d\n, currela.num); Ejemplo 2. Geometría
13 Crear un programa que contenga los siguientes elementos: Una estructura que represente puntos formada por sus coordenadas x e y Una estructura que represente triángulos utilizando tres vértices (cada vértices es un elemento de tipo punto) Una función llamada mostrarcoordenadas que saque por pantalla las coordenadas de los puntos en este formato: (2,3) (la x es el dos y la y el tres) Una función llamada cambiarcoordenadas que permita cambiar las coordenadas del punto que se envía como parámetro. Una función llamada distanciapuntos que devuelva la distancia entre dos puntos (que recibe como parámetros de la función) Una función llamada escribirtriangulo que escriba los vértices del triángulo en esta forma, por ejemplo: (3,2),(8,3),(7,5) Una función llamada perimetrotriangulo que permita escribir el perímetro de un triángulo dado. Para solucionarlo. podemos entender que el perímetro de un triángulo es la suma de las distancias entre cada vértice. #include <conio.h> #include <stdio.h> /*Estructura para representar puntos */ typedef struct double x; double y; Punto;
14 typedef struct Punto v1; Punto v2; Punto v3; Triangulo; /* Prototipos */ Punto leercoordenadas(); void mostrarcoordenadas(punto punto); void cambiarcoordenadas(punto *p,int x, int y); double distanciapuntos(punto p1, Punto p2); void escribirtriangulo(triangulo tri); double perimetrotriangulo(triangulo tri); int main() /* Código para prbar las funciones */ Punto pa,pb; pa.x=1; pa.y=2; pa=leercoordenadas(); pb=leercoordenadas(); printf("los puntos son:\n"); mostrarcoordenadas(pa);printf("\n"); mostrarcoordenadas(pb);printf("\n"); cambiarcoordenadas(&pa,4,5); printf("nuevas coordenadas: "); mostrarcoordenadas(pa);printf("\n"); printf("distancia entre los puntos: %lf\n",distanciapuntos(pa,pb)); Triangulo t;
15 t.v1.x=2;t.v1.y=2; t.v2.x=8;t.v2.y=2; t.v3.x=4;t.v3.y=8; escribirtriangulo(t);printf("\n"); printf("perímetro: %lf",perimetrotriangulo(t)); /*Lee las coordenadas de un punto por teclado y devuelve el punto resultante*/ Punto leercoordenadas() Punto aux; printf("coordenada x: ");fflush(stdin);scanf("%lf",&aux.x); printf("coordenada y: ");fflush(stdin);scanf("%lf",&aux.y); return aux; /* Saca las coordenadas por pantalla en formato (x,y)*/ void mostrarcoordenadas(punto punto) printf("(%lf,%lf)",punto.x,punto.y); /*Modifica las coordenadas de un punto, según los valores de los parámetros de la función*/ void cambiarcoordenadas(punto *p,int x, int y) p->x=x; p->y=y; /*Obtiene la distancia entre dos puntos*/ double distanciapuntos(punto p1, Punto p2)
16 double distx=abs(p1.x-p2.x);/*distancia horizontal entre los puntos*/ double disty=abs(p1.y-p2.y);/*distancia vertical entre los puntos*/ /*Distancia aplicando Pitágoras*/ return sqrt(pow(distx,2)+pow(disty,2)); /* Escribe los vértices del triángulo por pantalla en este formato (x,y),(x,y),(x,y)*/ void escribirtriangulo(triangulo tri) mostrarcoordenadas(tri.v1); printf(","); mostrarcoordenadas(tri.v2); printf(","); mostrarcoordenadas(tri.v3); /*Devuelve el perímetro del triángulo indicado*/ double perimetrotriangulo(triangulo tri) return distanciapuntos(tri.v1,tri.v2)+distanciapuntos(tri.v3,tri.v2)+ distanciapuntos(tri.v1,tri.v3); Arreglos de estructuras y funciones Cuando hablamos de arrays dijimos que se podían agrupar, para formarlos, cualquier tipo de variables, esto es extensible a las estructuras y podemos entonces agruparlas ordenadamente, como elementos de un array. Se puede crear un array de estructuras tal como se crea un array de otros tipos. Los arrays de estructuras son idóneos para almacenar un archivo completo de empleados, un archivo de inventario o cualquier otro conjunto de datos que se adapte a un formato de estructura. Mientras que los arrays proporcionan un medio práctico de almacenar
17 diversos valores del mismo tipo, los arrays de estructuras le permiten almacenar juntos diversos valores de diferentes tipos, agrupados como estructuras. Para acceder a los miembros de cada uno de los elementos estructura se utiliza una notación de array. Veamos un ejemplo : typedef struct char material[50] ; int existencia ; double costo_unitario ; Item ; Item stock[10] ; Hemos definido aquí un array de 10 elementos, donde cada uno de ellos es una estructura del tipo Item compuesta por tres variables, un int, un double y un string ó array de 50 caracteres. Los arrays de estructuras pueden inicializarse de la manera habitual, así en una definición de stock, podríamos haber escrito: Item stock2[3] = "tornillos", 120,.15, "tuercas", 200,.09, "arandelas", 90,.01 ; Crear una función que guarde los datos para cada estructura Item Leer(void); Item Leer()
18 Item aux; printf("introduzca los datos de la estructura\n"); printf("material: "); fflush(stdin); gets(aux.material); printf("existencias: "); fflush(stdin); scanf("%d",&aux.existencia); printf("costo unitario: "); fflush(stdin); scanf("%lf",&aux.costo_unitario); return aux; Función para imprimir un arreglo de estructuras void Imprimir(Item vector[], int tam) int i; for(i=0;i<tam;i++) printf("material: %s\n",vector[i].material); printf("existencias: %d\n",vector[i].existencia); printf("costo unitario: %.2lf\n",vector[i].costo_unitario);
19 int main() Item stock[10] ; Item stock2[3] = "tornillos", 120,.15, "tuercas", 200,.09, "arandelas", 90,.01 ; int i; for(i=0;i<10;i++) stock[i]=leer(); Imprimir(stock2,3); Vemos que en el main al llamar a la función Leer(), se le asignó el valor retornado a cada elemento del arreglo, a cada stock[i]. Y al llamar a la función Imprimir, se le pasa como parámetro, el nombre del arreglo de estructuras. Función que retorna un puntero Cuando una función retorna un puntero a un objeto, el objeto debe persistir después de finalizar la función.
20 /**************** Operaciones con complejos ****************/ #include <stdio.h> #include <stdlib.h> typedef struct float real; float imag; tcomplejo; tcomplejo *SumarComplejos(tcomplejo c1, tcomplejo c2); int main( ) tcomplejo ca, cb, *pcr; printf("\nintroducir datos de la forma: x yi\n"); printf("ca = "); scanf("%f %f", &ca.real,&ca.imag); fflush(stdin); printf("cb = "); scanf("%f %f", &cb.real,&cb.imag); fflush(stdin); pcr = SumarComplejos(ca, cb); printf("resultado: %g%+gi\n", pcr->real, pcr->imag); tcomplejo *SumarComplejos(tcomplejo c1, tcomplejo c2)
21 tcomplejo cx; cx.real = c1.real + c2.real; cx.imag = c1.imag + c2.imag; return &cx; El programa anterior presenta resultados inesperados. La función SumarComplejos, utiliza un complejo local cx del cual retorna su dirección. Cuando la función finalice el complejo cx se destruirá automáticamente, con lo que el puntero pcr que apunta al resultado, estará apuntando a un objeto inexistente. La solución radica en hacer que la función SumarComplejos cree un objeto que persista a lo largo de la ejecución del programa, asignando memoria dinámicamente para el objeto. /**************** Operaciones con complejos ****************/ #include <stdio.h> #include <stdlib.h> typedef struct float real; float imag; tcomplejo; tcomplejo *SumarComplejos(tcomplejo c1, tcomplejo c2); int main( )
22 tcomplejo ca, cb, *pcr; printf("\nintroducir datos de la forma: x yi\n"); printf("ca = "); scanf("%f %f", &ca.real,&ca.imag); fflush(stdin); printf("cb = "); scanf("%f %f", &cb.real,&cb.imag); fflush(stdin); pcr = SumarComplejos(ca, cb); printf("resultado: %g%+gi\n", pcr->real, pcr->imag); /* Liberar la memoria asignada */ free(pcr); tcomplejo *SumarComplejos(tcomplejo c1, tcomplejo c2) tcomplejo *pcx; /* Asignar memoria para el complejo suma */ pcx = (tcomplejo *)malloc(sizeof(tcomplejo)); if ( pcx == NULL ) printf("memoria insuficiente\n"); exit(-1); pcx->real = c1.real + c2.real;
23 pcx->imag = c1.imag + c2.imag; return pcx; Funciones recursivas Las funciones en C pueden ser recursivas, en otras palabras, pueden llamarse a sí mismas directa o indirectamente. La recursividad directa es el proceso mediante el que una función se llama a sí misma desde el propio cuerpo de la función, mientras que la recursividad indirecta implica más de una función. Un proceso recursivo tiene que tener una condición de finalización, ya que de lo contrario podría continuar infinitamente. Un ejemplo típico de aplicación de la recursividad es el cálculo del factorial de un número entero. Recordemos que el factorial de un número entero (n!) se calcula de la siguiente manera: n! = n * (n-1) * (n-2) *... * 2 * 1 En principio, la solución a este problema podría realizarse sin tener que utilizar la recursividad con el siguiente programa: #include <stdio.h> int factorial(int numero); main() int valor = 4; int resultado; resultado = factorial(valor); printf("el factorial de %d es %d \n", valor, resultado);
24 return 0; int factorial(int numero) int i; int devuelve = 1; for(i = 1; i <= numero; i++) devuelve = devuelve * i; return devuelve; Sin embargo, resulta más intuitivo dada la definición de número factorial utilizar una función recursiva como la siguiente: int factorial(int numero) if(numero == 1) return 1; else return (numero * factorial(numero-1));
25 En la función anterior, en el caso de que el argumento utilizado en la llamada sea 1, ésta devuelve 1, y en caso contrario se calcula un producto que involucra a la variable numero y una nueva llamada a la función cuyo argumento es menor en una unidad (numero -1). El funcionamiento de una función recursiva se realiza almacenando las llamadas pendientes, con sus argumentos, en la pila en tiempo de ejecución. Veamos un ejemplo: imagina que utilizamos el valor 4 como argumento de la función que calcula el factorial, es decir, factorial(4), el proceso de llamadas será el siguiente: Llamada # 1: numero = 4 numero!= 1 entonces ejecutamos la siguiente sentencia return ( 4 * (realizamos la segunda llamada)) Llamada # 2: numero = 3 numero!= 1 entonces ejecutamos la siguiente sentencia return ( 3 * (realizamos la tercera llamada)) Llamada # 3: numero = 2 numero!= 1 entonces ejecutamos la siguiente sentencia return ( 2 * (realizamos la cuarta llamada)) Llamada # 4: numero = 1 numero == 1 entonces se ejecuta la sentencia del if:
26 return 1 Fin Llamada # 4 -> DEVUELVE 1 return ( 2 * 1) Fin Llamada # 3 -> DEVUELVE 2 return ( 3 * 2) Fin Llamada # 2 -> DEVUELVE 6 return ( 4 * 6) Fin Llamada #1 -> DEVUELVE 24 En la Figura siguiente podemos ver ilustrado el proceso descrito anteriormente.
27 En muchas ocasiones, la resolución de un problema mediante una función recursiva resulta conceptualmente más clara que la resolución mediante una función iterativa. Tal es el caso de algunas estructuras de datos como los árboles binarios, cuyo manejo es sencillo mediante una función recursiva. Sin embargo, la función iterativa resulta algo más compleja. Es evidente que hay tareas que se pueden resolver mediante funciones recursivas o funciones iterativas, aunque es el programador el que tiene que optar por una solución u otra.
28 Funciones predefinidas en c Funciones matemáticas Las declaraciones para estas funciones están en el fichero math.h Los argumentos y el resultado son de tipo double. En muchos casos utilizaremos conversión cast para convertir explícitamente los argumentos al tipo deseado. Ejemplo: a = tan((double)valor); Las funciones matemáticas se clasifican en: Funciones trigonométricas Funciones hiperbólicas. Funciones exponencial y logarítimica. Funciones varias. cos Resultado: el coseno de x ( x en radianes). #include <math.h> double cos(double x); sin Resultado: seno de x ( x en radianes). #include <math.h> double sin(double x); tan: Resultado: tangente de x ( x en radianes).
29 #include <math.h> double tan(double x); exp Da como resultado el valor de e x ( e = ) #include <math.h> double exp(double x); log Da como resultado el logaritmo natural de x. #include <math.h> double log(double x); log10 Da como resultado el logaritmo en base 10 de x. #include <math.h> double log10(double x); ceil Resultado: un valor double, que representa el entero más pequeño que es mayor o igual que x. #include <math.h> double ceil(double x); double x = 2.8, y = -2.8; printf( %g %g\n,ceil(x),ceil(y)); fabs
30 Calcula el valor absoluto de x( siendo x un valor real en doble precisión). Las funciones abs y labs calculan el valor absoluto de un int y un long respectivamente. #include <math.h> double fabs(double x); floor Resultado: un valor double, que representa el entero más grande que es menor o igual que x. double floor(double x); double x = 2.8, y = -2.8; printf( %g %g\n,floor(x),floor(y)); pow Resultado: x y. Si x es 0 e y es negativo o si x e y son 0 o si x es negativo e y no es entero, se obtiene un error(argumento fuera del dominio da la función). Si x y da un resultado superior al valor límite para el tipo double, el resultado es el valor límite( e+308) double pow(double x); double x = 2.8, y = -2.8; printf( %g\n,pow(x,y)); sqrt Calcula la raíz cuadrada de x. Si x es negativo, ocurre un error(argumento fuera del dominio de la función). #include <math.h> double sqrt(double x); Números seudoaleatorios
31 rand Da como resultado un número seudoaleatorio entero, entre 0 y el valor máximo para un int. #include <stdlib.h> int rand(void); Funciones de fecha y hora time Resultado: el número de segundos transcurridos desde las 0 horas del 1 de Enero de #include <time.h> time_t time(time_t *seg); ctime Convierte un tiempo almacenado como un valor de tipo time_t, en una cadena de caracteres de la forma: Thu Jul 08 12:01: #include <time.h> char *ctime(const time_t *seg); Devuelve un puntero a la cadena de caracteres resultante o un puntero nulo si seg representa un dato anterior al 1 de Enero de #include <stdio.h> #include <time.h> main( )
32 time_t segundos; printf("el numero de segundos transcurridos desde el 01/01/1970 es %ld\n",time(&segundos)); printf("la fecha actual es %s",ctime(&segundos)); Conversión de cadenas Existen unas cuantas funciones para convertir cadenas a enteros, enteros largos y valores flotantes. Estas son: double atof(const char *cadena) Convierte una cadena a un valor flotante. int atoi(const char *cadena) Convierte una cadena a un valor entero. int atol(const char *cadena) Convierte una cadena a un valor entero largo. double strtod(const char *cadena, char **finap) Convierte una cadena a un valor de punto flotante. double strtol(const char *cadena, char *finap, int base) Convierte una cadena a un entero largo de acuerdo a una base dada, la cual deberá estar entre 2 y 36 inclusive. unsigned long strtoul(const char *cadena, char *finap, int base) Convierte una cadena a un entero largo sin signo. Varias de las funciones se pueden usar en forma directa, por ejemplo: char *cad1 = "100"; char *cad2 = "55.444"; char *cad3 = " 1234"; char *cad4 = "123cuatro";
33 char *cad5 = "invalido123"; char *cad6 = "123E23Hola"; char *cad7; int i; float f: i = atoi(cad1); /* i = 100 */ f = atof(cad2); /* f = */ i = atoi(cad3); /* i = 1234 */ i = atoi(cad4); /* i = 123 */ i = atoi(cad5); /* i = 0 */ f = strtod(cad6, &cad7); /* f= e+25 y cad7=hola*/ Nota: Los caracteres en blanco son saltados. Caracteres ilegales son ignorados. Si la conversión no puede ser hecha se regresa cero y errno es puesta con el valor ERANGE. Funciones para manipular bloques de memoria memset Permite iniciar un bloque de memoria. #include <string.h> void *memset(void *destino, int b, size_t nbytes); destino: dirección del bloque de memoria que se desea inicializar.
34 b: valor empleado para iniciar cada byte del bloque. nbytes: número de bytes del bloque que se iniciará. double a[10][10]; memset(a, 0, sizeof(a)); #include <stdio.h> #include <string.h> int main() char c = 'F'; char *s; int i; s = (char*)malloc(5*sizeof(char)); memset( s, c, 5 ); for( i=0; i<5; i++ ) printf( "c[%d]=%c ", i, c ); printf( "\n" ); free(s); return 0; memcpy Copia un bloque de memoria en otro. #include <string.h> void *memcpy(void *destino, const void *origen, size_t nbytes); destino: es la dirección del bloque de memoria destino de los datos. origen: es la dirección del bloque de memoria origen de los datos. nbytes: número de bytes que se copiarán desde el origen al destino. double a[10][10], b[10][10]; memcpy(b, a, sizeof(a)); #include <stdio.h>
35 /* memcpy example */ #include <stdio.h> #include <string.h> int main () char str1[]="cadena de ejempo"; char str2[40]; char str3[40]; memcpy (str2,str1,strlen(str1)+1); memcpy (str3,"copia exitosa!",16); printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3); return 0; memcmp Compara byte a byte dos bloques de memoria. #include <string.h> int memcmp(void *bm1, const void *bm2, size_t nbytes); bm1, bm2: son las direcciones de los bloques de memoria a comparar. nbytes: número de bytes que se compararán. double a[10][10], b[10][10]; if(memcmp(a, b, sizeof(a)) == 0) printf( Las matrices contienen los mismos datos\n ); else printf( Las matrices no contienen los mismos datos\n ); #include <stdio.h> #include <string.h> int main() char a[3] = 82, 81, 84 ; char b[3] = 85, 83, 86 ; int i; for( i=0; i<3; i++ ) printf( "a[%d]=%c ", i, a[i] ); printf( "\n" ); for( i=0; i<3; i++ )
36 printf( "b[%d]=%c ", i, b[i] ); printf( "\n" ); i = memcmp( a, b, 4 ); printf( "a es " ); if( i < 0 ) printf( "menor que" ); else if( i > 0 ) printf( "mayor que" ); else printf( "igual a" ); printf( " b\n" ); return 0;
Programcaión Básica. Arreglos y Estructuras de Datos (2)
Programación Básica Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 7 Universidad de Guanajuato, DCI, Campus León 1 / 29 Contenido 1
Más detallesIntroducción a los Computadores Arreglos en C
Introducción a los Computadores Arreglos en C Alejandro Piedrahita H. Instituto de Matemáticas Facultad de Ciencias Exactas y Naturales Universidad de Antioquia Copyleft 2013. Reproducción permitida bajo
Más detallesfunciones 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 detallesTema 7 Vectores y cadenas de caracteres. Fundamentos de Informática
Tema 7 Fundamentos de Informática Índice 1. Qué es un vector? 2. Vectores unidimensionales 3. Cadenas de caracteres 4. Paso de vectores unidimensionales a funciones. 5. Vectores multidimensionales: matrices
Más detallesCaracteres 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 detallesSUBPROGRAMAS FUNCIONES
SUBPROGRAMAS FUNCIONES 1 INTRODUCCIÓN En la mayoría de los casos, un determinado problema complejo lo podemos (y debemos) dividir en problemas más sencillos. (Módulos o Subprogramas) TÉCNICA DE DISEÑO
Más detallesAlgoritmos 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 detallesTEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8
TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 1.1 VECTORES O ARRAYS UNIDIMENSIONALES 2 1.2 ARRAYS MULTIDIMENSIONALES 3 1.3 INICIALIZACIÓN DE ARRAYS 4 1.3.1 INICIALIZACIÓN DE ARRAYS SIN
Más detallesProgramació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#include <stdio.h> float cubica(float numero) { float cubica; cubica = numero * numero * numero; return cubica; }
/*1. Crear una función que calcule el cubo de un número real (float). El resultado deberá ser otro número real. Probar esta función para calcular el cubo de 3.2 y el de 5. */ float cubica(float numero)
Más detallesEstructuració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 detallesFunciones 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 detallesPaso de Vectores como Parámetros
Paso de Vectores como Parámetros Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad
Más detallesNúmeros enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.
Universidad Rafael Urdaneta Escuela de Ingeniería de Computación Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos. Asignación
Más detallesInformática II Vectores y Matrices
UTN Facultad Regional Tucumán Informática II Vectores y Matrices Arreglos unidimensionales y multidimensionales en C Prof. Ing. Oscar Gálvez A.T.P. Ing. César Ovejero VECTORES Y MATRICES Arreglos unidimensionales
Más detalles1. factorial(4) := 4 * factorial(3) Se invoca a si misma y crea una segunda variable cuyo nombre es
5. Recursividad en Pascal En Pascal, a un procedimiento o función le es permitido no sólo invocar a otro procedimiento o función, sino también invocarse a sí mismo. Una invocación de éste tipo se dice
Más detallesElementos 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 detallesMemoria 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 detallesGUIA DE LABORATORIO # 13 Arreglos unidimensionales y bidimensionales
OBJETIVO GUIA DE LABORATORIO # 13 Arreglos unidimensionales y bidimensionales Entender el concepto y funcionamiento de los arreglos Realizar programas en C, haciendo uso de arreglos, a través de su recorrido
Más detallesSe 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 detallesFUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial
FUNDAMENTOS DE INFORMÁTICA º PRÁCTICA 4: Funciones y vectores CURSO 5/6 Área de Ingeniería de Sistemas y Automática ISA-UMH R-2-FI4v. FUNDAMENTOS DE INFORMÁTICA PRÁCTICA 4: Funciones y vectores curso 25-26
Más detallesTema 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 detallesCAPITULO 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 detallesTEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN
TEMA 4. ELEMENTOS BÁSICOS DE PROGRAMACIÓN 4.1 Definiciones y palabras reservadas básicas del C El lenguaje C++ está compuesto por: 32 palabras clave (estándar ANSI), comunes a todos los compiladores de
Más detallesLenguajes de programación LPSI EUI UPM CADENAS DE CARACTERES
CADENAS DE CARACTERES Arrays unidimensionales de caracteres \0 es el carácter nulo Toda cadena debe acabar en \0 Lo que hay después de \0 en el array no se considera parte de la cadena Las cadenas constantes
Más detallesTEMA 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 detallesINTRODUCCIÓ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 detallesTEMA 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 detallesProgramació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 detallesTema 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 detallesUniversidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México
Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Unidad Académica Profesional Tianguistenco Ingeniería de Software Estructura de Datos
Más detallesFunciones como Subprogramas en C++
FUNCIONES Cuando es necesario escribir programas complicados para resolver problemas complejos, una práctica común entre los programadores es descomponer el algoritmo (el diagrama de flujo) en varias partes.
Más detallesTema 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 detallesESCUELA 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 detallesArrays y Cadenas en C
Arrays y Cadenas en C Los arrays son variables estructuradas, donde cada elemento se almacena de forma consecutiva en memoria. Las cadenas de caracteres son declaradas en C como arrays de caracteres y
Más detallesPráctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
Más detallesRelació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 detallesUniversidad 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 detallesTema: Funciones, Procedimientos y Recursividad en C#.
Tema: Funciones, Procedimientos y Recursividad en C#. Objetivos Programación I, Guía 6 1 Utilizar la sintaxis de las funciones definidas por el usuario (programador) para resolver problemas. Identificar
Más detallesOperaciones 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 detallesLenguajes 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 detallesINTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS
CONTENIDOS 1. Introducción a las cadenas 2. Definición 3. Declaración de cadenas 4. Inicialización de cadenas 5. Escritura y Lectura de datos tipo cadena 6. Funciones de manipulación de cadenas 7. Arrays
Más detallesTipos 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 detallesProgramació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 detallesLaboratorio 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 detalles1 Estructura básica de un programa C++
Elementos básicos de un lenguaje de alto nivel: C++ CONTENIDOS 1. Estructura básica de un programa C++. 2. Tipos de datos simples. 3. Constantes y variables en C++. Declaración. 4. Operadores y expresiones.
Más detallesEn un arreglo x de n elementos los elementos del arreglo son: El número de índices determina la dimensionalidad del arreglo.
1 Arreglos (Arrays). Muchas aplicaciones requieren el procesado de múltiples datos que tienen características comunes. En tales situaciones es a menudo conveniente colocar los datos en un arreglo ó array,
Más detallesCurso 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 detallesAnalista 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 detallesFunciones Tipos de funciones y Recursividad
Funciones Tipos de funciones y Recursividad SESION 4 Definición Una función es una subrutina o subprograma que forman un programa que realiza tareas bien definidas. Todo programa en C consta de una o más
Más detallesEQUIVALENCIAS 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 detallesPASO DE PARÁMETROS O ARGUMENTOS EN C. POR DEFECTO, POR VALOR O POR REFERENCIA. SIZEOF MEMORIA (CU00550F)
APRENDERAPROGRAMAR.COM PASO DE PARÁMETROS O ARGUMENTOS EN C. POR DEFECTO, POR VALOR O POR REFERENCIA. SIZEOF MEMORIA (CU00550F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde
Más detallesTIPOS 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 detallesUNIVERSIDAD 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 detallesIntroducció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 detallesVectores. 27/05/05 Programación Digital I 1
Vectores Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación
Más detallesPROGRAMACION / 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 detallesDescripció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 detallesApuntadores (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 detallesApuntadores 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 detallesCadena 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 detallesTema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
Más detallesLenguaje 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 detallesEscuela 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 detallesProgramació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 detallesProf. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 5 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº5 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Trabajando
Más detallesProgramación en Lenguaje C
Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo
Más detallesIntroducción al lenguaje JAVA
Universidad Autónoma de Tlaxcala Introducción al lenguaje JAVA M.C.. José Juan Hernández ndez Mora Segunda Sesión 1. Arreglos 2. Matrices 3. Clases en Java 4. Clases de Usuario en Java 5. Objetos definidos
Más detallesINICIACIÓ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 detallesPROGRAMACION MODULAR FUNCIONES
PROGRAMACION MODULAR FUNCIONES Ventajas de la programación modular: Aumentar la legibilidad y comprensión del programa Reducir el tiempo de desarrollo, aprovechando módulos ya existentes Permitir la resolución
Más detallesTema 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 detallesPráctica 7c: Uso de estructuras en C.
Práctica 7c: Uso de estructuras en C. Objetivos En esta práctica el objetivo principal es el de poner en práctica los principios básicos del uso de estructuras y librerías de funciones en C. Evaluación
Más detallesEste 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 detallesTodo 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 detallesProgramación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 7 Nombre: Estructuras de datos Contextualización Cuando un programa suele ser muy extenso, un problema clásico de los programadores es la
Más detallesLenguaje 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 detallesRelació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 detallesFunciones en C. En esta unidad aprenderás a: Comprender el desarrollo de un programa utilizando funciones
Funciones en C 03 En esta unidad aprenderás a: Comprender el desarrollo de un programa utilizando funciones Establecer la diferencia entre la definición y declaración de una función Conocer y utilizar
Más detallesEjercicios Tema 6. Funciones
Ejercicios Tema 6. Funciones 1. Programa que calcule el cuadrado de todos los números comprendidos entre dos dados. Usar una función a la que se le pasa como parámetro un valor y retorna su cuadrado. 2.
Más detallesLaboratorio 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 detallesIntroducció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 detallesUnidad I Tipos de Datos en C
Tipos de Datos en C 1. El concepto de los tipos de datos. 2. Tipos de datos básicos del C. 3. Modificadores de tipo. 4. Declaración de variables. 5. Inicialización de variables. 6. Declaración de identificadores
Más detallesTADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013
TADs en C Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013 1. Objetivos Definición de TADs en C Ocultación de la implementación del TAD Manejo básico de memoria dinámica 2. Usando
Más detallesUNIVERSIDAD NACIONAL DE SALTA Sede Regional Orán AÑO: 2013 Carreras: TIG - TUP
TRABAJO PRÁCTICO N 4: Modularidad Ejercicio 1: Dados los siguientes prototipos de módulos, explicar cada elemento que los conforman. a) int suma(int a, int b); b) double area(double base, double altura);
Más detallesEstructura de Datos. Arreglos. Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1
Estructura de Datos Arreglos Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1 Introducción Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización
Más detallesLaboratorio de Arquitectura de Redes. Asignación dinámica de memoria en lenguaje C
Laboratorio de Arquitectura de Redes Asignación dinámica de memoria en lenguaje C Asignación dinámica de memoria en lenguaje C Definición La memoria en los programa en ejecución Asignación y liberación
Más detallesLenguaje 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 detallesLENGUAJE. Tema 3 Elementos de un programa II
LENGUAJE Tema 3 Elementos de un programa II ELEMENTOS DE UN PROGRAMA II Funciones. Procedimientos. Entrada/Salidadedatos. Variables locales / globales. Programación con archivos múltiples. FUNCIONES Además
Más detallesFunciones y paso de parámetros
Unidad Didáctica 24 Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.0 Índice Consideraciones sobre funciones Estructura de una función
Más detallesUNIDAD 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 detallesFUNDAMENTOS DE PROGRAMACIÓN TALLER No. 1 Profesor: Alvaro Ospina Sanjuan
FUNDAMENTOS DE PROGRAMACIÓN TALLER No. 1 Profesor: Alvaro Ospina Sanjuan 1. Escriba un programa que cambie cualquier suma de dinero hasta de 99 ctvs usando las monedas de denominación de 1 ctvs, 5 ctvs,
Más detallesIntroducción a variables de tipo Puntero (Apuntadores) Contenidos. 1. Introducción a las variables puntero 2. Repaso:
Contenidos 1. Introducción a las variables untero 2. Reaso: - oerador de dirección: & - referencias 3. Declaración de variables de tio untero 4. Inicialización de variables de tio untero - El untero nulo:
Más detallesEJEMPLOS DE PROGRAMACIÓN DE FUNCIONES EN C: Página 1 de 5
EJEMPLOS DE PROGRAMACIÓN DE FUNCIONES EN C: Página 1 de 5 1.- Realizar una función llamada par, que toma un número entero como parámetro, y devuelve 1 si es par o devuelve 0 si es impar. NOTA: Para saber
Más detallesAPUNTADORES. 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 detallesIntroducción al tipo de dato ARRAY
CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción
Más detallesTema 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 detallesProgramació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 detallesPor 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 detallesOBJETIVOS. Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos.
/ OBJETIVOS Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos. LABORATORIO 6 MANEJO DE ARCHIVOS DE TEXTO Y BINARIOS Msc. Walter Fernandez
Más detalles1.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