[howto] Programowanie

Wszystko na temat otaczającego Nas zewsząd komputera.

Re: [howto] Programowanie

Postprzez Meth » 2006-05-03, 20:12:08

kamil81 napisał(a):Nurtuje mnie jeszcze jedno pytanie, czy można zobaczyć kod źródłowy jakiegoś programu np. Winampa ?

Można, jak ci producenci udostępnią ;) Bez problemu możesz sobie oglądać kody źródłowe programów OpenSource. Closed source jak Winamp tez teoretycznie można, ale w praktyce jest to prawie niemożliwe (możesz sobie zdisasemblować - to jedyny sposób)
Meth.
Avatar użytkownika
MethNone specified
BOSSu
BOSSu
 
Posty: 824
Dołączył(a): 2004-10-31, 13:22:13
Lokalizacja: z Daleka
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez kamil » 2006-05-03, 20:12:30

A długi jest taki kod źródłowy do takiego programu?
"Nie ma nieświadomości bardziej hańbiącej jak przekonanie, że coś się wie o czym się nic nie wie."
Sokrates.
Avatar użytkownika
kamilNone specified
Uzależniony
Uzależniony
 
Posty: 3259
Dołączył(a): 2005-12-25, 22:44:41
Lokalizacja: Dębica
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez Meth » 2006-05-03, 20:15:43

Zależy jaki program. ÂŚciągnij sobie źródła xmms'a pod Linuksa i zobacz jak to wygląda. Nie ma tak, że cały program jest w jedym pliku, jest wiele plików z kodem źródłowym, które zawierają moduły wykonujące różne zadania.
Meth.
Avatar użytkownika
MethNone specified
BOSSu
BOSSu
 
Posty: 824
Dołączył(a): 2004-10-31, 13:22:13
Lokalizacja: z Daleka
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez thalcave » 2006-05-03, 20:45:30

Do odtwarzacza audio jeszcze daleka droga.
Skup się na tu i teraz.
Przerobiłeś już pętle? Jak tak to napisz programik, ktory wczytuje liczbę sprawdza czy jest pierwsza i wyświetla odpowiedni komunikat. ;)

[ Dodano: 2006-05-03, 20:47 ]
kamil81 napisał(a):A ja pisze w Dev-C++.


Oki, ale w Linuxie kompilator tylko kompiluje. Nie pisze się w nim. Przynajmniej kompilator pod basha :rotfl:

kamil81 napisał(a):Teraz wiem że jak bym zaczął uczyć się programowania od czegoś innego to zrobiłbym błąd, bo C++ jest chyba najlepszym językiem i najpowszechniej stosowanym, a po co się uczyć C skoro później będe musiał uczyć się od nowa C++, a tam jest nie wiele zmian.

Sam sobie zaprzeczasz. Skoro C i C++ w składni niewiele się różnią to jak od nowa. Mi na 1 roku wprowadzili C. I wymagali tego przez 3 semestry. Na jednych laborkach w 1 semestrze pokazali nam mały programik w C++. I ja przeszedłem na niego. Wszyscy pisali w C a ja zawsze pytałem czy mogę pisać w C++ :hyhy: A nie uczyłem się go od nowa.
"It's great to be here. It's great to be anywhere"
Keith Richards
Avatar użytkownika
thalcaveNone specified
Weteran
Weteran
 
Posty: 4328
Dołączył(a): 2005-12-28, 20:02:55
Lokalizacja: odległa galaktyka
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez kamil » 2006-05-03, 20:58:06

W Dev-C++ pisze i kompiluje.
"Nie ma nieświadomości bardziej hańbiącej jak przekonanie, że coś się wie o czym się nic nie wie."
Sokrates.
Avatar użytkownika
kamilNone specified
Uzależniony
Uzależniony
 
Posty: 3259
Dołączył(a): 2005-12-25, 22:44:41
Lokalizacja: Dębica
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez thalcave » 2006-05-03, 21:01:30

kamil81 napisał(a):W Dev-C++ pisze i kompiluje.

Wiem.. też w nim pisałem na Windowsie :hyhy:
A co z moim zamówieniem, napiszesz? :rotfl:
"It's great to be here. It's great to be anywhere"
Keith Richards
Avatar użytkownika
thalcaveNone specified
Weteran
Weteran
 
Posty: 4328
Dołączył(a): 2005-12-28, 20:02:55
Lokalizacja: odległa galaktyka
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez Suceed » 2006-05-03, 21:04:05

thalcave napisał(a):A co z moim zamówieniem, napiszesz? :rotfl:

Do tego będzie pewnie mial gotowy kod w książce :]
Avatar użytkownika
SuceedNone specified
Weteran
Weteran
 
Posty: 7015
Dołączył(a): 2004-09-04, 15:25:09
Lokalizacja: Katowice
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez thalcave » 2006-05-03, 21:13:35

Suceed napisał(a):
thalcave napisał(a):A co z moim zamówieniem, napiszesz? :rotfl:

Do tego będzie pewnie mial gotowy kod w książce :]

Może... ale każdy z prostszych programów kod zawsze gdzieś znajdzie... a programu z kilkoma funkcjami jeszcze nie napisze ;)
Ostatnio edytowano 2006-05-03, 21:15:02 przez thalcave, łącznie edytowano 1 raz
"It's great to be here. It's great to be anywhere"
Keith Richards
Avatar użytkownika
thalcaveNone specified
Weteran
Weteran
 
Posty: 4328
Dołączył(a): 2005-12-28, 20:02:55
Lokalizacja: odległa galaktyka
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez kamil » 2006-05-03, 21:14:15

thalcave napisał(a):A co z moim zamówieniem, napiszesz?


Książke mam dopiero od 2 dni, tak więc za wiele nie zdążyłem się nauczyć.
Czyli chyba nie zrealizuje zamówienia.
"Nie ma nieświadomości bardziej hańbiącej jak przekonanie, że coś się wie o czym się nic nie wie."
Sokrates.
Avatar użytkownika
kamilNone specified
Uzależniony
Uzależniony
 
Posty: 3259
Dołączył(a): 2005-12-25, 22:44:41
Lokalizacja: Dębica
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez thalcave » 2006-05-03, 21:20:26

kamil81 napisał(a):
thalcave napisał(a):A co z moim zamówieniem, napiszesz?


Książke mam dopiero od 2 dni, tak więc za wiele nie zdążyłem się nauczyć.
Czyli chyba nie zrealizuje zamówienia.


To masz na przyszłość :rotfl: chociaż u mnie jak ktoś dostał taki programik [jako pierwszy do napisania] to skakał do góry... naogół były jakieś szachy czy kółko i krzyżyk :kwasny:
"It's great to be here. It's great to be anywhere"
Keith Richards
Avatar użytkownika
thalcaveNone specified
Weteran
Weteran
 
Posty: 4328
Dołączył(a): 2005-12-28, 20:02:55
Lokalizacja: odległa galaktyka
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez kamil » 2006-05-03, 21:24:09

thalcave napisał(a):chociaż u mnie jak ktoś dostał taki programik [jako pierwszy do napisania] to skakał do góry... naogół były jakieś szachy czy kółko i krzyżyk


No ale ja nie miałem z programowaniem nigdy wcześniej nic wspólnego.
"Nie ma nieświadomości bardziej hańbiącej jak przekonanie, że coś się wie o czym się nic nie wie."
Sokrates.
Avatar użytkownika
kamilNone specified
Uzależniony
Uzależniony
 
Posty: 3259
Dołączył(a): 2005-12-25, 22:44:41
Lokalizacja: Dębica
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez thalcave » 2006-05-03, 22:01:34

kamil81 napisał(a):
thalcave napisał(a):chociaż u mnie jak ktoś dostał taki programik [jako pierwszy do napisania] to skakał do góry... naogół były jakieś szachy czy kółko i krzyżyk


No ale ja nie miałem z programowaniem nigdy wcześniej nic wspólnego.

Większość z mojego roku też :orany:
"It's great to be here. It's great to be anywhere"
Keith Richards
Avatar użytkownika
thalcaveNone specified
Weteran
Weteran
 
Posty: 4328
Dołączył(a): 2005-12-28, 20:02:55
Lokalizacja: odległa galaktyka
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez kamil » 2006-05-03, 22:07:15

No i co poradzili sobie sami, czy z pomocą.
"Nie ma nieświadomości bardziej hańbiącej jak przekonanie, że coś się wie o czym się nic nie wie."
Sokrates.
Avatar użytkownika
kamilNone specified
Uzależniony
Uzależniony
 
Posty: 3259
Dołączył(a): 2005-12-25, 22:44:41
Lokalizacja: Dębica
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez traphezz » 2006-05-03, 22:29:29

Skoro skakali z radosci to raczej poradzili.

BTW. tez sie chyba zaczne uczyc z mojego e-book'a bo widze, ze mi sie przyda :hyhy:

traphezzNone specified
Weteran
Weteran
 
Posty: 5249
Dołączył(a): 2004-11-08, 17:49:22
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy
Imię: Adam

Re: [howto] Programowanie

Postprzez BlueMan » 2006-05-04, 08:07:31

Nie wiedziałbym tylko jak sprawdzać, czy liczba jest l.pierwszą :|

Jeśli ta liczba N była by z jakiegoś konkretnego przedziału, to wpisałbym wszystkie możliwości l.pierwszych do jakijś tablicy,a potem metodą "dziel i zwycieżaj" bym wyszukał, czy wprowadzona N jest l.pierwszą ;)

θ(nlgn) - bodajrze będzie złożoność tego algorytmu.... (nie nawidze wyliczać zlożoności ;/ )
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19105
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon

Re: [howto] Programowanie

Postprzez thalcave » 2006-05-04, 10:07:08

BlueMan napisał(a):Nie wiedziałbym tylko jak sprawdzać, czy liczba jest l.pierwszą :|


A liczba 103 jest pierwsza? Jak to sprawdzasz? :P
Ale tak matematycznie :)

[ Dodano: 2006-05-04, 10:07 ]
kamil81 napisał(a):No i co poradzili sobie sami, czy z pomocą.

Większość programy dostała w prezencie lub kupiła :kwasny:

Ja właśnie napisałem programik taki:
Na wydziale FTiMS wdrożono niedawno eksperymentalny system analizy pisma ręcznego (OCR). System będzie wykorzystywany przez wykładowców m. in. do automatycznego przetwarzania list obecności do postaci cyfrowej. System przeszedł dość wymagającą procedurę QA i obecnie mamy pewność, że podpisy nawet bardzo brzydko piszących studentów zostaną prawidłowo rozpoznane. Jedyny znany i jeszcze nie poprawiony bug polega na tym, że czasem małe litery są rozpoznawane jako wielkie i odwrotnie. Np. 'j' w podpisie może zostać zinterpretowane jako 'J' (ale nigdy jako inna litera).

Jeden z wykładowców postanowił wykorzystać system do przeprowadzenia pewnych badań statystycznych. Interesuje go mianowicie frekwencyjność imion wśród jego studentów. Napisz program, który pomoże wykładowcy w tych badaniach.

Wejściem Twojego programu jest lista obecności wygenerowana przez system OCR, składająca się z pewnej liczby wierszy w następującym formacie:

[nr][kropka][spacja][nazwisko][spacja][imie]

Twój program powinien wygenerować po jednym wierszu tekstu dla wszystkich różnych imion pojawiających się na liście. Każdy z tych wierszy powinien mieć format:

[imie wielkimi literami][spacja][liczba wystąpień]

Wyświetlane wiersze powinny być posortowane według malejącej liczby wystąpień, a przy remisach według porządku alfabetycznego imion (por. przykład).

Możesz założyć, że [nr] będzie poprawną liczbą całkowitą dodatnią nie większą od 100 000, a wszystkie nazwiska i imiona będą spójnymi ciągami liter (małych lub wielkich) alfabetu angielskiego o długości nie przekraczającej 20. Długość listy nie przekroczy 100 000 wierszy.
Przykład

