elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)



  Mostrar Mensajes
Páginas: 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28]
271  Media / Juegos y Consolas / Re: Age of Empires IV - V Ensemble Studios en: 26 Agosto 2010, 16:30 pm
si lo llegan a hacer va a ser en mi opinion el peor error que pueden hacer... a parte de haberle robado todo a steve jobs...
272  Programación / Programación C/C++ / Re: Pregunta Cadenas en: 26 Agosto 2010, 16:10 pm
scanf no es recomendable, asi tenes mas seguridad (al pasar el tamaño del buffer) y no se ensucia el buffer del teclado (por eso getchar funciona):

Código
  1. fgets(sta, sizeof(sta), stdin);

scanf con %s lee una palabra sola, no es problema del conteo, probalo con fgets y vas a ver como funciona bien. Esto es matar dos pajaros de un tiro  ;D

en ese codigo, podrias especificarmelo un poco mas, estoy recien salidito del horno con cadenas y no entiendo una goma
273  Programación / Programación C/C++ / Pregunta Cadenas en: 26 Agosto 2010, 15:59 pm
Wenas... bueno, por lo que estuve viendo de strings en C, el programa C toma un arreglo y le agrega el caracter '\0' atras, lo cual entiendo que es la unica diferencia.

Para practicar estoy tratando de hacer un programa que me diga la cantidad de caracteres que tiene una frase (Incluyendo espacios). Pero al ejecutar el programa solo me cuenta la primer palabra y me ignora todo despues del espacio.

El otro problema que tengo es que me recomendaron dejar de usar los comandos system, y para reemplazar el pause vi que tambien puede usarse el getchar(); Pero cuando llega al punto ese lo esquiva, osea no frena el programa y sale automaticamente...


aca el codigo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. char sta[50];
  6. int y=0;
  7. main (){
  8.     printf("Ingrese la frase a la cual desea contarle las letras\n");
  9.     scanf("%s",sta);
  10.     while (sta[y]!='\0'){
  11.           y++;
  12.           }
  13.     printf("La frase tiene %d caracteres\n", y);
  14.  
  15.     getchar();
  16.     return 0;
  17. }
  18.  
274  Programación / Programación C/C++ / Re: Novato en C... en: 26 Agosto 2010, 15:20 pm
hay un problemita nomas...

en esta parte:

Código
  1. e2= sqrt((b2*b2)-(4*a2*c2));
  2. e2 = (-(b2)+e2)/(2*a2);
  3. f2 = sqrt((b2*b2)-(4*a2*c2));
  4. f2 = (-(b2)-f2)/(2*a2);
  5.  

no existe raiz cuadrada de numeros negativos, daria un numero imaginario.
a parte para que funcione deberia verse como esto:

Código
  1. e2= ((b2*b2)(-4*(a2*c2))); //aca puse bien la distribucion de la ecuacion.
  2. if (e2>0){
  3. e2=(sqrt(e2))/(2*2a);
  4. }
  5. else{
  6. printf("No existe raiz 1.");}

y haces lo mismo con la de abajo. Fijate que en c te va a devolver un numero como 1.00#EI000 o algo asi (si es un float).


Lh: No hagas doble post, utiliza el botón modificar.


Si te interesa yo publique mi codigo de un programa C que resuelve funciones polinomicas y racionales:

http://foro.elhacker.net/programacion_cc/funciones_polinomicas_y_racionales-t303016.0.html
275  Programación / Programación C/C++ / Re: Funciones polinomicas y racionales en: 26 Agosto 2010, 14:57 pm
muchas gracias por los consejos!! jejeje yo recien toy empezando :P

El problema que tuve es que si no pongo goto, como hago para que vuelva a empezar ¬¬

El conio.h ni me acuerdo porque lo use xD

lo del system, estoy tratando de reemplazar el pause por el getchar de a poquito jajaja y el system("cls"); con que puede reemplazarse???

Como haces para limpiar el buffer de entrada?? cual es la funcion??

jejeje lo de los comentarios siempre lo uso pero pense que iba a quedar re pet* poner los comentarios mios en un post publico jejeje
276  Programación / Programación C/C++ / Funciones polinomicas y racionales en: 25 Agosto 2010, 17:27 pm
Bueno, comparto este codigo que hice en C, simplemente te devuelve los valores de x para las raices y los valores de y para la ordenada al origen.

En caso de que sea polinomica y teniendo en cuenta el siguiente modelo: ax^2 + bx + c. Y en el programa se debera ingresar los valores para a, b, c.

Y en el caso de la racional, teniendo el cuenta el siguiente modelos:
(ax^2+bx+c)/(ax^2+bx+c). Y tendremos que ingresar los valores a,b,c del numerador y del denominador.
Aqui el codigo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <conio.h>
  5.  
  6.  
  7. float divis(float numa,float numb,float numc,float dena,float denb,float denc);
  8. float div0(float numa,float numb,float numc,float dena,float denb,float denc);
  9. float divt(float numa,float numb,float numc,float dena,float denb,float denc);
  10. float diva(float numa,float numb,float numc,float dena,float denb,float denc);
  11. float var10(float b,float c);
  12. float var20(float a,float c);
  13. float vartrue(float a,float b,float c);
  14. float a;
  15. float b;
  16. float c;
  17. float raiz1;
  18. float raiz2;
  19. float ordenada;
  20. float numa;
  21. float numb;
  22. float numc;
  23. float dena;
  24. float denb;
  25. float denc;
  26. float asihor;
  27. float asiver1;
  28. float asiver2;
  29. int x;
  30.  
  31. int main(int argc, char *argv[]){ //comienzo funcion main
  32.  prin: //menu principal
  33.  system("cls");
  34.  printf ("    *****************Version 2.0*******************\n\a");
  35.  printf (" ----------------------------------------------------\n| Si desea calcular una funcion polinomica ingrese 1.|\n| Si desea calcular una funcion racional ingrese 2.  |\n ----------------------------------------------------\n");
  36.  scanf ("%d",&x);
  37.  switch (x){  
  38.         case 1:
  39.              goto poli;
  40.         case 2:
  41.              goto raci;
  42.         case 1992:
  43.              goto rights;        
  44.         default:
  45.              goto prin;
  46.              }
  47.  rights: //Rights
  48.         system("cls");
  49.         printf ("PROGRAMADO Y DISEÑADO POR ALEJANDRO BENTIVENGO ^^ \n");
  50.         system("PAUSE");
  51.         goto prin;
  52.  
  53.  poli:  //ACA EMPIEZA LA SELECCION DE LAS POLINOMICAS
  54.  system("cls");
  55.  printf ("Esta opcion unicamente calcula los valores correspondientes a funciones polinomicas de hasta grado 2\n\a");
  56.  printf ("Ingrese el valor a de la funcion\nEn caso de que no exista colocar 0\n");
  57.  scanf ("%f",&a);
  58.  printf ("Ingrese el valor b de la funcion\nEn caso de que no exista colocar 0\n\a");
  59.  scanf ("%f",&b);
  60.  printf ("Ingrese el valor c de la funcion\nEn caso de que no exista colocar 0\n\a");
  61.  scanf ("%f",&c);
  62.  if (a==0) {
  63.            var10(b,c);
  64.            goto pregunta;
  65.  }
  66.  else if (b==0){
  67.            var20(a,c);
  68.            goto pregunta;
  69.  }
  70.  else {
  71.            vartrue(a,b,c);
  72.            goto pregunta;
  73.  }
  74.  pregunta: //PREGUNTA PARA ARRANCAR DE VUELTA
  75.  system("cls");
  76.  printf ("     ********************************************\n     * Si desea resolver otra funcion ingrese 1.*\n     *        Si desea salir ingrese 2.         *\n     ********************************************\n\a");
  77.  scanf ("%d",&x);
  78.  switch (x){
  79.         case 1:
  80.              goto prin;
  81.         case 2:
  82.              return (0);
  83.         default:
  84.                 goto pregunta;
  85.         }
  86.  
  87.  raci: // Comiendo funciones RACIONALES
  88.  system("cls");
  89.  printf ("Esta opcion unicamente calcula los valores correspondientes a funciones racionales de hasta grado 2\nEste programa expresa: Las asintotas, las raices, y la ordenada al origen.\n\a");
  90.  printf ("Comenzando por el numerador, ingrese a.\nEn caso que no exista colocar 0.\n\a");
  91.  scanf ("%f",&numa);
  92.  printf ("Ingrese el b del numerador.\nEn caso que no exista colocar 0.\n\a");
  93.  scanf ("%f",&numb);
  94.  printf ("Ingrese el c del numerador.\nEn caso que no exista colocar 0.\n\a");
  95.  scanf ("%f",&numc);
  96.  printf ("Siguiendo por el denominador, ingrese el a del mismo.\nEn caso que no exista colocar 0.\n\a");
  97.  scanf ("%f",&dena);
  98.  printf ("Ingrese el b del denominador.\nEn caso que no exista colocar 0.\n\a");
  99.  scanf ("%f",&denb);
  100.  printf ("Ingrese el c del denominador.\nEn caso que no exista colocar 0.\n\a");
  101.  scanf ("%f",&denc);
  102.  if (numa==0 && dena==0){
  103.              divis(numa,numb,numc,dena,denb,denc);
  104.              goto pregunta;
  105.  }
  106.  else if (numa==0 && dena!=0){
  107.              div0(numa,numb,numc,dena,denb,denc);
  108.              goto pregunta;
  109.  }
  110.  else if (numa!=0 && dena==0){
  111.              diva(numa,numb,numc,dena,denb,denc);
  112.              goto pregunta;
  113.  }
  114.  else {
  115.              divt(numa,numb,numc,dena,denb,denc);
  116.              goto pregunta;
  117.  }
  118. }
  119.  
  120. float var10(float b,float c){
  121.      system("cls");
  122.      raiz1=((0-c)/b);
  123.      ordenada=c;
  124.      printf ("La raiz esta en %f\nY la ordenada al origen en %f\n\a", raiz1, ordenada);
  125.      system("PAUSE");
  126.      return (0);
  127. }
  128. float var20(float a,float c){
  129.      system("cls");
  130.      raiz1=(-4*(a*c));
  131.      if (raiz1>0){
  132.           raiz1=sqrt(raiz1);
  133.           raiz1=0-raiz1;
  134.           raiz1=raiz1/(2*a);
  135.      }
  136.      else {
  137.           ordenada=c;
  138.           printf ("La funcion no tiene raices.\nLa ordenada esta en %f\n\a", ordenada);
  139.           system("PAUSE");
  140.           return (0);
  141.      }
  142.      raiz2=(-4*(a*c));
  143.      raiz2=sqrt(raiz2);
  144.      raiz2=0+raiz2;
  145.      raiz2=raiz2/(2*a);
  146.      ordenada=c;
  147.      printf ("La raiz 1 esta en %f\nLa raiz 2 esta en %f\nY la ordenada al origen en %f\n\a", raiz1, raiz2, ordenada);
  148.      system("PAUSE");
  149. }
  150.  
  151. float vartrue(float a,float b,float c){
  152.      system("cls");
  153.      raiz1=((b*b)-4*(a*c));
  154.      if (raiz1>0){
  155.           raiz1=sqrt(raiz1);
  156.           raiz1=(0-b)-raiz1;
  157.           raiz1=raiz1/(2*a);
  158.      }
  159.      else {
  160.           ordenada=c;
  161.           printf ("La funcion no tiene raices.\nLa ordenada esta en %f\n\a", ordenada);
  162.           system("PAUSE");
  163.           return (0);
  164.      }
  165.      raiz2=((b*b)-4*(a*c));
  166.      raiz2=sqrt(raiz2);
  167.      raiz2=(0-b)+raiz2;
  168.      raiz2=raiz2/(2*a);
  169.      ordenada=c;
  170.      printf ("La raiz 1 esta en %f\nLa Raiz 2 esta en %f\nY la ordenada al origen en %f\n\a", raiz1, raiz2, ordenada);
  171.      system("PAUSE");
  172. }
  173.  
  174. float divis(float numa,float numb,float numc,float dena,float denb,float denc){
  175.      system("cls");
  176.      asiver1=((0-denc)/denb);
  177.      asihor=(numa/dena);
  178.      raiz1=((0-numc)/numb);
  179.      ordenada=(numc/denc);
  180.      printf ("La raiz se encuentra en %f.\nLa asintota Vertical en %f y la horizontal en %f.\nLa ordenada esta en %f\n\a", raiz1, asiver1, asihor, ordenada);
  181.      system("PAUSE");
  182. }
  183.  
  184. float div0(float numa,float numb,float numc,float dena,float denb,float denc){
  185.      system("cls");
  186.      asihor=0;
  187.      asiver1=((denb*denb)-4*(dena*denc));
  188.      if (asiver1>0){
  189.                    asiver1=sqrt(asiver1);
  190.                    asiver1=((0-denb)-asiver1);
  191.                    asiver1=asiver1/(2*dena);
  192.                    asiver2=((denb*denb)-4*(dena*denc));
  193.                    asiver2=sqrt(asiver2);
  194.                    asiver2=((0-denb)+asiver2);
  195.                    asiver2=asiver2/(2*dena);
  196.                    printf ("Existe asintota Vertical en %f y %f\n\a", asiver1, asiver2);
  197.      }
  198.  
  199.      else {
  200.           printf ("No existe Asintota Vertical\n\a");
  201.      }
  202.      raiz1=((0-numc)/numb);
  203.      ordenada=(numc/denc);
  204.      printf ("La asintota horizontal se encuentra en %f.\nLa raiz se encuentra en %f.\nLa ordenada se encuentra en %f\n\a",asihor,raiz1,ordenada);
  205.      system("PAUSE");
  206. }
  207.  
  208. float divt(float numa,float numb,float numc,float dena,float denb,float denc){
  209.      system("cls");
  210.      asihor=numa/dena;
  211.      asiver1=((denb*denb)-4*(dena*denc));
  212.      if (asiver1>0){
  213.                    asiver1=sqrt(asiver1);
  214.                    asiver1=((0-denb)-asiver1);
  215.                    asiver1=asiver1/(2*dena);
  216.                    asiver2=((denb*denb)-4*(dena*denc));
  217.                    asiver2=sqrt(asiver2);
  218.                    asiver2=((0-denb)+asiver2);
  219.                    asiver2=asiver2/(2*dena);
  220.                    printf ("Existe asintota Vertical en %f y %f\n\a", asiver1, asiver2);
  221.      }
  222.  
  223.      else {
  224.           printf ("No existe Asintota Vertical\n\a");
  225.      }
  226.      raiz1=((numb*numb)-4*(numa*numc));
  227.      if (raiz1>0){
  228.                   raiz1=sqrt(raiz1);
  229.                   raiz1=((0-numb)-raiz1);
  230.                   raiz1=(raiz1/(2*numa));
  231.                   raiz2=((numb*numb)-4*(numa*numc));
  232.                   raiz2=sqrt(raiz2);
  233.                   raiz2=((0-numb)+raiz2);
  234.                   raiz2=(raiz2/(2*numa));
  235.                   printf ("Existe raiz en %f y %f\nCUIDADO!: Si el valor de las raices es igual al de las asintotas\nentonces no es una raiz!!!\n\a",raiz1,raiz2);
  236.      }
  237.      else {
  238.           printf ("No existen raices\n\a");
  239.      }
  240.      ordenada=(numc/denc);
  241.      printf ("La ordenada se encuentra en %f\nY la asintota horizontal en %f.\n\a", ordenada, asihor);
  242.      system("PAUSE");
  243. }
  244.  
  245. float diva(float numa,float numb,float numc,float dena,float denb,float denc){
  246.      system("cls");
  247.      printf ("No existe asintota horizontal\n\a");
  248.      raiz1=((numb*numb)-4*(numa*numc));
  249.      if (raiz1>0){
  250.                   raiz1=sqrt(raiz1);
  251.                   raiz1=((0-numb)-raiz1);
  252.                   raiz1=(raiz1/(2*numa));
  253.                   raiz2=((numb*numb)-4*(numa*numc));
  254.                   raiz2=sqrt(raiz2);
  255.                   raiz2=((0-numb)+raiz2);
  256.                   raiz2=(raiz2/(2*numa));
  257.                   printf ("Existe raiz en %f y %f\nCUIDADO!: Si el valor de las raices es igual al de las asintotas\nentonces no es una raiz!!!\n\a",raiz1,raiz2);
  258.      }
  259.      else {
  260.           printf ("No existen raices\n\a");
  261.      }
  262.      asiver1=((0-denc)/denb);
  263.      ordenada=numc/denc;
  264.      printf ("Existe asintota vertical en %f\nYla ordenada al origen en %f\n\a",asiver1,ordenada);
  265.      system("PAUSE");
  266. }


El programa esta 100% probado y resuelve las funciones con un 99.9999% de exito.

Espero respuestas =)
Páginas: 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 [28]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines