![](https://www.diskusjon.no/uploads/set_resources_15/84c1e40ea0e759e3f1505eb1788ddf3c_pattern.png)
lnostdal
-
Innlegg
490 -
Ble med
-
Besøkte siden sist
Innholdstype
Profiler
Forum
Hendelser
Blogger
Om forumet
Innlegg skrevet av lnostdal
-
-
lengesiden jeg har sjekket, men sist så leste ubuntu ntfs-partisjoner "out of the box" ja ..(skriving av ntfs er fortsatt litt iffy tror jeg).. både lesing og skriving av fat32-partisjoner har linux og ubuntu "alltid" hatt støtte for
du har markert den første disken og partisjon 1 der .. ønsker du å mounte den slik at du får tilgang må du spesifisere en katalog der den skal mountes og klikke enable
-
Det er kun et fåtall som har råd til å kjøpe Flash. I tillegg er det slik at det ikke en gang fungerer under Linux, så om jeg hadde hatt råd kunne jeg ikke brukt det der uten å ty til emulering v.h.a. Wine eller VMWare Player.
[/rant]
Dog det ser ut til at du kan navngi grafiske objekter og gjøre ting som map._xscale += 5; ..ganske enkelt altså.. videre kan du binde denne koden til events som f.eks. museknapp 4 og 5 som vil si at brukeren ruller med scroll-wheelen på musa. Sjekk:
-
slik:
#include <iostream> #include <string> using namespace std; //leser inn et ord og returnerer det string readAWord(){ string str; cin >> str; return str;} //returnerer en ny streng som representerer //en reversert versjon av `str' string reverseStr(string str){ string rev; for(string::reverse_iterator i = str.rbegin(); i != str.rend(); i++) rev.append(1, *i); return rev;} //returnerer true eller false alt ettersom //om `str' er et palindrom bool isPalindrom(string str){ return str == reverseStr(str);} int main(){ string ord; cout << "Tast inn et ord: "; ord = readAWord(); cout << "Ordet du tastet inn er '" << ord << "'" << endl; cout << "Ordet '" << ord << "' reversert er '" << reverseStr(ord) << "'." << endl; if(isPalindrom(ord)) cout << "Ordet '" << ord << "' er et palindrom." << endl; else cout << "Ordet '" << ord << "' er ikke et palindrom." << endl; return 0;}
lars@ibmr52:~/programming/c$ g++ -g -Wall b.cpp -o b && ./bTast inn et ord: abc
Ordet du tastet inn er 'abc'
Ordet 'abc' reversert er 'cba'.
Ordet 'abc' er ikke et palindrom.
lars@ibmr52:~/programming/c$ g++ -g -Wall b.cpp -o b && ./b
Tast inn et ord: abba
Ordet du tastet inn er 'abba'
Ordet 'abba' reversert er 'abba'.
Ordet 'abba' er et palindrom.
lars@ibmr52:~/programming/c$
-
alt-f2 gucharmap <enter>
om du så highlighter et tegn, og titter nede i status-baren i venstre hjørne så ser du f.eks.: "U+03A3 GREEK CAPITAL LETTER SIGMA", da kan du holde ctrl og shift nede mest du taster 3a3 .. når du så slipper tastene skrives sigma ut: Σ
-
"python" og "pygame" @ google
-
http://dev.mysql.com/doc/refman/5.0/en/c.html
altså mer eller mindre de samme funksjonene du finner igjen i f.eks. PHP
-
et tips; les videre - ikke stop og grubl på alle detaljer - boka nevner helt sikkert resten av det som trengs siden
har du sett beviset for at 2 + 2 = 4 ...? om man stopper opp og grubler kan man holde på i det uendelige
-
hvorfor sjekker man ikke FAQ'en på toppen? .. det tar 0.000001 ms ellernoe .. *shrug*
-
jupp, både brosjan og jeg spiller WoW under Linux
som tidsfordriv slår det det å se på TV
-
Om du bruker Wintendo: http://www.mingw.org/ (GCC om du bruker Linux; følger med som standard der)
Eventuelt http://www.bloodshed.net/dev/devcpp.html , men om du har planer om å være litt "seriøs" - ikke sånn kjedelig C++-programmerer jeg-lurer-egentlig-meg-selv seriøs, men generellt sett forstå litt av det her, så må du også kunne bruke kompileren fra konsollet:
http://www.network-theory.co.uk/docs/gccintro/
edit:
tror forresten dette hører hjemme i en egen tråd eller i den andre sticky-tråden ...
-
den tar inn en hel linje; altså flere ord
-
edit: antar at du har en eller annen bok du driver å leser på; hvis ikke må du ordne deg dette.
Begyn med det første og test ett og ett skritt om gangen:
* lese inn et ord (sjekk at du får til dette ved å skrive ut det innleste ordet på skjermen)
* skrive ut baklengs (sjekk på samme vis)
* skrive ut en melding som forteller om det er et palindrom
string readAWord(); // leser inn et ord og returnerer det
string reverseString(string str); // returnerer en ny streng som representerer en reversert versjon av `str'
bool isPalindrome(string str); // returnerer true eller false alt ettersom om `str' er et palindrom
hakker du c++ så bruk ting som nevnt her:
-
Tror `permutations' @ google gir deg det du trenger.
(det finnes mange "ferdig-løsninger" for generering av permutasjoner på diverse comp.lang.*-grupper på Google Groups)
-
lol - ja
(ikke meg altså; øh, om noen tror det)
-
Åh; ikke noe problem. \o/
-
Antar at du har normalen `N' til et triangel (kryssprodukt av 2 edges).
T er en vektor mellom to vilkårlige edges i triangelet. (edit: vilkårlige blir kanskje litt galt; du må velge to punkter på flaten som representerer "retningen" til kurven) Jeg antar at du her må velge et triangel som godt representerer "kurven" i gjeldende overflate. N står 90 grader i forhold til T - eller selve triangelet. Man finner da B ved å ta kryssproduktet av T og N:
B = T x N
Jeg er ikke 100% stø på dette; så folk må rette meg om noe er galt.
edit: T er altså tangenten, N er normalen og B binormalen
-
Hva med gmail?
http://richard.jones.name/google-hacks/gma...filesystem.html
Har aldri testet denne selv; jeg har i stedet en egen liten server i kjelleren.
-
heh .. huffda :}
-
edit: det må taes forbehold når man leser denne posten; jeg er visst ikke helt edru :}
JNI brukes til å:
* laste inn C-biblioteker
* kalle C funksjoner
* lese av globale variabler i C-biblioteker
* angi Java-metoder som kan kalles fra C
edit: Det jeg sier her er litt galt, for det finnes nemlig flere språk enn C som spytter ut biblioteker (.dll eller .so-filer); Lisp f.eks.
Ta f.eks. `strlen' som er en del av glibc (noe som bør regnes som en del av at hvilket som helst desktop-OS). Jeg kan kalle `strlen' helt direkte, rett fra Lisp, slik:
cffi> (foreign-funcall "strlen" :string "blah" :size-t) 4
I C er strlen deklarert slik: size_t strlen(const char* s). Jeg kan laste inn C-biblioteker og kalle funksjonene i dem. Regner med at du kjenner til GTK:
cffi> (load-foreign-library "/usr/lib/libgtk-x11-2.0.so") #P"/usr/lib/libgtk-x11-2.0.so"
.so-filer under Linux er forresten det "samme som" .dll-filer i Windows.
Dette kan gjøres i de fleste høynivåspråk, og gjøres altså i Java v.h.a. JNI.
Litt Off Topic, men ta også en titt på RFFi, som er en ting jeg duller med innimellom for å kalle funksjoner på andre maskiner over TCP/IP (derav navnet Remote Foreign Function Interface):
http://nostdal.org/~lars/programming/lisp/rffi/rffi.html Serveren kan selvfølgelig være skrevet i "hva som helst"; ikke nødvendigvis Lisp som i mitt tilfelle her.
Hm - tja; tolkeren er en native binary, tolkeren omtolker java-binary til native binary. Det spiller ingen rolle, for C må også tolkes om - forskjellen er kun _når_ og _hvordan_ det skjer.
Angående dette med "OS" så er det bare et spørsmål ved hvor en ønsker å sette grensa. Tradisjonelt forståes et OS kun som det ene tynne laget som ligger rett over maskinvaren og har et API som klienter (programmer) kan ta i bruk, men et OS kan også defineres mer generelt som et hvilket som helst lag med et API. For meg er OSet Gnome, Firefox, Openoffice, Emacs eller dette forumet .. for Gnome er OSet GTK .. for Gtk er OSet Glib .. for GLib er OSet glibc .. for glibc er OSet Linux o.s.v. Det snakkes jo om at webben er i ferd med å bli et gigantisk distribuert OS også, med ting som webservices o.l. (RFFi også! :}). Det hele ligger i ordet "services"; ting som kan utføre tjenester - og det er det et OS også gjør.
Tilslutt - i hvertfall i noen tilfeller (hehe) når man det ytterste "laget", og man oppnår en komplett sirkel: "request -> response -> request -> response". Man har et lukket "levende" system. Dette laget er altså brukeren for de som ikke har forstått hva jeg "babbler om". Siden jeg snakker så generelt som jeg gjorde her innser man plutselig at dette "laget" vi kaller brukeren i realiteten kunne vært programvare - og illusjonen av at et OS er en bestemt lukket ting "der nede" forsvinner når man ser at det ikke kan eksistere (eller oppstå) alene, men kun i form av en ting eller "rolle" koblet til andre ting på "begge sider" av en request-response-sirkel. Man vet ikke lengre hvor kjernen i det som før var et enkelt tre er, i det det blir til en graph ( http://en.wikipedia.org/wiki/Graph_%28mathematics%29 ); altså et nettverk eller sirkler.
Plutselig innser man altså at det hele kun handler om hvor man ønsker å sette grensen. I ditt tilfelle antar jeg at du ønsker å lære eller forstå hvordan man hånderer resurser som f.eks.:
* minne
* tråder/prosesser/scheduling
* filsystemer, disker
* netverksrelaterte ting (tcp/ip)
Disse tingene må man håndtere både oppe og nede, men i forskjellige former. Du er sansynligvis ute etter å re-implementere, eller forstå et lag som håndterer disse tingene og samtidig er nært knyttet til selve maskinvaren. Så for din del blir OSet "der nede" i det som tradisjonellt kalles "kjernen" eller "kernelen", men som etter min mening ikke er noen kjerne i noe som egentlig ikke er et tre med én rot (altså kjerne).
..vel; nok snakk om sirkler - folk kan jo tro jeg er en av disse gale hippi-typene..
Det folk i hvertfall må få med seg er at det er ikke nødvendig - eller en gang hensiktsmessig - jeg vil t.o.m. si at det er idiotisk, å skrive større programvare i C bare fordi de underliggende lagene er i C eller ASM!
Det er _lett_ og _lurt_ å kalle ting i/fra de underliggende og overliggende lagene v.h.a. høynivåspråk som Lisp, Java, o.s.v.
-
Jeg mener at man bør skrive så mye som mulig av et hvilket som helst program (OS også) i et så høynivåmessig språk som mulig; så får du kikke litt på hva du må skrive i ASM/C/Java selv.
-
Hei. Har drevet en del med Java for tiden, men irriterer meg over at man ikke kan jobbe direkte mot hardware.
Nærmest alle språk har støtte for kommunikasjon med OS o.l. siden OS som regel er skrevet i C. Via OSet igjen har man direkte tilgang (for rette betydning av "tilgang") til maskinvare; det er liksom litt av poenget med et OS.
Sjekk JNI siden du bruker Java: http://en.wikipedia.org/wiki/Java_Native_Interface
( jeg bruker CFFI: http://common-lisp.net/project/cffi/manual/cffi-manual.html )
Du gjør sansynligvis en stor feil om du tror at du kommer til å spare tid ved å porte hele prosjektet ditt over til C/C++ basert på det at "det er tungvinnt å nå C-biblioteker fra Java".
Det som streifet tankene mine var om jeg skulle prøve meg på å lage mitt eget lille OS, for å lære mest mulig om hvordan datamaskinen er bygd opp. Derfor tenkte jeg kanskje at C++ var et bra valg? Har hørt at linux kjernen osv er skrevet i C, men er det egentlig noe forskjell på dette?Nå skifter plutselig temaet totalt - husk det; utvikling av OS havner ikke i samme kategori som det du snakker om over.
Hold deg til C i kjernen og i driverene. Det er mange grunner til dette, men jeg orker ikke gå inn på dem akkurat nå. Holder det å si at du bør stole på meg - siden det er lørdag?
Så fort du i OSet ditt merker at du trenger et kraftigere mer høynivåish språk til ting som f.eks. GUI så hopper du rett over C++ og går for ting som Lisp, Python o.s.v.
Bestill og les `The C Programming Language' og en eller annen bok om operativsystemer fra amazon.com så er du 0.00000000001% nærmere målet ditt ang. utvikling av OS. Det er dog ikke umulig å bruke andre språk her også. En norsk kar med navn Frode utvikler et OS i Lisp kallt Movitz: http://common-lisp.net/project/movitz/
-
så noe slikt da:
cl-user> (defun associativep (operation &optional (x 1) (y 2) (z 3)) (flet ((opr (p q) (funcall operation p q))) (= (opr x (opr y z)) (opr (opr x y) z)))) associativep cl-user> (associativep #'+) t cl-user> (associativep #'-) nil cl-user> (associativep #'*) t cl-user> (associativep #'/) nil
regner med at du ser hva som foregår - ta dette som pseudokode; jeg gidder ikke rote med C ATM :}
edit: forumet ødlegger indenteringen igjen
-
når man setter inn tall for x, y og z og konstanterer at (x * y) * z = x * (y * z) er sannt så er * en assosiativ funksjon/operatør
-
hehe; åkai ..
...........14 tegn fikser man slik, ok?..........
Unicode bokstaver i spill
i Programmering og webutvikling
Skrevet
tror det er vanlig å kombinere freetype med opengl; via freetype har man tilgang til mange unicode-tegn