Foros del Web » Programación para mayores de 30 ;) » C/C++ »

preguntas generales y ¿qué es disc?

Estas en el tema de preguntas generales y ¿qué es disc? en el foro de C/C++ en Foros del Web. Bueno, estoy aprendiendo c++, me he bajado un tutorial del cual estoy muy satisfecho, ya que hasta ahora no me había surgido ni una duda, ...
  #1 (permalink)  
Antiguo 31/01/2012, 16:08
Avatar de NazcaiN  
Fecha de Ingreso: diciembre-2008
Ubicación: en mi pueblo
Mensajes: 228
Antigüedad: 16 años
Puntos: 8
preguntas generales y ¿qué es disc?

Bueno, estoy aprendiendo c++, me he bajado un tutorial del cual estoy muy satisfecho, ya que hasta ahora no me había surgido ni una duda, pero ya era hora de tener la primera :), el código es este:
Código c++:
Ver original
  1. // Resolver ecuación de segundo grado
  2. #include <iostream>
  3. #include <cmath>
  4. using namespace std;
  5. int main()
  6. {
  7. double a, b, c;
  8. cout << "Dame los coeficientes:";
  9. cin >> a >> b >> c;
  10. double disc = pow(b,2.0)-4*a*c;
  11. double r1 = (-b + sqrt(disc))/(2*a);
  12. double r2 = (-b - sqrt(disc))/(2*a);
  13. cout << "Primera raíz: " << r1 << endl;
  14. cout << "Segunda raíz: " << r2 << endl;
  15. }

bien, el caso es que r1 y r2 son las raíces, pero disc qué es? y ya que estamos resolviendo dudas, me aparece una vez el término unario, lo he buscado y según parece es un término que se usa cuando en una operación solo hay dos números es decir 2+2 por ejemplo, es así lo entendí bien o estoy completaqmente deshubicado?
y ya que estamos explicadme mejor qué es una biblioteca porque aquí dice que es un conjunto de funciones, objetos y tipos, yo creía que en eso era en lo que se basaba un programa, pero veo que los programas están basados en bibliotecas y estas van pasando de unas a otras para en conjunto crear el programa ¿cierto o es que soy muy torpe y no me entero de nada?? gracias por vuestra ayuda :)
__________________
había una vez un hombre tan sumamente pobre que sólo tenía dinero.

Última edición por NazcaiN; 31/01/2012 a las 16:52
  #2 (permalink)  
Antiguo 31/01/2012, 17:30
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: preguntas generales y ¿qué es disc?

de la misma forma que a b c son variable disc tambien es variable.

Para definir variables tienes que anteponer el tipo de la misma. Y luego el nombre. Apartir de ahi una variable tiene un valor y este puede ser usado en otras operaciones. Ademas si esta en la parte izquierda de la asignacion le modificas el valor. Como es el caso de disc.

Saludos
  #3 (permalink)  
Antiguo 31/01/2012, 17:50
Avatar de NazcaiN  
Fecha de Ingreso: diciembre-2008
Ubicación: en mi pueblo
Mensajes: 228
Antigüedad: 16 años
Puntos: 8
Respuesta: preguntas generales y ¿qué es disc?

Gracias!!! es que creia que era una palabra reservada, como me las van dando en el tutorial conforme hace falta, aunque me extrañaba que no estuviese remarcada.
__________________
había una vez un hombre tan sumamente pobre que sólo tenía dinero.
  #4 (permalink)  
Antiguo 01/02/2012, 08:49
Avatar de NazcaiN  
Fecha de Ingreso: diciembre-2008
Ubicación: en mi pueblo
Mensajes: 228
Antigüedad: 16 años
Puntos: 8
Respuesta: preguntas generales y ¿qué es disc?

Por no abrir un nuevo tema lo pongo aquí.
como ya os he comentado antes, me descargué una guía de programación en c++ bastante completa, si alguien la quiere que me la pida :), el caso es que trae ejercicios, y en la guía se usa el programa code blocks para llevarlos a cabo, los ejercicios vienen sin resolver, y en el codeblock soy incapaz de hacer correr el programa me da error de "debug settings" y he mirado los "settings" y nada, será porque no los entiendo :) son ejercicios bastante sencillos de condicionales, pero como no soy capaz de ejecutarlos para ver en qué linea deja de leer y está mal, necesito que alguien me lo corrija. Muchas gracias de antemano, el programita es éste.
Código c:
Ver original
  1. //Haz un programa que lea un carácter desde consola y que le diga
  2. //al usuario si es o no un dígito.
  3.     #include <iostream>
  4.     using namespace std;
  5. int main(){
  6.     int x;
  7.     cout<<'pulsa una tecla';
  8.     cin>> x;
  9.    if (isdigit(int x)=true){
  10.    cout<<'es un número, felicidades, sabes diferenciarlos de las letras!!!';
  11.    }
  12.    else
  13.    cout<<'eso no es un número "so"tonto prueba con una de las siguientes teclas: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0'<<endl;
  14. return 0;
  15. }
