Article View: chile.comp.programacion
Article #906Re: Problemilla...invocacion de funciones con punteros!!!
From: Rafael Meneses Osorio
Date: Wed, 23 May 2007 15:21
Date: Wed, 23 May 2007 15:21
121 lines
3957 bytes
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-mailReferences:
<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