ja pamietam na uczelnie robilem w StarUML
Wersja do druku
Microsoft visio. Mi bardzo przypasiło, nie wygląda jak z 1980r., szybko sie dodaje.
Wiec powiesz mi, ze kazdy kto uzywa np. UMLa do modelowania relacji miedzy klasami to ciota i chuj?
http://i2.kym-cdn.com/entries/icons/...0/fuckthat.jpg
polecam power designer :D
also mam problem (chyba z pamięcią coś nie tak, bo jedno wywołanie funkcji działa ok, ale winnym może też być getchar)
http://wklej.org/hash/cdd225197cb/
wie ktoś o chuj tu kurde chodzi że to nie działa dla większej od 1 liczby wykonań?
#cpp
No to użyj cin zamiast getchar :p
Niech ktoś wytlumaczy jak dla debila o co chodzi z klasami w cpp
http://cpp0x.pl/kursy/Kurs-C++/Klasy-obiekty/311
Serio jest tyle dobrych źródeł na necie że nie ma sensu tego tłumaczyć. Tak po swojemu to bym powiedział że klasa ma za zadanie reprezentować otaczające nas rzeczy.
Np chcąc mieć w programie informacje o różnych osobach dużo łatwiej je trzymać w jednej klasie nazwanej Osoba która będzie posiadała pola np wiek,płeć,wzrost,waga. Oraz za pomocą metod czynności które będzie wykonywać.
Ale zastosowań klasy jest duuużo więcej i masz ogrooom materiałów w sieci na ten temat.
dzięki!!! jedną rzecz załatwiłeś a w ogóle czemu nie powinienem był użyć funkcji itoa do konwersji do stringa?? myślałem że to najlepszy sposób
a drugim problemem było to że getchar zasysał znak nowej linii i wciągał go jakoś dziwnie do tablicy już chyba działa dałem jeden getchar() w mainie xD
Segmentation_fault
chuj kurwa odpuszczam xD
e: już działa dzięks
@Gracjan Prastacki ;
Tego się używa wszędzie, przykładowo w banku
i potem robiszKod:class Account {
private int account_number;
private int pin_number;
private double amount;
//Konstruktor do stworzenia nowego konta
public Account (int acc_n, int pin_n, double am){
account_number = acc_n;
pin_number = pin_n;
amount = am;
}
// Metoda, która pokazuje stan konta
public void showAmount(){
Console.WriteLine(amount)
}}
Pisane na szybko przeze mnie - laika, także w razie błędów mnie poprawcie.Kod:Account acc1 = new Account(1278312, 4444, 1000000) // Tworzysz konto o numerze konta 1278312, pinie 4444 i o saldzie miliona zł
acc1.showAmount(); // Wywołujesz metodę klasy Account dla obiektu acc1, która pokaże ile na koncie ma acc1
@up
Daję soga już trochę rozumiem
P.S można używać tylko tych metod na które pozwala dołączona biblioteka, tak?
Metody tworzysz sam, na przykład dla obiektu Kot klasy Zwierze możesz zrobić metodę dajGłos, która będzie wypisywała dźwięk jaki wydaje np. "Miau" dla kota.
Może być również metoda sprawdźWiek dla obiektu Marcin w klasie Osoba, która będzie wyglądała mniej więcej tak
I za pomocą tej metody (którą stworzyłeś sam), możesz sprawdzać czy dana osoba jest pełnoletnia.Kod:void sprawdźWiek(){
if (wiek < 18) {
Console.WriteLine("Jestes niepelnoletni!");
else{
Console.WriteLine("Jestes pelnoletni!");
}
}
}
Są oczywiście wbudowane metody w biblioteki, ale wtedy używasz już określonej metody klasy z biblioteki. Na przykład masz jakąś bibliotekę o nazwie Date i w niej masz metodę showDate(), której możesz używać po dołączeniu biblioteki Date.
Chodziło mi konkretnie o getline() do tego nie trzeba tworzyć klasy.
Mam klase Gracz i klase Obiekt. W klasie Obiekt mam strukture obiekty, i vector, w ktory wrzucam te struktury i sluzy mi jako lista. W klasie Gracz chciałem zrobić funkcje, która sprawdzała by kolizje między graczem a strukturami znajdującymi się w vectorze.
Jak najlepiej przekazać liste z przedmiotami (vector) z klasy Obiekt do klasy Gracz?
Drugie pytanie. Wrzuciłem te liste w nową klase i chciałem żeby klasy Obiekt i Gracz ją dziedziczyły. Listy się różnią, bo obie klasy mają swoje kopie na których pracują. Jak sprawić aby pracowały one na oryginalnych danych z nowej klasy?
Ja bym nie zagnieżdżał struktury obiekty w klasie Obiekt. Bo jeżeli będzie zagnieżdżona to w innych klasach nie będzie wiadomo co to jest za typ. Zrób ją normalnie tak jak te dwie klasy a nie wewnątrz jednej z klas.
W mainie masz 2 instancje tych klas:
Gracz nowy_gracz;
Obiekt nowy_obiekt;
To w klasie gracz tworzysz metodę która jako parametr przyjmuje vector typu obiekty albo referencje do niej.
no i wywołujesz tą metodę w taki sposób:
nowy_gracz.metoda(std::vector<obiekty> tablica);
No i masz dostęp w tej mtodzie do całego tego pojemnika. Jeżeli chcesz mieć tą tablicę jako prywatną to musisz albo zaprzyjaźnienie zrobić albo gettery zrobić.
Wydaje mi się że masz problem z tworzeniem zależności między klasami (ja w sumie też). Musisz przemyśleć schemat klas i powiązań między nimi zanim zaczniesz je pisać. Zwykle pomagają proste pytania: jeżeli masz dwie klasy to pytasz się czy jedna jest jakimś rodzajem drugiej. Jeżeli jest to po sobie dziedziczą. Np klasa samochód dziedziczy po klasie pojazd bo samochód jest pojazdem. Wiadomo że dziedziczenia nie tylko wtedy się używa (np tworzenie wspólnego interfejsu) ale zwłaszcza na początku warto myśleć w ten sposób. Drugie pytanie to czy jedna klasa zawiera drugą klasę. Przykładowo klasy radio i antenka. Tu nie będzie dziedziczenia tu będzie zawieranie. Więc klasa radio składa się między innymi z obiektu klasy antenka.Cytuj:
Drugie pytanie. Wrzuciłem te liste w nową klase i chciałem żeby klasy Obiekt i Gracz ją dziedziczyły. Listy się różnią, bo obie klasy mają swoje kopie na których pracują. Jak sprawić aby pracowały one na oryginalnych danych z nowej klasy?
class radio
{
antenka nowa_antenka;
}
Wydaje mi się że powinieneś jeszcze raz przemyśleć schemat klas w programie. Używając dziedziczenia chciałeś aby te klasy pracowały na tym samym obiekcie. To jest raczej złe rozwiązanie. Powinno się unikać dużej ilości zależności między klasami. Klasa Obiekt powinna mieć metodę która zwraca vector lub wskaźnik na niego z elementami a klasa Gracz powinna mieć metodę która taki vector przyjmuje.
Ja sam się uczę dopiero programować więc w tym co napisałem może być sporo błędów. Więc bardziej Cię zachęcam do książek. Jeżeli masz dobrze opanowane podstawy klas to jakąś książkę o wzorcach projektowych tam o relacjach między klasami jest bardzo dużo.
@edit
coś takiego:
To zadziała w prostym przypadku. Jednak i tak możliwe że zaburzona jest tutaj struktura klas. Bo czy to gracz powinien sprawdzać czy doszło do kolizji? Czy może mechanizm gry? Funkcjami gracza powinny być chodzenie, strzelanie, podawanie swojego imienia itp. A czy doszło do kolizji to może powinna sprawdzać inna funkcja przyjmująca jako parametry obiekt gracza i tablicę obiektów. Albo cała klasa do tego stworzona. Nie lepiej by tak było? W prostym przypadku sprawdzanie tego w klasie gracza będzie działało jednak jak ta klasa będzie rozbudowywana to się będzie można pogubić w metodach.Kod:#include <vector>
struct obiekty
{
};
class Obiekt
{
public:
std::vector < obiekty > lista_obiektow;
};
class Gracz
{
public:
void kolizja(std::vector < obiekty > &lista)
{
//sprawdzenie_kolizji();
}
};
int main()
{
Obiekt nowy_obiekt;
Gracz nowy_gracz;
nowy_gracz.kolizja(nowy_obiekt.lista_obiektow);
return 0;
}
:DCytuj:
W restauracji:
- Kernel!
o kurwa na prawde xD
Anyway do takich tekstow http://torg.pl/showthread.php?458515....Torgdevs.Bash
czym się różni pętla do..while od samego while w cpp i którego się zazwyczaj używa?
@Gracjan Prastacki ;
Uzywa sie obydwoch.
Roznica jest taka, ze while najpierw sprawdza warunek, i pozniej ewentualnie wykonuje kod.
A do..while najpierw wykonuje kod, a pozniej sprawdza warunek, czy powtorzyc kod jeszcze raz czy nie.
Do while wykona sie zawsze conajmniej raz.
While moze sie nie wykonac wcale.
usiluje stworzyc program, ktory wypisuje liczby od 17 do 100, ktore sa podzielne przez 17. niezupelnie rozumiem mechanizm dzialania petli. bylby ktos tak mily i wskazal blad?
aktualnie program nie wyswietla nic. jezyk C.
@downKod:#include <stdio.h>
int main(void)
{
int num;
for(num=17; num<101; num=num+1);
if((num%17)==0) printf("%d", num);
return 0;
}
haha, a myslalem ze to jakis blad logiczny, a tu srednik. dzieki :)
https://i.imgur.com/F620PIp.png
@Swireczek666 ;
Tych skurwieli najtrudniej wytropić ;) Anyway, zapraszamy na IRC (link w stopce).
Taki protip, jak juz nie uzyles klamerek po for, to chociaz zrob wciecie dla przed if. zeby bylo widac ze ten if nalezy do for.
ale w jakim celu?
Jak ci sie ifem uda powtorzyc kod to sobie uzywaj ifa :D
A jak juz ci sie to uda to wrzuc tutaj kod chetnie to zobacze :)
Trzecia zasada motto i hasło przewodnie: WTF!? ;)
Koledzy, potrzebuję porady. Zapewne takie pytania co jakiś czas Wam się tutaj przewijają, ale...
Potrzebuję nauczyć się programować - czyli nauczyć się samego myślenia programistycznego jak i suchego klepania kodu. Java lub Visual Basic, z naciskiem na to drugie.
Jakieś sprawdzone, skuteczne, dobre i fajne kursy online? PDFy?
Dzięki.
PS. Mam jakieś doświadczenie z C++ czy Javą, ale to takie krótkie epizody, nie warte wspominania.
Wspomniałem.
Magia, co nie?
nic nie pomaga bardziej w logicznym mysleniu oraz jak to nazwales programistycznego mysleniu niz nauka matematyki, no ale spodziewam sie ze nie jestes na studiach stricte informatycznych wiec
Stefan Prata
Szkola programowania
jedyna ksiazka ktora uczy programowania w C++ od podstaw do poziomu naprawde mogacego zadowolic.
na yt kursow programowania jest sporo wystarczy wpisac w wyszukiwarke, wiekszosc jest podobnych i ja np nie bylbym w stanie uczyc sie z tego
Wiem, wiem, ale nauka stricte matematyki odpada.
Visual Basic, ostatecznie Java.
No właśnie dużo jest tego wszystkiego i szukam czegoś, co ktoś sprawdził i może polecić. Łatwo jest wyszukać COŚ w Googlach, ale wyszukać COŚ DOBREGO trochę trudniej.
Panowie potrzebuję porady.
Pierwszy raz mam styczność z pisaniem czegoś okienkowego, skrobię prosty programik w visualu przy użyciu C# i WPF, problem jest taki, że generalnie program ma mieć dajmy na to 3 funkcje, wybieralne z dropdown boxa. Wybieram funkcję 1 i w oknie pojawia mi się 6-10 elementów typu textboxy , buttony i labele do nich. Tu moje pytanie. Czy jest jakaś możliwość zgrupowania tych elementów by po wybraniu z dropdown boxa funkcji 2 chowała mi się cała grupa elementów f1 i pojawiała f2? Mam na myśli czy jest jakiś sposób związany z kodem w xamlu, bo to że mogę sobie to zgrupować w funkcji "wyświetlf1" to wiem, a póki co w kodzie c# mam to tak brzydko rozwiązane że dla każdego elementu mam zrobione coś w stylu textbox.visibility = visibility.hidden; i trochę się już tego zbiera. I tu po części wchodzi druga kwestia - fajnie by było żeby to można łatwo włączać/wyłączać na podglądzie interfejsu bo mam gruby bajzel w tej chwili jak wszystko od trzech funkcji się nakłada na siebie w podglądzie....