1. Programmeringsintro

Programmeringsteknik

(Skillnad mellan versioner)
Hoppa till: navigering, sök
(1.5 Vad är ett programspråk?)
(Vad är ett programspråk?)
Rad 52: Rad 52:
<p>Eftersom tolken bara &auml;r ett dumt program kr&auml;ver den att texten p&aring; programfilen (eller det du skriver i tolken) mycket strikt f&ouml;ljer best&auml;mda regler. Ett v&auml;ldigt litet pythonprogram som kan kompileras och k&ouml;ras utan fel ser ut s&aring; h&auml;r:</p>
<p>Eftersom tolken bara &auml;r ett dumt program kr&auml;ver den att texten p&aring; programfilen (eller det du skriver i tolken) mycket strikt f&ouml;ljer best&auml;mda regler. Ett v&auml;ldigt litet pythonprogram som kan kompileras och k&ouml;ras utan fel ser ut s&aring; h&auml;r:</p>
-
 
+
<div class="codebox">
-
<div class="codebox"><div class="title">Python</div><pre>print &quot;Hej!&quot;
+
<div class="title">Python</div>
-
</pre></div>
+
<pre>print &quot;Hej!&quot;</pre>
 +
</div>
<p>Om man skriver n&aring;gonting som kompilatorn inte kan &ouml;vers&auml;tta kommer den att tala om var det &auml;r fel och v&auml;gra att &ouml;vers&auml;tta allt. Lyckas &ouml;vers&auml;ttningen s&aring; g&aring;r programmet att k&ouml;ra. I det h&auml;r fallet kommer texten Hej! att skrivas ut.</p>
<p>Om man skriver n&aring;gonting som kompilatorn inte kan &ouml;vers&auml;tta kommer den att tala om var det &auml;r fel och v&auml;gra att &ouml;vers&auml;tta allt. Lyckas &ouml;vers&auml;ttningen s&aring; g&aring;r programmet att k&ouml;ra. I det h&auml;r fallet kommer texten Hej! att skrivas ut.</p>
Rad 60: Rad 61:
<p>Om man skriver ovanst&aring;ende minimala program p&aring; en fil och kallar filen f&ouml;r &rdquo;MittProgram.py&rdquo; kan det se ut s&aring; h&auml;r i terminalf&ouml;nstret (fetstil markerar inmatning fr&aring;n den som programmerar:</p>
<p>Om man skriver ovanst&aring;ende minimala program p&aring; en fil och kallar filen f&ouml;r &rdquo;MittProgram.py&rdquo; kan det se ut s&aring; h&auml;r i terminalf&ouml;nstret (fetstil markerar inmatning fr&aring;n den som programmerar:</p>
-
<div class="codebox"><div class="title">Unix/Mac OS X/DOS</div><pre>&gt; python MittProgram.py
+
<div class="codebox">
 +
<div class="title">Unix/Mac OS X/DOS</div>
 +
<pre>&gt; python MittProgram.py
Hej!
Hej!
-
&gt;&nbsp;</pre></div>
+
&gt;&nbsp;</pre>
 +
</div>
<p>D&auml;r &gt; &auml;r en prompt fr&aring;n datorn (ett tecken som visar att den &auml;r redo f&ouml;r fler kommandon).</p>
<p>D&auml;r &gt; &auml;r en prompt fr&aring;n datorn (ett tecken som visar att den &auml;r redo f&ouml;r fler kommandon).</p>
Rad 68: Rad 72:
<p>G&ouml;r man samma sak genom att starta tolken f&ouml;rst kan det se ut s&aring; h&auml;r i terminalf&ouml;nstret:</p>
<p>G&ouml;r man samma sak genom att starta tolken f&ouml;rst kan det se ut s&aring; h&auml;r i terminalf&ouml;nstret:</p>
-
<div class="codebox"><div class="title">Python</div><pre><strong>&gt; python</strong>
+
<div class="codebox">
 +
<div class="title">Python</div>
 +
<pre><strong>&gt; python</strong>
Python 2.3.5 (#1, Aug 22 2005, 22:13:23)
Python 2.3.5 (#1, Aug 22 2005, 22:13:23)
[GCC 3.3 20030304 (Apple Computer, Inc. build 1809)] on darwin
[GCC 3.3 20030304 (Apple Computer, Inc. build 1809)] on darwin
Rad 74: Rad 80:
<strong>&gt;&gt;&gt; print &quot;Hej!&quot;</strong>
<strong>&gt;&gt;&gt; print &quot;Hej!&quot;</strong>
Hej!
Hej!
-
<strong>&gt;&gt;&gt;&nbsp;</strong></pre></div>
+
<strong>&gt;&gt;&gt;&nbsp;</strong></pre>
 +
</div>
<p>D&auml;r &gt;&gt;&gt; &auml;r prompten fr&aring;n Python-tolken, som visar att den &auml;r redo f&ouml;r nya kommandon.</p>
<p>D&auml;r &gt;&gt;&gt; &auml;r prompten fr&aring;n Python-tolken, som visar att den &auml;r redo f&ouml;r nya kommandon.</p>

Versionen från 20 juni 2007 kl. 15.14

Innehåll

Vad är bra med datorer?

Datorer är bra på att göra saker upprepade gånger. Ska du skicka ett brev till en person går det bra att göra för hand, men ska du skicka till tusen personer kommer du att uppskatta all hjälp du kan få av en dator. Datorer är också bra på att organisera, spara och söka information. Ett bibliotek med alla dina CD-skivor kan t ex sparas i en dator och därefter går det enkelt och snabbt att söka efter artister och låttitlar. I det fallet kan man dessutom göras sig av med utrymmeskrävande plastfodral.

Datorers egenskaper utnyttjas för att ersätta manuellt arbete i en förhoppning om att sänka kostnader och ibland för att få en jämnare kvalitét. En dator som t ex styr en svets gör det exakt likadant varje gång. En svetsare som är bakfull på måndagar är inte lika exakt den dagen.

Vad är dåligt med datorer?

Datorer kan inte tolka t ex känslor, naturligt tal eller bilder. Det finns forskare som försöker komma fram till olika sätt att göra detta, men det är mycket komplicerat. Idag fungerar det endast i speciella fall, t ex att tolka talade siffror i en telefondialog.

Arbete med datorer medför ofta ett stillasittande som tär på bland annat ryggar, axlar och händer.

När datorer införs är det ofta för att automatisera en process, dvs ersätta människor med maskiner. Alltför ofta görs detta utan att ta hänsyn till alla kostnader för t ex underhåll av det nya systemet, hantering av undantag som uppstår i alla system. Detta är dock inte ett fel hos datorerna, utan hos personerna som tar besluten utan att tänka på konsekvenserna.

Vad är en dator?

En dator i dagligt tal består väsentligen av ett tangentbord, en mus och en skärm som ibland sitter i samma låda som själva datorn. I tekniska sammanhang menar man ibland lådan med datorn och ibland endast processorn som sitter i lådan.

[BILD]

Processorn sitter fast på en kretskort, ofta kallat moderkortet och är kopplat till flera olika minnen. Viktigaste minnena är registren i processorn, där alla beräkningar och tolkningar (t ex om 5 är större än 4) sker, RAM-minnet (Rapid Access Memory) där program ligger när de körs, och skivminnet (ofta kallat hårddisk) där program och dokument lagras för att vara kvar även när datorn har stängts av (till skillnad från RAM-minnet som töms varje gång strömmen stängs av).

[BILD]

Uppgifter som man brukar se i annonser om datorer är t ex datorhastighet mäts i MHz (MegaHertz), dvs miljoner operationer per sekund eller tom GHz (GigaHertz), dvs miljarder operationer per sekund. RAM-storlek som mäts i MB (MegaByte), dvs miljoner byte. En byte består av vanligen åtta bitar och kan t ex lagra ett tal mellan 0 och 255. En bit är den minsta minnesenheten på en dator och innehåller en etta eller en nolla. Skivminnet mäts också i byte och är något hundratal gånger större än RAM-minnet.

Ibland hör man också benämningen ”data”. I IT-sammanhang betyder data endast information. Personer som använder data (eller ännu värre: ”datan”) för att referera till själva datorn upplevs ofta som mindre kunniga (se t ex Maria Bloms film Masjävlar) av de som skiljer på datorer och informationen som datorerna behandlar. De kunniga kan också använda uttryck som ”datan” och ”min data”, men då som slanguttryck. Vill du imponera ska du alltså använda uttrycken som slanguttryck, inte som om det verkligen hette så.

[KOLLA LÄNKEN, ligger nu via bilda, wiki stödjer ej pdf]

Om du glömmer bort vad ett visst ord betyder kan du slå upp det i ordlistan som alltid finns tillgänglig under mappen "Dokument" i menyn till vänster.

Vad är ett program?

Ett (dator-) program är en uppsättning instruktioner som styr vad datorn ska göra. Vanligen finns det indata (t ex knapp- eller mustryckningar) som behandlas av datorn enligt instruktionerna i programmet vilket resulterar i utdata (t ex text, diagram, bilder) på skärmen.

[BILD1] [BILD2]

En analogi är t ex stickning där samma indata (garn) med ett program kan bli till utdata i form av ett par sockor och med ett annat program till en tröja.

[BILD1] [BILD2]

Precis som själva datorn består ett datorprogram väsentligen av två saker: minne och instruktioner. Minnet kallas för variabler, instruktionerna kallas ofta för satser. Satserna är det som avgör hur variablerna manipuleras (dvs ändrar värde).

Vad är ett programspråk?

En dator förstår endast sitt eget datorspråk, maskinkod, som är mycket svårförståeligt även för de flesta erfarna programmerare. För att underlätta för alla som programmerar skriver man därför vanligen program i ett programspråk som t ex Java, C++ eller som vi ska använda i denna kurs: Python. För att kunna få datorn att förstå och utföra program skrivna i Python krävs det att man översätter (kompilerar, tolkar, interpreterar) det till datorns eget språk.

För just Python finns det två sätt: antingen skriver man programmet först med ett redigeringsprogram (liknar ett ordbehandlingsprogram som t ex Word) och sparar det på en fil. Därefter låter man Python-tolken översätta och köra programmet.

Det andra sättet är att man först startar Python-tolken och därefter skriver programkod direkt i den. Tolken kommer då att utföra programkoden allteftersom du skriver den.

Fördelen med det första sättet är att det blir enklare att gå tillbaka och ändra programmet om det inte blev riktigt rätt eller när man kommer på roliga tillägg till det. När man skriver större program gör man det på detta vis.

Fördelen med det andra sättet är att man direkt kan se vad som inte fungerar. Det används därför mest för att testa saker.

Eftersom tolken bara är ett dumt program kräver den att texten på programfilen (eller det du skriver i tolken) mycket strikt följer bestämda regler. Ett väldigt litet pythonprogram som kan kompileras och köras utan fel ser ut så här:

Python
print "Hej!"

Om man skriver någonting som kompilatorn inte kan översätta kommer den att tala om var det är fel och vägra att översätta allt. Lyckas översättningen så går programmet att köra. I det här fallet kommer texten Hej! att skrivas ut.

Om man skriver ovanstående minimala program på en fil och kallar filen för ”MittProgram.py” kan det se ut så här i terminalfönstret (fetstil markerar inmatning från den som programmerar:

Unix/Mac OS X/DOS
> python MittProgram.py
Hej!
> 

Där > är en prompt från datorn (ett tecken som visar att den är redo för fler kommandon).

Gör man samma sak genom att starta tolken först kan det se ut så här i terminalfönstret:

Python
<strong>> python</strong>
Python 2.3.5 (#1, Aug 22 2005, 22:13:23) 
[GCC 3.3 20030304 (Apple Computer, Inc. build 1809)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
<strong>>>> print "Hej!"</strong>
Hej!
<strong>>>> </strong>

Där >>> är prompten från Python-tolken, som visar att den är redo för nya kommandon.

Vill du redan nu testa att programmera på detta sätt kan du hitta instruktioner i avsnitt 1.9.

1.6 Tilldelning

1.7 Olika slags värden

1.8 Uppräkning

1.9 Utskrifter

Slutprov 1