Input:
1. KowalSki JaCEk
2. mazurkiewicz pIoTR
3. prokoP ANna
4. MisioL annA
5. BerezOwSki jaCEK
6. pietraS ANNA
7. WILkowsKA aneta

Output:
ANNA 3
JACEK 2
ANETA 1
PIOTR 1
"It's great to be here. It's great to be anywhere"
Keith Richards
Avatar użytkownika
thalcaveNone specified
Weteran
Weteran
 
Posty: 4328
Dołączył(a): 2005-12-28, 20:02:55
Lokalizacja: odległa galaktyka
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez BlueMan » 2006-05-04, 10:19:21

Patrząc na moją znajomość PHP (a jest on porównywalny do C++) to w miare prosty program

1. Przetwarzam wszystkie nazwiska i imiona do "czytelnej" formy bez tYcH KrzakOW
2. Rozdzielam je spacją i czytam 3 argument (imie) z kazdej linii po kolei
3. Nowa tablica 2 wymiarowa, która ma spis imion i ilość ich wystąpień.



Kod: Zaznacz cały
# include <iostream>
# include <cstdlib>
using namespace std;

const int ILE=100;

int main()
{
    int stat[35],i,s,liczba;
   
    for (i=0; i<37; ++i)
        stat[i]=0;
   
    for (i=0; i<ILE; ++i)
    {
        liczba=rand()%36 +1;
        stat[liczba]+=1;
    }
   
    cout <<"Wysietlanie calych statystyk\n\n";
   
    s=0;
    for (i=0; i<37; ++i)
    {
        cout <<i<<": "<<stat[i]<<"\t";
        s+=1;
        if (s==5)
        {
            cout <<"\n";
            s=0;
        }
    }
}

Mój program statystyczny ruletki (C++)
Czytaj regulamin - unikniesz wielu problemów.
Korzystajcie z załączników na forum aby pliki nie ginęły w przyszłości w zewnętrznych serwisach.
Avatar użytkownika
BlueManMale
Administrator
Administrator
 
Posty: 19105
Dołączył(a): 2004-05-26, 17:34:59
Lokalizacja: Dabrowa Górn.
Podziękował : 6 razy
Otrzymał podziękowań: 5 razy
Imię: Szymon

Re: [howto] Programowanie

Postprzez thalcave » 2006-05-04, 10:30:51

Ja wczytuje w moim programie 3 słowo z każdej linijki.
Powiększam litery ;) i wrzucam na multiseta, potem sprawdzam które najczęściej występuje wrzucam do pliku i kasuje z multiseta... i tak póki multiset ma jakieś elementy :P
Kogoś interesuje kod?

Blue, a moja podpowiedź odnośnie programu sprawdzającego liczbę pierwszą pomogła :hyhy:

[ Dodano: 2006-05-04, 10:45 ]
Mam małe pytanka co do Twojeggo programu:
Kod: Zaznacz cały
# include <iostream>
# include <cstdlib>   //w tym programie po co jest ta biblioteka?
using namespace std;

const int ILE=100;

int main()
{
    int stat[35],i,s,liczba;
   
    for (i=0; i<37; ++i)
        stat[i]=0;
   
    for (i=0; i<ILE; ++i)
    {
        liczba=rand()%36 +1;
        stat[liczba]+=1;    // stat[liczba]++; się zazwyczaj używa
    }
   
    cout <<"Wysietlanie calych statystyk\n\n";
   
    s=0;
    for (i=0; i<37; ++i)
    {
        cout <<i<<": "<<stat[i]<<"\t";
        s+=1;
        if (s==5)
        {
            cout <<"\n";
            s=0;
        }
    }  //przydałby się na końcu cout << endl; bo w bashu to gorzej wygląda, a poza tym
      //w Windowsie program się zamknie i nie zdążysz przeczytać wyniku - jakieś stop by się przydało
}
"It's great to be here. It's great to be anywhere"
Keith Richards
Avatar użytkownika
thalcaveNone specified
Weteran
Weteran
 
