TDP002 Imperativ programmering



Relevanta dokument
TDP002 - Imperativ programmering

TDP002 - Imperativ programmering

TDP002 Imperativ programmering. Översikt. Programplan för IP - översikt. Innovativ programmering

TDP002 Imperativ programmering

TDIU01 (725G67) - Programmering i C++, grundkurs

Tutorial: Python på 90 minuter

Läsöversikt. Föreläsningar 2-6. Genomförande av laborationer

Introduktion till programmering. Programspråk och paradigmer

Program & programmering

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

Imperativ programmering

Grundkurs i programmering - intro

Föreläsning 2. Operativsystem och programmering

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.

Introduktion till programmering och Python Grundkurs i programmering med Python

TDP002 - Imperativ programmering

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

Grundläggande datalogi - Övning 1

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Användarhandledning Version 1.2

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

729G04 Programmering och diskret matematik. Python 3: Loopar

Uppgifter teknik HT17 (uppdaterad v. 40)

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

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

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

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

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

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

TDIU01 - Programmering i C++, grundkurs

Grundläggande databehandling ht 2005

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

Omprov 11/11. på förmiddagen.

TDDE44 Programmering, grundkurs

Prova på-laboration i Ada

Visual Basic, en snabbgenomgång

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

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

Python. Datatyper. Mer om datatyper. Heltal - 3 Flyttal - 2,456 Listor - [1,2,3,4] Strängar - spam!

TDP002 Imperativ programmering. Laborationsmaterial emacs python-mode

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

Använda Python Laboration 1 GruDat, DD1344

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

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

Digitalt lärande och programmering i klassrummet

Beräkningsvetenskap föreläsning 2

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

OOP Objekt-orienterad programmering

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Objektorienterad Programmering (TDDC77)

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

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

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?

Exempel på typer av datorspråk EXCEL

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

TDP002 - Imperativ programmering

Deklarativ programmering

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

BASH. Bourne-Again SHell. Eric Elfving Institutionen för datavetenskap (IDA)

TDDE44 Programmering, grundkurs

TDIU01 - Programmering i C++, grundkurs

Översikt. Varför lära sig detta? Motivering Syntax och semantik Imperativa språkets byggstenar och Python. PL-boken Kap 1 (repetition):

Imperativ programmering. Föreläsning 2

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

Imperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

Sista delen av kursen

Programspråkslingvistik. Sista delen av kursen. Ett programspråk

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

Välkomna till NADA. Paradigm i datalogin. Vad är ett paradigm

Sista delen av kursen

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

Selektion och iteration

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

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

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

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 2 Programmeringsteknik och C DD1316

Funktionell programmering

729G28. Webbprogrammering och databaser. Introduktion till webbutveckling med PHP. Jakob Pogulis Institutionen för Datavetenskap (IDA)

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

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

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

v. 43 Python HT17 En introduktion Oscar Bergqvist

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

Övningsuppgifter kapitel 8

LADDA NER LÄSA. Beskrivning. Programmering i Python PDF LÄSA ladda ner

Lite mer om CGI-programmering

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

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

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

Imperativ programmering. Föreläsning 3

Hur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap

v. 42 Python HT17 En introduktion Oscar Bergqvist

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

En kort text om programmering i C.

Objektorienterad programmering i Java

Transkript:

TDP002 Imperativ programmering Introduktion till kursen och python Eric Elfving Institutionen för datavetenskap (IDA)

Översikt Programmering En introduktion Python Köra och skriva program Python grunderna 2

Programmering en introduktion Vad är programmering? 3

Programmering en introduktion Tre grundbegrepp Källkod (source code): is any collection of computer instructions written using some human-readable computer language, usually as text. Interpretator: Kompilator: Ett program som kör (exekverar) direkt från källkod Ett program som översätter från ett språk till ett annat, t.ex. från källkod till exekverbar kod 4

Programmering en introduktion Programmeringsspråkens nivåer Maskinspråk: datorns språk, binärkod (1 eller 0) Assemblerspråk: mnemoniskt maskinspråk Ex: MOV A,#0FFH Högnivåspråk: språk utvecklade för att passa mänskliga programmerare. 1943 Einac Code 1950 Short Code 1954 FORTRAN 1958 Algol 58, Lisp 1959 COBOL 1963 Algol 68 1964 Basic 1967 Simula 1971 Pascal 1972 C, Prolog, ML 1976 Smalltalk 1977 Bourne Shell 1983 C++, Ada 1987 Perl 1991 Python, VB 1993 Ruby 1994 PHP 1995 Java 2000 C# 5

Programmering en introduktion Syntax och semantik Syntax: formatet på språkets konstruktioner Semantik: betydelsen hos språkets konstruktioner Varje språk har unik syntax Språket ingår ofta i en specifik paradigm en gemensam semantisk kärna med variationer I våra kurser: vi lär oss principerna så att vi kan paradigmen Språket väljs som exempel av paradigmen Viktigt att se principerna i exemplet 6

Programmering en introduktion Python och Ada en skillnad i syntax Python if x == 2 and y == 3: print("hej") Ada if x=2 and y=3 then Put_Line("Hej"); end if; Villkor for x in range(7): print(x) for x in 0..6 loop Put_Line(x); end loop; Iteration men väldigt lika semantik 7

Programmering en introduktion Tips för att bli en bra programmerare Att lösa problemet är intressant Ju svårare desto bättre Fokusera på ett problem i taget Klienterna kommer till dig för att det är svårt Arbeta systematiskt Välj dina fall med omsorg Övning ger färdighet 8

Python Att köra och skriva program Pythonkod skrivs vanligen i en vanlig texteditor (t.ex. emacs) och sparas med filändelsen.py Koden matas sedan in i interpretatorn som tolkar och kör koden Interpretatorn har en inbyggd bytekod-kompilator Python-bytekod exekveras av python virtual machine (PVM) Källkod Interpretator Bytekodkompilator PVM 9

Python Att köra och skriva program Tre olika sätt att exekvera Pythonkod Interaktivt via kommandorad DOS, IDLE, terminal print onödig, möjligt att ladda fil, inga blanka rader Bra vid experimenterande, lätt att testa kod interaktivt Anropa en fil från kommandorad % python program.py Linux/UNIX: #!/usr/bin/python3 eller bättre: #!/usr/bin/env python3 % chmod u+x program.py Generell editor/ide: t.ex. emacs och C-c C-c 10

Version 0.9 lanserades 1991 Python grunderna Historia Grunder från språket ABC (likt basic) Python 2.7.3 och 3.2.3 nuvarande stabila versioner Öppen källkod Programming for everybody Multiparadigm: Imperativt, funktionellt, objektorienterat Skriptspråksfamiljen: Perl, Python, Tcl, bash, etc Rapid development: bra både för nybörjare och erfarna Python 3.3.0 nästa version 11

Kraftfullt skriptspråk script = manus, manuskript Python grunderna Generellt om Python Kommandospråk, dvs. används även interaktivt Bra för enradare men även för större program Går att använda för att sammanfoga olika system, har bra stöd för filer, strängar och operativsystemsanrop Inbäddat i andra språk, t.ex. C och Java Generellt lättanvänt imperativt, objektorienterat språk Enkla konstruktioner: typsystem, modulhantering, exekvering Korta program, liten mängd standardbibliotek 12

Python grunderna Vårt första pythonprogram hello.py: #!/usr/bin/env python3 # -*- coding: utf-8 -*- print('hello world!') Enkla pythonprogram fungerar som script, dvs kommandon på fil eriel@~: chmod u+x hello.py eriel@~:./hello.py Hello world! eriel@~: 13

Python grunderna Lab 0 filer och moduler >>> import os,imp >>> help(os)... hjälp för os >>> imp.reload(os) Python Standard Library Utvidgar kärnan med kommandon och funktioner som är bra att ha http://docs.python.org/py3k/ Källkod: /usr/lib/python import laddar en modul help interaktiv hjälp (jmf man) reload laddar om en modul 14

Python grunderna Typer - Tal >>> 20 + 22 42 >>> 3 * 4 12 >>> 3 / 0 Traceback (most recent call): File <stdin>, line 1, in <module> ZeroDivisionError: division by zero >>> max(3,7) 7 >>> 5 // 2 2 >>> 5 % 2 1 >>> Inbyggda (built-in) Icke-förändliga (immutable) 15

Python grunderna Typer - Strängar >>> str = Hej >>> len(str) 3 >>> str[1] e >>> str[1:3] ej >>> str[-2] e >>> str + str HejHej >>> str * 3 HejHejHej >>> str.split( e ) [ H, j ] Inbyggda (built-in) Icke-förändliga (immutable) Sekvenstyp Metoder med stränspecifika operationer 16

Python grunderna Typer - Listor >>> mylist = [ A, B, C ] >>> mylist[1] B >>> mylist[1:3] [ B, C ] >>> mylist[0] = D >>> del mylist[1] >>> mylist [ D, C ] >>> mylist.append( X ) [ D, C, X ] >>> list2 = [7,3,2] >>> list2.sort() >>> list2 [2, 3, 7] Listor är sekvenser av objekt dynamiska arrayer Inbyggda (built-in) Förändliga (mutable) både storlek och innehåll Elementen kan vara vilken typ som helst, även olika typer i samma lista Metoder ger specifika operationer för listor 17

Python grunderna Typer Dictionary (tabell) >>> words = { GUL : YELLOW, VIT : WHITE } >>> words[ GUL ] YELLOW >>> GUL in words True >>> words[ GUL ] = RED >>> words.values() [ WHITE, RED ] Hashtabell / map Lagrar nyckel-värde associationer Nycklarna är icke-förändliga Metoder för typspecifika operationer 18

Python grunderna Typer Tupler >>> ( A, B, C ) ( A, B, C ) >>> tup = ( A, ( B, C )) >>> tup[1] ( B, C ) >>> ( A, B, C ) + ( D, E ) ( A, B, C, D, E ) Sekvenser av objekt Icke-förändliga Fixerad längd Statiska värden 19

1. Program består av moduler 2. Moduler består av satser 3. Satser innehåller uttryck Python grunderna Syntax och struktur 4. Uttryck skapar och beräknar värden 20

Python grunderna Satser - Tilldelning A = 4 sum = 3.2 + 5 res = En vacker sträng print(a) print(res) print(a*4) 4 En vacker sträng 16 Variabler används för att lagra värden från uttryck Uttryck är det som räknar ut något i språket Jmf matematiska uttryck Även struktur-uttryck, t.ex. strängar och listor En variabel tilldelas ett värde; variabel = uttryck 21

Python grunderna Satser - Villkor import random comp_die = random.randint(1,6) user_die = random.randint(1,6) if comp_die > user_die: print('datorn vann!') elif comp_die < user_die: print('du vann!') else: print('lika!') if-satsen om sant, gör detta elif annars om detta, gör så else annars gör detta elif och else frivilliga Man kan ha fler elif-grenar OBS! kolon och tab krävs 4 En vacker sträng 16 22

Python grunderna Satser - Villkor import random comp_die = random.randint(1,6) user_die = random.randint(1,6) if comp_die > user_die: print('datorn vann!') elif comp_die < user_die: comp_die > user_die F S Print( Datorn vann! ) print('du vann!') else: print('lika!') comp_die < user_die S Print( Du vann! ) 4 En vacker sträng 16 F Print( Lika! ) 23

Python grunderna Satser - Upprepning i = 3 x = 1 while i < 5: x = x * i i = i + 1 while-loopen utför sålänge villkoret stämmer Villkoret testas innan varje varv Bra för obestämda loopar OBS! kolon och tab krävs 4 En vacker sträng 16 24

Python grunderna Satser - Upprepning i = 3 x = 1 while i < 5: x = x * i i = i + 1 i < 10 S x = x * i i = i + 1 F 4 En vacker sträng 16 25

Python grunderna Satser - Upprepning x = 0 for val in [1, 4, 8]: x += val for-loopen upprepa för varje element Bra för förutbestämda loopar OBS! kolon och tab krävs 4 En vacker sträng 16 26

Python grunderna Satser - Upprepning x = 0 for val in [1, 4, 8]: x += val Finns det fler värden? S Stega vidare F x += val 4 En vacker sträng 16 27

www.liu.se