• Viernes 8 de Noviembre de 2024, 23:28

Mostrar Mensajes

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


Mensajes - vite666

Páginas: [1]
1
C/C++ / Re: Funciones
« en: Jueves 4 de Noviembre de 2010, 06:50 »
pues basicamente una funcion en la programacion es un segmento de codigo que puedes utilizar una y otra vez en tu programa. la estructura basica de toda funcion e incluso del main que tambien es una funcion es:
Código: C
  1.  
  2. regreso NombreFuncion(parametro a, parametro b)
  3. {
  4.      codigo
  5.      return dato;
  6. }
  7. /*donde:
  8. regreso: es el tipo de variable que regresa tu funcion
  9. el espacio de parametros son los datos que metes en tu funcion
  10. el return es el dato que regresas (en caso de que regreses un parametro)
  11. */
  12. Ejemplo de Funcion
  13. Recuerda que es solo un ejemplo, ya que una suma se puede hacer directo sin necesidad de hacer todo esto.
  14. int Suma(int a, int b)//aqui le dices que va a regresar un int y que le ingresan dos int.
  15. {
  16.      int c;
  17.      c=a+b;
  18.      return c;
  19. }
  20. void main(void)
  21. {
  22.       int a,b,c;
  23.       c=Suma(a,b);//es lo equivalente que si hicieras a+b, el valor regresado es asignado a "c"
  24. }
  25.  
  26.  
Espero que te sea util, de cualquier manera puedes buscar en Google "Funciones en c" y te aparecen buenas paginas de esto.
Saludos.

2
C/C++ / Re: Programa calculador de precios, básico!
« en: Lunes 1 de Noviembre de 2010, 04:23 »
pues mira solo te voy a decir como funciona tu programa, espero tu puedas ver los errores.
Código: C++
  1.  
  2. #include <iostream>
  3. #include <stdlib.h>
  4. using namespace std;
  5. const float A = 0.5;
  6. const float B = 0.35;
  7. const float C = 0.25;
  8. int main() {
  9. double num1,num2,consumo,contador,var1,suma1;
  10.  
  11. cout <<"Escriba el ultimo y el anterior valor del contadorn";
  12. cin >> num1 >> num2;//supngamos que los valores son 500 y 250
  13. consumo = num1-num2;//vale 250
  14. suma1 = 0;
  15. contador = 0;
  16.  
  17. if (consumo <= 100) {//aqui no entra
  18. suma1 = consumo * A;
  19. }
  20.  
  21. if (consumo > 100 && consumo <= 250) {//aqui si
  22. for (int contador2 = 1; contador2 <= 100; contador2++) {//empezamos for
  23. var1 = contador2 * A;//        var=(1*0.5)/(2*.5)/(3*.5)/(4*.5)...
  24. suma1 = suma1 + var1;//suma1=0.5+1+1.5+2...
  25. contador = contador2;//contador=1/2/3/4/...
  26. }
  27. //cuando termine el for tendras
  28. //var=50 creo que es obio (100*.5)
  29. //suma1=2525
  30. //contador=100
  31. do {
  32. contador++;//contador=101
  33. var1 = contador * B;//var=(101*.35)/(102*.35)/...
  34. suma1 = suma1 + var1;//suma=2525+35.34+35.69
  35. } while (contador > 100 && contador <=250);
  36. //para cuando termine el do-while y si no me equivoco siempre es el mismo resultado
  37. //ya que le dices que se detenga hasta que sea 250 y no hasta el consumo
  38. //var1=87.84
  39. //suma1=11826.59
  40. //contador=251
  41. }
  42. //supongo que con lo anterior te quede claro todo lo demas
  43. if (consumo > 250) {
  44. for (int contador3 = 1; contador3 <= 100; contador3++) {
  45. var1 = contador3 * A;
  46. suma1 = suma1 + var1;
  47. contador = contador3;
  48. }
  49. do {
  50. contador++;
  51. var1 = contador * B;
  52. suma1 = suma1 + var1;
  53. } while (contador <=250);
  54. do {
  55. contador++;
  56. var1 = contador * C;
  57. suma1 = suma1 + var1;
  58. } while (contador <=250);
  59. }
  60.  
  61. suma1 = suma1 + 1;
  62. cout <<"El precio final es: " << suma1 << endl;
  63. system ("pause");
  64. return 0;
  65. }
  66.  
  67.  
  68.  
bueno solo espero q allas encontrado la forma en que haces todo esto con tan solo una linea de comando en cada if.
Saludos

3
C/C++ / Re: duda pasar matriz a vector
« en: Jueves 5 de Agosto de 2010, 12:26 »
Cuando no te especifican si el no tener informacion se refiere algun tipo de dato en especial
pues solo puede referirse a: cuando declaras una matriz lo tienes que hacer forsosamente con un tamaño especifico (claro a menos que sea una matriz dinamica*) asi int Matriz[3][3] por ejemplo esto visualmete se puede ver asi:
x x x
x x x //acuerdate que los arreglos comiensan desde la posicion 0
x x x
al principio todas las posiciones contienen "basura" o no tienen informacion
en el momento en que tu llenes cierto rango de columnas y renglones por ejemplo ren=1 col=1:
1 1 x
1 1 x
x x x
1: representa los datos cargados o los que contienen informacion
x: no contienen informacion
ya tendras ciertas posiciones con informacion, asi que en tu programa yo no le veria caso poner el if ya que no te especificaro que "no tener informacion se refiere a tener cero".

*Se le dice que es dinamica porque al momento de declararla no le das un tamaño en especifico sino eso lo haces en tiempo de ejecucion, para esto le tienes que pedir memoria al sistema y devolversela cuando ya no la ocupes.

Saludos.

4
C/C++ / Re: Duda vectores y matrices
« en: Jueves 5 de Agosto de 2010, 11:56 »
puedes meter una nueva opcion que sea salir y todo lo pones dentro dentro de un while
Código: C
  1. opcion=1//forsamos a que entre al while
  2. while(opcion!=7)//mientras el usuario no de opcion de salir lo seguira repitiendo
  3. {
  4.         printf("7. Salir");
  5.         switch(opcion)
  6.         {
  7.                case 1:
  8.                       printf("...");/*como en estas opciones solo muestras informacion el programa lo va a mostrar pero demaciado rapido que ni lo vas a ver*/
  9.                       getch();/*esto es para hacer una pausa en el programa, es parte de <conio.h> si trabajas en windows en linux no recuerdo la libreria, el problema es que no es ANSI asi que si no te corre utiliza getchar() dos veces, y si sigue no funcionado prueva buscar el google "pausa en c"*/
  10.                       break;
  11.                case 7:
  12.                      break;
  13.         }
  14. }
  15.  
  16.  
con respecto el error que te marca, tal vez es porque no inicializaste "opcion" y cuando tratas de utilizarla en el switch pues no la puede evaluar ya que tiene "basura" por el momento. ya que si dices la linea donde te marca el error te lo confirmaria.

5
C/C++ / Re: Duda vectores y matrices
« en: Martes 3 de Agosto de 2010, 17:59 »
con un switch
Ejemplo:
Código: C
  1.  
  2. int opcion;
  3. printf("1. opcion 1n 2.opcion2n...");
  4. scanf("%i",&opcion);
  5. switch(opcion)
  6. {
  7. case 1:
  8.        //codigo que quieres que haga si elige la opcion 1
  9.        break;
  10. case 2:
  11.        //codigo
  12.        break;
  13. .
  14. .
  15. .
  16. default:
  17.        //codogo en caso de que no sea valida la opcion
  18.        break;
  19. }
  20.  
  21.  

6
C/C++ / Re: Duda vectores y matrices
« en: Sábado 31 de Julio de 2010, 20:42 »
pues podrias vaciar tus datos en un archivo, con eso puedes vaciar o cargar cuantos grupos desees.
solo busca en google sobre el "manejo de archivos en C" no te envio a ninguna pagina xq no puedo, po eso de los privilegios.

7
C/C++ / Re: No acabo de comprender la logica de este programa
« en: Sábado 31 de Julio de 2010, 05:48 »
pues mira lo que hace basicamente es:
el primer for creo que es entendible solo marca el numero columnas que vas a pintar
el segundo for envia el cursor en una cuarta parte de la pantalla, sabras que la pantalla se divide en 80 en "x" y 25 en "y" asi con esto te envia a la posicion 80/4-1=19 ya que COLUMNAS =80 y b=1 asi que pinta espacios para que en pantalla no se vea nada para poder llegar a esta posicion  y como se incrementa a b la segunda ves valdra 18, para que cuando empiece a pintar empiece uno atras.
el tercer for pinta "la mitad del triangulo" la primera vez solo pinta un uno con un espacio.
El segundo for pinta "la otra mitad del triangulo" esto se empieza a notar en el segundo renglon, donde el primer for pinta 2 3 y el segundo for pinta 2, asi puede visualizarse 2 3 2, y asi sucesibamente, el primer for pinta 2 3 4 y el segundo 3 2 para verse 2 3 4 3 2.
Espero entiendas. Saludos.

8
C/C++ / Re: No me deja leer del fichero.
« en: Viernes 14 de Mayo de 2010, 06:50 »
tal vez por esta linea en donde "ab" no es un tipo valido de apertura
if((Arc=fopen("EjercicioBin.txt", "ab"))==NULL)

9
C/C++ / Re: Problemilla C
« en: Miércoles 12 de Mayo de 2010, 18:59 »
pues si funciona tu programa, esta bien. en cuanto a tu pregunta de si main se puede llamar a si mismo, si se puede, pero volvemos a lo mismo, no se debe hacer ya que al hacer una determinada instruccion, es mejor que falle una funcion en especifica que tu funcion principal que es la que controla todas las demas funciones, y es mas facil la depuracion del mismo. todas las demas funciones son validas a llamarse a si mismas, esto es la recursividad y es util en muchos casos.

