i LabVIEW. Några programmeringstekniska grundbegrepp

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

Visual Basic, en snabbgenomgång

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

JavaScript del 3 If, Operatorer och Confirm

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

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

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

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

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?

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

En kort text om programmering i C.

TDIU01 - Programmering i C++, grundkurs

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

Översikt över Visual Basic

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

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

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

Parameteröverföring. Exempel. Exempel. Metodkropp

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

Beräkningsvetenskap föreläsning 2

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

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

Uppgift 1 (grundläggande konstruktioner)

Föreläsning 3: Booleans, if, switch

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

[] Arrayer = Indexerad variabel

Planering Programmering grundkurs HI1024 HT 2014

Programmeringsteknik med C och Matlab

Uttryck, satser och strömhantering

DIGITALA TAL OCH BOOLESK ALGEBRA

Uppgift 1 - programmet, Uppg6.m, visade jag på föreläsning 1. Luftmotståndet på ett objekt som färdas genom luft ges av formeln

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Föreläsning 3.1: Datastrukturer, en översikt

Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler

Iteration while-satsen

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

COBOL. från grunden. monitors. Peter Sterwe. training people

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

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

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

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

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

Logik och kontrollstrukturer

Data, typ, selektion, iteration

Systemutvecklare SU13, Malmö

Tentamen i. TDDC67 Funktionell programmering och Lisp

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

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

MMA132: Laboration 2 Matriser i MATLAB

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Uppgift 1 ( Betyg 3 uppgift )

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

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Introduktion till logik

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

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

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

Home Nerladdning typsnitt Ladda Ladda fonter Menyn Skrivare Menyn teckensnitt Menyn Verktygsfält Menyn Hjälp Snabbtangenter

Tentamen i. Programmering i språket C

Objektorienterad programmering Föreläsning 2

Imperativ programmering. Föreläsning 2

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

Lab5 för prgmedcl04 Grafik

MATEMATIKENS SPRÅK. Avsnitt 1

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

Exempel: Exempel: Exempel: Exempel: $djur=array("ko","katt","älg"); foreach ($djur as $d) { echo $d. " "; } Resultat. ko katt älg

Arduinokurs. Kurstillfälle 4

Föreläsning 3. Iteration while-satsen

Lite logik. Kap 6: Sid 2

Variabler och konstanter

Värmedistribution i plåt

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Planering av ett större program, del 2 - for och listor. Linda Mannila

Planering Programmering grundkurs HI1024 HT TIDAA

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Användarhandledning Version 1.2

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

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion

Föreläsning 8: Aritmetik och stora heltal

Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

Grundläggande datalogi - Övning 1

Flyttal kan också hantera vanliga tal som både 16- och 32-bitars dataregister hanterar.

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

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äsningsmaterial (Syntax och variabler)

Lösningar till uppgifterna sätts ut på kurssidan och på WebCT (Gamla Tentor) i dag kl 19. Tentamen i Programmering C, 5p, Distans, övriga,

Text och strängindexerade fält Grundkurs i programmering med Python

2 Laborationsutrustning

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

TATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Loopar och objekt i JavaScript

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

Transkript:

Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar om textbaserade språk (t ex Basic, Pascal och C), grafiska språk (t ex ) eller kombinationer därav (t ex Visual Basic och Delphi). Begreppen kan dock ha lite olika namn i olika språk och vi tar här i första hand upp de namn som är aktuella i. Datatyper Datatyper definierar hur de objekt som vårt program skall hantera är uppbyggda, t ex är objektet 103 inte samma sak om det definieras som tal eller som sträng. Definieras det som tal är det ett objekt med värdet etthundratre. Definieras det som en sträng är det i stället en text uppbyggd av de tre skrivtecknen: ett, noll och tre. Heltal Heltal kan bara anta heltalsvärden och detta får t ex betydelse om vi vill dela heltalet fem med heltalet fyra. Resultatet blir då ett med resten ett. Flyttal Flyttal har till skillnad mot heltal även decimaler och resultatet av ovanstående division kan då bli 1,25, det är dock inte säkert att vi får detta resultat eftersom vi oftast kan ange hur många decimaler vi vill ha i våra tal. Anger vi bara en decimal till ovanstående division får vi alltså resultatet 1,3, anger vi i stället 4 decimaler får vi resultatet 1,2500. CHALMERS LINDHOLMEN Sida 1 Institutionen för elektroteknik Sven Knutsson Box 8873 402 72 Göteborg Besöksadress: Hörselgången 4 Telefon: 031-772 57 27 Telefax: 031-772 57 31 E-post: svenk@ios.chalmers.se Web: www.ios.chalmsers.se/ svenk

Vi kan dessutom ange flyttal på lite olika sätt, t ex som decimaltal eller som tal med exponent. En tusendel kan då anges som 0,001 (decimaltal) eller som 1 10-3 (tal med exponent). Reella tal Reella tal är tal som bara kan anta reella värden, dessa kan sedan vara heltal eller flyttal. Komplexa tal Komplexa tal är tal som kan anta komplexa värden, dvs de kan anges som real- och imaginärdel eller som belopp och fasvinkel. I de flesta programmeringsspråk har man inte möjlighet att direkt hantera komplexa tal utan man får hantera realdel för sig och imaginärdel för sig eller motsvarande för belopp och fasvinkel. I har vi dock möjlighet att direkt arbeta med komplexa tal, men vi kan också separera dom i sina beståndsdelar om vi vill. Boolska värden Boolska värden kan bara anta två olika värden, SANT eller FALSKT. Detta kan även beskrivas med andra ord som logisk etta och logisk nolla eller logiskt hög och logiskt låg nivå. Tecken Grundgruppen här är de alfanumeriska tecknen, dvs tecken ur alfabetet och siffror. Siffrorna skall dock inte tolkas som värden utan som skrivtecken. Det finns även andra tecken och vi kan lite oprecist säga att tecken är sådant som går att skriva ut samt styrtecken för detta. Styrtecknen kan då t ex vara tecken för ny rad, tabulatorsteg etc. Strängar Strängar är en rad av tecken hanterade som en grupp, t ex ett stycke text. Arrayer Arrayer används för att hantera en följd av objekt, dessa objekt kan då vara av vilken typ som helst men alla objekt i arrayen måste vara av samma typ. Vi kan också kalla en array för en lista. Vi kan t ex ha en array av namn, t ex en lista över namnen på de anställda i ett företag där vi kan referera till hela lista med ett namn, t ex Personal, medan vi refererar till de enskilda anställda via de olika objekten i listan, vi har då en indexerad lista där varje objekt har ett index (löpnummer). Dessa index kan ofta löpa inom vilket intervall vi vill men normalt startar index från noll eller ett och går uppåt. Vi refererar alltså till de olika anställda i exemplet ovan som Personal[0], Personal[1] etc om index startar med noll (sättet att referera till enskilda objekt varierar mellan olika språk). Sida 2

Endimensionella arrayer Vad vi har beskrivit ovan är egentligen endimensionella arrayer, dvs enkla listor med en enda utbredningsriktning. Flerdimensionella arrayer Flerdimensionella arrayer har mer än ett index. Vi kan t ex göra en tvådimensionell array för att referera till en punkt på datorskärmen. Datorbilden är uppbyggd av 640 horisontella och 480 vertikala punkter om vi använder VGA-grafik och vi kan då använda oss av referensen Punkt[horisontell referens,vertikal referens], vi kan i detta fall också prata om rader och kolumner. Vi kan sedan bygga vidare på våra arrayer för att t ex få tredimensionella arrayer för att beskriva en plats i rummet (längd, bredd och höjd). Kluster Kluster används för att bygga upp objekt som består av sammanhängande delobjekt. I vårt ovanstående exempel med en array bestående av objekt innehållande namnen på de anställda i ett företag skulle vi då kunna bygga ut varje objekt så att det innehöll namn, adress och telefonnummer, som då är textsträngar, samt t ex månadslön och anställningstid, som då är tal, samt kanske ett boolskt delobjekt som anger om den anställde har reserverad parkeringsplats eller inte. Vi ser alltså att de olika delobjekten kan ha olika typ. Vi har alltså här skapat tre nivåer där vi på den högsta nivån refererar till hela listan som Personal och i listan refererar till den enskilde anställde i listan som Personal[index] och slutligen till delobjekten som någonting i stil med Personal[index].delobjekt (metoden varierar mellan de olika programmeringsspråken). Konstanter och variabler Objekt kan vara av två typer, konstanter eller variabler. Konstanter Konstanter är värden som inte kan förändras under programmets gång. Vissa konstanter är allmänt erkända och behöver ingen speciell förklaring, t ex pi. Vi kan också definiera egna konstanter, t ex omräkningsfaktorn 25,4 för att omvandla mellan millimeter och tum. Vi kan också definiera konstanter av andra typer t ex textsträngar eller boolska värden. Variabler Variabler är värden som kan förändras under programmets gång. Det är naturligtvis möjligt att använda variabler i stället för konstanter men då får vi tänka oss för så att vi t ex inte helt plötsligt ger PI ett nytt, falskt, värde. Sida 3

