Övningar i 2D2050. Per-Anders Staav (kallas Pa) Epost: eller

Relevanta dokument
Tilpro Övning Per-Anders Staav (vikarierande) (föredrar att kallas Pa) Kan nås via epost:

Tilpro Övning 1. Per-Anders Staav (föredrar att kallas Pa) Kan nås via epost: (fast de flesta frågor besvaras nog bäst av Alexander)

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Introduktion till programmering och Python Grundkurs i programmering med Python

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Sätt att skriva ut binärträd

Installera Anaconda Python

Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

F4. programmeringsteknik och Matlab

Föreläsning 1: Intro till kursen och programmering

Uppgifter teknik HT17 (uppdaterad v. 40)

Föreläsning 1 & 2 INTRODUKTION

Variabler och konstanter

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

729G04 Programmering och diskret matematik

Föreläsning 1: Intro till kursen och programmering

Språket Python - Del 1 Grundkurs i programmering med Python

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

729G04 Programmering och diskret matematik. Föreläsning 7

Programmering i C, 7,5 hp

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

Grunderna i stegkodsprogrammering

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Digitalt lärande och programmering i klassrummet

729G04 Programmering och diskret matematik. Python 3: Loopar

Klassdeklaration. Metoddeklaration. Parameteröverföring

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Användarhandledning Version 1.2

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Föreläsning 2. Operativsystem och programmering

DD1314 Programmeringsteknik

Extramaterial till Matematik Y

En kort text om programmering i C.

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Vi programmerar Java!

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Micro:bit. Börja skapa egna program

Datalogi för E Övning 3

Programmering för alla!

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Programmering för språkteknologer I, VT2012. Rum

TDDC77 Objektorienterad Programmering

DD1311 Programmeringsteknik för S1 Laborationer läsåret

Föreläsning 1 & 2 INTRODUKTION

Introduktion till programmering

Programmeringsteknik med C och Matlab

1 Iteration. 1.1 for-satsen

Föreläsning 2 Programmeringsteknik och C DD1316

Inledande programmering med C# (1DV402) Introduktion till programmering

Att komma igång. Föreläsning 1

v. 42 Python HT17 En introduktion Oscar Bergqvist

JavaScript del 3 If, Operatorer och Confirm

Föreläsning 3. Programmering, C och programmeringsmiljö

Beräkningsvetenskap föreläsning 2

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

JavaScript Block Editor:

v. 43 Python HT17 En introduktion Oscar Bergqvist

Programmering F-3. -dansprogrammering. Del 1

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Grundkurs i programmering - intro

Digitalt lärande och programmering i klassrummet

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

TDIU01 - Programmering i C++, grundkurs

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Interaktiva berättelser med Twine

Vilken skillnad gör det var du placerar det? Prova båda.

Programmering för alla!

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

Objektorienterad programmering Föreläsning 2

Visual Basic, en snabbgenomgång

TDIU01 - Programmering i C++, grundkurs

Föreläsning 3.1: Datastrukturer, en översikt

Loopar och datatyper. Föreläsning 3

i LabVIEW. Några programmeringstekniska grundbegrepp

Repetition C-programmering

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik

Repetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python

MicroPython Ett textbaserad programmeringsspråk för Micro:bit

Kort om programmering i Python

Transkript:

Övningar i 2D2050 Per-Anders Staav (kallas Pa) Epost: pasta@kth.se eller pastaav@algonet.se Läser till civilingengör på Elektro 180 p inriktning mot programmering. Har jobbat extra som lärare på Nada sedan 1999

Allmän uppmaning De saker som ingår på labbarna täcker inte in hela kursmaterialet ni behöver lära er. Snarare tar labbarna stickprov från alla de relevanta kapitlen. Det krävs att man bortsett från labbarna skriver små test program och läser allt det som står i boken. Vad gäller den 6 labben så är avsikten med den att orientera er om grafik eftersom ni går Media...det krävs dock att man kan installera tilläggspaket. Vi jobbar på finna en lösning som fungerar i Mac salarna.

Vilket språk talar datorn? Svar: Själva datorn jobbar med så kallad maskinkod. Processorn (som är datorns huvudenhet) har ett fåtal register där den kan lagra bitar (ettor och nollor). Desutom finns ett gigantiskt minne där enorma mängder ettor och nollor får plats. Genom att jonglera data mellan minnet och registren samt använda elektronik som kan räkna t.ex. plus så skapas all verksamhet i datorn. Ingen vettigt funtad människa vill skriva sådan kod och därför uppfinner man språk som exempelvis Python.

Om Python inte är maskinkod, vad är det då? Svar: Python är ett så kallat högnivå språk som måste översättas till maskin kod innan datorn förstår det. För att översättningen ska vara genomförbar måste det språket man använder vara entydigt. Det går inte gissa från sammanhanget som människor gör med talspråk. Reglerna för hur Python program får se ut är en sorts grammatik, med fint datorspråk talar man så kallad syntax. Ett Pythonprogram är en instruktion till datorn som uppfyller Pythons syntax-krav.

Vilka byggblock finns i Program? Inmatning Att vi hämtar data från tangentbord eller filer Utmatning Skriver data till skärmen (eller något annat lämpligt) Variabler Lagrar data som programmet arbetar med Vilkorssatser Gör att vi kan välja vilken kod som ska köras beroende på vad som finns i en variabel Slingor Låtor oss göra en uppsättning rader i programmet flera gånger...dessutom metoder från funktionsbibliotek

