Discussion:
Programacion en C
(demasiado antiguo para responder)
Antonia
2008-02-12 11:55:48 UTC
Permalink
Hola;Mi duda es sobre el tema de programación modular.En el primer
ejercicio del tema pide indicar si debe resolverse comofunción o
procedimiento,e indicar salidas y entradas. a.Calcualar a elevado a
b,siendo a un número real y b un valor enteropositivo no
nulo.entrada:a y bsalida:a^b recibe dos entradas y tiene una única
sálida:FUNCIÓN b.dado un carácter car devolver la mayúscula
correspondiente(si no esminúscula devuelve el carácter sin
modificar)entrad:carsalida:car mayúscula Realiza la función de pasar a
mayúscula:PROCEDIMIENTO. c.dado un número entero decir si es primo o
noentrada:númerosalida:es primo o no realiza la funcion de decir si es
primo o noPROCEDIMIENTO d.calcular el diámetro y área de una
circunferencia dado el radio.entrada:radiosalida:área y diametro ¿es
función o procedimiento?Como hay dossalidas sería procedimiento pero
en realidad devolveria un valor al puntode llamada...en el caso que
sólo nos pidiera el área(salida)seria función? f.dados los
coeficientes de una ecuación de segundo grado obtenga sus dosraices
reales.entrada:a,b,csalida:raiz1,raiz2 como tiene dos salidas es
procedimiento?? g.dado dos numeros enteros devuelva el mayor de
ellos.entrada:n1,n2salida:mayor número como tiene una única salida es
función??? h.descomponer y escribir los factores primos de un número
entero.entrada:n1salida:todos los factores primos varias salidas es
procedimiento?? i.intercambiar el valor de dos variables a y b de tipo
enteroentrada:a y bsalida:b y a como hay dos salidas es
procedimiento??? j.leer un número num validando que se encuentra en un
rango determinadopor dos valores linf y lsup(linf<=num<=lsup)
entrada:numsalida:??? esto no se haria con un bucle??? Gracias por
contestar.
aioritos
2008-02-25 15:02:33 UTC
Permalink
Hola antonia,

lo primero es lo primero: un texto asi es poco aclaratorio y costoso
de leer.

antes de empezar, aclarar la diferencia entre procedimiento y
funcion.

Un procedimiento es una secuencia de acciones que resuelven un
problema. Puede tener parametros de entrada, pero en su definicion NO
retorna nada (void, para entendernos)

Ejemplo de procedimiento: void print(int a){ // imprime el dato}

Una funcion es una secuencia de acciones que resuelven un problema Y
devuelven un resultado (seguro que si pones funcion como x = f(x) te
aclaras mejor). Aqui ya estas viendo la diferencia, que la funcion
devuelve 1 y solo 1 valor. Este valor puede ser del tipo que te de la
gana, si previamente existe.

Ejemplo de funcion que devuelve un solo valor en la salida

int sum(int a, int b)
{
return a+b;
}

o bien este otro (aqui ves que devuelve una variable, pero tiene dos
salidas!!!!! porque es un vector o un array)

int[] mi_funcion(int a, int b)
{
int[] vector;

vector[0]=a;
vector[1]=b;
return vector;
}

Particularmete, nunca he visto una funcion que retorne dos parametros
(algo tal que "return a, b;") Esto no existe, pero puedes usar google
para asegurarte.
Post by Antonia
j.leer un número num validando que se encuentra en un
rango determinadopor dos valores linf y lsup(linf<=num<=lsup)
entrada:numsalida:??? esto no se haria con un bucle???  
no haria falta un bucle.

Si tienes la entrada guardada en la variable 'miEntrada', y conoces el
rango superior e inferior, te basta con un if:

if(rangoInf < miEntrada && miEntrada < rangoSup)
//estas en el rango
else
//no estas en el rango

Si quieres detectar el rango invalido, ponlo en dos if que esten
anidados:

if(rangoInf < miEntrada)
if(miEntrada < rangoSup)
//en el rango
else
//falla el sup
else
//falla el inf.

Espero haber sido de ayuda.

Loading...