UNIVERSIDAD     TECNICA DE AMBATO    FACULTAD DE CIENCIAS  HUMANAS Y DE LA EDUCACION    CARRERA DE DOCENCIA EN         INF...
FUNCIONES EN C.Las funciones se declaran y se definen exactamente igual que en C, y, al igual que en éste,se puede utiliza...
En el prototipo de una función no se especifican las sentencias que forman parte de lamisma, sino sus características. Por...
No puede ser sobrecargada       No puede ser declarada como inline       La función main debe estar en el espacio global d...
tipo_elemento elemento;     ...     elemento = nombre[2];Asumiendo que tenemos el vector anterior definido estaríamos guar...
MATRICESMatrices Una matriz es un array multidimensional. Se definen igual que los vectoresexcepto que se requiere un índi...
Se deben evitar casos como el del ejemplo, porque, o bien el programa correrá sin mensajesde error, o bien casca.Una forma...
Funciones con arrays y vectores en c
Funciones con arrays y vectores en c
Funciones con arrays y vectores en c
Funciones con arrays y vectores en c
Funciones con arrays y vectores en c
Upcoming SlideShare
Loading in …5
×

Funciones con arrays y vectores en c

10,489 views

Published on

2 Comments
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total views
10,489
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
88
Comments
2
Likes
0
Embeds 0
No embeds

No notes for slide

