TDT4105 Informasjonsteknologi, grunnkurs

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Regning i alle fag Ungdomstrinnsatsningen
Hvordan skrive en vitenskapelig artikkel?
Hva slags spørsmål skal man stille på hvilke nivåer?
En innføring i spillet: Lag En Setning
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Kontrollstrukturer (Kapittel 3)
Skaperen, ordneren og danseren
5 Øk lesesynsfeltet. 5.1 Lesesynsfeltet, lesehastigheten og oppfatningen •Når du fikserer blikket på et sted i teksten, kan du bare lese bokstavene og.
Behaviour Driven Development, Steg 1: - Ikke tenk som en utvikler Jan Fredrik Stoveland , Smidig 2009.
Ulike sorteringsmetoder Kompleksitet av dem
MATLAB En kort innføring/repetisjon SIF8001-SIF8005 Høsten 2001.
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
Ideutvikling - Problemdefinisjonen. Hva gjør de erfarne problemløserne? •Samler og analyserer informasjon og data •Snakker med mennesker som kjenner problemet.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Databasehåndtering med MySQL
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Kompleksitetsanalyse
Filer Finne minste Finne Største Beregne gjennomsnitt Variabler Tabeller – Arrays Lage frekvenstabell.
Øving 6: Med utgangspunkt i Internett/Web teknologi skal vi se på hvordan vi kan opprette nye foretningsmodeller. Vi skal ta utgangspunkt i lærebok-produksjon.
Klargjøring fra forrige gang
INF150 Programmering mandag 11.9
Kapittel 11 Rekursjon Å tenke rekursivt Rekursjon er ein programmeringsteknikk der ein metode kallar seg sjølv for å fullføre ei oppgåve For å kunne.
Roboter og matematikk!.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Java sertifisering - testern tester test
Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker
IT For medisinsk sekretær Fredrikstad Kai Hagali FORELESING KVELD 10.
INF 295 Algoritmer og datastrukturer Forelesning 1 - kapittel 1 Introduksjon Hans F. Nordhaug (Ola Bø) (Ketil Danielsen, 2007)
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Oppgaver til kodegenerering etc. INF-5110, 2013 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet,
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
Kapping av plater Mål: Vi skal lage komponenter for en møbelfabrikk ut fra standardiserte plater på 12 x 24 dm. Komponentene har lengde og bredde oppgitt.
Jæger: Robuste og sikre systemer INF150 Programmering Kapittel 2: Problemløsning Kapittel 3.1 og 3.2.
Java 5 Litt mer om løkker Arrayer Metoder Ole Christian Lingjærde
Høgskolen i Oslo Bli kjent med de grunnleggende funksjonene i regnearkprogrammet Excel IT-seksjonen ved Avdeling for lærerutdanning 2006/2007 Praktisk.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
INF1000 (Uke 12) Sortering og eksamensoppgaver Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen.
INF1800 Logikk og Beregnbarhet. Lærebok: Discrete Structures, Logic, and Computability Utdrag blir pensum. Obs: Første opplag inneholder mange feil, andre.
Byggeklosser i java  Klassedefinisjon  Variabel deklarasjon  Metodedeklarasjoner  En ordentlig klasse  Spesielle/kryptiske skrivemåter  løkker og.
LISP-OPPGAVER 1)Skriv en prosedyre som konverterer en liste til en array, altså en prosedyre som leser inn en liste og returnerer en endimensjonal array.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 25.9 MER OM: Sub-prosedyrer og sub-funksjoner Kap 4.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
Inf1000 (Uke 5) Arrayer, filer og tekst
Matematikk 1 årskurs 26. oktober 2009
INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø.
Android-Programmering Våren Oversikt Long-running operasjoner Introduksjon til Android services On-demand service Bruk av servicer på tvers av prosesser.
Registrering av testresultater fra mobiltelefon
Kidsmonitor tutorials for mobil. Innhold S. 3 Endre tidspunkt for hjemsending S. 10 Endre fast tidspunkt for hjemsending S. 17 Sende melding S. 20 Sjekke.
Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Programmering i Python.
1 TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab (forts) Rune Sætre / Anders Christensen {satre,
Datakortet – Modul 3 Word 2003, Kap Modul 3.
Hvordan skrive egne dilemma
INF5110 – 23. april, 2013 Svar på noen oppgaver til kap
Brøk Regneartene.
De fire regneartene.
LES SMARTERE Oversikt Lesemål Les aktivt Oppsummer Repeter
Roboter og matematikk.
LES SMARTERE Oversikt Lesemål Les aktivt Oppsummer Repeter
HUMIT1750 Logikk og Beregninger.
Oppfølgingsmøte for ITALIENSK
4 forskjellige måter å løse 2-grad likning
Oppdrag Bie-bot Forslag til forarbeid
Gå til – Klikk på «lag konto».
Dataanalyse CanSat.
Begynnerkurs i Python Realfagskonferansen 2019 Henrik H. Løvold
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
For, While, prosedyrer m/ parametere, funskjoner
Utskrift av presentasjonen:

TDT4105 Informasjonsteknologi, grunnkurs Matlab 5: Løkker (FOR og WHILE) Matlab 6: Problemløsning / Algoritmer Rune Sætre (satre@idi.ntnu.no) Anders Christensen (anders@idi.ntnu.no) TDT4105 IT Grunnkurs

Bruk piazza for å få rask hjelp til alles nytte! Ikke registrert deg? Gå inn på piazza.com og trykk på ’Sign up’ Allerede registrert deg? Gå inn på piazza.com og still spørsmål! Oppfordr studentene til å bruke piazza mer. Dette er en rask og enkel måte å få hjelp til alles nytte.

Læringsmål Løkker Kapittel 5 i Matlab-boka FOR-setningen WHILE-setningen Kapittel 5 i Matlab-boka Neste time: Algoritmeformulering

Telle forekomster av verdi i tabell Finne størrelsen på tabellen (dimensjonene) size(<tabell>) returnerer antall rader og kolonner i <tabell>. [rader, kolonner] = size(<tabell>) Ingen forekomster i utgangspunktet (antall = 0) Gå så gjennom tabellen Rad for rad, kolonne for kolonne Øke antall med en for hvert ”treff” Har resultatet (i antall) når alle elementene er sjekket

FOR-løkker FOR <tellevariabel> = <start>:<inkrement>:<slutt> <setninger> END Setningene i løkke-kroppen gjentas en gang for hver verdi av tellevariabelen FOR <tellevariabel> = <tabell> Løkkekroppen utføres en gang for hvert element i tabell

Summerer de 10 minste primtallene primtallSum.m Summerer de 10 minste primtallene

Programkjøring

WHILE-løkken WHILE <logisk betingelse> <setninger> END Løkke-kroppen gjentas 0-N ganger Hvis og så lenge betingelsen er sann Løkkekroppen må påvirke betingelsen (etter hvert) Antall iterasjoner er ofte ukjent på forhånd WHILE er mer generell enn FOR-løkken

gjett_tall.m Gjett et hemmelig tall

WHILE flytdiagram

Beregne pi Leibniz’ formel Går i løkke, legger til et nytt ledd for hver iterasjon Når kan vi stoppe? Når vi har lagt til et (fast) antall ledd. Når det blir liten nok forskjell på to etterfølgende estimater.

piFunksjon

Test-skript: testPiFunksjonen.m

Testkjøring

Tidtaking i Matlab tic – starter klokka toc – stopper klokka Se help tic / toc for mer informasjon NB! Ikke veldig nøyaktig. Datamaskinen kan bruke tid på noe annet.

Evige løkker Løkker som aldri terminerer (avslutter) while true while <noe som aldri blir usant> ctrl-C (trykk ned både ctrl og C, samtidig) Avslutter det som kjører i Matlab Ting å passe på: Oppsett av ”tilstand” før løkka Endring av ”tilstand” i løkkekroppen MÅ ha et resonnement for terminering etter hvert

TDT4105 Informasjonsteknologi grunnkurs: Uke 39/40 – Algoritmeformulering: - Flytskjema - Pseudokode Anders Christensen Rune Sætre anders@idi.ntnu.no satre@idi.ntnu.no

Læringsmål og pensum Læringsmål Pensum Problemløsning: Fra problem til kjørende program Algoritmebegrepet Algoritmeformulering Flytskjema Pseudokode Pensum Foilene, litt i algoritmedelen av teoriboka (kommer tilbake til det i uke 44 og 45.

Algoritme I matematikk og informatikk er en algoritme en presis beskrivelse av en endelig serie operasjoner som skal utføres for å løse et problem. (Wikipedia) Algoritme, i matematikk og databehandling en fullstendig og nøyaktig beskrivelse av fremgangsmåten for løsning av en beregnings- eller annen oppgave. (Store norske leksikon) Omdannelse av navnet på den arabiske matematikeren al-Khwarizmî (ca. 820) i tilslutning til gresk arithmós (tall).

Euklids algoritme Euklids algoritme er en av de eldste kjente algoritmene, fra antikkens Hellas. Euklids algoritme for største felles faktor for to heltall (største heltall som deler begge) – sff(a,b) Hvis et av tallene er 0 har vi løsning: sff(a,0) = a Ellers trekker vi det minste tallet fra det største tallet helt til ett av tallene er lik null, det andre tallet er da svaret. sff(35,21)=sff(14,21)=sff(14,7)=sff(7,7)=sff(7,0) sff(9,11)=sff(9,2)=sff(7,2)=…=sff(1,2)=sff(1,1)=sff(1,0) NB! Finnes mer effektive algoritmer

Problemløsningsprosess

Problemløsningsprosess

Pseudokode Notasjon for å beskrive algoritmer som ligger mellom programmeringsspråk og naturlig språk. Benytter kontrollstrukturer fra programmeringsspråk for å formulere valg og repetisjon. Fordeler: Tekst (kan skrives i editor) Ligner strukturelt på løsning i programmeringsspråk Raskt å skrive Lett å endre Ulemper: For likt programmer, stimulerer ikke andre deler av hjernen

sff i pseudokode Les inn a og b gjenta til a eller b er lik 0 hvis a < b b = b – a ellers a = a – b slutthvis sluttgjenta svar = a + b

sff i Matlab-kode (sff.m)

Flytskjema En grafisk representasjon av en algoritme Nødvendige steg og kontrollstrukturer for å løse et programmeringsproblem. Et sett grafiske elementer Fordeler: Grafisk, noe annet enn tekst Ulemper: Grafisk: Tar tid, tungt å endre Blir for store Forskjellig fra programmer

Flytskjema: Symboler

sff i flytskjema

Euklids algoritme, vurdering Svært lite effektiv i enkelte tilfeller sff(1, 1000000) Finnes mye bedre variant http://no.wikipedia.org/wiki/Euklids_algoritme Trening: Implementer denne selv