Strukturer Strukturer används för att bygga upp delar av ett program, ofta delar som skall upprepas eller utgör olika alternativa programdelar. Funktioner Funktioner är delprogram som används för att returnera ett objekt, oftast ett värde. Funktioner används ofta för att göra beräkningar som skall göras ett antal gånger i vårt program så att vi slipper upprepa samma kod flera gånger. De flesta program har t ex inbyggda funktioner för att beräkna sinus av en vinkel men vi kan också bygga upp egna funktioner. Subrutiner Subrutiner är snarlika funktioner men returnerar inget värde. Även här handlar det oftast om uppgifter som skall göras ett antal gånger under programmets gång och vi vill slippa upprepa samma kod. Det kan t ex handla om att sortera en lista i bokstavsordning. I gör vi ingen egentlig åtskillnad mellan funktioner och subrutiner. Sekvenser Sekvenser används för att säkerställa att ett antal programdelar utförs i rätt ordning. I textbaserade programspråk är detta oftast inget problem eftersom koden utförs i den ordning den är skriven. I grafiska språk (läs ) kan vi dock lägga upp programdelar på olika delar av skärmen utan att de har någon naturlig koppling mellan varandra som anger i vilken ordning de olika delarna skall utföras. Om vi vill styra ett mätinstrument och ta in ett värde från detta kan det t ex vara lämpligt att vi ser till att ge kod för att ställa in rätt mätområde innan vi gör själva mätningen. Loopar Loopar används då vi har programavsnitt som skall utföras gång efter gång, antingen ett visst antal gånger eller också till något visst villkor inte längre är uppfyllt. FOR-loop En FOR-loop används då vi har ett programavsnitt som skall utföras ett bestämt antal gånger. Skall vi t ex beräkna medeltemperaturen under var och en av årets månader så vet vi från början att loopen skall köras 12 gånger. WHILE-loop WHILE-loopar används då vi inte vet hur många varv vi skall köra loopen. I ovanstående exempel kan vi t ex tänka oss att beräkna medeltemperaturer till dess vi hittar en månad med en medeltemperatur högre än 10 grader. WHILE-loopar kan också styras av yttre villkor, vi kan t ex beräkna medelvärde av insamlade mätdata ända till dess vi trycker på en stoppknapp. Sida 4

Villkorssatser Villkorssatser används då vi har alternativa programavsnitt som skall utföras under olika villkor. IF-sats IF-satser är villkorssatser som har två alternativ, antingen är något SANT eller FALSKT och detta styr vilket programavsnitt som skall utföras, t ex kan vi beroende på i vilket läge en omkopplare står visa resultatet av ovanstående medeltemperaturberäkning i grader Celsius eller i grader Farenheit. CASE-sats CASE-satser är snarlika IF-satser och en utveckling av denna då vi har mer än två alternativa programavsnitt att välja på. I ovanstående medeltemperaturberäkning måste vi t ex beroende på månad ta medelvärdet över 31, 30 eller 28 dagar (eller 29 om det är skottår). Aritmetik Aritmetik används för att göra någon typ av beräkning på data, där ordet beräkning skall tas i mycket vid bemärkelse. Unär aritmetik Unär aritmetik används då vi gör en beräkning på ett enda dataobjekt, t ex tar absolutbeloppet av ett tal. Binär aritmetik Binär aritmetik används då beräkningen innefattar två dataobjekt, t ex då vi jämför två tal och undersöker vilket som är störst. Vill vi utöka till flera operatorer så får vi stegvis behandla operatorerna två och två. Logik Vi talar om logik då vi vill använda aritmetik på boolska objekt. Nedan skall vi nämna några av de logiska grundfunktionerna. Vi kan använda så kallade sanningstabeller för att beskriva funktionerna. OCH En OCH-funktion har två insignaler och ger ett sant resultat endast om båda insignalerna är sanna Den amerikanska beteckningen (som är minst lika vanlig) är AND. Vi kan beskriva funktionen med den logiska ekvationen In1 In2 Ut falsk falsk falsk falsk sann falsk sann falsk falsk sann sann sann Sida 5

Ut = In1 In2 Observera att tecknet mellan insignalerna ser ut som ett multiplikationstecken men det skall här inte tolkas som ett sådant. ELLER En ELLER-funktion har två insignaler och ger ett sant resultat om någon av eller båda insignalerna är sanna. Den amerikanska beteckningen är OR. Vi kan beskriva funktionen med ekvationen Ut = In1 + In2 In1 In2 Ut falsk falsk falsk falsk sann sann sann falsk sann sann sann sann Observera att tecknet mellan insignalerna ser ut som ett additionstecken men det skall här inte tolkas som ett sådant. INTE En INTE-funktion (ICKE-funktion) har en insignal och ger ett sant resultat om insignalen är falsk. Vi kan också kalla funktionen för INVERS. Den amerikanska beteckningen är NOT. Vi kan beskriva funktionen med ekvationen Ut = /In In falsk sann Ut sann falsk Exklusivt ELLER En Exklusivt ELLER-funktion har två insignaler och ger ett sant resultat om en och endast en av insignalerna är sann. Den amerikanska beteckningen är Exclusive OR. Vi kan beskriva funktionen med ekvationen In1 In2 Ut falsk falsk falsk falsk sann sann sann falsk sann sann sann falsk Ut = In1 In2 Sida 6