Autor
|
Tema: Ejercicios (Leído 4,421 veces)
|
iAmChapin_
Desconectado
Mensajes: 24
|
Hola! He estado navegando por este foro y pues yo estoy iniciando con lo de la programación en C y pues apenas se del tema. Pasa que me encargaron hacer unos ejercicios de programacion pero no se me ocurre una forma de hacerlos debido a como está descrito, aunque creo que las funciones para estos ejercicios que tengo que usar son for o quizas while por como están descritos, se los menciono a continuación: Me doy cuenta que son casi los mismos, solo que al parecer tienen otras operaciones y creo que estan algo asi como a la inversa al parecer. Si sirve de algo, los ejercicios tengo que realizarlos en Borland (porque estoy empezando). Espero puedan darme una mano o una pista de cómo realizarlo, se los agradecería mucho!!
|
|
« Última modificación: 1 Septiembre 2015, 00:50 am por iAmChapin_ »
|
En línea
|
|
|
|
engel lex
|
el primero sería en pseudo codigo algo como resultado = 0 mientras(n mayor que 0){ resultado = resultado mas (1 entre n) disminuir n } el segundo como dices, es prácticamente idéntico, solo que n no se resta, sino que usas otro numero si puedes en lo que avances muestra tus progresos a ver que tal vas Saludos!
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
iAmChapin_
Desconectado
Mensajes: 24
|
Incluire el codigo que tengo programando, mas o menos le entendí y esto hice con la formación y conocimientos de C++ que poseo, lo hice utilizando Borland #include<conio.h> #include <iostream.h>
int N; float resultado = 0;
void main(){
cout << "Ingrese un valor para N: "; cin >> N; cout << endl << endl;
//proceso while (N>0) { resultado = resultado+(1/N); N = N--; cout << "Resultado: " << resultado; }
getch();
} Lo ejecute pero me salieron varios mensajes en pantala de Resultado con el numero cero, como unos 20 Resultados y todos con numero 0, pero al final me tiro un numero 1
|
|
|
En línea
|
|
|
|
engel lex
|
vamos por partes 1) esto es un error N-- va a tomar N y despues de lo que haga le restará 1... allí creas un bug, ya que N es igual a viejo N, a N le restas 1, luego le asignas el viejo N a N... y bueno N termina sin cambiar... 2) procura no usar conio... lee esto https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html3) #include <iostream.h> ls librerías standard C++ no llevan .h es simplemente #include <iostream> 4) usas las funciones de iostream fuera de su espacio de trabajo, antes de main debes agregar la linea 5) no declares variables globales (fuera del main) sin necesidad 6) C++ cuando hace operaciones retorna el resultado del mismo tipo de los operadores, es decir 1 es entero, 1/2, es un entero entre un entero, así que el resultado será 0 (no hay redondeo, sino truncamiento), debes hacer (1.0/N), ya que 1.0 es float y el resultado será retornado como tal 7) "main" siempre debe ser tipo int y debe tener al final siempre un return, normalmente 0 int main(){ //todo lo que se haga return 0; }
es increible que con todo eso te haya compilado... D:
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Mientras
Desconectado
Mensajes: 19
|
En el caso del denominador verás que si es par se resta la fracción, y si es impar se suma. Entonces puedes usar % para sacar el resto y poder determinar si es par o impar. Por ejemplo:
si n%2==1 entonces es impar
|
|
« Última modificación: 24 Agosto 2015, 00:26 am por Mientras »
|
En línea
|
|
|
|
iAmChapin_
Desconectado
Mensajes: 24
|
Te comparto el código cambiado con todo lo que me dijiste: #include <iostream> #include <conio> using namespace std;
int main(){
cout << "Ingrese un valor para N: "; cin >> N; cout << endl << endl;
int contador; int N; float resultado = 0;
//proceso while (N>0) {
resultado = resultado+(1.0/N); contador = N--; cout << "Resultado: " << resultado; }
getch(); return 0;
} A la hora de compilarlo me indica el error Namespace name expected, indicando la linea de error de using namespace std, y pues utilizo el conio porque se supone que esa libreria me enseñaron para utilizar getch(), que es un teclazo para que se termine el programa, podrias enseñarme otra forma de utilizar getch() o una funcion parecida porfavor?
|
|
|
En línea
|
|
|
|
Br1ant
Desconectado
Mensajes: 791
Incluso la "nada" es un "algo"
|
Puedes probar con: cin.get();
|
|
|
En línea
|
Namasté, criatura.
|
|
|
iAmChapin_
Desconectado
Mensajes: 24
|
Ensamblando todas las respuestas, el código me queda así: #include <iostream> using namespace std;
int main(){
int N;
cout << "Ingrese un valor para N: "; cin >> N; cout << endl << endl;
int contador; float resultado = 0; //proceso while (N>0) { if (N%1==1) { resultado = resultado+(1.0/N); contador = N--; cout << "Resultado: " << resultado; } else { resultado = resultado-(1.0/N); contador = N--; cout << "Resultado: " << resultado; } }
cin.get(); return 0;
} Y me da con los siguientes errores o avisos: Lamento que lidien con esto, y la verdad es tengo muchas ganas de entrarle al tema porque me interesa!
|
|
|
En línea
|
|
|
|
engel lex
|
que rayos es N%1==1? eso está mal para cualquier caso
N-- no necesita comparación es simplemente N-- y listo...
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Mientras
Desconectado
Mensajes: 19
|
Dice que la condición siempre es falsa " N%1==1 "y tiene razón. Me había equivocado, es N%2==1
Si quieres hacer N = N - 1 lo otra forma es N--
Si vas a poner N--; cout << "Resultado: " << resultado;
dentro del IF en caso sea cierto y dentro del caso sea falso, lo más adecuado es que lo pongas fuera del IF.
|
|
« Última modificación: 24 Agosto 2015, 00:22 am por Mientras »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Pantallazos de ejercicios ejercicios 1 y 2
« 1 2 3 »
Ejercicios
|
soplo
|
25
|
97,891
|
21 Marzo 2011, 21:15 pm
por hackvj
|
|
|
Ejercicios en C
Ejercicios
|
soplo
|
0
|
64,870
|
2 Julio 2004, 00:28 am
por soplo
|
|
|
Ejercicios C++
Ejercicios
|
soplo
|
0
|
91,219
|
5 Julio 2004, 06:08 am
por soplo
|
|
|
Ejercicios de ASP
Ejercicios
|
Cobac
|
0
|
17,930
|
9 Julio 2004, 07:12 am
por Cobac
|
|
|
Ejercicios PHP
Ejercicios
|
Azielito
|
0
|
45,348
|
17 Julio 2004, 10:53 am
por Azielito
|
|