Está en la página 1de 14

SENTENCIA lF EN C

El objetivo de la sentencia if en cualquier lenguaje de programación es la de poder realizar tomas de


decisiones a través del programa. Al hablar de toma de decisiones se refiere a las evaluaciones que
el programa hará a determinadas condiciones. Cuando se evalúa una condición sólo se espera uno
de dos valores como respuesta, falso o verdadero. Si la condición se cumple, el valor será
verdadero, de lo contrario el valor será falso.
Una condición es la relación lógica que se establece entre variables o variables y valores. En general
existen tres tipos de tomas de decisiones.

. if sin else
La sentencia if sin else determina una evaluación donde se ejecutará un determinado número de
instrucciones si la condición se cumple. Si la condición no se cumple simplemente el programa no
ejecutará estas ordenes.

La forma general de esta forma es:

if (condición) instrucción ;

Si el número de instrucciones que se debe ejecutar es mayor a 1 en caso de que la condición sea
verdadera, dichas sentencias se deben asociar entre los símbolos { y }. Así:
if (condición)
{
instrucción 1 ;
instrucción n;
}
Ejemplo 1:
if (a==b) a++;

El computador determina el valor de la relación a==b. Nótese que esta relación no está estructurada
con el operador de asignación '=', ya que en este caso no existe ninguna 'asignación', existe una
'relación'. Si se encuentra que el contenido del campo a es igual al contenido del campo b, se
sumará el número 1 al campo a. Si, por el contrario, se determina que el contenido del campo a es
diferente al contenido del campo b, se sigue con la siguiente instrucción y no se suma el numero 1
al contenido del campo a.

Ejemplo 2:
if (a != b) a += b;

En el ejemplo anterior si a es diferente de b, se suma al contenido del campo a el contenido del


campo b. Si a es igual a b, no se ejecuta la operación.
Independientemente del valor de la expresión (a != b) se seguirá con la próxima instrucción.

Ejemplo 3:
if (a< b) {
a +=1; b+=8; c + = b;
}

En el ejemplo anterior si en el momento de ejecutar la instrucción se encuentra que a es menor a b,


se ejecutan las instrucciones del bloque que comienza con el carácter '{' y termina con el carácter
'}'. En caso que el computador no encuentre que a es menor a b, entonces sigue con la siguiente
instrucción y las tres instrucciones del bloque no se ejecutan.
. if con else
En este caso la condición posee dos grupos de instrucciones a ejecutar, el primero de ellos se
realizará cuando la condición que se evalúe sea verdadera, el segundo en caso contrario. Así, la
estructura general de este formato es :

if (condición) instrucción;
else instrucción;

Cuando se desea que se ejecute más de una instrucción por parte verdadera o por parte falsa, éstas
deberán ir asociadas entre los símbolos { y }.
Ejemplo :
if (condición)
{
instrucción 1 ;
.
instrucción n ;
}
else
{
instrucción 1 ;
.
instrucción n ;
}

Ejemplo 1
if (a==b) x++;
else h +=3 ;
Al momento de ejecutar esta instrucción, inicialmente se evalúa si a es igual a b, en caso de ser
verdadero entonces se le suma un 1 a la variable x. Si a resulta ser diferente de b se le suma un 3 a
la variable h.

Ejemplo 2
if (a==b) x += 8;
else x -=3;

En el if anterior se evalúa la condición (a==b); si esta condición resulta ser verdadera se ejecuta la
instrucción x += 8; si la condición resulta ser falsa se ejecuta la instrucción
x -= 3;.

OJO Nunca se ejecutan las dos instrucciones, se ejecuta la una o la otra dependiendo del resultado
de la evaluación de la condición. En cualquier caso el programa continúa con la próxima instrucción.

Ejemplo 3;
if (a ==b)
{
a++ ;
b += 4;
}
else h++;

En la instrucción anterior si la condición (a==b) resulta ser verdadera entonces se ejecutan las
instrucciones que forman el bloque, a saber:
a++;
b+=4.
En caso de que la condición (a==b) resulte ser falsa se ejecutará la instrucción que está después de
la palabra else.

Ejemplo 4:
if (x==z) {
a += 3;
b++ ;
}
else {
x++ ;
a +=3;
}
En la instrucción anterior si el contenido del campo x es igual al contenido del campo z se ejecutan
las instrucciones del bloque superior:
a+= 3; b++;
Si el contenido del campo x es diferente al contenido del campo z entonces se ejecutan las
instrucciones del bloque inferior: x++; a+= 3;

. if anidado.
La estructura if anidado consiste en poder evaluar condiciones dentro de una parte verdadera o una
parte falsa ubicada en una evaluación superior, estas estructuras son muy comunes para los
programadores de lenguajes estructurados. C proporciona una forma fácil de manejo para este tipo
de estructura. Su forma general puede ser:
if (condición) /* if 1 */
if (condición) /* if 2 está dentro de la parte positiva de if1 */
{
instrucción 1 ;

instrucción n;
}
else instrucción; /* termina if 2 */
else
if (condición) instrucción; /* termina if 1*/

No se puede definir un formato general, ya que debido a las circunstancias que se deban analizar
determinan la estructura del if
Ejemplo :
#jnclude <stdio,h>
#jnclude <conio.h> // Prototipo de getche()
// Con el getch() no se ve lo que se tecleo.
// Con el getche() si se ve lo que se tecleo.
void main()
{
char a; int numero; //definición de variables
a = getche ();
if (a == '0') numero = 0;
else if (a = = '1') numero = 1;
else if (a == '2') numero = 2;
else if (a == '3') numero = 3;
else if (a == '4') numero = 4;
else if (a == '5') numero = 5;
else if (a == '6') numero = 6;
else if (a == '7') numero = 7;
else if (a == '8') numero = 8;
else if (a =='9') numero = 9;
else numero = 999;
printf (" %d \n" , numero ) ;
}
El programa anterior lee un carácter y lo almacena en la variable a. Luego, utilizando la instrucción
if anidada compara el contenido de la variable a con el carácter'0' y en caso de cumplirse la
igualdad, asigna el numero 0 a la variable numero. Después de esta asignación, el control del
programa pasa a la instrucción printf. Si la relación resultó ser falsa, se ejecuta el else asociado al
primer if. Este else está conformado por un if que compara el contenido de la variable a con el
carácter '1' y si la relación resulta ser verdadera, se asigna el numero 1 a la variable numero y el
control del programa pasa a la instrucción printf. Si la relación resulto ser falsa se ejecuta el else
asociado al segundo if y así sucesivamente. Si el contenido de la variable a, no es ninguno de los
caracteres: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' se ejecuta el último else, que tiene asociada una
instrucción que asigna a la variable número la cifra 999. Es decir, el programa anterior lee un dato
y si representa un carácter en el rango:

'0' <=a<='9'

almacena en la variable número el número correspondiente. Si el caracter leído no está en el rango


especificado, almacena en la variable número el numero 999. La instrucción printf, escribe un
numero de 0 a 9 o el numero 999..

INSTRUCCIÓN SWITCH

Cuando se necesita elegir entre varias alternativas, es incómodo utilizar varias sentencias if ; la
solución a esto es la sentencia switch, la cual permite definir la ejecución de una o más
instrucciones de acuerdo al valor que tome una variable en el programa.
La estructura general de esta instrucción es la siguiente:

switch (expresión o variable)


{
case constante 1 :
secuencia de sentencias;
break;
case constante 2 :
secuencia de sentencias;
break;

case constante n :
secuencia de sentencias;
break;
default :
secuencia de sentencias;
}
La sentencia break permite romper la ejecución de un case, es obligatorio su uso.
Expresión : puede ser una expresión aritmética entera o una instrucción
variable : puede ser una variable de tipo entera o carácter
constante : puede ser una constante entera que esté entre -32768 y 32767 o una constante
carácter y no debe tener rangos, sólo valores específicos

Aspectos a tener en cuenta:


1. La expresión o variable es evaluada y comparada con las constantes i en todos los casos.

2. Si ninguna constante i es igual a la expresión o variable, el programa ejecuta la sentencia que


corresponde al default

3. Cuando se encuentra que la expresión o variable es igual a la constante i, se ejecutan


todas las instrucciones que correspondan a ese caso y si existe la sentencia break, se termina la
ejecución de la instrucción switch. Si no existe la sentencia break, el caso siguiente inmediatamente
será evaluado y ejecutada la instrucción correspondiente.

4. Si no existe igualdad en ningún caso y no existe default, la sentencia switch no es ejecutada.

5. El default, no necesariamente debe ir de último en la sentencia switch, puede ir donde pueda ir


un case.
6. Si el default, no está de último y se desea terminar la sentencia switch cuando se ejecuten las
sentencias que correspondan a él, es necesario una instrucción break, de lo contrario el caso
inmediatamente siguiente será evaluado y ejecutada la instrucción correspondiente.

Funcionamiento:
Compara la expresión o variable con la lista de constantes i. Cuando concuerda con alguna, ejecuta
el conjunto de sentencias hasta el final del cuerpo del switch o hasta que encuentre un break. Si no
concuerda con alguna, ejecuta las sentencias del default si lo tiene.

#include "stdio.h"
#include "conio.h"
void main ()
{
int x,c;
c = qetche();
switch(c)
{
case 'i': x = 1;
break ;
case 'x': x = 8;
break ;
case 'a': x=7;
break ;
default: x=0 ;
}
printf ("%d \n", x);
}

En el programa anterior la instrucción switch evalúa el contenido de la variable c.


De acuerdo al contenido de esta variable el programa toma una sola determinación.
Si en c está almacenada una 'i' la variable x toma el valor de 1.
Si en c está almacenada una 'x' la variable x toma el valor de 8.
Si en c está almacenada una 'a' la variable x toma el valor de 7.
Si en c no está almacenado ninguno de los valores que se utilizan para seleccionar la alternativa, la
instrucción permite ejecutar la sentencia que corresponde a default, en
este caso x = 0.
La instrucción break, como puede observarse, sirve para, una vez ejecutada la sentencia
correspondiente, obliga la salida de la sentencia switch. En caso que la instrucción break, falte en
alguna alternativa, el control del programa continúa hacia abajo ejecutando las demás instrucciones
del switch.

Ejemplo cuándo se retira una sentencia break:


#include "stdio.h"
#include "conio.h"
void main ()
{
int x,c;
c = qetche();
switch(c)
{
case 'i': x = 1;
case 'x': x = 8;
break ;
case 'a': x=7;
break ;
default: x=0 ;
}
printf ("%d \n", x);
}
Si en la variable c se almacenó el carácter 'i', la variable x toma el valor 1 y el control del
programa sigue hacia abajo, lo que permite que el control del programa siga ejecutando la
instrucción. Esto sucedió por la ausencia de la sentencia break. Por lo tanto la función de este
programa es:
Si c almacena el carácter 'i', el programa escribe 8,
Si c almacena el caracter' x', el programa escribe 8.
Si c almacena el carácter 'a', el programa escribe 7.
Si c almacena cualquier caracter diferente de los tres anteriores, el programa escribe 0.

Ejemplo: Hacer un programa en lenguaje C que le pida al usuario 2 números y le de la opción de


sumarlos, multiplícanos restarlos o dividirlos

Diagrama:

Inicio

Sea Opción variable tipo carácter


A, B variables de tipo entero

Imprima (" S. Sumar


R. Restar
M. Multiplicar
D. Dividir ")

Imprima ("Digite la letra de la operación a realizar")

(" S. Sumar
Lea (Opción)

Mientras ( Opción != 'S' && Opción != 'R' && Opción != 'M' && Opción != 'D')

Imprima ("Digite el 1° número:")

Lea (A)

Imprima ("Digite el 2° número:")

Lea (B)

Caso (Opción)

'S' 'R' 'M' 'D'

Imprima Imprima Imprima no B != 0 si

("La suma es:" A+B) ("La resta es:" A - B) ("La multiplicación es:" A*B) Imprima Imprima
("No se puede ("La división
realizar") es:" A/B)
Programa :
Fin
#include <conio.h>
#include <stdio.h>
main ()
{
int A,B;
char Opción ;
clrscr();
gotoxy (20,5) ;
printf(" S Sumar \n R Restar \n M Multiplicar \n D Dividir \n") ;
do
{ gotoxy (20, 10) ;
printf ("Digite la letra de la operación a realizar : ") ;
Opción = toupper (getchar ()) ;
printf("\n") ;
} while (Opción != 'S '&& Opción != 'R'&& Opción != 'M'&& Opción !='D');
gotoxy (20,12) ;
printf ("Digite el 1° número: ") ;
scanf ("%d", &A) ;
gotoxy (20,13) ;
printf ("Digite el 2° número: ") ;
scanf ("%d", &B) ;
switch(Opción)
{ case 'S': gotoxy (20,20) ;
printf (" La suma es : %d", A+B) ;
break ;
case 'R': gotoxy (20,20) ;
printf (" La resta es : %d", A-B) ;
break ;
case 'M': gotoxy (20,20) ;
printf (" La multiplicación es : %d", A*B) ;
break ;
case 'D': if (B)
{ gotoxy (20,20) ;
printf (" La división es : %d", A / B) ;
}
else
{ gotoxy (20,20) ;
printf ("No se puede realizar") ;
}
break ;
}
gotoxy (35,22) ;
printf ("Pulse una tecla para terminar') ;
getch () ;
}

Comparación entre switch y el if

Switch if

Solamente verifica la igualdad Verifica cualquier operación relacional


Sólo funciona con tipos int y char Funciona con cualquier tipo
Secuencias de cada case no son bloques Secuencias del si o el else son bloques ya que van
encerradas en ( )

SUBPROGRAMAS
Es un conjunto de instrucciones que cumplen una tarea específica, estas rutinas o subprogramas NO
se ejecutan por si solas, sino que deben ser llamadas desde cualquier parte del programa principal
(función main) o desde otro subprograma.

Los subprogramas se dividen en FUNCIONES Y PROCEDIMIENTOS.

Un PROCEDIMIENTO retorna 1 o mas valores


Una FUNCION retorna máximo 1 valor o no retorna nada

FORMATO DE LAS FUNCIONES

Tipo del parámetro de salida Nombre de la función (definición de c/u de los parámetros de entrada)
Definición de parámetros de salida ( si existe)
Definición de campos locales (si existen)
Instrucciones
Retorne ( si existe parámetro de salida)

Los parámetros de entrada son campos donde el subprograma recibe datos de quien lo llama.
Los parámetros de salida son campos donde el subprograma retorna datos a quien lo llama.
Un subprograma puede o no tener parámetros.

FUNCIONES EN LENGUAJE C
Una función es un subprograma que retorna máximo UN SOLO valor o no retorna nada al
programa o subprograma llamante.
Las funciones pueden recibir datos o direcciones de memoria (parámetros de entrada) y entregar o
no resultados (parámetros de salida).

Ahorran espacio cuando son llamadas múltiples veces dentro de una corrida; realmente NO hacen
más rápido el programa.

Tipos de funciones
Hay: 1. funciones propias del lenguaje C
2. funciones definidas por el usuario

1. Funciones propias del lenguaje C


Son funciones ya desarrolladas y que se encuentran en las librerías del lenguaje C.

Para utilizarlas es necesario saber:


. Qué hace la función
. Como se debe usar (o sea si necesita o no parámetros)
. La librería donde se encuentra
Ya sabiendo esto incluimos la librería al comienzo de nuestro programa (con # include)
y luego llamamos la función

Ejemplo :

Función Librería
clrscr() conio.h // NO necesita parámetros o argumentos
gotoxy( ) conio.h // necesita 2 argumentos o parámetros de entrada y no tiene
parámetro de salida o sea no retorna nada
sqrt( ) math.h // necesita 1 parámetro de entrada y tiene parámetro de salida, o
sea que retorna un dato
delay ( ) dos.h //necesita 1 parámetro de entrada y no tiene parámetro de
salida, o sea que no retorna nada
getchar() stdio.h //NO necesita parámetros de entrada, pero tiene un parámetro
de salida o sea que retorna un dato

Cuando no recordemos que librería se utiliza con determinada función, colocamos el cursor en el
nombre de la función y luego presionamos  F1 (Ctrl F1), o botón derecho del Mouse, apareciendo la
ayuda que necesitamos

Algunas de éstas librerías y sus funciones son:

<stdio.h> librería estándar de entrada y salida; tiene entre sus funciones las siguientes:
scanf, printf, fopen, fflush, fclose, remove, rename, fprintf, fscanf, fgetc, fgets, fputc, getchar,
putchar, puts, etc. '
<ctype> tiene funciones para determinar la clase de un carácter: isalpha, iscntrl, isdigit, isgraph,
islower, isspace, isupper, isxdigit, etc.

<string.h> tiene funciones para manejo de cadenas (strings): strcpy strcat, strcmp, strchr, strlen,
etc.

<math.h> librería para funciones matemáticas (recuerde que entre los operadores de C
no hay ni siquiera exponenciales) : sin, cos, tan, asín, acos, atan, sinh, cosh, tanh, exp, log, log10,
sqrt, pow (esta se usa para elevar un número a una potencia), ceil, floor, fabs, etc.

<stdlib.h> funciones de utilería, para convertir entre tipos diferentes, para terminación,
etc. atoi, atol, strtod, strtol, rand, srand, calloc, malloc, free, exit, system (con esta función se
puede ejecutar cualquier comando del sistema operacional), qsort (clasifica arreglos), etc.

<stdarg.h> funciones que permiten recorrer una lista de argumentos.

<time.h> funciones de fecha y hora.

<dos.h> funciones relacionadas con el sistema operacional DOS.

<conio.h> funciones relacionadas con el manejo del monitor y del teclado.

2. Funciones definidas por el usuario


El programador puede crear funciones que desee utilizar en su programa en varias oportunidades. Si
una función debe ser ejecutada en varias partes del programa, C permite definirla una sola vez y
cuando se necesite puede llamarla, ejecutarla y continuar con el programa normalmente.

Formato de la función

Tipo nombre de la función (definición de cada uno de los parámetros de entrada) ojo no
lleva ;
{
Definición del parámetro de salida; //si existe
declaración de variables locales ;
instrucción 1 ;
instrucción 2 ;

instrucción n ;

return () ;
}

Tipo Es el tipo de dato que retorna la función (int, float,……) o void cuando no retorna nada.
Parámetros Son las variables que reciben los datos. Si son varias se separan por comas.

Donde se ubican las funciones

Las funciones pueden estar:


 en una librería del sistema ==> # include < >
 en una librería personal ==> # include " path y name "
 dentro del mismo programa fuente a nivel global
 dentro del mismo programa fuente a nivel local o después de la llave de cierre ( en este caso se
deben colocar los prototipos de la función a nivel global)
Llamado de una función dentro del programa o subprograma
Nombre de la función (argumentos o parámetros actuales separados por coma);
Ojo si lleva;

Parámetros actuales o argumentos y parámetros formales


Los parámetros actuales o argumentos son los datos que la función llamante manda a la
función llamada.
Los parámetros formales o de entrada son las variables donde la función recibe los datos que
le mandan

Prototipo de una función


El prototipo de una función esta formado por: el tipo de dato que devuelve, nombre de la función ()
y dentro de los paréntesis va el tipo de cada uno de los parámetros formales o de entrada

Instrucción return ( )
Existen dos formas para dar fin a una función. La primera es cuando se ha ejecutado la última
instrucción de ésta.
La segunda es utilizando la orden return( ). Esta orden se utiliza cuando la función retorna un dato o
sea cuando tiene parámetro de salida. La función retorna el dato en el lugar donde fue llamada.

Diseño de funciones
Para diseñar una función se deben seguir los siguientes pasos:

Pasos: 1. Dar nombre a la función


2. Análisis de la tarea que debe realizar la función, para esto debe hacer la EPS
3. Diseñar la función
4. Retomar el resultado pedido, en caso que retorne

Ejemplo: Desarrollar una función que retorne la multiplicación de 2 números. La función recibe los
números

1. Nombre de la función: multiplicardosnumeros


2. Análisis: Como la función recibe los 2 números, necesitamos 2 parámetros de entrada. La función
retorna la multiplicación de los 2 números, por lo tanto necesitamos una variable donde guardar el
resultado para retornarlo a la función llamante
3. Diseño:

A
int multiplicardosnumeros ( int num1, int num2)
{
int pcto ;
pcto = num1 * num2 ;
return (pcto) ;
}

C
Int multiplicardosnumeros ( int num1, int num2)
{
return (num1 * num2) ;
}

Observemos el ejemplo A
int multiplicardosnumeros ( int num1, int num2)
En el parámetro de entrada o formal num1 se recibe el primer número a multiplicar y en el
parámetro de entrada o formal num2 se recibe el segundo número

El tipo de datos int, indica que la función retorna un dato del tipo entero. El tipo de dato que retorna
la rutina, siempre debe indicarse, si se omite asume por defecto que es de tipo int. Si la función no
retoma ningún dato, se debe escribir la palabra void.

Seguidamente se deben escribir las instrucciones que nos permitan multiplicar las variables num1 y
num2. Estas instrucciones deben ir encerradas en un bloque, es decir entre llaves:

int multiplicardosnumeros ( int num1, int num2)


{
int pcto ;
pcto = num1 * num2 ;
return (pcto) ;
}

La definición de la variable pcto es local a la función y no será reconocida fuera de ella, es decir, la
variable pcto no pertenece al programa principal, pertenece solamente a la función. La instrucción
return nos permite retornar al programa principal el dato pedido.

En el ejemplo A se utilizó una variable propia de la función (local) para guardar el resultado y
enviarlo en la orden return
En el ejemplo C se realizó la operación dentro de la función retum

Funciones que no retornan valores enteros


Cuando se desee que una función retorne datos diferentes al tipo char o al tipo int, solamente es
necesario definir la función del tipo deseado (ej. float, double,etc)

Dónde se escriben las funciones


1. Dentro del mismo programa fuente
2. En una librería propia

1. Dentro del mismo programa fuente


a. A nivel global
b. A nivel local
Cuando las funciones están dentro del mismo programa fuente, se pueden codificar a nivel global o
sea después de las librerías, antes del void main()

A nivel local o sea después del fin del programa (}); en este caso es necesario colocar a nivel global
el prototipo de la función. El prototipo de la funcion se declara asi: tipo de dato que retorna,
nombre de la función, abre paréntesis, tipo de cada uno de los parámetros de entrada, cierra
paréntesis, punto y coma

Ejemplo :

A NIVEL GLOBAL
#indude "stdio.h"

int multiplicardosnumeros ( int num1, int num2)


{
int pcto ;
pcto = num1 * num2 ;
return (pcto) ;
}
void main ()
{
int a, b, resultado ; // no se definió la función prototipo
clrscr() ;
puts (" Digite 2 números") ;
scanf ("%d %d", &a, &b) ;
resultado = multiplicardosnumeros (a,b) ; // llamado de la función
printf (" La respuesta es : %d ", resultado) ; /* 6 */
}

otra forma sería:

void main ()
{
int a, b; // no se definió la función prototipo
clrscr() ;
puts (" Digite 2 números") ;
scanf ("%d %d", &a, &b) ;
printf (" La respuesta es : %d ", multiplicardosnumeros (a,b) ); // llamado de la función
/* 6 */
}

La instrucción /*6 */ se cambio por: printf (" La respuesta es : %d ", multiplicardosnumeros (a,b)) ;
o sea que la función se puede colocar dentro del printf () y así se ahorraría una variable, en este
caso resultado

A NIVEL LOCAL

#indude "stdio.h"
int multiplicardosnumeros ( int, int); /* El C++, exige el prototipo de las funciones construidas
por el programador */
void main ()
{
int a, b, resultado ;
clrscr() ;
puts (" Digite 2 números") ;
scanf ("%d %d", &a, &b) ;
resultado = multiplicardosnumeros (a,b) ; // llamado de la función
printf (" La respuesta es : %d ", resultado) ; /* 6 */
}

int multiplicardosnumeros ( int num1, int num2)


{
int pcto ;
pcto = num1 * num2 ;
return (pcto) ;
}

Cómo se realiza la librería propia


Se crea un archivo donde se digitan las funciones por usted deseadas y este archivo se guarda o
salva con la extensión .h
Ejemplo si vamos a crear nuestra primera librería, abrimos un archivo nuevo y allí digitamos:
int multiplicardosnumeros ( int num1, int num2)
{
int pcto ;
pcto = num1 * num2 ;
return (pcto) ;
}
Si queremos digitar más funciones en ese archivo, lo podemos hacer.
Luego salvamos ese archivo con el nombre que deseemos pero le colocamos la extensión .h
Para nuestro ejemplo supongamos que lo llamamos mia.h y lo guardamos en el disco duro C

Dónde se llama la librería propia


Se digita nuestra librería después de todas las librerías de Lenguaje C
Ejemplo:

#include <stdio.h>
#include <conio.h>
#include "C:mia.h" //acá ya esta creada la función multiplicardosnumeros

void main ()
{
int a, b, resultado ;
clrscr() ;
cout<< " Digite el primer número a multiplicar"<<endl ;
cin >>a;
cout<< " Digite el segundo número a multiplicar"<<endl ;
cin >>b;
resultado = multiplicardosnumeros (a,b) ; // llamado de la función
cout<< a <<"*”<<b<<”=”<< resultado<<endl; /* 6 */
}

Como se llama a la función desde el programa


La llamada a la función, se hace escribiendo el nombre de la función y a continuación, entre
paréntesis, los parámetros actuales o argumentos (si los tiene).

Ejemplo Realizar un programa en lenguaje C que realice la multiplicación de 2 números digitados por
el usuario

Para utilizar la función producto dentro del programa principal se hace:


#indude "stdio.h"

void main ()
{
int multiplicardosnumeros ( int, int) /* El C++, exige el prototipo de las funciones
construidas por el programador */

int a, b, resultado ;
clrscr() ;
puts (" Digite 2 números") ;
scanf ("%d %d", &a, &b) ;
resultado = multiplicardosnumeros (a,b) ; // llamado de la función
printf (" La respuesta es : %d ", resultado) ; /* 6 */
}

int multiplicardosnumeros ( int num1, int num2)


{
int pcto ;
pcto = num1 * num2 ;
return (pcto) ;
}
Observe que los parámetros actuales no se modificaron y que la función retorno un solo valor el cual
se almacena en la variable resultado.

Aspectos a tener en cuenta


 Por defecto las funciones devuelven un dato de tipo int o char a menos que se especifique lo
contrario

 Si la función no retorna datos se define de tipo void

 Las funciones no pueden retornar datos de tipo arreglo o funciones.

 Dentro del return puede ir una constante, variable o cualquier expresión válida de C

 Una función puede tener cero o más parámetros formales o de entrada. El máximo está
determinado por el compilador utilizado

 Una función no puede ser definida dentro de una función

 Una función puede ser llamada desde otra función

 Los compiladores actuales permiten declarar el tipo de parámetros directamente en la lista de


ellos dentro de los paréntesis

 La declaración de los tipos de los parámetros se pueden hacer antes de la llave { de la función o
dentro de la lista de los parámetros

 Los parámetros actuales o argumentos deben ser iguales en número y en tipo que los parámetros
formales de la función, o sea debe haber una correspondencia 1 a 1. Normalmente C NO LOS
REVISA y produce resultados erróneos si hay errores.

 Al definir una función no se coloca ; al final de ésta

 Cuando se llama una función si se coloca ; al final de ésta


 Cuando se utiliza parámetros por valor, la función retorna sólo un valor

 Una función termine la ejecución cuando encuentra el retum () o }


 La función o funciones se deben compilar en conjunto con el programa principal.

 Si los parámetros de la función tienen el mismo nombre que los argumentos del programa
llamante, estos serían otras variables DIFERENTES de la que tiene el main; si la función altera
sus variables, las variables del main NO serán. afectadas.

 Las funciones en C son " recurrentes " o sea que se pueden llamar a sí mismas logrando una
insospechada potencia.

 La función realizada por el usuario debe incorporarse al programa y compilarse como un todo.

 Una función puede no tener parámetros de entrada ni de salida. (EJ la función clrscr ()).

También podría gustarte