elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ejercicios
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicios  (Leído 4,410 veces)
iAmChapin_

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Ejercicios
« en: 23 Agosto 2015, 20:10 pm »

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ejercicios
« Respuesta #1 en: 23 Agosto 2015, 20:15 pm »

el primero sería en pseudo codigo algo como

Código:
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 Desconectado

Mensajes: 24


Ver Perfil
Re: Ejercicios
« Respuesta #2 en: 23 Agosto 2015, 21:34 pm »

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
Código:
#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
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ejercicios
« Respuesta #3 en: 23 Agosto 2015, 21:47 pm »

vamos por partes

1)

esto es un error

Código:
N = N--;


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.html


3)
Citar
#include <iostream.h>

ls librerías standard C++ no llevan .h
es simplemente
Citar
#include <iostream>

4)
usas las funciones de iostream fuera de su espacio de trabajo, antes de main debes agregar la linea
Código:
using namespace std;

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

Código
  1. int main(){
  2. //todo lo que se haga
  3.  
  4. return 0;
  5. }


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 Desconectado

Mensajes: 19


Ver Perfil
Re: Ejercicios
« Respuesta #4 en: 23 Agosto 2015, 22:34 pm »

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 Desconectado

Mensajes: 24


Ver Perfil
Re: Ejercicios
« Respuesta #5 en: 23 Agosto 2015, 22:44 pm »

Te comparto el código cambiado con todo lo que me dijiste:

Código:
#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 Desconectado

Mensajes: 791


Incluso la "nada" es un "algo"


Ver Perfil WWW
Re: Ejercicios
« Respuesta #6 en: 23 Agosto 2015, 22:53 pm »

Puedes probar con:

Código
  1. cin.get();
En línea

Namasté, criatura.
iAmChapin_

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Ejercicios
« Respuesta #7 en: 23 Agosto 2015, 23:11 pm »

Ensamblando todas las respuestas, el código me queda así:

Código:
#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
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ejercicios
« Respuesta #8 en: 23 Agosto 2015, 23:46 pm »

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 Desconectado

Mensajes: 19


Ver Perfil
Re: Ejercicios
« Respuesta #9 en: 24 Agosto 2015, 00:14 am »

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

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Pantallazos de ejercicios ejercicios 1 y 2 « 1 2 3 »
Ejercicios
soplo 25 97,874 Último mensaje 21 Marzo 2011, 21:15 pm
por hackvj
Ejercicios en C
Ejercicios
soplo 0 64,866 Último mensaje 2 Julio 2004, 00:28 am
por soplo
Ejercicios C++
Ejercicios
soplo 0 91,216 Último mensaje 5 Julio 2004, 06:08 am
por soplo
Ejercicios de ASP
Ejercicios
Cobac 0 17,926 Último mensaje 9 Julio 2004, 07:12 am
por Cobac
Ejercicios PHP
Ejercicios
Azielito 0 45,344 Último mensaje 17 Julio 2004, 10:53 am
por Azielito
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines