"Crash Course in Programming"

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

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

Lathund. C för inbyggda system

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

Lathund. C för inbyggda system

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

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Arduinokurs. Kurstillfälle 4

TDDC77 Objektorienterad Programmering

Översikt över Visual Basic

TDIU01 - Programmering i C++, grundkurs

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

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?

Visual Basic, en snabbgenomgång

Programmering A. Johan Eliasson

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

TDDC77 Objektorienterad Programmering

SMD 134 Objektorienterad programmering

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

CE_O3. Nios II. Inför lab nios2time

Uttryck och villkor. Föreläsning 2

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010

Programmeringsteknik med C och Matlab

Arduinokurs. Del 1 - Vett och etikett. Talsystem. Binärt ettor och nollor

Grunderna i stegkodsprogrammering

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Programmerbar logik. Kapitel 4

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

DD1314 Programmeringsteknik

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

Pascal... Pascal. Pascal... Pascal...

Användarhandledning Version 1.2

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

Imperativ programmering. Föreläsning 2

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

Planering Programmering grundkurs HI1024 HT 2014

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

i LabVIEW. Några programmeringstekniska grundbegrepp

Objektorienterad Programmering (TDDC77)

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

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

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Kontrollskrivning Mikrodatorteknik CDT S2-704

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

HI1024 Programmering, grundkurs TEN

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Uttryck och villkor. Föreläsning 2

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Variabler och konstanter

Objektorienterad programmering Föreläsning 4

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Övningsuppgifter till föreläsning 2 Variabler och uttryck

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

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

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

Parameteröverföring. Exempel. Exempel. Metodkropp

F5: Högnivåprogrammering

HI1024 Programmering, grundkurs TEN

F5: Högnivåprogrammering

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

F4. programmeringsteknik och Matlab

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

Tentamen i Programmering grundkurs och Programmering C

Tentamen Grundläggande programmering

1 Funktioner och procedurell abstraktion

TDIU01 - Programmering i C++, grundkurs

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Objektorienterad Programmering (TDDC77)

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

2.4. Teckensträngar och logiska uttryck

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

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

C++ - En introduktion

Sphero SPRK+ Appen som används är Sphero Edu. När appen öppnas kommer man till denna bild.

Föreläsning 4. Val, boolska värden, läsbarhet, osv

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Uppgift 1 ( Betyg 3 uppgift )

Planering Programmering grundkurs HI1024 HT TIDAA

Tentamen i Programmering grundkurs och Programmering C

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Föreläsning 2 Programmeringsteknik och C DD1316

Planering Programmering grundkurs HI1024 HT data

Lösningar till tentamen i EIT070 Datorteknik

Twincat: PLC Control

Logik och kontrollstrukturer

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Data, typ, selektion, iteration

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY

Digital- och datorteknik

Variabler, värden och typer

Variabler, värden och typer

Transkript:

"Crash Course in Programming" Denna genomgång har fokus på programmering. Den följer PBasic-syntaxen för Basic Stamp II, men är i övrigt i stort sett frikopplad från BS2. Vissa aspekter som tas upp följer allmänna seder för programmering. Vissa styrs av språkets syntax. Nyckelperspektiv: Håll kontroll! Dela upp i block (a) funktionsblock som upprepas mer än 1 gång (b) funktionsblock som bildar en lämplig enhet. Under utvecklingen, lägg in signaler (gödsla tex med debug-rader) för att (a) kunna följa programflödet (b) kunna kontrollera om variabler ändrar värde på det sätt du vill. Kontrollera att variabler är tillräckligt stora - men inte större än nödvändigt. Programstruktur Kommentarhuvud Deklarationer Konstanter Variabler Huvudprogram Initieringar Huvudslinga, som anropar subrutiner Subrutiner - 2 slag Beskriver programmet som helhet (förutsättningar, allmän funktion, mm.) KonstantNamn con Värde Ger namn åt fasta numeriska värden. VariabelNamn var Storlek Ger namn åt utrymme i [RAM]minnet. Namnet fungerar som en pekare till ett utrymme i RAM. Mer än ett namn kan peka på ett och samma utrymme. Både KonstantNamn och VariabelNamn hittar i regel programmeraren på. Fast vissa variabelnamn finns fördeklarerade. I regel konstruerar man ett huvud program så att det mynnar ut i en ändlös slinga. Om inte, ska huvudprogrammet sluta med nyckelordet end. Annars fortsätter programflödet in i subrutinerna och kan trassla bort sej, med oväntade effekter som resultat. Som anropas med gosub. Ska avslutas med return. Som anropas från en if-sats. Ska avlsutas genom att rikta flödet med goto till lämplig plats i programmet. Gott och blandat Kommentarer ' (eller :) Talformat % binärt $ hexadecimalt inget prefix decimalt PBasic(BS2) arbetar enbart med heltal, och kan alltså inte hantera flyttal. Men man kan trixa för att nästan jobba med flyttal. (Se särskilt blad "Matematik med BS2".) Etiketter Ger namn åt adresser i programflödet. Markerar platser i programmet.

