Gå til innhold

daysleper

Medlemmer
  • Innlegg

    296
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av daysleper

  1. Blir litt off-topic dette egentlig ...

     

    Om Kilogram ikke liker Java er vel det ingen ting å "forsvare" seg mot; folk har rett til å like/ikke like det de vil og har lov til å si det. Det er ingen grunn til å forsvare seg fordi andre har andre meninger om slike ting som kanskje kan ansees å være en smaksak.

     

    Det er så klart greit å spørre hvorfor en liker/ikke liker en ting.

     

    Det finnes høyskoler som underviser i andre språk enn Java. C++ f.eks. (Jeg må få rota meg inn på en sånn en snart. :) )

     

    ..og ja, du gjetter riktig, jeg kan ikke fordra Java. :p

     

    "Java isn't platform independent; it is a platform. Like Windows, it is a proprietary commercial platform."

     

    Dette er tatt fra Bjarne Stroustrups FAQ; jeg har i grunn noenlunne de samme meningene som han om flere ting.

    Hele svaret (og spørsmålet) angående Java fra FAQ'en hans:

     

    Is Java the language you would have designed if you didn't have to be compatible with C?

    No. Java isn't even close. If people insist on comparing C++ and Java - as they seem to do - I suggest they read The Design and Evolution of C++ (D&E) to see why C++ is the way it is, and consider both languages in the light of the design criteria I set for C++. Those criteria will obviously differ from the criteria of Sun's Java team. Despite the syntactic similarities, C++ and Java are very different languages. In many ways, Java seems closer to Smalltalk than to C++.

     

    Much of the relative simplicity of Java is - like for most new languages - partly an illusion and partly a function of its incompleteness. As time passes, Java will grow significantly in size and complexity. It will double or triple in size and grow implementation-dependent extensions or libraries. That is the way every commercially successful language has developed. Just look at any language you consider successful on a large scale. I know of no exceptions, and there are good reasons for this phenomenon. [i wrote this before 2000; now see a preview of Java 1.5.]

     

    Java isn't platform independent; it is a platform. Like Windows, it is a proprietary commercial platform. That is, you can write programs for Windows/Intel or Java/JVM, and in each case you are writing code for a platform owned by a single corporation and tweaked for the commercial benefit of that corporation. It has been pointed out that you can write programs in any language for the JVM and associated operating systems facilities. However, the JVM, etc., are heavily biased in favor of Java. It is nowhere near being a general reasonably language-neutral VM/OS.

     

    Personally, I'll stick to reasonably portable C++ for most of the kind of work I think most about and use a variety of languages for the rest.

     

     

    Om noen liker Java -- helt greit for meg; jeg spør ikke en gang hvorfor. -- og om noen ikke liker C++ -- samme greia. Jeg er fornøyd med mitt uansett.

     

     

    Litt on-topic igjen

     

    En høyskole/universitets-utdannelse er sterkt å foretrekke fremfor noe "kjappt og enkelt" ja.

     

    ..og har man i tillegg praktisk erfaring å vise til, enten i form av jobb eller programmerings-relaterte prosjekter, er jo det veldig bra tror jeg da.

  2. Åh? Hvorfor det? Hva er galt?

     

    Fra man -siden til ptrace:

     

    ...blablabla..  on error -1 is returned and errno is set ..

     

    errno:

     

    EPERM

    The specified process cannot be traced. This could be because the parent has insufficient privileges; non-root processes cannot trace processes that they cannot send signals to or those running setuid/setgid programs, for obvious reasons. Alternatively, the process may already be being traced, or be init (pid 1).

     

    Har du noen annen løsning? -- Si i fra hvis du finner noe bedre da .. :dontgetit:

  3. eller .. her funka'n ja:

     

    #include <stdio.h>
    #include <sys/ptrace.h>
    
    int main()
    {
    if(ptrace(PTRACE_TRACEME, 0, 1, 0) < 0) {
     printf("DEBUGGING... Bye\n");
     return(1);
    }
    printf("Hello\n");
    return(0);
    }
    

     

     

    lars@blackbox tests $ ./test3

    Hello

    lars@blackbox tests $ gdb test3

    GNU gdb 6.0

    Copyright 2003 Free Software Foundation, Inc.

    GDB is free software, covered by the GNU General Public License, and you are

    welcome to change it and/or distribute copies of it under certain conditions.

    Type "show copying" to see the conditions.

    There is absolutely no warranty for GDB.  Type "show warranty" for details.

    This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1".

     

    (gdb) run

    Starting program: /mnt/home/lars/tests/test3

    DEBUGGING... Bye

     

    Program exited with code 01.

    (gdb)

    ..stilig! :)

  4. ..og videre kan du jo legge dette i en fil random.hh f.eks.:

     

    #ifndef _OXYMORA_RANDOM_HH_
    #define _OXYMORA_RANDOM_HH_
    
    #include <cstdlib> // eventuellt stdlib.h, for rand()
    #include <time.h>
    
    namespace Oxymora {
    
    template<typename T>
    class Random
    {
    public:
     Random(T min_, T max_)
     	:_min(min_),
       _max(max_)
     {
     	srand(time(0));
     	_delta = RAND_MAX / (_max - _min);
     }
     
     T operator()(T min_, T max_)
     {
     	_min = min_;
     	_max = max_;
     	_delta = RAND_MAX / (_max - _min);
     	return(operator()());
     }
     
     T operator()()
     {
     	return((rand() / _delta) + _min);  	
     }
     
    private:
     T _min, _max;	
     T _delta;
    }; // class Random
    
    } // namespace Oxymora
    
    #endif //#define _OXYMORA_RANDOM_HH_
    

     

    ..og lage en test.cpp fil der du bruker klassen Random slik:

     

    #include "random.hh"
    #include <iostream>
    
    using namespace Oxymora;
    using namespace std;
    
    
    int main()
    {
    Random<float> randFloat(-10, -20);
    
    cerr << "5 tilfeldige flytetall mellom -10 og -20: ";
    for(int i = 0; i < 5; i++) {
     cerr <<  fixed << randFloat() << " ";
    }
    cerr << endl;
    
    
    randFloat(-100, 100);
    
    cerr << "5 tilfeldige flytetall mellom -100 og 100: ";
    for(int i = 0; i < 5; i++) {
     cerr <<  fixed << randFloat() << " ";
    }
    cerr << endl;
    
    
    Random<int> randInt(20000, 10000);
    
    cerr << "5 tilfeldige heltall mellom 20000 og 10000: ";
    for(int i = 0; i < 5; i++) {
     cerr <<  fixed << randInt() << " ";
    }
    cerr << endl;
    
    randInt(-10, 10);
    
    cerr << "5 tilfeldige heltall mellom -10 og 10: ";
    for(int i = 0; i < 5; i++) {
     cerr <<  fixed << randInt() << " ";
    }
    cerr << endl;
    
    return(0);
    }
    

  5. Jeg vet rett og slett ikke. Kanskje det er en annen måte å gjøre det her på? Eventuellt en annen måte å "få tak i" current.

    Jeg vet ikke nok om dette .. :dontgetit:

     

    Kanskje ikke helt det du er ute etter, og disse tar stort sett for seg det samme som man-siden til ptrace:

    http://www.linuxgazette.com/issue81/sandeep.html

    http://www.linuxgazette.com/issue83/sandeep.html

    http://www.linuxgazette.com/issue85/sandeep.html

    http://www.phrack.org/show.php?p=59&a=12

     

    Si fra hvis du finner ut av dette!

  6. #include <iostream>
    #include <time.h>
    
    using namespace std;
    
    int main()
    {
    int test;
    srand(time(0));
    test = rand();
    cout << test << endl;
    return(0);
    }
    

     

     

    lars@blackbox tests $ ./test3

    528763107

    lars@blackbox tests $ ./test3

    1677840852

    lars@blackbox tests $ ./test3

    769260778

    lars@blackbox tests $ ./test3

    2014242563

    lars@blackbox tests $ ./test3

    21232793

    lars@blackbox tests $ ./test3

    951449038

    lars@blackbox tests $ ./test3

    809094422

    lars@blackbox tests $

     

     

    ...ser da ut til å bli tilfeldig her; åssen plattform (OS) kjører du det her på?

  7. ..er ikke sikker på det jeg heller.. og det er ikke sikkert det er beste stedet å starte heller.. :dontgetit:

     

    ..derfor .. tror jeg:

     

    Dette med arv må vi ta litt lengre ut i guiden; nettopp fordi det kun er en liten del av OOP.

     

    Må ikke glemme at OOP går ut på det å sammle data og funksjonalitet; og det er det man kanskje først må få med seg. Dette er også OOP; OOP er altså ikke bare arv. IMHO. :)

     

    Uansett kan jeg tenke meg at disse boksene var UML-diagrammer. Skal se om jeg får tegnet noen. :)

     

    Har oppdatert litt nå; lagt til noen illustrasjoner. De ble litt utydelige i Postscript og PDF-dokumentene, så jeg la dem ut som PNG-filer også. Hvis de viser seg å være gode, så skal jeg tegne dem på nytt.

     

    Jeg skal se om jeg får tid til å oversette koden til pseudokode litt siden.

     

     

    Det er linkene (view/download) på toppen i begge tilfeller som er de aktuelle linkene for å laste ned:

    PDF-versjon

    Postscript-versjon

     

    Her er det den øverste linken (markup) som gjelder.

    Kildekoden: http://scm.nostdal.net/cgi-bin/viewcvs.cgi...ts/oopintro.cpp

     

    PNG-bildene (stereo_oo.png og stereo_prosedyrellt.png) er her (view):

    http://scm.nostdal.net/cgi-bin/viewcvs.cgi..._Programmering/

     

     

    Edit:

    Jeg har bestemt meg for å ta en pause med artikkel-skrivingen siden jeg har litt annet jeg må få unna først. Blandt annet en bok jeg -må- få lest ferdig, noe kode jeg må få pusset på, og så er det jul+nyttårsfeiringer straks også. Så dette kan ta litt tid! :)

  8. I C++ :

     

    #include <iostream>
    #include <fstream>
    #include <sstream>
    
    using namespace std;
    
    
    int main(int argc, char** argv)
    {
    if(argc < 3) {
     cout << "Usage: secline inputfile outputfile" << endl;
     exit(1);
    }
    
    stringstream ss;
    fstream f1, f2;
    
    f1.open(argv[1]);
    f2.open(argv[2], ios::out);
    
    char ch;
    bool toggle = true;
    
    while(f1.get(ch)) {
     ss << ch;
    
     if(ch == '\n') {
     	if(toggle == true) {
       cout << ss.str();
       f2 << ss.str();
       toggle = false;
     	}
     	else 
       toggle = true;
     	
     	ss.str("");
     } // if(ch..
    } // while
    
    return(0);
    } // main()
    
    

     

    Fort å gæli, men skulle fungere greit.

     

    *irritere seg over tab og space som fortsatt blir litt på trynet i forumet*

  9. Hvis du mener å kjøre et C++ program direkte i en nettleser finnes det til noen nettlesere plugins som kan lastes ned. Disse kan også ansees å kjøres eller vises i en nettleser.

     

    For eksempel en film-fremviser-plugin som MPlayer-plugin til Linux eller Windows Media Player til Windows. Eller Macromedia Flash Player plugin'en.

  10. Ser ut til at mediene har gjennomført det de er ute etter; å skape interesse (eller seertall) for noe som altid har vært og er uinteressant.

     

    Det handler om penger, men det er altid kjipt at folk blir syke. Samme hvem det er og samme om mediene "utnytter det" eller ikke.

     

    Bare det skjer noe så er de der når de vet det er noe folk følger med på, samme hvor dumt det egentlig er. Alle (?) vet vel egentlig dette; både de som lager reportasjene og de som ser på.

     

    Vel, jeg skal ikke si så mye; jeg vet ærlig talt ikke hva jeg ville vist hvis jeg kunne velge hva som skulle vises på TV.

     

    Simpsons ville det kanskje blitt mye av tror jeg. :) Det er i grunn mer realistisk og seriøst, men fremstillt på en morsom måte, enn det som faktisk liksom skal være seriøst; vel sykdom er uansett altid seriøst på sitt vis.

     

    blablabla .. :)

  11. ..og før du (eventuellt) spør, her er gjeldende kode for setninger i stedet for ord hvis du skulle trenge dette:

     

    #include <iostream>
    #include <cstdlib>
    #include <string>
    
    using namespace std;
    
    int main(void)
    {
    char c[255];
    int i;
    
    for(;;) {
     cout << "skriv en setning: ";
     cin.getline(c, 255);
    
     if(c == "quit")
     	return 0;
     	
     i = 0;
     while(c[i]) 
     	cout << (int)c[i++] << " ";
     cout << endl;
    }
    } // main()
    

     

    :fun:

  12. #include <iostream>
    #include <cstdlib>
    #include <string>
    
    using namespace std;
    
    int main(void)
    {
    string s;
    int i;
    
    for(;;) {
     cout << "skriv et ord: ";
     cin >> s;
    
     if(s == "quit")
     	return 0;
     	
     i = 0;
     while(s[i]) 
     	cout << (int)s[i++] << " ";
     cout << endl;
    }
    } // main()
    

     

    Du mener slik:

     

    skriv et ord: hei

    104 101 105

    skriv et ord:

    ?

  13. Kanskje noe slikt du er ute etter:

     

    #include <iostream>
    #include <cstdlib>
    #include <string>
    
    using namespace std;
    
    int main(void)
    {
    string s;
    int i;
    
    for(;;) {
     cout << "skriv et ord: ";
     cin >> s;
    
     if(s == "quit")
     	return 0;
     	
     i = 0;
     while(s[i]) {
     	cout << (int)s[i] << endl;
     	i++;  	
     }
    }
    } // main()
    

     

    Du kan bruke string som om den var et array som du ser.

     

    Du kunne også gjordt slik:

     

    	while(s[i]) 
     	cout << (int)s[i++] << endl;
    

     

    Mer "kompakt".

×
×
  • Opprett ny...