Jump to content

Recommended Posts

Posted

Am lucrat la un programel care converteste un nr din baza 10 in baza aleasa de tine. Vreau sa aud pareri.

#include<stdio.h>
using namespace std;
unsigned int n,N,a,b,Baza,cop,i,j;
int main()
{
    printf("n="); scanf("%d",&n); printf("Baza="); scanf("%d",&Baza);
    while(n>9999)
    {
        printf("n="); scanf("%d",&n);
    }
    cop=n;
    while(Baza<2)
    {
        printf("Baza="); scanf("%d",&Baza);
    }
    while(n!=0)
    {
        a=n%Baza;
        if(n%Baza==0) i++;
        N=N*10+a;
        n/=Baza;
    }

    while(N>0)
    {
        b=N%10;
        printf("%d",b);
        N/=10;

    }
    while(i!=0)
    {
        if(cop%Baza==0)
        {
            printf("%d",cop%Baza);
            i--;
        }

        while(N!=0)
        {
            N/=10;
            i--;
        }

    }
    return 0;
}

Respecta si vei fi respectat.

Posted

Defapt problema era tema pentru acasa si nr trebuia sa aiba maxim 4 cifre. Iar baza daca era 0, da eroare(asta nu facea din cerinta ci am observat accidental).

De exemplu tu introduci n 10000 iti va aparea "n=" pana cand n<=9999.


Sa explic cum functioneaza:

1.Citeste nr si baza.

2.Imparte nr la baza si ia restul si-l aduna la N care la inceput N=0 cat timp n este diferit de 0.

3.Iese un nr care este scris invers fata de nr in baza respectiva si trebuie inversat.

4.La inversare zerourile care nu se afla cuprinse intre doua cifre mai mari sau egale cu 1 se pierd si de asta se face un programel care sa adauge la final zerourile pierdute.

Respecta si vei fi respectat.

  • 3 weeks later...
Posted

Am reusit sa fac un algoritm mai eficient si probabil o sa-l fac sa mearga pentru baze mai mari de 9.

Faza e ca o sa-l tin secret.

Respecta si vei fi respectat.

  • Moderators
Posted

Am reusit sa fac un algoritm mai eficient si probabil o sa-l fac sa mearga pentru baze mai mari de 9.

Faza e ca o sa-l tin secret.

 

Ahahahaha =))

 

la fel cum a spus si goh.

  • Moderators
Posted

Mnoah, greu ._. Tare greu..

#include <iostream>
using namespace std;
int main()
{
    int x,y,z[99],i=0;
    double a;
    cout<<"Baza="; cin>>y;
    cout<<"Numar="; cin>>x;
    while (x)
    {
        a=(x%y);
        z[i]=a;
        i++;
        x=x/y;
    }
    for (i--;i>-1;i--)
        if (z[i]<10)
            cout<<z[i];
        else
            cout<<char(z[i]-10+'a');
    return 0;
}
Posted

E bun dar al meu merge pana la baza 60. La tine merge cum trebuie pana la 35.

Tre sa recunosc ca te pricepi in programare poate combinam cele doua programe :)).

#include<iostream>
using namespace std;
unsigned long n,N,Baza,r,q,i,j=1;
char v[300];
int main()
{
    while(j>0)
    {
        cout<<"Number="; cin>>n; N=n;
        while(Baza<2||Baza==10||Baza>64)
        {
            cout<<"Base="; cin>>Baza;
        }
        while(n!=0)
        {
            ++q;
            n/=Baza;
        }
        for(i=1;i<=q;++i)
        {
            r=N%Baza;
            switch(r)
            {
                case 0: v[i]=48; break;                case 1: v[i]=49; break;
                case 2: v[i]=50; break;                case 3: v[i]=51; break;
                case 4: v[i]=52; break;                case 5: v[i]=53; break;
                case 6: v[i]=54; break;                case 7: v[i]=55; break;
                case 8: v[i]=56; break;                case 9: v[i]=57; break;
                case 10: v[i]=65; break;               case 11: v[i]=66; break;
                case 12: v[i]=67; break;               case 13: v[i]=68; break;
                case 14: v[i]=69; break;               case 15: v[i]=70; break;
                case 16: v[i]=71; break;               case 17: v[i]=72; break;
                case 18: v[i]=73; break;               case 19: v[i]=74; break;
                case 20: v[i]=75; break;               case 21: v[i]=76; break;
                case 22: v[i]=77; break;               case 23: v[i]=78; break;
                case 24: v[i]=79; break;               case 25: v[i]=80; break;
                case 26: v[i]=81; break;               case 27: v[i]=82; break;
                case 28: v[i]=83; break;               case 29: v[i]=84; break;
                case 30: v[i]=85; break;               case 31: v[i]=86; break;
                case 32: v[i]=87; break;               case 33: v[i]=88; break;
                case 34: v[i]=89; break;               case 35: v[i]=90; break;                
                case 36: v[i]=97; break;               case 37: v[i]=98; break;
                case 38: v[i]=99; break;               case 39: v[i]=100; break;
                case 40: v[i]=101; break;              case 41: v[i]=102; break;
                case 42: v[i]=103; break;              case 43: v[i]=104; break;
                case 44: v[i]=105; break;              case 45: v[i]=106; break;
                case 46: v[i]=107; break;              case 47: v[i]=108; break;
                case 48: v[i]=109; break;              case 49: v[i]=110; break;
                case 50: v[i]=111; break;              case 51: v[i]=112; break;
                case 52: v[i]=113; break;              case 53: v[i]=114; break;
                case 54: v[i]=115; break;              case 55: v[i]=116; break;
                case 56: v[i]=117; break;              case 57: v[i]=118; break;
                case 58: v[i]=119; break;              case 59: v[i]=120; break;
                case 60: v[i]=121; break;              case 61: v[i]=122; break;
                case 62: v[i]=37; break;               case 63: v[i]=38; break;
            }
            N/=Baza;
        }
        cout<<"Number in base "<<Baza<<" = ";
        for(i=q;i>0;--i)
             cout<<v[i];    
        cout<<'\n'<<'\n';
        q=0;
        Baza=0;
    }
    system("pause");
    return 0;
}

L-am facut in engleza de nebun :)

L-am simplificat si acum nu mai are switch ci if si in loc de 69 de randuri are 42. Dar acum face aceelas lucru.

Respecta si vei fi respectat.

  • Moderators
Posted

E bun dar al meu merge pana la baza 60. La tine merge cum trebuie pana la 35.

Codul acela e gasit pe internet si modificat de mine.

Posted

Eu lucrez in Dev-C++ si trebuie sa scriu codul respectiv ca altfel dupa ce executa toti pasi se opreste fara sa afiseze raspunsul. Eu lucrez cu Dev-C++ pentru ca poate face fisiere .exe

Respecta si vei fi respectat.

Posted

da care nu face fisiere .exe? 

 

 

app, a "posta munca ta pe 0" inseamna sa primesti comentarii care sa te ajute sa inveti cum sa faci lucrurile mai bine.

Tu la randul tau ai invatat si vei invata pentru ca altii au "postat munca lor pe 0". 

 

Cel mai probabil ai un windows piratat, multe softuri piratate sau free.. mi se pare foarte ciudat sa zici asta.

love is a verb
Love is a doing word

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.