I denna laboration kommer
du att
träna på C++-programmering, funktioner och något om
datatyper. Eftersom lab-pm innehåller en del matematiska formler
har jag använt
LaTeX
för att skriva
texten (pdf).
Anvisningarna förutsätter att du sitter vid en Linux-dator.
Man kan fortfarande använda Matlabs editor för att skriva in
programmen (Matlab har stöd även för C, C++, Java och
HTML). Om du går in under Matlab-menyn File och väljer
Preferences kan du dessutom, under Editor/Debugger och sedan Language,
ställa in vilka suffix Matlab skall känna av, vilka
färger som skall användas (syntax highlighting) etc. En
nackdel med att använda Matlabs editor är ju att Matlab
måste vara igång (vad jag vet i alla fall), men vi
använder ju inte alls Matlab i denna laboration.
Av denna anledning kan du välja en helt annan editor, det finns
flera installerade i Linux-systemet. Jag rekommenderar gedit. Om du är
bekant med Matlabs editor så är det inga problem att byta
till gedit. Du kan starta editorn genom att skriva gedit i ett
terminalfönster. gedit har stöd för C++. Om du editerar en fil som
slutar på
.cc
så väljer gedit automatiskt C++ som språk.
Andra editorer är
emacs, gvim och vim. Jag använder vim, som är en
kraftfull editor, men den tar lite tid att komma igång med,
så jag rekommenderar den inte om du bara har använt Matlabs
editor. För ytterligare alternativ, se
denna
lista (alla editorerna är dock inte tillgängliga under
vårt system).
Svar på några frågor
om labben:

I gedit, emacs, vim och gvim syns radnumret
nederst i fönstret.

I gedit kan du slå på radnummer, välj Preferences från Edit-menyn och
bocka för "Display line numbers". Titta också under de övriga flikarna
i Preferences! Du ställa in tabulatorbredd (vid indrag) och även se
till att filen sparas automatiskt var tionde minut t.ex. Kan vara bra
att ha om datorn hänger sig.

När man startar
gedit i ett
terminalfönster så blockerar editorn fönstret. Om man
vill fortsätta att skriva i fönstret, gör då
så här. Klicka med musen i terminalfönstret, så
att det är aktivt. Skriv sedan ^Z dvs. tryck och håll nere
Ctrl-tangenten och tryck sedan på Z-tangenten (analogt med ^C,
med andra ord). Du skall då få tillbaks shell-prompten. Ge
sedan kommandot
bg
och
tryck på Enter (bg = background, dvs. lägg gedit i
bakgrunden). Fönstret är nu inte längre blockerat.

Upphöjtoperatorn ^ finns inte
i
C++ (^ betyder bitvis "antingen eller", exclusive or). Använd
multiplikation eller
pow-rutinen
(vilken kräver att du inkluderar
cmath), så här
t.ex:
#include
<cmath>
#include
<iostream>
using namespace std;
int main()
{
double x
= 2, y;
y =
pow(x,
2); // same as x * x
y =
pow(x, 0.5); //
same as sqrt(x)
cout << "sqrt(2) = " << y << endl; // write something
return 0;
}
Här är länkarna från labpm:
http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Hamilton.html
http://turnbull.mcs.st-and.ac.uk/history/Biographies/Hamilton.html
samt några till
http://en.wikipedia.org/wiki/Quaternion
(med
minnestavlan)
http://mathworld.wolfram.com/Quaternion.html