Forum Oficjalnego Klubu Mitsubishi - MitsuManiaki Strona Główna Forum Oficjalnego Klubu Mitsubishi - MitsuManiaki


FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj  AlbumAlbum
 Ogłoszenie 


W myśl ustawy RODO, akceptując regulamin wyrażasz zgodę na gromadzenie i przetwarzanie swoich danych osobowych w celach związanych z przyznaniem dostępu do forum / wstąpieniem do klubu.
Administratorem danych jest Oficjalny Klub Mitsubishi - MitsuManiaki
Jeśli nie akceptujesz powyższych informacji, prosimy o kontakt z Administracją w celu usunięcia konta.

Poprzedni temat «» Następny temat
C++; ktoś się orientuje?
Autor Wiadomość
KowaliK 
Mitsumaniak
01339/KMM

Auto: JDM's
Kraj/Country: Polska
Pomógł: 6 razy
Dołączył: 06 Sty 2008
Posty: 990
Skąd: Wrocław
Wysłany: 25-04-2012, 22:36   

krzychu,

Kod:

#include <cstdlib>
#include <iostream>
#include <string>


using namespace std;

int main()
{
    String tekst;
    cin>>tekst;
    String nowy = "";
    for (int i=tekst.Lenght(); i>0 ; i--)
    nowy+=tekst[i];
   
    system("PAUSE");
    return EXIT_SUCCESS;
}


String undeclared - o co chodzi? Od czego w ogóle zacząć pisanie programu ze użyciem stringa? :oops:


elektryk - string.



EDIT.

Sam sobie odpowiedziałem, ale nie wiedziałem jak go zadeklarować... a wystarczyło zamienić "S" na "s". :lol: Dzięki Krzychu! :)
Ostatnio zmieniony przez KowaliK 26-04-2012, 17:43, w całości zmieniany 1 raz  
 
 
elektryk 
Forumowicz

Auto: auto
Kraj/Country: Polska
Pomógł: 33 razy
Dołączył: 10 Sie 2008
Posty: 2082
Skąd: z ...
Wysłany: 25-04-2012, 23:34   

KowaliK napisał/a:
String undeclared - o co chodzi? Od czego w ogóle zacząć pisanie programu ze użyciem stringa? :oops:

elektryk - string.
Czy tylko ja mam wrażeni że sam sobie odpowiedziałeś na pytanie?
 
 
krzychu 
Mitsumaniak


Auto: Lancer 2.0 Int, Mazda CX-3
Zaproszone osoby: 1
Kraj/Country: Polska
Pomógł: 141 razy
Dołączył: 21 Kwi 2008
Posty: 12607
Skąd: Bielsko-Biała
Wysłany: 26-04-2012, 07:58   

elektryk napisał/a:

KowaliK napisał/a:

elektryk - string.
Czy tylko ja mam wrażeni że sam sobie odpowiedziałeś na pytanie?


Chyba tak.

A tutaj masz poprawnie:
Kod:
    cin>>tekst;
    string nowy = "";
    for (int i=tekst.length()-1; i>=0 ; i--)
        nowy+=tekst[i];

    cout<<nowy;
    system("PAUSE");
    return 0;


I pamiętaj, że cin skończy czytać ciąg znaków po spacji. Więc "Ala ma kota" to odczyta tylko "Ala".

Możesz użyć "getline (cin, tekst);"
 
 
KowaliK 
Mitsumaniak
01339/KMM

Auto: JDM's
Kraj/Country: Polska
Pomógł: 6 razy
Dołączył: 06 Sty 2008
Posty: 990
Skąd: Wrocław
Wysłany: 17-05-2012, 14:32   

Piszę funkcje sprawdzającą prawidłowe BMI z użyciem typu strukturalnego. Wszystko ok, gdyby nie ten typ strukturalny, którego zupełnie nie rozumiem. Nie było mnie akurat na tych zajęciach a z tego co znalazłem na necie jakoś ciężko mi coś zrozumieć/napisać. Napisałem coś takiego:

Kod:
#include <cstdlib>
#include <iostream>

using namespace std;

struct dane
{
       float waga;
       float wzrost;
};
       
       bool spr (float bmi)
       {
        if (bmi>18,9 && bmi<25)
             return true;
        else
             return false;
       }
             
int main()

{
  float bmi;
 
 cout<<"Podaj wage: "<<endl;
     cin>>dane.waga;
 cout<<"Podaj wzrost: "<<endl;
     cin>>dane.wzrost;
 
 bmi=dane.waga/(dane.wzrost*dane.wzrost);
 
 bool (bmi);
 
 
    system("PAUSE");
    return EXIT_SUCCESS;
}


Problem pojawia się przy wczytywaniu składników structa... :(
 
 
krzychu 
Mitsumaniak


Auto: Lancer 2.0 Int, Mazda CX-3
Zaproszone osoby: 1
Kraj/Country: Polska
Pomógł: 141 razy
Dołączył: 21 Kwi 2008
Posty: 12607
Skąd: Bielsko-Biała
Wysłany: 17-05-2012, 14:41   

Struktura to jest typ danych (jak np. int) więc musisz go zadeklarować np: "dane dane_bmi" i Twoje dane będą w dane_bmi.

a z tym " bool (bmi);" to co chciałeś zrobić?
 
 
KowaliK 
Mitsumaniak
01339/KMM

Auto: JDM's
Kraj/Country: Polska
Pomógł: 6 razy
Dołączył: 06 Sty 2008
Posty: 990
Skąd: Wrocław
Wysłany: 17-05-2012, 15:21   

Tej deklaracji nie kumam kompletnie z tego co napisałeś. :wink: Tzn. coś świecie ale nie wiem jak to zadeklarować. Bardziej łopatologicznie poproszę.

bool (bmi) - obliczone bmi ma być wrzucone do funkcji, która sprawdza czy jest prawidłowe. Jeśli tak to true, nie - false.
 
 
elektryk 
Forumowicz

Auto: auto
Kraj/Country: Polska
Pomógł: 33 razy
Dołączył: 10 Sie 2008
Posty: 2082
Skąd: z ...
Wysłany: 17-05-2012, 15:26   

Jeśli dobrze rozumiem zadanie to funkcja "sprawdź BMI" powinna mieć następującą deklarację
Kod:
bool sprawdz_bmi(struct dane dane_wejsciowe)
lub w wersji bardziej "profesjonalnej"
Kod:
bool sprawdz_bmi(struct dane *dane_wejsciowe)
A w main() coś takiego
Kod:
struct dane moje_cialo;
bool bmi;
//pobranie danych cout/cin etc
bmi = sprawdz_bmi(moje_cialo); //lub w nawiasie &moje_cialo
if (bmi)
//napis ok
else
//napis zla waga

PS ja bym dorobił jeszcze typedef do struktury żeby słowo kluczowe struct się nie plątało w kółko.
 
 
krzychu 
Mitsumaniak


Auto: Lancer 2.0 Int, Mazda CX-3
Zaproszone osoby: 1
Kraj/Country: Polska
Pomógł: 141 razy
Dołączył: 21 Kwi 2008
Posty: 12607
Skąd: Bielsko-Biała
Wysłany: 17-05-2012, 16:58   

elektryk - ale po co Ci "struct" przed deklaracja? To tak jakbyś przed każdą deklaracją klasy chciał pisać "class".
 
 
KowaliK 
Mitsumaniak
01339/KMM

Auto: JDM's
Kraj/Country: Polska
Pomógł: 6 razy
Dołączył: 06 Sty 2008
Posty: 990
Skąd: Wrocław
Wysłany: 17-05-2012, 17:02   

Coś takiego? Ale dalej nie działa i wysypuje się przy cin. :wink:

Kod:
#include <cstdlib>
#include <iostream>

using namespace std;

struct dane_dbmi
{
       float waga;
       float wzrost;
};
       
       bool spr_bmi (dane_dbmi);
             
int main()

{
  struct dane_dbmi; 
  float bmi;
 
 cout<<"Podaj wage: "<<endl;

     cin>>dane_dbmi.waga;
 cout<<"Podaj wzrost: "<<endl;
     cin>>dane_dbmi.wzrost;
 
 bmi=dane.waga/(dane.wzrost*dane.wzrost);
 
 bool (bmi);
 
 
    system("PAUSE");
    return EXIT_SUCCESS;
}

       bool spr_bmi (dane_dbmi)
       {
        if (bmi>18,9 && bmi<25)
             cout<<"Waga prawidlowa."<<endl;
        else
             cout<<"Nadwaga/Niedowaga."<<endl;;
       }



Typedef nie mogę użyć, ponieważ jeszcze tego nie miałem.
 
 
elektryk 
Forumowicz

Auto: auto
Kraj/Country: Polska
Pomógł: 33 razy
Dołączył: 10 Sie 2008
Posty: 2082
Skąd: z ...
Wysłany: 17-05-2012, 18:35   

krzychu napisał/a:
elektryk - ale po co Ci "struct" przed deklaracja? To tak jakbyś przed każdą deklaracją klasy chciał pisać "class".
A sory, takie przyzwyczajenie, za dużo piszę w C ;)

