Sie sind auf Seite 1von 20

REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSAUNIVERSIDAD NACIONAL EXPERIMENTAL DE LAS FUERZAS ARMADAS ADS-02

SECCIN 02

PROFESORA: ING. Denis Acosta

INTEGRANTES: Cheve Juliani C.I: 21.110.803 Estaba Griselis C.I: 21.578.604 Hurtado Genesis C.I: 22.816.549 Silva solmaira C.I: 20.225.513

CIUDAD BOLVAR, OCTUBRE 2012

Introduccin: Los arreglos permiten Implementar, representar y manipular de una manera muy conveniente al tipo abstracto de Dato secuencia, en particular permiten implementar de manera sencilla los cambios de Valores que pueda tener una variable tipo secuencia, Una funcin se entiende como un conjunto de declaraciones, definiciones, expresiones que realizan una tarea, como se entiende tambin que, una cadena de caracteres, es una secuencia ordenada de longitud arbitraria.

Los apuntadores como cualquier otra variable deben de ser declarados antes de que puedan ser utilizados. Cualquier expresin con un tipo de matriz se puede convertir a un puntero del mismo tipo. El resultado de la conversin es un puntero al primer elemento de matriz. La aritmtica de punteros se limita a suma, resta, comparacin y asignacin. Es importante que los punteros siempre apunten a variables del mismo tipo. Si se mezclan los tipos, los resultados son errneos. Tambin es importante inicializar los punteros antes de utilizarlos.

1.1 Arreglos. Un array (tambin conocido como arreglo, vector o matriz) es una coleccin de variables relacionadas a las que se hace referencia por medio de un nombre en comn. Es un modo de manejar una gran cantidad de datos del mismo tipo bajo un mismo nombre o identificador. En esta prctica utilizaremos cadenas unidimensionales (vectores y cadenas de caracteres). Su forma general es: tipo nombre [tamao]

Ejemplo: Doubl datos [10]: En esta sentencia se reserva espacio para 10 variables de tipo double, las cuales se van a manejar por medio del nombre datos y un ndice, el cual en C++ siempre empieza por cero.

Los elementos se enumeran desde 0 hasta (n-1). Hay que tener mucho cuidado de no sobre-pasar las dimensiones del array, en cuyo caso dara error el programa. Si queremos acceder al primer elemento del ejemplo anterior: datos [0]=2.5; Al segundo: datos[1]=4.5; Y as sucesivamente hasta el ltimo valor: datos[9]=3.5 1.1.2 Funciones de arreglos. Cuando se usan un arreglo como un argumento a la funcin, se pasa slo la direccin del arreglo y no la copia del arreglo entero. Para fines prcticos podemos considerar el nombre del arreglo sin ningn ndice como la direccin del arreglo. Considerar el siguiente ejemplo en donde se pasa un arreglo a la funcin imp_rev, observar que no es necesario especificar la dimensin del arreglo cuando es un parmetro de la funcin. void imp_rev(char s[]) { int t; for( t=strlen(s)-1; t>=0; t--)

printf("%c",s[t]);}main() {char nombre[]="Facultad"; imp_rev(nombre);}

Observar que en la funcin imp_rev se usa la funcin strlen para calcular la longitud de la cadena sin incluir el terminador nulo. Por otra parte, la funcin imp_rev no usa la sentencia return ni para terminar de usar la funcin, ni para regresar algn valor. Se muestra otro ejemplo, float enconprom(int tam, float lista[]) { int i;float suma = 0.0; for ( i=0; i<tam; i++) suma += lista[i]; return(suma/tam);} main() {float numeros[]={2.3, 8.0, 15.0, 20.2, 44.01, -3.0, -2.9}; printf("El promedio de la lista es %f\n", enconprom(7,numeros) );}

Para el caso de que se tenga que pasar un arreglo con ms de una dimensin, no se indica la primera dimensin pero, el resto de las dimensiones deben sealarse. Se muestra a continuacin un ejemplo: void imprtabla(int tamx,int tamy, float tabla[][5]) { int x,y;for ( x=0; x<tamx; x++ ) { for ( y=0; y<tamy; y++ )printf("t[%d][%d]=%f",x,y,tabla[x][y]);printf("\n");} Una funcin es un conjunto de declaraciones, definiciones, expresiones y sentencias que realizan una tarea especfica. El formato general de una funcin en C es especificador_de_tipo nombre_de_funcin( lista_de_parmetros ) { variables locales cdigo de la funcin } El especificador_de_tipo indica el tipo del valor que la funcin devolver mediante el uso de return. El valor puede ser de cualquier tipo vlido. Si no se especfica un valor, entonces la computadora asume por defecto que la funcin

devolver un resultado entero. No se tienen siempre que incluir parmetros en una funcin. la lista de parmetros puede estar vaca. Las funciones terminan y regresan automticamente al procedimiento que las llam cuando se encuentra la ltima llave }, o bien, se puede forzar el regreso antes usando la sentencia return. Ademas del uso sealado la funcin return se usa para devolver un valor.

1.1.3 Procedimientos de Arreglos.

Los procedimientos son instrumentos que encapsulan un conjunto de lneas de cdigo para ser invocadas las veces que se requieran durante la ejecucin del procedimiento no devuelven ningn valor.

1.1.4 Las funciones de arreglos.

Son instrumentos que encapsula un conjunto de lneas de cdigos para hacer invocadas las veces que se requiera durante la ejecucin de programa. Los procedimientos si devuelven un valor y por lo tanto deben declararse como las variables.

Las funciones se identifican con la expresin reservada: por ejemplo: MsgBox es una funcin por que devuelve un objeto de tipo: MsgBoxResult.

1.1.5 Arreglos Unidimensionales Y Bidimensionales.

Un

arreglo

puede

tener

una

varias

dimensiones

los

arreglos

unidimensionales se les conocen como vectores y a los bidimensionales como matrices. Para acceder a un elemento en particular de un arreglo se usa un ndice.

1.2 Cadenas de caracteres: Una cadena de caracteres es una sucesin de caracteres (letras, nmeros u otros signos o smbolos).podemos decir que es un conjunto de caracteres (incluido el blanco) que se almacenan en localidades contiguas de memoria. Se representa como un vector de caracteres donde cada elemento del vector representa un carcter de la cadena. En programacin, una cadena de

caracteres, palabra, ristra de caracteres o frase (string en ingls) es una secuencia ordenada de longitud arbitraria (aunque finita) de elementos que pertenecen a un cierto lenguaje formal o alfabeto anlogas a una frase o a una oracin. Ejemplo:

Fuente:sistemas.ing.ula.ve/pr1/unidad Programacin de cadenas de caracteres

En matemticas o en programacin, una cadena de caracteres, palabra o frase (String en ingls) es una secuencia ordenada de longitud arbitraria (aunque finita) de elementos que pertenecen a un cierto alfabeto. En general, una cadena decaracteres es una sucesin de caracteres (letras, nmeros u otros signos o smbolos). En matemticas es habitual usar las letras w, x, y,... para referirnos a las cadenas. Por ejemplo, si tenemos un alfabeto _ = {a, b, c}, una cadena podra ser: x = aacbbcba. Desde un punto de vista de la programacin, si no se ponen restricciones al alfabeto, una cadena podr estar formada por cualquier combinacin finita de todo el juego caracteres disponibles (las letras de la 'a' a la

'z' y de la 'A' a la 'Z', los nmeros del '0' al '9', el espacio en blanco ' ', smbolos diversos '!', '@', '%', entre otros.).

Fuente: wikipedia.org/wiki/ Cadena de caracteres

1.2.1 Caractersticas de cadenas de carcter Las cadenas de caracteres son un tipo especial de arreglo pues se trata de un conjunto de datos de tipo char que termina con un carcter nulo, a este tipo de cadenas tambin se les conoce como "cadenas". Para almacenar y especificar cadenas de caracteres alfanumricos el Java ofrece un tipo de dato bsico, que es un objeto, y que se denomina String. Muchas de las caractersticas de los String las dejamos para cuando se estudien los objetos. Pero las bsicas son: Los datos se especifican entre comillas: String saludo = "Hola Jefe"; // 1declara la variable saludo del tipo String y le asigna la cadena de 9 caracteres ``Hola Jefe''. El String es un verdadero conjunto ordenado de datos del tipo char, por tanto, las secuencias de control no representables con un solo carcter se representan como en los char.

String saludo = "Hola \n Jefe";lo utilizaramos para que el saludo se escribiera en dos lneas. El operador ``+'' entre datos del tipo String es el operador de concatenacin: String saludo = "Hola " + "Jefe"; // 2 es equivalente a la instruccin anterior marcada con //1. 1.2.2 Longitud de una cadena de caracteres. La cantidad que letras que hay en una cadena de caracteres (sin espacios) int Contar(char objetivo[256]){ int contador; int lectura; while(lectura = 0){ if(&objetivo[contador] == NULL){ lectura = 1; } else{ contador++; } } return contador; } char texto[256]; // pido que se escriba el texto Contar(texto); 1.2.2 Operaciones entre cadenas. Siguiendo en el mbito de la informtica, al considerar las cadenas como un tipo de datos, hay que definir (o conocer) cuales son las operaciones que podemos hacer con ellas, en principio stas podran ser muchas y llegar a ser muy sofisticadas, aqu se exponen algunas de ellas: Asignacin: Consiste en asignarle una cadena a otra.

Concatenacin: Consiste en unir dos cadenas o ms (o una cadena con un carcter) para formar una cadena de mayor tamao. Bsqueda: Consiste en localizar dentro de una cadena una subcadena ms pequea o un carcter. Extraccin: Se trata de sacar fuera de una cadena una porcin de la misma segn su posicin dentro de ella. Comparacin: Se utiliza para comparar dos cadenas. 1.2.3 Procedimientos para cadenas de caracteres Una cadena de caracteres es sinnimo de constante de caracteres (se denomina tambin literal) y es simplemente una secuencia de caracteres ANSI encerrados entre comillas. Por ejemplo: "Introducir valor" "AFIOO8G-79"

Una cadena de caracteres puede ser manipulada directamente o a travs de una variable de caracteres o variable alfanumrica en la que se haya almacenada previamente. Por Ejemplo: Dim etiqueta As String etiqueta = InputBox("Etiqueta") etiqueta = etiqueta & "01" Utilizando el operador de concatenacin (&) y los procedimientos de cadenas de caracteres, podemos agrupar las variables y las constantes de caracteres para formar una expresin de caracteres. As mismo, utilizando los operadores de relacin podemos comparar cadenas de caracteres. Por ejemplo: Dim cad1 As String, cad2 As String If cad1 > cad2 Then...

Decir que una cadena es menor, igual o mayor que otra, significa indicar si est antes por orden alfabtico, si tienen exactamente los mismos caracteres o si est despus por orden alfabtico, respectivamente. 1.2.4 Descripcin de Procedimientos para cadenas de caracteres A continuacin vamos a ver procedimientos que nos permiten manipular cadenas de caracteres: Funcin: Len Da como resultado el nmero de caracteres de una cadena. Su sintaxis es: nombre_variable=Len(expresin_cadena) Ejemplo: Text3.Text = Left(texto, 2) Funcin: Left Da como resultado el nmero de caracteres de la expresin_de_cadena situados ms a la izquierda. Su sintaxis es: nombre_variable=Left(expresin_cadena, n) Ejemplo: Text3.Text = Left(texto, 2) Donde expresin_de_cadena es cualquier expresin de cadenas de caracteres y n es una expresin numrica. Si n es mayor que Len (expresin_de_cadena), el resaltado es la cadena de caracteres completa. Si n es igual a 0, el resultado es una cadena de caracteres completa. Funcin: Rigth Muestra los dos ltimos caracteres de la cadena texto y su sintaxis es: nombre_variable=Rigth(expresin_cadena, n) Ejemplo: Text3.Text = Right(texto, 2) Funcin: Mid Muestra la cadena texto empezando por el primer carcter y con la longitud de la cadena texto y su sintaxis es: nombre_variable= Mid(expresin_cadena, n[,m])

Ejemplo: Text3.Text = Mid(texto, 1, Len(texto)) Funcin: Instr

Compara dos cadenas de caracteres a partir de una posicin numrica en la cadena devolviendo un 0 o un 1 en funcin de si son iguales o no y su sintaxis es: pos= Instr([n,]cadena,cadena_buscada) Ejemplo: Text5.Text = InStr(2, texto, texto) Funcin: String Devuelve una cadena de caracteres a partir de un numero(por el que estar formada la cadena resultante) y una cadena que compararemos, y su sintaxis es: cadena = String(n,caracter) Ejemplo: Text6.Text = String(1, "a") Funcin: Str Convierte una expresin numrica en en una expresin de caracteres y su sintaxis es: cadena = Str(n) Ejemplo: Text7.Text = Str(7) Funcin: Val Devuelve el valor numrico de una cadena de caracteres y su sintaxis es: numero = Val(expresin_de_cadena) Ejemplo: Text8.Text = Val(texto) Funcin: Chr Devuelve el asci a un carcter introducido y su sintaxis es nombre_variable = Chr(codigo_caracter)

Ejemplo: Text9.Text = Chr(7) Funcin: Asc Devuelve el cdigo de caracter de la primera letra y su sintaxis es: codigo_caracter =Asc(expresin_de_cadena) Ejemplo: Text10.Text = Asc("j")

Funcin: Space Devuelve un numero de espacios y su sintaxis es: Cadena =space(numero) Ejemplo: Text11.Text = Space(4) Variable Date Devuelve la fecha del sistema y la guarda en una variable y su sintaxis es: cadena = Date Ejemplo: texto = Date Sentencia Time Devuelve la hora del sistema y su sintaxis es: cadena = Time

Ejemplo: texto = Time Funcin: UCase y LCase Convierte una cadena de caracteres a maysculas y a minsculas respectivamente, y su sintaxis es: cadena=LCase(expresion_de_cadena) Ejemplo: Text15.Text = LCase(texto) 1.3 Apuntadores

1.3.1 Introduccin de los apuntadores. Los apuntadores son una parte fundamental de C. Si usted no puede usar los apuntadores apropiadamente entonces est perdiendo la potencia y la flexibilidad que C ofrece bsicamente. El secreto para C esta en el uso de apuntadores. C, usa los apuntadores en forma extensiva. Por qu? Es la nica forma de expresar algunos clculos. Se genera cdigo compacto y eficiente. Es una herramienta muy poderosa. C, usa apuntadores explcitamente con: Es la nica forma de expresar algunos clculos. Se genera cdigo compacto y eficiente. Es una herramienta muy poderosa. C, usa apuntadores explcitamente con: Arreglos, Estructuras y Funciones El uso de apuntadores en C y C++ es muy importante debido a que permite hacer los programas ms eficientes y ms flexibles. En este artculo se explica de una manera sencilla y breve todo lo referente a la utilizacin de apuntadores tanto en C como en C++.

Todo lo explicado en este artculo aplica tanto para C como para C++, a menos que se especifique un lenguaje en particular. En algunos ejemplos de cdigo que son aplicables a C aparecen instrucciones de entrada y salida de las libreras estndar de C++. 1.3.2 Declaracin sintctica de un puntero. Es una variable que contiene la direccin de otra variable. Tambin podramos decir que un puntero es una variable que representa la posicin (ms que el valor) de otro dato, tal como una variable o un elemento de un array.

Cuando una variable puntero es definida, el nombre de la variable debe ir precedido de un asterisco (*). Este identifica que la variable es un puntero. Por tanto, una declaracin de puntero puede ser escrita en tminos generales como: <tipo> es cualquier tipo de variable en C.

<identificador> es el nombre del puntero. El tipo o tipo base, indica el tipo de variables que se podrn manipular a travs del puntero. Es importante conocer el tipo base de un puntero, puesto que toda la aritmtica de punteros se realiza con relacin a la base. (Luego lo veremos ms claro en los ejemplos).

Los punteros se pueden comparar entre ellos y se pueden asignar direcciones de memoria. Adems, se pueden decrementar o incrementar. El incremento o el decremento vara segn el tipo de dato al que apunten. A los punteros tambin se les puede sumar o restar nmeros enteros. Declaracin De Apuntadores. Cuando se declara una variable, el compilador reserva un espacio de memoria para ella y asocia el nombre de sta a la direccin de memoria desde donde comienzan los datos de esa variable. Las direcciones de memoria se suelen describir como nmeros en hexadecimal. Un apuntador es una variable cuyo