Funciones con arrays y vectores en c

  1. 1. UNIVERSIDAD TECNICA DE AMBATO FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACION CARRERA DE DOCENCIA EN INFORMATICA PROGRAMACION II DOCENTE: Ing. WILMA GAVILÁNEZ NOMBRE:DIEGO SANTIAGO CHICAIZA PAREDES
  2. 2. FUNCIONES EN C.Las funciones se declaran y se definen exactamente igual que en C, y, al igual que en éste,se puede utilizar prototipoLas funciones son utilizadas para descomponer grandes problemas en tareas simples y paraimplementar operaciones que son comúnmente utilizadas durante un programa y de estamanera reducir la cantidad de código. Cuando una función es invocada se le pasa el controla la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde elcual la función fue llamada.PARÁMETROS.Normalmente, las funciones operan sobre ciertos valores pasados a las mismas ya sea comoconstantes literales o como variables, aunque se pueden definir funciones que no recibanparámetros. Existen dos formas en C++ de pasar parámetros a una función; por referencia opor valor. El hecho es que si en una declaración de función se declaran parámetros porreferencia, a los mismos no se les podrá pasar valores literales ya que las referenciasapuntan a objetos (variables o funciones) residentes en la memoria; por otro lado, si unparámetro es declarado para ser pasado por valor, el mismo puede pasarse como unaconstante literal o como una variable. Los parámetros pasados por referencia pueden seralterados por la función que los reciba, mientras que los parametros pasados por valor ocopía no pueden ser alterados por la función que los recibe, es decir, la función puedemanipular a su antojo al parámetro, pero ningún cambio hecho sobre este se reflejará en elparámetro original.DECLARACIÓN DE FUNCIONES.La definición de la función se realiza en el código fuente (o en librerías precompiladas), delfuera bloque de cualquier otra función, incluyendo main y, a excepción de la capacidad delC++ de lo que se denomina sobrecarga, solo está permitida en cada programa unadefinición para cada funciónAntes de empezar a utilizar una función debemos declararla. La declaración de una funciónse conoce también como prototipo de la función. En el prototipo de una función se tienenque especificar los parámetros de la función, así como el tipo de dato que devuelve. Losprototipos de las funciones que se utilizan en un programa se incluyen generalmente en lacabecera del programa y presentan la siguiente sintaxis:tipo_de_retorno nombre_de_la_función(lista_de_parámetros);
  3. 3. En el prototipo de una función no se especifican las sentencias que forman parte de lamisma, sino sus características. Por ejemplo:int cubo(int numero);En este caso se declara la función cubo que recibe como parámetro una variable de tipoentero (numero) y devuelve un valor del mismo tipo. En ningún momento estamosespecificando qué se va a hacer con el variable número, sólo declaramos las característicasde la función cubo.Cabe señalar que el nombre de los parámetros es opcional y se utiliza para mejorar lacomprensión del código fuente. De esta manera, el prototipo de la función cubo podríaexpresarse de la siguiente manera:int cubo(int);¿Cómo declaro una función?Cuando declaramos las librerías que vamos a usar en el programa, inmediatamente sedeclara la función, junto con sus parámetros con que va a trabajar.Ejemplo:(…etc)int suma(int a, int b);¿Cómo la llamo?En el programa principal, solo escribes el nombre, más los parámetros de dicha función.Esto le indica al compilador de C++ que es una función y que se está invocando.Ejemplo:suma(a, b)RESTRICCIONESLa función main adolece de ciertas limitaciones que la diferencian del resto de funcionesC++: No puede ser invocada explícitamente a lo largo del programa, es invocada de forma automática por el módulo de inicio No puede obtenerse su dirección, por lo tanto no pueden declararse punteros a ella: int (* pmain)() = &main; // Error!!
  4. 4. No puede ser sobrecargada No puede ser declarada como inline La función main debe estar en el espacio global de una de las unidades de compilación del programa, lo que significa que no puede pertenecer a una clase.VECTORES CON FUNCIONESLos vectores son una forma de almacenar datos que permiten contener una serie de valoresdel mismo tipo, cada uno de los valores contenidos tiene una posición asociada que se usarápara accederlos. Está posición o índice será siempre un número entero positivo.En C la cantidad de elementos que podrá contener un vector es fijo, y en principio se definecuando se declara el vector. Los vectores se pueden declarar de la siguiente forma: tipo_elemento nombre[largo];Esto declara la variable nombre como un vector de tipo_elementos que podrá contenerlargo cantidad de elementos, y cada uno de estos elemento podrá contener un valor de tipotipo_elemento.Por ejemplo: double valores[128];En este ejemplo declaramos un vector de 128 elementos del tipo double, los índices de loselementos irían entre 0 (para el primer elemento y 127 para el último).De la misma forma que con las otras declaraciones de variables que hemos visto se le puedeasignar un valor iniciar a los elementos.O también se pueden declarar: tipo_elemento nombre[largo]={valor_0, valor_1, valor_2};En caso estamos asignadole valores a los primeros 3 elementos del vector nombre. Notarque largo debe ser mayor o igual a la cantidad de valores que le estamos asignando alvector, en el caso de ser la misma cantidad no aporta información, por lo que el lenguajenos permite escribir: tipo_elemento nombre[]={valor_0, valor_1, valor_2};Que declarará nombre como el vector de largo 3.Para acceder a un elemento accederemos a través de su posición. Es decir:
  5. 5. tipo_elemento elemento; ... elemento = nombre[2];Asumiendo que tenemos el vector anterior definido estaríamos guardando valor_2 enelemento.EJEMPLO DE FUNCIONES CON VECTORES.Diseñe un programa utilizando vectores y funciones que me permita llenar un vector enforma intercalada con 2 factores leídos desde teclado, en donde el primer factor sea siempreun múltiplo de 3 y el segundo factor sea siempre un múltiplo de 4, recorra el vector yencuentre todos los números pares, asígnelos en un nuevo vector y preséntelos en formaordenada y represéntelos en forma ascendente y descendente.
  6. 6. MATRICESMatrices Una matriz es un array multidimensional. Se definen igual que los vectoresexcepto que se requiere un índice por cada dimensión. Su sintaxis es la siguiente:tipo nombre [tamaño 1][tamaño 2]...;Una matriz bidimensional se podría representar gráficamente como una tabla con filas ycolumnas. La matriz tridimensional se utiliza, por ejemplo, para trabajos gráficos conobjetos 3D. En el ejemplo puedes ver como se rellena y visualiza una matriz bidimensional.Se necesitan dos bucles para cada una de las operaciones. Un bucle controla las filas y otrolas columnas.SinopsisCuando hay que pasar una matriz bidimensional como argumento a una función, ladeclaración de parámetros formales de esta debe incluir el número de columnas, ya que lafunción receptora debe conoce la estructura interna de la matriz, para poder para acceder asus elementos, y esto solo es posible informándole de su tipo y dimensiones. En el casoque nos ocupa las dimensiones son dos, por lo que la definición de la función llamada seríaalgo así:func (int dias[2][12]) {...}Observe que en la expresión anterior está incluida toda la información necesaria: número defilas, número de columnas y tamaño de cada elemento (un int). Desde luego la funciónreceptora necesita conocer también la dirección de inicio del almacenamiento, pero yahemos señalado que "el identificador de una matriz puede ser utilizado como un puntero asu primer elemento", con lo que si mentalmente sustituimos días por un puntero al número31 (primer elemento) de la primera matriz, la información pasada es completa.Al definir la función, no hemos puesto ningún número entre los corchetes. Esto significaque estamos permitiendo que un array de cualquier tamaño pueda ser pasado a la función.En la función main, hemos declarado dos arrays de enteros, taco y nacho. Primero pasamostaco a la función, que en realidad es la direccion del array taco. Ahora bien, el segundoarray, nacho, tiene sólo dos elementos. Cuando la función trate de acceder al tercerelemento del array, que realmente no existe. Ya que los arrays son muchas variablesalmacenadas una detrás de otra en la memoria del ordenador, tratará y accederá a lavariable almacenada despueés del segundo elemento del array, que no existe.Además, el programa compilará y correrá sin mensajes de error. Esto sucedía ya en C, quepermite leer y escribir en la memoria del ordenador sin saber si realmente hay variables allí.
  7. 7. Se deben evitar casos como el del ejemplo, porque, o bien el programa correrá sin mensajesde error, o bien casca.Una forma de evitarlo es añadiendo un segundo parámetro que indique el tamaño del array:# include <iostream.h>Ejemplo de matrices y funciones

×