|
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 - ProfesorX
Páginas: 1 ... 26 27 [28] 29 30 ... 32
676
« en: Viernes 18 de Abril de 2008, 21:36 »
Es raro, porque a mi el C# Express nunca me ha mostrado esos mensajes, y yo tampoco tengo esas carpetas, y ademas no deberia pedirlas, ya que C# no maneja las librerias como C++, y ese mensaje parece mas de C++ que de C#. Quizas sea una mala instalacion, prueba desinstalando y volviendo a instalar el C#, a ver si eso elimina el problema. Saludos
677
« en: Jueves 17 de Abril de 2008, 19:07 »
Podrias utilizar System.IO.File.CreateText(), pero eso te borra todo el archivo, asi que pienso que la solucion seria usar dos archivos, uno lo lees, y luego pasas el contenido que necesites de ese al segundo archivo, despues cerrarias el primero, lo borras, y al segundo le pones el nombre del primer archivo.
678
« en: Miércoles 16 de Abril de 2008, 18:42 »
Tal vez la forma en que lo haces no es la correcta, prueba utilizando System.IO. File.OpenText y System.IO.File.AppendText como en el siguiente ejemplo: static void Main(string[] args) { StreamReader sr = File.OpenText("videos.txt"); if (sr != null) { while (!sr.EndOfStream) { string linea = sr.ReadLine(); Console.WriteLine(linea); } } sr.Close(); StreamWriter sw = File.AppendText("videos.txt"); sw.WriteLine("Hola Mundo"); sw.Close(); Console.ReadKey(true); }
679
« en: Martes 15 de Abril de 2008, 20:14 »
A ver, examine un poco mas tu problema, y me parece que tal vez hay un error en tu logica, y te falta entender como maneja C/C++ las cadenas internamente. En C/C++, todas las cadenas deben terminar con el caracter nulo '\0', las funciones de la libreria estandar de C/C++ esperan que la cadena termine con nulo, pues eso les indica en donde termina la cadena, si no encuentran el caracter nulo, siguen leyendo en la memoria hasta que encuentren el caracter nulo, con lo cual puedes obtener resultados inesperados si la cadena no termina en nulo. Ahora bien, corrigeme si me equivoco, pero supongo que lo que tu tratas de hacer, es dividir la cadena en dos, tomando tu ejemplo quieres dividir "hola/adios" en dos, tomando solo el hola, y utilizando el caracter diagonal como separador, entonces si encuentras el separador, dejas de pasar el contenido de una cadena a la siguiente cadena. Eso esta muy bien, pero lo unico que te faltaria es terminar tu cadena con un nulo, para que el resto de las funciones sepan en donde termina tu cadena void FuncionExtraer(){ int i=0; while (cadena[i] !='/') nuevacadena[i]=cadena[i]; i++; } /// Con esto le indicas a C/C++ donde termina tu cadena nuevacadena[i] = '\0';
Ahora, si no es eso lo que quieres, explica con mas detalle. Saludos
680
« en: Martes 15 de Abril de 2008, 19:33 »
Si ya tienes la funcion de suma recursiva, solo tienes que dividir la suma entre el numero de elementos, la suma es lo unico (en este caso) que se puede hacer recursivamente para resolver el problema, no hay otra forma de hacerlo, pues el dividir de manera recursiva, te daria un resultado diferente al promedio. Saludos
681
« en: Domingo 13 de Abril de 2008, 21:44 »
No se si entendi, no es acaso esto lo que quieres? void Funcion2(char nuevacadena[]) { }
682
« en: Sábado 12 de Abril de 2008, 00:55 »
Perdona Si dije algo malo, pero es que eso de que "Lee un libro o Toma Un curso De Programación" no me pareció correcto, de todas maneras disculpa. Pues de hecho el consejo no es malo, pues el que uses goto, indica que no has tomado o leido un buen libro de programacion, en la programacion estructurada el uso de goto no se aconseja, pues genera lo que se llama codigo spaghetti (o sea, un codigo que tiene tantos goto (saltos) que es imposible o casi imposible seguir el curso de ejecucion). Lo que hiciste lo puedes hacer sin goto, es cosa de que estructures tu programa de otra manera. Y bueno, normalmente no hacemos codigos, pero en vista de que se ve que no tienes ni idea de donde empezar, te pondre una ayuda (diria una super ayuda), un codigo que convierte de decimal a binario, con esto supongo que podras hacer todo lo demas. Si no eres capaz de hacerlo, pues lamento decirte que te equivocaste de carrera, pues la programacion requiere mente analitica y capacidad para resolver problemas, y si no puedes hacer problemas simples, mucho menos podras resolver un problema que te den en una empresa una vez que ya estes trabajando. Espero no me lo tomes a mal. void ConvertirDecimalABinario(int num, char binario[]) { char temp[80]; int i = 0; /// Repetir la division entre 2 hasta que el cociente sea cero while ((num / 2) != 0) { /// Toma el residuo de la division, lo convierte a caracter, /// y lo guarda en la cadena temp[i] = (num % 2) + 48; /// Obtiene el cociente de la division, que sera el siguiente /// numero a dividir. num = num / 2; /// Para llevar el control de cuantos numeros hay en la cadena i++; } /// Obtengo el ultimo residuo temp[i] = (num % 2) + 48; /// Agrego el fin de cadena temp[i+1] = '\0'; /// Ciclo para invertir la cadena, pues los digitos quedan invertidos int j = 0; for (i = strlen(temp) - 1; i >= 0; i--) { binario[j] = temp[i]; j++; } /// Agrego el fin de cadena binario[j] = '\0'; }
Saludos
683
« en: Viernes 11 de Abril de 2008, 02:07 »
Pero siempre el numero a adivinar es 100
por que sera? La vez pasada qie vi tu codigo no me habia dado cuenta, pero ahora que lo mencionas, el error esta en la forma que obtienes el numero a adivinar, usas un ciclo de 1 a 100, hasta que se pulse una tecla, pero no tomas en cuenta que el ciclo se termina tan rapido (en milesimas de segundo probablemente), que por lo tanto cuando tu pulsas, el numero i ya vale 100. Mejor utiliza una funcion que te genere un numero aleatorio, no recuerdo en pascal, pero supongo que sera random, checa en la ayuda, o busca en google "random pascal" Saludos
684
« en: Martes 8 de Abril de 2008, 20:51 »
Los if no estan bien anidados, revisalos.
685
« en: Martes 8 de Abril de 2008, 01:04 »
Es cierto, en algunos lenguajes se le llama funcion a aquellas subrutinas/subprogramas que regresan un valor, y procedimientos a todos los demas. En C/C++ todas se llaman funciones. Ahora tu pregunta, como hacer para que una funcion regrese dos valores? Usa parametros. Si no sabes que son parametros, busca en algun libro/curso de programacion, ahi viene la respuesta., veras que existen por valor y por referencia, pero prefiero no quitarte la emocion de descubrir que siginifica eso, por ti mismo  Busca, lee, analiza.... Saludos
686
« en: Jueves 3 de Abril de 2008, 05:46 »
Hay una forma facil de leer el numero con scanf, el problema es que no valida que el numero sea correcto segun la base (o sea un 9 en base octal por ejemplo), ni tampoco funciona con binarios: // Lee un numero en octal scanf("%o", &valor); // Lee un numero en hexadecimal scanf("%x", &valor);
Asi que de todas formas, como dije, tienes que hacer conversiones.
687
« en: Jueves 3 de Abril de 2008, 05:28 »
Es decir, por ejemplo quiero sumar dos números binarios, lo que tengo que hacer es primero convertir esos números binarios a decimales, hacer la operación y luego volverlos a convertir a binarios, y asi con los otros sistemas de números ? Si
688
« en: Jueves 3 de Abril de 2008, 03:33 »
Tu mismo lo dijiste, todas las operaciones se hacen en decimal (aunque internamente la computadora lo hace en binario, pero esa es otra historia  ). Asi que lo que tienes que hacer es crear una funcion que convierta de base "x" a decimal, y de decimal a base "x", supongo que la conversion la sabes hacer, conversiones de sistemas se ve en el primer semestre de cualquier carrera de informatica, si no, busca en la wikipedia sistema binario, sistema octal y sistema hexadecimal. Resumiendo de nuevo 1. Lees los numeros (como cadena, en el caso de hexadecimal) 2. Validas segun la base 3. conviertes de base "x" a decimal (a menos que ya sea decimal). 4. haces la operacion. 5. conviertes de decimal a base "x".
689
« en: Miércoles 2 de Abril de 2008, 19:49 »
Pediste una guia asi que aqui va: Para la lectura de variables usa scanf, o si es cadena gets. Para la eleccion de los menus usa switch/case. Para que no permitas valga la redundancia numeros no permitidos (esto dependera de la base) valida las entradas (pista, usa do..while) Para las operaciones, simplemente hazlas, ejemplo: suma = a+ b; Cuando tengas algo hecho, regresa y posteas tu codigo, y podremos ayudarte mas, pero antes demuestra que has hecho algo. Porque no se hacen tareas  Saludos
690
« en: Miércoles 2 de Abril de 2008, 19:40 »
Como PREDEFINIDO es una cadena, utiliza strcpy/strncpy. char variable[50]; strcpy(variable, PREDEFINIDO);
Con cualquier otro tipo de variable que no sea cadena un = sirve. Saludos
691
« en: Martes 1 de Abril de 2008, 21:16 »
No se porque dices que no habias encontrado nada, el compañero F_Tanori te lo encontro rapido, y yo tambien hice la prueba, y ese enlace mismo enlace me salio en la primera pagina de resultados de google, en 2 segundos.
Como dije antes, googlea, no quieras que te lo den todo facil.
692
« en: Martes 1 de Abril de 2008, 21:11 »
Pues te sobra un parentesis y un while, en el primer case: } while(m>5||n>5);
Aunque sospecho que lo que quieres es validar la entrada, en cuyo caso te falta un "do {" y deberias tener algo como: do { printf("cuantos renglones y columnas quieres para las matrizes (max 5x5 y separados por un espacio): "); scanf("%i%i",&m,&n); clrscr(); if (m>5) { gotoxy(5,7); printf("Error: el renglon no debe ser mayor a 5"); } if (n>5) { gotoxy(5,9); printf("Error: la columna no debe ser mayor a 5"); } } while (m>5||n>5);
Aunque recomendaria que validaras dato por dato, y no los dos al mismo tiempo, porque si al validar uno por uno, si el usuario solo se equivoca en uno, repites ese uno, en cambio, validando los dos al mismo tiempo, si se equivoco en el primero y no en el segundo, haces que vuelva a leer los dos, y tal vez la siguiente se equivoque en el segundo y no en el primero. Otro consejo, indenta en tu codigo, tus condiciones y tus ciclos, eso hace que sea mas facil ver a simple vista si omites o escribes de mas un corchete o alguna otra cosa, como en este caso. Saludos
693
« en: Martes 1 de Abril de 2008, 00:15 »
Busca (googlea) hay muchisima informacion si buscas bien
694
« en: Viernes 28 de Marzo de 2008, 22:31 »
No existe una funcion asi, la tienes que crear. el siguiente fragmento te elimina (borra) los espacios de la cadena, y la guarda en otra cadena. int i = 0, j = 0; // Ejecuta el ciclo mientras no sea el fin de la cadena while (cad1[i] != '\0') { // Si no es un espacio, copia el caracter en la cadena 2 if (cad1[i] != ' ') { cad2[j] = cad1[i]; j++; } i++; } // Coloca el fin de cadena al final de la cadena cad2[j] = '\0';
695
« en: Jueves 27 de Marzo de 2008, 19:19 »
Nunca lo he hecho, pero me parece que tendrias que hacer un formulario y utilizar el common dialog control.
696
« en: Jueves 27 de Marzo de 2008, 19:15 »
utiliza rb/wb para abrir archivos binarios, en lugar de rt/wt, que es para archivos de texto, y fread/fwrite en lugar de fgetc/fputc
697
« en: Jueves 27 de Marzo de 2008, 18:52 »
Para empezar, tienes varios errores de sintaxis, en algunas partes pones intenger en lugar de integer, en otra parte pones Wirteln en lugar de Writeln, y finalmente, defines la variable porc como string, cuando en realidad deberia ser de tipo real. Esos son los errores que vi a simple vista, quizas haya mas, pero no tengo mi compilador de pascal para probarlo. Saludos
698
« en: Miércoles 26 de Marzo de 2008, 18:45 »
oye, cambiandote el tema, no podrias escribir un poco mejor? he visto tus mensajes pero casi no se te entiende, y se ve muy mal, recuerda que no estas mandando mensajes a celular. Ejemplos: Oye como ago Oye como hago
I otra cosa Y otra cosa
acer librerias hacer librerias
i se v k ai una rulando pro ai y se ve que hay una rulando por ahi
y le podria seguir, pero no acabaria Esta bien si se te pasa un error o dos de ortografia (nadie es perfecto) pero escribir mal a proposito y con tantas faltas No seas hoygan, por favor, si no sabes que es, pasate por aqui: http://eldiegoj.blogspot.com/2007/05/el-fenmeno-hoygan.htmlSaludos
699
« en: Martes 25 de Marzo de 2008, 18:38 »
Si aparecen caracteres raros, quiere decir que no es un archivo xml sino un archivo binario, pues los archivos xml son de texto. Ahora, sin saber con que programa fueron hechos y en que formato esta, es dificil que puedas leer su contenido. Debes averiguar con que programa fueron hechos, y buscar informacion sobre el formato, si es que la hay, claro. Saludos
700
« en: Jueves 20 de Marzo de 2008, 20:52 »
Muy raro, porque ese error significa que no estas incuyendo la libreria, ignoro a que se deba entonces. Hay otra forma de generar numeros aleatorios, en un rango especificado: // Genera numeros aleatorios entre 1 y 100 m[k][l]= rand() % 100 + 1; // Genera numeros aleatorios entre 20 y 80 m[k][l]= rand() % 80 + 20;
Aun asi, he analizado tu progama y creo que tu problema esta en la logica, y tambien en que la funcion rand() no genera aleatorios verdaderos, sino pseudoaleatorios, esto quiere decir que a la larga (o sea, en varias iteraciones, como en tu caso, que al ser de 50x50, iteras 2500 veces), estos numeros se repiten. Y ademas veo que tu calculas 2500 numeros, y luego sumas todos, y guardas esa suma de 2500 numeros en otra matriz, y lo repites otras 2500 veces, asi que me parece logico que como los aleatorios a la larga se repiten, y luego los sumas, obtienes sumas parecidas, y para empeorar las cosas, la funcion rand() solo genera numeros entre 0 y 32768, asi que pues aunque quieras obtener mas variedad de numeros, no la hay. Si es demasiado importante para ti que genere aleatorios mas "aleatorios" valga la redundancia, entonces tienes que buscar otras librerias en C/C++, o hasta en ensamblador, que generen mejores aleatorios, en lugar de la libreria que viene por defecto en el compilador. O tambien existen listas de numeros aleatorios, podrias ponerlas en un archivo de texto, y alimentar tu porgrama con ellas. Bueno, son solo ideas. Saludos
Páginas: 1 ... 26 27 [28] 29 30 ... 32
|
|
|