*postdata, he querido introducir un pequeño toque de humor al programita. :)
__________________
había una vez un hombre tan sumamente pobre que sólo tenía dinero.
  #5 (permalink)  
Antiguo 01/02/2012, 10:03
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 13 años
Puntos: 25
Respuesta: preguntas generales y ¿qué es disc?

la logica del programa esta bien, pero hay algunos problemitas.

en la linea 9 hay 2. El primero esta en el uso de la funcion isdigit(int), la funcion espera que le pases una variable de tipo int, no se tiene que anteponer el tipo de variable al pasarsela a la funcion, es decir que hay que borrar el int: isdigit(x), lo que hace el compilador es comprobar si x es de tipo entero, si es correcto sigue, si no te dara un error de que el tipo de variable no es el esperado.

En la misma linea, el signo =, este se usa para asignacion, como por ejemplo, cuando le asignas a una variable un valor:

Código C++:
Ver original
  1. int numero;
  2.  
  3. numero= 20; //se le asigna 20 a numero

para realizar comparacion de igualacion se utiliza el operador ==, lo que hace es comparar lo de la izquierda y la derecha, si los 2 son iguales da verdadero, si son distintos da falso.

cambiando todo lo anterior quedaria la linea 9 de la siguiente manera:

Código C++:
Ver original
  1. if (isdigit(x)==true){

otro error es al tratar de escribir en pantalla.Vos utilizar comillas simples ', esto te imprimira numero, otro te podra decir porque, pero yo no :). Para corregirlo tenes que usar comillas dobles para el texto que quieras imprimri "esto es un texto"

otro, en la linea 13 estas tratando de imprimir en pantalla las comillas dobles, pero lo que interpreta el compilador es que ahi termina o comienza otra cadena de texto, por lo que so queda fuera de los textos a imprimir y lo buscara como variable. Para solucionar esto se antepone una barra invertida \ al caracter reservado que se quiere imprimir, quedando de la siguiente manera:

Código C++:
Ver original
  1. cout<<"eso no es un número \"so\"tonto prueba con una de las siguientes teclas: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0"<<endl;


Saludos y si queres mandame la pagina del manual, quiero verlo, porque las guias que nos dio el profesor estan en formato PDF y son demasiado resumidas jeje
  #6 (permalink)  
Antiguo 01/02/2012, 15:15
Avatar de NazcaiN  
Fecha de Ingreso: diciembre-2008
Ubicación: en mi pueblo
Mensajes: 228
Antigüedad: 16 años
Puntos: 8
Respuesta: preguntas generales y ¿qué es disc?

Muchas gracias por todo^^ este es el link de donde me he bajado el curso. bueno, no es ese porque ha sido borrado, pero te he hecho el favor de resubirtelo. de nuevo te doy las gracias.

https://rapidshare.com/files/2525239579/temario.rar

también es en pdf, si quieres algo más extenso léete el turorial que recomienda instru en las faqs de c++ este es el link

http://www.conclase.net/

de nuevo muchas gracias :)
__________________
había una vez un hombre tan sumamente pobre que sólo tenía dinero.
  #7 (permalink)  
Antiguo 01/02/2012, 17:00
Avatar de NazcaiN  
Fecha de Ingreso: diciembre-2008
Ubicación: en mi pueblo
Mensajes: 228
Antigüedad: 16 años
Puntos: 8
Respuesta: preguntas generales y ¿qué es disc?