Om python programmering Att skriva program är lätt...att skriva program som gör rätt sak är svårare...att veta säkert att programmet gör rätt sak är enormt svårt. Python program går snabbt att skriva men kan vara svårt att hitta fel i. Testar man saker noggrant hittar man dock alla fel och med python hinner man testa mycket.

Önskad effekt av vårt första program exempelkörning: Ange vad nuvarande euro kurs är: 8.95 100 kr är 11.173184 stycken euro 8.95 är inmatat av användaren...talet 11.17 osv beräknas av programmet och stoppas in på rätt ställe

Ett första försök till lösning #coding: iso-8859-1 print Ange vad nuvrande euro kurs är:, euro_kurs=input() euro=100/euro_kurs print 100 kr är print euro print stycken euro exempelkörning: Ange vad nuvarande euro kurs är: 8.95 100 kr är 11.173184 stycken euro

Fixar radbrytning genom att lägga till komma efter vissa print rader #coding: iso-8859-1 print Ange vad nuvrande euro kurs är:, euro_kurs=input() euro=100/euro_kurs print 100 kr är, print euro, print stycken euro exempelkörning: Ange vad nuvarande euro kurs är: 8.95 100 kr är 11.173184 stycken euro

Om användaren ger euro kursen som heltal kommer inga decimaler #coding: iso-8859-1 print Ange vad nuvrande euro kurs är:, euro_kurs=input() euro=100.0 / euro_kurs print 100 kr är, print euro, print stycken euro exempelkörning: Ange vad nuvarande euro kurs är: 8 100 kr är 12.5 stycken euro

Exempel på Inmatning till variabel variabel=input( Ange vad du vill lägga in i variabeln ) Input används för att ta emot inmatning och direkt översätta till siffra. Det som kallas variabel ovan får automagiskt lämplig sort för att kunna ta emot just en siffra. Hade man använt annan sorts inmatning hade variabel fått annan sort (mer om inmatning senare).

Villkorssatser + utmatning variabel=input( Ange vad du vill lägga in i variabeln ) if variabel > 0 : print Du angav ett positivt tal else: print Talet är troligen negativt... Om villkoret är sant körs den första print raden. Är det falskt körs det som står efter else (mer om villkorssatser senare)

Slingor variabel=input() while variabel < 30: print Ett nytt varv i slingan print variabel variabel = variabel +1 En slinga är en sorts villkorssats som körs om och om igen så länge villkoret är sant. Det som upprepas är de rader som följer som har samma inflyttning som raden som följer while raden. I python får man bara flytta in raden om föregående rad slutade med tecknet : (mer om slingor senare)

Utskrift till skärmen print Proxxi print är bra Proxxi är bra print Proxxi, print är bra Proxxi är bra

Kommentarer #Kommentarer används för att förklara obegripliga #kodrader. När programmet körs så hoppar python #över det som följer tecknet # #Det finns dock special fall...följande är bra att #skriva om man vill ha svenska tecken och vill #slippa varningar om okända tecken #coding: iso-8859-1 print Hejsan Världen

Exempelprogram 2 #coding: iso-8859-1 svar=raw_input( Vad är lösen? ) while( svar!= All makt åt Tengil vår befriare ): print Odugling...ange lösen svar=raw_input() print Ja...då kan du passera #Ett logiskt skjysst program...fast det är inte #säkert att terminal vi kör på låter oss skriva #å,ä eller ö så att python förstår det

While vilkoret ligger alltid först... While inleds alltid med ett test...i verkligheten vill man ha sekvensen fråga, inmatning och sist test. En lösning är att lägga till en extra fråga och inmatning innan while slingan startas. En annan möjlig lösning är att man lägger svar= dummy Sekvensen blir då egentligen test, fråga inmatning test, fråga...men det lider ju inte användaren av

Exempel program 3 print Hur pass kul tror du python är? kulgrad=int(raw_input( (Ange ett siffervärde): )) if kulgrad < 0: print Man kan väl inte ha negativt kul!!! elif (kulgrad == 0): print Det ändrar sig nog när du börjat elif kulgrad > 100: print Precis rätt attetyd elif kulgrad == 159: print En utskrift som aldrig skrivs ut else: print Bra, kan kanske bli bättre?

Exempel på random #coding: iso-8859-1 #Modulen random låter oss få tag på pseudo #slumptal om vi importerar den import random print "Vi kan få heltal från funktionen randint(a,b) mellan a och b" counter=random.randint(3,25) #operatorn. används för komma åt saker som finns inne i andra #saker. Vad som finns inne i random hittar man genom att googla while counter < 20: print "Counter is", counter counter=counter+1

Exempel på tidtagning #coding: iso-8859-1 #Detta program utför tidtagning...modulen time har massa #nyttiga funktioner för att göra sådant...jag importerar den #så jag kan använda dessa import time print "Program där tid är dödligt viktigt..." raw_input("tryck enter för att börja") #funktionen clock från time säger vad tiden är start_punkt=time.clock() raw_input("tryck enter så fort som möjligt!") slut_punkt=time.clock() print "Det tog dig",slut_punkt - start_punkt, "sekunder att reagera"

Var kommer mellanslagen ifrån? Den som är uppmärksam har märkt att när vi skriver ut något blir det mellanslag instoppade i utskiften...bra men inte alltid det man vill ha. day= 01 month= 05 print 2005-,month, -,day 2005 05 01 sys.stdout.softspace=false löser problemet men måste anges efter varje utskrift eftersom inställningen nollställs av utskrift. Om man ändå ska importera saker från sys kan sys.stdout.write() vara ett trevligare alternativ för att undvika mellanslagen.