Foro Oficial De C++

julio_verne17 dijo:
Hola...Yo uso el Turbo C++ para programar pero qiero cambierme a dev c++...

Se puede o no...???

GRACIAS...

Sip... pero tenga en cuenta la portabilidad de los codigos que usted ha hecho, aunque por el turbo C++ me doy cuenta que usted es novato y que hasta ahora conoce programacion básica, el unico inconveniente en ese sentido es que las funciones de la libreria conio.h como clrscr, gotoxy, no las va a poder utilizar, ya si para usted son imprescindibles estas funciones puede ir a http://c.conclase.net que hay tienen una libreria conio.h diseñada especialmente para Dev C++
 
Dak dijo:
Señores tengo la siguiente duda, la vaina es que estoy haciendo un pequeño programa para inventarios con archivos, el problema es que como los valores los separo por el caracter "," si se inserta en mi cadena de "nombre", cuando lo lea, hace una division ahi y se me tira el programa, como soluciono esto? (quisiera que cuando se lea, remplace la "," por un espacio por ejemplo).


Que raro no apareció mi respuesta...

decía algo como:

si puede modificar el formato de los archivos, cambie la ',' por un pipe '|' como separador. (Es más difícil escribir por error el pipe que la coma)

Si no puede modificar el formato de los archivos, capture línea a línea, separe ese string en tokens y cuente cuántos tokens le resultan. Si el resultado es diferente a la cantidad preestablecida, hay algún error.

Si no estoy mal la clase string o alguna de las clases de las que hereda tienen métodos para separar strings o buffers por separadores establecidos. Empiece consultando http://www.cppreference.com/

Esa sería mi solución inmediata.
 
Tengo una duda, mas bien un pequeño inconveniente. Trabajo c++ en Turbo C por puros propositos academicos. Al finalizar un proyecto nos piden ademas del programa como tal, un informe con, entre otras cosas, imagenes del programa en ejecucion. Como hice el programa con la libreria graphics.h, y tengo windows xp, el Print Screen no me funciona. Segun mi profesor eso solo sirve en win98 para abajo, pero antes de ponerme a buscar como loco un pc con tales caracteristicas en un mundo monopolizado por xp, prefiero ver si hay otra alternativa como un programa q haga esas capturas.
 
necesito el borland c++ builder si alguien conoce una pagina de donde bajarlo por favor diganme soy estidiante de ing. de sistemas y lo necesito muy urgente
 
pop dijo:
Tengo una duda, mas bien un pequeño inconveniente. Trabajo c++ en Turbo C por puros propositos academicos. Al finalizar un proyecto nos piden ademas del programa como tal, un informe con, entre otras cosas, imagenes del programa en ejecucion. Como hice el programa con la libreria graphics.h, y tengo windows xp, el Print Screen no me funciona. Segun mi profesor eso solo sirve en win98 para abajo, pero antes de ponerme a buscar como loco un pc con tales caracteristicas en un mundo monopolizado por xp, prefiero ver si hay otra alternativa como un programa q haga esas capturas.

ejecutelo en linux, asi te ahorras el problema
 
Pues lo que tienes que hacer es plantear una funcion de la forma

Y=raiz(x)

Elevando al cuadrado en ambos lados:

Y^2=x

Pasando la x:

Y^2-x=0

Como x es el número que da el usuario. Por ejemplo 8. La función que tenemos es:

f(Y)=Y^2-8

A esta función ya se le puede aplicar Newton, ya que el valor de Y que hace que la función sea cero es la raíz de 8. Sabiendo que la fórmula es:

Y[i+1]=Y-f(Y)/f'(Y)

Se calcula el valor de la función y su derivada para un Y inicial arbitrario. Al hacer varias iteraciones, se consigue el valor.

Si no entiendes algo, escribe qué es lo que no entiendes.
 
Si claro simplemente hice esto:

Código:
  (...) 
       raizx =1;    
       raizy = raizx*raizx - z; //z es la entrada
  
       while(m<10) {
                   raizx = raizx - raizy/(2*raizx);
                   raizy = raizx*raizx - z;
                   m++;
      }
           
  cout<<"Su raiz cuadrada es: "<<raizx<<endl; 
 (...)


Y Listo corre perfecto, antes intente aplicar las ecuaciones en un papel pero se llega a la conclusion de que se tiene un digito demasiado aproximado (ejemplo con el 9 yo me aproximaba al 3,000000001 ya en la 5 iteracion) y se hace dificil hacer los calculos por la cantidad de cifras decimales, por eso decidi implementarlo de una en C++ y funciono
 
hola soy nuevo en estos foros pero si a alguien le interesa hacer interfaces un poco mas bonitas en c++ lo que yo sujiero es utilizar la libreria ncurses, hay que bajar el paquete e instalarlo cosa que es muy sencilla, yo sujuero que se utilice esta libreria por que permite hacer ventana y subventanas para realizar una interfaz mas presentable, aunque el codigo puede estenderse un poco mas sus funciones se utilizan muy facilmente.

si alguien esta interesado puede buscar mas ayuda buscando por la libreria ncurses especificamente o si necesitan ayuda especifica pueden postear en el foro y yo tratare de responder
 
regresando al tema, del algoritmo de Newton tengo que:

raizx =1;
raizy = raizx*raizx - z; //z es la entrada
while(m<10) {
raizx = raizx - raizy/(2*raizx);
raizy = raizx*raizx - z;
m++;
}
cout<<"Su raiz cuadrada es: "<<raizx<<endl;
(...)


No Sirve para todas las raices, es decir no calcula raices altas, que condicion debo colocar para estar seguro que el proceso va a terminar cuando no haya mas aproximaciones???

Alguien me colabora a corregir ese codigo
 
Lo que tendrías que hacer es tener a raizy como tipo double. Además tener una variable extra que se llame errory con un valor de 0.00001. Y en el while lo que pones es while(raizy>erroy). Esto es lo que normalmente se hace en el método de newton. ASí se asegura que el while se realiza hasta que se encuentre un valor en raizx que haga que raizy sea muy cercano a cero.
 
Mira, acá te mando eso mismo pero hecho en java. El paso a C es muy sencillo. Porque lo que interesa es la función raiz.

public class newton {
public static void main(String[] args) {
int x=Integer.valueOf(args[0]);
double ra=raiz(x);
System.out.println(ra);
}

private static double raiz(int z){
double raizx=1;
double raizy=raizx*raizx-z;
while(raizy>0.00001 || raizy<-0.00001){
raizx = raizx - raizy/(2*raizx);
raizy = raizx*raizx - z;
}
return(raizx);
}
}

Lo que importa es la condición en el while. Tiene que comprobar así ya que es el valor absoluto de la raiz lo que se comprueba.

Saludos!
 
Oye no estoy muy empapado de que es lo que quiere pero si lo que quiere es la raiz cuadrada de algo solo tiene que buscar en la cabecera "math.h" y el sqrt o el pow para la raiz!!!

Bueno señores creo k llegue donde queria porque tengo muchas dudas y quiero que me las aclaren, ahora no porque es muy tarde pero preparence que tengo algo en mente algo nunca visto (creo yo) y quiero perfeccionarlo con la ayuda de ustedes!!!!

Asi que Adios y nos vemos luego!!

SuerteX
 
Pues 2 cosas amigo. A. La pregunta ya fue resuelta y B. Él dijo muy claramente: "Ayuda, necesito implementar un algoritmo que arroje la raiz cuadrada de un numero proporcionado por el usuario, (no vale usar sqrt)".

Pues dinos que es lo que necesitas y acá te ayudaremos!

Saludos
 
Bueno me gustaria saber si hay alguna cabecera o algun algoritmo con el que solo pueda capturar numeros y no numeros y caracteres? porque hice una calculadora y la quiero perfeccionar, pero parte de la perfeccion esta en solo capturar numeros en el menu!!! ahh y otra cosa es que a la hora de capturar variables si captura mas de una (osea 2) instantaneamente accese a la opcion del menu indicada!!

es mas para que veas como me quedo mirala ahi!!

Espero que sea de su agrado y cualquier duda, inquietud o criticas (preferiblemente constructiva) serán bien recibidas!!!

Gracias!!
 

Archivos adjuntos

  • ESPATMA.rar
    35.7 KB · Visitas: 206

Los últimos temas