Quaternioner och C++

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



Back