Výsledky 1 až 12 z 12

Téma: [C++ Builder] Podmínka while

  1. #1
    Senior Member Avatar uživatele pYr0
    Založen
    15.03.2003
    Bydliště
    Senica-Záhorie
    Věk
    36
    Příspěvky
    985
    Vliv
    281

    Standardní [C++ Builder] Podmínka while

    Zdravím. Nevíte kde mám chybu v podmínke Aj ked v editačních poliach nechám 0 alebo prázdne aj tak sa my príkazi pod nou, resp. v nej vykonajú a samozrejme sa to zbortí Dík za odpovede.

    Unit1.cpp

    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    TSpotreba::TSpotreba(double SSpalene_litre, double DDlzka_cesty, double VVisledok)
    { Spalene_litre = SSpalene_litre;
    Dlzka_cesty = DDlzka_cesty;
    Visledok = VVisledok;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    { TSpotreba *Vypocet;
    while (Edit1->Text, Edit2->Text != "0", "" )

    Vypocet = new TSpotreba(Edit1->Text.ToDouble(), Edit2->Text.ToDouble(),
    (Edit1->Text.ToDouble() / Edit2->Text.ToDouble()) *100);
    Edit3->Text = FloatToStr(Vypocet->Visledok);

    ShowMessage("Priemerná spotreba paliva na 100 kilometrov je " + FloatToStr(Vypocet->Visledok) + " litrov.");

    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Konec1Click(TObject *Sender)
    {
    Application->Terminate();
    }
    //---------------------------------------------------------------------------

    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    Edit3->Clear();
    } A hlavičkový

    class TForm1 : public TForm
    {
    __published: // IDE-managed Components
    TEdit *Edit1;
    TEdit *Edit2;
    TEdit *Edit3;
    TButton *Button1;
    TLabel *Label1;
    TLabel *Label2;
    TLabel *Label3;
    TMainMenu *MainMenu1;
    TMenuItem *Monosti1;
    TMenuItem *Konec1;
    TMenuItem *Oprograme1;
    TButton *Button2;
    void __fastcall Button1Click(TObject *Sender);
    void __fastcall Oprograme1Click(TObject *Sender);
    void __fastcall Konec1Click(TObject *Sender);
    void __fastcall Button2Click(TObject *Sender);
    private: // User declarations
    public: // User declarations
    __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    class TSpotreba
    {
    public:
    double Spalene_litre, Dlzka_cesty, Visledok;
    TSpotreba(double SSpalene_litre, double DDlzka_cesty, double VVisledok);
    };
    #endif
    X2 6000+@3420Mhz(228x15)1.45V,BOX+Windtunnel,MSI K9A2 Platinium V2, 2x2GB A-DATA Vitesta 4-4-4-12, Gainward 4870 790/1063, Corsair 750W TXEU
    Acer Travelmate 4102WLMi: Centrino 1.73Ghz, 1.25GB RAM, ATI X700, 120GB Samsung, Debian lenny

  2. #2
    Senior Member Avatar uživatele pYr0
    Založen
    15.03.2003
    Bydliště
    Senica-Záhorie
    Věk
    36
    Příspěvky
    985
    Vliv
    281

    Standardní

    Jinak sorry že sem to sem tak blbo dal a je to trocha neprehladné
    X2 6000+@3420Mhz(228x15)1.45V,BOX+Windtunnel,MSI K9A2 Platinium V2, 2x2GB A-DATA Vitesta 4-4-4-12, Gainward 4870 790/1063, Corsair 750W TXEU
    Acer Travelmate 4102WLMi: Centrino 1.73Ghz, 1.25GB RAM, ATI X700, 120GB Samsung, Debian lenny

  3. #3
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    298

    Standardní

    Citace Původně odeslal Pyroteam
    Jinak sorry že sem to sem tak blbo dal a je to trocha neprehladné
    pouzij znacku [_code_] [_/code_](samo bez podtrzitek), hned to bude prehlednejsi..
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  4. #4
    Senior Member Avatar uživatele pYr0
    Založen
    15.03.2003
    Bydliště
    Senica-Záhorie
    Věk
    36
    Příspěvky
    985
    Vliv
    281

    Standardní

    Kód:
    class TForm1 : public TForm 
    { 
    __published: // IDE-managed Components 
    TEdit *Edit1; 
    TEdit *Edit2; 
    TEdit *Edit3; 
    TButton *Button1; 
    TLabel *Label1; 
    TLabel *Label2; 
    TLabel *Label3; 
    TMainMenu *MainMenu1; 
    TMenuItem *Monosti1; 
    TMenuItem *Konec1; 
    TMenuItem *Oprograme1; 
    TButton *Button2; 
    void __fastcall Button1Click(TObject *Sender); 
    void __fastcall Oprograme1Click(TObject *Sender); 
    void __fastcall Konec1Click(TObject *Sender); 
    void __fastcall Button2Click(TObject *Sender); 
    private: // User declarations 
    public: // User declarations 
    __fastcall TForm1(TComponent* Owner); 
    }; 
    //--------------------------------------------------------------------------- 
    extern PACKAGE TForm1 *Form1; 
    //--------------------------------------------------------------------------- 
    class TSpotreba 
    { 
    public: 
    double Spalene_litre, Dlzka_cesty, Visledok; 
    TSpotreba(double SSpalene_litre, double DDlzka_cesty, double VVisledok); 
    }; 
    #endif 
    
    Unit1.cpp 
    
    __fastcall TForm1::TForm1(TComponent* Owner) 
    : TForm(Owner) 
    { 
    } 
    //--------------------------------------------------------------------------- 
    TSpotreba::TSpotreba(double SSpalene_litre, double DDlzka_cesty, double VVisledok) 
    { Spalene_litre = SSpalene_litre; 
    Dlzka_cesty = DDlzka_cesty; 
    Visledok = VVisledok; 
    } 
    //--------------------------------------------------------------------------- 
    void __fastcall TForm1::Button1Click(TObject *Sender) 
    { TSpotreba *Vypocet; 
    while (Edit1->Text, Edit2->Text != "0", "" ) 
    
    Vypocet = new TSpotreba(Edit1->Text.ToDouble(), Edit2->Text.ToDouble(), 
    (Edit1->Text.ToDouble() / Edit2->Text.ToDouble()) *100); 
    Edit3->Text = FloatToStr(Vypocet->Visledok); 
    
    ShowMessage("Priemerná spotreba paliva na 100 kilometrov je " + FloatToStr(Vypocet->Visledok) + " litrov."); 
    
    } 
    //--------------------------------------------------------------------------- 
    void __fastcall TForm1::Konec1Click(TObject *Sender) 
    { 
    Application->Terminate(); 
    } 
    //--------------------------------------------------------------------------- 
    
    void __fastcall TForm1::Button2Click(TObject *Sender) 
    { 
    Edit3->Clear(); 
    }
    X2 6000+@3420Mhz(228x15)1.45V,BOX+Windtunnel,MSI K9A2 Platinium V2, 2x2GB A-DATA Vitesta 4-4-4-12, Gainward 4870 790/1063, Corsair 750W TXEU
    Acer Travelmate 4102WLMi: Centrino 1.73Ghz, 1.25GB RAM, ATI X700, 120GB Samsung, Debian lenny

  5. #5
    Senior Member Avatar uživatele pYr0
    Založen
    15.03.2003
    Bydliště
    Senica-Záhorie
    Věk
    36
    Příspěvky
    985
    Vliv
    281

    Standardní

    Inak musím podotknúť že While my nefunguje v dalších mojich aplikaciach
    X2 6000+@3420Mhz(228x15)1.45V,BOX+Windtunnel,MSI K9A2 Platinium V2, 2x2GB A-DATA Vitesta 4-4-4-12, Gainward 4870 790/1063, Corsair 750W TXEU
    Acer Travelmate 4102WLMi: Centrino 1.73Ghz, 1.25GB RAM, ATI X700, 120GB Samsung, Debian lenny

  6. #6

    Standardní

    Nejsem sice nijakej programátor v C++ (bohužel), ale myslím, že problém bude tady:
    Kód:
    while (Edit1->Text, Edit2->Text != "0", "" )
    ty čárky tam IMHO nemají co dělat
    -- under construction --

  7. #7

    Standardní

    Presne - su tam popisane nejake blbosti. Co ma akoze robit ten riadok s tym while
    Takto by som to pochopil:
    Kód:
    while (Edit2->Text != "0")
    Alebo takto:
    Kód:
    while (Edit1->Text !=  "0" && Edit2->Text != "0")
    Alebo takto:
    Kód:
    while (Edit1->Text !=  "0" && Edit2->Text != "0" && Edit1->Text !=  "" && Edit2->Text != "")
    BTW.: Tam sa daju retazce porovnavat cez == a != V cecku nie som ziadny expert, ale vzdy som to robil cez funkciu strcmp a pod.
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  8. #8
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    322

    Standardní

    Přesně, ty čárky tam nepatří! Řetězce by měly jít takhle porovnat. Alespoň třeba v C++ s použitím MFC CString nebo wxWindows wxString to tak jde (u MFC to nevím na 100%), ale u wxString je to na 100% - porovnávací operátory pro třídu wxString. Takže Borland zavedl asi něco podobného (stejného). Jinak v Céčku se to dá jen přes strcmp (stricmp).
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  9. #9
    Senior Member Avatar uživatele pYr0
    Založen
    15.03.2003
    Bydliště
    Senica-Záhorie
    Věk
    36
    Příspěvky
    985
    Vliv
    281

    Standardní

    No ja neviem Doteraz som robil pomocou if, a while som nikdy nepotreboval Inak mám to ošetrené pomocou try-catch, len som chcel vedieť prečo to nešlo
    X2 6000+@3420Mhz(228x15)1.45V,BOX+Windtunnel,MSI K9A2 Platinium V2, 2x2GB A-DATA Vitesta 4-4-4-12, Gainward 4870 790/1063, Corsair 750W TXEU
    Acer Travelmate 4102WLMi: Centrino 1.73Ghz, 1.25GB RAM, ATI X700, 120GB Samsung, Debian lenny

  10. #10

    Standardní

    Operator carka se pouziva zridkakdy a funguje tak, ze se spocita vyraz vlevo od carky, vysledek se zahodi a nasledne se se spocita vyraz napravo od carky.

    Vysledkem vyrazu
    Kód:
    Edit1->Text, Edit2->Text != "0", ""
    je ukazatel na prazdny retezec (tedy vlastne na '\0') coz bude zrejme vzdycky cislo ruzne od nuly a podminka bude tedy vzdy splnena.

  11. #11
    Senior Member Avatar uživatele Anduril
    Založen
    12.10.2002
    Bydliště
    OVA, OL
    Věk
    42
    Příspěvky
    3 474
    Vliv
    322

    Standardní

    Citace Původně odeslal miho
    Operator carka se pouziva zridkakdy a funguje tak, ze se spocita vyraz vlevo od carky, vysledek se zahodi a nasledne se se spocita vyraz napravo od carky.

    Vysledkem vyrazu
    Kód:
    Edit1->Text, Edit2->Text != "0", ""
    je ukazatel na prazdny retezec (tedy vlastne na '\0') coz bude zrejme vzdycky cislo ruzne od nuly a podminka bude tedy vzdy splnena.
    Tak o tom jsem nikdy neslyšel...dobré to vědět.
    ntb: HP EliteBook 8460p i7-2640M | 8GB RAM | 120GB SSD + 500GB HDD | ATi HD6470 | 14" HD+ | W7 PRO
    home: HP Docking Station | HP L2045W | WD 500GB Scorpio Blue USB box
    work: HP Docking Station | HP L2445W
    audio: Epiphone G-400 SG + Sounder Telecaster | E-MU 0202 | Cambridge Audio Azur 340R | Wharfedale Diamond 9.2 | Magnat Betasub 20A | Sennheiser HD555

  12. #12
    Senior Member Avatar uživatele pYr0
    Založen
    15.03.2003
    Bydliště
    Senica-Záhorie
    Věk
    36
    Příspěvky
    985
    Vliv
    281

    Standardní

    Taky sem na to čumel Prečítal som už tolko kních ale v ani jednej to nebolo napísané
    X2 6000+@3420Mhz(228x15)1.45V,BOX+Windtunnel,MSI K9A2 Platinium V2, 2x2GB A-DATA Vitesta 4-4-4-12, Gainward 4870 790/1063, Corsair 750W TXEU
    Acer Travelmate 4102WLMi: Centrino 1.73Ghz, 1.25GB RAM, ATI X700, 120GB Samsung, Debian lenny

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. [C & MySQL] reference, jak na to? Linux
    Založil Marty v sekci fóra Programování
    Odpovědí: 2
    Poslední příspěvek: 05.05.2004, 21:45
  2. [C, Win] - namespaces
    Založil Braindead v sekci fóra Programování
    Odpovědí: 4
    Poslední příspěvek: 05.06.2003, 18:58
  3. [C, Win] Vypocet integralu
    Založil Braindead v sekci fóra Programování
    Odpovědí: 4
    Poslední příspěvek: 02.06.2003, 15:47
  4. [C, linux] - zacyceni klavesy bez psani
    Založil KtK v sekci fóra Programování
    Odpovědí: 13
    Poslední příspěvek: 28.05.2003, 01:15
  5. [C (linuch)] jak precist obsah adresare?
    Založil KtK v sekci fóra Programování
    Odpovědí: 2
    Poslední příspěvek: 26.05.2003, 07:48

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •