Vous êtes sur la page 1sur 10

Ordenamiento por seleccin: - se recorre el arreglo, se selecciona el elemento menor y se intercambia este elemento con el de la primera posicin.

5
0

8
1

4
2

2
3

2
0

8
1

4
2

5
3

- En la siguiente pasada se hace lo mismo, pero ahora se busca desde la segunda posicin hasta el final el menor. Se intercambia ste menor con lo que est en la segunda posicin.

2
0

8
1

4
2

5
3

2
0

4
1

8
2

5
3

- Se repite para las siguientes posiciones, hasta la posicin (n-1)

2
0

4
1

8
2

5
3

2
0

4
1

5
2

8
3

Algoritmo en seudocdigo para ordenamiento segn seleccin: i=0; mientras( i < n-1) pos_bajo = i j = i+1 mientras( j<n) // recorre con j, buscando el ms bajo // compara los promedios en las posiciones j y pos_bajo si(promedio[j] < promedio[pos_bajo]) entonces pos_bajo = j; j = j+1 aux = promedio[i]; // intercambia los valores de la posicin y "i" y "pos_bajo" promedio[i] = promedio[pos_bajo]; promedio[pos_bajo] = aux; i = i+1 }

Clase 11 de junio de 2009 Caracteres, arreglos de caracteres, string char : tipo de dato elemental: char Ejm: char c1 = c2 = c3 = c1,c2,c3; a; ); 9; 1 byte 2^8= 256 (ASCII)

Caractersticas de caracteres: - Secuencialidad de los caracteres - comparar caracters c1>c2 - maysculas < minsculas.. Ejemplo: for (int i=65; i<91; i++) Ejemplo:

for (char c='a'; c<'z'; c++)

Arreglo de caracteres char a[N]={'r','u','t','h'};

String: cadena de caracteres. char linea[] = "buenos dias" b 0 Ejemplos: - como asignar datos a un string - ingresa nombre y saluda - despliega las letras del nombre separadas con un blanco ... Ejercicio: Palndrome... - anita lava la tina funciones ms conocidas de la biblioteca string: strlen() - Devuelve la longitud de un string strcpy() - Copia un string en otro strcmp() - Compara dos strings lexicogrficamente strchr() - Busca un caracter dentro de un string u 1 e 2 n 3 o 4 s 5 6 d 7 i 8 a 9 s 10 \0 11

strstr() - Busca un string dentro de otro string

Matrices.... Arreglos bidimensionales: arreglo de dos dimensiones es un arreglo de arreglos se almacenan en forma contigua en la memoria, un arreglo despus del otro son referenciadas con un nico nombre + un ndice para la fila y otro para columna ndices parten en 0, y permiten individualizar a cada elemento. Corresponden a la fila (arreglo) y a la columna (elemento dentro del arreglo), del arreglo de arreglo. otros nombres: matrices todos los arreglos que componen la matriz son del mismo tipo. Esto significa que cada arreglo (fila) es del mismo largo que los dems y del mismo tipo (int, float, etc) que los dems.

Declaracin: Sintaxis: tipo_dato nombre_arreglo[num_elementos1][num_elementos2]

num_elementos1 indica el nmero de arreglos que contiene la matriz (filas) num_elementos2 indica el nmero de elementos bsicos (int, float,etc) que contiene cada uno de los arreglos (columnas)

Ejm. Declaracin de una matriz de 5 arreglos con 6 elementos en cada arreglo int a[5][6]; // son 30 elementos en total Asignacin: se debe asignar valor elemento por elemento: a[0][0] = 3; // el contenido del elemento a[0][0] es 3 a[1][0] = 4; a[2][1] = 10; a[3][4] = 5; a[4][5] = 7;

0 0 3 1 4 2 3 4

10 5 7

Se puede extender el nmero de dimensiones de los arreglos, en el caso de tres dimensiones se tienen cubos.

Problema: Programa que llena una matriz de 10 por 10 con 0's (ceros) y la despliega. Luego la llena con nmeros generados aleatoriamente. Problema: Programa que llena una matriz de 10 por 10 con 0 (ceros) y la despliega. Luego modifica la matriz anterior de forma que la diagonal quede con 1 (unos) y vuelve a desplegarla

Problema: Lee dos matrices, las suma y almacena el resultado en una tercera matriz.

Argv y argc Argumentos de entrada a main() desde la lnea de comandos main(int argc, char *argv[]) { ... argc: contador de argumentos, argv: arreglo que contiene los argumentos

Archivos abrir y cerrar archivos: fopen, fclose declaracin: FILE *fp; apertura del archivo: fp = fopen("nombre-fisico", "modo-apertura"); Ejemplo de apertura de archivo segura: fp = fopen("datos.txt", "a"); if (fp == NULL) { printf("Error abriendo el archivo\n"); exit(1); /* Termina la ejecucion del programa indicando error */ }

Modos de apertura de un archivo: Un archivo se puede abrir de slo una de las tres siguientes formas, cada vez: r: abre de lectura el archivo. Si no existe genera un error. w: abre de escritura el archivo. Si no existe crea el archivo. si existe borra el contenido original del archivo. a: abre un archivo de 'agregado'. Si no existe el archivo, crea uno. Si existe, escribe a continuacin de los datos que ste contiene.

fgets y fputs La funcin fgets lee una lnea de texto desde un archivo y retorna la constante NULL cuando se termina el archivo o cuando se produce un error. La lnea leda incluye el caracter de fin de lnea: '\n'. La funcin fputs escribe una lnea de texto (incluyendo el caracter '\n') en un archivo. El archivo que representa al teclado y que permite recibir entradas desde l es: stdin, que corresponde a leer datos desde el teclado. El archivo considerado que representa a la pantalla, y permite enviar salidas es: stdout, que corresponde a desplegar datos en la pantalla.

Ejemplo: #define N 100 ... char linea[N] if ( fgets(linea, N, stdin) != NULL) fputs(linea, stdout); else printf("error al leer datos");

Problema: - programa que cuente los caracteres de un string ledo desde teclado...

Ejercicios propuestos: - lee un archivo completo - lee un archivo completo y lo copia en otro - uso de argc y argv para pasar los nombres de los archivos - elimina lneas de un archivo si empiezan con // - elimina lneas a partir de // - copia el archivo ntegro en una matriz de caracteres Ejercicios: - programa que justifica a la derecha un prrafo, centra, a la izquierda, a ambos lados...

Vous aimerez peut-être aussi