Posty: 4328
Dołączył(a): 2005-12-28, 20:02:55
Lokalizacja: odległa galaktyka
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez kamil » 2006-05-04, 11:04:01

No to trzeba dopisać cin.get(); i się nie zamknie.

thalcave napisał(a):Kogoś interesuje kod?


Ja chce zobaczyć.

[ Dodano: 2006-05-04, 11:05 ]
Zrobiłem dziś swoje 2 programy sam bez żadnej pomocy z 2 funkcjami.
Ostatnio edytowano 2006-05-04, 11:22:54 przez kamil, łącznie edytowano 1 raz
"Nie ma nieświadomości bardziej hańbiącej jak przekonanie, że coś się wie o czym się nic nie wie."
Sokrates.
Avatar użytkownika
kamilNone specified
Uzależniony
Uzależniony
 
Posty: 3259
Dołączył(a): 2005-12-25, 22:44:41
Lokalizacja: Dębica
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Re: [howto] Programowanie

Postprzez thalcave » 2006-05-04, 11:16:47

kamil81 napisał(a):No to trzeba dopisać sin.get(); i się nie zamknie.

Chyba cin.get();
I najlepiej dwa razy :rotfl:

kamil81 napisał(a):
thalcave napisał(a):Kogoś interesuje kod?

Ja chce zobaczyć.


Prosze bardzo. Na wejsciu jest plik tekstowy input, efektem bedzie plik output (program taki stworzy lub nadpisze dane).
Kod: Zaznacz cały
#include <fstream>  //wczytuje z pliku i zapisuje do pliku
#include <string>   //obsluga stringow - tablice charów
#include <set>       //obsługa klasy kontenerowej set i multiset
#include <iostream>  //standart
using namespace std;


string upper(string);  //deklaracja funkcji


int main()
{


  ifstream in("input");                 //wczytanie z pliku input
  ofstream out("output");             //zapis do pliku output
  string word;                            //deklaracja zmiennej typu string
  multiset<string> MSet;           //deklaracja MultiStosu

  while (in >> word)               //poki bedzie wczytywac z pliku ciag znakow
    {
      for (int i=0; i<2; i++)
         in >> word;                  //wczytuje II ciag znakow w lini i potem III

      word=upper(word);         //wywolanie funkcji upper

      MSet.insert(word);         //wrzucenie word do multistosu

    };

  while (MSet.size())          //poki MSet.size rozne od 0
  {

  int how=0;

  for (multiset<string>::iterator it=MSet.begin(); it!=MSet.end(); it++)  //wskaznik it wskazuje na kazdy element stosu
     {
       if (how<MSet.count(*it))       
         how=MSet.count(*it);
     };                                       //sprawdzenie ile razy wystepuje najczestrze imie


  for (multiset<string>::iterator it=MSet.begin(); it!=MSet.end(); it++)
     {
       if (MSet.count(*it)==how)
         {
            out << *it << " " << MSet.count(*it) << endl;
            MSet.erase(*it);
         };                                //wypisanie tych imion i wypisanie ile razy wystepuja oraz wykasowanie ich z stosu

     };       

  };

  return 0;
};

string upper(string name)         //funkcja zamienia male litery slowa na wielkie
{
  for (int i=0; i<name.size(); i++)
     {
        if ((name[i]>96)&&(name[i]<123))
          name[i]+=-32;
     };

  return name;
};



Skoro napisałeś już program z 2 funkcjami to liczba pierwsza nie powinna być problemem. Tam jest tylko 1 funkcja :super:
Ostatnio edytowano 2006-05-04, 11:29:38 przez thalcave, łącznie edytowano 2 razy
"It's great to be here. It's great to be anywhere"
Keith Richards
Avatar użytkownika
thalcaveNone specified
Weteran
Weteran
 
Posty: 4328
Dołączył(a): 2005-12-28, 20:02:55
Lokalizacja: odległa galaktyka
Podziękował : 0 razy
Otrzymał podziękowań: 0 razy

Poprzednia stronaNastępna strona

  • Inne

Powrót do Komputery

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 316 gości

cron