Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Dark Invader

#71
Programación C/C++ / Re: duda c++
1 Julio 2011, 18:53 PM
Ahhh que el codigo para las operaciones los tienes hechos...Solo quieres una opcion para saber que operacion hacer ¿no?.


#include <stdio.h>
int main()
{
int c;
char palabra [40];

printf("escriba la frase para la operacion");

gets(palabra);


printf("elija una opcion,1/2/3: ");
scanf("%d",&c);
switch(c){
case 1:
     //haz esta operacion.
     break;
     case 2:
          //haz esto;
          break;
          case 3:
               //haz lo otro;
               break;
               default:
                       printf("esa opcion no es valida");
                       break;
                       }
                       getchar();
return 0;
}


Mira a ver  :xD Esto haria una serie de opciones,si es 1 haz esto,si es 2 haz lo otro...

Salu2
#72
Programación C/C++ / Re: duda c++
1 Julio 2011, 17:39 PM
Estoy dormido  :xD

Mira a ver si es esto lo que buscas,porque si es escribir una frase y transformarla en una ecuacion estamos listos:

#include <stdio.h>
#include <string.h>
int main (void){
    int a,b,c,i;
    char cadena1[40]="milmasmil";
    char cadena2[50];
    char cadena3[40];
    printf("escriba la operacion:  ");
    gets(cadena1);
    i= strcmp(cadena1,"milmasmil");
    if (i==0){
                                    printf("el resultado es 2000");
                                    }
                                    getchar();
                                    return 0;
                                    }
                                   
#73
Programación C/C++ / Re: duda c++
1 Julio 2011, 16:20 PM
Perdon por la interrupcion pero no pillo el codigo del programa¿que es lo que quieres hacer exactamente? :huh: Es que lo veo asi y no entiendo bien lo que quieres hacer,pero si es comparar cadenas ya te lo dijeron arriba,explicate un poco mejor y te digo donde van las sentencias.

Además tu programa es C pero utilizas la libreria de C++,luego para llamar al sistema tienes que utilizar la libreria cstdlib y para ahorrarte esta libreria y la llamada al sistema sustituye el system("pause") por getchar().

Salu2
#74
Osea,que inversos es un puntero a una funcion que acepta un int y devuelve un double¿no?

Y pf guarda la direccion de memoria de funcsuma¿no?

La verdad es que me esta costando aprenderlo,el otro ejemplo que puse que vi por el foro no era tan complicado  >:(

Un saludo y gracias
#75
Gracias a ambos por contestar,he estado buscando y buscando y nada,que no me entra,he encontrado un ejemplo en este mismo foro:

int (*punt) (int,int);

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

  int resta(int a , int b){
     return a-b;
  }

  *punt=suma;
   punt(2,3);

  *punt=resta;
   punt(5,1);


Este lo entiendo bien pero el que puse....Se me hace un poco complicado y eso que he buscado,incluso por youtube para ver si habia algun tutorial pero sin resultados...

Mis dudas principalmente son estas:

Dentro de la funcion double funcsuma (int n, double (*f) (int k))

No se que pinta ahi el f(i),deduzco que f es el puntero pero no se...

Y luego esto:

printf ("Suma de cinco inversos: %.3f \n", pf(5, inversos)); //Pasa la direccion de inversos
    printf ("Suma de tres cuadrados: %.3f \n", pf(3, cuadrados)); //Pasa la direccion de cuadrados


Aunque Leo me ha pasado otro pero sigo sin entenderlo...

    printf ("Suma de cinco inversos: %.3f \n", pf(5, inversos)); //Pasa la direccion de inversos
    printf ("Suma de tres cuadrados: %.3f \n", pf(3, cuadrados)); //Pasa la direccion de cuadrados


Gracias a ambos.

Un saludo
#76
Hola a todos,

Tenía una duda sobre este codigo:

#include <stdio.h>
double inversos(int k);
double cuadrados(int k);
double funcsuma(int n,double (*f)(int k));

int main(){
printf("Suma de cinco inversos: %.3f \n",funcsuma(5,inversos));
printf("Suma de tres cuadrados: %.3f \n",funcsuma(3,cuadrados));
}
double funcsuma(int n,double(*f)(int k)){
double s= 0;
int i;
for (i=1;i<=n;i++)
s+=f(i);
return s;
}
double inversos(int k){
return 1.0/k;}
double cuadrados(int k){
return (double) k* k;
}


Resulta que no tengo ni idea de que realiza funcsuma(osea,lo de dentro del codigo si,lo que no entiendo es como luego se puede unir a las otras dos funciones) y porque luego se pone:

printf("Suma de cinco inversos: %.3f \n",funcsuma(5,inversos));
printf("Suma de tres cuadrados: %.3f \n",funcsuma(3,cuadrados));


Si alguien me lo pudiera explicar me haría un gran favor.

Gracias por adelantado.

Un saludo
#77
Para C fwrite y fread(escribir y leer respectivamente) primero abriendo el archivo con fopen

Para C++  ifstream para leer y ofstream para escribir

http://www.cplusplus.com/doc/tutorial/files/
http://c.conclase.net/ficheros/index.php?cap=002#inicio

Yo nunca he leido textos desde C++ siempre lo he hecho desde C que me resulta mas facil.

Salu2
#78
Programación C/C++ / Re: Una pila en C
25 Junio 2011, 19:40 PM
No sabria que decirte Leo...Quiero ir acostumbrandome a C++ porque dentro de poco quiero dedicarme absolutamente a POO,no es que no quiera utilizar el codigo que me has puesto,sino que me gusta mas usar C++ asique quitare las cosas de C...

En cuanto a lo de exit,con windows.h me funciona perfecto,no sabria que decirte  :huh:
Pero a partir de ahora pondré lo que me has dicho sobre las constantes de exit.

Gracias por los consejos Leo  ::)

Cuídate
#79
Programación C/C++ / Re: Una pila en C
25 Junio 2011, 19:31 PM
Gracias Leo te agradezco el comentario...Bueno en realidad tienes toda la razon,la pila esta compilada mayoritariamente por elementos de estructuras dinamicas en C++,pero es que las aprendi asi y me resultan mas faciles...¿Deberia cambiar el titulo del tema por una pila en C++?¿y cambiar el stdio.h por el iostream?.

Y sobre lo de windows.h ,es necesario para el exit(0)

Salu2 y gracias de nuevo.
#80
Programación C/C++ / Una pila en C
25 Junio 2011, 18:37 PM
Hola a todos,

Me parecia interesante postear una pila que hice,para que los que se inicien en las pilas(yo no estoy diciendo que sea un experto,bastante lejos de la realidad  :xD )tengan un modelo de como es,si hay algun error o algo por mejorar,sea bueno o malo no dudeis en decirmelo:

#include <stdio.h>
#include <windows.h>
struct pila{
      int dato;
      struct pila *sig;
      };

void inicializapila(struct pila **p){
    *p =NULL;
    }
    void push(struct pila **p,int k){
         
    struct pila *n;
    n = new pila;
    if (n==NULL){
 printf("\nError!No se ha podido crear un nodo en memoria");
exit(0);
 }else{
printf("\nnuevo nodo en memoria creado");
  n->dato = k;
  n->sig = *p;
  *p=n;
   }
   }
                       
   int pop(struct pila **p){
   struct pila *m;
   int k;
   m = *p;
   k = m->dato;
   *p = m->sig;
    delete m;
    return k;
     }
                           int verificarpila(struct pila *p){
                               if (p == NULL){
                                      printf("\n!!!!la pila esta vacia!!!");
                                      getchar();
                                      exit(0);
                                      }else{
                                            printf("\nla pila continua llena");
                                            return 1;
                                            }
                                            }
                                           
                                            int main (){
                                                struct pila *p;
                                                int k;
                                                char res;
                                                int x;
                                                char res2;
                                               
                                               
                                                printf("\nvamos a practicar con nodos\n");
                                                printf("\nverificando si hay espacio en memoria...\n");
                                               inicializapila(&p);
                                               do{
                                                   printf("\nintroduzca un numero: ");
                                                scanf("%d",&k);
                                                setbuf ( stdin, NULL );
                                                push(&p,k);
                                                printf("\n¿quiere introducir otro valor al nodo S/N: ");
                                                res = getchar();
                                               }while ((res== 's') || (res=='S'));
                                               do{printf("\nAhora vamos a quitar nodos");
                                               x =  pop(&p);
                                               printf("\nel valor del campo dato del nodo retirado es %d",x);
                                               getchar();
                                               verificarpila(p);
                                               printf("\nquiere quitar otro nodo?(Importante:Si se quitan todos los nodos el programa terminara) S/N: ");
                                               res2 =getchar();
                                               }while ((res2 =='S') || (res2=='s'));
                                           
                                                getchar();
                                                return 0;
                                     
                                      }


PD:Perdonad la tabulacion xD,si tengo un momento edito el mensaje y la mejoro.Si alguien quiere que ponga comentarios en el codigo que me avise.

Salu2