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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 ... 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [33] 34 35 36 37
321  Programación / Programación C/C++ / Re: Prioridad y asociatividad de los operadores en C. (Programa propio) en: 11 Abril 2014, 15:57 pm
Hola a todos.
Leo no me interpretaste correctamente, lo que quiero hacer es reemplazar esta parte de tú código:

Código
  1. switch(op){
  2. case'+':resultado = atoi(aux[0]) + atoi(aux[1]);
  3. break;
  4. case'-':resultado = atoi(aux[0]) - atoi(aux[1]);
  5. break;
  6. case'*':resultado = atoi(aux[0]) * atoi(aux[1]);
  7. break;
  8. case'/':resultado = atoi(aux[0]) / atoi(aux[1]);
  9. break;
  10. case'%':resultado = atoi(aux[0]) % atoi(aux[1]);
  11. break;
  12. }

Por algo como lo que pongo a continuación, voy a poner un ejemplo sólo como referencia (por supuesto no es la correcta).-

Código
  1. int operador[]={+,-,*,/,%};
Y llamarlo desde op

Espero que haya quedado más claro.-

Saludos y un abrazo.
Daniel
322  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Poner el motivo del porque se modificó el post (C/C++) en: 11 Abril 2014, 00:44 am
Hola WHK.-
¿Qué te parece si antes de contestar te pones a leer más detenidamente y te tomas el tiempo necesario para interpretar correctamente lo que expone mi post?.-

Saludos.
Daniel
323  Programación / Programación C/C++ / Re: Prioridad y asociatividad de los operadores en C. (Programa propio) en: 10 Abril 2014, 23:51 pm
Hola a todos.-
Leo, en primer lugar agradecerte por la explicación, de esa manera lo entendí perfectamente.-
Lo que me trae ahora es: cómo puedo hacer  para que la variable op se comporte como la macro  MAS algo como.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. #include <string.h>
  5.  
  6. #define MAS +
  7.  
  8. int main(void){
  9. char *cadena = "3 * 5 + (9 - 2) + 5", auxiliar[100]={'\0'}, aux[10][10], *inicio=NULL, *final=NULL, op;
  10. int i=0, longitud=0, j=0, resultado=0, k=0;
  11.  
  12. if ((inicio = strchr(cadena, '(')) && (final = strchr(inicio, ')'))){
  13. longitud = sprintf(auxiliar,"%.*s", (int) (final - (inicio +1)), inicio+1);
  14. for(; i<longitud; i++){
  15. if (auxiliar[i]!=' '){
  16. auxiliar[j] = auxiliar[i];
  17. j++;
  18. }
  19. }
  20. auxiliar[j] = '\0';
  21.  
  22. }
  23.  
  24. i=0;
  25. for (j=0,k=0;auxiliar[j];j++){
  26. if (isdigit(auxiliar[j])){
  27. aux[k][i]=auxiliar[j];
  28. i++;
  29. }
  30. if (!isdigit(auxiliar[j])){
  31. op=auxiliar[j];
  32. aux[k][i]='\0';
  33. i=0,k++;
  34. }
  35. }
  36. aux[k][i]='\0';
  37.  
  38. switch(op){
  39. case'+':resultado = atoi(aux[0]) + atoi(aux[1]);
  40. break;
  41. case'-':resultado = atoi(aux[0]) - atoi(aux[1]);
  42. break;
  43. case'*':resultado = atoi(aux[0]) * atoi(aux[1]);
  44. break;
  45. case'/':resultado = atoi(aux[0]) / atoi(aux[1]);
  46. break;
  47. case'%':resultado = atoi(aux[0]) % atoi(aux[1]);
  48. break;
  49. }
  50. printf("\n resultado = %d", resultado);
  51.  
  52. i = k = -5;
  53. i = i MAS k;
  54. printf("\n resultado = %d", i);
  55.  
  56. printf("\n\n");
  57. return 0;
  58. }

resultado = atoi(aux[0]) MAS atoi(aux[1]);   

Espero que Uds. tengan alguna manera porque practiqué y busque en google y no puedo hallar la solución.-
 

Saludos.
Daniel
324  Programación / Programación C/C++ / Re: Prioridad y asociatividad de los operadores en C. (Programa propio) en: 9 Abril 2014, 16:55 pm
Hola a todos.
rir3760, espero me puedas explicar lo de la foto, no puedo encontrar la teoría suficiente y me parece de suma importancia aprender este trozo de sintaxis.-



Saludos.
Daniel   
325  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Poner el motivo del porque se modificó el post (C/C++) en: 8 Abril 2014, 21:59 pm
Hola simorg.
Ok. Ud. es el que manda.-

Saludos.
Daniel
326  Foros Generales / Sugerencias y dudas sobre el Foro / Poner el motivo del porque se modificó el post (C/C++) en: 8 Abril 2014, 21:32 pm
Hola a todos y que tengan un muy buen día.-
Les traigo una sugerencia, ¿podrían poner  una opción en el sub-foro de c/c++ para que el que edite el post tenga “obligatoriamente“que especificar el motivo de la modificación?,  les traigo esta idea porque analizando las modificaciones y más en el caso de leo que http://foro.elhacker.net/programacion_cc/prioridad_y_asociatividad_de_los_operadores_en_c_programa_propio-t412169.0.html después de la sugerencia escribió casi una biblia, a los que estamos pidiendo ayuda y a los que ayudan porque no nos resultaría harto beneficioso, por lo menos es lo que yo creo.-

Saludos.
Daniel
327  Programación / Programación C/C++ / Re: Prioridad y asociatividad de los operadores en C. (Programa propio) en: 8 Abril 2014, 20:36 pm
Hola a todos.-
Leo, espero que no me hayas mal interpretado, lo mío era tan solo una sugerencia y te tomé como  referencia porqué fue una idea del momento, lo que decís Eternal es muy cierto pero a alguien como Uds. que hacen una tarea tan loable e impagable disponiendo tanto tiempo al servicio de los demás sin más no creo que se les cruce por la cabeza el hecho  de mentir, no por lo menos en este ámbito.-       

Saludos.
Daniel
328  Programación / Programación C/C++ / Re: Prioridad y asociatividad de los operadores en C. (Programa propio) en: 8 Abril 2014, 19:35 pm
Hola leo.
Que puedo decir del trabajo que te tomaste para corregir casi todo el código y además documentarlo, muchas pero muchas gracias.-
Me pongo de inmediato a tratar de implementarlo y luego te/les haré consulta de las cosas que me queden dudas.-

Citar
Una sugerencia para Eternal Idol, me parece que sería conveniente que cuando se modifica el post se obligue a poner una pequeña descripción del motivo, leí a primera hora de la mañana(Argentina) lo que posteo leo y luego encuentro “Última modificación: Hoy a las 16:57 por leosansan” y me interesaría saber que modificó, creo que me/nos ayudaría a comprender  más fácilmente el contenido del mismo, sólo una sugerencia que tal vez ni llegues a leer.-

Saludos.
Daniel
329  Programación / Programación C/C++ / Re: Prioridad y asociatividad de los operadores en C. (Programa propio) en: 7 Abril 2014, 15:42 pm
Hola a todos.
rir3760 lo estoy haciendo de esta manera porque lo tuyo me gusta muchísimo porque es más conciso, pero no logro todavía implementarlo, lo que me trae ahora es que alguien me diga cómo puedo poner el operador en una variable como la operador luego lo pondré en un arreglo para con un if establecer el correspondiente.-         

Saludos.
Daniel



Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(void){
  5. int i, j, inicio, final, resultado = 0;
  6. char cadena[100] = "3 * 5 + (9 + 2) + 5", auxiliar[100] = {'\0'}, auxUno[2] = {'\0'}, auxDos[2] = {'\0'}, operador[2] = {'\0'};
  7.  
  8. for (i = 0; cadena[i]; i++){
  9. if (cadena[i] == '(')
  10. inicio = i;
  11. if (cadena[i] == ')') {
  12. final = i;
  13. break;
  14. }
  15. }
  16.  
  17. for (i = inicio + 1, j = 0; i < final; i++, j++)
  18. auxiliar[j] = cadena[i];
  19.  
  20. auxiliar[j] = '\0';
  21. operador[0] = auxiliar[2]; operador[1] = '\0';
  22. auxUno[0] = auxiliar[0]; auxUno[1] = '\0';
  23. auxDos[0] = auxiliar[4]; auxDos[1] = '\0';
  24. resultado = atoi(auxUno) - atoi(auxDos);
  25. printf("\n %d", resultado);
  26.  
  27. for (i = inicio; i <= final; i++)
  28. cadena[i] = ' ';
  29.  
  30.  
  31. return 0;
  32. }
330  Programación / Programación C/C++ / Re: Prioridad y asociatividad de los operadores en C. (Programa propio) en: 7 Abril 2014, 00:19 am
Hola a todos.
Bueno pude lograr un avance pero no consigo insertar el resultado de auxiliar en cadena, créanme que estuve practicando pero me atrevo a pedirle ayuda un tanto apresurado por que estoy ansioso por avanzar.-

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(){
  5. int i, j, inicio, final;
  6. char cadena[100] = "3 * 5 + (9 - 2) + 5", auxiliar[100];
  7.  
  8. for (i=0;cadena[i]; i++){
  9. if (cadena[i]=='(')
  10. inicio=i;
  11. if (cadena[i]==')'){
  12. final=i;
  13. break;
  14. }
  15. }
  16.  
  17. for (i=inicio+1,j=0;i<final; i++,j++){
  18. auxiliar[j]=cadena[i];
  19. }
  20.  
  21. j = final - inicio;
  22. for(i=inicio; i < inicio+j+1 ; i++){
  23. cadena[i] = ' ';
  24. }
  25.  
  26. auxiliar[j]='\0';
  27.  
  28. printf("\n auxiliar = %s  cadena = %s", auxiliar, cadena);
  29.  
  30. printf("\n\n");
  31. return 0;
  32. }

Saludos.
Daniel
 
Páginas: 1 ... 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 [33] 34 35 36 37
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines