Zaloguj się, aby obserwować  
UthersonL

Programowanie - pytania, problemy, przykłady programów

1812 postów w tym temacie

/.../

Nie używam Visual Basica ale z tego co zrozumiałem z twojego problemu - potrzebujesz najzwyklejszej w świecie iteracji (bądź jeśli całość ma wyglądać bardziej przejrzyście to rekurencji). Tak żeby dla wartości 6 wywoływało funkcję dla wartości 1,2,3,4,5 i 6. A nie tylko tej ostatniej wartości.

Czyli, taki pseudokod:

funkcja catalan(wartosc1)
{
oblicz liczbe catalana dla wartosci1
wyswietl_wynik
}


Czesc glowna:

podaj_liczbe wartosc1

dla wartosci od 1 do wartosc1 wykonaj funkcje catalan

Tadam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

gad demyt prawie to mam :D Chociaż nigdy wcześniej nie używałem ''funkcji'':
http://puu.sh/gOP8U/7cebd04802.png
xD i tutaj wyniki: http://puu.sh/gOPb4/aa6411eabc.png tylko wyświetla mi je podwójnie, a nie wiem czemu :(

edit. już wiem nie potrzebuję dwóch linijek:

Dnia 25.03.2015 o 10:50, ziptofaf napisał:

Console.WriteLine(wynik)
Return wynik

jedna jest wystarczająca

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

/.../

I jeszcze jakiś kod (w Scali bo czemu nie, całkiem przyjemny język skądinąd):
http://pastebin.com/wiVcHzZR
Jeśli wpiszesz tam 10 to dostaniesz takie oto wyniki:
http://puu.sh/gOPbP/f69f59be52.png

W innym języku np. C++ pętla for wyglądałaby tak:
for (int a=0; a<=liczba; a++){
cout << catalan(a)
}

EDIT
Ło panie, ta składnia z VisualBasica to jakiś potwór. Dobrze że do nauki tego nigdy mnie nie ciągnęło o_O

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dnia 25.03.2015 o 11:22, ziptofaf napisał:

EDIT
Ło panie, ta składnia z VisualBasica to jakiś potwór. Dobrze że do nauki tego nigdy mnie
nie ciągnęło o_O


Najprostsza, najprzejrzystrza, najszybsza <- słowa wykładowcy :D

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dnia 25.03.2015 o 11:26, treek napisał:

<- słowa wykładowcy :D

I oczywiście autora książki Szybko zrozumieć Visual Basic
( ͡° ͜ʖ ͡°)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hmm, a wiedziałbyś jak wypluć takie dane do np textboxa? (może być porada w c++).
Wypluwa mi tylko jeden wynik - ostatni, pewnie dlatego, że nadpisuje cały czas pierwsze miejsce w tym obiekcie.
Użyłem też msgboxa, ale ten z kolei wypluwa każdy wynik na nowym okienku :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 25.03.2015 o 20:03, treek napisał:

Użyłem też msgboxa, ale ten z kolei wypluwa każdy wynik na nowym okienku :P


Cóż, w C++ i Qt to ogółem wiem jak ale ci się to nie przyda jak sądzę:
Bo zrobiłbym sobie po prostu pole tekstowe o nazwie textEdit.
http://puu.sh/gPj7D/7b681a9104.png

Po czym skorzystał z jego funkcji setText, przypiętego np. do guziczka:

void MainWindow::on_pushButton_clicked()
{
ui->textEdit->setText("Tutaj wstaw wartosc");
}

I tyle, klikasz na guziczek i masz tekst:
http://puu.sh/gPjcj/d9122f2b5f.png

Ale obawiam się że tobie to nieprzydatne. Więc potrzebne ci bardziej ogólne rozwiązanie.

Dnia 25.03.2015 o 20:03, treek napisał:

Wypluwa mi tylko jeden wynik - ostatni, pewnie dlatego, że nadpisuje cały czas pierwsze
miejsce w tym obiekcie.

To je połącz przed wysłaniem/wyświetleniem do textboxa w jeden ciąg znaków.
W c++ byłoby to tak:

int catalan(int liczba); //funkcja liczaca catalan dla konkretnej wartosci.

int main()
{
int liczba;
cin >> liczba;
ostringstream konwerter; // musimy zamienic liczbe int na ciag znakow string, wymagane wczesniej #include <sstream>
string wyniki;
for (int i=0; i<=liczba; i++)
{
konwerter << catalan(i);
wyniki+= konwerter.str() + " "; //dodajemy do naszych wynikow ostatnia wartosc i spacje na koncu
konwerter.clear();
konwerter.str(""); //ta linia i ta wyzej sa po to zeby wyczyscic nasz konwerter i przygotowac go do przyjecia kolejnej wartosci.
}
cout << wyniki; //zamiast cout uzyj jakiejkolwiek funkcji ktora ma te dane gdzies ci wyswietlic

}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dnia 25.03.2015 o 20:43, ziptofaf napisał:

Cóż, w C++ i Qt to ogółem wiem jak ale ci się to nie przyda jak sądzę:
Bo zrobiłbym sobie po prostu pole tekstowe o nazwie textEdit.
http://puu.sh/gPj7D/7b681a9104.png
I tyle, klikasz na guziczek i masz tekst:
http://puu.sh/gPjcj/d9122f2b5f.png

no i tak właśnie robie
przykładowy kod (pętelka wyś. liczby 1 to 10)-> http://puu.sh/gQ4Je/e95025de75.png
no i dostaje tylko jeden wynik http://puu.sh/gQ4M4/24a813ea21.jpg
w c++ też tak działa?

ale rozumiem, że dalsza cześć posta to odpowiedź na moje pytanie ;p przetrawię ją wieczorem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 26.03.2015 o 08:14, treek napisał:

przykładowy kod (pętelka wyś. liczby 1 to 10)-> http://puu.sh/gQ4Je/e95025de75.png
no i dostaje tylko jeden wynik http://puu.sh/gQ4M4/24a813ea21.jpg


Oczywiście że dostajesz tylko jeden bo tego sobie zażyczyłeś. No, w praktyce będzie ich 10 ale pierwsze 9 śmignie zdecydowanie zbyt szybko by człowiek mógł je dostrzec w ułamkach sekundy.
Ot, jest tak gdyż:
TextBox1.Text = i
Jest równe - czyli treść w TextBox1 ma wynosić tyle co wartość i. Czyli najpierw będzie to 1. Potem 2. I tak dalej. Ale poprzednia wartość zostaje ZASTĄPIONA tą nowszą. Jak mówiłem - musisz połączyć wszystkie wyniki w jeden.
Tak żeby:
test = "1 2 3 4 5 6 7 8 9 10"
TextBox1.Text = test

Ewentualnie:
TextBox1.Text = TextBox1.Text + i (o ile to się tak da) lub TextBox1.Text+=i (choć w obu przypadkach wypadałoby dodać spacje bądź inny separator pomiędzy elementy)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A więc mam robotę w tej firmie i powiedziano mi, że mam opanować JS. Zrobiłem sobie kursy na Code Academy i muszę dalej się rozwijać samodzielnie, bo oczywiście nie ma dla mnie żadnych zadań na chwilę obecną.

Jesteście w stanie coś polecić? Książki? Tutoriale? Cokolwiek?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czysty Javascript czy framework? Bo tego pierwszego się zasadniczo nie używa - jeśli chcesz ogarnąć coś przydatnego w pracy to pewnie będzie to na dzień dzisiejszy AngularJS, dość popularne jest też jQuery. Podręczników do tego nie brakuje, niezły jest (choć polska wersja jest przestarzała, na amazonie bodajże od sierpnia pojawiła się nowa):
http://helion.pl/ksiazki/javascript-i-jquery-nieoficjalny-podrecznik-david-sawyer-mcfarland,jsjqnp.htm

Uwaga - to jest zakładając że ci JS potrzebny do robienia frontendu witryn WWW.
Bo jeśli nie i przez JS masz na myśli np. backendy typu NodeJS bądź Meteor to wtedy radzę się zapoznać z ich dokumentacją.

Ot, Javascript ma sporo zastosowań i najpierw musiałbyś wyjaśnić do czego ci to potrzebne. Bo czystego języka jako takiego to nauczysz się szybko ale praca w nim to męczarnia i wypada poznać popularne frameworki.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W obecnych projektach jest używany Node.js i framework hapi.js, aczkolwiek framework się zmienia, w zależności od tego co jest opracowywane. JS używamy do opracowywania zarówno front-endu jak i back-endu.

Chodzi mi o solidne nauczenie się podstaw samego JavaScriptu, bo zapoznanie się z dokumentacją to nie jest problem. Powiedziano mi, że mam ogarnąć cały JavaScript z czasem, co oznacza podstawy teraz i całą resztę gdy przyjdzie na to czas.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dobra pora na zmiany w życiu.
Polećcie jakąś książkę do c++ taką od zera do bohatera.
Znalazłem gdzieś na wypoku taką: http://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402/
Wciąż się nada? Pomijając fakt, że mamy już C++14?
Potem pewnie chętnie bym wziął się za jakąś książkę z algorytmiki i baz danych, ale wszystko w swoim czasie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 30.04.2015 o 20:54, treek napisał:

Polećcie jakąś książkę do c++ taką od zera do bohatera.

Taką od kompletnego zera? Symfonia C++. Fakt, nie omawia zmian z C++11... Ale o C++11 możesz sobie poczytać potem, zwłaszcza że spora część zmian jakie wprowadza wymaga całych grubych podręczników (chociażby biblioteka do obsługi wątków). Jest to całkiem przyjemny w lekturze podręcznik.
Niezły jest też:
http://helion.pl/ksiazki/jezyk-c-szkola-programowania-wydanie-vi-stephen-prata,cppri6.htm
Ten akurat już wspomina o C++11.

Dnia 30.04.2015 o 20:54, treek napisał:

Wciąż się nada? Pomijając fakt, że mamy już C++14?

C++ to taki język w którym wielu rzeczy wręcz nie należy używać bo ci wyjdzie takie spaghetti że nikomu nie uda się tego odczytać, C++14 dokłada całkiem sporo takich elementów. Najpierw ogarnij podstawową składnię, potem zrozumiesz że C++ to ZUO w którym i tak nic się nie da zrobić ot tak i do wszystkiego i tak musisz mieć osobne biblioteki a te mają często dłuższą dokumentację niż całe podręczniki programowania ;) Więc radzę przemyśleć życiowe wybory i spojrzeć w kierunku C#/Javy, pozwalają nawet zrobić graficzną aplikację (czy, omg, np. zrobić HTTP GET albo podłączyć się do bazy SQLite) bez sięgania po google i zewnętrzne biblioteki! :P

Tym niemniej - z C++14 to bym się nie spieszył bo mało co z niego korzysta na razie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 30.04.2015 o 21:21, ziptofaf napisał:

Taką od kompletnego zera? Symfonia C++.

Symfonia podobno jest tragiczna, mówi mi to każdy ;p

Dnia 30.04.2015 o 21:21, ziptofaf napisał:

Fakt, nie omawia zmian z C++11... Ale o C++11
możesz sobie poczytać potem, zwłaszcza że spora część zmian jakie wprowadza wymaga całych
grubych podręczników (chociażby biblioteka do obsługi wątków).

Obsługę wątków mam też w tym podręczniku co już podałem wcześniej w linku ;p just sayin.

Dnia 30.04.2015 o 21:21, ziptofaf napisał:

Znowu opinia: "podobno" jak się za coś brać to tylko po angielsku (co zresztą mi nie przeszkadza).

Dnia 30.04.2015 o 21:21, ziptofaf napisał:

Więc radzę przemyśleć życiowe wybory i spojrzeć w kierunku C#/Javy, pozwalają nawet zrobić graficzną aplikację (czy,
omg, np. zrobić HTTP GET albo podłączyć się do bazy SQLite) bez sięgania po google i
zewnętrzne biblioteki! :P

Hmm, żeby bawić się w c# nie potrzebuję znać c++? Może faktycznie jeszcze to przemyśle.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 30.04.2015 o 22:12, treek napisał:

Symfonia podobno jest tragiczna, mówi mi to każdy ;p


No widzisz, a dla mnie była jedynym podręcznikiem który COŚ wyjaśniał :P Znam też sporo takich które są technicznym pseudobełkotem.

Dnia 30.04.2015 o 22:12, treek napisał:

> Fakt, nie omawia zmian z C++11... Ale o C++11

Dnia 30.04.2015 o 22:12, treek napisał:

Obsługę wątków mam też w tym podręczniku co już podałem wcześniej w linku ;p just sayin.

Taaa jasne. O, tu masz podręcznik o wątkach (i bibliotekach z tym związanych w C++11):
http://helion.pl/ksiazki/jezyk-c-i-przetwarzanie-wspolbiezne-w-akcji-anthony-williams,jcpppw.htm
Tak, to ma 600 stron.

Dnia 30.04.2015 o 22:12, treek napisał:

Znowu opinia: "podobno" jak się za coś brać to tylko po angielsku (co zresztą mi nie
przeszkadza).

Dnia 30.04.2015 o 22:12, treek napisał:

Hmm, żeby bawić się w c# nie potrzebuję znać c++? Może faktycznie jeszcze to przemyśle.

Nope. To są dwa różne języki. Miejscami co prawda składnia jest podobna ale tylko tyle.
Fakt że C# ma jedną istotną wadę - to coś tworzonego przez Microsoft. Są tego zalety - np. naprawdę niezłe IDE jakim jest Visual Studio ale wsparcie Linuxowe jest zerowe i jedynie poprzez Mono. Które nie wspiera niektórych funkcji języka więc to co napiszesz na Windowsie niekoniecznie będzie działać na Linuxie. Jeśli na multiplatformowości ci zależy to zalecałbym Javę/Scalę - to właśnie one są bezpośrednią odpowiedzią na C#.

C++ jest językiem niższego poziomu - trzeba dbać o pamięć, samemu definiować jakie dane np. kopiować do funkcji a jakie przekazywać jako referencja, można nawet wstawki asemblerowe tam wrzucić, pamiętać o usuwaniu utworzonych struktur itd. W C# takich rzeczy nie ma i dba o nie Garbage Collector.

Ogólnie rzecz biorąc musiałbyś najpierw zdefiniować co chcesz robić w tym języku i ile masz czasu na naukę. Jeśli z programowaniem u ciebie kiepsko a chcesz szybkich efektów to pewnie zwróciłbym się do Ruby/Pythona. Czasu nieco więcej - C#/Java/Scala. C++ jest trudniejszy od nich wszystkich - w swoim czasie robiłem sobie z nudów (swoją drogą polecam to miejsce jeśli chcesz sobie poćwiczyć programowanie: http://www.reddit.com/r/dailyprogrammer ) zadanko http://www.reddit.com/r/dailyprogrammer/comments/2kwfqr/10312014_challenge_186_special_code_or_treat/ - w Ruby napisanie takiego symulatora z grafiką to było bodajże 500 linii kodu. W Scali ok. 650. W C++ może bym się zmieścił w tysiącu.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

/.../
@treek
Co do C# to się wszystko zmienia. M$ coraz bardziej widzi "potrzebę" zaprzyjaźnienia się z między innymi z linuxami. Dowodem jest wypuszczenie VSCode, na razie jest to śmieszny notatnik z kilkoma udogodnieniami, ale przynajmniej coś ruszyło.

Co do C# i jego nauki. Na początek obok Pythona najlepszy chyba język do nauki programowania, moim i nie tylko zdaniem. Między innymi właśnie przez VS, ale dlatego, że "programowanie" w tym to tak naprawdę układanie domku z klocków. Wszystko już jest co przeciętnemu programiście trzeba by zbudować działający system. WIęc nasz rola sprowadza się do w miarę poprawnego połączenia tego w mniej więcej spójną całość.

Jeśli ma się ~3h wolnego czasu dziennie, to python w 3 miesiące można opanować do stopnia szukania pracy.

Zgadzam się z jednym. trzeba wybierać język pod kątem tego co się chce robić. Nie ma sensu się męczyć np. z c++ skoro i tak potem się chce pisać "korpo -krowy".

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować