Digitale systemer II



Like dokumenter
Kapittel 1 En oversikt over C-språket

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

Programmeringsspråket C

Del 1 En oversikt over C-programmering

INF1000 undervisningen INF 1000 høsten 2011 Uke september

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

INF 1000 høsten 2011 Uke september

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

INF1000 : Forelesning 1 (del 2)

INF1000 Variable. Marit Nybakken 27. januar 2004

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Java. INF1000 : Forelesning 2. Ulike varianter for ulike behov. Java Standard Edition (Java SE) Java:

Øvingsforelesning i Python (TDT4110)

En oppsummering (og litt som står igjen)

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

INF109 - Uke 1b

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

IN 147 Program og maskinvare

som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing.

Litt Java-historikk. Litt Java-historikk. Ulike varianter for ulike behov. Litt Java-historikk. The Green Team

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

Programmeringsspråket C

Læringsmål og pensum. v=nkiu9yen5nc

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

Programmeringsspråket C

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering

Velkommen til INF1060. Introduksjon til operativsystemer og datakommunikasjon

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Oversikt. INF1000 Uke 6. Objekter, pekere og null. Lese og skrive fra/til fil. Litt om objekter, pekere og null Filer og easyio. Litt mer om tekster

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Shellscripting I. Innhold

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin.

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004

Forelesningsquiz. Forelesning inf Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Leksjon 3. Kontrollstrukturer

Læringsmål og pensum. Designe et program

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Leksjon 3. Kontrollstrukturer

MAT-INF 1100: Obligatorisk oppgave 1

Ta inn og ut av 2D-array. Java 6. Liste over ulike verdier i 2D-array. Det ferdige programmet. Vi skal lage et program som illustrerer hvordan man

Øvingsforelesning 1 Python (TDT4110)

Del 4 Noen spesielle C-elementer

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Forelesningsinfo. Tider Mandag Tirsdag Onsdag Torsdag Fredag

16 Programmere TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5

Den siste dagen. Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Veien videre... Eksamen

Dagens tema. Oppsummering om assemblerspråk. Programmering i C. Bakgrunn. Et minimalt eksempel med forklaring. Datatyper i C.

Løsningsforslag til 2. del av Del - EKSAMEN

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Professor Alf Inge Wang

06:15 Stå opp 06:30 Kle på meg 06:45 Spise frokost 07:00 Pusse tenner 07:15 Gå til bussen 07:30 Ta bussen 07:45 Jobbe på bussen 08:00 Jobbe på bussen

Kapittel 4: Logikk (predikatlogikk)

Oversikt. INF1000 Uke 3. Repetisjon Program. Repetisjon Program. Litt repetisjon Program Variabler og Uttrykk Presedens Matematiske funksjoner

Dagens tema INF2270. Cs preprosessor. Separat kompilering av C funksjoner. C og minnet. Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15

Spørsmål fra forrige forelesning. INF1000 Forelesning 7. Oppførselen til inword()/inint()/etc. Operator-presedens i Java

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp

MAT-INF 1100: Obligatorisk oppgave 1

UNIVERSITETET I OSLO

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

ITGK - H2010, Matlab. Repetisjon

Leksjon 2. Setninger og uttrykk

Opphavsrett: Forfatter og Stiftelsen TISIP

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Utførelse av programmer, metoder og synlighet av variabler i JSP

Leksjon 2. Setninger og uttrykk

Del 2 Tabeller, arrays, strenger

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Cs preprosessor. Dagens tema. Betinget kompilering

MAT1030 Diskret matematikk. Kompleksitetsteori. Forelesning 29: Kompleksitetsteori. Dag Normann KAPITTEL 13: Kompleksitetsteori. 7.

Designe et program. TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Mål.

Beskrivelse av programmeringsspråket Simpila INF Kompilatorteknikk Våren 2012

IN 147 Program og maskinvare

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:

INF1000: Forelesning 4. Mer om arrayer Metoder

MAT1030 Diskret matematikk

Øvingsforelesning i Python (TDT4110)

Emnekode: LV121A Dato: Alle skrevne og trykte hjelpemidler

Oversikt. Hva er programmering & Java forkurset til INF1000. Hva er en datamaskin. Arne Maus Inst for Informatikk Univ. i Oslo

INF 1000 (uke 2) Variabler, tilordninger og uttrykk

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Visuell Programmering: Kom i gang med Processing

Del 3. Pekere RR 2016

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Læringsmål og pensum. Utvikling av informasjonssystemer. Oversikt. Systemutvikling Systemutvikling i seks faser Femstegs prosedyre for programmering

Grunnleggende programmering i C

IN uke 1. Komme i gang med programmering

Tall. Binære regnestykker. Binære tall positive, negative heltall, flytende tall

Oversikt. Uke 2, INF 1000, 30 aug Variable, tilordninger og uttrykk. Repetisjon: Java programmering

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Ordliste. Obligatorisk oppgave 1 - Inf 1020

Repetisjon Program. INF1000 Uke 2. Repetisjon Program Prosedyren main Alt inne i klasser. Repetisjon Variable og uttrykk

Kapittel 1: Datamaskiner og programmeringsspråk

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Ukeoppgaver 2: sep (INF Høst 2010)

Transkript:

Digitale systemer II Praktiske opplysninger: To dobbelt timer forelesning pr uke. Ett tema/kapittel pr uke (med noen unntak) Øvingstimer på PC (tre grupper mandag 12:45, onsdag 12:45 og torsdag 10:30). Stud.ass., PI455 7 obligatoriske lab oppgaver. Egen plan kommer. Prosjekt på slutten av semesteret Mye selvstendig arbeid! Arbeidskrav: 7 laboppgaver (3 LEGO, 4 Arduino) Prosjektoppgave Øvinger på PC er frivillige. Vurdering: 70% eksamen, 30% prosjekt Begge deler må være bestått! 1

Hva dreier kurset seg om? Vi skal lære et språk som benyttes til å kommandere en maskin. Vi må da lære en del gloser hva ordene betyr. I C dreier dette seg om 32 ord; vi skal ikke bruke riktig alle. Vi må også lære syntaks hvordan bygge opp setninger. Etasje forvirret en heisen tok sjuende til elefant. En forvirret elefant tok heisen til sjuende etasje. For å skape gode tekster må vi tenke klart og uttrykke oss klart. Det dunkelt sagda är det dunkelt tänkta. Esaias Tegnér. 2

C programmering C er et høynivåspråk. Det er gammelt, start ca 1972, Kernigan & Richie: "The C programming Language" kom i 1978. Det finnes flere varianter av C, vi skal bruke ANSI C eller standard C (som læreboka er basert på). 3

Skrive, kompilere og kjøre et C program Mittprogram.c Mittprogram.obj Mittprogram.exe 4

Vårt første program grupperer #include <stdio.h> int main(void) { printf("hello world"); } return 0; Inkluder standard I/O Programmet begynner her Avslutter kommandoen Skriver ut tekst og evt variable 5

For å kjøre programmet: Skriv programmet i TextPad eller en annen editor. Velg start, programs, Microsoft Visual studio 2012, Visual studio tools, Developer Command Prompt for VS2012. Det kommer da opp et kommandovindu. Gå til den katalogen der programmet ditt er lagret (Mittprogram.c) (det gjør du ved cd.. for å gå oppover i treet, cd katalognavn for å gå nedover. skriv >cl /TC Mittprogram.c For å kjøre programmet: >Mittprogram hello.c 6

Vår første "glose" printf Syntaks: printf("tekst..."); Resten er nødvendig innpakning som blir klarere etter hvert #include <stdio.h> int main(void) { printf("hello world"); } return 0; 7

Kommentarsetninger: Sekvenser som begynner med /* og slutter med */ ignoreres av kompilatoren, det er kommentarer som er beregnet på mennesker. Eksempel: /************************************* * lang kommentar * **************************************/ int polse; // antall solgte pølser Bruk flittig! 8

Skrive ut andre ting enn ren tekst: \n ny linje \t tabulator (systemavhengig) \\ for å skrive \ \" for å skrive " \a lyd Spesialtegn \verdi(oktal) æ \211 ø \233 å \206 Æ \222 Ø \235 Å \217 \ escape karakter \n escape sekvens \t... Dette kan avhenge av tegnsettet som er satt opp 9

Et C program består av en sekvens av instruksjoner som utføres i rekkefølge. Rekkefølgen kan være viktig: ta en dusj ta på underbukse ta på bukse ta på sokker ta på T skjorte spis frokost puss tenner ta på sko gå på jobben juletre.c 10

Variable: lagerplass for data Variable har navn, som består av bokstaver og/eller tall og/eller karakteren "_". Første tegn må være en bokstav eller_. Eksempler: tall, sum, navn, antall_studenter, uke2, et_veldig_langt_variabelnavn_kan_vaere_upraktisk Store og små bokstaver er forskjellige; u2 og U2 er forskjellige variable. 11

Vi kan gi verdier til variable int x; x=5; x settes lik 5 Alternativt: int x=5; Dette må ikke forveksles med påstanden eller det logiske uttrykket x==5, som kan være sant eller usant! 12

Andre typer: float char flyttall et tegn short heltall, mindre presisjon long heltall, høyere presisjon double flyttall, høy presisjon...(det finnes flere) 13

Vi kan utføre aritmetiske operasjoner: int x=5; int y=6; int sum; sum=x+y; Høyresiden (5+6) regnes ut, og settes inn i variabeles sum Andre regneoperasjoner: minus * multiplikasjon / divisjon 14

Hvordan skrive ut verdien av en variabel For heltall: int x=6; printf("x=%d",x); Dette gir x=6 Tallet i tekststrengen erstattes av en "conversion spesifier" (for heltall %d). Variablene som skal settes inn listes opp etter komma. int x=6; int y=7; printf("x=%d og y=%d",x,y); Dette gir x=6 og y=7 15

Hvordan lese inn verdier fra tastaturet? #include <stdio.h> int main(void) { int x; printf("les inn verdien av x"); scanf("%d",&x);...//resten av programmet } return 0; 16

Viktig! Ny "glose" scanf Syntaks: scanf("format",&variabel,&variabel...); Vi skriver %d ved utskrift og innlesing av heltall. Tilsvarende "conversion spesifier" for flyttall er %f %10.2f betyr at bredden på feltet er 10 tegn, to desimaler "Conversion spesifier" for char er %c 17

Eksempel: Lag et program som leser inn to heltall fra tastaturet, og skriver ut summen av tallene. Planlegging: Vi må ha variable til å lagre de to tallene (int x og int y), og summen (int sum). 1. les inn x 2. les inn y 3. beregn summen og legg resultatet i sum 4. skriv ut resultatet (verdien i sum). 18

Flytskjema: start deklarer x,y,sum les inn x les inn y sum=x+y skriv ut sum slutt 19

#include <stdio.h> int main(void) { int x; int y; int sum; printf("les inn første tall"); scanf( "%d", &x); printf("les inn andre tall"); scanf( "%d", &y); sum=x+y; printf("summen av %d og %d er %d", x,y,sum); } return 0; 20

Les inn to flyttall og beregn produktet. 21

Oppsummering: printf scanf %d,%f int,float 22

23

Før vi bruker variable må vi deklarere dem, vi setter av plass, forteller hvilken datatype vi skal bruke int max; Vi setter av plass til et heltall, og gir det navnet max Minnet max Vi må vite hvor mye plass som skal settes av (her 4 byte), og hvordan innholdet i denne plasseringen skal tolkes. 24

25