Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zadatak-transformisanje broja u tekst

[es] :: C/C++ programiranje :: C/C++ za početnike :: Zadatak-transformisanje broja u tekst

[ Pregleda: 1409 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

milkinizz
Milka Aleksic
Kragujevac

Član broj: 70242
Poruke: 18
*.dynamic.sbb.rs.



Profil

icon Zadatak-transformisanje broja u tekst20.05.2009. u 11:01 - pre 181 meseci
Ljudi, zadatak glasi:
Upotrebom klase class transform napisati program sa opcijama u main f-ji:

Code:

class transform {
public:
         transform (double 0.00);
         friend char *text(transform x);
private:
         double x;
}

main() {
        transform x(-12.45);
        
        char *p=text(x); //p="minus jedan dva tacka cetiri pet"
        printf("%s\n",p);
        delete(p);

        transform y=x;
}


Posto sam pocetnik u ovome i ne znam puno ali po nekoj mojoj logici i nekim zadacima ja sam uradila zadatak ali kompajler za sada javlja 3 greske. Oznacicu ih crveno da bi bilo odmah jasno gde su a vi ako mozete pomagajte.
 
Odgovor na temu

milkinizz
Milka Aleksic
Kragujevac

Član broj: 70242
Poruke: 18
*.dynamic.sbb.rs.



Profil

icon Re: Zadatak-transformisanje broja u tekst20.05.2009. u 11:18 - pre 181 meseci
Code:

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <math.h>

char *cifre[]={"nula","jedan","dva","tri","cetiri","pet","sest","sedam",
           "osam","devet","deset","tacka"};
char znak[]="minus";

class transform
{
  public:
    transform(double=0.0);
    transform(transform&);
    friend char *text(transform);
  private:
    double broj;

  char *text(transform x)
  {
    char *rezultat=NULL;
    double skala;
    int ukupnaduzzapisa=0;
    char skladiste[500];//privremeni zapis
    char strzapis[100];//prvo belez. string pa ga smest. sa desna
    int pomdec,cifra;   //da uklonimo eventualne nule
    //ako je broj<0
    double broj=x.broj;
    int dec=10;   //broj decimala
    zapis=strzapis;
    if(br<0.0)
    {
[red]for(int prolaz=0;*(znak+prolaz);prolaz++,ukupnaduzzapisa++)  [/red]  //not inline
      {skladiste[ukupnaduzzapisa]=znak[prolaz];
      br=-br;}
    }
    pomdec=dec;
    skala=2.0;
    while (pomdec--) skala*=10.0;
    br+=1.0/skala;//na broj dodata greska na planiran. decimali sa ulaza
    pomdec=0;     //broji broj cifara pre dec. tacke
    skala=1.0; //1.0 jer se tada uzima da je bas pokretni zarez
    while (br>=skala)
    {
      skala*=10.0;
      pomdec++;
    }
    if (pomdec==0) *zapis++='0';//kada je samo 0 pre dec. tacke
    //ovaj deo formira cifre pre dec. tacke
    while (pomdec==)
    {
      skala=floor(0.5+skala*0.1); //floor je ceo deo
      cifra=(int)(br/skala);
      *zapis++=cifra+'0';
      br-=(double)cifra*skala;
    }
    if (dec<=0)
    {
      *zapis=0;
      return NULL;
    }
    //tacka
    *zapis++='.';
    while (dec--)
    {
       br*=10.0;
       cifra=(int)br;
       *zapis++=cifra+'0';
       br-=cifra;
    }
    while (*(zapis-1)=='0') zapiz--;
    *zapis=0;

    for (int j=0;*(strzapis+j);j++)
      if ((*strzapis+j) !='-') && (*(strzapis+j) != '.'))
     for(int prolaz=0;*(cifra[*(strzapis+j)-'0']+prolaz;prolaz++,ukupnaduzzapisa++)
        skladiste[ukupnaduzzapisa]=*(cifre[*(strzapis+j)-'0']+prolaz;
     else
     if(*(strzapis+j)=='.')
       for(int prolaz=0;*(cifre[10]+prolaz);prolaz++,ukupnaduzzapisa++)
        skladiste[ukupnaduzzapisa]=*(cifre[10]+prolaz);
     ukupnaduzzapisa--;
     skaldiste[ukupnaduzzapisa]='\0';

     rezultat=new char[strlen(skladiste)+1];
     strcpy(rezultat,skladiste);
    return rezultat;
}

 [red]  transform::transform(double br) : broj(br) {}      //ne prihvata ovako
          transform::transform(transform &drugi) : broj(drugi.broj) {} [/red]

int main()
{
   transform x(-12.45);
   char *p=text(x);
   printf("%s\n",p);
   delete p;
   transform y=x;
   system("PAUSE");
   return 0;
}




Pomoc :-(
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Zadatak-transformisanje broja u tekst

[ Pregleda: 1409 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.