Está en la página 1de 10

FUNCIN

C fue diseado como un lenguaje de programacin estructurado, tambin llamado


programacin modular. Por esta razn, para escribir un programa se divide ste en
varios mdulos, en lugar de uno solo largo. El programa se divide en muchos
mdulos (rutinas pequeas denominadas funciones), que producen muchos
beneficios: aislar mejor los problemas, escribir programas correctos ms rpido y
producir programas que son mucho ms fciles de mantener. As pues, un
programa C se compone de varias funciones, cada una de las cuales realiza una
tarea principal. Por ejemplo, si est escribiendo un programa que obtenga una lista
de caracteres del teclado, los ordene alfabticamente y los visualice a
continuacin en la pantalla, se pueden escribir todas estas tareas en un nico gran
programa (funcin main ( )).
Una funcin es, sencillamente, un conjunto de sentencia que se pueden llamar
desde cualquier parte de un programa. Las funciones permiten al programador un
grado de abstraccin en la resolucin de un problema. Las funciones en C no se
pueden anidar. Esto significa que una funcin no se puede declarar dentro de otra
funcin. La razn para esto es permitir un acceso muy eficiente a los datos. En C
todas las funciones son externas o globales, es decir, pueden ser llamadas desde
cualquier punto del programa.
En C no hay una palabra reservada (como def en Python) para iniciar la denicin
de una funcin. El aspecto de una denicin de funcin en C es ste:

El cuerpo de la funcin puede contener declaraciones de variables locales


(tpicamente en sus primeras lneas). Aqu tienes un ejemplo de denicin de
funcin: una funcin que calcula el logaritmo en base _ (para _ entero) de un
nmero _. La hemos denido de un modo menos compacto de lo que podemos
hacer para ilustrar los diferentes elementos que puedes encontrar en una funcin:

Detengmonos a analizar brevemente cada uno de los componentes de la


denicin una funcin e identiqumoslos en el ejemplo:
El tipo de retorno indica de qu tipo de datos es el valor devuelto por la funcin
como resultado (ms adelante veremos cmo denir procedimientos, es decir,
funciones sin valor de retorno). Puedes considerar esto como una limitacin frente
a Python: en C, cada funcin devuelve valores de un nico tipo. No podemos
denir una funcin que, segn convenga, devuelva un entero, un otante o una
cadena. En nuestro ejemplo, la funcin devuelve un valor de tipo oat.

El identicador es el nombre de la funcin y, para estar bien formado, debe


observar las mismas reglas que se siguen para construir nombres de variables.
Eso s, no puedes denir una funcin con un identicador que ya hayas usado
para una variable (u otra funcin).
El identicador de nuestra funcin de ejemplo es logaritmo:

Entre parntesis aparece una lista de declaraciones de parmetros separadas por


comas. Cada declaracin de parmetro indica tanto el tipo del mismo como su
Identicador.
Nuestra funcin tiene dos parmetros, uno de tipo oat y otro de tipo int.

El cuerpo de la funcin debe ir encerrado entre llaves, aunque slo conste de una
Sentencia. Puede empezar por una declaracin de variables locales a la que sigue
una o ms sentencias C. La sentencia return permite nalizar la ejecucin de la
funcin y devolver un valor (que debe ser del mismo tipo que el indicado como tipo
de retorno). Si no hay sentencia return, la ejecucin de la funcin naliza tambin
al acabar de ejecutar la ltima de las sentencias de su cuerpo, pero es un error
no devolver nada con return si se ha declarado la funcin como tal, y no como
procedimiento.
Nuestra funcin de ejemplo tiene un cuerpo muy sencillo. Hay una declaracin de
variables (locales) y est formado por tres sentencias, dos de asignacin y una de
devolucin de valor:

La sentencia (o sentencias) de devolucin de valor forma(n) parte del cuerpo y


empieza(n) con la palabra return. Una funcin puede incluir ms de una sentencia
de devolucin de valor, pero debes tener en cuenta que la ejecucin de la funcin
naliza con la primera ejecucin de una sentencia return.

FUNCINES ESTNDAR
una funcin en c es un segmento de cdigo independiente que realiza
completamente una determinada tarea de un programa.las funciones estndar de
c son las que forman parte de las libreras que se incluyen con el compilador.Estas
funciones realizan sentencias que el lenguaje no es capas de realizar.como todas
las funciones en c deben de ser declaradas antes de poder ser utilizadas( el
compilador debe de conocer el prototipo durante el proceso de traduccin.

FUNCIONES DEFINIDAS POR EL USUARIO EN C


Una funcin, como ya se ha dicho, es un bloque de cdigo dentro del programa
que se encarga de realizar una tarea determinada. Por lo tanto un programa en c
debe constar de una o ms funciones, y por su puesto no puede faltar la funcin
principal main().
Un viejo adagio dice: Separa y vencers, lo cual se acopla perfectamente cuando
tenemos un programa que es bastante grande; podemos separarlos en pequeos
subprogramas (funciones), y concentrarnos en la solucin por separados de cada
uno de ellos y as resolver un gran problemas, en unos cuantos problemitas ms
pequeos.
Si un programa, est constituido por ms de una funcin, las llamadas a la misma,
pueden realizarse desde cualquier parte del programa, y la definicin de ellas
debe ser independiente unas de otras.
Por lo tanto sera un grave error el tratar de definir una funcin dentro de otra.
Una funcin puede ser llamada desde cualquier parte del programa no slo una
vez, y cuando es llamada, empieza a ejecutar las acciones que estn escritas en
cdigo.
Para mayor comodidad del lector vamos a ver varios ejemplos, del uso de
funciones y a medida que vayamos avanzando se volvern ms complejos.
El orden ser el siguiente:
1.
Funciones que no devuelven ningn valor
2.
Funciones que devuelven un valor entero
3.
Funciones que devuelven un valor Real
4.
Funciones combinadas
5.
Funciones en las que usamos Men.

PARMETROS POR VALOR Y POR REFERENCIA


En C++ el paso por valor significa que al compilar la funcin y el cdigo que llama
a la funcin, sta recibe una copia de los valores de los parmetros que se le
pasan como argumentos. Las variables reales no se pasan a la funcin, slo
copias de su valor.

Cuando una funcin debe modificar el valor de la variable pasada como parmetro
y que esta modificacin retorne a la funcin llamadora, se debe pasar el parmetro
por referencia. En este mtodo, el compilador no pasa una copia del valor del
argumento; en su lugar, pasa una referencia, que indica a la funcin dnde existe
la variable en memoria.
La referencia que una funcin recibe es la direccin de la variable. Es decir, pasar
un argumento por referencia es, simplemente, indicarle al compilador que pase la
direccin del argumento.
Parmetros por valor y por referencia
Los parmetros de una funcin se pueden definir de dos maneras: Por valor o por
referencia.
Paso por valor
Este mtodo copia el valor de los argumentos sobre los parmetros formales, de
manera que los cambios de valor de los parmetros no afectan a las variables
utilizadas como argumentos en la llamada.
Lo importante en el paso por valor es el valor del argumento, por eso es
indiferente si este argumento es una variable, una constante o una expresin.
Paso por referencia en C++..A diferencia del paso por valor, en el paso por
referencia los parmetros no copian el valor del argumento, sino que comparten su
valor. Por lo que cuando cambia el valor del parmetro tambin cambia el valor de
la variable utilizada como argumento en la llamada.
La forma de indicar un parmetro por referencia es anexar el smbolo & al final del
nombre de la variable de tipo en la lista de parmetros formales, tanto en el
prototipo de la funcin como en el encabezado de su definicin.
ESTRUCTURA DE CONTROL SELECTIVA O ALTERNATIVA
Es una estructura con una sola entrada y una sola salida en la cual se realiza una
accin (una o varias instrucciones) de entre varias, segn una condicin; o se
realiza una accin segn el cumplimiento o no de una determinada condicin. La
condicin puede ser simple o compuesta.
Los programas, para un mejor funcionamiento y para poder realizar un nmero
mayor de tareas, deben
permitir emplear acciones alternativas a fin de poder elegir una de ellas cuando la
situacin lo requiera. Por lo tanto, la ejecucin de una lnea o grupos de lneas del
programa depende de si cumplen o no una condicin.
Toma de decisiones

La instruccin si (if ) nos permite tomar decisiones, podemos hacer una pregunta y
la contestacin slo puede ser verdadera o falsa, Es decir, s o no.
LA EXPRESIN CONDICIONAL
La condicin es una expresin booleana. Si el resultado de la expresin:
es cero, se considera una condicin falsa.
no es cero, se considera una condicin cierta.

ESTRUCTURA DE CONTROL SELECTIVA SIMPLE SI (IF)


Estructura de control que dirige a la computadora para ejecutar una o ms
instrucciones solamente si la condicin es verdadera. Si la condicin es falsa no
realiza ninguna accin.
ESTRUCTURA DE CONTROL SELECTIVA DOBLE SI/SI-NO (IF/ELSE)
Estructura de control que dirige a la computadora para ejecutar una accin si la
condicin es verdadera, y otra accin en caso de que sea falsa. Cabe mencionar
que las instrucciones debern ser diferentes en cada caso, ya que si fueran
iguales no se requerira una estructura selectiva, con la estructura secuencial se
resolvera el problema.
Existen dos formas de representarlo, dependiendo del nmero de instrucciones
que se desean realizar si la condicin se cumple o no:
ANIDAMIENTO O ESCALONAMIENTO SI-SI NO-SI (IF-ELSE-IF )
El concepto de anidamiento es muy utilizado en la programacin y consiste en
insertar (anidar) una estructura dentro de otra.La expresin si anidados se refiere
a que podemos utilizar una sentencia si (if ) dentro de otra sentencia si (if ). Esto
se emplea cuando se tienen que cumplir varias condiciones para poder ejecutar
una accin. Uno de los aspectos ms confusos de las sentencias si (if ) en el
lenguaje de programacin es el si (if ) anidado. Un si (if ) anidado es una sentencia
si (if ) que es el objeto de otro si (if ) o si no (else). La razn por la que los si (if )
anidados son tan problemticos es que resulta confuso saber qu else se asocia
con qu si (if ).
La computadora evala la expresin condicional de arriba abajo. Tan pronto como
la computadora encuentra una condicin verdadera, ejecuta la instruccin(es) y
salta el resto de la escalera. Si no es verdad ninguna condicin, la computadora
ejecutar el else final. ste acta frecuentemente como condicin por defecto; es
decir si fallan todas las pruebas anteriores, la computadora realiza la ltima
instruccin(es) else. Si no hay else final y son falsas las condiciones, no se hace
nada.

ESTRUCTURA DE CONTROL SELECTIVA MLTIPLE SEGN SEA (SWITCH)


Esta estructura selecciona entre varias posibilidades, dependiendo del valor de la
expresin. Cuando en la estructura si (if ) todas las condiciones utilizan la igualdad
de una variable determinada con constantes predefinidas, se puede utilizar la
instruccin segn sea (switch), en dicha instruccin existen ms de dos opciones.
La estructura segn sea (switch) evala una expresin que puede tomar n valores
distintos; segn con cul de estos valores coincida, se ejecutarn ciertas acciones,
es decir, el programa o algoritmo seguir un determinado camino entre los n
posibles. Dicha expresin slo acepta valores enteros o caracteres para entrar a la
opcin y el operador de relacin es el igual.
ESTRUCTURA DE CONTROL SELECTIVA SEGUN_SEA (SWITCH) ANIDADA
Se puede tener un segn sea (switch) que es parte de una secuencia de
instrucciones de otro segn sea (switch). Incluso si las constantes del caso (case)
interior contienen valores comunes, no se tendrn conflictos. Se Pueden anidar
sentencias segn sea (switch) con el fin de implementar rutinas donde las
opciones tienen subdivisiones como en el caso de los submens.
ESTRUCTURA DE CONTROL REPETITIVA
Las computadoras estn diseadas primordialmente para aquellas aplicaciones en
las cuales una operacin o conjunto de ellas deben repetirse ms de una vez.
La repeticin de una accin (una o varias instrucciones) se lleva a cabo mientras
se cumpla cierta condicin; para que la accin termine, la accin misma debe
modificar la(s) variable(s) de control que interviene(n) en la condicin. Dicha
condicin puede estar predefinida como en el ciclo desde (for); o no
predeterminada, como en los bucles mientras (while) y hacer mientras (do_while).
Bucles, ciclo o iteracin. Es un segmento de un algoritmo o programa, cuya(s)
instruccin(es) se repite(n) un nmero conocido o indefinido de veces mientras se
cumpla una determinada condicin. En cada vuelta del ciclo comprueba si la
condicin es verdadera, rompindose el ciclo cuando es falsa. La condicin en
algn momento tiene que ser falsa ya que en caso contrario el bucle se har
infinito.

ESTRUCTURA DE CONTROL REPETITIVA MIENTRAS (WHILE)


Al ejecutarse la instruccin mientras (while), se evaluar la expresin booleana
suministrada en los parntesis (condicin), y si su valor es verdadero (distinto de
cero) se realizar el ciclo o bucle (una o varias instrucciones). Despus, la
condicin Es reevaluada y se procede de la misma manera. Cuando la condicin
se vuelve falsa (es decir, cero), en la siguiente evaluacin se dar por terminado el
ciclo mientras (while).
Si la condicin nunca se vuelve cero, el ciclo nunca terminar y, dependiendo de
las instrucciones incluidas en el bucle, se generara un error de ejecucin que
detendra el programa, o podra ser que el programa itere indefinidamente hasta
ser detenido en forma manual.
En esta estructura no se conoce necesariamente el nmero de veces que entrar
al ciclo, ya que esto depender de la condicin definida.
Caractersticas:
1. La condicin (expresin lgica) se evala antes del ciclo. Si la condicin es
verdadera se ejecuta el bucle, y si es falsa se sale y el control pasa a la
instruccin siguiente al ciclo.
2. Si la condicin es falsa cuando se revisa por primera vez el bucle no se
ejecuta nunca, es decir no entra ninguna vez
.
3. Mientras la condicin sea verdadera el bloque de instrucciones se ejecutar
indefinidamente a menos que exista por lo menos una instruccin que
modifique el valor de un elemento de la condicin.
ESTRUCTURA DE CONTROL REPETITIVA HACER MIENTRAS (DO WHILE)
Esta estructura le permite al programador especificar que se repita una accin en
tanto cierta condicin sea verdadera; cuando sta es falsa se sale del ciclo. La
condicin la revisa despus del ciclo o bucle.
Existen algoritmos y programas que requieren que por lo menos se ejecute el ciclo
una vez y al final se revise la condicin; en este caso utilizamos la estructura hacer
mientras. Es muy semejante al ciclo mientras, con la diferencia de que la condicin
se evala despus de ejecutar el cuerpo del bucle. Tanto el ciclo mientras como el
hacer mientras pueden utilizarse cuando no se conoce de antemano el nmero de
veces que se repetir el ciclo.

ESTRUCTURA DE CONTROL REPETITIVA DESDE (FOR)


El desde (for) es la estructura repetitiva ms utilizada y simple de manejar, ya que
repite un conjunto de instrucciones un nmero determinado de veces. Una de sus
aplicaciones principales son los arreglos.

ARREGLOS
Un arreglo es un tipo de dato estructurado que almacena en una sola variable un
conjunto limitado de datos o elementos del mismo tipo. Asimismo, es un conjunto
de localidades de memoria contiguas donde la direccin ms baja corresponde al
primer elemento y la direccin ms alta al ltimo. Por s mismo, el nombre del
arreglo apunta a la direccin del primer elemento del arreglo.
Los datos se llaman elementos del arreglo y su posicin se numera
consecutivamente: 1, 2, 3n.
Un arreglo en lenguaje C inicia en la posicin cero, por lo tanto el i-simo elemento
est en la posicin i 1, es decir si el arreglo llamado a tiene n elementos, sus
nombres son a [0], a [1],..., a [n-1].
El tipo de elementos almacenados en el arreglo puede ser cualquier tipo de dato.
Para acceder a un elemento especfico de un arreglo se usa un ndice o subndice.
Un arreglo se caracteriza por:
1. Ser una lista de un nmero finito de n elementos del mismo tipo.
2. Almacenar los elementos del arreglo en memoria contigua.
3. Tener un nico nombre de variable que representa a todos los elementos y
stos se diferencian por un ndice o subndice.
4. Acceder de manera directa o aleatoria a los elementos individuales del arreglo,
por el nombre del arreglo y el ndice o subndice.
ARREGLOS UNIDIMENSIONALES
Un arreglo unidimensional es un conjunto de n elementos del mismo tipo
almacenados en memoria continua en un vector o lista. Para acceder a cada
elemento del arreglo se requiere de un solo ndice o subndice, el cual representa
la posicin en la que se encuentra.
ARREGLOS BIDIMENSIONALES
Un arreglo bidimensional es un conjunto de n elementos del mismo tipo
almacenados en memoria contigua en una matriz o tabla. A diferencia de los
arreglos unidimensionales que slo requieren de un subndice, los arreglos
bidimensionales para acceder a cada elemento del arreglo requieren de dos
ndices o subndices declarados en dos pares de corchetes, donde el primer
corchete se refiere al tamao de filas y el segundo al tamao de columnas
ARREGLOS MULTIDIMENSIONALES
Es una estructura de datos esttica y de un mismo tipo de datos, y de longitud fija
que almacena datos de forma matricial. De igual forma que los arreglos
unidimensionales, el almacenamiento de los datos en la memoria se realiza de
forma secuencial y son accedidos mediante ndices. Los arreglos

multidimensionales son tambin conocidos como matrices. Por lo tanto se llama


matriz de orden "mn" a un conjunto rectangular de elementos dispuestos en filas
"m" y en columnas "n", siendo m y n nmeros naturales. Las matrices se denotan
con letras maysculas: A, B, C,... y los elementos de las mismas con letras
minsculas y subndices que indican el lugar ocupado: a, b, c,... Un elemento
genrico que ocupe la fila i y la columna j se escribe i,j. Si el elemento genrico
aparece entre parntesis tambin representa a toda la matriz: A (i,j).