Det finns två operatorgrupper som vi hittills inte har tagit upp, och den första av
|
|
- Karin Lundberg
- för 7 år sedan
- Visningar:
Transkript
1 Andra operatorer Bilaga E Andra operatorer Det finns två operatorgrupper som vi hittills inte har tagit upp, och den första av dessa består av de bitvisa operatorerna, vilka gör det möjligt att manipulera enskilda bitar i ett värde. Dessa operatorer är ett arv från C. Den andra gruppen består av två indirekta operatorer för medlemmar, och dessa är tillägg i C++. Den här bilagan ger en kort sammanfattning av de här operatorerna. Bitvisa operatorer De bitvisa operatorerna opererar på bitarna i binära heltalsvärden. Operatorn vänsterskift t.ex. flyttar bitarna åt vänster, och den bitvisa negationsoperatorn byter ettor mot nollor och nollor mot ettor. Allt som allt har C++ sex sådana operatorer: <<, >>, ~, &, och ^. Skiftoperatorerna Operatorn vänsterskift har följande syntax: värde << skift Här är värde det heltalsvärde som ska skiftas, och skift är antalet bitpositioner: 13 << 3 betyder att alla bitar i värdet 13 ska skiftas tre positioner åt vänster. De övergivna positionerna fylls på med nollor och de bitar som skiftas förbi slutet kastas, se figur E.1. Figur E.1 Operatorn vänsterskift. Eftersom varje bitposition representerar ett värde som är dubbelt så stort som värdet närmast till höger (se bilaga A), innebär skiftning med en position åt vänster detsamma som att multiplicera värdet med 2. På samma sätt innebär skiftning med två positioner åt vänster multiplicering med 2 2, och skiftning n positioner innebär multiplicering med 2 n. Alltså är värdet för 13 << 3 detsamma som 13 x 2 3 eller
2 Bilaga E Operatorn vänsterskift ger C++ en egenskap som man ofta finner i assemblerspråk. En skiftoperator i assembler ändrar dock innehållet i ett register, medan operatorn i C++ ger ett nytt värde utan att förändra det ursprungliga. Betrakta t.ex. följande: int x = 20; int y = x << 3; Den här koden ändrar inte värdet i x. Uttrycket x << 3 använder värdet i x för att producera ett nytt värde, ungefär som x + 3 ger ett nytt värde utan att ändra x. Om man vill använda operatorn vänsterskift för att ändra variabelvärdet måste man dessutom använda tilldelning: Antingen vanlig tilldelning eller operatorn <<=, som kombinerar vänsterskift med tilldelning. x = x << 4; y <<= 2; // vanlig tilldelning // skiftning och tilldelning Operatorn högerskift (>>) skiftar som man skulle kunna förvänta sig bitarna åt höger och har följande syntax: värde >> skift Här är värde det heltalsvärde som ska skiftas, och skift är antalet bitar som ska skiftas. Exempelvis betyder 17 >> 2 att alla bitar i värdet 17 ska skiftas två positioner åt höger. För heltal som är unsigned fylls de övergivna positionerna på med nollor och de bitar som skiftas förbi slutet kastas. För heltal som är signed kan övergivna positioner fyllas på med nollor, i annat fall med värdet på den bit som ursprungligen låg längst till vänster. Valet är implementeringsberoende, se figur E.2. Figur E.2 Operatorn högerskift. Att skifta en position åt höger är detsamma som en heltalsdivision med 2. Generellt är skiftning n positioner åt höger detsamma som en heltalsdivision med 2 n. C++ definierar också en operator för högerskift-och-tilldelning (>>=) om man vill ersätta värdet i en variabel med det skiftade värdet: int q = 43; q >>= 2; // ersätt 43 med 43 >> 2, eller 10 I vissa system ger operatorerna vänster- och högerskift snabbare heltalsmultiplikationer och divisioner med 2 än vad som är fallet med multiplikations- och divisionsoperatorer- 1048
3 Andra operatorer na, men i takt med att kompilatorerna blir bättre på att optimera kod minskar sådana skillnader. De logiska bitvisa operatorerna De logiska bitvisa operatorerna motsvarar de vanliga logiska operatorerna, bortsett från att de arbetar med värdet bit för bit istället för som en helhet. Jämför t.ex. den vanliga negationsoperatorn (!) och den bitvisa negationsoperatorn (~). Operatorn! omvandlar ett sant värde (icke-noll) till falskt (0) och ett falskt värde (0) till sant (1). Operatorn ~ omvandlar varje enskild bit till sin motsats (1 till 0 och 0 till 1). Ta t.ex. en unsigned char med värdet 3: unsigned char x = 3; Uttrycket!x har värdet 0. För att se värdet på ~x skriver vi det i binär form: Varje nolla omvandlas sedan till ett och varje etta till noll, vilket det ger det binära värdet , eller 252 i det decimala talsystemet, se figur E.3. Det nya värdet kallas ursprungsvärdets komplement. Figur E.3 Operatorn bitvis negation. Operatorn bitvis ELLER (, eng. OR) kombinerar två heltalsvärden till ett nytt heltalsvärde. Varje bit i det nya värdet sätts till 1 om den ena eller båda av de motsvarande bitarna i de ursprungliga värdena är 1. Om båda motsvarande bitar är 0 sätts biten till 0, se figur E.4. Figur E.4 Operatorn bitvis ELLER. Tabell E.1 sammanfattar hur operatorn kombinerar bitar. 1049
4 Bilaga E Tabell E.1 Värden på b1 b2 Bitvärden b1 = 0 b1 = 1 b2 = b2 = Operatorn = kombinerar operatorn bitvis ELLER med tilldelning: a = b; // sätt a till a b Operatorn bitvis exklusivt ELLER (^, eng. XOR) kombinerar två heltalsvärden till ett nytt heltalsvärde. Varje bit i det nya värdet sätts till 1 om den ena, men inte båda av motsvarande bitar i de ursprungliga värdena är 1. Om båda motsvarande bitar är 0 sätts biten till 0, se figur E.5. Figur E.5 Operatorn bitvis exklusivt ELLER. Tabell E.2 sammanfattar hur operatorn ^ kombinerar bitar. Tabell E.2 Värden på b1 ^ b2 Bitvärden b1 = 0 b1 = 1 b2 = b2 = Operatorn ^= kombinerar operatorn bitvis exklusivt ELLER med tilldelning: a ^= b; // sätt a till a ^ b Operatorn bitvis OCH (&, eng. AND) kombinerar två heltalsvärden till ett nytt heltalsvärde. Varje bit i det nya värdet sätts till 1 endast om båda motsvarande bitar i det ursprungliga värdet är 1. Om någon eller båda av de motsvarande bitarna är 0 sätts biten till 0, se figur E
5 Andra operatorer Figur E.6 Operatorn bitvis OCH. Tabell E.3 sammanfattar hur operatorn & kombinerar bitar. Tabell E.3 Värden på b1 & b2 Bitvärden b1 = 0 b1 = 1 b2 = b2 = Operatorn &= kombinerar operatorn bitvis OCH med tilldelning: a &= b; // sätt a till a & b Alternativa representationer av bitvisa operatorer C++ tillhandahåller alternativa representationer för flera bitvisa operatorer, se tabell E.4. Detta med tanke på platser där de traditionella bitvisa operatorerna inte ingår i teckenuppsättningen. Tabell E.4 Standard & &= Alternativa representationer för bitvisa operatorer Alternativ representation bitand and_eq bitor = or_eq - compl ^ xor ^= xor_eq 1051
6 Bilaga E Dessa alternativ medger att man skriver exempelvis följande satser: b = compl a bitand b; // detsamma som b = ~a & b; c = a xor b; // detsamma som c = a ^ c; Några vanliga operatortekniker på bitnivå Styrning av maskinvara innebär ofta att vissa enskilda bitar ska avläsas eller ställas som 1 eller 0. De bitvisa operatorerna erbjuder sätt att utföra sådana aktiviteter, och vi ska snabbt gå igenom de vanligaste metoderna. I det följande representerar flerabitar ett generellt värde medan bit representerar värdet på en viss bit. Bitar numreras från höger till vänster med början från 0, vilket betyder att värdet för biten i position n är 2 n. Ett heltal med endast bit nummer 3 satt till 1 har alltså värdet 2 3, eller 8. Generellt uttryckt svarar varje enskild bit mot sin potens av två, enligt beskrivningen av binära tal i bilaga A. Vi använder därför termen bit för att representera en potens av två, vilket motsvarar denna bit satt till 1 och alla andra bitar satta till 0. Ettställa (slå på) en bit Följande två operationer ettställer, slår på, den bit i flerabitar som svarar mot den bit som representeras av bit: flerabitar = flerabitar bit; flerabitar = bit; Båda sätter bit till 1 oavsett dess tidigare värde. Detta beror på att 1 ELLER ger resultatet 1 med både 1 och 0. Alla andra bitar i flerabitar lämnas orörda. Detta beror på att 0 ELLER 1 ger 1 och 0 ELLER 0 ger 0. Ställa om (vippa) en bit Följande båda operationer ställer om, vippar, den bit i flerabitar som representeras av bit. Med andra ord ettställs biten om den var 0 och nollställs om den var 1: flerabitar = flerabitar ^ bit; flerabitar ^= bit; 1 XOR 0 ger 1, vilket ettställer en nollställd bit, och 1 XOR 1 ger 0, vilket nollställer en ettställd bit. Alla andra bitar i flerabitar lämnas orörda. Detta beror på att 0 XOR 0 ger 0, och 0 XOR 1 ger 1. Nollställa (slå av) en bit Följande båda operationer nollställer den bit i flerabitar som representeras av bit: flerabitar = flerabitar & ~bit; flerabitar &= ~bit; Satserna nollställer biten oavsett dess tidigare värde. Först ger operationen ~bit ett heltal med alla bitar satta till 1, utom den bit som ursprungligen var satt till 1, som nollställs. 0 OCH 1 liksom 0 OCH 0 blir båda 0, varför biten ifråga nollställs. Alla andra bitar i 1052
7 Andra operatorer flerabitar lämnas orörda. Detta beror på att 1 OCH 1 i likhet med 1 OCH 0 ger det värde som biten hade från början. Här är ett kortare sätt att göra samma sak: flerabitar &= ~bit; Testa en bits värde Anta att vi vill avgöra huruvida den bit som motsvarar bit är ettställd i flerabitar. Följande test fungerar inte nödvändigtvis: if (flerabitar == bit) // inte bra Detta beror på att även om motsvarande bit i flerabitar är satt till 1 kan också andra bitar vara satta till 1. Likheten ovan är sann bara när endast den motsvarande biten är 1. Knepet är att först utföra operationen flerabitar OCH bit. Detta ger värdet 0 i alla andra bitpositioner, eftersom 0 OCH 1 liksom 0 OCH 0 är 0. Bara den bit som svarar mot bitvärdet lämnas orörd eftersom både 1 OCH 1 och 1 OCH 0 ger detta värde. Rätt sätt att testa blir då: if ((flerabitar & bit) == bit) // testar en enstaka bit I verkliga livet brukar programmerare ofta förenkla det här testet till följande: if (flerabitar & bit) // testar en enstaka bit Eftersom bit består av en bit som är satt till 1 och resten satta till 0 är värdet för flerabitar & bit antingen 0 (vilket ger testresultatet false) eller bit, vilket utvärderas som true eftersom det är icke-noll. Indirekta operatorer för medlemmar C++ tillåter definition av pekare till medlemmarna i en klass, men den processen är inte enkel. För att se vad den innefattar ska vi titta på en exempelklass med vissa inbyggda problem: class Example private: int feet; int inches; public: Example(); Example(int ft); ~Example(); void show_in() const; void show_ft() const; void use_ptr() const; ; Betrakta nu medlemmen inches. Utan ett specifikt objekt är inches endast en etikett, det vill säga klassen definierar inches som en medlemsidentifierare. Men det behövs ett objekt innan du faktiskt har allokerat minne: 1053
8 Bilaga E Example ob; // nu existerar ob.inches Man specificerar alltså ett minnesområde genom att använda identifieraren inches tillsammans med ett specifikt objekt. (I en medlemsfunktion kan man utelämna objektets namn, men då blir objektet underförstått det som pekaren pekar på.) C++ låter dig definiera en medlemspekare till identifieraren inches enligt följande: int Example::*pt = &Example::inches; Det här pekaren skiljer sig en aning från en vanlig (eng. regular) pekare. En vanlig pekare pekar på ett specifikt minnesområde. Men pekaren pt pekar inte på ett specifikt minnesområde eftersom deklarationen inte identifierar ett specifikt objekt. Istället identifierar pekaren pt platsen på inches-medlemmen inom vilket Example-objekt som helst. Precis som identifieraren inches är pt utformat för att användas i samverkan med en objektidentifierare. Uttrycket *pt får samma roll som identifieraren inches. Du kan alltså använda en objektidentifierare för att specificera vilket objekt som ska kommas åt och pekaren pt för att specificera inches-medlemmen av det objektet. En klassmetod kan exempelvis använda den här koden: int Example::*pt = &Example::inches; Example ob1; Example ob2; Example *pq = new Example; cout << ob1.*pt << endl; // visa inches-medlemmen av ob1 cout << ob2.*pt << endl; // visa inches-medlemmen av ob2 cout << po->pt << endl; // visa inches-medlemmen av *po Här är.* och -> indirekta operatorer för medlemmar. När man har ett visst objekt, t.ex. ob1, identifierar ob1.*pt inches-medlemmen av ob1. På samma sätt identifierar pq->pt inches-medlemmen av det objekt som pq pekar på. Att ändra objekt i exemplet ovan ändrar vilken inches-medlem som används. Men du kan även ändra själva pekaren pt. Eftersom feet är av samma typ som inches kan du ändra pt så att den pekar på feet-medlemmen istället för inches-medlemmen. ob1.*pt kommer då istället att åsyfta feet-medlemmen av ob1: pt = &Example::feet; cout << ob1.*pt << endl; // ändra pt // visa feet-medlemmen av ob1 Kombinationen *pt får samma roll som ett medlemsnamn och kan användas för att identifiera olika medlemsnamn (av samma typ). Man kan även använda medlemspekare för att identifiera medlemsfunktioner. Syntaxen blir då något mer invecklad. Du kanske kommer ihåg att deklarationen av en pekare till en vanlig funktion av typen void med inga argument såg ut så här: void (*pf) (); // pf pekar på en funktion Deklarationen av en pekare till en medlemsfunktion måste indikera att funktionen tillhör en viss klass. Så här deklarerar du en pekare till en metod i klassen Example: void (Example::*pf) () const; // pf pekar på en medlemsfunktion i Example 1054
9 Andra operatorer Detta talar om att pf kan användas i samma sammanhang som en Example-metod. Observera att termen Example::*pf måste skrivas inom parentes. Du kan tilldela adressen för en viss medlemsfunktion till den här pekaren: pf = &Example::show_inches; Observera att till skillnad från vid tilldelning till en vanlig funktionspekare kan och måste adressoperatorn användas här. När denna tilldelning gjorts kan ett objekt användas för att aktivera medlemsfunktionen: Example ob3(20); (ob3.*pf) (); // aktivera show_inches() genom att använda objektet ob3 Hela konstruktionen ob3.*pf måste omges av parentestecken för att klart och tydligt identifiera att uttrycket representerar ett funktionsnamn. Eftersom show_feet() har samma prototyp som show_inches() kan pf också användas för att komma åt metoden show_feet(): pf = &Example::show_feet; (ob3.*pf) (); // använd show_feet () på objektet ob3 Klassdefinitionen i listning E.1 har en use_ptr()-metod som använder medlemspekare för att komma åt både datamedlemmar och funktionsmedlemmar i klassen Example. Listning E.1 memb_pt.cpp // memb-pt.cpp -- indirekta pekare till klassmedlemmar #include <iostream> using namespace std; class Example private: int feet; int inches; public: Example(); Example(int ft); ~Example(); void show_in(); void show_ft() const; void use_ptr() const; ; Example::Example() feet = 0; inches = 0; Example::Example(int ft) feet = ft; inches = 12 * feet; 1055
10 Bilaga E Example::~Example() void Example::show_in() const cout << inches << tum\n ; void Example::show_ft() const cout << feet << fot\n ; void Example::use_ptr() const Example yard(3); int Example::*pt; pt = &Example::inches; cout << Sätt pt till &Example::inches:\n ; cout << this->pt: << this->*pt << endl; cout << yard.*pt: << yard.*pt << endl; pt = &Example::feet; cout << Sätt pt till &Example::feet:\n ; cout << this->pt: << this->*pt << endl; cout << yard.*pt: << yard.*pt << endl; void (Example::*pf) () const; pf = &Example::show_in; cout << Sätt pf till &Example::show_in:\n ; cout << Använder (this->*pf) (): ; (this->*pf) (); cout << Använder (yard.*pf) (): ; (yard.*pf) (); int main() Example car(15); Example van(20); Example garage; cout << car.use_ptr() utmatning:\n ; car.use_ptr(); cout << \nvan.use_ptr() utmatning:\n ; van.use_ptr(); return 0; Här är ett prov på utmatningen från programmet i listning E.1: car.use_ptr() utmatning: Sätt pt till &Example::inches: this->pt: 180 yard.*pt:: 36 Sätt pt till &Example::feet: 1056
11 Andra operatorer this->pt: 15 yard.*pt:: 3 Sätt pf till &Example::show_in: Använder (this->*pf) (): 180 tum Använder (yard.*pf) (): 36 tum van.use_ptr() utmatning: Sätt pt till &Example::inches: this->pt: 240 yard.*pt:: 36 Sätt pt till &Example::feet: this->pt: 20 yard.*pt:: 3 Sätt pf till &Example::show_in: Använder (this->*pf) (): 240 tum Använder (yard.*pf) (): 36 tum Det här exemplet tilldelar pekarvärden under kompileringen. För en mer sofistikerad klass kan man använda medlemspekare till datamedlemmar och metoder för vilka den medlem som exakt associeras med pekaren bestäms under programmets körning. 1057
12 1058 Bilaga E
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
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 merTDIU01 Programmering i C++
TDIU01 Programmering i C++ Föreläsning 6 - Klasser Eric Elfving, eric.elfving@liu.se Institutionen för datavetenskap (IDA) Avdelningen för Programvara och system (SaS) Klasser När vi skapade vår lista
Läs merProgrammering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT 2013 1 / 26
Programmering i C++ EDA623 Mer om klasser EDA623 (Föreläsning 6) HT 2013 1 / 26 Mer om klasser Innehåll Konstanta objekt Statiska medlemmar Pekaren this Vänner (friends) Överlagring av operatorer EDA623
Läs merProgrammering 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
Läs merOperatoröverlagring. endast operatorsymboler definierade i C++ kan överlagras = += -= *= /= %= ^= &= = <<= >>= < > <= >= ==!= && > ->*, [ ] ( )
TDDC76 PoD OH Föreläsning C++ 83 Operatoröverlagring endast operatorsymboler definierade i C++ kan överlagras + - * / % ^ & ~! > = += -= *= /= %= ^= &= = = < > = ==!= && ++ -- -> ->*, [ ]
Läs merTDIU01 - 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
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 merTDDC76 - Programmering och Datastrukturer
TDDC76 - Programmering och Datastrukturer Pekare och Listor Eric Elfving Institutionen för datavetenskap 1 / 20 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 20 Internminne
Läs merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Underprogram - Funktioner Eric Elfving Institutionen för datavetenskap 18 september 2014 Översikt 2/22 Återblick till satsblocken Funktioner - Namngivna satsblock
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 merProgrammering i C++ EDA623 Arv. EDA623 (Föreläsning 6) HT 2013 1 / 42
Programmering i C++ EDA623 Arv EDA623 (Föreläsning 6) HT 2013 1 / 42 Arv Innehåll Härledda klasser Konstruktorer och destruktorer vid arv Tillgänglighet Polymorfism och dynamisk bindning Abstrakta klasser
Läs merTDDC76 - Programmering och Datastrukturer
TDDC76 - Programmering och Datastrukturer Pekare och Listor Eric Elfving Institutionen för datavetenskap 1 / 21 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 21 Internminne
Läs merSystem.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
Läs merProgrammering i C++ EDA623 Typer. EDA623 (Föreläsning 4) HT / 33
Programmering i C++ EDA623 Typer EDA623 (Föreläsning 4) HT 2013 1 / 33 Typer Innehåll Heltalstyper Flyttalstyper Pekare Minnesallokering Funktionspekare Typdeklarationer med typedef Typomvandlingar (casting)
Läs merIntroduktion till arv
Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering
Läs merData, 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
Läs merGrunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY
Grunderna i C++ ARK 385: Virtuella Verktyg i en Materiell värld AT Arkitektur & Teknik Chalmers Tekniska Högskola 2009 - Kursen skapades (3 förel.) 2010-6 förel. + 2 projekt 2011-8 förel. Helt omarbetade
Läs merIntroduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder
Introduktion TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder OO är den mest använda programmeringsparadigmen idag, viktigt steg att lära sig och använda OO. Klasser är byggstenen i
Läs merDel3 Klassanvändning, operatorer och pekare Ämnesområden denna föreläsning:
2D1387, Programsystemkonstruktion med C++ 00/01 1 Del3 Klassanvändning, operatorer och pekare Ämnesområden denna föreläsning: Synlighet Överlagring av operatorer Slide 1 Vänner till klasser och funktioner
Läs merDet objektorienterade synsättet. Objekt. Datorprogrammet kan uppfattas som en slags modell av den verklighet programmet skall samverka med.
Det objektorienterade synsättet A - 1 Objekt A - 2 Datorprogrammet kan uppfattas som en slags modell av den verklighet programmet skall samverka med. De enskilda variablerna i programmet, de s.k. objekten,
Läs mer1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet
1 Texthantering I detta avsnitt tas det upp två sätt att arbeta med text i C++ program. Det första sättet som behandlas är hanteringen av textfält. Texter i C++ består utav en serie med enstaka tecken
Läs merC++ - 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
Läs merTommy Färnqvist, IDA, Linköpings universitet
Föreläsning 9 Pekare, länkade noder, länkade listor TDDD86: DALP Utskriftsversion av föreläsning i Datastrukturer, algoritmer och programmeringsparadigm 25 september 2015 Tommy Färnqvist, IDA, Linköpings
Läs merTDP004. Minne och pekare. Eric Elfving Institutionen för datavetenskap
TDP004 Minne och pekare Eric Elfving Institutionen för datavetenskap 1 / 23 Översikt Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor 2 / 23 Internminne - RAM Datorns internminne (RAM,
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 merLogik och kontrollstrukturer
Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch
Läs merProgrammering B med Visual C++ 2008
Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,
Läs merInnehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser
Föreläsning 1 Innehåll Introduktion till objektorientering OOP (objektorienterad programmering) Objekt, instanser, klasser C++ OO i C++ Standardbibliotek Utökningar från C (syntaktiskt socker) Introduktion
Läs merProgrammering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33
Programmering i C++ EDA623 Objektorienterad programutveckling EDA623 (Föreläsning 5) HT 2013 1 / 33 Objektorienterad programutveckling Innehåll Grundläggande begrepp Relationer mellan objekt Grafisk representation
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 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 merIntroduktion C-programmering
Introduktion C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. 2 C Standarder
Läs merProgrammeringsteknik 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
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 mer1 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ä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 merRepetition C-programmering
Repetition C-programmering Viktor Kämpe C Historik Utvecklades först 1969 1973 av Dennis Ritchcie vid AT&T Bell Labs. Högnivå språk med kontakt mot maskinvara. Ett utav de mest använda språken. Repetition
Läs merIntroduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014
Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public
Läs merTDIU20 - Objektorienterad programmering i c++ - föreläsning 4
TDIU20 - Objektorienterad programmering i c++ - föreläsning 4 Pontus Haglund Department of Computer and information science 1 Vad gjorde vi förra gången? Felhantering Operatorer Typkonvertering 2 Grundläggande
Läs merFöreläsning 10. Pekare (Pointers)
Föreläsning 10 Pekare (Pointers) Dagens kluringar int a=5; int f(int b) a--; b++; return b; int main() int a=3; printf("%d,",f(a)); printf("%d",a); return 0; int f(int a) if(a==1) return a; else return
Läs mer1 Namnkontroll (NameControl)
1 Namnkontroll (NameControl) När en ny variabel, ett objekt, en konstant o s v introduceras måste programmeraren namnge denna. Allting identifieras m h a namn. När ett program består av väldigt många komponenter
Läs merTDIU01 (725G67) - Programmering i C++, grundkurs
. TDIU01 (725G67) - Programmering i C++, grundkurs Program, datatyper och IO Eric Elfving Institutionen för datavetenskap 7 oktober 2015 Översikt 2/14 Struktur på ett C++-program Köra ett program Variabler
Läs merEn villkorssats är den konstruktion som finns i C++ för att göra en selektion av två alternativa sekvenser. Formen för if satsen är
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
Läs merLabb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic
Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt
Läs merÖvriga byggstenar. Övriga byggstenar. Några tips under programutveckling. Beroenden Pekare till funktioner Typkonvertering
Övriga byggstenar Beroenden Pekare till funktioner Övriga byggstenar Beroenden er Definitioners synlighet Funktionspekare Icke-medlemsfunktioner Medlemsfunktioner 2D1387 Programsystemkonstruktion med C++
Läs merOperatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera
Föreläsning 2 Operatorer Tilldelning Kodblock if satsen Logiska uttryck Att programmera En operator tar ett eller två data och producerar ett svar. Typexemplet är +. Den tar t.ex två heltal och producerar
Läs merRepetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor.
Lektion C2 Villkor Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor. Du gör ofta val i livet, och valet du gör får olika konsekvenser och följder.
Läs merMinnestilldelning (allokering) och frigörande (avallokering) av minne
Pekare i C++ Pekare används mycket i C++. De är bra både för att de tillåter dynamisk minnesallokering och för att de är referenser. En pekarvariabel innehåller en adress till ett element, den pekar på
Läs merSP:PROG3 HT12 Tenta 2013-01-19
DSV SU/KTH sid 1 (5) SP:PROG3 SP:PROG3 HT12 Tenta 2013-01-19 Tentan består av tre uppgifter. Max poäng är 30. För betyget E (godkänd) krävs minst 18 poäng och minst en poäng på varje uppgift. Betygskriteria
Läs merpublic och private Obs: private inte skyddar mot access från andra objekt i samma klass.
public och private En metod som är public får anropas från alla metoder i alla klasser. Ett attribut som är public får avläsas och ändras från alla metoder i alla andra klasser. En metod som är private
Läs merTentamen i Objektorienterad Programmering 5p, Au, D, Fri, Pr, 051019
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13. Denna tenta kommer att vara färdigrättad Må 24/10 och kan då hämtas på
Läs merProgrammering 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
Läs merVem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)
Läs merNedan skapar vi klassen Person innehållande datamedlemmar för förnamn, efternamn, ålder, längd och vikt:
8. Objektorientering Skälet till att C++ är ett av de mest använda programspråken är att det är objektorienterat. Detta bygger vidare på begreppet struct (ursprungligen från språket C som inte är objektorienterat),
Läs merDagens 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
Läs merC++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen
C++ Funktioner 1 Teori När programmen blir större och mer komplicerade är det bra att kunna dela upp programmet i olika delar som gör specifika saker, vilket kan göra programmet mer lättläst. Ett sätt
Läs merÖvningsuppgifter till föreläsning 2 Variabler och uttryck
Sid 1 (5) Övningsuppgifter till föreläsning 2 Variabler och uttryck Syfte Syftet med övningsuppgifterna är att träna på: Aritmetik, variabler, tilldelning, scanf och printf Generellt Diskutera gärna uppgifterna
Läs merTENTAMEN CD5250. Objektorienterad programutveckling med C++, 5p. Datum: , Tid: 14:00-19:00
TENTAMEN CD5250 Objektorienterad programutveckling med C++, 5p Max poäng: 40 Betygsgränser: 3: 20 4: 28 5: 36 Datum: 1999-06-01, Tid: 14:00-19:00 Ansvarig: Ivica Crnkovic Upp till 5 poäng kan komma från
Läs mer1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler
1 Datorn som miniräknare I detta avsnitt tas upp hur man kan skriva program som utför enkla räkneoperationer och skriver resultat på skärmen. Syftet är i huvudsak att se hur flera satser kan bygga upp
Läs merKLASSER. Inkapsling Abstrakt datatyp Public och private. Klassmedlemmar Datamedlemmar Exempel Funktionsmedlemmar
KLASSER Inkapsling Abstrakt datatyp Public och private Klassmedlemmar Datamedlemmar Funktionsmedlemmar Initiering av objekt Konstruktor Ta del av objektets tillstånd Förändra objektets tillstånd Avinitiera
Läs merInnehåll. Pekare Syntax
Innehåll EDAF30 Programmering i C++ Typer, pekare Sven Gestegård Robertz Datavetenskap, LTH 2015 1 Typer och arrayer Operatorn -> Typer, pekare 2/1 Påminner om referenser i Java, men en pekare är minnesadressen
Läs merDatorteknik 2 (AVR 2)
Namn: Laborationen godkänd: Digitala system 15 hp Datorteknik 2 (AVR 2) LTH Ingenjörshögskolan vid Campus Helsingborg Enkel in- och utmatning. Drivrutiner. Bithantering. I denna laboration ska vi förbättra
Läs merDatalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera först talet 37 med 2. Använd heltalsdivision. Det ger kvoten
Läs merDD2387 Programsystemkonstruktion med C++ Tentamen 1 Torsdag 7 januari 2016, 14:00-18:00
DD2387 Programsystemkonstruktion med C++ Tentamen 1 Torsdag 7 januari 2016, 14:00-18:00 Introduktion Skriv dina svar på separata papper, dessa scannas in efter inlämning. Du kan skriva på både fram- och
Läs merOBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.
Värmdö Gymnasium Programmering A 110123 Lektion C1 Grunder Att programmera handlar mycket om att lära sig att analysera det problem eller den funktion man vill att programmet ska ha, och översätta det
Läs merFöreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera
Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på
Läs merGrundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående
Läs merFö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
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 merC++ Objektorientering - Klasser. Eric Elfving
C++ Objektorientering - Klasser Eric Elfving 1 / 20 Återblick struct struct är bra att ha för att skapa aggregat - slå ihop flera data till en ny datatyp. Ett problem med struct är åtkomst... 2 / 20 Följande
Läs merC++ Slumptalsfunktioner + switch-satsen
C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.
Läs merHur implementera algoritmerna på maskinnivå - datorns byggstenar
Hur implementera algoritmerna på maskinnivå - datorns byggstenar Binära tal Boolesk logik grindar och kretsar A A extern representation intern representation minnet i datorn extern representation 1000001
Läs mer1 Klasser och objektorientering Vad är objektorientering?
1 Klasser och objektorientering Vad är objektorientering? Det finns olika synsätt på programmering, dessa olika synsätt kallas för paradigm. De vanligaste paradigmen är det imperativa/proceduriella, det
Läs merGrundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volatile, #define Arrayer av pekare, arrayer av arrayer Hemuppgifter: v2. Föregående
Läs merAnsvarig lärare: Olof Andersson, Telefon 021-101314 (besöker skrivsalen)
MÄLRLENS HÖGSKOL Institutionen för elektroteknik Tentamen Mikrodatorteknik T3760 atum 2005-10-28 Tid 08.30 12.30 nsvarig lärare: Olof ndersson, Telefon 021-101314 (besöker skrivsalen) Om du klarat samtliga
Läs merInnehåll. Pekaren this Självreferens. Klasser Resurshantering, representation. Överlagring av operatorer. Överlagring av operatorer
Innehåll EDAF30 Programmering i C++ 8. Klasser; resurshantering och polymorfism Sven Gestegård Robertz Datavetenskap, LTH 2016 1 Klasser 2 Operatorer 3 Klasser, resurshantering Rule of three Move semantics
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 merGrunderna i stegkodsprogrammering
Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer
Läs merInkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private
Inkapsling tumregler Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler Tobias Wrigstad (baserat på material från Tom Smedsaas) 5 november 2010 1. Man skall
Läs merUttryck och villkor. Föreläsning 2
Uttryck och villkor Föreläsning 2 Dagens kluring Finn fem fel! #include int main(void) printf("resistans hos R1 (ohm) : ") scanf("%d",r1); printf("resistans hos R2 (ohm) : "); scanf("%d",r2);
Läs merCE_O3. Nios II. Inför lab nios2time
IS1200 Exempelsamling till övning CE_O3, 2015 CE_O3. Nios II. Inför lab nios2time 3.1. Logiska operationer (se uppgift 1.2 c) Repetera (eller lär dig) innebörden av de logiska operationerna "bitvis AND",
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 merProgrammering i C++ EDA623 Strömmar och filer. EDA623 (Föreläsning 9) HT / 19
Programmering i C++ EDA623 Strömmar och filer EDA623 (Föreläsning 9) HT 2013 1 / 19 Strömmar och filer Innehåll Klassen ios Läsning av strömmar Utskrift av strömmar Koppling av filer till strömmar Direktaccess
Läs merProgramsystemkonstruktion med C++: Övning 2. Karl Palmskog september 2010
Programsystemkonstruktion med C++: Övning 2 Karl Palmskog palmskog@kth.se september 2010 Specalfunktioner i klasser Konstruktorer i konstruktorerna för en klass initieras klassens medlemmar initialvärden
Läs mer(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java
(Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart
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 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 mer5 Arv och dynamisk bindning FIGUR
5 Arv och dynamisk bindning Arv är en av hörnstenarna i objektorienterad programmering. Med hjälp av arv kan man skapa underhållsvänliga och förändringsvänliga system. Att hitta arvsrelationer är en viktig
Läs merObjektorientering - Arv och polymorfi. Eric Elfving Institutionen för datavetenskap
Objektorientering - Arv och polymorfi Eric Elfving Institutionen för datavetenskap 1 / 25 Med hjälp av arv kan vi bryta ut saker som är gemensamt hos flera klasser. Vi får också möjlighet att referera
Läs merTillämpad programmering
Tillämpad programmering C++ polymorfism overload, cast, ärvning, template Johan Montelius 1 polymorfism Att se och använda en variabel, ett objekt eller en funktion i olika former overload olika versioner
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 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 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 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 merPROV. 12 Egenskaper (provavsnitt)
12 Egenskaper (provavsnitt) 12.1 Egenskaper 12.2 Deklaration av egenskaper 12.3 Åtkomsttjänster för egenskaper 12.4 Åtkomsttjänster med genererade instansvariabler 12.5 Åtkomsttjänster med egna instansvariabelnamn
Läs merF2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander
F2 Datatyper och variabler ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Datatyper Java är ett starkt typat språk Varje slags data har en datatyp Datatyp Javasyntax Exempel Teckensträng
Läs merEnkla datatyper minne
Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in
Läs merTDDC76 - Programmering och Datastrukturer
TDDC76 - Programmering och Datastrukturer Objektorientering - Arv och polymorfi Eric Elfving Institutionen för datavetenskap 1 / 25 Med hjälp av arv kan vi bryta ut saker som är gemensamt hos flera klasser.
Läs merPascal... 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
Läs mer