Witamy, Gość. Zaloguj się lub zarejestruj.

Autor Wątek: Rozmówki o programowaniu  (Przeczytany 13960 razy)

0 Użytkowników i 1 Gość przegląda ten wątek.

Abik

Rozmówki o programowaniu
« dnia: Styczeń 23, 2010, 21:14:56 »
nie przypominam sobie takiego tematu na bb, ale mogę się mylić :P

tak więc, jak ktoś ma ochotę to możemy pogadać co nieco o programowaniu, językach, środowiskach itp : d
pochwalcie się w jakich językach programujecie, co umiecie, czego nie umiecie, czego byście chcieli się nauczyć itp :P
no to może zacznę ^^
ja tak ogólnie znam parę języków... , php, javascript, delphi/pascal, c++, python, perl i asembler :P
przynajmniej w nich coś robiłem, nic ambitnego póki co... jakieś tam kalkulatory, skrypty, proste programy itp
jako tako znam też ruby i lolcode xD ... nigdy w nich nic nie pisałem, ale trochę czytałem i wydają się całkiem fajne oba, szczerze polecam ;p
ostatnio czytałem dużo o językach realizujących paradygmat programowania funkcyjnego... np. taki Haskell (hardkor troche o.O) no i z nowszych Erlang, Scala i Groovy... póki co mi się dość dziwne wydają... ale zdobywają ostatnio sporą popularność (przynajmniej te 3 ostatnie), więc pewnie trochę czasu im poświęcę, zwłaszcza tej Scali bo wydaje się dawać duże możliwości jak się ją opanuje ^^
na chwilę obecną uczę się Javy i C#, dość podobne oba, no i oba nawet fajne, strasznie mnie w javie rajcuje możliwość pisania programów na telefony komórkowe (pralki i lodówki i inne takie XD)... no i fajnie się w niej nawet robi programy z graficznym interfejsem :D
chyba tyle jak na razie ode mnie :D teraz wy się rozpisujcie :D

Sympatyk

  • *****
  • Podziękowania otrzymane: 44
  • Master of science
    • Zobacz profil
    • Moje
  • Ostatnie nagrody:
  • Layout of the Fortnight #45
Odp: Rozmówki o programowaniu
« Odpowiedź #1 dnia: Styczeń 23, 2010, 23:44:31 »
Dobry temat :)
Kiedyś uczyłem się SWI-Prolog i powiem że jest to badziew. Język jedno-wątkowy więc dużo na nim zrobic się nie da. Znam tylko JEDNĄ osobę która się tym zawodowo zajmuje i w środowisku dużo osoób ma z tego poprostu ubaw po pachy :3
C++/C to chyba podstawy i każdy rozpoczynający zabawe powinien te języki znac a minimalnie już podstawy.
Osobiście za Javą nie przepadam bardziej wolę C++ choc języki również podobne składniowo. Jak na złośc większośc programów na Uczelni muszę pisac w Javie choc są wyjątki gdzie język jest dowolny :) C# dzięki Bogu nie uczyłem się bo jest jedynie podróbka Javy zrobiona przez Macrosoft-a.
Cytuj
ostatnio czytałem dużo o językach realizujących paradygmat programowania funkcyjnego... np. taki Haskell (hardkor troche o.O) no i z nowszych Erlang, Scala i Groovy
Mam przedmiot "Języki paradygmaty programowania" i raz uruchomiłem program w języki Haskell i na tym moja przygoda z nim się skończyła. Jednak poznawałem możliwości OCAML-a jak i Pythona.
Cytuj
asembler
Szacun :) tak "nisko" zszedłeś :D

Abik

Odp: Rozmówki o programowaniu
« Odpowiedź #2 dnia: Styczeń 24, 2010, 13:22:51 »
Cytuj
Mam przedmiot "Języki paradygmaty programowania" i raz uruchomiłem program w języki Haskell i na tym moja przygoda z nim się skończyła.
no Haskell zbyt fajny nie jest z tego co zdążyłem zauważyć :D już te nowsze, Scala czy Groovy trochę lepsze bo one są trochę wzorowane na javie i korzystają z jvm, ale dla mnie i tak trochę dziwne, ale nie ma się co dziwić, do tej pory miałem styczność tylko z językami imperatywnymi : d

