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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Temas
Páginas: 1 [2]
11  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.  
12  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 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines