🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #670

Re: Programacion en C

#670
From: Cristian Gutierrez
Date: Thu, 14 Feb 2008 12:33
66 lines
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
Technical Details
Message-ID: <87bq6j67ki.fsf@dogbert.simple.cl>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news1.google.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!news.cec.uchile.cl!not-for-mail
References: <5ad12cab-37df-42cb-96e9-9d1fecff0e55@h11g2000prf.googlegroups.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,fe564b3081b5d4e2
X-Google-Attributes: gid1593cb,public,usenet
X-Google-Language: SPANISH,UTF8
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news1.google.com!news.glorb.com!news.kjsl.com!news.nivel5.cl!news.cec.uchile.cl!not-for-mail
From: Cristian Gutierrez <crgutier@dcc.uchile.cl>
Newsgroups: chile.comp.programacion
Subject: Re: Programacion en C
Date: Thu, 14 Feb 2008 09:33:49 -0300
Organization: DCC/Uchile
Lines: 66
Message-ID: <87bq6j67ki.fsf@dogbert.simple.cl>
References: <5ad12cab-37df-42cb-96e9-9d1fecff0e55@h11g2000prf.googlegroups.com>
NNTP-Posting-Host: vpn-client-022.cec.uchile.cl
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Trace: cipres.cec.uchile.cl 1202992428 11499 172.17.35.22 (14 Feb 2008 12:33:48 GMT)
X-Complaints-To: news@cipres.cec.uchile.cl
NNTP-Posting-Date: Thu, 14 Feb 2008 12:33:48 +0000 (UTC)
User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.1.50 (gnu/linux)
Cancel-Lock: sha1:v71v0Ot/aZcZKxiLrjv0mIE6Yeo=