Skip to content

Commit 7b4504a

Browse files
committed
Fixade lite float error pga TODO
1 parent 41cc40e commit 7b4504a

File tree

3 files changed

+92
-43
lines changed

3 files changed

+92
-43
lines changed

Rapport/include/Metod.tex

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -201,30 +201,30 @@ \subsection{Skriva lärotext}
201201
Det visar dessutom att det går att använda materialet som presenteras tidigare
202202
till att implementera och lösa mer komplexa problem.
203203

204-
\section{Skapande av och publicering på hemsidan}
205-
206-
Läromaterialet kompilerades med hjälp av ett skript och
207-
publicerades på en hemsida. Skriptet anropar
208-
Pandoc för att konvertera från källkod i Literate
209-
Haskell-format till HTML, redo att visas på en hemsida. Pandoc
210-
paketerar även med \textit{MathJax} som använder JavaScript för att
211-
rendera matematiska formler i LaTeX-format på fint och läsbart
212-
vis. Utan stöd för JavaScript skrivs matematik ut som omodifierad
213-
LaTeX-kod, vilket är mer svårläst, men fortfarande tolkningsbart. Det
214-
skrevs även CSS-kod för att modifiera utseendet av
215-
hemsidan för att den skulle bli prydligare och mer lättläst.
216-
217-
Varje källfil betraktades som ett kapitel och publicerades som en
218-
separat undersida. Med hjälp av ett index beskrivet i skriptet
219-
konstruerades navigationselement mellan kapitel på varje undersida
220-
och en innehållsförteckning.
221-
222-
För publicering lades all data producerad av skriptet i en ny git-gren (engelska \textit{git branch}) med namnet \texttt{gh-pages}. Att alla grenar synkroniseras
223-
mot GitHub medför att alla filer på \texttt{gh-pages} grenen
224-
visas som en hemsida med hjälp av \textit{GitHub
225-
Pages}. Publiceringen skedde inte kontinuerligt eller automatiskt,
226-
utan krävde en manuell synkronisering vid varje önskad uppdatering av
227-
hemsidan.
204+
% \section{Skapande av och publicering på hemsidan}
205+
%
206+
% Läromaterialet kompilerades med hjälp av ett skript och
207+
% publicerades på en hemsida. Skriptet anropar
208+
% Pandoc för att konvertera från källkod i Literate
209+
% Haskell-format till HTML, redo att visas på en hemsida. Pandoc
210+
% paketerar även med \textit{MathJax} som använder JavaScript för att
211+
% rendera matematiska formler i LaTeX-format på fint och läsbart
212+
% vis. Utan stöd för JavaScript skrivs matematik ut som omodifierad
213+
% LaTeX-kod, vilket är mer svårläst, men fortfarande tolkningsbart. Det
214+
% skrevs även CSS-kod för att modifiera utseendet av
215+
% hemsidan för att den skulle bli prydligare och mer lättläst.
216+
%
217+
% Varje källfil betraktades som ett kapitel och publicerades som en
218+
% separat undersida. Med hjälp av ett index beskrivet i skriptet
219+
% konstruerades navigationselement mellan kapitel på varje undersida
220+
% och en innehållsförteckning.
221+
%
222+
% För publicering lades all data producerad av skriptet i en ny git-gren (engelska \textit{git branch}) med namnet \texttt{gh-pages}. Att alla grenar synkroniseras
223+
% mot GitHub medför att alla filer på \texttt{gh-pages} grenen
224+
% visas som en hemsida med hjälp av \textit{GitHub
225+
% Pages}. Publiceringen skedde inte kontinuerligt eller automatiskt,
226+
% utan krävde en manuell synkronisering vid varje önskad uppdatering av
227+
% hemsidan.
228228

229229
\section{Utvärdering med testgrupp}
230230

Rapport/include/Resultat.tex

Lines changed: 66 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,34 @@
11
\chapter{Resultat}
22

3-
I detta kapitel redovisas det resulterande läromaterialet, vilket består av fem kapitel. Det är publicerat på en hemsida och dess källkod är fritt tillgänglig. Även
4-
resultaten från utvärderingen med testgruppen och mötena med Åke Fäldt redovisas.
3+
I detta kapitel redovisas det resulterande läromaterialet, vilket består av fem
4+
kapitel. Det är publicerat på en hemsida och dess källkod är fritt tillgänglig.
5+
Även resultaten från utvärderingen med testgruppen och mötena med Åke Fäldt
6+
redovisas.
57

68
\section{Läromaterialet}\label{sec:res_laromaterial}
79

8-
Detta avsnitt innehåller en översikt av läromaterialet samt ett utdrag av vardera kapitel. Utdragen exemplifier delar av läromaterialet och implementationerna av domänspecifika språk. De fullständiga implementationerna är inte inkluderade (och förklarade) eftersom det är precis det läromaterialet innehåller. Rapporten skulle då bli en kopia av läromaterialet. Istället hänvisas till ett längre utdrag i bilaga~\ref{cha:utdrag} samt hemsidan där läromaterialet~\cite{LYAP} finns tillgängligt. De utdrag som finns är inga exakta kopior ord-för-ord av läromaterialet utan de har anpassats till rapporten.
10+
Detta avsnitt innehåller en översikt av läromaterialet samt ett utdrag av
11+
vardera kapitel. Utdragen exemplifier delar av läromaterialet och
12+
implementationerna av domänspecifika språk. De fullständiga implementationerna
13+
är inte inkluderade (och förklarade) eftersom det är precis det läromaterialet
14+
innehåller. Rapporten skulle då bli en kopia av läromaterialet. Istället
15+
hänvisas till ett längre utdrag i bilaga~\ref{cha:utdrag} samt hemsidan där
16+
läromaterialet~\cite{LYAP} finns tillgängligt. De utdrag som finns är inga
17+
exakta kopior ord-för-ord av läromaterialet utan de har anpassats till
18+
rapporten.
919

1020
\subsection{Översikt}
1121

12-
Läromaterialet är en löpande text där Haskell-kod och lärotext sammanvävts. Det ser ut som i figur~\ref{fig:smakprov_laromaterial}. I texten följer läsaren med i implementationen av ett domänspecifikt språk och det visas hur det används. Tanken är att läsaren parallellt programmerar det som texten förklarar, för att på så sätt även få praktisk färdighet i det som presenterats. För detta syfte finns det även övningar tillagda direkt i den löpande texten, se figur~\ref{fig:smakprov_ovning}, som ofta innebär att läsaren själv ska implementera en liten del av det domänspecifika språket. Det finns också övningar i slutet av kapitlet som ofta innebär större vidareutvecklingar av de domänspecifika språken.
22+
Läromaterialet är en löpande text där Haskell-kod och lärotext sammanvävts. Det
23+
ser ut som i figur~\ref{fig:smakprov_laromaterial}. I texten följer läsaren med
24+
i implementationen av ett domänspecifikt språk och det visas hur det används.
25+
Tanken är att läsaren parallellt programmerar det som texten förklarar, för att
26+
på så sätt även få praktisk färdighet i det som presenterats. För detta syfte
27+
finns det även övningar tillagda direkt i den löpande texten, se
28+
figur~\ref{fig:smakprov_ovning}, som ofta innebär att läsaren själv ska
29+
implementera en liten del av det domänspecifika språket. Det finns också
30+
övningar i slutet av kapitlet som ofta innebär större vidareutvecklingar av de
31+
domänspecifika språken.
1332

1433
\begin{figure}[tph]
1534
\centering
@@ -24,8 +43,11 @@ \subsection{Översikt}
2443
\label{fig:smakprov_ovning}
2544
\end{figure}
2645

27-
Språket i lärotexten är enligt projektgruppen lättsamt\footnote{Diskuteras utförligare i avsnitt \ref{sec:res_disk}.} och i detta syfte finns det även bilder tillagda. Figur~\ref{fig:smakprov_bild_laromaterial} är ett exempel på en bild ur
28-
läromaterialet. Notera speciellt den medvetet oseriösa ritningstekniken som är tänkt att vara rolig och muntra upp läsaren.
46+
Språket i lärotexten är enligt projektgruppen lättsamt\footnote{Diskuteras
47+
utförligare i avsnitt \ref{sec:res_disk}.} och i detta syfte finns det även
48+
bilder tillagda. Figur~\ref{fig:smakprov_bild_laromaterial} är ett exempel på en
49+
bild ur läromaterialet. Notera speciellt den medvetet oseriösa ritningstekniken
50+
som är tänkt att vara rolig och muntra upp läsaren.
2951

3052
\begin{figure}[tph]
3153
\centering
@@ -34,7 +56,9 @@ \subsection{Översikt}
3456
\label{fig:smakprov_bild_laromaterial}
3557
\end{figure}
3658

37-
Läromaterialet innehåller 5 kapitel som vardera behandlar ett område inom fysik och matematik. Fokuset är på klassisk mekanik samt den matematik som tillhör området. De behandlade områdena är:
59+
Läromaterialet innehåller 5 kapitel som vardera behandlar ett område inom fysik
60+
och matematik. Fokuset är på klassisk mekanik samt den matematik som tillhör
61+
området. De behandlade områdena är:
3862

3963
\begin{itemize}
4064
\item Dimensioner
@@ -76,7 +100,7 @@ \subsection{Översikt}
76100
krafter på lådor används det domänspecifika språket för vektorer till att
77101
beräkna de krafter som verkar på en låda som glider ner för ett plan. I
78102
gungbräda visas hur momentjämviktsberäkningar kan göras med det domänspecifika
79-
språket för dimensioner. \todo{Stämmer inte längre, kan Björn uppdatera?}
103+
språket för dimensioner.
80104

81105
\textit{Partikelmekanik}. En repetition av gymnasieskolans fysik.
82106
Lägesenergi, rörelseenergi, gravitation och så vidare. Den modelleras med vektorer vars
@@ -93,17 +117,26 @@ \subsection{Översikt}
93117
\subsection{Dimensioner}
94118
\label{sec:grund_impl}
95119

96-
I detta avsnitt visas delar av hur implementationen av dimensioner ser ut i läromaterialet. Den fullständiga implementationen innehåller tre delar:
120+
I detta avsnitt visas delar av hur implementationen av dimensioner ser ut i
121+
läromaterialet. Den fullständiga implementationen innehåller tre delar:
97122

98123
\begin{enumerate}
99124
\item Dimensioner på värdenivå
100125
\item Dimensioner på typnivå
101126
\item Datatyp för storheter
102127
\end{enumerate}
103128

104-
Dimensioner på värdenivå används för att enkelt kunna skriva ut dimensioner i GHCi. Dimensioner på typnivå används för att ge typsäkerhet till dimensioner, så att till exempel en längd och en massa inte kan adderas, likt att ett värde av typ \texttt{Double} och \texttt{Integer} inte kan adderas i Haskell. Till sist kombineras de två varianterna av dimensioner till en datatyp för storheter som aritmetiska operationer kan utföras på.
129+
Dimensioner på värdenivå används för att enkelt kunna skriva ut dimensioner i
130+
GHCi. Dimensioner på typnivå används för att ge typsäkerhet till dimensioner, så
131+
att till exempel en längd och en massa inte kan adderas, likt att ett värde av
132+
typ \texttt{Double} och \texttt{Integer} inte kan adderas i Haskell. Till sist
133+
kombineras de två varianterna av dimensioner till en datatyp för storheter som
134+
aritmetiska operationer kan utföras på.
105135

106-
Dimensioner kan ses som en produkt av de 7 basdimensionerna\footnote{Längd, massa, tid, elektrisk ström, temperatur, substansmängd och ljusstyrka.}, med en indiviudell exponent till varje basdimension. Datatypen, på värdenivå, som används ser därför ut som följande
136+
Dimensioner kan ses som en produkt av de 7 basdimensionerna\footnote{Längd,
137+
massa, tid, elektrisk ström, temperatur, substansmängd och ljusstyrka.}, med en
138+
indiviudell exponent till varje basdimension. Datatypen, på värdenivå, som
139+
används ser därför ut som följande
107140

108141
\begin{lstlisting}[frame=none,belowskip=-0.5\baselineskip]
109142
data Dim = Dim Integer -- Length
@@ -116,7 +149,9 @@ \subsection{Dimensioner}
116149
deriving (Eq)
117150
\end{lstlisting}
118151

119-
Varje fält i datatypen representerar exponenten för motsvarande basdimension. Om exponenten är $0$ betyder det att den basdimension inte är inkluderad i dimensionen. Några exempel ges för att förtydliga.
152+
Varje fält i datatypen representerar exponenten för motsvarande basdimension. Om
153+
exponenten är $0$ betyder det att den basdimension inte är inkluderad i
154+
dimensionen. Några exempel ges för att förtydliga.
120155

121156
\begin{lstlisting}[frame=none,belowskip=-0.5\baselineskip]
122157
length = Dim 1 0 0 0 0 0 0
@@ -128,14 +163,28 @@ \subsection{Dimensioner}
128163
area = Dim 2 0 0 0 0 0 0
129164
\end{lstlisting}
130165

131-
Hastighet skrivs vanligtvis som $\frac{m}{s}$ men ekvivalent är att skriva $m^1*s^{-1}$ vilket förklarar varför värdena ovan ser ut som de gör.
166+
Hastighet skrivs vanligtvis som $\frac{m}{s}$ men ekvivalent är att skriva
167+
$m^1*s^{-1}$ vilket förklarar varför värdena ovan ser ut som de gör.
132168

133-
I resterande del av detta kapitel i läromaterialet visas hur multiplikation och division samt hur en \textit{utskriftsfunktion}, som skriver ut ett värde snyggt, kan implementeras. Därefter följer ett antal delkapitel som innehåller testning, typnivådimensioner och storheter. Som tidigare nämnt inkluderas de inte här eftersom då skulle rapporten och läromaterialet bli precis samma text.
169+
I resterande del av detta kapitel i läromaterialet visas hur multiplikation och
170+
division samt hur en \textit{utskriftsfunktion}, som skriver ut ett värde
171+
snyggt, kan implementeras. Därefter följer ett antal delkapitel som innehåller
172+
testning, typnivådimensioner och storheter. Som tidigare nämnt inkluderas de
173+
inte här eftersom då skulle rapporten och läromaterialet bli precis samma text.
134174

135175
\subsection{Matematisk analys}
136176

137177
\subsection{Vektorer}
138178

179+
Vektorer implementerades på två olika sätt. Det första följde definitionen i
180+
kurboken och implementerade vektorer i två dimensioner med en typ vars
181+
konstruktor tog två argument.
182+
183+
\begin{inline}
184+
test :: Int
185+
test = 1
186+
\end{inline}
187+
139188
\subsection{Exempelproblem}
140189

141190
\subsection{Partikelmekanik}
@@ -152,9 +201,9 @@ \subsection{Partikelmekanik}
152201
där de grundläggande områdena vektorer och matematisk analys
153202
kombinerades. Anledningen till detta var att partiklars position, hastighet och
154203
acceleration modelleras med vektorer, dessutom är de krafter som påverkar
155-
partiklar även de modellerade som vektorer. Sedan används matematisk analys för att
156-
göra beräkningar på dem. Därför var det naturligt att modellera partikelmekanik
157-
med hjälp av vektorer vars komponenter var uttryck som
204+
partiklar även de modellerade som vektorer. Sedan används matematisk analys för
205+
att göra beräkningar på dem. Därför var det naturligt att modellera
206+
partikelmekanik med hjälp av vektorer vars komponenter var uttryck som
158207
implementerades av matematisk analys.
159208

160209
Exempel från läromaterialet:

Rapport/include/Teori.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,14 @@ \section{Syntax, syntaxträd och semantik}\label{sec:syntax}
9898
\begin{lstlisting}
9999
expr = Const 7 :*: (Const 3 :+: Const 10)
100100
\end{lstlisting}
101-
\caption{Ett exempeluttryck ur det tidigare syntaxträdet\todo{Vilket syntaxträd?}. Detta modellerar det
101+
\caption{Ett exempeluttryck ur det tidigare syntaxträdet. Detta modellerar det
102102
matematiska uttrycket $7 * (3 + 10)$}\label{fig:syntax_exempel_varde}
103103
\end{figure}
104104

105105
\begin{figure}[tph]
106106
\centering
107107
\includegraphics[width=0.4\linewidth]{figure/syntax_exempel_bild.png}
108-
\caption{Ett exempeluttryck från syntaxträdet\todo{Vilket syntaxträd?} illustrerat i ett
108+
\caption{Ett exempeluttryck från syntaxträdet illustrerat i ett
109109
träddiagram.}\label{fig:syntax_exempel_bild}
110110
\end{figure}
111111

0 commit comments

Comments
 (0)