TDP002 Imperativ programmering. Laborationsmaterial emacs python-mode



Relevanta dokument
Sätt att skriva ut binärträd

Klasser och objekt, referenser Grundkurs i programmering med Python

Föreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul

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.

Länkade listor, stackar och köer

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

TDP002 - Imperativ programmering

Emacs. Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

TDP002 - Imperativ programmering

Programmering B med Visual C

Objektorienterad Programmering (TDDC77)

Mer grafik. Jan Erik Moström

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

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

v. 42 Python HT17 En introduktion Oscar Bergqvist

TDP002 Imperativ programmering

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

Laboration 6 Haptik. Version 2.0. Karljohan Lundin Ludvig Tunel Niclas Andersson. 6 september 2001

v. 43 Python HT17 En introduktion Oscar Bergqvist

729G06 Programmering och logik. Info om pythondelen & introduktion till objektorienterad programmering.

Emacs. Eric Elfving Institutionen för Datavetenskap (IDA)

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

Introduktion till programmering och Python Grundkurs i programmering med Python

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

EnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass

TDP003 Projekt: Egna datormiljön

Använda Python Laboration 1 GruDat, DD1344

Övning 1 - Abstrakta datatyper

Extramaterial till Matematik Y

Extramaterial till Matematik Y

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

TDP002 - Imperativ programmering

SMD 134 Objektorienterad programmering

Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D.

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

Prova på-laboration i Ruby

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

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

Övningar Dag 2 En första klass

TUTORIAL: KLASSER & OBJEKT

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

Imperativ programmering. Föreläsning 4

TDP002 - Imperativ programmering

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

MATLAB-modulen Programmering i MATLAB. Höstterminen hp. Vad är MATLAB

Extramaterial till Matematik Y

Laboration: Whitebox- och blackboxtesting

Konvexa höljet Laboration 6 GruDat, DD1344

Föreläsning 1 & 2 INTRODUKTION

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

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

Objektorienterad Programmering (TDDC77)

Elias Castegren. (Version 1, 2012)

Schemaunderlag för Programmering, grundkurs (TDDB18)

Uppgifter teknik HT17 (uppdaterad v. 40)

Digitalt lärande och programmering i klassrummet

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

Föreläsning 1 & 2 INTRODUKTION

Subversion. Laboration. Höstterminen 2008 r81. Ronny Kuylenstierna

TDDD78 Objektorientering: Lagring och livstid

Hos vad? och bör därför vara instanseller klassvariabel i vilken klass?

Beställning till Husfoto. Handledning

729G09 Språkvetenskaplig databehandling

Introduktion till datormiljön och Python

Program. Kapitel make Program Interpreterande och kompilerande program

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

DD1310 Programmering för OPEN1 LAB1: Laborationer i Python läsåret 2011/2012

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Föreläsning 5 Programmeringsteknik DD1310. Modulen doctest. Exempel. Doctest Dictionary Filhantering

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg)

DD1310 Programmeringsteknik för Open1 och Med2 Laborationer läsåret 2014/2015

Övningsuppgifter kapitel 8

Lab 1: Första labben (2p) Inledning:

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

Extramaterial till Matematik Y

OOP Objekt-orienterad programmering

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Introduktion till programmering SMD180. Föreläsning 7: Strängar

MUDDYCARDS 729G04 PYTHON 1. Positivt. Negativt. JODY FOO Department of Computer and Information Science (IDA) Linköping University, Sweden

Programmering A. Johan Eliasson

TDDC74 Lab 04 Muterbara strukturer, omgivningar

Om e-post. Introduktion till Emacs. Att skicka e-post. ÅÄÖåäö i pine. Varför Emacs? Vad är Emacs? Emacs en editor/textbehandlare

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

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

Din guide till. Ändra tillhörighetskoppling

Kortkommandon i COSMIC

Objektorienterad programmering

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

JAVA Mer om klasser och objektorientering

Innehållsförteckning. 9 Större projekt Övningsuppgifter...32

TDP005, Projekt: objektorienterade system

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

Abstrakta datatyper Laboration 2 GruDat, DD1344

Transkript:

TDP002 Imperativ programmering Laborationsmaterial emacs python-mode Höstterminen 2008

Innehållsförteckning Introduktion...3 Redovisning av laborationer...3 Laboration 1 emacs python-mode...4 Uppgift 1 -.emacs...4 Uppgift 2 Kompilera och kontrollera pythonprogrammet...4 Uppgift 3 Information om pythonsymboler...5 Uppgift 4 - Indentering...5 Uppgift 5 Markera funtioner och klasser...5 Uppgift 6 - Pythoninterpretatorn...5 Uppgift 7 Information om symboler och komplettering...6 Uppgift 8 Extra (frivilliga övningar)...6 Redovisning...6

Introduktion 3 Introduktion Detta material innehåller laborationer och övningar för delmomentet emacs python-mode i kursen TDP002 Imperativ programmering. Redovisning av laborationer Ni ska visa för er labassistent att ni behärskar några av handgreppen i emacs python-mode. Se slutet av denna laborationsanvisning.

Laboration 1 emacs python-mode 4 Laboration 1 emacs python-mode Syftet med den här laborationen är att ni ska lära er emacs och pythonmoden i emacs så pass att ni ska kunna arbeta bekvämt med emacs och utan större hinder ska kunna programmera python i emacs. Uppgift 1 -.emacs Lägg in i din.emacs så att den stänger av ljudliga bell och slår på matchning av parenteser, parenmode. Starta om emacs och testa att det fungerar. Uppgift 2 Kompilera och kontrollera pythonprogrammet Spara följande program som vehicle.py. Objektorientering och klasser får ni lära er mer om i andra kurser. En klass kan ses som en komplex datatyp. # * coding: iso 8859 1 * class Vehicle: def init ( self, wheels ): self. wheels = wheels # wheels är ett privat attribut def getnumwheels( self ): return self. wheels class Truck( Vehicle ): def init ( self, doors ): Vehicle. init ( self, 6 ) self. doors = doors self. radio = [] def print_info( self ): print "En lastbil har %s hjul.\nden här har %s dörrar" % ( self.getnumwheels(), self. doors ) def print_channels(self): for ch in self. radio: print ch def add_radio(self): self. radio = ["88", "89","90","P2", "91.1","95.5", "99", "107.1"]

Laboration 1 emacs python-mode 5 class Car( Vehicle ): def init ( self, doors ): Vehicle. init ( self, 4 ) self. doors = doors def print( self ): print "En bil har %s hjul.\nden här har %s dörrar" % ( self.getnumwheels(), self. doors ) Kontrollera och kompilera pythonprogrammet. Tänk på att print är ett reserverat ord i python. Korrigera de fel ni får och gör om proceduren. Uppgift 3 Information om pythonsymboler Ställ er på en print och plocka fram information om pythonsymbolen. Uppgift 4 - Indentering Ändra funktionen print_channels så att den endast skriver ut radiokanalerna om lastbilen har fler än 2 dörrar. Använd pythonmodens möjlighet att ändra indentering (shifta regionen åt höger) Uppgift 5 Markera funtioner och klasser Använd kortkommandot för att markera en funktion och markera funktionen add_radio. Klipp ut funktionen och klistra in den före print_channels. Använd kortkommandot för att markera en klass och markera och klipp ut klassen Car och klistra in den före klassen Truck. Uppgift 6 - Pythoninterpretatorn I denna uppgift ska ni köra pythoninterpretatorn från emacs och ni ska kunna gå bakåt och framåt i listan över tidigare utförda kommandon i denna interpretator och köra dem igen. En klass kan betraktas som en komplex datatyp. Om man vill skapa ett objekt och tilldela en variabel detta objekt så görs det med: variabeln = klassen() Om ni t.ex. har filen modul.py som innehåller klassen foo och ni har gjort import modul blir det: bar = modul.foo() En klass kan ha metoder som arbetar på datat i den. En metod kan t.ex. vara att ange ålder på en person, skriva ut antalet dörrar som bilen har etc.. Om klassen foo ovan har en metod gazonk går det att för variabeln bar köra funktionen gazonk: bar.gazonk() Starta en pythoninterpretator från emacs. Importera vehicle

Laboration 1 emacs python-mode 6 Tilldela variabeln lastbil ett lastbilsobjekt med två dörrar. lastbil = vehicle.truck(2) För lastbil kör metoden print_info. Lastbil.print_info() För lastbil kör metoden print_channels. lastbil.print_channels() För lastbil kör metoden add_radio. lastbil.add_radio() Kör åter igen metoden print_channels. Skriver den ut kanallistan? Tilldela variabeln lastbil ett lastbilsobjekt med tre dörrar. Kör metoden add_radio. Kör metoden print_channels. Skriver den ut kanallistan? Uppgift 7 Information om symboler och komplettering Lägg till import re i början av filen vehicle.py. I en funktion lägg till re. och använd komplettering av symbol för att få fram vilka alternativ som finns till re. Ställ er sedan på re och plocka fram information om re på samma sätt som ni gjorde tidigare med print. Uppgift 8 Extra (frivilliga övningar) Start en extra frame och ställ er i början av bufferten vehicle.py i denna nya fram. Se hur ni kan se början av en buffert i en frame och t.ex. slutet av samma buffert i en annan frame. Stäng er nya frame. Se till att ha ett fönster med python-koden och ett fönster med interpretatorn. Byt fönster med kortkommandon. Om ni inte redan har gjort det kör igenom emacs tutorial. Prova och starta tetris med M-x tetris Prova och prata med psykologen med M-x doctor Redovisning Visa för er laborationsassisten att ni behärskar följande: Att ni från emacs kan kompilera och kontrollera pythonkoden. Att ni kan markera en funktion eller klass och flytta den. Att ni kan få fram information om en pythonsymbol. Att ni kan ändra indentering på ett avsnitt/block. Att ni kan starta interpretatorn och i den kan utföra pythonkommandon och kan repetera

Redovisning 7 tidigare utförda kommandon.