valor es la direccin de memoria de otra variable. Se dice que un apuntador apunta a la variable cuyo valor se almacena a partir de la direccin de memoria que contiene el apuntador. Por ejemplo, si un apuntador p almacena la direccin de una variable x, se dice que p apunta a x. El tipo de un apuntador lo proporciona implcitamente el tipo de la variable a la que apunta. Los apuntadores pueden ser declarados para apuntar a objetos de cualquier clase. La sintaxis general de declaracin es: <tipo> * <variable> Ejemplos de declaraciones: La variable contPtr es del tipo apuntador a entero, (int *) y se lee ``contPtr es un apuntador a int'' o ``contPtr apunta a una variable entera''. 1.3.3 Funciones y Apuntadores. Funciones: Cuando C pasa argumentos a funciones, los pasa por valor, es decir, si el parmetro es modificado dentro de la funcin, una vez que termina la funcin el valor pasado de la variable permanece inalterado. Hay muchos casos que se quiere alterar el argumento pasado a la funcin y recibir el nuevo valor una vez que la funcin ha terminado. Para hacer lo anterior se debe usar una llamada por referencia, en C se puede simular pasando un puntero al argumento. Con esto se provoca que la computadora pase la direccin del argumento a la funcin. Los Apuntadores:

Los apuntadores son variables que almacenan direcciones de memoria. En general una variable contiene un valor especfico dependiendo de cmo fue declarada. Un apuntador contiene la direccin de una variable que contiene un valor especfico. Una variable se refiere directamente a un valor y un apuntador se refiere indirectamente a un valor. Apuntadores usados en C debido a que a veces son la nica manera de expresar un clculo. Se puede llegar a obtener un cdigo ms compacto y eficiente. Cuando se emplean sin cuidado pueden crear programas imposibles de entender. Cuentan con una declaracin propia. Los apuntadores disponen de dos operadores: El operador unario o mondico & devuelve la direccin de memoria de una variable; El operador de indireccin o desreferencia * devuelve el ``contenido de un objeto apuntado por un apuntador''. 1.3.4 Expresiones y aritmtica de punteros. Cualquier expresin con un tipo de matriz se puede convertir a un puntero del mismo tipo. El resultado de la conversin es un puntero al primer elemento de matriz. El ejemplo siguiente muestra este conversin: char szPath[_MAX_PATH]; // Array of type char. char *pszPath = szPath; // Equals &szPath[0].

Una expresin que da lugar a una funcin que devuelve un tipo determinado se convierte a un puntero a una funcin que devuelve ese tipo, excepto cuando:

La expresin se utiliza como operando el operador (y). La expresin se utiliza como operando al operador de llamada de funcin.

Aritmtica de punteros: La aritmtica de punteros se limita a suma, resta, comparacin y asignacin. Las operaciones aritmticas en los punteros de tipoX (punteros-a-tipoX) tienen automticamente en cuenta el tamao real de tipoX. Es decir, el nmero de bytes necesario para almacenar un objeto tipoX [2]. Por ejemplo, suponiendo una matriz de double con 100 elementos, si ptr es un puntero a dicha matriz, la sentencia ptr++; supone incrementar el Rvalue de ptr en 6.400 bits, porque el tamao de la matriz es precisamente 100x64 bits. Un puntero apunta a una direccin de memoria. El lenguaje C permite sumar o restar cantidades enteras al puntero, para que apunte a una direccin diferente: aritmtica de punteros . Consideremos un puntero a enteros: int* ptr; ptr apuntar a cierta direccin de memoria: Pero tambin tendrn sentido las expresiones ptr+1, ptr+2, etc. La expresin ptr+k es un puntero que apunta a la direccin de ptr sumndole k veces el espacio ocupado por un elemento del tipo al que apunta (en este caso un int): Ejemplo de aritmtica de punteros

int vector [100]; /* un vector de enteros */ int *ptr; /* un puntero a enteros */ ... ptr = &vector[0]; /* ptr apunta al principio del vector */ *ptr = 33; /* igual que vector[0] = 33 */ *(ptr+1) = 44; /* igual que vector[1] = 44 */

*(ptr+2) = 90;

/* igual que vector[2] = 90 */

La expresin que se suma al puntero ha de ser entera y no tiene por qu ser constante. Obsrvese que ptr es lo mismo que ptr+0. La expresin sumada NO es el nmero de bytes que se suman a la direccin, es el nmero de elementos del tipo al que apunta el puntero: /* Supongamos que un "char" ocupa 1 byte */ /* y que un "double" ocupa 8 bytes */ char* ptrchar; double* ptrdouble; *(ptrchar+3) = 33; /* la direccin es ptrchar + 3 bytes */ *(ptrdouble+3) = 33.0; /* la direccin es ptrdouble + 24 bytes, ya que cada double ocupa 8 bytes */El compilador "sabe" cmo calcular la direccin segn el tipo. 1.3. 5 Mtodos de Ordenamiento.

Este algoritmo compara elementos consecutivos del arreglo uno con respecto del otro, si es mayor o menor segn el tipo de ordenamiento y los cambia de posicin. Este proceso se repite recorriendo todo el arreglo para posicionar un solo dato, por lo que es necesario repetirlo para los dems datos del arreglo. Su implementacin es la siguiente: #include <stdio.h> #include <conio.h> #include <stdlib.h> #define TAM 10 void main(){ int a[TAM], temp, i, j; clrscr(); randomize(); //Inicializa el generador de numeros aleatorios

printf ("Llenando arreglo con nmeros aleatorios\n"); for (i=0; i< TAM; i++) a[i]=random(100); //Implementacion de Ordenamiento por burbuja de mayor a menor for (j=1; j <= TAM; j++) for (i=0; i< TAM-1; i++) if (a[i] < a[i+1]){temp = a[i];a[i] = a[i+1];a[i+1] = temp;} printf ("\nArreglo ordenado\n"); for (i=0; i< TAM; i++) printf ("a[%d] = %d\n", i, a[i]); getch(); Conclusin:

Decimos que el tipo arreglo es un tipo estructurado, lo cual significa que los valores del Tipo vienen definidos por una estructura sobre valores de otros tipos (en este caso una funcin de enteros a otro conjunto). Tradicionalmente los arreglos han sido vistos como un conjunto de variables indexadas e esta afecta a la funcin b y no slo a la variable b[i], y si no estamos conscientes de esto podemos llegar a conclusiones incorrectas. Una cadena de caracteres es sinnimo de constante de caracteres (se denomina tambin literal) Los apuntadores son una parte fundamental de C. Si usted no puede usar los apuntadores apropiadamente entonces esta perdiendo la potencia y la flexibilidad que C ofrece bsicamente.

El secreto para C esta en el uso de apuntadores. Este algoritmo compara elementos consecutivos del arreglo uno con respecto del otro, si es mayor o menor segn el tipo de ordenamiento y los cambia de posicin. Este proceso se repite recorriendo todo el arreglo para posicionar un solo dato, por lo que es necesario repetirlo para los dems datos del arreglo. Los punteros se pueden comparar entre ellos y se pueden asignar direcciones de memoria. Adems, se

pueden decrementar o incrementar. El incremento o el decremento vara segn el tipo de dato al que apunten. A los punteros tambin se les puede sumar o restar nmeros enteros.

Bibliografa:

http://ldc.usb.ve/~meza/ci-2615/cap6.pdf ( http://html.rincondelvago.com/apuntadores-en-lenguajes-deprogramacion.html http://sistemas.ing.ula.ve/pr1/unidad_4/tema_2/definicion.html http://es.wikipedia.org/wiki/Cadena_de_caracteres Esta pgina fue modificada por ltima vez el 1 oct 2012, a las 03:29. http://www.monografias.com/trabajos-pdf/caracteres-cadenas/caracterescadenas.shtml( dia http://www.buenastareas.com/search_results.php?action=search&hidden= 0&query=concepto+de+cadena+de+caracteres (2010, 11). Cadenas De Caracteres. BuenasTareas.com. Recuperado 11, 2010.

Das könnte Ihnen auch gefallen