Cytuj
Szacun :) tak "nisko" zszedłeś :D
no zawsze jak tylko usłyszałem o programowaniu niskopoziomowym to chciałem spróbować :P no i wg mnie warto bo asembler jako język nie jest trudny :P trudne jest tylko zrozumienie architektury na którą ma być przeznaczony program, ale jak się ma jakieś dokumentacje, pomoce naukowe itp to można sobie śmiało dać radę :D a satysfakcja ze zrobienia działającego programu w asmie jest ogromna ^^

Moonmaker

  • *****
  • Podziękowania otrzymane: 80
  • Stranger in a strange land
    • Zobacz profil
    • Moonmaker on dA
  • Ostatnie nagrody:
  • Signature of the Week #81
  • Work of the Month #10
Odp: Rozmówki o programowaniu
« Odpowiedź #3 dnia: Styczeń 25, 2010, 22:31:04 »
ja powiem tylko że programowanie to nuda xd

Cytuj
I know what you're thinking. "Did he fire six shots or only five?" Well, to tell you the truth, in all this excitement I kind of lost track myself. But being as this is a .44 Magnum, the most powerful handgun in the world, and would blow your head clean off, you've got to ask yourself one question: Do I feel lucky? Well, do ya, punk?
Harry Callahan

Sympatyk

  • *****
  • Podziękowania otrzymane: 44
  • Master of science
    • Zobacz profil
    • Moje
  • Ostatnie nagrody:
  • Layout of the Fortnight #45
Odp: Rozmówki o programowaniu
« Odpowiedź #4 dnia: Styczeń 25, 2010, 22:43:23 »
ja powiem tylko że programowanie to nuda xd
Dla mnie zwiedzanie jest nudne :)

Abik

Odp: Rozmówki o programowaniu
« Odpowiedź #5 dnia: Styczeń 25, 2010, 22:48:46 »
co kto lubi ; d ... i zależy od podejścia i celów w jakim się pisze :P bo takie pisanie byle czego na potrzeby przemysłu czy biznesu faktycznie może być nudne... ale tworzenie np. własnego komunikatora, odtwarzacza plików multimedialnych czy gry komputerowej już nudne nie jest na 100% :P

Sympatyk

  • *****
  • Podziękowania otrzymane: 44
  • Master of science
    • Zobacz profil
    • Moje
  • Ostatnie nagrody:
  • Layout of the Fortnight #45
Odp: Rozmówki o programowaniu
« Odpowiedź #6 dnia: Styczeń 25, 2010, 22:59:50 »
btw: Abik jak zrobic w Pythonie że po wczytanie liczby wymiernej jeśli w mianowniku będzie ZERO to wyrzuci wyjątek :)

Abik

Odp: Rozmówki o programowaniu
« Odpowiedź #7 dnia: Styczeń 26, 2010, 12:56:49 »
to zależy jak sobie zaimplementujesz liczby wymierne bo nie są wbudowane w pythonie o ile się nie mylę :s chociaż są różne biblioteki matematyczne dodatkowe, które je dodają

tak na szybko można by zrobić coś takiego:

class Wymierne(object):
   def __init__(self, licznik, mianownik):
      self.licznik = licznik
      if mianownik != 0:
         self.mianownik = mianownik
      else:
         raise RuntimeError, 'Zero w mianowniku'

no i dodać tam jeszcze jakieś metody, żeby można coś z taką liczbą zrobić :P ... no i u mnie jak sprawdzałem to działa, chyba, że pomyliłem liczby wymierne z czymś innym xD

Sympatyk

  • *****
  • Podziękowania otrzymane: 44
  • Master of science
    • Zobacz profil
    • Moje
  • Ostatnie nagrody:
  • Layout of the Fortnight #45
Odp: Rozmówki o programowaniu
« Odpowiedź #8 dnia: Styczeń 26, 2010, 15:41:59 »
Tak, ale co jesli chce żeby liczba Jedna liczba wymierna miała Jedną zmienną a nie tak jak u Ciebie osobna na licznik i mianownik ? :)
No i właśnie się zdenerwowałem bo na Uczelni ułameczki ładnie wchodziły a tutaj na chacie każdy ułamek jest równy 0 :)

Abik

Odp: Rozmówki o programowaniu
« Odpowiedź #9 dnia: Styczeń 26, 2010, 22:29:57 »
takie coś zrobiłem:

class Wymierne(object):
   liczba = 0
   def __init__(self, licznik, mianownik):
      if mianownik != 0:
         liczba = licznik/mianownik
      else:
         raise RuntimeError, 'Zero w mianowniku'

no i później sobie tworze obiekt i jako argumenty podaje 1 i 3, jak próbuję wyświetlić pole liczba to też mi pokazuje 0 tak jak Tobie :O ... dziwna sprawa, powinno przecież pokazywać coś koło 0.33333 o.O

Sympatyk

  • *****
  • Podziękowania otrzymane: 44
  • Master of science
    • Zobacz profil
    • Moje
  • Ostatnie nagrody:
  • Layout of the Fortnight #45
Odp: Rozmówki o programowaniu
« Odpowiedź #10 dnia: Styczeń 28, 2010, 18:18:38 »
heh śmiech na sali :)
żeby zaliczyć przedmiot o którym tutaj wcześniej pisałem to wystarczyło napisać w pythonie funkcje silnie obliczając ją rekurencyjnie i iteracyjnie :D
Abik pewnie byś takie cos potrafił :) a może z użycie reduce
Oczywiście inny mieli gorszą sytuacje :P

Abik

Odp: Rozmówki o programowaniu
« Odpowiedź #11 dnia: Styczeń 28, 2010, 20:31:32 »
:D
no rekurencyjnie byłoby tak:
def silnia(n):
   if n == 0:
      return 1
   else:
      return n * silnia(n-1)

a iteracyjnie chyba mogłoby być tak:
def silnia2(n):
   wynik = 1
   if n == 0:
      return wynik
   else:
      while n>0:
         wynik *= n * (n-1)
         n -= 2
      return wynik
ta iteracyjna niby też działa, ale jakoś brzydko wygląda o.O
ale zaliczyłbym ? xd
« Ostatnia zmiana: Styczeń 28, 2010, 20:33:59 wysłana przez Abik »

Sympatyk

  • *****
  • Podziękowania otrzymane: 44
  • Master of science
    • Zobacz profil
    • Moje
  • Ostatnie nagrody:
  • Layout of the Fortnight #45
Odp: Rozmówki o programowaniu
« Odpowiedź #12 dnia: Styczeń 29, 2010, 00:07:02 »
Rekurencyjnie jest OK
Iteracyjnie zrobiłem z pętlą for
def silnia_ite(x):
    wynik=1
    for i in range (x):
        wynik=wynik*(i+1)
    return wynik
mniej linijeczek od Ciebie i działa :)

Abik

Odp: Rozmówki o programowaniu
« Odpowiedź #13 dnia: Styczeń 29, 2010, 13:25:44 »
nieźle, w ogóle nie pomyślałem, żeby zamiast odejmować 1, dodawać 1, przez to tam się później wzięło te dziwne n-=2 :P
no ale ogólnie nie myślałem, że takie rzeczy wystarczą, żeby zaliczyć przedmiot :P inne przedmioty też tak łatwo zaliczyć czy więcej trzeba się pomęczyć? ;p

Sympatyk

  • *****
  • Podziękowania otrzymane: 44
  • Master of science
    • Zobacz profil
    • Moje
  • Ostatnie nagrody:
  • Layout of the Fortnight #45
Odp: Rozmówki o programowaniu
« Odpowiedź #14 dnia: Luty 02, 2010, 13:59:10 »
Ten przedmiot ma laborki i wykład.
Laborki zaliczyłem przez 100% obecności + te dwie funkcje silnii + program w javie(dziedzieczenie) + python(klasa wymierna)-to co się pytałem :)
a Wykład to UML-rachunek lambda i logika Hoera :)

Moja funkcja jest nawet szybka od Twojej mo u mnie czas jest równy theta(n) a u Ciebie theta(n^2) jeśli mnie pamięc nie myli :3

wszystko zależy od prowadzących ale osobiście się nie przemęczam :)

Już wiem czemu wpisując
>>> 1/2
0
Otrzymywaliśmy 0, sprawa jest b. prosta ponieważ tutaj jest dzielenie dwóch liczb CAŁKOWITYCH zatem bez reszty.
Jeśli chcemy żeby wynik był taki jaki oczekumy czyli 0.5 to musimy wpisać
>>> 1.0/2; 1/2.0
0.5
0.5
Jedna liczba musi być RZECZYWISTA :)
Teraz żeby to przenieść do jakiś funkcji czy klasy to przecież użytkownik nie będzie wpisywał liczb rzeczywistych tylko całkowite zatem najproście jest wynik "sFLOATować"
a=input('Podaj a: ')
b=input('Podaj b: ')
print 'Wynik: ',float(a)/b
« Ostatnia zmiana: Luty 02, 2010, 14:03:14 wysłana przez Sympatyk »