-->
.

jueves, 6 de febrero de 2014

Funciones y Arreglos

Si nos vemos en la necesidad de programar o tener como conocimiento general como se 'pasa' un arreglo por parámetros a una función que lo recepte debemos tener en cuenta como punto clave el nombre del arreglo y si es unidimensional o bidimensional.


  • Si es Unidimensional, para enviarlo a la función se debe escribir el nombre del arreglo como si se tratase de un tipo de dato normal, y al momento de obtenerlo como parámetro en la definición de la función se debe hacer una nueva declaración con el mismo tipo de dato el cual el arreglo fue enviado seguido de un par de corchetes vacíos '[]'.
void funcionarreglo(int arr[],int num)

Aquí tenemos una función de nombre "funcionarreglo" que tiene recepta como parámetros un arreglo tipo entero "arr[]" el cual se encuentra con los corchetes vacíos y un numero entero "num" 

  • Si es Bidimensiona, así mismo como en los arreglos unidimensionales se debe escribir en el envió de variables el nombre del arreglo, y en la recepción se va el tipo de dato junto a la nueva definición del arreglo con un par de corchetes vacíos y un par de corchetes con la longitud de las columnas del arreglo a enviar.
void funcionarreglo2(int arregl[][5],int num)

En cambio aquí apreciamos al igual que antes una función, que tiene como parámetros de recepción un arreglo bidimensional de tipo entero y un número entero



Programa 26:
Envio de un arreglo a funcion, llena el arreglo del 0 al 4 y muestra

#include <stdio.h>
#include <conio.h>

void regresaArreglo(int arr[])
{

 for(int i = 0 ; i < 5 ; i++)
  arr[i] = i;


 for(int j=0;j<5;j++)
  printf("%d\n",arr[j]);

}
void main()
{
 clrscr();
 int array[5];
 funcionArreglo(array);
 getch();

}

domingo, 25 de noviembre de 2012

FUNCIONES DEFINIDAS POR EL USUARIO (CON ENVÍO Y RETORNO DE PARÁMETROS.)

Este tipo de funciones a diferencia de las anteriores que se las declara con la palabra reservada void que significa que no retorna algún valor desde su dominio a la función main, se las define intercambiando la palabra void por el tipo de dato que queremos traer de vuelta como resultado.
Las funciones de este tipo se las define como acontinuación muestra:

Librerias
tipo_dato funcion( tipo_dato variable,tipo_dato1 variable1);
void main()
{
 tipo_dato var1,var2;
bloques de códigos

funcion(var1,var2);
}
tipo_dato funcion(tipo_dato variable,tipo_dato1 variable1)
{
bloques de códigos
}
Al igual que el grafico explicativo de las Funciones Definidas por el Usuario (con envío y sin retorno de parametros) el orden de la variables de envío es el mismo.
Pero en las lineas de codigo internas a la función hay una diferencia total en cuanto a la programación ya que este tipo de funciones usa una palabra reservada en su dominio que es "return", que es la que nos permite devolver un valor resultante a la funcion principal o main.

  1. #include<conio.h>
  2. #include<stdio.h>
  3.   int suma(int numero1,int numero2);
  4.   void main()
  5.   {
  6.    clrscr();
  7.    int n1,n2;
  8.    printf("Ingrese un numero: ");
  9.    scanf("%d",&n);
  10.    printf("Ingrese otro numero: ");
  11.    scanf("%d",&n1);
  12.    printf("La suma es: %d",suma(n1,n2));
  13.    getch();
  14.   }
  15.   int suma(int numero1,int numero2)
  16.    {
  17.     int s;
  18.     s=numero1+numero2;
  19.     return s;
  20.    }
Se puede apreciar que en la función suma declaramos una variable  's' a la cual se le asigna la operación suma de numero1 y numero2 y en la siguiente linea hay un return s; que significa que el valor resultante de la suma de esos dos valores me la retornara a la función main justo cuando mande a llamar a la función suma es decir desde el printf.
El ejercicio también pudo quedar así.

  1. #include<conio.h>
  2. #include<stdio.h>
  3.   int suma(int numero1,int numero2);
  4.   void main()
  5.   {
  6.    clrscr();
  7.    int n1,n2,s;
  8.    printf("Ingrese un numero: ");
  9.    scanf("%d",&n);
  10.    printf("Ingrese otro numero: ");
  11.    scanf("%d",&n1);
  12.    s=suma(n1,n2);
  13.    printf("La suma es: %d",s);
  14.    getch();
  15.   }
  16.   int suma(int numero1,int numero2)
  17.    {
  18.     return numero1+numero2;
  19.    }
Lo cual nos ahorra la declaración de la variable s en la función suma pero la declaramos en la función main(), y a su vez también se pudo ahorrar la declaración de la variable s en las dos funciones usando el main() del primer ejemplo y la función suma del segundo.

NOTA: No olvidar que para que nuestra función retorne un valor hay que definirla con el tipo de dato correspondiente, en este caso use un dato de tipo int dado que la suma de dos enteros me resulta otro entero.

martes, 14 de agosto de 2012

FUNCIONES DEFINIDAS POR EL USUARIO (CON ENVÍO Y SIN RETORNO DE PARÁMETROS.)

Este tipo de funciones a diferencia de las vistas anteriormente en su declaración tienen un parámetro extra, su funcionamiento es el mismo pero al momento de llamar a la función se lo realiza poniendo el nombre de la función, y entre los paréntesis se escribe la o las variables que se desea mandar para realizar una tarea especifica, y la función al momento de receptar las variables hay que declarar nuevas variables del mismo tipo que se mandaron, pueden ser del mismo nombre o diferente.
Las Funciones con envio y sin retorno de parametros se las define de la siguiente manera:

Librerias
void funcion( tipo_dato variable,tipo_dato1 variable1);
void main()
{
 tipo_dato var1,var2;
bloques de códigos

funcion(var1,var2);
}
void
funcion(tipo_dato variable,tipo_dato1 variable1)
{
bloques de códigos}
A continuación veremos un gráfico explicativo:

Se puede apreciar que las variables que se mandan desde la función principal deben tener el mismo orden y del mismo tipo a las que recibe la función.





  1. #include<conio.h>
  2. #include<stdio.h>
  3.   void suma(int numero1,int numero2);
  4.   void main()
  5.   {
  6.    clrscr();
  7.    int n1,n2;
  8.    printf("Ingrese un numero: ");
  9.    scanf("%d",&n);
  10.    printf("Ingrese otro numero: ");
  11.    scanf("%d",&n1);
  12.    suma(n1,n2);
  13.    getch();
  14.   }
  15.   void suma(int numero1,int numero2)
  16.    {
  17.     int s;
  18.     s=numero1+numero2;
  19.     printf("La suma es: %d", s);
  20.    }

Popular Posts

Followers