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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


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

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Reducir líneas de código
« en: 4 Abril 2015, 21:31 pm »

Hola,
Hice un programa que lo que hace es: convertir uno o más números en base 10 a base X (decisión del usuario), y que cuando se ingrese un numero negativo, tanto en el dividendo como en el divisor, éste se detenga.
El programa funciona correctamente, lo único es que hay bastantes líneas repetidas que podrían eliminarse, pero no se como.
Para evitar que se repita tantas veces lo mismo, hice un subprograma (función):
Código:
int cuenta(int a){
   int i,num;
   for(i=0;i<a;i++){
      num=16-i;
      cifra(r(num)); // acá quisiera que r(num) llame a las variables r16 hasta r1 (de acuerdo a lo que se haya ingresado en el parámetro de la función "cuenta"
   }
}
Subo el archivo C++, ahí lo expliqué mejor y es más fácil de comprender ya que pueden ver las funciones y lo que quiero reemplazar.
Saludos


« Última modificación: 4 Abril 2015, 21:35 pm por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Reducir líneas de código
« Respuesta #1 en: 4 Abril 2015, 21:44 pm »

primero, te recomiendo trabajar en un char de 16 espacios en lugar de 16 variables separadas...

segundo... para no hacer tanto desastre, sabemos que los numeros son del char 48 al char 57 y las letras minusculas 97 al 122.. entonces...

Código
  1. char resultado [16];
  2. while...
  3. //el proceso
  4. if(proceso<10){
  5.  resultado[vuelta]=48+proceso;
  6. }else if(resultado<36){
  7.  resultado[vuelta]=97+proceso;
  8. }else{
  9.  resultado[vuelta]='?';//un numero más grande del que trabajas
  10. }
  11.  


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

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Reducir líneas de código
« Respuesta #2 en: 7 Abril 2015, 20:04 pm »

Muchas gracias engel lex, lo que respondiste me sirvió mucho, me abriste una nueva puerta al mostrarme vectores, se me facilitaron muchas cosas al aprender ése método.
Reduje muchísimo el código del programa.
Código:
#include <iostream>
#include <cstdlib>
using namespace std;

int cifra(int a){
    if(a<10){
        cout<<a;
    } else {
        a=a+87;
        cout<<(char)a;
    }
}

int main()
{
    system("color A");
    system("mode con: cols=100 lines=36");
    int num,div,resto,coc,cont,cont1,valor,res[40];
    bool funciona=true;
  while(funciona==true){
        cont=0;
        cout<<"Ingrese el numero decimal que desea convertir: ";
        cin>>num;
        if(num<0){
            funciona=false;
        } else {
            do {
                cout<<"Ingrese la nueva base: ";
                cin>>div;
                if(div<0){
                    funciona=false;
                }
            } while(div==0 || div==1);
            if(funciona==true){
                while(num!=0){
                    cont++;
                    coc=num/div;
                    resto=num%div;
                    num=coc;
                    res[cont]=resto;
                }
                cont1=cont;
                for(valor=cont1;valor>=1;valor--){
                    cont=valor;
                    cifra(res[cont]);
                }
                cout<<" en base "<<div<<endl;
            }
        }
    }
    return 0;
}

Saludos
« Última modificación: 7 Abril 2015, 20:06 pm por rarrav26 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ahorrar lineas de codigo
Programación C/C++
m@o_614 4 3,254 Último mensaje 27 Junio 2013, 03:23 am
por rir3760
AYUDA Agilizar y reducir código. VB.NET Framework 4.5
.NET (C#, VB.NET, ASP)
Torvic98 2 2,289 Último mensaje 3 Mayo 2014, 02:51 am
por Eleкtro
REDUCIR CÓDIGO.NET
.NET (C#, VB.NET, ASP)
rochro 1 2,071 Último mensaje 8 Julio 2014, 09:04 am
por Eleкtro
Las 11 líneas de código y la ira de un programador que casi acaban con Internet
Noticias
wolfbcn 1 1,624 Último mensaje 5 Abril 2016, 14:07 pm
por RevolucionVegana
Líneas de código de un programa
Dudas Generales
Rnovatis 3 2,434 Último mensaje 25 Marzo 2017, 19:32 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines