Datatyp - mera. Begreppet värde, igen. Ett slags mått på en egenskap, eller något fenomen. Ska ges en bred tolkning!
|
|
- Ulla-Britt Hermansson
- för 6 år sedan
- Visningar:
Transkript
1 Begreppet värde, igen Ett slags mått på en egenskap, eller något fenomen. Ska ges en bred tolkning! Kan vara mycket enkla: födår, ögonfärg, styckepris,.. eller lite sammansatta: en vektor, ett personnamn, en faktura,.. eller tämligen komplexa: ett ekvationssystem, en schackställning, Begreppet datatyp, igen Värden med samma karaktär, som mäter samma fenomen. Varje värde tillhör alltid en datatyp! Varje datatyp har (vanligen) ett eget namn. Datatyp Adas typnamn Exempel på bokstavliga skrivsätt heltal Integer reella tal Float enstaka tecken Character A > texter String-varianter "Medelvärdet:" sanningsvärden Boolean true false Datatyp - mera Man kan som programmerare också tillverka egna, nya datatyper, t ex Egen datatyp Exempel på värden - för komplexa tal (12.3, -0.5) - för matriser för ögonfärg blå grå eller vad som helst! Men hur det går till visas inte just nu! Begreppet uttryck Ungefär: skrivsätt (konstruktioner) som beskriver ett värde. Flera alternativ, bl a Som literaler (dvs bokstavligt skrivna värden) "Summan: " Som variabler (egentligen variabelnamn) Alfa no_of_steps Som formler (operationsuttryck) Alfa ** 2 Varje uttryck tillhör en och endast en datatyp! TDDB53 - Fö3 Sammanfattning 1 TDDB53 - Fö3 Sammanfattning 2 Variabel - en modell? Associationen från ett namn (identifierare) till ett värde av en viss given datatyp. Värdet kan ändras, men inte namn eller datatyp! Idé till hur det kan betraktas: Alfa namnet Samma variabel när den senare fått ett nytt värde: Alfa Variablers namn hittar jag själv på, enligt vissa regler. Variabler skall deklareras innan de kan användas! Begreppet deklaration värdets typ Float 1.25 aktuellt värde Float Ungefär: att introducera ett nytt namn (egentligen identifierare), och samtidigt ge namnet en speciell innebörd (t ex att vara en variabel eller konstant). Deklaration - några exempel Variabler, konstanter: Alfa, Beta : Float; Anger att Alfa och Beta är namn på variabler av Float-typ. Men värdet på variablerna är än så länge odefinierat. Sum : Integer := 0; Anger att Sum är namnet på en heltalsvariabel, vars värde nu också sätts till 0. Men det kan givetvis ändras senare! Pi : constant Float := ; Anger att Pi är namnet på en konstant som får angivet värde, vilket aldrig kan ändras. Prompter : constant String := "? "; Anger att Prompter är namnet på en text-konstant (med huvud -datatypen String) med det oföränderliga värdet?. Andra exempel: type Color is (Blue, Green, Gray); Anger att Color blir namnet på en ny datatyp med de tre värdena som räknas upp, vilka härmed också deklareras att tillhöra datatypen Color. package IIO is new Integer_IO(Integer); Anger att IIO är namnet på ett speciellt slags paket. Därefter är det tillåtet att använda namnet. TDDB53 - Fö3 Sammanfattning 3 TDDB53 - Fö3 Sammanfattning 4
2 Deklarationer - exempel på skrivsätt Deklaration av fem variabler (lite osnyggt skrivet): Aritmetiska operatorer - sammanfattning Nedan anges typerna för operanderna! A, B, C : Integer; Mean, SqSum : Float; Operation: Typ på värde: Alternativt deklarationssätt: Ordningen kan vara en annan, kommentarer tillfogade, layout tillrättalagd: -- Variabler: Mean : Float; -- Medelvärdet. C, A, B : Integer; -- De tre talen. SqSum : Float; -- Summa av kvadraterna. Snyggaste sättet att skriva deklarationerna. En variabel per rad: -- Variabler: A : Integer; -- De tre talen, B : Integer; C : Integer; SqSum : Float; -- deras kvadratsumma, Mean : Float; -- och deras medelvärde. integer + integer integer integer - integer integer - integer integer {sk monärt -} integer * integer integer integer / integer integer integer mod integer integer abs integer integer { beloppet } float + float float float - float float - float float float * float float float / float float abs float float integer ** integer integer { a b } float ** integer float Detta sista gör det enklare att skriva en individuell kommentar till varje variabel, vilket ofta är en god idé. Prioriteter (beräkningsordning): högst (= först) abs ** mod * / monärt - lägst (= sist) binärt - binärt + TDDB53 - Fö3 Sammanfattning 5 TDDB53 - Fö3 Sammanfattning 6 Typkonvertering Funktioner - funktionsanrop De aritmetiska operationerna är alltså mycket strikta när det gäller operandernas datatyper. Ibland kan man behöva omvandla ett värde av en datatyp till ett värde av en annan datatyp. Integer till Float Om A, B och C är variabler av typen Integer och jag vill beräkna medelvärdet av dom som en Float duger inte uttrycket (A + B + C) / 3 eftersom kvoten då blir en (oprecis) Integer. Inte heller duger (A + B + C) / 3.0 eftersom den divisionsoperationen inte existerar överhuvudtaget! Jag måste omvandla summan till en Float innan jag gör en Float_division: Float(A + B + C) / 3.0 Alternativt skulle man förstås kunna ha gjort det som (Float(A) + Float(B) + Float(C)) / 3.0 men det är lite klumpigare. Alternativet 0.33 * Float(A + B + C) är inte heller så bra, på grund av att 0.33 är en ganska dålig approximation av en tredjedel! Float till Integer Integer(float-värde) skapar ett nytt Integer-värde som är en kopia av float-värde avrundat till närmaste Integer! En funktion är en slags transformation av ett/flera värden (parametrar, eller argument) till ett annat värde. Känt från t ex matten, där man ofta har mycket speciella skrivsätt för många såna: sin x x 10 log x x P(x, y) Ada har också funktioner, men alla beskrivs av ett namn, och argumenten skrivs alltid inom parentes. Värden kan också beskrivas med hjälp av funktioner - man säger att man använder funktionsanrop. Några exempel: Integer Max(i, k) Float Truncation(x) abs(k) abs(x) i och k betecknar här godtyckliga Integervärden, och x betecknar ett Float-värde Genom att använda det särskilda paketet Ada.Numerics.Elementary_Functions får man också tillgång till många andra matematiska funktioner, bl a Sin(x) och Cos(x) och andra trigonometriska Sqrt(x) för roten ur x Log(x) för naturliga logaritmen av x Log(x, b) för b-logaritmen av x Exp(x) för e x Funktionsanrop är alltså ytterligare en form av uttryck! Man kan införa egna funktioner! Mer senare i kursen. TDDB53 - Fö3 Sammanfattning 7 TDDB53 - Fö3 Sammanfattning 8
3 Jämförr (relationsoperationer) 6 operatorer: = /= < > <= >= Två värden kan jämföras bara om dessa har samma datatyp! Värdet av en jämför tillhör den inbyggda datatypen Boolean som innehåller exakt två värden, true och false OBS: true och false är inte namn på variabler, de är literaler (bokstavliga värden) pss som t ex 162 är ett literalt värde av typen Integer, eller -0.5 en literal av typen Float. Exempel: bland deklarationerna: x, y : Float; are_equal : Boolean; x_is_negative : Boolean; i den utförande delen: begin are_equal := x = y; x_is_negative := x < 0.0; Användning: Booleska (eller logiska) värden, t ex jämförr, används bl a för att styra if- och while-repetitioner. Logiska (Booleska) operationer Logiska värden kan sättas ihop till mer komplexa villkor med hjälp av logiska operationer (operatorer). I huvudsak finns 3 sådana i Ada: logiskt värde or logiskt värde logiskt värde and logiskt värde not logiskt värde Några exempel: bland deklarationerna: A, B, C : Integer; AllDifferent : Boolean; sen kan man göra t ex A=B or A=C or B=C true om minst två är lika A=0 and B=0 and C=0 true om alla är noll A < B and B < C Värdet är förstås också logiskt, true / false. true om stigande ordning AllDifferent := A/=B and A/=C and B/=C; AllDifferent sätts till true bara om alla är olika AllDifferent := not (A=B or A=C or B=C) dito! Jämför första uttrycket. TDDB53 - Fö3 Sammanfattning 9 TDDB53 - Fö3 Sammanfattning 10 Satser Ett uttryck är alltså något sätt att beskriva ett värde. En sats är å andra sidan snarast en order, en uppmaning till handling! (Ett imperativ, på vackert språk!) X := Alfa * 12.5; Sätt X till!!! Put(X, 0, 3, 0); Skriv ut!!! exit when X > 0.0; Avbryt (repetitionen) när!!! En sats kan beskriva vad som ska hända med värden: Sätt X till det värde som beskrivs av Alfa * 12.5 Skriv ut det värde som X står för En sats beteende kan också påverkas av, styras av värden: Olika typer av (1) tilldelningssatsen Den allmänna formen kan skrivas variabelnamn av nån typ T := värde av typ T ; proceduranrop Get(variabelnamn); Put(); i olika varianter New_Line; Get, Put, New_Line är namn på sk procedurer. Anropet av en procedur är en form av sats. Du ska få veta mer om vad en procedur är senare. Avbryt (repetitionen) när värdet av X > 0.0 är true, (fortsätt annars). Ett uttryck kan därmed vara del av en sats, men det är aldrig tvärtom! Ett uttryck kan aldrig finnas som en egen sats för sig själv. Däremot kan vara del av, styras av, andra. (loop-satsen, if-satsen) En sats har inte något värde! Varje sats skall avslutas med ; (semikolon). exit-satsen, som bara kan finnas mellan loop och end loop Det finns i själva verket två former av den satsen. Den ovillkorliga skrivs helt enkelt exit; Den villkorliga skrivs i den allmänna formen som exit when villkor ; Ett programs algoritmiska del (utförande del) är helt enkelt en sekvens av! Och uttryck ingår som beståndsdelar i (de flesta). där villkor är ett godtyckligt uttryck av Boolesk typ. TDDB53 - Fö3 Sammanfattning 11 TDDB53 - Fö3 Sammanfattning 12
4 Olika typer av (2) if-satsen - en styrsats Nedan betecknar villkor i ett uttryck vars värde är av typen Boolean, och i betecknar en följd av, vilka som helst, men minst en. Exempel utan -gren: Exempel med -gren: elsif villkor 2 then elsif villkor 2 then Olika typer av (3) if-satsen kan nu sammanfattas med en generell beskrivning på ett lite formellt sätt. Formella symboler: [ x ] x kan finnas en gång eller inte alls [ x ] x kan finnas noll gånger eller flera if villkor then [ elsif villkor then ] [ ] Ett annat generellt och grafiskt beskrivningssätt visas här. Det beskriver uppbyggnaden av en konstruktion genom att man följer pilar genom ett diagram: elsif Sammanfattningsvis: if villkor then elsif villkor then end if ;.. skall alltid finnas först.. kan sedan finnas 0 eller flera gånger.. kan därefter finnas 0 eller 1 gång.. skall alltid finnas sist if villkor then end if ; Här visas dels verkliga ada-ord och dels, i ramar, delar som betecknar andra delkonstruktioner. TDDB53 - Fö3 Sammanfattning 13 TDDB53 - Fö3 Sammanfattning 14 Olika typer av (4) Mera om datatyper repetitionssatsen - en styrsats Med samma grafiska beskrivningssätt kan den sammanfattas som while villkor for variabelnamn in range loop reverse Dvs: egentligen en enda konstruktion, men med olika alternativ. Vi kan ha en styrande beskrivning först, med for eller med while, eller utelämna den helt. I samtliga fall kan innehålla 0 eller flera förekomster av exit-satsen. villkor har samma betyd som tidigare. range är ungefär samma sak som intervall. Det kan skrivas på lite olika sätt - ett sätt är lägsta värde.. högsta värde. Det finns restriktioner på vilka värden range kan innehålla. Variabeln med namnet variabelnamn är en ny variabel som bara existerar inom loop-satsen, och som inte ska deklareras! Om reverse finns med innebär det att styrvariabeln stegas baklänges över range:en. För vissa datatyper gäller att det säkert går att säga vilket värde som följer närmast efter (eller före) ett givet värde. Eller: att det går att räkna upp alla värden från det minsta till det största (eller tvärtom). Integer: -oo, -1, 0, 1, 2, 3,.. oo Character:, a, b, c, A, B, C, Boolean: false, true Detta är omöjligt för Float! Vilket Float-värde är närmast större än 3.0? Vi säger nu att Integer, Character och Boolean är sk uppräkningstyper (eller: diskreta datatyper). range (intervallet) i en for-sats måste vara av uppräkningstyp! Man kan också tillverka egna uppräkningstyper! Man bestämmer då själv både namnet på den nya datatypen, vilka värden som typen ska innehålla och storleksrelationen mellan dessa. Värdena ska vara namn (identifierare)! I deklarationsdelen exempelvis type InstId is (IDA, IEI, IFM, MAI, IMT, ISY, ITN); TDDB53 - Fö3 Sammanfattning 15 TDDB53 - Fö3 Sammanfattning 16
5 Uppräkningstyper - attribut Ett attribut är en egenskap hos en datatyp, vars värde man kan läsa av med en särskild konstruktion: type InstId is (IDA, IEI, IFM, MAI, IMT, ISY, ITN); Inst : InstId := IEI; Attributen First och Last ger första resp sista värdet i datatypen: Integer First Integer Last Boolean First false InstId Last ITN Attributet Range ger intervallet över datatypens alla värden: Boolean Range false.. true InstId Range IDA.. ITN Attributen Pred och Succ ger föregångaren resp efterföljaren till ett angivet värde, inom typen: Integer Succ(23) 24 Boolean Pred(true) false InstId Succ(Inst) IFM InstId Pred(IDA) exekveringsfel! Attributet Image ger den text som representerar ett givet värde: Integer Image(125); " 125" Boolean Image(1 < 2); "TRUE" InstId Image(Inst) "IEI" Kort om subtyper Månad : Integer; -- Månadsnummer 1-12 är att skjuta över målet! Ett månadsnummer kan inte ha vilket Integer-värde som helst! Man kan lätt av misstag placera ett ogiltigt värde i variabeln Månad! Inför i stället en subtyp: subtype Månadsnummer is Integer range ; Månad : Månadsnummer; Månad kan nu bara anta värden i Om man försöker ge den andra värden blir det exekveringsfel! Däremot kan man göra operationer mellan Månad och vanliga Integers. Antag att nm är en Integer-variabel: -- Stega Månad nm månader framåt: *) if Månad + nm <= 12 then Månad := Månad + nm; Månad := (Månad nm) mod ; En bra regel: Försök alltid åstadkomma så naturtrogna datatyper som möjligt! *) Hela if-satsen skulle faktiskt kunna ersättas av Månad := (Månad nm) mod ; TDDB53 - Fö3 Sammanfattning 17 TDDB53 - Fö3 Sammanfattning 18 For-satsens range, igen Det finns tydligen flera sätt att skriva den. Några olika exempel: for index in loop for i in slut_värde loop for value in min.. max * 2-1 loop for p in false.. true loop for p in Boolean Range loop for p in Boolean loop for mnr in Månadsnummer loop for col in Color loop for i_id in InstId First.. Inst Pred(InstId Last) loop Tänkbar typ av tentafrågor: Nedan är x en positiv Float. Beskriv med ord vilken funktion av x som uttrycket utgör. Eller: vilken karaktäristisk egenskap hos x som uttrycket beskriver. Det är inte detaljerna i beräkningen frågan gäller, utan en beskrivning av helheten, utifrån betraktat, och lite abstrakt. Integer(Float Truncation(10.0 * x)) mod 10 I koden nedan är v deklarerad som Integer. Vilka värden kommer v att ha, i tur och ordning, när avsnittet markerat med utförs? for s in reverse loop v := s; while v <= 10 loop v := v + s; Antag att DT är namnet på någon uppräkningsdatatyp. Beskriv vilka värden v kommer att anta i for v in DT Succ(DT First).. DT Last loop TDDB53 - Fö3 Sammanfattning 19 TDDB53 - Fö3 Sammanfattning 20
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
Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén mars 2010 Tentamen TDDB53 TENTAMEN TDDB53 (provkod TEN2) den 7 april 2010 kl 8 12 Jour: Emil Nielsen, tel 070 499 89 88 Hjälpmedel:
Exempel på ett litet Ada-program
Exempel på ett litet Ada-program -- En kommentar som beskriver något. with Ada.Text_IO; procedure Mini is -- Deklarationer. K : constant Integer := 5; X, Y : Integer; -- Körbar kod. Ada.Text_IO.Put( Utskrift
Tentamen Grundläggande programmering
Akademin för Innovation Design och Teknik Tentamen Grundläggande programmering Kurskod: DVA103 Datum 2012-06-11 Tid 14.10 16.30 Examinator: Lars Asplund Maxpoäng: 48 Betygsgränser: Betyg 3: 20 Betyg 4:
KOMPLETTERANDE HEMTENTAMEN TDDB53
Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén februari 2009 Tentamen TDDB53 KOMPLETTERANDE HEMTENTAMEN TDDB53 Programmering i Ada för MI (MI-ADA) i februari 2009 Tentan lämnas
KOMPLETTERANDE HEMTENTAMEN TDDB53
Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén mars 2003 Tentamen TDDB53 KOMPLETTERANDE HEMTENTAMEN TDDB53 Programmering i Ada för MI (MI-ADA) i mars 2003 Tentan lämnas ut 24/3
Språ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
KOMPLETTERANDE HEMTENTAMEN 2 TDDB53
Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén mars 2009 Tentamen TDDB53 KOMPLETTERANDE HEMTENTAMEN 2 TDDB53 Programmering i Ada för MI i mars 2009 Tentan publiceras 19/3 vid ca
Klassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
Månadsnamn september Några deklarationer
Datatyper - enkla resp sammansatta Varje datatyp kan sägas vara definierad som en uppsättning värden, vars form (vanligen) skiljer sig från värdena i andra datatyper. I Ada har vi t ex inbyggda datatyper
Variabler 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!
Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
TDIU01 - 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
Typsystem. Typsystem... Typsystem... Typsystem... 2 *
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse
GRUNDER I VHDL Innehåll Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse KOMPONENTMODELL Modell för att beskriva komponenter Externt interface Intern funktion
Parameteröverföring. Exempel. Exempel. Metodkropp
Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I
Föreläsning 4: Poster
Föreläsning 4: Poster Följande är genomgånget: type Person_Type is Namn : String(30); Skonr : Float; Kon : Boolean; Diskussion runt detta med olika typer m.m. Har tagit upp vilka operationer man kan göra
DD1361 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
Översikt över Visual Basic
Översikt över Visual Basic Om denna översikt Denna översikt ger en kort introduktion till de viktigaste delarna i programspråket Visual Basic 6.0. På alla ställen där det beskrivs hur man skriver kod gäller
TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
Beräkningsvetenskap föreläsning 2
Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa
Imperativ programmering. Föreläsning 2
Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.
Dagens 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
Programmera 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
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner
732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (
Paket (2) nautisk_mil : constant Float := * foot; ångström : constant Float := 10.0E-10; mile : constant Float := 5280.
Paket (2) with LängdKonstanter; use LängdKonstanter; procedure Main is Ett huvudprogram som infogar detta paket: Paket (1) Ett paket med en praktisk uppsättning konstanter: package LängdKonstanter is --
Fö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.
Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt
Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken
5 Grundläggande in- och utmatning
5 Grundläggande in- och utmatning För att användaren skall kunna kommunicera med programmet krävs att man inkluderar ett eller flera bibliotek med rutiner. I Ada finns det ett antal paket som gör detta
Pascal... Pascal. Pascal... Pascal...
... Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken
Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.
Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra
TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26
TAIU07 Matematiska beräkningar med MATLAB för MI Fredrik Berntsson, Linköpings Universitet 15 januari 2016 Sida 1 / 26 TAIU07 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet i att
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val
732G11 Linköpings universitet 2011-01-26 1 2 3 4 Program recept 1 spaghetti = 100; 2 salt = 1; 3 olja = 5; 4 köttbullar = 8; 5 ketchup = 0,5; 6 koka(salt, spaghetti); 7 micra(köttbullar); 8 Om(micron ==
Fö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
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler
SMD 134 Objektorienterad programmering
SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning
Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser
// En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa
Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada
Datastrukturer Vad är en datastruktur? Vad är en datatyp? Primitiva datatyper i Java Icke-primitiva datatyper i Java Minnesexempel med datastrukturer Vektorer i Java Erik Forslin efo@nada.kth.se Rum 1445,
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
Uppgift 1 ( Betyg 3 uppgift )
2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal
Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem.
Omgivningar Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem. (define (sqrroot c) (define (fixpoint guess c eps) (define
Fö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
Inledande programmering med C# (1DV402) 27+15=42 1 (22)
27+15=42 1 (22) Variabler Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll
Introduktion till MATLAB
29 augusti 2017 Introduktion till MATLAB 1 Inledning MATLAB är ett interaktivt program för numeriska beräkningar med matriser. Med enkla kommandon kan man till exempel utföra matrismultiplikation, beräkna
Programmering 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
Dagens 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 för ingenjörer, VT06 2 Repetition Repetition -
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java
TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31
TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 27 oktober 2015 Sida 1 / 31 TANA17 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet
Objektorienterad programmering Föreläsning 4
Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion
Tentamen 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
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
Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java
Övning2. Variabler. Data typer
Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =, ,!=,!) -String hur man
Programmering A. Johan Eliasson johane@cs.umu.se
Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer
TDIU01 - 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
Fö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
Föreläsning 3.1: Datastrukturer, en översikt
Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,
Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat
Cheat sheets Nedan finns referensblad för fyra olika programmeringsspråk, som kan bli aktuella att använda i matematikundervisning. MATLAB är en välkänd programvara för att göra matematiska beräkningar,
Fö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å
Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.
TAIU07 Föreläsning 3 Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. 27 januari 2016 Sida 1 / 21 Logiska variabler
Introduktion till formella metoder Programmeringsmetodik 1. Inledning
Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur
TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:
TDDE10 TDDE11, 725G90 Objektorienterad programmering i Java, Föreläsning 1 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av Java Hello World!
MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.
Introduktion till MATLAB Martin Nilsson Avdelningen för teknisk databehandling Institutionen för informationsteknologi Uppsala universitet MATLAB the Matrix Laboratory utvecklat av MathWorks, Inc. Matematisk
Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:
TANA81: Beräkningar med Matlab - Variabler och Matriser - Logiska uttryck och Villkor - Repetitionssatser - Grafik - Funktioner Variabler I Matlab skapas en variabel genom att man anger dess namn och ger
Föreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Data, typ, selektion, iteration
Data, typ, selektion, iteration En programmeringkurs på halvfart IDT, MDH ttp://www.negative-g.com/nolimits/no%20limits%20defunct%20coasters.htm 1 Dagens agenda Talrepresentation Typkonvertering Sekvens
Föreläsning 5: Introduktion av pekare
Föreläsning 5: Introduktion av pekare Det bör påpekas att det som tas upp i introduktionen inte är reella exempel på kod. Man anväder inte pekare till att peka på enstaka heltal som i exemplen nedan, men
Programmeringsteknik 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
Nå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
Språket Scheme. DAT 060: Introduktion till (funktions)programmering. DrScheme. uttryck. Jacek Malec m. fl. evaluering av uttryck.
DAT 060: Introduktion till (funktions)programmering. Jacek Malec m. fl. www.cs.lth.se/home/jacek Malec/dat060 Idag: 1. Kursens innehåll 2. Kursens organisation 3. Programmeringsspråket Scheme 4. Introduktion
Introduktion till programmering D0009E. Föreläsning 1: Programmets väg
Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra
Introduktion 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)
Föreläsning 3: Typomvandling, villkor och val, samt textsträngar
Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Camilla Kirkegaard camilla.kirkegaard@liu.se Linköpings universitet Sweden October 14, 2013 1 Innehåll n n n n n Repetition Typomvandlingar
Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Iteration while-satsen
Datatypen double TDA143 I1 Programmerade system Föreläsning 3 (OH-bilder 3) Iteration while-satsen Christer Carlsson I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna,
Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer
Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded
Fö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
Föreläsning 3. Iteration while-satsen
Föreläsning 3 Iteration while-satsen Datatypen double I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har
Ö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
Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet
Programmering hh.se/db2004 Föreläsning 4: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite om reella tal Vad kan man göra med reella tal? Utöver de
System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);
1 Villkor och styrsatser I de program vi sett tidigare har programkörning inneburit att sats efter sats utförts i den ordning de skrivits i källkoden. Vi har inte kunna ändra programmets uppförande beroende
Shannon-Fano-Elias-kodning
Datakompression fö 5 p.1 Shannon-Fano-Elias-kodning Antag att vi har en minnesfri källa X i som tar värden i {1, 2,...,L}. Antag att sannolikheterna för alla symboler är strikt positiva: p(i) > 0, i. Fördelningsfunktionen
Introduktion 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
Fö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
C++ - En introduktion
C++ - En introduktion De imperativa grunderna för dig som kan programmera Eric Elfving Institutionen för datavetenskap 1 / 72 Översikt 1 Grunderna 2 Uttryck och satser 3 Funktioner 4 Poster 1 Grunderna
Alla 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
Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.
Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2. Hur vi jobbar med ett program. 1. Vad vi skriver (med hjälp av redigeringsprogrammet Emacs) på datorn: // Fig. 2.1: Welcome1.java // A first program in
Pythons 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
Fö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
Deklarationer/definitioner/specifikationer
Deklarationer/definitioner/specifikationer Konstantdefinitioner innebär att ett namn binds och sätts att referera till ett värde som beräknas vid kompileringen/interpreteringen och som under programmets
TAIU07 Matematiska beräkningar med Matlab
TAIU07 Matematiska beräkningar med Matlab Datorlektion 2. Villkor och Repetition 1 Logiska uttryck Uppgift 1.1 Låt a=3 och b=6 Vad blir resultatet av testerna ab? Uppgift 1.2 Låt a, b,
Grundläggande programmering med C# 7,5 högskolepoäng
Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)
Uppgift 1 (grundläggande konstruktioner)
Uppgift 1 (grundläggande konstruktioner) a) Skriv ett program som låter användaren mata in 7 heltal och som gör utskrifter enligt nedanstående körexempel. Mata in 7 heltal: 1 0 0 3 1 1 1 Tal nr 2 var en
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor
732G11 Linköpings universitet 2011-02-01 1 2 3 Strukturdiagram Strukturdiagram används för att visa hur ett program fungerar. Man kan se alla val och upprepningar som sker i programmet. Består av tre (!)
Introduktion till Matlab
Introduktion till Matlab Inledande matematik, I1, ht10 1 Inledning Detta är en koncis beskrivning av de viktigaste delarna av Matlab. Till en början är det enkla beräkningar och grafik som intresserar
Föreläsningsmaterial (Syntax och variabler)
Föreläsningsmaterial (Syntax och variabler) Scenario Ett företag inom gruvindustrin som tillverkar järnpellets upplever en ojämnhet i produktionskvaliteten. Problemet yttrar sig genom att pelletskulorna
2.4. Teckensträngar och logiska uttryck
2.4. Teckensträngar och logiska uttryck I Fortran sparar man text i variabler av typen CHARACTER. För varje tecken reserveras normalt 1 byte i minnet. För att deklarera en teckenvariabel TEXT och samtidigt
Fö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
n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean?
Tidigare TDDC74 Programming: Abstraktion och modellering Föreläsning 4 Symboler, Par, Listor Representation av par, Grafisk notation för par Representation av listor mha par Typiska listhanteringsprocedurer
1 Funktioner och procedurell abstraktion
1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår
Lösningsförslag: Instuderingsfrågor, del D
Uppgift 1. Objektorienterad programmering, Z1 Lösningsförslag: Instuderingsfrågor, del D a) Inget fält behövs. Man kan läsa in ett tal i taget och addera dessa till summan. b) Här behövs ett fält. c) Här