Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Xenock en 23 Abril 2021, 22:52 pm



Título: No Imprime el las opciones del programa, La actividad consiste en programar 2 opciones, la A y la B.
Publicado por: Xenock en 23 Abril 2021, 22:52 pm
La opciones que tengo que programar es A y B. La A tiene que imprimir en pantalla una escala del 100-500 con numeros pares. Y la B con impares

Código:
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()

{
int num1,num2,suma1,suma2,contador1,contador2;
char a,b,c;

num1 = 100;
num2 = 101;
suma1 = contador1 = 0;
suma2 = contador2 = 0;

do{
cout<<"Seleccione la opcion"<<endl;
cout<<"1. Numeros Pares \n";
cout<<"2.  Numeros Impares \n";
cin>>a;

switch (a)
{
case 1:
cout<<"Seleciono la opcion 1: \n";
if(num1<=498){
for(num1;num1<500;num1+=2){
suma1 = suma1 + num1;
contador1 = contador1 + 1;
cout<<num1<<",";}

cout<<"Selecionaste Numeros Pares."<<suma1<<endl;
}
break;

case 2:
cout<<"Seleciono la opcion 2: \n";
if(num2<=499){

for(num2;num2<500;num2+=2){

suma2 = suma2 + num2;
contador2 = contador2 + 1;
cout<<num2<<",";}

cout<<"Selecionaste Numeros Impares."<<suma2<<endl;

}
break;
}
}while(num1<0||num1>500,num2<0||num2>500);





system("PAUSE");
return 0;
}



Código:
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()

{
int num1,num2,suma1,contador1,r1,r2;
char a,b,c,opciones;

num1 = 100;
num2 = 101;
suma1 = contador1 = 0;


cout<<"Seleccione la opcion"<<endl;
cout<<"1.Numeros Pares \n";
cout<<"2.Numeros Impares \n";
cin>>opciones;

switch (opciones)
{
case 1:

if(num1<=498){

for(num1;num1<500;num1+=2){
suma1 = suma1 + num1;
contador1 = contador1 + 1;
cout<<num1<<",";

}

}
break;

case 2:

if(num2<=499){

for(num2;num2<500;num2+=2){

suma1 = suma1 + num2;
contador1 = contador1 + 1;
cout<<num2<<",";

}


}
break;
}

cout<<"La opcion que tomaste fue: "<<r1<<endl;
cout<<"Y el total hasta 500 de forma pas o impar es: "<<r2<<endl;

system("PAUSE");
return 0;
}

Aca esta lo arregle un poco pero no me sigue imprimiendo



Esto es lo definitivo me ayudaria mucho si me pueden decir como hago que se imprima ne pantalla la escala de numeros pares o impares

Código:
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()

{
int num,r,par,meta,final;
char opciones;

meta=500;

cout<<"Seleccione la opcion"<<endl;
cout<<"1.Numeros Pares \n";
cout<<"2.Numeros Impares \n";
cin>>opciones;

switch (opciones)
{
case 1:
if(num<=498){

for(int num=100;num<=meta;num+=2){
num = num + 2;
cout<<num<<".";
}
}
break;

case 2:
if(num<=499){

for(int num=101;num<=meta;num+=2){
num = num + 2;
cout<<num<<".";
}
}
break;
}



system("PAUSE");
return 0;
}



Luego de miles de intentos y errores me salio por fin como queria el programa
Código:
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{

cout<<"Opcion a o b: ";
int num,meta = 500;
char opcion;
cin>>opcion;

switch(opcion)
{
case 'a': cout<<"Usted a Seleccionado la opcion de numeros pares: \n";
if(num<=498){

for(int num=100;num<=meta;num+=2){
num = num + 0;
cout<<num<<".";
}
}

break;
case 'b': cout<<"Usted a Seleccionado la opcion de numeros impares: \n";
if(num<=498){

for(int num=101;num<=meta;num+=2){
num = num + 0;
cout<<num<<".";
}
}
break;

default: cout<<"Usted a ingresado una opcion incorrecta \n";


}
system("PAUSE");
return 0;
}


Título: Re: No Imprime el las opciones del programa, La actividad consiste en programar 2 opciones, la A y la B.
Publicado por: WHK en 24 Abril 2021, 03:36 am
Hola, tu código es redundante, tienes bloques muy similares para distintas operaciones, mejor encierralas en una sola función, por ejemplo, una que diga que si el valor es par o impar y luego haces un for de 100 a 500 y según el caso vas viendo si imrpime el resultado o no según la opción elegida. a demás, vas a tener problemas de escalabilidad, si despues te piden ingresar un tercer tipo de resultado tendrás que crear mas condicionales con otros tipos de for, por ejemplo, para saber si es primo o no, asi que siempre es mejor hacer una validación, por ejemplo bool isPar(int val){ return val % 2 == 0; }

Recuerda que en una tarea no siempre van a medir si la función cumplió el resultado o no, sino también que esté bien escrito con sus buenas prácticas.

Saludos.


Título: Re: No Imprime el las opciones del programa, La actividad consiste en programar 2 opciones, la A y la B.
Publicado por: Serapis en 24 Abril 2021, 20:15 pm
Los bucles for de tu versión penúltima te han fallado, porque tienes un error semántivo, que mantienes en la versión final.

Citar
                       for(int num=100;num<=meta;num+=2){
               num = num + 2;
               cout<<num<<".";
            }         
         ...
            for(int num=101;num<=meta;num+=2){
               num = num + 2;
               cout<<num<<".";
            }
Las líneas marcadas en rojo, sobran, porque los bucles 'for' se marca su incremento o decremento en su propia declaración (resalte en azul).


En tu versión final todavía lo mantienes... solo has cambiado el valor de +2 a +0. Fabuloso.
Citar
              for(int num=100;num<=meta;num+=2){
               num = num + 0;
               cout<<num<<".";
            }
                          ...
            for(int num=101;num<=meta;num+=2){
               num = num + 0;
               cout<<num<<".";
            }
Si mantienes esas líneas en rojo, en tu código es una declaración explícita de que no terminas de entiender como funciona un bucle for... y que te has limitado a cambiar cosas 'a ver... si así funciona...'