Skocz do zawartości

Zabawy algorytmiczne i programowanie


Maklak2

Recommended Posts

Mam jedno pytanie: czy da się programować w BASIC-u na Linuksie?

A propos Pythona:

Python faktycznie jest trochę dziwny, bo nie ma {} jak w C++ i zamiast tego są wcięcia, ale ma w sobie też moim zdaniem ciekawe rozwiązania. Przykładami są np. odwoływanie się ujemnych indeksów, słowniki, listy czy krotki. Może jest jeszcze coś więcej, ale jestem dopiero na 47 stronie ,,Zanurkuj w Pythonie". :-)

Link do komentarza
Udostępnij na innych stronach

Jaki język waszym zdaniem jest najprostszy i najłatwiej się go nauczyć?

Ja zaczynałem z Pascalem, później uczyłem się C i C++. Jakbym teraz zaczynał to pewnie od razu bym chciał C/C++.

Nie wiem czy nie łatwiej byłoby na początku nauczyć się jakiegoś języka skryptowego bez silnego typowania, ale nie zawsze łatwiej = lepiej. Najlepiej zobacz jakies przykłady napisane w różnych językach i oceń, który wygląda dla Ciebie najbardziej czytelnie :)

Link do komentarza
Udostępnij na innych stronach

Mam jedno pytanie: czy da się programować w BASIC-u na Linuksie?

A propos Pythona:

Python faktycznie jest trochę dziwny, bo nie ma {} jak w C++ i zamiast tego są wcięcia, ale ma w sobie też moim zdaniem ciekawe rozwiązania. Przykładami są np. odwoływanie się ujemnych indeksów, słowniki, listy czy krotki. Może jest jeszcze coś więcej, ale jestem dopiero na 47 stronie ,,Zanurkuj w Pythonie". :-)

 

Pod Ubuntu masz pakiet mono-vbcn z kompilatorem Visual Basica... tylko po co?

 

Zobaczyłem tą książkę i :rarity4:  na prwadę ktoś dziwny ją pisał.

Pierwszy program a tu zamiast jakiegoś HelloWorld: funkcje z dokumentacją, listy składane, słowniki i  te dziwne zupełnie nie potrzene \ (eskejpowanie znaku nowej lini).

Znalazłem jeszcze kilka kwiatków, w ogóle ta książka nie skupia się na wielu ciekawych smaczków i nie pokazuje praktycznie zupełnie żadnej podręcznej biblioteki, które wiele ułatwiają.

Po za tym stara ta książka, a python 2.3 zamiast python 3.2. Jest już angielski Dive into python 3, ale nie jest polecana.

Za to ja ją odradzam.

 

Trzeba też odróżnik książkę do nauki programowania od tej dla tych już znających się na rzeczy.

 

Ja zaczynałem z Pascalem, później uczyłem się C i C++. Jakbym teraz zaczynał to pewnie od razu bym chciał C/C++.

Nie wiem czy nie łatwiej byłoby na początku nauczyć się jakiegoś języka skryptowego bez silnego typowania, ale nie zawsze łatwiej = lepiej. Najlepiej zobacz jakies przykłady napisane w różnych językach i oceń, który wygląda dla Ciebie najbardziej czytelnie :)

Też zaczynałem z Pascalem ;-D potem nauczenie się C++ to była czysta formalność. Aczkolwiek ja uważam że do póki człowiek nie nauczy się czytać i rozumieć kodu jakiego by on nie był, to czym mnie rzeczy rozprasza od funkcjonalności i koncepcji działania tym lepiej.

 

Jaki język waszym zdaniem jest najprostszy i najłatwiej się go nauczyć?

Ja twierdzę że najłatwiej się nauczyć jest Pythona, prove me wrong darling :hmpf:

Edytowano przez Arpegius
Link do komentarza
Udostępnij na innych stronach

Ja bym polecał nauczyć się C przed C++. Proste przykłady można zrobić w jednym i drugim a w C jest mniej rzeczy do nauczenia się. Poza tym w C dużo mniej rzeczy dzieje się automagicznie i łatwiej jest zrozumieć jak działa zarządzanie pamięcią, ciągi znaków i inne rzeczy, które w wyższopoziomowych językach programowania są opakowane w łatwiejsze do używania interfejsy. 

 

Jakiś język skryptowy to też dobra propozycja. Podobno Ruby jest dość potężny i przyjemny. 

Edytowano przez Maklak2
Link do komentarza
Udostępnij na innych stronach

Ja bym polecał nauczyć się C przed C++. Proste przykłady można zrobić w jednym i drugim a w C jest mniej rzeczy do nauczenia się. Poza tym w C dużo mniej rzeczy dzieje się automagicznie i łatwiej jest zrozumieć jak działa zarządzanie pamięcią, ciągi znaków i inne rzeczy, które w wyższopoziomowych językach programowania są opakowane w łatwiejsze do używania interfejsy. 

 

Jakiś język skryptowy to też dobra propozycja. 

A ja nie polecam się uczyć C przed C++. Jeżeli ktoś woli poznawać sztukę programowa tak jak ona się rozwijała to polecam się uczyć C ale tylko tą część kompatybilną z C++, przykładowo bez sztucznego rozróżniania struktur i typów  :pinkiep:  Jednak dzisiaj się programuje troszkę inaczej więc ostrzegam ze złe nawyki pozostaną :rarirage:

 

Tak naprawdę dzisiaj dobry programista to taki co naklepie więcej funkcjonalności w postaci działającego, czytelnego, przetestowanego kodu.

Po za tym, developerka nie składa się tylko z klepania samego kodu, trzeba znać się trochę na analizowaniu problemu i projektowaniu, skupianie się na samym poprawianiu niedziałającego kodu to po prostu strata czasu.

Link do komentarza
Udostępnij na innych stronach

C++ to w dużej mierze nadzbiór C, więc wydaje się uzasadnione najpierw poznać podstawy C. Nikt tu nie mówi o pisaniu wielkich systemów w C. Do pierwszych programów nie ma sensu podchodzić obiektowo jak jeszcze nie wie się co to funkcja i zmienna.

Poza tym to nie prawda, że dziś w ogóle nie pisze się w C lub ogólnie w językach strukturalnych bo np. w systemach wbudowanych oraz ogólnie oprogramowaniu systemowym głównie tego języka się używa.

Tak na marginesie, nie wiem czy to dobry wątek, ale może ktoś interesuje się trochę hackingiem, np. rozwiązuje jakieś hackme. Ja np. ostatnio mam straszne parcie na zadania z TDHack.com.

Link do komentarza
Udostępnij na innych stronach

Poza tym to nie prawda, że dziś w ogóle nie pisze się w C lub ogólnie w językach strukturalnych bo np. w systemach wbudowanych oraz ogólnie oprogramowaniu systemowym głównie tego języka się używa.

No właśnie już nie, dzisiaj kompilatory bardzo dobrze optymalizują kod. Nawet mikro kontrolery oprogramowuje się w C++, co prawda nie korzysta się z RTTI, mocnego polimorfizmu, czy nawet dynamicznej alokacji pamięci, ale składniowo C++ bardzo pomaga. Zresztą przy poborze mocy rzędu kilkuset mikro Wat na Mhz kto by się przejmował kilkoma dodatkowymi instrukcjami? (nie mówię o DSP) A natomiast błędy w oprogramowaniu w niskopoziomowym kodzie zdarzają się częściej i są trudniej wychwytywane przez testy.

Edytowano przez Arpegius
Link do komentarza
Udostępnij na innych stronach

Osobiście zacząłem od C++, pascala znam ze szkoły (do bólu nienawidzę metody begin - end).

Gdybym miał zaczynać od pascala, pewnie bym się zniechęcił, ale to jest tylko moje odczucie.

Jeśli chodzi o IDE pythona, było ono dla mnie bardzo problematyczne, więc zaniechałem.

Wg. mnie łatwiej zacząć C++ niż C, ale jak już się jedno pozna, warto zagłębić się w drugie, bo nawet takie pierdółki jak fakt, że printf() jest czybsze od cout << może się przydać.

Link do komentarza
Udostępnij na innych stronach

Dobra, skończmy offtop. Może ją zadam jakieś zadanie na święta, takie dosyć proste. Napiszmy kod, który da nam rozwiązanie na proste układy równań typu

{x+y= 34

{2x + (1/2)y = 47

Nie wiem czy dobrze zrozumiałem ale chodzi oto że na wejściu dostaje 2 linie zaczynających się od { oraz zwierające napis stanowiący równanie z 2 niewiadomymi którego współczynniki są liczbami wymiernymi?

 

Wiem że pewnie obyło by się bez parsowania i liczb , no ale było by za nudno!

Rozwiązanie dostępne

tutaj, gdzie widać że działa dla twojego przykładu podanego na wejście.

Oraz że działa dla dowolnych liczb wymiernych w postaci [+-] a/b tutaj.

Rownianie nieoznaczone wywala błąd: http://ideone.com/WSNQZO

Oczywiście kod posida kilka bugów ale niebędę sie nimi chwalił bo już mi się tego nie chce poprawiać.

W sumie to użył bym gotowego rozwiązania w postaci biblioteki SymPy który posiada Solver to takich układów równań, albo przynajmniej macierzowo dla dowolnej ilości zmiennych, no ale miało być gimbusiarsko to jest, tak jak tego uczą.

A teraz dajesz to w Basicu ;-P Maklak a ty w C ;-D

Edytowano przez Arpegius
Link do komentarza
Udostępnij na innych stronach

Jeśli komuś podobał się filmik "Wat?" to znalazłem następną "perełkę". Perl ma coś co wygląda trochę jak prototypy funkcji, ale tak naprawdę niejawnie konwertuje sobie argumenty według dosyć pokrętnych reguł. Jeśli ktoś lubi taką literaturę rozrywkową, to można się pośmiać. http://www.perlmonks.org/?node_id=861966  

 

Takie układy równań to łatwo rozwiązać metodą eliminacji Gaussa, o ile gdzieś po drodze nie będzie dzielenia przez 0, bo wtedy to chyba trzeba zmienić kolejność równań. Zresztą takie rzeczy to się rozwiązuje w Matlabie a nie w C. Tutaj masz metodę obliczeń przetestowaną w Scilabie (taki darmowy Matlab): 

 

-->A = [1, 1; 2, 0.5]
A =

1. 1.
2. 0.5

-->B = [34 ; 47]
B =

34.
47.

-->A\B
ans =

20.
14.

 

Czyli x = 20 i y = 14 

 

Link do komentarza
Udostępnij na innych stronach

Tutaj macie śmieszny film: 

 

A tutaj trochę linków do rożnych blogów pisanych przez programistów. Ten szajs rozmnaża mi się w przeglądarce. 

http://reprog.wordpress.com/ 

http://blog.wilshipley.com/ 

http://www.paulgraham.com/articles.html 

https://sites.google.com/site/steveyegge2/blog-rants 

http://www.joelonsoftware.com/ 

 

Gdybym chciał nauczyć się nowego języka skryptowego, chyba byłby to Ruby. 

Link do komentarza
Udostępnij na innych stronach

A mam Cię zhejcić? :v

A nie mam racji?

Bez dodatkowych bibliotek cokolwiek jest ciężko zrobić. Chociaż by takie rzeczy jak rozszerzanie obiektów,  klasy z dziedziczeniem czy poprawnie działające tablice asocjacyjne, wyświetlanie daty, mnożenie liczb całkowitych, wymieniać można długo. Poza tym każda ma własne implementacje podstawowych funkcji, co zwielokrotnia kod. Nie twierdze że JS jest zły tylko niewygodny. JS nie jest standardem, jest nim ECMAScript, który rozwija się bardzo powoli, niekoniecznie we właściwie strony.

 

Gdybym chciał nauczyć się nowego języka skryptowego, chyba byłby to Ruby. 

Masz dziwny sposób wybierania języków, z Perla do Ruby, trochę tak hipstersko.

Link do komentarza
Udostępnij na innych stronach

A nie mam racji?

Bez dodatkowych bibliotek cokolwiek jest ciężko zrobić. Chociaż by takie rzeczy jak rozszerzanie obiektów,  klasy z dziedziczeniem czy poprawnie działające tablice asocjacyjne, wyświetlanie daty, mnożenie liczb całkowitych, wymieniać można długo. Poza tym każda ma własne implementacje podstawowych funkcji, co zwielokrotnia kod. Nie twierdze że JS jest zły tylko niewygodny. JS nie jest standardem, jest nim ECMAScript, który rozwija się bardzo powoli, niekoniecznie we właściwie strony.

 

> Bez dodatkowych bibliotek cokolwiek jest ciężko zrobić. 

Tak abstrahując, przykładowo w C++ bez dodatkowych bibliotek nie zrobisz nic, co ma chociaż trochę praktycznego zastosowania

 

> rozszerzanie obiektów

var extend = function(destination, source)
{
    for (var property in source)
    {
        if (destination[property] && (typeof(destination[property]) == 'object')
                && (destination[property].toString() == '[object Object]') && source[property])
            extend(destination[property], source[property]);
        else
            destination[property] = source[property];
    }
    return destination;
} 

> poprawnie działające tablice asocjacyjne

Konkretnie?

 

wyświetlanie daty,  mnożenie liczb całkowitych

eeee....

// Data
var date = new Date();
console.log(date.toUTCString()) // Wed, 25 Dec 2013 12:21:29 GMT

tego drugiego przykładu na serio nie chcę podawać, bo jest zbyt prosty. Serio teraz to już zdurniałem O.o

 

 

JS nie jest standardem

em... http://www.w3.org/standards/techs/js

Link do komentarza
Udostępnij na innych stronach

Na przeglądarce z 2005r - owszem. Jednak wydaje mi się, że w ciągu tych paru lat Internet i mobilność zaczęło mieć tak ogromna rolę, że parsowanie JS przez przeglądarkę naprawdę nie stanowi żadnego problemu.

 

 

Z resztą, widział Pan kiedyś Javę? :v

Link do komentarza
Udostępnij na innych stronach

> Masz dziwny sposób wybierania języków, z Perla do Ruby, trochę tak hipstersko. 

Niby języków jest dużo, ale nie za bardzo jest w czym wybierać. Perl jest niezły do małych skryptów, ale tylko jak się go zna dobrze. Kiedy próbuję podzielić kod na moduły to dziwnie to wygląda, chociaż da się. Ruby polecił jakiś programista który wcześniej 10 lat używał Perla. Zresztą nie powiedziałem że będę się tego Ruby uczył teraz, tylko że w razie czego rozważam taką możliwość. Myślałem też nad Lua, ale to trochę taka zabawka. 

 

> Na przeglądarce z 2005r - owszem. Jednak wydaje mi się, że w ciągu tych paru lat Internet i mobilność zaczęło mieć tak ogromna rolę, że parsowanie JS przez przeglądarkę naprawdę nie stanowi żadnego problemu. 

Gdzieś widziałem dane, że na silniku V8 od google tak zoptymalizowali interpreter Javascripta, że stał się szybszy od innych języków skryptowych poza Luą.  Tyle, że to dane z 2009 roku, więc od tego czasu mogło się sporo pozmieniać. 

Link do komentarza
Udostępnij na innych stronach

Nie tylko skryptowych, V8 jest szybszy nawet od Javy.

Aha X_X już to widzę, w jakiś sztucznych testach na pewno, nie mówiąc już o tak zwanym soft staracie. 

Poza tym twoje rozszerzanie, czy tam kopiowanie, jest niepoprawne, zapomniałeś o hasOwnProperty. I chodziło mi o tą nierekurencyjną wersję, czyli kopiowanie płytkie nie głębokie.

 

A tak po za tym to pokodziłbym w CoffeeScripcie X_X ale nie mam natchnienia.

Edytowano przez Arpegius
Link do komentarza
Udostępnij na innych stronach

  • 4 weeks later...

Wszystkie dialekty SQL wyglądają podobnie jeżeli chodzi o podstawowe operacje (w końcu dlatego są dialektami SQL). Ciężko powiedzieć o którym najlepiej no bo to zależy do czego tego użyjesz. W oprogramowaniu OpenSource najpopularniejsze jest chyba MySQL, ewentualnie PostgreSQL. Czasem jest używane SQLite ale to raczej uproszczona baza danych. W komercyjnych projektach nie wiem, ale pewnie jakieś płatne silniki np. Oracle.

Ja do moich prywatnych projektów z reguły używam MySQL. Jest dość przyjazny w obsłudze i można znaleźć dużo informacji w internecie.

Edytowano przez Ravin
Link do komentarza
Udostępnij na innych stronach

Pomijając jak bardzo nie lubię tej technologi jednak dobrze jest rozumieć ten język. Jest to swego rodzaju podstawa.

Raczej radzę trzymać się standardu który jest aż nadto rozbudowany, podstawy raczej będą wszędzie działać, a bardziej skomplikowane rzeczy i tak trzeba doszyć na miarę.
 

SQLite3 to jest wszystko czego potrzebujesz do zabawy, lekkie łatwe i można dołączyć do każdego projektu. Jeżeli jednak potrzebujesz sieciowego dostępu to proponuję jednak Postgresa (Lol Ravin Postrage? naprawdę miałeś aż takie problemy?).

 

Oczywiście wiele projektów korzysta z ORMów, więc można nie ruszyć SQL a po ludzku korzystać z relacyjnej bazy danych. Jednak jeżeli ktoś myśli przyszłościowo to jednak zamiast tego radził bym się zainteresować ogólnie ruchem NoSQL :MJTQO:

Jeżeli chodzi o Pythona to SQLite jest wbudowany, a SQLAlchemy jest genialnym ORMem obsługującym wiele dialektów.

Link do komentarza
Udostępnij na innych stronach

Chcesz dodać odpowiedź ? Zaloguj się lub zarejestruj nowe konto.

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to bardzo łatwy proces!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
×
×
  • Utwórz nowe...