10
C/C++ / Re: Problemilla C
« en: Miércoles 12 de Mayo de 2010, 09:48 »
antes que nada con esto no digo que soy muy buen programador, pero nos ayudara a que abancemos por el camino correcto. perdon que te lo diga pero este programa, esta mal hecho, y no por la logica del mismo, sino por la manera de implementar las cosas y sobre todo la sintaxis de programacion que tiene.
1. no es valido llamar a la funcion main en otra funcion, se que si te va a compilar, pero llamarla desde otra funcion no es conveniente, digamoslo asi main es como el jefe y las funciones son los empleados, tu como jefe puedes recibir ayuda, pero lo que no puedes recibir son ordenes de tus empleados.
2. Los dobles return que tienen tus funcion tanto main como correcto, esto tambien es un error que muchos, pero muchos programadores hacen, ya que la funcion solo puede mandar una solo return a la vez, y aunque este dentro de un if, tu nunca sabes cuando puede tronar tu programa por cualquier cosa, siempre hay que tener en cuenta que todo puede fallar, asi te vuelves un mejor programador, esto es como si escribieras en un reporte la palabra culero (en Mexico esta palabra quiere decir malo, horrible, etc) en vez de malo, las dos formas sirven para calificar de la misma manera una cosa, pero como es un reporte tienes que pones la palabra malo, por cuestiones de presentacion. En la programacion pasa lo mismo, para ser un buen programador tienes que hacer tus programas lo mas presentables y entendibles posible.
puedes aplicar estos dos programas, no los e compilado ya que yo no utilizo linux pero supongo que si corren

Código: C++
  1. #include <stdio.h>
  2. #include <ncurses.h>
  3. #include <string.h>
  4. #define CORRECTO 1
  5. #define FALLO 0
  6. //primera forma
  7. int main() {//este primer programa no es nesesaria una funcion ya que como es muy corto el programa seria ineficiente.
  8.     char cadena[50];
  9.     char pass[50];
  10.     char si='N';
  11.     initscr();
  12.     while(si!='S'){
  13.  
  14.         printw("Usuario:");
  15.         scanw("%s",cadena);
  16.  
  17.         printw("Contraseña:");
  18.         noecho();
  19.         scanw("%s", pass);
  20.         echo();
  21.  
  22.         endwin();
  23.  
  24.         if (!strcmp(cadena,"Rock")&& !strcmp(pass,"1234")){
  25.             printw("Bien!, ahora, ¿Quieres cerrar el programa?(S/N):n");
  26.             scanw("%c", &si);
  27.             if(si!='N'&&si!='S')
  28.                 printw("Error. Introduzca S o Nn");
  29.         }
  30.         else {
  31.             printw("Errorn");
  32.         }
  33.     }
  34.     return 0;
  35. }
  36. //segunda forma
  37. int main() {//pero ya que si lo que quieres es utilizar una funcion esta te servira
  38.     int valor=FALLO;
  39.     initscr();
  40.     while(valor!=CORRECTO){
  41.         valor=funcion();  
  42.     }
  43.     return 0;
  44. }
  45. int funcion()
  46. {
  47.     char cadena[50];
  48.     char pass[50];
  49.     char si='a';
  50.     int valor=FALLO;
  51.     printw("Usuario:");
  52.     scanw("%s",cadena);
  53.  
  54.     printw("Contraseña:");
  55.     noecho();
  56.     scanw("%s", pass);
  57.     echo();
  58.  
  59.     endwin();
  60.  
  61.     if (!strcmp(cadena,"Rock")&& !strcmp(pass,"1234")){
  62.         while(si!='N'||si!='s')
  63.         {
  64.             printw("Bien!, ahora, ¿Quieres cerrar el programa?(S/N):n");
  65.             scanw("%c", &si);
  66.             if(si!='N'&&si!='S')
  67.             {
  68.                 printw("Error. Introduzca S o Nn");
  69.             }
  70.            
  71.         }
  72.         valor=CORRECTO;
  73.     }
  74.     else {
  75.         valor=FALLO;
  76.         printw("Errorn");
  77.     }
  78.     return valor;
  79. }
  80.  
espero te sea de ayuda.
Saludos

11
C/C++ / Re: mensaje de virus
« en: Martes 11 de Mayo de 2010, 03:01 »
pues en efecto lo mas seguro es que ya se infecto tu computadora, ya que tu programa no lo esta causando.

12
C/C++ / Re: ejercicio en c
« en: Lunes 10 de Mayo de 2010, 03:57 »
pues lo siento mucho, pero los foros es para ayudar a resolver un problema en el cual no puedes continuar, no para que alguien te lo haga todo, para esto estan los chavos de tu salon que si le entienden y que posiblemente con un dinero te lo haga.

13
C/C++ / Re: No logro regresar el resultado en llamado a función
« en: Lunes 10 de Mayo de 2010, 03:53 »
y cual es su problema?

Páginas: [1]