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).
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 nedit (Nirvana
editorn) som är en trevlig och kraftfull editor. Om du är
bekant med Matlabs editor så är det inga problem att byta
till nedit. Starta nedit antingen genom att välja Nedit
från Programming-altenativet i Applications-menyn eller genom att
skriva
nedit i ett
terminalfönster. Nedit har också stöd för C++
(titta under Preferences, Language Mode). Om du editerar en fil som
slutar på
.cc
så väljer nedit automatiskt C++ som språk.
Andra editorer är gedit (som inte har stöd för C++),
emacs, xemacs, 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:

Man kan slå på radnumrering
i
nedit (gör det
enklare att lokalisera felmeddelandena från
g++). Välj
Show Line Numbers från
Preferences-menyn.

Radnumrering i
vim, skriv (i
edit-mode)
:set
nu följt av enter. Detta fungerar även i
gvim, men där kan man
också använda sig av Edit-menyn. Välj
File Settings och sedan
Toggle Line Numbering.
Radnumret syns också i statusraden nederst i fönstret.

I Emacs syns radnumret i statusraden
nederst i fönstret.

Av någon anledning tycks
inte Save Defaults..., från
Preferences, spara
radnummerinställningen i
nedit.
Det går att fixa genom att
editera filen
~/.nedit/nedit.rc och
ändra raden
nedit.lineNumbers: False
till
nedit.lineNumbers: True

När man startar
nedit i ett
terminalfönster så blockerar
nedit fönstret. Om man
vill fortsätta att skriva i fönsret, 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 nedit 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)
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