|
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
« 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: regreso NombreFuncion(parametro a, parametro b) { codigo return dato; } /*donde: regreso: es el tipo de variable que regresa tu funcion el espacio de parametros son los datos que metes en tu funcion el return es el dato que regresas (en caso de que regreses un parametro) */ Ejemplo de Funcion Recuerda que es solo un ejemplo , ya que una suma se puede hacer directo sin necesidad de hacer todo esto. int Suma(int a, int b)//aqui le dices que va a regresar un int y que le ingresan dos int. { int c; c=a+b; return c; } void main(void) { int a,b,c; c=Suma(a,b);//es lo equivalente que si hicieras a+b, el valor regresado es asignado a "c" }
Espero que te sea util, de cualquier manera puedes buscar en Google "Funciones en c" y te aparecen buenas paginas de esto. Saludos.
2
« 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. #include <iostream> #include <stdlib.h> using namespace std; const float A = 0.5; const float B = 0.35; const float C = 0.25; int main() { double num1,num2,consumo,contador,var1,suma1; cout <<"Escriba el ultimo y el anterior valor del contadorn"; cin >> num1 >> num2;//supngamos que los valores son 500 y 250 consumo = num1-num2;//vale 250 suma1 = 0; contador = 0; if (consumo <= 100) {//aqui no entra suma1 = consumo * A; } if (consumo > 100 && consumo <= 250) {//aqui si for (int contador2 = 1; contador2 <= 100; contador2++) {//empezamos for var1 = contador2 * A;// var=(1*0.5)/(2*.5)/(3*.5)/(4*.5)... suma1 = suma1 + var1;//suma1=0.5+1+1.5+2... contador = contador2;//contador=1/2/3/4/... } //cuando termine el for tendras //var=50 creo que es obio (100*.5) //suma1=2525 //contador=100 do { contador++;//contador=101 var1 = contador * B;//var=(101*.35)/(102*.35)/... suma1 = suma1 + var1;//suma=2525+35.34+35.69 } while (contador > 100 && contador <=250); //para cuando termine el do-while y si no me equivoco siempre es el mismo resultado //ya que le dices que se detenga hasta que sea 250 y no hasta el consumo //var1=87.84 //suma1=11826.59 //contador=251 } //supongo que con lo anterior te quede claro todo lo demas if (consumo > 250) { for (int contador3 = 1; contador3 <= 100; contador3++) { var1 = contador3 * A; suma1 = suma1 + var1; contador = contador3; } do { contador++; var1 = contador * B; suma1 = suma1 + var1; } while (contador <=250); do { contador++; var1 = contador * C; suma1 = suma1 + var1; } while (contador <=250); } suma1 = suma1 + 1; cout <<"El precio final es: " << suma1 << endl; system ("pause"); return 0; }
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
« 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
« 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 opcion=1//forsamos a que entre al while while(opcion!=7)//mientras el usuario no de opcion de salir lo seguira repitiendo { switch(opcion) { case 1: printf("...");/*como en estas opciones solo muestras informacion el programa lo va a mostrar pero demaciado rapido que ni lo vas a ver*/ 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"*/ break; case 7: break; } }
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
« en: Martes 3 de Agosto de 2010, 17:59 »
con un switch Ejemplo: int opcion; printf("1. opcion 1n 2.opcion2n..."); switch(opcion) { case 1: //codigo que quieres que haga si elige la opcion 1 break; case 2: //codigo break; . . . default: //codogo en caso de que no sea valida la opcion break; }
6
« 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
« 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
« 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
« 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
« 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 #include <stdio.h> #include <ncurses.h> #include <string.h> #define CORRECTO 1 #define FALLO 0 //primera forma int main() {//este primer programa no es nesesaria una funcion ya que como es muy corto el programa seria ineficiente. char cadena[50]; char pass[50]; char si='N'; initscr(); while(si!='S'){ printw("Usuario:"); scanw("%s",cadena); printw("Contraseña:"); noecho(); scanw("%s", pass); echo(); endwin(); if (!strcmp(cadena,"Rock")&& !strcmp(pass,"1234")){ printw("Bien!, ahora, ¿Quieres cerrar el programa?(S/N):n"); scanw("%c", &si); if(si!='N'&&si!='S') printw("Error. Introduzca S o Nn"); } else { printw("Errorn"); } } return 0; } //segunda forma int main() {//pero ya que si lo que quieres es utilizar una funcion esta te servira int valor=FALLO; initscr(); while(valor!=CORRECTO){ valor=funcion(); } return 0; } int funcion() { char cadena[50]; char pass[50]; char si='a'; int valor=FALLO; printw("Usuario:"); scanw("%s",cadena); printw("Contraseña:"); noecho(); scanw("%s", pass); echo(); endwin(); if (!strcmp(cadena,"Rock")&& !strcmp(pass,"1234")){ while(si!='N'||si!='s') { printw("Bien!, ahora, ¿Quieres cerrar el programa?(S/N):n"); scanw("%c", &si); if(si!='N'&&si!='S') { printw("Error. Introduzca S o Nn"); } } valor=CORRECTO; } else { valor=FALLO; printw("Errorn"); } return valor; }
espero te sea de ayuda. Saludos
11
« 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
« 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
« en: Lunes 10 de Mayo de 2010, 03:53 »
y cual es su problema?
Páginas: [1]
|
|
|