Månadsnamn september Några deklarationer
|
|
- Kurt Henriksson
- för 7 år sedan
- Visningar:
Transkript
1 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 med namnen Integer, Float, och Boolean. Kännetecknande för dessa är att varje värde är ett enda, odelbart: Integer -312 Float 0.65 Boolean false Q Databegrepp i många verkliga sammanhang kan dock vara sammansatta av flera komponenter: Ett komplext tal En text (String) En dag Float 0.1 H Dagnamn lördag Float -1.4 De resp komponenterna tillsammans är ett värde av datatypen: (0.1, -1.4) är ett värde av typen komplext tal. e Integer Såna sk sammansatta datatyper kan konstrueras i Ada. 13 j Månadsnamn september Några deklarationer -- Värdena i datatypen MonthName är de 12 månadsnamnen: type MonthName is (January, February, March, April, May, June, July, August, September, October, November, December); -- Datatypen Date har tre komponenter: type Date is record year : Integer; -- Årtal, month : MonthName; -- månadsnamn, day : Integer; -- och dagnummer i månaden.. -- En konstant och två variabler av datatypen Date: StartOfMillennium : constant Date := (2000, January, 1); Today : Date := (2001, May, 19); Tomorrow : Date; TDDB53 - Fö5 Sammanfattning 1 TDDB53 - Fö5 Sammanfattning 2 Recordtyper - några begrepp Date blir nu (namnet på) en recordtyp (posttyp). StartOfMillennium, Today, Tomorrow är records (poster), de två senare recordvariabler (postvariabler). Datatypen (och variabler av typen) har tre komponenter som jag givit namnen year, month och day. Typiskt för records är att komponenterna tillåts vara av inbördes olika datatyper, och godtyckligt vilka typer. Konstruktionen (2000, January, 1) kallas för ett recordaggregat (postaggregat). Ett recordaggregat är ett värde av en recordtyp på samma sätt som t ex -1.4 eller sin(0.5) är värden av typen Float. record year : Integer; month : MonthName; day : Integer; (2000, January, 1) Och varje komponent i ett aggregat kan generellt sett vara ett sammansatt uttryck, av korrekt typ: (Century + y, March, Today.day - 1) Användningsexempel PutDate(StartOfMillennium); Today.year := 2003; Today.month := November; Today.day := 28; PutDate(Today); Tomorrow := Today; Tomorrow.day := Tomorrow.day + 1; PutDate(Tomorrow); end; Man kan i olika sammanhang antingen avse helheten PutDate(StartOfMillennium); Tomorrow := Today; eller referera enstaka komponenter. Today.month := November; Tomorrow.day := Tomorrow.day + 1; Att referera en enstaka komponent kallas selektering ( välj ut ). TDDB53 - Fö5 Sammanfattning 3 TDDB53 - Fö5 Sammanfattning 4
2 Recordtyper - operationer type Date is record year : Integer; month : MonthName; day : Integer; D1, D2 : Date; Tilldelning: D1 := D2; Jämförelser på likhet och olikhet: D1 = D2 (men inte andra jämförelser!) D2 /= D1 Selektering: D1.year D2.day D1.year och motsvarande skrivsätt ska också betraktas som en form av variabelnamn! Records kan vara parametrar till funktioner och procedurer! PutDate(D1); Men det finns inte någon i förväg deklarerad Put för utskrift av någon posttyp! Inte heller någon Get för inläsning! Sådana Put och Get finns ju bara för de inbygggda datatyperna! Records som funktionsvärden Records kan vara värden av funktioner. Anropet ChristmasEve(årtal) ska ge ett Date-record som avser julafton året årtal: function ChristmasEve(y : integer) return Date is the_date : Date; the_date.year := y; the_date.month := December; the_date.day := 24; return the_date; end; Ett annat (trevligare?) alternativ är function ChristmasEve(y : integer) return Date is return (y, December, 24); end; TDDB53 - Fö5 Sammanfattning 5 TDDB53 - Fö5 Sammanfattning 6 Records i records Hopbyggnad kan vara godtyckligt sammansatt: type Date is record.. enligt tidigare type Adress is record Namn : någon form av String; Gatuadress : någon form av String; Postadress : någon form av String; type Faktura is record Fakturanummer : Integer; Belopp : Float; Faktureringsdag : Date; Förfallodag : Date; Betalningsmottagare : Adress; Selektering av komponenter, t ex: Fakt : Faktura; Fakt.Belopp Fakt.Förfallodag.month Fakt.Betalningsmottagare.Postadress Recordtyper och arraytyper kan byggas in i varandra på godtyckligt komplext sätt! Detta skall utnyttjas för att avbilda problemområdet så naturtroget som möjligt! Arrayer (fält) - 1 När man har ett större antal komponenter som alla tillhör samma datatyp är vanligen array-strukturen (fältstrukturen) att föredra. Jämför begreppet vektor från matten: V kan vara vektorn (3.2, -0.4, 1.7, 0.6), och beteckningen V avser då helheten. Enskilda komponenter betecknas med t ex V 2 eller V i eller V k+1 Selektering av komponent med index - indexering (indicering) Motsvarande för två-dimensionella strukturer, matriser: om m är helheten kan enstaka komponenter refereras med t ex m 2, 1 eller m i, j*2 I Ada finns en ganska naturtrogen modell av detta. Man skapar först en ny datatyp: type Sample is array(1.. 50) of Float; den nya datatypens namn indexens typ (intervall), en range datatyp för alla komponenter TDDB53 - Fö5 Sammanfattning 7 TDDB53 - Fö5 Sammanfattning 8
3 Arrayer (fält) - 2 Sen kan man deklarera variabler: V1 : Sample; Se nu till att V1 i blir = i, för alla i for index in loop V1(index) := Float(index); Se sen till att varannan komponent (2, 4, ) byter tecken: for index in loop V1(2 * index) := - V1(2 * index); Flytta alla komponenter i V1 ett steg åt vänster/ neråt, men gör detta cirkulärt: temp := V1(1); for index in loop V1(index) := V1(index + 1); V1(50) := temp; Detta sista kan göras enklare med hjälp av sk slicing: temp := V1(1); V1(1.. 49) := V1(2.. 50); V1(50) := temp; Arrayer (fält) - 3 Index måste inte börja med 1: type Data is array( ) of Integer; type OK is array(5.. 10) of Boolean; Typen på index måste inte ens vara Integer: type Color is (white, blue, red); type Amount is array(color) of Integer; Count : Amount; Sum := 0; for col in Color loop Sum := Sum + Count(col); Regel: Index skall vara en uppräkningstyp! Integer, eller en begränsad Integer, Boolean Egna uppräkningstyper (som Color ovan) I flerdimensionella array-strukturer (matriser, tabeller, ) kan indexen i de resp dimensionerna ha olika typ. type ColTable is array(color, 1.. 5) of Float; TDDB53 - Fö5 Sammanfattning 9 TDDB53 - Fö5 Sammanfattning 10 Arrayer (fält) - exempel 1 (1) Antag att ett program behöver en tabell över hur många timmar man jobbat (med något) per dag under ett års alla veckor. Värdena i tabellen skall vara Float. Det logiska (eller abstrakta) perspektivet: vecka måndag tisdag.... onsdag.... torsdag.... fredag.... lördag.... söndag.... type Day is (måndag, tisdag, onsdag, torsdag, fredag, lördag, söndag); type WorkHour is array(day, ) of Float; MyHours : WorkHour; -- Tabellen Raderna (första dimensionen) har då indexen måndag t o m söndag, kolumnerna har index 1 t o m 53. Arrayer (fält) - exempel 1 (2) Beräkna antal arbetstimmar under en viss vecka, given av variabeln week: for d in Day loop Sum := Sum + MyHours(d, week); Kan med fördel bli en särskild funktion: function WeekHours(WH : WorkHour; week : Integer) return Float is sum : Float := 0.0; for d in Day loop sum := sum + WH(d, week); return sum; end WeekHours; Exemplet visar att arrayer mycket väl kan vara parametrar till funktioner och procedurer. Värdet för tisdag vecka 4 refereras då med namnet MyHours(tisdag, 4) TDDB53 - Fö5 Sammanfattning 11 TDDB53 - Fö5 Sammanfattning 12
4 Arrayer (fält) - exempel 1 (3) Arrayer - exempel 2 (1) Beräkna antal arbetstimmar under veckoslut (lördag, söndag) för hela året: for week in loop for d in lördag.. söndag loop Sum := Sum + MyHours(d, week); alternativt: for week in loop Sum := Sum + MyHours(lördag, week) + MyHours(söndag, week); eller: for week in MyHours Range(2) loop Sum := Sum + MyHours(lördag, week) + MyHours(söndag, week); Mer om attributet Range senare. Ofta behöver man en array för att lagra ett större antal värden, men man vet inte i förväg precis hur många. Och antalet kan dessutom variera mellan körtillfällen: max : constant Integer := 2000; type Data is array(1.. max) of Integer; Value : Data; -- Inlästa värden Count : Integer; -- Antal värden x : Integer; Put( Ge högst ); Put(max, 0); Put( heltal > 0! ); Count := 0; loop Get(x); exit when x <= 0; Count := Count + 1; Value(Count) := x; De två variablerna/värdena Value och Count tillsammans krävs för att beskriva datamängden! TDDB53 - Fö5 Sammanfattning 13 TDDB53 - Fö5 Sammanfattning 14 Arrayer - exempel 2 (2) Arrayer - exempel 2 (3) För att i programmet ovan t ex finna det största värdet i arrayen Value med Count st. komponenter använder man gärna en funktion som kan anropas Maximum(Value, Count). OBS att båda de parametrarna är nödvändiga! function Maximum(val : Data; cnt : Integer) return Integer is big : Integer := val(1); for i in 2.. cnt loop if val(i) > big then big := val(i); end if; return big; end Maximum; eller något alternativ till hela if-satsen, t ex Om man har intresse av t ex att ta bort alla dom komponenter ur en Data-variabel, som är lika med ett visst p kan med fördel en subrutin få klara av det jobbet. OBS att antalet utnyttjade komponenter också kommer att förändras: procedure Remove(val : in out Data; cnt : in out Integer; p : Integer) is -- Till position dest flyttas en -- komponent om den är /= p! dest : Integer := 0; for i in 1.. cnt loop if val(i) /= p then dest := dest + 1; val(dest) := val(i); end if; cnt := dest; -- Nytt antal komponenter! end Remove; big := Integer Max(val(i), big); TDDB53 - Fö5 Sammanfattning 15 TDDB53 - Fö5 Sammanfattning 16
5 Arrayer - attribut Antag deklarationerna type Vector is array(5.. 8) of Integer; type Matrix is array(1.. 3, 0.. 4)of Float; V : Vector; M : Matrix; Både typerna Vector och Matrix liksom variablerna V och M har en uppsättning attribut: Vector Length V Length ger antalet komponenter i den enda dimensionen (= 4) Matrix Length(2) M Length(1) ger antalet komponenter i den angivna dimensionen (här blir det 5 resp 3) Vector First M Last(2) ger första resp sista indexet i den enda eller den angivna dimensionen (blir här 5 resp 4). OBS: Första eller sista index, inte komponent! V Range Matrix Range(2) ger indexintervallet (dvs en range) i den enda eller angivna dimensionen (här blir det resp 0.. 4) Arrayer - operationer type VecA is array(1.. 3) of Integer; type VecB is array(1.. 4) of Integer; type VecC is array(1.. 3) of Integer; A1 : VecA; A2 : VecA; B : VecB; C : VecC := (64, 32, 16); Selektering av viss komponent, dvs indexering. Tilldelning och jämförelser mellan två array-variabler kan ske om båda är deklarerade med samma typnamn. Jämförelser sker elementvis. Tilldelning till en array-variabel från ett aggregat kan ske bara om aggregatets komponenter har samma typ som array-deklarationens, och om antalet komponenter stämmer överens. Konkatenering ( hopslagning ) av en-dimensionella arrayer, operatorn & Slicing, dvs att ta en delföljd av komponenter ur en en-dimensionell array. B := (5, 6) & C(2.. 3); TDDB53 - Fö5 Sammanfattning 17 TDDB53 - Fö5 Sammanfattning 18 Tänkbar tentafråga! Vi har deklarationen type Arr is array( ) of Integer; Under vilken omständighet ger då nedanstående funktion värdet true? eller (alternativ frågeställning) Vilken uppgift har funktionen q? En annan tänkbar tentafråga! Givet är datatypen type Arr is array( ) of Integer; Skriv en procedur Rearrange(A, N, X) som ser till att flytta om de N första komponenterna i variabeln A av typen Arr så att alla förekomster av värdet X finns först, medan ordningen i övrigt är ovidkommande. function q(a : Arr; N : Integer) return Boolean is for ind in 1.. N - 1 loop if A(ind + 1) < A(ind) then return False; end if; return True; end q; Svaret skall inte ges i form av detaljerade beräkningssteg, utan i ett övergripande, utanförperspektiv, i analogi med Funktionen ger den största av komponenterna NOT: Funktionen ovan kan förstås inte förses med ett riktigt namn, eftersom det skulle avslöja dess syfte! TDDB53 - Fö5 Sammanfattning 19 TDDB53 - Fö5 Sammanfattning 20
6 Lite om den inbyggda datatypen String Typen String är en array med som komponenter. Prompt : constant String := "Värde: "; Mssg : String := "DEL 1"; Typerna för Prompt och Mssg skiljer sig åt i en detalj: Prompts typ kan i princip beskrivas av array(1.. 7) of, medan Mssgs typ på samma sätt kan ses som array(1.. 5) of! Den tänkta deklarationen av typen String: type String is array(positive range <>) of ; Innebär 1: Index skall vara av typ Positive (heltalen 1, 2, ), 2: men exakta gränser är inte fastställda! Prompt och Mssg kommer att få dessa gränser från sina resp. initialvärden! Dessa gränser kan sen aldrig ändras! Och typlikhet råder inte! Därför är t ex tilldelningen Mssg := Prompt olaglig! En egen String-typ kan lämpligen konstrueras som t ex subtype String_20 is String(1.. 20); men variabler av den typen kan bara innehålla texter med exakt 20 tecken! TDDB53 - Fö5 Sammanfattning 21
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:
Läs merDatatyp - mera. Begreppet värde, igen. Ett slags mått på en egenskap, eller något fenomen. Ska ges en bred tolkning!
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,
Läs merPaket (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 --
Läs merTENTAMEN 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:
Läs merKOMPLETTERANDE 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
Läs merKOMPLETTERANDE 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
Läs merExempel 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
Läs merKOMPLETTERANDE 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
Läs merExempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer
Exempel for (int antal=; antal < 75; antal++) System.out.println (antal); Arrayer for (int num=5; num
Läs merDatatyper 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
Läs merFö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.
Läs merEtt problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..
Ett problem Kontrollstrukturer och er Hur sparas data T ex när man vill spara resultaten av en tävling Exempel med 3 deltagare: public class Competition private int result1; private int result2; private
Läs merArrayer. results
Arrayer 85 Arrayer Deklarerar utrymme för många variabler i en enda deklaration Array (fält) Varje värde har ett numeriskt index i Java indexeras en array med N element med indexen till N-1 Exempel: 1
Läs merDatastrukturer. 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,
Läs merGRUNDER 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
Läs merBerä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
Läs merIntroduktion till MATLAB, med utgångspunkt från Ada
Introduktion till, med utgångspunkt från Desktop-miljö som innefattar editor, kommandofönster, graffönster och mycket mer. Interpreteras Snabbt att testa kommandon Terminal + emacs + gnatmake Kompileras
Läs merSpelschema för årets fotbollsmästerskap! island tyskland Söndag 14/7 Växjö Arena, Växjö. Söndag 14/7 Kalmar Arena, Kalmar
! Onsdagen 10/7 Onsdagen 10/7 Torsdag 11/7 Torsdag 11/7, Fredag 12/7 Fredag 12/7 Lördag 13/7 Lördag 13/7 Söndag 14/7 Söndag 14/7 Måndag 15/7 Måndag 15/7 Tisdag 16/7 Tisdag 16/7 Onsdag 17/7 Onsdag 17/7
Läs merTDIU01 - 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
Läs merJAVAUTVECKLING LEKTION 8
JAVAUTVECKLING LEKTION 8 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Fält (Arrayer) Att skapa och arbeta med fält Indexering Jämförelse av fält Flerdimensionella fält 1 VAD
Läs merFö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
Läs merSprå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
Läs merFö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å
Läs merFö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
Läs merOmgivningar. 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
Läs merFö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
Läs merAtt deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)
Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet
Läs merObjektorienterad 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
Läs mer5 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
Läs merTypsystem. 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
Läs merÖ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
Läs merTypsystem. 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
Läs mer4 Sammansatta datatyper
4 Sammansatta datatyper De enkla datatyper som vi hittills använt är otillräckliga när man ska hantera stora datamängder. Vill man exempelvis läsa in 100 reella mätvärden, som man tillfälligt vill spara
Läs merKlassdeklaration. 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
Läs mer[] Arrayer = Indexerad variabel
[] Arrayer = Indexerad variabel Lagra många värden i en variabel Jmfr inom matematiken, variabler x 0, x 1, x 2, I detta dokument tas upp hur man skapar och hanterar sådana variabler i java. Dessa kallas
Läs merImperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur
Imperativ programmering konstruktioner i Lisp Imperativ programmering I den imperativa programmeringen skriver vi program satsvist. Datastrukturer (kap.-.) aystruktur poststruktur Iterativa uttryck (avs.)
Läs merObjektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ
orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]
Läs mer732G 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 (
Läs merTDDC30. 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
Läs merIndexerade variabler
Indexerade variabler Vad har vi lärt oss så här långt Den första sammansatta (compound) datatypen: matris. Att arbeta med 1-dimensionella matriser. Att arbeta med flerdimensionella matriser. Matriser med
Läs merAgenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då
Agenda Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer Övningar nu och då 1 Motivering I de flesta problem ingår att hantera multipla data I de
Läs merFö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
Läs merVisual Basic, en snabbgenomgång
Visual Basic, en snabbgenomgång Variabler och Datatyper En variabel är som en behållare. Olika behållare passar bra till olika saker. I Visual Basic(härefter VB) finns olika typer av behållare för olika
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning
Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (
Läs merArrayer (vektorer) Murach s: kap Elektronikcentrum i Svängsta AB
Arrayer (vektorer) Murach s: kap 8 2013-01-15 1 Elektronikcentrum i Svängsta AB Arrayer Arrayer (vektorer) Ofta i ett program har vi flera variabler av samma datatyp som är relaterade till varandra. Exempel
Läs merInledande 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
Läs merProgrammera 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
Läs merObjektorienterad 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
Läs merFöreläsning 2, vecka 8: Repetition
TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning
Läs mer732G 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 ==
Läs merOOP Objekt-orienterad programmering
OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion Deklaration och tilldelning OOP F2:2 int x; double d; char ch; boolean
Läs merProgrammering 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
Läs merLösningsförslag till tentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-7, TDA540 Dag: 208-0-3, Tid: 4.00-8.00 Uppgift a) class används för en klassdeklaration som
Läs merFö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
Läs merDatalogi, grundkurs 1. Lösningsförslag till tentamen
Datalogi, grundkurs 1 Lösningsförslag till tentamen 10 december 2008 1. a. Man testar med typiska värden, gränsvärden och värden utanför specificerad indatavärdemängd. Helst med alla permutationer av
Läs merParameterö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
Läs merBankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.
Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen
Läs merDeklarationer/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
Läs mer2D1339 Programkonstruktion för F1, ht 2003
2D1339 Programkonstruktion för F1, ht 2003 Fiktiv Kontrollskrivning 1 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga hjälpmedel är tillåtna
Läs merImperativ 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.
Läs merTDIU01 - Programmering i C++, grundkurs
. TDIU01 - Programmering i C++, grundkurs Datalagring - poster och vektorer Eric Elfving Institutionen för datavetenskap 7 oktober 2015 Poster 2/17 struct Book string title; string author; int pages; ;
Läs merSMD 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
Läs merAtt förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner
Lektion 4, del 1, kapitel 10 Funktioner i JavaScript Inlärningsmål Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner Introduktion
Läs merFöreläsning 1 & 2 INTRODUKTION
Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga
Läs merLite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
Läs merKompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Läs merLösningsförslag: Instuderingsfrågor, del A
Uppgift 1. Objektorienterad programmering, Z1 Lösningsförslag: Instuderingsfrågor, del A Följande regler gäller för namngivning av identifierare i Java: 1. Ett identifierarnamn består endast av bokstäver,
Läs merKontinuerliga listor. Fält (listor) Kontinuerliga listor... Kontinuerliga listor...
Fält (listor) Kontinuerliga listor En lista av värden 2 3 4 5 6 7 8 9... kan naturligtvis representeras av tal1, tal2, tal3,... men det finns då ingen möjlighet att välja element utan att explicit ange
Läs merString [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning
Dagens Agenda String [] argv String [] argv Arrayer och Strängar fortsättning Booleska operatorer if, for, while satser Introduktion till algoritmer public static void main(string [] argv) argv är variabelnamnet
Läs merGrundlä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)
Läs merDigitalitet. 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
Läs merMATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...
Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»
Läs merAnteckningar 1: Grundläggande saker
UPPSALA UNIVERSITET Institutionen för lingvistik och filologi Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv11/pst1/ Programmering för språkteknologer I Anteckningar 1: Grundläggande saker 1 Programmering
Läs merTDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 5 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Arrayer Metoder Räckvidd och Livslängd Arrayer Vända om inlästa värdena Vända om
Läs merObjektorienterad 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
Läs merPROGRAMMERING-Java Omtentamina
PROGRAMMERING-Java Omtentamina Nicolina Månsson 2007-08 13 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 41 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. -
Läs merI 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
Läs merFö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
Läs merI ett program hantera man ofta samlingar av objekt av samma typ.
Fält I ett program hantera man ofta samlingar av objekt av samma typ. Sådana samlingar vill man vanligtvis kunna gruppera ihop till en sammanhängande struktur. För detta ändamål tillhandahåller Java språkkonstruktioner
Läs merPlanering Programmering grundkurs HI1024 HT 2014
Planering Programmering grundkurs HI1024 HT 2014 Föreläsning V36 Föreläsning 1 Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande- Interpreterande Programmeringsmiljö Hello World! Att
Läs merDatalogi, grundkurs 1. Lösningsförslag till tentamen
Datalogi, grundkurs 1 Lösningsförslag till tentamen 6 maj 2000 1. För att proceduren sortera ska fungera som tänkt kan den se ut på följande sätt: const min = 1; max = 3; type tal = integer; index = min..max;
Läs merFöreläsning 7 Innehåll. Rekursion. Rekursiv problemlösning. Rekursiv problemlösning Mönster för rekursiv algoritm. Rekursion. Rekursivt tänkande:
Föreläsning 7 Innehåll Rekursion Rekursivt tänkande: Hur många år fyller du? Ett år mer än förra året! Rekursion Rekursiv problemlösning Binärsökning Generiska metoder Rekursiv problemlösning: Dela upp
Läs merIntroduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?
Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? jonas.kvarnstrom@liu.se 2015 2014 jonas.kvarnstrom@liu.se
Läs merArrayer (fält)
Arrayer (fält) 1 Vad kommer vi att ta upp om arrayer? Deklarera och initiera arrayen Lägga till i arrayen Ta ut på indexposition Ta reda på arrayens längd Sortera arrayen Söka igenom arrayen Loopa igenom
Läs merGrundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2
AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga
Läs merÖvning från förra gången: readword
(9 september 2010 T4.1 ) Övning från förra gången: readword /** readword.c * * int readword(char w[], int n) { * * Läser tecken tills en bokstav påträffas. * Läser och lagrar sedan högst n-1 bokstäver
Läs merFöreläsning 6: Metoder och fält (arrays)
TDA 545: Objektorienterad programmering Föreläsning 6: Metoder och fält (arrays) Magnus Myréen Chalmers, läsperiod 1, 2015-2016 I (föregående och) denna föreläsning Läsanvisning: kap 2 & 13 meddelanden
Läs merObjektorienterad programmering i Java
Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet
Läs merint iarray[]= new int[3]; // deklarera ett heltalsfält med tre heltal int jarray[]={ 1, 3, 5, 7, 9, 11, 13, 15}; // initierat fält 8 element
1 Arrayer Vid beräkningar med större datamängder än några enstaka tal är det bekvämt att kunna betrakta en talmängd som en enhet. Detta åstadkommer man genom att deklarera och instantiera fält. Ett annat
Läs merJava, klasser, objekt (Skansholm: Kapitel 2)
Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma
Läs merIdag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.
Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett
Läs mer*Pekarvärden *Pekarvariabler & *
*Pekarvärden *Pekarvariabler & * Motivering Pekare är ett fundamentalt koncept i C (och C++) Multipla returvärden från funktioner. Arrayer hanteras via pekare Dynamiskt minne (kommer i slutet av kursen)
Läs merFöreläsning REPETITION & EXTENTA
Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder
Läs merAnmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-06-11 Skrivtid: 0900 1400 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Läs merFöreläsning 9-10 Innehåll
Föreläsning 9-10 Innehåll Inläsning från textfil, utskrift från textfil Vektorer med objekt Matriser Datavetenskap (LTH) Föreläsning 9-10 HT 2018 1 / 41 Klassen Scanner Läsa från System.in Vi har tidigare
Läs merUppgift 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
Läs merTentamen , Introduktion till Java, dtaa98, dtea53
Mittuniversitetet 2007-09-01 Institutionen för informationsteknologi och medier Sid:1(3) dtaa98, dtea53 Martin Kjellqvist; Linda Karlsson, Ulf Reiman Lösningsansatser Tentamen 2007-09-01, Introduktion
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel
732G11 Linköpings universitet 2011-02-15 1 2 3 4 Extrapass Extrapass håller på att bokas. Blir 3-4 st. och öppet för alla. Mer info på kursmailen när bokningen är klar. i Java En funktion i Java... public
Läs merProgrammering I Tobias Wrigstad fredag, 2009 augusti 28
Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,
Läs merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Pekare och Listor Eric Elfving Institutionen för datavetenskap 31 oktober 2014 Översikt 2/41 Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor Arbeta
Läs mer