Thread View: chile.comp.programacion
2 messages
2 total messages
Started by Antonia
Tue, 12 Feb 2008 11:54
Programacion en C
Author: Antonia
Date: Tue, 12 Feb 2008 11:54
Date: Tue, 12 Feb 2008 11:54
27 lines
2972 bytes
2972 bytes
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.
Re: Programacion en C
Author: Cristian Gutierrez
Date: Thu, 14 Feb 2008 12:33
Date: Thu, 14 Feb 2008 12:33
66 lines
3339 bytes
3339 bytes
Antonia wrote:
> 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 ver, pareciera que la distincion que se hace (puedo estar equivocado)
es la siguiente:
* Las funciones retornan algo, y pueden usarse en expresiones.
Ej.
double p = sqrt(s) + 1;
* Los procedimientos no retornan, ya que solo interesan sus efectos
secundarios (como imprimir a la pantalla) o en realidad "retornan"
modificando las variables que le fueron pasadas. Tecnicamente, su
tipo de retorno es "void".
Ej:
memset(buf, c, size);
Incluso bajo esas definiciones, uno puede tomar una funcion, darle un
argumento extra (puntero) para que deje alli el resultado, fijar su tipo
de retorno en "void" y ya pasaria -bajo las premisas anteriores- a ser
un procedimiento. Al final, si cierta tarea se resuelve con una funcion
o procedimiento es a gusto del consumidor.
> a. Calcualar a elevado a b,siendo a un número real y b un valor entero
> positivo no nulo. entrada:a y b salida:a^b
>
> recibe dos entradas y tiene una única sálida: FUNCIÓN
En principio si, pero puede implementarse como procedimiento tambien.
void elevar(float a, int b, float *resultado) {
*resultado = /* a elevado a b */ ;
}
> b. Dado un carácter car devolver la mayúscula correspondiente (si no es
> minúscula devuelve el carácter sin modificar). entrada:car salida:car
> mayúscula
>
> Realiza la función de pasar a mayúscula: PROCEDIMIENTO.
Pero podria ser funcion:
char mayuscula(char minuscula) {
return /* minuscula pasada a mayuscula */;
}
> c. Dado un número entero decir si es primo o no. entrada: número salida:
> es primo o no
>
> Realiza la funcion de decir si es primo o no: PROCEDIMIENTO
Si "decir si es primo o no" es imprimir el dato en la pantalla, de
acuerdo, procedimiento. Si es devolver un valor de verdad (0/1), puede
ser procedimiento o funcion, pero lo esperable es que sea funcion.
int es_primo(int n) {
return /* n es primo o no */;
}
Creo que ya captas la idea, no te voy a hacer toda la tarea ;-)
--
Guti
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads