Este documento describe las funciones en C. Explica que una función es un conjunto de declaraciones y sentencias que realizan una tarea específica. También describe las variables locales y globales, los prototipos de funciones, y cómo declarar, definir e invocar funciones. Además, explica el uso de vectores y matrices en C.
1. UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN
CARRERA: Licenciatura EN INFORMÁTICA
Alumna:
Lorena sánchez
Ing:
WILMA GAVILANES
MATERIA :
Programacion II
2. FUNCIONES EN LENGUAGE C
¿Qué es una función?
Una función es un conjunto de declaraciones, definiciones, expresiones y sentencias
bajo el mismo nombre que realizan una tarea específica.
En las funciones juegan un papel muy importe las variables, ya que como se ha dicho
estas pueden ser locales o globales.
Variables Globales: Estas se crean durante toda la ejecución del programa, y son
globales, ya que pueden ser llamadas, leídas, modificadas, etc; desde cualquier
función. Se definen antes del main().
Variables Locales: Estas, pueden ser utilizadas únicamente en la función que hayan
sido declaradas.
¿Para qué se utilizan las funciones?
Las funciones son utilizadas para descomponer grandes problemas en tareas simples y
para implementar operaciones que son comúnmente utilizadas durante un programa y
de esta manera reducir la cantidad de código.
¿Para qué sirve una función?
Sirven para facilitar la resolución de problemas mediante la aplicación del paradigma
“Dividir y Conquistar”.
¿Cómo declaro una función?
Cuando declaramos las librerías que vamos a usar en el programa, inmediatamente se
declara la función, junto con sus parámetros con que va a trabajar.
Ejemplo:
(…etc)
int suma(int a, int b);
3. En que se basa las funciones.
La filosofía en la que se base el diseño de C es el empleo de funciones. Por esta razón,un
programa en C contiene al menos una función, la función main. Esta función es particular
dado que la ejecución del programa se inicia con las instrucciones contenidas en su interior.
Una vez iniciada la ejecución del programa, desde la función main se puede llamar a otras
funciones y, posiblemente, desde estas funciones a otras. Otra particularidad de la función
main es que se llama directamente desde el sistema operativo y no desde ninguna otra función.
De esta manera, un programa en C sólo puede contener una función main.
Propósito de las funciones.
Con el propósito de permitir un manejo eficiente de los datos, las funciones en
C no se pueden anidar. En otras palabras, una función no se puede declarar
dentro de otra función, por lo que todas las funciones son globales o externas,
lo que hace que puedan llamarse desde cualquier parte de un programa.
Se puede acceder (llamar) a una determinada función desde cualquier parte de
un programa.
Cuando se llama a una función, se ejecutan las instrucciones que constituyen
dicha función. Una vez que se ejecutan las instrucciones de la función, se
devuelve el control del programa a la siguiente instrucción (si existe)
inmediatamente después de la que provocó la llamada a la función.
Cuando se accede a una función desde un determinado punto del programa, se
le puede pasar información mediante unos identificadores especiales conocidos
como argumentos (también denominados parámetros). Una vez que la función
procesa esta información, devuelve un valor mediante la instrucción return.
¿Cómo la llamo a una función?
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)
4. Partes de la definición de una función
La definición de una función consta de dos partes;
El encabezado
El cuerpo
En el encabezado de la función, al igual que en el prototipo de la misma, se tienen que
especificar los parámetros de la función, si los utiliza y el tipo de datos que devuelve.
El cuerpo se compone de las instrucciones necesarias para realizar la tarea para la
cual se crea la función.
La sintaxis de la definición de una función es la siguiente:
tipo_de_retorno nombre_de_la_función(lista_de_parámetros)
{
sentencias;
}
En las funciones juegan un papel muy importe las variables, ya que como se ha dicho
estas pueden ser locales o globales.
Variables Globales: Estas se crean durante toda la ejecución del programa, y son
globales, ya que pueden ser llamadas, leídas, modificadas, etc; desde cualquier
función. Se definen antes del main().
Variables Locales: Estas, pueden ser utilizadas únicamente en la función que hayan
sido declaradas.
Vectores
Un vector, también llamado array(arreglo) unidimensional, es una estructura de datos
que permite agrupar elementos del mismo tipo y almacenarlos en un solo bloque de
memoria juntos, uno despues de otro. A este grupo de elementos se les identifica por
un mismo nombre y la posición en la que se encuentran. La primera posición del array
es la posición 0.
5. Podríamos agrupar en un array una serie de elementos de tipo enteros, flotantes,
caracteres, objetos, etc. Crear un vector en c++ es sencillo, seguimos la siguiente
sintaxix: Tipo nombre[tamanyo];
Los vectores son una forma de almacenar datos que permiten contener una serie de
valores del 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
define cuando 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á contener
largo cantidad de elementos, y cada uno de estos elemento podrá contener un valor de
tipo tipo_elemento.
Por ejemplo:
double valores[128];
En este ejemplo declaramos un vector de 128 elementos del tipo double, los índices de
los elementos 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
puede asignar 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.
Notar que largo debe ser mayor o igual a la cantidad de valores que le estamos
asignando al vector, en el caso de ser la misma cantidad no aporta información, por lo
que el lenguaje nos 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:
tipo_elemento elemento;
...
6. elemento = nombre[2];
Asumiendo que tenemos el vector anterior definido estaríamos guardando valor_2 en
elemento.
Matrices
Una matriz es un vector de vectores o un también llamado array bidimensional. La manera de
declarar una matriz es c++ es similar a un vector:
1 int matriz[fils][cols];
int es el tipo de dato, matriz es el nombre del todo el conjunto de datos y debo de especificar el
número de filas y columnas. Las matrices también pueden ser de distintos tipos de datos como
char, float, double,etc.
Las matrices en c++ se almacenan al igual que los vectores en posiciones consecutivas de
memoria. Usualmente uno se hace la idea que una matriz es como un tablero. Pero
internamente el manejo es como su definicion lo indica, un vector de vectores, es decir, los
vectores estan uno detras del otro juntos.
La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2
subindices que van en los corchetes. Si Coloco int matriz [2][3]=10; //estoy asignando al
cuarto elemento de la tercera fila el valor 10. No olvidar que tanto filas como columnas se
enumeran a partir de 0.
Las matrices en c++ se almacenan al igual que los vectores en posiciones consecutivas de
memoria. Usualmente uno se hace la idea que una matriz es como un tablero. Pero
internamente el manejo es como su definición lo indica, un vector de vectores un también
llamado array bidimensional., es decir, los vectores estan uno detras del otro juntos.
La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2
subindices que van en los corchetes. Si Coloco int matriz[2][3]=10; //estoy asignando al
cuarto elemento de la tercera fila el valor 10. No olvidar que tanto filas como columnas se
enumeran a partir de 0.
Una matriz bidimensional se podría representar gráficamente como una tabla con filas
y columnas. La matriz tridimensional se utiliza, por ejemplo, para trabajos gráficos
con objetos 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 otro las columnas.
7. Al definir la función, no hemos puesto ningún número entre los corchetes. Esto
significa que estamos permitiendo que un array de cualquier tamaño pueda ser pasado
a la función.
Primero pasamos taco a la función, que en realidad es la direccion del array taco.
Ahora bien, el segundo array, nacho, tiene sólo dos elementos. Cuando la función trate
de acceder al tercer elemento del array, que realmente no existe. Ya que los arrays son
muchas variables almacenadas una detrás de otra en la memoria del ordenador,
tratará y accederá a la variable almacenada despueés del segundo elemento del array,
que no existe.
Además, el programa compilará y correrá sin mensajes de error.
Ejemplo de matrices y funciones
Diseñe un programa que me permita ingresar N números enteros en una matriz cuadrática,
y obtener su producto algebraico.
Análisis
Declaración de las librerías; declaración de variables, las variables se declarara como
variables de tipo entero.
Realizamos el borde.
Un ciclo repetitivo do while para repetir cuantas veces dese el programa.
Ingresamos un límite.
Necesitaremos dos ciclos for para realizar el ingreso uno para posicionar las filas y otro para
posicionar las columnas.
Utilizamos scanf para el ingreso de las variables y ya el ingreso de la las dos matrices.
Recorremos la matriz, realizamos el proceso para obtener el producto algebraico donde
debemos multiplicar la primera matriz por la segunda y el resultado la imprimiremos en otra
matriz.
Para la impresión de la matriz se utilizara dos ciclos for uno para posicionar las filas otro
para posicionar las columnas , usamos posicionamientos de filas printf nuestra variable
donde esta almacena la multiplicación.
Codificación
#include<stdio.h>
#include<conio.h>