Datatyper 4 st (antal bitat inom parentes): bit (1) nib (4 = nibble) byte (8) word (16) Variabelmodifierare (utrett tidigare på annan plats). Kommandon (urval) Datahantering DEBUG /DATA, READ, WRITE Flödeskontroll GOSUB, RETURN GOTO IF THEN /BRANCH FOR, NEXT PAUSE END, /NAP, SLEEP Digital I/O INPUT, OUTPUT REVERSE HIGH, LOW TOGGLE PULSOUT PULSIN /COUNT /SHIFTIN, SHIFTOUT Tabeller LOOKUP, LOOKDOWN

Operatorer (urval) Finns 6 st "unary" (tar bara 1 operand) och 16 st "binary" (tar 2 operander) Kan också delas in i Matematiska + - * / 4 vanliga räknesätten. Fyra restriktioner gäller: 1. Enbart heltalsmatte. 2. Kommandon och operatorer har stöd för max 16-bitsvärden. BS2 kapar [övre änden] på större tal. 3. Finns inte stöd för negativa tal, men man kan själv arbeta med dem m.h.a. tex 2-komplementsrepresentation. 4. BS2 processar matematiska uttryck från vänster till utan att följa vedertagna regler för prioritering. M.h.a. parenteser kan man dock "toppstyra" detta. ** Ger övre 16 bitarna från ett 32bitars multiplikationsresultat. */ Multiplikation med ett 16bitars "bråktal". Övre byten representerar heltalet. Nedre byten representerar antal 1/256:ondelar. // Ger rest vid heltalsdivision. >> << Skifta ett steg vänster resp höger. ABS DIG Ger absolutbeloppet av ett tal ("tar bort minustecknet"). Ger decimalsiffra i ett tal sett som decimaltal. Logiska & ^ Bitvis logisk AND, OR, EXOR. &/ / ^/ Bitvis logisk NAND, NOR, EXNOR. REV Byter bittecken.

Exempel ' PBasicprogram HUR-DET-KAN-VARA ' Fil: HDKVara.bs2 ' hj 000302 ' Program för att exemplifiera programstruktur och urval av ' konstruktioner och kommandon. ' Deklarationer: Konstanter Stina con 17 'Namnet Stina betyder 17 Lage con Stina+3 'Namnet Lage betyder 20 (=17+3) Lisa con 205 ' Deklarationer: Variabler Ester var byte 'Namnet Ester betyder adressen till ett byte-stort ' utrymme som har reserverats i RAM. Edvard var Ester 'Edvard pekar på samma ställe som Ester. Evald var nib '4-bits reserverat. snurra var word '16-bits (kan användas som 65536-räknare). ' Huvudprogram: Initieringar (här minimalt...) dirh = %01010101 'Varannan pinne i I/O-blocket P15-P8 'görs till utgång och varannan till ingång. ' Huvudprogram: Utmynnande i huvudslinga stommen: 'Etikett Evald = 5 'Variabeln Evald tilldelas värdet 5. Ester.lownib = Evald 'Nu har oxå Ester värdet 5. gosub avstick 'Iväg till en subrutin. if in11 = 1 then avsteg 'Inbenet 12 kollas. 5V -> utvikning. tillbaka: goto stommen ' Subrutiner: Regelrätta subrutiner (gosub) avstick: for snurra = 1 to 5 '5 varv. Evald = Evald - 1 next for snurra = Edvard to Lisa step 50 'Oxå 5 varv. Edvard = Edvard * 2 debug dec Ester," ",hex2 Edvard," ",bin8 Ester," ",asc? Edvard,cr 'Häftig utskrift på PC-skärmen. next return 'Återvändo till anropspunkten lixom. ' Subrutiner: Villkorsgrenar (if then) avsteg:

Ester = Ester + Evald debug? Evald goto tillbaka