De nuevo por no hacer otro tema distinto, os dejo otro ejercicio que he hecho, esta vez de do y while. A ver qué nota me ponéis profes ;)
Código c:
Ver original
  1. /*Haz un programa que lea un número real por teclado (>1) y que
  2. lo divida sucesivamente por 2 hasta que el cociente sea menor
  3. que 0.001.
  4. El programa mostrará el resultado de cada división cada 5 pasos.
  5. Al acabar, nos dirá cuántas divisiones ha hecho.
  6. */
  7.  
  8. #includ3e <iostream>
  9. #include namespace std;
  10.  
  11. int main() {
  12.     double numero;
  13.     do {
  14.     cout<< "introduce un número"<<endl;
  15.     cin>>numero>>endl;
  16.     } while (numero<1)
  17.  
  18.     int masuno = 1;
  19.     do
  20.         {   masuno++
  21.             numero/2;
  22.             if (masuno==5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100)
  23.             cout<<masuno<<endl;
  24.         } while (numero<0.001);
  25. cout<<numero<<" "<<masuno<<endl;
  26.  
  27. return 0;
  28. }


de verdad os agradezco mucho que me ayudéis.
postdata: si alguien puede decirme cómo hacer funcionar los programas en code blocks se lo agradecería, ya que me da error debugg settings, he mirado los settings, pero yo no veo na fuera de lo común, quizás porque para mi el menú ese me suena a chino :).
de nuevo muchas gracias.
__________________
había una vez un hombre tan sumamente pobre que sólo tenía dinero.
  #8 (permalink)  
Antiguo 01/02/2012, 17:27
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: preguntas generales y ¿qué es disc?

esto no va ni para adelante ni para atras.
Primero:
cin>>numero>>endl;

el endl esta demas. No se le pasa un endl al cin. El cin es para tomar del teclado.

Te hace falta el punto y coma en el masuno++.

numero/2; se lo tienes que asignar a algo. En este caso a numero: numero = numero/2;

Esto esta empantozo: masuno==5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100

aca tienes que usar el operador modulo o resto "%" que devuelve el resto de la division. Una division es exacta si su resto es cero. En este caso buscamos multiplos de 5 asi que

masuno% 5 == 0

seria la condicion para el if.

Te pide que muestre el resultado de la division asi que en el cout va la variable numero y no masuno..

Eso es todo....sobre codeblock no se que te puede estar pasando.
  #9 (permalink)  
Antiguo 01/02/2012, 17:29
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: preguntas generales y ¿qué es disc?

Lei algo en internet...proba poner el proyecyo en una carpeta cuyo path no tenga espacio. Osea evita nombre compuestos de carpeta..
  #10 (permalink)  
Antiguo 01/02/2012, 18:06
Avatar de NazcaiN  
Fecha de Ingreso: diciembre-2008
Ubicación: en mi pueblo
Mensajes: 228
Antigüedad: 16 años
Puntos: 8
Respuesta: preguntas generales y ¿qué es disc?

Muchísimas gracias!! por las correcciones, lamentablemente, con codeblocks, no ha habido tanta suerte.
ya lo he corregido, pero el masuno del final, a mi parecer es necesario, lo mismo estoy equivocado, pero es que en el enunciado del ejercicio, dice que al final se mostrará el resultado, y hay una parte que no copié, por descuido, que dice que también mostrará el número de divisiones, de ahí que en el cout final lo muestre, y para separar un número de otro he usado " " es correcto, o sería correcto así??
__________________
había una vez un hombre tan sumamente pobre que sólo tenía dinero.
  #11 (permalink)  
Antiguo 01/02/2012, 19:11
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: preguntas generales y ¿qué es disc?

Yo hablaba del que esta dentro del bloque while...ahi dice que tenes que mostrar el resultado de la division.
  #12 (permalink)  
Antiguo 01/02/2012, 22:15
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 13 años
Puntos: 25
Respuesta: preguntas generales y ¿qué es disc?

proba desinstalar e instalar nuevamente el programa, si antes te funcionaba tendria que volver a hacerlo.


otra cosa, en la linea 25 la condicion tendria que ser la contraria numero>0.001, asi sigue hasta que sea menor a este numero
  #13 (permalink)  
Antiguo 02/02/2012, 06:56
Avatar de NazcaiN  
Fecha de Ingreso: diciembre-2008
Ubicación: en mi pueblo
Mensajes: 228
Antigüedad: 16 años
Puntos: 8
Respuesta: preguntas generales y ¿qué es disc?

Cita:
Iniciado por sam90 Ver Mensaje
Yo hablaba del que esta dentro del bloque while...ahi dice que tenes que mostrar el resultado de la division.
Sorry sam90 pero no me entero, podrías monerme la parte del while en código para poder ver a lo que te refieres? y perdona mi torpeza :P
__________________
había una vez un hombre tan sumamente pobre que sólo tenía dinero.
  #14 (permalink)  
Antiguo 02/02/2012, 08:29
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: preguntas generales y ¿qué es disc?

Código C++:
Ver original
  1. do
  2. {  masuno++
  3.     numero = numero/2;
  4.     if (masuno%5 == 0)
  5.         cout<<numero<<endl;
  6. } while (numero>0.001);

El ejercicio dice que mostrara cada cinco divisiones el resultado de la division
  #15 (permalink)  
Antiguo 02/02/2012, 15:39
Avatar de NazcaiN  
Fecha de Ingreso: diciembre-2008
Ubicación: en mi pueblo
Mensajes: 228
Antigüedad: 16 años
Puntos: 8
Respuesta: preguntas generales y ¿qué es disc?

ah vale, error mío, que creí que aprate del número de divisiones, tenía que mostrar el resultado, ahora entiendo lo que dices, que el resultado no se muestra, solo el número de divisones. Muchas gracias ^^


por cierto, nunca me funcionó el code blocks desde que lo instalé, no es que me pasase de la noche al día, es que nunca he podido ejecutar un programa de los que he hecho, y eso es desmotivante, porque no hay cosa mejor, que ver el fruto de tu trabajo, aunque por ahora solo sean programillas para practicar, me encantaría poder ver lo que he hecho, pero no lo consigo y es frustrante. voy a probar a desinstalo y volverlo a instalar, gracias a todos por vuestra ayuda, os lo agradezco de verdad!!!

Por cierto starfix, explícame lo del while, porque yo tenía entendido que al poner do lo que había encerrado en este se hace, mientras while sea el valor asignado, por lo que yo quiero que se haga eso mientras numero sea mayor que 0.001. si me equivoco decídmelo, que estoy aquí para aprender, solo quiero que se me queden claros y bien machaqcados los conceptos :)

postdata: perdón ya lo vi claro confundí los signos, starfix tienes razón

postdata2: ya se donde está el error del codeblocks, la razón es que me lo descargué de softonic, y allí solo está el code blocks normal, y el que hay que descargarse es el que trae el compilador. este mensaje lo lei en la página de codeblock.
"NOTE: The codeblocks-10.05mingw-setup.exe file includes the GCC compiler and GDB debugger from MinGW."
lo pongo por si a alguien más le pasa :)

Perdonad que reedite tantísimas veces, pero creía que el problema de code blocks era ese, pero sigue sin funcionar, me lo he descargado, con el complilador, la versión de los 70 MB, y sigue dándome el mismo error, os lo escribo literalmente, porque es que no puedo más T.T

el error es el siguiente: "the debugger executable is not set"
"to set it, go to settings/Compiler and debugger" switch to "Toolchain executables tab" and selected de debugger program.

no se lo que le pasa a code blocks, porque ahí me da ese error, pero es que si le doy al simbolito del play me dice no está construido, construir ahora? le doy a sí, y ahí se queda que no hace nada, como si nunca le hubiese dado al play. Por favor ayuda!!! lo he estado intentando todo, he cambiado 20 mil opciones, y nada, cierro me dice que se ha cambiado los settings que si quiero guardarlos le doy a si, y al abrirlo, nada, que no he dado con la tecla. please a alguien le ha pasado alguna vez? ayuda!!!
__________________
había una vez un hombre tan sumamente pobre que sólo tenía dinero.

Última edición por NazcaiN; 02/02/2012 a las 17:47 Razón: mira el postdata :)
  #16 (permalink)  
Antiguo 03/02/2012, 07:31
Avatar de NazcaiN  
Fecha de Ingreso: diciembre-2008
Ubicación: en mi pueblo
Mensajes: 228
Antigüedad: 16 años
Puntos: 8
Respuesta: preguntas generales y ¿qué es disc?

después de los ejercicios, me encuentro con esto.
Código c:
Ver original
  1. //Suma de números leídos por teclado.
  2. //Finalizar al dar un número negativo.
  3.  
  4. */aclaración, es solo el cuerpo de do y while para ver la
  5. explicación, se da por hecho que se incluye
  6. dentro del int main, y que antes de este esta escrito el include iostream y e
  7. l using namespace :) */
  8. int num=0, sum=0; // Inicializar
  9.  
  10. 1
  11. do {
  12. sum += num;
  13. cout << "Dime un número: ";
  14. cin >> num;
  15. } while (num>=0);
  16.  
  17. 2
  18. do {
  19. cout << "Dime un número: ";
  20. cin >> num;
  21. if (num>=0) sum += num;
  22. } while (num>=0);
  23.  
  24. 3
  25. do {
  26. cout << "Dime un número: ";
  27. cin >> num;
  28. sum += num;
  29. } while (num>=0);
  30.  
  31. 4
  32. while (num>=0) {
  33. sum += num;
  34. cout << "Dime un número: ";
  35. cin >> num;
  36. cout << "Dime un número: "; }
  37. cin >> num;
  38.  
  39. 5
  40. while (num>=0) {
  41. sum += num;
  42. cout << "Dime un número: ";
  43. cin >> num;
  44. }
  45.  
  46. 6
  47. while (num>=0) {
  48. cout << "Dime un número: ";
  49. cin >> num;
  50. if (num>=0) sum += num;
  51. }
  52.  
  53. 7
  54. while (num>=0) {
  55. cout << "Dime un número: ";
  56. cin >> num;
  57. sum += num;
  58. }
  59.  
  60. //así termina el programa, así que esto es general se aplica al final de todos los //casos anteriores
  61. cout << "La suma es: " << sum << endl;

a esto, tengo varias preguntas:

1
¿Por qué en los cout, no está al final escrito endl;? es porque dentro de do while se pueden omitir? lo pregunto, porque en el último cout de todos, viene escrito, si no hubiese pensado que lo habían omitido como el int main :)

2
si se suman dos números introducidos por teclado y los dos son positivos, no pararía nunca de de ejecutarse, ya que nunca daría negativo ¿verdad? entonces qué sentido tendría hacer algo así? :)

3
si dice que se suman, ¿porqué el +=? ¿no debería de ser +?

Gracias a todos!! y siento daros la lata tanto

postdata, mi mensaje anterior esta reeditado, (lo digo por si no os aparece como no leido) :)
__________________
había una vez un hombre tan sumamente pobre que sólo tenía dinero.
  #17 (permalink)  
Antiguo 03/02/2012, 23:56
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 13 años
Puntos: 25
Respuesta: preguntas generales y ¿qué es disc?

1: el endl no es obligatorio, lo que hace es mover el cursor a la siguiente linea, si no lo pones el cursor queda en el lugar donde termino y se sigue escribiendo ahi. el endl lo vas a poder usar en el cout, nunca en el cin

2: el programa finaliza cuando se ingresa un numero negativo, si vos seguis ingresando numeros positivos no va a terminar solo, fijate que las condiciones son de que los bucles se sigan ejecutando hasta que la variable num sea menor a 0.
Fijate lo que dice la linea 2: "Finalizar al dar un numero negativo"

3: al usar el operador += lo que se hace es, a la variable que se encuentra en la izquierda se le suma el resultado de lo que haya a la derecha. ej:

supongamos que sum vale 13 y se ingresa por teclado 32, almacenando este ultimo en la variable num.
al realizar la siguiente operacion sum+= num (es lo mismo que sum= sum+num), el compilador toma la variable sum y le suma el valor de num, ahora la variable sum pasa a valer 45
  #18 (permalink)  
Antiguo 04/02/2012, 04:05
Avatar de NazcaiN  
Fecha de Ingreso: diciembre-2008
Ubicación: en mi pueblo
Mensajes: 228
Antigüedad: 16 años
Puntos: 8
Respuesta: preguntas generales y ¿qué es disc?

ah vale, que se trata de ir ingresando numero por teclado todo el tiempo, pensaba que era como hasta ahora han sido los ejemplos de los ejercicios, un programa que tenía una finalidad determinada, y se terminaba de ejecutar, cuando llegase a la última línea, pero en este caso se ejecuta siempre hasta que el operador lo pare, ya que siempre te va a estar pidiendo números positivos.

vale, lo del endl ya me está quedando claro, son pequeños matices que quiero llegar a dominar algún día ^^

y sobretodo muchas gracias por el += que eso si que me traía de cabeza :) ahora ya se que es para decir que x = x + x2

muchísimas gracias a todos, estoy aprendiendo muchísimo gracias a vosotros, y aunque para vosotros seguramente sean tonterías, para alguien que acaba de empezar le hacéis un gran favor con estas explicaciones. Muchísimas gracias por las aclaraciones :)
__________________
había una vez un hombre tan sumamente pobre que sólo tenía dinero.

Etiquetas: funcion, preguntas, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:17.