🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.programacion
Article #906

Re: Problemilla...invocacion de funciones con punteros!!!

#906
From: Rafael Meneses Osorio
Date: Wed, 23 May 2007 15:21
121 lines
3957 bytes
>
> int suma(int *p, int *d){
> int c=0;
> for(int i=0,n=9;i<=9,n>=0;i++,n--){
> p=&V[i];
> *d=G[n];

Aqui no debieras utilizar V y G, ya que cuando uses la funcion suma,
debieras pasar V y G, por ejemplo:
suma(V,G);
y dentro de la funcion utilizas p y d solamente.


> c=(*p)+(*d)+c;}
> return c;
> }
>
> int multi(int *p, int *d){
> int c=1;
> for(int i=0,n=9;i<=9,n>=0;i++,n--){
> *p=V[i];
> *d=G[n];
> c=c*(*p)*(*d);}
> return c;
> }
>
> main(){
> int opc,*p,*d,sum,mult;
> int *x=&V[0],*y=&G[10];
Esta ultima linea esta misteriosa...  &V[0] es lo mismo que V, y la
asignacion a y, no sé que sentido tiene....

> MENU:
> printf("\t\tSuma o Multiplicacion de Vectores");
> printf("\n\nElija Una Opcion:");
> printf("\n\n1.- Sumar Todos los Elementos de los Vectores");
> printf("\n\n2.- Multiplicar Todos los Elementos de los Vectores");
> printf("\n\n3.- Salir");
> printf("\n\n\t\t\t\t Opcion: ");
> scanf("%d",&opc);
>
> switch(opc){
> case 1:{
> sum=suma(x,y);

Porque no pasas V y G, y no te enredas con x e y....

> printf("\nLa Suma de los Componentes de los Vectores es: %d\n\n",sum);
> system("pause");
> system("cls");
> goto MENU;
> break;}
>
> case 2:{
> mult=multi(x,y);
> printf("\nLa Multiplicacion de los Componentes de los Vectores es: %d\n
> \n",mult);
> system("pause");
> system("cls");
> goto MENU;
> break;}
>
> case 3:
> exit(1);
>
> default:{
> printf("Opcion no Valida!!!!");
> printf("\n\nERROR FATAL.....FORMATEA EL PC!!!! CUECK\n\n");
> system("pause");
> system("cls");
> goto MENU;
>
> }
> }
> }
>
> pero lo que necesiti es tener una funcion por ejemplo
>
> int func(int *p, int *d, int opc)
>
> y en el main pedir que se escoja la operacion y que desde el main,
> mediante la opcion me tire a la funcion en la cual debe tener las
> operaciones....bueno mi duda en si es como invoco la funcion a traves
> de un numero que infrese el usuario....Bueno esop, si alguien pudiera
> contestar mi duda estaria muy agradecido!!!1

Podrias hacer un arreglo de punteros a funciones, como

#include <stdio.h>

typedef void (*tipoPunteroAFuncion) (char *p,char *d);

void concatena(char* a,char *b)
{
   printf("%s%s\n",a,b);
}

void inserta(char* a,char *b)
{
   printf("%s%s\n",b,a);
}


tipoPunteroAFuncion arreglo[]=
{
   &concatena,
   &inserta
};

int main(int argc,char **argv)
{
   (arreglo[0])("hola","mundo");
   (arreglo[1])("hola","mundo");
   return 0;
}

Lo hice con otros parametros pa no hacerte la tarea XD


>
> XD thanks!!!
Technical Details
Message-ID: <1179933668.257823.144800@h2g2000hsg.googlegroups.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!postnews.google.com!h2g2000hsg.googlegroups.com!not-for-mail
References: <1179869498.024738.203190@p77g2000hsh.googlegroups.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,b21733690ee0a281
X-Google-Attributes: gid1593cb,public
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!postnews.google.com!h2g2000hsg.googlegroups.com!not-for-mail
From: Rafael Meneses Osorio <rafaparafernalia@gmail.com>
Newsgroups: chile.comp.programacion
Subject: Re: Problemilla...invocacion de funciones con punteros!!!
Date: 23 May 2007 08:21:08 -0700
Organization: http://groups.google.com
Lines: 123
Message-ID: <1179933668.257823.144800@h2g2000hsg.googlegroups.com>
References: <1179869498.024738.203190@p77g2000hsh.googlegroups.com>
NNTP-Posting-Host: 201.246.165.57
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1179933676 17261 127.0.0.1 (23 May 2007 15:21:16 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Wed, 23 May 2007 15:21:16 +0000 (UTC)
In-Reply-To: <1179869498.024738.203190@p77g2000hsh.googlegroups.com>
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060406 Firefox/1.5.0.4 (Debian-1.5.dfsg+1.5.0.4-1),gzip(gfe),gzip(gfe)
Complaints-To: groups-abuse@google.com
Injection-Info: h2g2000hsg.googlegroups.com; posting-host=201.246.165.57;
   posting-account=in9uYg0AAABNkRQtnCsRGLtpEXOsaWEv