729G04 Programmering och diskret matematik. Föreläsning 5
|
|
- Christer Fredriksson
- för 5 år sedan
- Visningar:
Transkript
1 729G04 Programmering och diskret matematik Föreläsning 5
2 Föreläsningsöversikt Repetition av listmetoder Scope Defaultvärden Algoritmer: ex. linjär/binär sökning Flödesdiagram Pseudokod Rekursion Programmering som problemlösning Kodstil
3 Defaultvärden för funktionsargument
4 Värde på argument om inget annat anges def greet(name="zorro"): print("hello " + name + "!") >>> greet() 'Hello Zorro!' >>> greet("el Maco") 'Hello El Maco!' >>> Ibland vill vi kunna säga till en funktion att den ska anta ett viss värde på argumentet om vi inte säger något annat.
5 Sätt att ange parametrar def eggs(size, colour="red", boiled=true):... # Alla nedanstående anrop är OK! eggs(5) eggs(5, "green", False) eggs(2, boiled=false) eggs(boiled="false", colour="green", size=4) Om man namnger argument får man skicka dem i vilken ordning som helst. Ickenamngivna argument måste stå i rätt ordning. Argument utan defaultvärde måste skickas till anropet.
6 Demo av defaultvärden ault
7 Scope
8 Kan Gregorius räcka upp handen tack?
9 Scope - ingen "Gregorius" definierad i detta klassrum! Fråga internet - David? Gå ut på stan och fråga efter David?
10 Var finns min variabel? Var en variabel definieras påverkar hur "synlig" den är. Variabler i funktioner syns bara i funktionen de definierades i. De är lokala variabler. Variabler som definieras utanför funktioner är globala variabler och kan ses innifrån en funktion. För att tilldela (med =) en global variabel ett annat värde lokalt i en funktion - använd nyckelordet global i funktionen.
11 Scope - globala och lokala variabler greeting_local_name() name = "Sam" def greeting_local_name(): name = "Ham" greeting = "Hello" print(greeting, name) Variabel Värde name "Ham" greeting "Hello" greeting_global_name() def greeting_global_name(): global name name = "Spam" greeting = "Hello" print(greeting, name) Variabel name greeting greeting() Värde "Spam" "Hello" def greeting(greeting, name): print greeting + name Variabel Värde name greeting lokalt argument lokalt argument
12 Användning av globala variabler treasure_locations = [] def add_treasure_location_to_global(location): global treasure_locations treasure_locations += [location] def add_treasure_location_to_local(location): treasure_locations += [location] Den andra funktionen kommer att resultera i ett felmeddelande eftersom variabeln treasure_locations inte finns definierad i den kontexten (lokalt scope)
13 Block har inga egna lokala variabler my_name_is = "Slim Shady" for i in range(5): my_name_is = my_name_is + " " + str(i) print my_name_is print my_name_is for-blocket har ingen egenlokal variabelrymd, utan delar den med den yttre kontexten
14 Tips om debugging Mot slutet på varje kapitel i Think Python (icke-interaktiva) finns tips på sätt som man kan debugga sin kod.
15 Algoritmer
16 Algoritmer Beskrivning av systematisk lösning av en specifik uppgift Exempel hur man sorterar en lista hur man söker efter något i en trädstruktur hur man använder ett viss schiffer hur man räknar ut vilken väg som är kortast mellan två platser hur man känner igen termer i en text hur man konvertera ett decimaltal till ett binärt tal
17 Exempel: Vem är längst?
18 Vem är längst? A B C
19 Vem är längst? A B C
20 Vem är längst? A B C D E F G H I
21 Vem är längst? A B C D E F G H I
22 Egenskaper hos problem När är ett problem svårt? Var det andra problemet svårare? Hur definierar vi svårt? Hur tar vi egentligen reda på vem som var längst? Vad måste vi göra?
23 Från "datorns" perspektiv Har datorn en översiktsbild? Kan datorn titta på en hel lista på en gång? Datorn kan "titta" på ett element i taget Vi måste tillhandahålla arbetsminne Datorn kommer inte ihåg något "automatiskt"
24 Hur datorn "ser" listan [5, 20, 30, 40, 42]
25 5
26 20
27 30
28 40
29 42
30 Att beskriva en algoritm: Pseudokod och flödesdiagram
31 Pseudokod Nästan kod Fast med lite mer naturligt språk behöver inte ha med alla variabeldeklarationer är programspråksneutral gör det lättare att abstrahera Nivån på psudokoden kan varieras från väldigt kodnära till mer abstrakt (övergripande)
32 Pseudokodsexempel def plocka_ut_siffror(inputlista): siffror = tom lista Gå igenom alla element i inputlista Spara alla siffror i inputlista till listan siffror Returnera listan siffror.
33 Flödesdiagram/Flödesschema Visuell notation för att beskriva algoritmer och processer Inte så populär längre, då programmeringsspråken utvecklats (jmf högnivåspråk / lågnivåspråk)
34 Symboler i flödesdiagram
35 Flödesdiagram
36 Exempel på pseudokod och flödesdiagram
37 Simple Reflex Agent
38 Pseudokodsexempel function SIMPLE-REFLEX-AGENT(percept) returns an action presistent: rules, a set of condition-action rules state <- INTEPRET-INPUT(percept) rule <- RULE-MATCH(state, rules) action <- rule.action return action
39 Katt
40 Katt def kattsimulering(): while True: vakna() för alla saker på bordet vält(sak) sov()
41 Längst?
42 Algoritm som ger svaret på frågan "Hur lång är den längsta personen?" Sätt er två och två och försök skriva ner algoritmen. Ni får 3 minuter. Anta att ni får en lista med längden på de olika personerna, t.ex. [["a", 6], ["b", 4], ["c", 7], ["d", 5], ["e", 3]] Använd en icke-formell beskrivning, pseudokod eller ett flödesdiagram.
43 Hur lång är den längsta personen? Initiera högsta uppmätta längdvärde till 0. Gå igenom listan med person-längder en i taget. Om vi stöter på ett längdvärde som är större än det tidigaste längsta värdet kom ihåg det värdet. När vi har gått igenom hela listan, vet vi hur lång den längsta personen är.
44 Hur lång är den längsta personen? def max_length(height_list): max_length = 0 for person in height_list: if person[1] > max_length: max_length = person[1] return max_length
45 Vem är längst? Observera att frågan "Vem är längst?" och "Hur lång är den längsta personen?" Är två olika frågor. En algoritm som löser det ena problemet löser inte det andra!
46 Algoritm som ger svaret på frågan "Vem är den längsta personen?" Sätt er två och två och försök skriva ner algoritmen. Ni får 3 minuter. Anta att ni får en lista med längden på de olika personerna och deras längder, t.ex. [["a", 6], ["b", 4], ["c", 7], ["d", 5], ["e", 3]] Använd en icke-formell beskrivning, pseudokod eller ett flödesdiagram.
47 Vem längsta personen? Gå igenom listan med person-längder en i taget Om vi stöter på en person som är längre än den längsta hittills, kom ihåg den personen (index). När vi har gått igenom hela listan, vet vi vem den längsta personen är.
48 Vem är längst? def find_tallest(height_list): tallest_person = None for person in height_list: if person[1] > tallest_person[1]: tallest_person = person print("person " + tallest_person[0] + " is the tallest: " + str(tallest_person[1]) + " cm")
49 Rekursion
50
51 F(4) = F(4-1) + F(4-2) = F(3) + F(2) F(4)? F(3) = F(3-1) + F(3-2) = F(2) + F(1) 2 1 F(2) = F(2-1) + F(2-2) = F(1) + F(0) F(2) = F(2-1) + F(2-2) = F(1) + F(0) F(1) = 1 F(1) = 1 F(0) = F(1) = 1 F(0) = 0
52 def fib(n): if n == 0: return 0 elif n == 1: return 1 else: return fib(n-1) + fib(n-2)
53 Rekursion = anrop till sig själv En loop kan åstadkommas genom att en funktion anropar sig själv. funktion hitta_bokstaven_g(lista): om listan inte är tom, om det första på listan är ett g, säg "Hittat" annars, anropa hitta_bokstaven_g(allt i listan utom första)
54 Rekursiv funktion som går igenom en lista Slutvilkor: är listan tom? Returnera värde Titta på första elementet på listan, gör eventuellt något med det och slå ihop det med resultatet av ett rekursivt anrop med resten av listan.
55 Summera tal i lista # denna funktion antar att alla värden i listan är heltal def summera(heltalslista): if heltalslista == []: return 0 else: return heltalslista[0] + summera(heltalslista[1:]) Slutvilkor: är listan tom? Returnera värde Titta påförsta elementet på listan, göreventuellt något med det och slå ihop det med resultatetav ett rekursivtanrop med restenav listan.
56 Räkna heltal def antal_heltal(lista): if lista == []: return 0 elif type(lista[0]) == int: return 1 + antal_heltal(lista[1:]) else: return antal_heltal(lista[1:]) Slutvilkor: är listan tom? Returnera värde Titta påförsta elementet på listan, göreventuellt något med det och slå ihop det med resultatetav ett rekursivtanrop med restenav listan.
57 Rekursiv lösning på "hitta längst" def max_length(values, max_val=0): if values == []: return 0 elif values[0] > max_val: return max_length(values[1:], values[0]) else: return max_length(values[1:], max_val) Slutvilkor: är listan tom? Returnera värde Titta påförsta elementet på listan, göreventuellt något med det och slå ihop det med resultatetav ett rekursivtanrop med restenav listan. Special: vi skickar med det längsta värdet hittills i det rekursiva anropet.
58 Rekursion
59 Algoritmer: Linjär och binär sökning
60 Linjär sökning Linjär sökning innebär att man tittar på varje element i ordning. Kan användas på all data som går att beskriva som en sekvens. T.ex: Vem är längst?
61 Binär sökning Kan användas när vi har en ordnad sekvens. Titta på det mittersta elementet och jämför med sökkriterierna Givet att sekvensen är ordnad vet vi åt vilket håll vi ska gå, men inte hur långt vi ska gå. Titta på det mittersta elementet i den hälft som vi vet att målet bör finnas inom. Fortsätt atthalvera sökområdet tills vi hittar det vi söker efter eller det inte finns någon mer stans att leta.
62 Vi definierar mitten-index Om längden == 1, så mitten = första (index 0) Om längden == 2, så mitten = andra (index 1) Om längden == 3, så mitten = andra (index 1) Om längden == 4, så mitten tredje (index 2) Dvs, mitten = heltalsdelen av längden/2 [a], mitten = a [a, b], mitten = b [a, b, c], mitten = b [a, b, c, d], mitten = c
63 Exempel - leta efter j Finns bokstaven j bland dessa bokstäver? a, b, c, d, e, f, g, h, i, j, k, l
64 Börja i mitten a b c d e f g h i j k l mittenindex = 6/2 = som kommer innan j
65 Leta på den sida om mitten som innehåller j a b c d e f g h i j k l Vi har hittat ett j!
66 Exempel - leta efter c Finns bokstaven e bland dessa bokstäver? a, b, c, d, e, f, g, h, i, j, k, l
67 Börja i mitten a b c d e f g h i j k l mitten = g g kommer efter e, alltså vill vi titta till vänster om g
68 Leta på den sida av mitten som innehåller c a b c d e f g h i j k l mitten = d c är till vänster om d
69 Leta på den sida av mitten som innehåller c a b c d e f g h i j k l mitten = b c är till höger om d
70 Leta på den sida av mitten som innehåller c a b c d e f g h i j k l mitten = c vi har hittat c
71 Övergång till kod
72 Mittersta elementet [a]: mitten_index = int(1/2) = 0 [a, b]: mitten_index = int(2/2) = 0 [a, b, c]: mitten_index = int(3/2) = 1 [a, b, c, d]: mitten_index = int(4/2) = 2
73 Exempel på binär sökning hitta e i listan p vi letar mellan index 0 och index 11. längd: 12 mitten_index = int(12/2) = 6 p: "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" p[6] == "j" Eftersom "e" < "j" så letar vi mellan index 0 och 5 nästa varv
74 Exempel på binär sökning hitta e i listan p vi letar mellan index 0 och index 5. längd: 6 mitten_index = int(6/2) = 3 p: "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" p[3] == "d" Eftersom "e" > "d" så letar vi mellan index 4 och 5 nästa varv
75 Exempel på binär sökning hitta e i listan p vi letar mellan index 4 och index 5. längd: 2 mitten_index = int(2/2) = 1?! Men mitten är ju 5? Vi reviderar mitten-definitionen till: start_index + int(längden/2), där längden = slut_index+1 - start_index p: "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" p[5] == "f" Eftersom "f" > "e" så letar vi mellan index 4 och 4 nästa varv
76 Exempel på binär sökning hitta e i listan p vi letar mellan start_index 4 och slut_index 4. längden= = 1; mitten_index = 4 + int(1/2) = 4 start_index + int(längden/2), där längden = slut_index+1 - start_index p: "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" p[4] == "e" Vi har hittat "e"!
77 Frågor kvaratt ställa? När vet vi att vi inte kommer hitta det vi letar efter?
78 Binär sökning i kod def binary_search(element, sequence): """Denna funktion returnerar första påträffade index för värdet element i sequence. Om element inte hittas, returneras -1""" start_index = 0 end_index = len(sequence) # om start_index == end_index, # så är start_index-end_index == 0, dvs längden == 0 while start_index!= end_index: length = end_index + 1 Ð start_index middle_index = start_index + int(length / 2) if sequence[middle_index] == element: return middle_index elif sequence[middle_index] < element: start_index = middle_index + 1 # om inte sequence[middle_index] < element är sant, # så måste sequence[middle_index] >= element else: end_index = middle_index - 1 # vi kan ha hoppat ur loopen när start_index == end_index och # det indexet ger det vi letar efter, så vi kollar det if sequence[middle_index] == element: return middle_index else: return -1
79 När kan man använda binär sökning? När elementen står i sekvensen är sorterade antingen i stigande eller fallande ordning, och vi vet om sorteringsordningen. Stigande ordning: För alla element n, så är n+1 större eller lika med n. Sjunkande ordning: För alla element n, så är n+1 mindre eller lika med n. OBS! Binär sökning berättar inte om det finns fler element med det korrekta värdet.
80 Kodstil
81 PEP PEP stands for Python Enhancement Proposal. A PEP is a design document providing information to the Python community, or describing a new feature for Python or its processes or environment. The PEP should provide a concise technical specification of the feature and a rationale for the feature. PEP 1
82 Kodstil PEP 8 Style Guide for Python Code PEP 257 Docstring Conventions PEP 8 + PEP 257 ska följas från och med labb 5!
83 PEP 8 PEP 8 täcker delar av Python som inte täcks av denna kurs Strunta i de delar av PEP 8 som tar upp saker som inte tas upp i denna kurs.
84 Varför bry sig om kodstil? Ökad läsbarhet - på radnivå Lättare att hitta i koden - disposition Minskad risk för missförstånd Mindre frustration
85 PEP 8 - områden White Space - olika slags mellanrum i koden namngivning kommentarer disposition - var skrivs vad
86 PEP områden Hur skriver man en docstring - den kommentar i koden som dokumenterar vad en funktion gör Kommentarer på en rad Kommentarer som går över flera rader
87 White Space
88 Indentering Blanda inte indenteringstecken i samma fil. Dvs, använd antingen mellanslag eller tab-tecken. Mellanslag föredras. Rekommenderad ökning av antal mellanslag per indenteringsnivå är 4
89 Rätt Fel
90 Mellanslag Mellanslag mellan operatorer och värden Inga mellanslag innan parenteser i funktionsanrop
91
92 Radbryt Två tomma rader mellan funktionsdefinitioner (rader med kommentarer räknas inte som tomma rader) Använd inte för många radbryt i funktioner. Du behöver inte en tom rad mellan varje sats. Använd tomma rader för att visa logisk struktur - tänk "nytt stycke"
93 Radbryt Max radlängd: 79 tecken Python tillåter radbryt inom parenteser. Använd detta. Använd \ för att bryta en rad om det inte finns andra alternativ.
94 Exempel på radbryt
95 Namngivning
96 Variabelnamn och funktionsnamn (PEP 8) små bokstäver _ mellan "ord" beskrivande variabelnamn/funktionsnamn
97 Kommentarer
98 Funktionskommentarer (PEP 257) Beskriv funktionen i funktionskommentaren. Funktionskommentaren skrivs mellan tre citattecken i början och tre citatattecken i slutet. Om kommentaren sträcker sig över mer än en rad, ska de tre sista citattecknena läggas på en egen rad. Använd 72 som längsta radlängd för funktionskommentarer som går över flera rader.
99 Kommentarsexempel
100 Kodkommentarer Block-kommenterar Indenterad till samma nivå som efterföljande kod. Inline-kommentar Använd hellre block-kommentarer
101 Kommentarsexempel
102 Import
103 import Alla importer sker i början av filen En import per rad
104 Visualisering av rekursion
105 Rekursiva funktioner kontra iterativa loopar Rekursiva funktioner ligger nära matematiska funktioner. Loopar som använder for eller while, kallas för iterativa loopar. Rekursiva funktioner kan ta både längre tid och kan kräva mer minne än iterativa lösningar. Vissa problem kan dock ibland utryckas "enklare" med en rekursiv funktion.
106 Att skriva en rekursiv funktion Funktionen måste returnera ett värde Funktionsdefinitionen har minst ett argument Ett slutvillkor måste finnas
107 Nästlad loop jmf med rekursion Nästlad loop: loop i loop Rekursiv funktion: funktionsanrop i funktionsanrop
108 Klassiskt exempel - Träd Ett träd delar på sig i två grenar om dess längd är längre än x. Varje gren är ett träd.
109 Träd import turtle def draw_tree(length, min_length, step, angle): if length > min_length: # stam turtle.fd(length) # höger gren (som är ett träd) turtle.rt(angle) draw_tree(length*step, min_length, step, angle) # vänster gren (som är ett träd) turtle.lt(angle*2) draw_tree(length*step, min_length, step, angle) # backa tillbaka till start turtle.rt(angle) turtle.bk(length) s = turtle.screen() s.setup(width=600, height=600) turtle.mode("logo") turtle.speed(10) draw_tree(100, 10, 0.8, 35) turtle.exitonclick()
729G04 PYTHON 5 JODY FOO. Department of Computer and Information Science (IDA) Linköping University, Sweden
729G04 PYTHON 5 JODY FOO Department of Computer and Information Science (IDA) Linköping University, Sweden Föreläsningsöversikt Repetition av listmetoder Scope Defaultvärden Algoritmer & mera rekursion
Läs mer729G04 Programmering och diskret matematik. Python 3: Loopar
729G04 Programmering och diskret matematik Python 3: Loopar Översikt Labbar Punktnotation och strängmetoder Loopar Labb 3 Labbar? Punktnotation Punktnotation Ni har stött på punktnotation tidigare - kapitel
Läs merUppgifter teknik HT17 (uppdaterad v. 40)
Uppgifter teknik HT17 (uppdaterad v. 40) Uppgifterna bedöms inte, de är bara till för att öva. Samarbeta gärna med andra! Du behöver inte skriva ner svaren, men se till att du förstår lösningarna! 1. Det
Läs merProgrammering I Tobias Wrigstad fredag, 2009 augusti 28
Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,
Läs merKurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for
Inför provet Provet skrivs för hand och är uppdelad i två delar. Den första delen är på E-nivå och den andra delen är på C- och A-nivå. För att det ska bli enklare för er att träna inför provet så har
Läs mer729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer
729G04 Programmering och diskret matematik Python 2: Villkorssatser, sanningsvärden och logiska operatorer Föreläsningsöversikt Vad händer när vi kör vår pythonkod? Programmerare Villkorssatser Jämförelser
Läs merFöreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt
Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling
Läs merRepetition i Python 3. Exemplen fac. Exemplen fac motivering. Exemplen fac i Python
Repetition i Python 3 Exemplen fac Orginalet I Scheme använde vi rekursion för all slags repetition. Efterom Scheme är ett funktionellt språk återsänder alla språkkonstruktioner ett värde men i Python
Läs merTenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00
1 ( 7) Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker/kompendier (ej anteckningar,
Läs merNågra inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.
Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0
Läs merAnvändarhandledning Version 1.2
Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...
Läs merErfarenheter från labben
Erfarenheter från labben Bra Jobbat! Lite ont om plats... Parprogrammering? Skillnad mellan program och funktion! Skillnad mellan uttryck och kommando! Välj bra variabelnamn! Vad göra om det blir fel?
Läs mer729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo,
729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Kursinfo: återkoppling Muddy Cards och kompletteringar Diskret matematik Python: Programmering
Läs merGrundläggande datalogi - Övning 1
Grundläggande datalogi - Övning 1 Björn Terelius October 30, 2008 Python är ett tolkat språk som kan köras interaktivt. tcs-ray:~/grudat08>python >>> 11+3*4 23 >>> a = 15 >>> b=a >>> print "a =", a, "b
Läs mer729G04 Programmering och diskret matematik. Föreläsning 7
729G04 Programmering och diskret matematik Föreläsning 7 Föreläsningsöversikt Information Interaktion via text Läsa från fil Skriva till fil Spara och läsa abstrakta datatyper från fil Information Felaktigt
Läs merIntroduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion
Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)
Läs merFö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 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?
Läs merSpråket Python - Del 1 Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR
Läs merv. 42 Python HT17 En introduktion Oscar Bergqvist
v. 42 HT17 Python En introduktion Oscar Bergqvist oscar.bergqvist@stockholm.se 1 Innehåll 2 IDLE... 3 2.1 Det interaktiva läget... 3 2.2 Standardläget... 3 2.3 Färger i IDLE... 3 3 Variabler... 3 3.1 Namn...
Läs merProblemlösning och funktioner Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Problemlösningsstrategier Repetition av funktioner Mer om funktioner 2 Problemlösningsstrategier 3 PROBLEMLÖSNINGSSTRATEGIER Strategier Det finns ett flertal olika ansatser till
Läs merFöreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod
Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer
Läs merAlla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.
Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis
Läs merFöreläsning 6: Introduktion av listor
Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.
Läs merFunktioner. Linda Mannila
Funktioner Linda Mannila 13.11.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering Intro till funktioner och moduler Villkorssatsen
Läs merAtt förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner
Lektion 4, del 1, kapitel 10 Funktioner i JavaScript Inlärningsmål Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner Introduktion
Läs merFöreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
Läs merv. 43 Python HT17 En introduktion Oscar Bergqvist
v. 43 HT17 Python En introduktion Oscar Bergqvist oscar.bergqvist@stockholm.se 1 Innehåll 2 IDLE... 3 2.1 Det interaktiva läget... 3 2.2 Standardläget... 3 2.3 Färger i IDLE... 3 3 Variabler... 3 3.1 Namn...
Läs merUniversitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2
Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.) - Iteratorer
Läs merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs merFÖRELÄSNING 2, TDDC74, VT2018 BEGREPP PROBLEMLÖSNING MED HJÄLP AV FALLANALYS PROBLEMLÖSNING MED HJÄLP AV REKURSION
FÖRELÄSNING 2, TDDC74, VT2018 Begrepp och definitioner (delvis från föreläsning 1) Fallanalys som problemlösningsmetod Rekursivt fallanalys Rekursiva beskrivningar och processer de kan skapa Rekursiva
Läs merFöreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk
Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program
Läs merDagens föreläsning Programmering i Lisp Fö 5
Anders Haraldsson 1 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.3) - Iteratorer - Egenskaper
Läs merMATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...
Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»
Läs merPython. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Läs merInstruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2
Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2 Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok,
Läs merAnmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Läs merUppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00
1 ( 7) Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker/kompendier
Läs mer729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,
729G74 IT och programmering, grundkurs Tema 2. Föreläsning 3 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Information i grafstrukturer Diskret matematik Relationer: kopplingar mellan mängder Funktioner
Läs merIntroduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner
Läs merDatalogi för E Övning 3
Datalogi för E Övning 3 Mikael Huss hussm@nada.kth.se AlbaNova, Roslagstullsbacken 35 08-790 62 26 Kurshemsida: http://www.csc.kth.se/utbildning/kth/kurser/2d1343/datae06 Dagens program Att skapa egna
Läs merDD1314 Programmeringsteknik
Skolan för Datavetenskap och kommunikation DD1314 Programmeringsteknik Föreläsning 1 o print o variabler o reserverade ord o input o kommentarer o beräkningar o datatyper o if-satser Kursinformation Programmering:
Läs merFöreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
Läs merFöreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är
Läs merAlgoritmer och datastrukturer H I HÅKAN S T R Ö M B E R G N I C K L A S B R A N D E F E L T
Algoritmer och datastrukturer H I 1 0 2 9 HÅKAN S T R Ö M B E R G N I C K L A S B R A N D E F E L T Föreläsning 1 Inledande om algoritmer Rekursion Stacken vid rekursion Rekursion iteration Möjliga vägar
Läs merMicroPython Ett textbaserad programmeringsspråk för Micro:bit
MicroPython Ett textbaserad programmeringsspråk för Micro:bit Introduktion till informationsteknologi 1DT051 2018-09-24 karl.marklund@it.uu.se Uppsala universitet Programming, problemlösning och algoritmer
Läs merÖversikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem
Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS-regeln Procedurell dekomposition DRY-regeln Algoritmer Sortering och sökning Stegvis förfining Metod för att skapa ett program från
Läs mer729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,
729G74 IT och programmering, grundkurs Tema 3. Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Repetition: syntax-quiz Fler for-loopar (över listor och dictionaries) range() Nästlade strukturer
Läs merPlanering av ett större program, del 2 - for och listor. Linda Mannila
Planering av ett större program, del 2 - for och listor Linda Mannila 9.10.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Utskrift Indata Felhantering Funktioner och moduler (grunder)
Läs merTDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18
TDDC74 Programmering: Abstraktion och modellering Datortenta - 017-10-7, kl 14-18 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis
Läs merDagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i
Läs merFöreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer funktioner betyder att instruera en dator Ett program
Läs merTDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel
TDDC74 Programmering: Abstraktion och modellering Datordugga 2 - exempel Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.
Läs merIntroduktion till programmering SMD180. Föreläsning 8: Listor
Introduktion till programmering Föreläsning 8: Listor 1 1 Listor = generaliserade strängar Strängar = sekvenser av tecken Listor = sekvenser av vad som helst Exempel: [10, 20, 30, 40] # en lista av heltal
Läs merIntroduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser
Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och
Läs merTentamen i Introduktion till programmering
Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel:
Läs merTentamen i. TDDC67 Funktionell programmering och Lisp
1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDC67 Funktionell programmering och Lisp och äldre kurser TDDC57 Programmering, Lisp och funktionell programmering
Läs merIntroduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner med
Läs merPythons standardbibliotek
Pythons standardbibliotek Python 3 skall, enligt standarddokumenten http://docs.python.org/py3k/library/index.html ha stöd för vissa funktioner, typer och datastrukturer Så länge man håller sig till detta
Läs merBEGREPP HITTILLS FÖRELÄSNING 2 SAMMANSATTA UTTRYCK - SCHEME DATORSPRÅK
FÖRELÄSNING 2 Viss repetition av Fö1 Rekursivt fallanalys Rekursiva beskrivningar BEGREPP HITTILLS Konstant, Namn, Procedur/Funktion, LAMBDA, Parameter, Argument, Kropp, Villkor/Rekursion, Funktionsanrop,
Läs merVariabler och konstanter
Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!
Läs merIntroduktion till programmering SMD180. Föreläsning 3: Funktioner
Introduktion till programmering Föreläsning 3: Funktioner 1 1 Mer matematik Vi har sett matematiska uttryck med variabler, värden och operatorer, ex: 17+n pi/2 hours*60+minutes Kan man även skriva uttryck
Läs merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner
Läs mer1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1
Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Diagnostiskt prov Python-intro: print variabler reserverade ord input kommentarer beräkningar
Läs merFöreläsning 2. Täcker material från lektion 1, 2, 3 och 4:
(22 januari 2016 F2.1 ) Föreläsning 2 Täcker material från lektion 1, 2, 3 och 4: Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor, villkorssatser och iterationer main-metoden Kodstandard
Läs merDD1361 Programmeringsparadigm. Carina Edlund
DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp
Läs merProgrammering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p
Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället
Läs merDD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1
Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Python-intro: print variabler reserverade ord input kommentarer beräkningar datatyper if-satser
Läs merSCB :-0. Uno Holmer, Chalmers, höger 2 Ex. Induktiv definition av lista. // Basfall
Rekursiva funktioner Föreläsning 10 (Weiss kap. 7) Induktion och rekursion Rekursiva funktioner och processer Weiss 7.1-3 (7.4, 7.5.3 utgår) Fibonaccital (7.3.4) Exempel: Balansering av mobil (kod se lab
Läs merImperativ och Funktionell Programmering i Python #TDDD73. Fredrik Heintz,
Imperativ och Funktionell Programmering i Python #TDDD73 Fredrik Heintz, IDA fredrik.heintz@liu.se @FredrikHeintz Översikt Repetition: Satser och uttryck Variabler, datatyper, synlighet och skuggning Upprepning,
Läs merUppgifter till tenta i 729G04 Programmering och diskret matematik. 7 augusti 2015, kl 08:00-12:00
1 ( 6) Uppgifter till tenta i 729G04 Programmering och diskret matematik. 7 augusti 2015, kl 08:00-12:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker/kompendier (ej
Läs merFöreläsning 5. Rekursion
Föreläsning 5 Rekursion Föreläsning 5 Algoritm Rekursion Rekursionsträd Funktionsanrop på stacken Binär sökning Problemlösning (möjliga vägar) Algoritm En algoritm är ett begränsat antal instruktioner/steg
Läs merProgramkonstruktion och Datastrukturer
Programkonstruktion och Datastrukturer VT 2012 Tidskomplexitet Elias Castegren elias.castegren.7381@student.uu.se Problem och algoritmer Ett problem är en uppgift som ska lösas. Beräkna n! givet n>0 Räkna
Läs merFöreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering
Föreläsning 3 Programmeringsteknik och C DD1316 Innehåll i listor En lista kan innehålla element av olika typer: [ hej, 151, 10.59] uppdateringsoperatorer listor tupler strängar for-slingor importera moduler
Läs merIntroduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa
Läs merFöreläsning 2 Programmeringsteknik och C DD1316
Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C Datatyp Aritmetiska operatorer Omvandling av typer Reserverade ord Mikael Djurfeldt Logiska operatorer
Läs merFöreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera
Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på
Läs merOperatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera
Föreläsning 2 Operatorer Tilldelning Kodblock if satsen Logiska uttryck Att programmera En operator tar ett eller två data och producerar ett svar. Typexemplet är +. Den tar t.ex två heltal och producerar
Läs merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Pekare och Listor Eric Elfving Institutionen för datavetenskap 31 oktober 2014 Översikt 2/41 Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor Arbeta
Läs merHur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap
Hur man programmerar TDDC66 Datorsystem och programmering Föreläsning 3 Peter Dalenius Institutionen för datavetenskap 2014-09-05 Översikt Problemlösning: Hur ska man tänka? Datatyper Listor (forsätter
Läs merLäsöversikt. Föreläsningar 2-6. Genomförande av laborationer
Läsöversikt LP Part I Part IV, kap 18 PL: kap 1, 2 (Sem 1), 3 (Sem 3), 5.1-5.3, 5.8 intro, 6.1-6.3, 7.1-7.3, 8.1-8.3, 9.1-9.2 Wikipedia kan användas som stöd för PL-avsnitten. Föreläsningar 2-6 Genomförande
Läs merSätt att skriva ut binärträd
Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer
Läs merProgrammeringsteknik med C och Matlab
Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga
Läs merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering
Läs merProgrammera i C Varför programmera i C när det finns språk som Simula och Pascal??
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära
Läs merPYTHON SNABBREPETITION MEN FÖRST LITE ALLMÄNT OM PROGRAMMERING 729G04 PYTHON 2. Dagens Python
Dagens Python 729G04 PYTHON 2 Mer om funktioner Villkorssatser JODY FOO Department of Computer and Information Science (IDA) Linköping University, Sweden Linköpings universitet 1 2 MEN FÖRST LITE ALLMÄNT
Läs merÖvningsuppgifter kapitel 8
Inst. för Systemteknik Introduktion till programmering (SMD 180), 5 p Övningsuppgifter kapitel 8 1. Listor är en viktig datatyp i Python. Hur definierar kursboken lista? Vad kallas de värden som tillsammans
Läs merIntroduktion till programmering SMD180. Föreläsning 9: Tupler
Introduktion till programmering Föreläsning 9: Tupler 1 1 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3]
Läs merTDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 14-16
TDDC74 Programmering: Abstraktion och modellering Dugga 2, 207-04-06, kl 4-6 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i svårighetsordning.
Läs mer729G04 PYTHON 4 JODY FOO. Department of Computer and Information Science (IDA) Linköping University, Sweden
729G04 PYTHON 4 JODY FOO Department of Computer and Information Science (IDA) Linköping University, Sweden TURTLE GRAPHICS LOGO LOGO: programmeringsspråk för användning inom undervisning 1967 av Papert
Läs merTDP002 - Imperativ programmering
TDP002 - Imperativ programmering Algoritmer Pontus Haglund Institutionen för datavetenskap Anpassatt från material ursprungligen av: Eric Elfving 1 Datatyper Tal UTF-8 2 Procedurell abstraktion Repetition
Läs merKodexempel från Programmering 2 Tobias Wrigstad, Ph.D.
Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D. tobias@dsv.su.se Notera att exemplen är i Python 2.5 För att översätta till Python 3.0, gör följande ändringar print(x,y) istället för print x,y input("ett
Läs merTENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P
UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr
Läs merTDDC74 Programmering: Abstraktion och modellering Dugga 2, , kl 17-19
TDDC74 Programmering: Abstraktion och modellering Dugga 2, 2017-04-06, kl 17-19 Läs alla frågorna först och bestäm dig för i vilken ordning du vill lösa uppgifterna. Uppgifterna är inte nödvändigtvis i
Läs merTDDE44 Programmering, grundkurs
TDDE44 Programmering, grundkurs Föreläsning 5 Jody Foo, jody.foo@liu.se Föreläsning 5 & 6 Laboration 3: En egen pokedex data från webben Ny datatyp: dictionary Mer om dataabstraktion Nästlade datastrukturer
Läs merFunktionens deklaration
Funktioner - 1 Teknik för stora program #include #include......... cout
Läs merFöreläsning 13. Rekursion
Föreläsning 13 Rekursion Rekursion En rekursiv metod är en metod som anropar sig själv. Rekursion används som alternativ till iteration. Det finns programspråk som stödjer - enbart iteration (FORTRAN)
Läs merUniversitetet i Linköping Institutionen för datavetenskap Anders Haraldsson
1 2 - Block, räckvidd Dagens föreläsning Programmering i Lisp - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch
Läs merFöreläsning 4 Programmeringsteknik och Matlab DD1312. Logiska operatorer. Listor. Listor, tupler, strängar och forslingor
Föreläsning 4 Programmeringsteknik och Matlab DD1312, tupler, strängar och forslingor Villkor kan kombineras med operatorerna and,or,not Exempel: if pris=100: print Telefonfynd! A B A
Läs merDigitalt lärande och programmering i klassrummet
Stockholm 2018-02-14 14 februari 2018 Digitalt lärande och programmering i klassrummet Programmera i Python med micro:bit Introduktion I förra lektionen gick vi igenom grunderna i hur man programmerar
Läs merif (n==null) { return null; } else { return new Node(n.data, copy(n.next));
Inledning I bilagor finns ett antal mer eller mindre ofullständiga klasser. Klassen List innehåller några grundläggande komponenter för att skapa och hantera enkellänkade listor av heltal. Listorna hålls
Läs mer