KowaliK napisał/a:
Coś takiego? Ale dalej nie działa i wysypuje się przy cin. :wink:
A u mnie nawet nie chce się kompilować, a do wysypywania daleko.
a.cpp: In function 'int main()':
a.cpp:22: error: expected primary-expression before '.' token
a.cpp:24: error: expected primary-expression before '.' token
a.cpp:26: error: 'dane' was not declared in this scope
a.cpp:28: error: conflicting declaration 'bool bmi'
a.cpp:18: error: 'bmi' has a previous declaration as 'float bmi'
a.cpp: In function 'bool spr_bmi(dane_dbmi)':
a.cpp:37: error: 'bmi' was not declared in this scope
 
 
KowaliK 
Mitsumaniak
01339/KMM

Auto: JDM's
Kraj/Country: Polska
Pomógł: 6 razy
Dołączył: 06 Sty 2008
Posty: 990
Skąd: Wrocław
Wysłany: 17-05-2012, 18:45   

Dokładnie, co z tym zrobić?
 
 
krzychu 
Mitsumaniak


Auto: Lancer 2.0 Int, Mazda CX-3
Zaproszone osoby: 1
Kraj/Country: Polska
Pomógł: 141 razy
Dołączył: 21 Kwi 2008
Posty: 12607
Skąd: Bielsko-Biała
Wysłany: 17-05-2012, 18:50   

No właśnie nie "struct dane_dbmi;" tylko np. "dane_dbmi moje_dane". To tak jak byś próbował zrobić nowy typ zmiennej. Używaj go to jak zmiennej.

Jak piszesz:
"typ_zmiennej Twoja_zmienna"
to napisz teraz
"Twoje_struktura Twoja_zmienna"


Cytat:
struct dane
{
float waga;
float wzrost;
};



int main()

{
float bmi;
dane moje_dane
cout<<"Podaj wage: "<<endl;
cin>>moje_dane.waga;
cout<<"Podaj wzrost: "<<endl;
cin>>moje_dane.wzrost;

}


itd.
Ostatnio zmieniony przez krzychu 17-05-2012, 18:52, w całości zmieniany 2 razy  
 
 
elektryk 
Forumowicz

Auto: auto
Kraj/Country: Polska
Pomógł: 33 razy
Dołączył: 10 Sie 2008
Posty: 2082
Skąd: z ...
Wysłany: 17-05-2012, 18:51   

KowaliK napisał/a:
Dokładnie, co z tym zrobić?
No cóż, trzeba czytać komunikaty wprost. Kompilator oczekuje wyrażenia przed symbolem kropki, zatem pewnie to coś co jest przed kropką nie jest poprawnym wyrażeniem. Skoro kompilator nie widzi tego wyrażenia, to znaczy że nie jest zadeklarowane albo błędnie zadeklarowane.
 
 
KowaliK 
Mitsumaniak
01339/KMM

Auto: JDM's
Kraj/Country: Polska
Pomógł: 6 razy
Dołączył: 06 Sty 2008
Posty: 990
Skąd: Wrocław
Wysłany: 17-05-2012, 18:57   

To, że czegoś oczekuje to wiem... ale niestety nie wiem czego.

OK, Krzychu edytował, teraz już widzę o co chodzi. :wink:
 
 
krzychu 
Mitsumaniak


Auto: Lancer 2.0 Int, Mazda CX-3
Zaproszone osoby: 1
Kraj/Country: Polska
Pomógł: 141 razy
Dołączył: 21 Kwi 2008
Posty: 12607
Skąd: Bielsko-Biała
Wysłany: 17-05-2012, 19:05   

To Ci podbiję temat. Tam od razu sobie popraw przecinek na kropkę bo w USA (pewnie dlatego tak samo jest w C++) separatorem jest kropka.
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group

Ta strona używa ciasteczek (ang. cookies) w celu logowania oraz do badania oglądalności strony.
Aby dowiedzieć się czym są ciasteczka odwiedź stronę wszystkoociasteczkach.pl
Jeśli nie wyrażasz zgody na wykorzystywanie ciasteczek na tej stronie, zablokuj je w opcjach Twojej przeglądarki internetowej.