1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

Storlek: px
Starta visningen från sidan:

Download "1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet"

Transkript

1 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 av typen char. Dessa serier med tecken kallas fält eller arrayer. 1.1 Typen char #include<iostream> Variabler av datatypen char representerar ett tecken som exempelvis bokstaven 'A'. Datatypen char är i grund och botten ett heltal bestående av en enda byte, alltså med ett väldigt litet talområde. Skillnaden mellan variabler av chartyp och heltalsvariabler visar sig när man skriver ut dem till skärmen. När en char variabel skrivs ut till skärmen visas ett tecken exempelvis 'A', när en heltalsvariabel skrivs till skärmen visas ett tal. Programexempel med char variabler. char tecken_1, tecken_2, tecken_3; tecken_1 = 'H'; tecken_2 = 'e'; tecken_3 = 'j'; cout<< tecken_1 << tecken_2 << tecken_3 <<endl; Resultatet av programmet blir Hej Press any key to continue Skrivsättet vid tilldelningarna exempelvis tecken_1 = 'H'; anger att variabeln ska tilldelas den teckenkod/värde som tecknet H har. Teckenkoderna för de flesta tecken hittar du i bilagan. Som tur är behöver man väldigt sällan bry sig om vilka teckenkoder ett visst tecken har, utan man kan nästan alltid använda sig av det skrivsätt som visats ovan. Man kan däremot i olika sammanhang utnyttja att char variabler är heltal, som i följande exempel Exempel, skriv ut alfabetet Tecknen 'A' till 'Z' ligger i ordnade i turordning i teckentabellen (se bilaga), man kan därför skriva ut alfabetet genom en iteration som startar på tecknet 'A' och slutar på tecknet 'Z' och för varje iteration skriver ut tecknet som representeras av iterationsvariabeln.

2 #include<iostream> for (char c='a'; c <='Z'; c++) cout<<c; Programmet ger resultatet ABCDEFGHIJKLMNOPQRSTUVWXYZ Press any key to continue Rad 6: Initieringen i for satsen kan läsas som tilldela heltalet/tecknet c teckenkoden till tecknet 'A' ( värdet 65 ) Rad 6: Iterationsvillkoret blir då, repetera tills heltalet/tecknet c har ett värde större än värdet/teckenkoden för tecknet 'Z' Char fält cout<<"hello World"; Vi har tidigare sett i samband med utmatningar hur texter skickats till utskrift genom exempelvis följande sats Uttrycket "Hello World" representerar ett char fält eller en char array. Termerna fält och array är synonymer. I datorns minne representeras detta som flera på varandra följande char instanser 1. H e l l o W o r l d \0 Varje cell representerar en byte av datorns minne. Det sista tecknet kallas för nolltecken och skrivs i programkod som '\0'. Teckenkoden för nolltecknet är 0. Nolltecknet har till uppgift att ange att texten slutar. Varje textfält måste ha ett avslutande nolltecken, i många fall erhåller fältet automatiskt ett nolltecken, men ibland måste man foga till nolltecknet uttryckligen i programkoden. Deklarationer av charfält Char fält kan deklareras ungefär på samma sätt som vanliga variabler, men man måste i deklarationen ange att det är fråga om ett fält. Fältdeklarationer kommer i två olika former 1: char min_text[] = "Hello World"; här skapas ett fält bestående av 12 tecken, och variabeln min_text kallas för en fältvariabel. 1 Termen variabel används ibland synonymt med instans. Det hade varit felaktigt i detta fall eftersom det inte finns någon variabelidentifierare som refererar till de olika tecknen som utgör texten.

3 Operatorn [], kallad indexeringsoperator, anger att det är frågan om ett fält. Vid deklarationer används indexeringsoperatorn för att ange en storlek på fältet. I 1 ovan behövs inte det eftersom storleken är antydd av texten "Hello World" = 11 tecken + nolltecknet = 12 tecken. Fältet min_text är således 12 tecken(bytes) stort. 2: char tom_text[12]; här skapas ett fält bestående av 12 ej initierade char instanser. Det faktum att de ej är initierade som i 1, gör att innehållet inte är definierat eller, om man så vill, innehåller skräp. Denna typ av deklaration har ett liknande syfte som en vanlig variabeldeklaration typ int i; dvs. att fungera som en behållare för texter. 1.2 Fältvariabler En fältvariabel fungerar inte riktigt på samma sätt som en vanlig variabel. Man ska betrakta en fältvariabel som att den anger var fältet börjar. En fältvariabel pekar ut det första tecknet i fältet, eller mer korrekt, den första char instansen. Den anger vilken minnescell, adress, som den första instansen befinner sig i. Man kan i ett schematiskt diagram åskådliggöra deklarationen char min_text[]="hello World"; som Variabel: min_text Adress: Innehåll: 206 H e l l o W o r l d \0 Numreringen av cellerna är påhittad och är olika från programkörning till programkörning. Ett enklare men lika användbart diagram ser ut som min_text En egenskap hos fältvariabler är att de refererar alltid till samma fält. Detta innebär att char min_text[]="hello World"; char tom_text[12]; H e l l o W o r l d \0 // tilldelning? tom_text = min_text; // otillåtet, kan inte referera till nytt fält tom_text = "Hello World"; // otillåtet, samma operation som ovan inte fungerar. Man ska betrakta denna tilldelning som att man försökt låta pilen för tom_text peka på min_text fältet. min_text H e l l o W o r l d \0 tom_text Detta är alltså ej tillåtet eftersom man "slarvar bort" det ursprungliga tomma fältet.

4 1.2.1 Hantering av enstaka fältelement En fältvariabel tillåter genom indexeringsoperatorn att man manipulerar enstaka element. char hej_text[4]; // tomt hej_text[0] = 'H'; // obs första elementet är element 0 hej_text[1] = 'e'; hej_text[2] = 'j'; hej_text[3] = 0; // alternativt skrivsätt = '\0' Programraderna resulterar i att det fält som deklarerats att innehålla 4 char element tilldelas tecken för tecken innehållet. Obs, tecknet H är element nummer 0. min_text H e j \0 1.3 In och utmatning Man kan använda de vanliga in och utströmsoperatorerna på samma sätt som man gör för enkla variabler ex char in_text[256]; cout<<"hej vad heter du?"<<endl; cin>>in_text; cout<<"hejsan "<<in_text<<"!"; En programkörning kan då se ut som Hej vad heter du? Gunvald Hejsan Gunvald! Inmatningen fyller då de 8 första elementen i fältet in_text med texten "Gunvald" + nolltecken. Ett problem med denna typ av inmatning dyker upp om användaren skriver fler än ett ord per inmatning, exempelvis om programkörningen sett ut som Hej vad heter du? Gunvald Larsson Hejsan Gunvald! Det är inte utströmsoperatorn som felar utan det är sättet som inströmsoperatorn fungerar på som är otillräckligt. Det som händer är samma sak som tidigare att in_text fylls med texten "Gunvald" + nolltecken och texten Larsson lämnas kvar i inmatningsbufferten för senare inläsning.

5 Inströmsoperatorn ser alltså "Gunvald Larsson" som två texter eftersom de är åtskilda med ett så kallat vittecken (eng. whitespace). All inmatning med >> operatorn, sk. formaterad inmatning, skiljer element med vittecken. Vittecken är blankstegstecken, tab tecken, nyrad tecken och vagnreturtecken. Jämför sidan 7, inmatning av två flyttal. Det finns två sätt att komma runt denna egenskap hos inströmsoperatorn 1. Gör två inmatningar 2. Använd medlemsfunktionen getline Exempel getline char in_text[256]; cout<<"hej vad heter du?"<<endl; cin.getline(in_text, 255); cout<<"hejsan "<<in_text<<"!"; #include<iostream> getline kallas för medlemsfunktion eftersom den verkar på cin (är medlem av cin). Detta är det första exemplet på ett funktionsanrop. ( ) kallas funktionsoperatorn och har en hög prioritet. Innanför parenteserna anger man funktionsargument. Det första argumentet in_text anger en fältvariabel (eller motsvarande) som ska ta emot den inmatade texten. Det andra argumentet anger den maximala längden på den inmatade texten i form av ett heltal (int). Exempel, in och utmatning med teckenfält char hej[]="välkommen till kronorsfrågan"; char fraga[]="ange ditt för och efternamn"; char fornamn[80], efternamn[80]; cout<<hej<<endl; cout<<fraga<<endl; cin>>fornamn>>efternamn; cout<<"hej "<<fornamn<<" "<<efternamn<<endl; Övning Skriv om exemplet ovan så att samma funktion fås med funktionen getline Texthanteringsoperationer Att handskas med text på detta sätt gör att enkla operationer som tilldelning, jämförelser osv blir ganska besvärliga. De naturliga operatorerna som =, ==, < etc. kommer istället för att tilldela och jämföra texter, bara att tilldela och jämföra fältvariabler. Fältvariabler anger ju bara vilken position/adress i minnet texten befinner sig. Därför är man tvungen att gå vissa omvägar för att exempelvis göra en tilldelning.

6 #include<iostream> Exempel, tilldelning av ett textfält char source[]="den ursprungliga texten"; char target[80]; // en tilldelning görs genom att kopiera element för element for( int idx=0; source[idx]!=0; idx++) target[idx]=source[idx]; target[idx]=0; cout<<"efter tilldelningen innehåller target:"<<target; Principen är att med iteration löpa igenom varje tecken i source och gör tilldelningen tecken för tecken till target. Notera särskilt hur indexoperatorn används. Operationen på rad 11 ska ses som en (char) = (char) operation. Ej (char[])=(char[])! Indexoperatorn väljer alltså ut en speciell char ur ett charfält. Rad 10: Variabeln idx (index) initieras till noll, vilket kan ses som att iterationen börjar på fältets första element. Jämför avsnitt Hantering av enstaka fältelement ovan. Rad 10: source[idx]!=0, iterationsvillkoret anger att repetionen skall fortgå tills nolltecknet (textslut) påträffas. Detta är en väldigt viktig egenskap att komma ihåg för alla textfält. Eftersom ett fält inte innehåller någon information om storleken på fältet har man alltid ett nolltecken som avslutar varje textfält. Rad 10: idx++ nästa tecken i fälten Rad 11: för över det tecken som finns på position idx i source fältet till samma position i target fältet. Rad 12: Iterationen slutar innan nolltecknet förs över. Satsen garanterar att även target avslutas med ett nolltecken Övning: Tänk igenom programexekvering rad för rad, sats för sats, och se till att du förstår meningen hos varje programrad. Detta är en standardkonstruktion av en for sats för fält som du måste behärska.

7 #include<iostream> Exempel, att räkna längden på en text. char in_text[255]; // cout<<"mata in en textrad"<<endl; cin.getline( in_text, 255); for( int idx=0; in_text[idx]!='\0'; idx++); cout<<"längden på den inmatade texten är:"<<idx<<"tecken"; Principen är att gå igenom textfältet tecken för tecken tills man når nolltecket som anger slut på texten. Rad 9: cin.getline( ) används för att kunna ta emot inmatning av flera ord. Rad 11: Observera semikolon ; direkt efter for satsen. Iterationen utför inget annat än att räkna upp idx variabeln tills iterationsvillkoret uppnåtts Övning: Även här måste du tänka igenom programexekvering rad för rad, sats för sats, och se till att du förstår meningen hos varje programrad. Som tidigare är detta en standardkonstruktion av en forsats för fält som du måste behärska. 1.4 Texthanteringsfunktioner I det tidigare avsnittet visades hur for satser var nödvändiga för att göra vanliga textoperationer. Naturligtvis har man sett ett behov av att göra detta på en enklare sätt. Det finns ett bibliotek eller headerfil som heter cstring (string.h på äldre kompilatorer) där många texthanteringsfunktioner finns för att göra de vanligaste funktionerna. Funktioner i cstring (urval) strcpy string copy tilldelning strcat string concatenate konkatenering (ihopslagning) strcmp string compare alfabetisk jämförelse strlen string length textlängd

8 Syntax funktioner i cstring strcpy(char * target, const char * source):char * den kopierade texten strcat(char * target, const char * source):char * den konkatenerade texten strcmp(const char * txt1, const char * txt2):int se nedan strlen(const char * ):int längden, antal tecken Typen char * i tabellen ovan är en variant av char fält som vi kan betrakta som likvärdiga variabler som deklarerats som char text[80]; dvs ett vanligt textfält. (Typen char * är en pekartyp, en pekare är en variabel som pekar ut olika positioner i minnet, som här; början på texten/första tecknet i texten). Typen const char innebär en garanti att inget tecken i texten kommer att ändras. strcat: Att konkatenera texterna "Hello " och "World" ger resultatet "Hello World". strcmp: Det heltal som anges som returvärde kan anta tre olika slags värden <0: txt1 kommer före txt2 alfabetiskt. Mer korrekt enligt teckentabellen vilket innebär att alla stora bokstäver kommer före alla små bokstäver i "alfabetet" (se bilaga för teckenkoder). 0: txt1 och txt2 innehåller likadan text >0: txt2 kommer före txt1. Syntaxtabellen ska tolkas som ex Funktionen strcmp tar 2 argument av textfältstyp, returvärdet är ett heltal. Ett lösryckt avsnitt kan då se ut som: char passwd[80]; cin>>passwd; if( strcmp(passwd, "hemligt") == 0) cout<<"korrekt lösen"; else cout<<"felaktigt lösen"; Notera speciellt hur jämförelsen == 0 måste göras för att kontrollera likhet. Det naturliga för likhet är vanligtvis något i stil med if ( lika(text1,text2)==true). Det konstiga med detta är att heltalet 0 betyder logiskt false. Rad 3: strcmp( ) kallas för funktionsanrop. De argument som ges innanför parenteserna kallas aktuella argument. Det som händer är att ett underprogram anropas/utförs med de aktuella argumenten. Då underprogrammet har utfört sitt arbete lämnar det tillbaka resultatet av programmet i form av returvärdet. Det är sedan med detta returvärde som jämförelsen görs. Dvs if ( (returvärde) == 0) Underprogrammet för strcmp (och de andra funktionerna) är en del av det som kallas standardbiblioteket.

9 Exempel, användning av texthanteringsfunktioner. #include<iostream> #include<cstring> // för texthanteringsfunktioner char namn1[255]; char namn2[255]; // cout<<"mata in ett efternamn"<<endl; cin>> namn1; cout<<"mata in ett annat efternamn"<<endl; cin>> namn2; int len_namn1 = strlen( namn1 ); cout<<"det första namnet innehåller:"<< len_namn1 <<" tecken"<<endl; int jmf = strcmp( namn1, namn2 ); cout<<namn1<<" kommer "; if ( jmf < 0) cout<< "före "<<namn2; else cout<< "efter "<<namn2; cout<<" i ordlistan"<<endl; char namn1och2[512]; // tilldelning namn1 > namn1och2 strcpy( namn1och2, namn1 ); // lägg till texten ", " strcat(namn1och2, ", "); // lägg till namn2 strcat(namn1och2, namn2); cout<<"de båda namnen var "<<namn1och2<<endl; Exempel på programkörning

10 Mata in ett efternamn Larsson Mata in ett annat efternamn Svensson Det f rsta namnet innehõller:7 tecken Larsson kommer f re Svensson i ordlistan De bõda namnen var Larsson, Svensson Press any key to continue Vanligtvis ignoreras de returvärden som erhålls från funktionerna strcpy och strcat. Dessa funktionsanrop är väldigt viktiga för förståelsen för skrivsättet vid funktionsanrop. De är dessutom viktiga för förståelsen av syftet med funktioner. for satsen i exemplet, att räkna längden på en text, är förbluffande lik det underprogram som utförs då funktionen strlen anropas. Teknisk not: Jämför gärna funktioner och operatorer. Ex och strcat( txt1, txt2 ): resultat tal1 + tal 2: resultat en giltig omskrivning av tal1 + tal 2 skulle vara operator+ (tal1, tal2 ): resultat Där enda skillnaden är funktionsnamnet strcat respektive operator+ och dess datatyper. Skillnaden mellan funktioner och operatorer är språkmässigt mest syntaktisk. Det finns en viss fast uppsättning operatorer +,, * osv. medan funktionsnamn och funktioner kan skapas helt efter behov. Annars är den bakomliggande principen densamma. Det finns en operator ( ) funktionsoperatorn (se operatortabell i bilaga) som utvärderas på samma sätt som övriga operatorer, sånär som på det syntaktiska. 1.5 Datatypen string Det finns i moderna C++ miljöer en datatyp speciellt utvecklad för att handskas med text som en enkel datatyp. För denna datatyp fungerar de enkla operatorerna på ett naturligt och enkelt sätt. Datatypen heter string och är en sk. klasstyp. Det innebär att typen är skapad med de enkla datatyperna som bas men med funktioner och operatorer omskrivna så att de kan användas på ett naturligt sätt. Typen är definierad i en header string. Headern cstring behövs inte om man använder typen string.

11 #include<iostream> #include<string> Exempel, operationer för text av typen string string text1 ="Hello World"; // deklaration + initiering string text2; // deklaration text2 = text1; // enkel tilldelning, ingen strcpy if ( text2== text1) // sant, jämför textinnehållet cout<<"texterna är lika"<<endl; if ( text2 < text1) // ej sant, jämför ordning cout<<"text2 är före i ordlistan"<<endl; text1 = "Hello"; text1 +=" "; // konkatenering text2 = text1 + "World"; // konkatenering cout<< text2<<endl; // ger texten "Hello World" int len_text2 = text2.size(); cout<< "består av "<< len_text2 <<" tecken"<<endl; Datatypen string kan i många lägen helt ersätta det gamla skrivsättet med char fält. Programmet ger följande utskrift Texterna õr lika Hello World bestõr av 11 tecken Press any key to continue Övning: Ersätt textfälten i de tidigare exemplen med texter av typen string.

1 Funktioner och procedurell abstraktion

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äs mer

Att använda pekare i. C-kod

Att använda pekare i. C-kod Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare

Läs mer

Programmeringsteknik med C och Matlab

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

Läs mer

SMD 134 Objektorienterad programmering

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

Läs mer

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

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,

Läs mer

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. 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 mer

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print.

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print. 1 Inmatning och utskrift Inmatning från tangentbord och utskrift till skärm sker i java med hjälp av objekten System.out och System.in. Dessa båda objekt är exempel på strömmar. En ström är en typ som

Läs mer

4 Sammansatta datatyper

4 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 mer

Programmering A. Johan Eliasson johane@cs.umu.se

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

Läs mer

5 Grundläggande in- och utmatning

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

Läs mer

TDIU01 - Programmering i C++, grundkurs

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 mer

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

1 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 mer

Skizz till en enkel databas

Skizz till en enkel databas Skizz till en enkel databas Data: Register En vektor Funktioner: Databas Initiera huvudloop Avsluta Poster (struct( struct) val Mata in Skriv ut Spara Hämta Ändra Radera Enligt diskussion 1999-11-23 Bertil

Läs mer

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?? 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 mer

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C 1 of 7 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

Läs mer

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

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

Läs mer

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4 Modul 2 Byggstenar PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4 Byggstenar 4 Nyckelord 4 Tecken 4 Syntax 5 Standardbibliotek 5 Vårt första program 5 Variabler 6 Konstanter 9 Operatorer 9 Övningar 9 Mer operatorer

Läs mer

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

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

Läs mer

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

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

Läs mer

Föreläsning 11. Strängar

Föreläsning 11. Strängar Föreläsning 11 Strängar Dagens kluring void findmax(int v[], int length, int *pmax) int i;??=v[0]; for(i=1;i< length;i++) if(v[i]>??)??=v[i]; int main() int a[]=1,2,3,4,2; int max; hittamax(a,5,???); printf(

Läs mer

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. 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 -

Läs mer

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

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

Läs mer

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer Datorlära 1 Introduktion till datasystemet, epost konto, afs hemkonto Introduktion till datorer och datasalar Open Office Calculator Beräkningar med Open Office Calc Diagram med OO Calc Datorlära 2 Utforma

Läs mer

Variabler och konstanter

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!

Läs mer

En 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

En 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 mer

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010 Föreläsning 6 Kapitel 5 5.1 switch-satsen Vi ser på ett par exempel ur boken: int a; srand(time(0)); a=rand()%6+1; if(a==1) printf("hej Du glade\n"); else if(a==2) printf("god dag\n"); else if(a==3) printf("är

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng

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)

Läs mer

Föreläsning 6: Introduktion av listor

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.

Läs mer

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013 1 of 7 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

C++ - En introduktion

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

Läs mer

Föreläsning 7 Strängar

Föreläsning 7 Strängar Föreläsning 7 Strängar I C använder vi strängar för att lagra text. Strängar kommer in ganska sent i kursen, det är jag inte så glad över, men det finns också fördelar, vi har grundat oss rejält nu i funktioner,

Läs mer

Objektorienterad programmering i Java

Objektorienterad 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 mer

Tecken. char. char ch = A ; sizeof(char) = 1 byte (ej 16-bitars tecken som i Java) char namn[]= "Nils"; // längd = 5 bytes

Tecken. char. char ch = A ; sizeof(char) = 1 byte (ej 16-bitars tecken som i Java) char namn[]= Nils; // längd = 5 bytes Tecken EDAF30 Programmering i C++ 2. Tecken och texter char char ch = A ; Sven Gestegård Robertz Datavetenskap, LTH 2015 sizeof(char) = 1 byte (ej 16-bitars tecken som i Java) char c1, c2; c1 = A ; c2

Läs mer

Introduktionslaboration

Introduktionslaboration TDDC76 Laborationshandledning 1 TDDC76 Programmering och datastrukturer Introduktionslaboration Denna introduktionslaboration introducerar programmeringsspråket C++, hur du skriver enkla C++-program samt

Läs mer

Programmeringsuppgifter 1

Programmeringsuppgifter 1 Programmeringsuppgifter 1 Redovisning: Ni demo-kör och förklarar för handledaren några av de program ni gjort. Ni behöver inte hinna allt, redovisa så långt ni kommit. Om ni hinner mer kan ni alltid redovisa

Läs mer

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Vem ä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 mer

Textsträngar från/till skärm eller fil

Textsträngar från/till skärm eller fil Textsträngar från/till skärm eller fil Textsträngar [Kapitel 8.1] In- och utmatning till skärm [Kapitel 8.2] Rekursion Gränssnitt Felhantering In- och utmatning till fil Histogram 2010-10-25 Datorlära,

Läs mer

C++ Lektion Tecken och teckenfält

C++ Lektion Tecken och teckenfält C++ Lektion Tecken och teckenfält Teori Hittills har alla variabler du jobbat med varit olika typer av tal, men du kan också deklarera variabler som håller bokstavstecken. Denna variabeltyp kallas för

Läs mer

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012 1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

Läs mer

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08

Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler...

Läs mer

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)

Läs mer

Introduktion till PHP

Introduktion till PHP PHP - Grund Copyright 2016 Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Introduktion till PHP PHP = PHP: Hypertext Preprocessor PHP är ett programmeringsspråk. PHP är ett skriptspråk som körs

Läs mer

Grunderna i stegkodsprogrammering

Grunderna 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 mer

Visual Basic, en snabbgenomgång

Visual 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 mer

Agenda. 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å 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 mer

Lektion 1, del b Utskrifter av variabelvärden Inläsning av värden till variabler

Lektion 1, del b Utskrifter av variabelvärden Inläsning av värden till variabler Lektion 1, del b Utskrifter av variabelvärden Inläsning av värden till variabler Denna lektion tar upp Utskrifter: Utskrift av variabelvärden på skärmen i DrJavas Interaktions-fönster eller i ett Popup-fönster

Läs mer

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

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011, Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1 Måndagen den 10 januari 2011, 8.15 12.15 Tentamen består av två delar, del A och del B. Del A innehåller 10 kryssfrågor på olika teman

Läs mer

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 DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Kapitel 15: Data/Matrix Editor

Kapitel 15: Data/Matrix Editor Kapitel 15: Data/Matrix Editor 15 Översikt över Data/Matrix Editor... 226 Översikt över list-, data- och matrisvariabler... 227 Starta en Data/Matrix Editor-session... 229 Mata in och visa cellvärden...

Läs mer

Objektorienterad Programmering (TDDC77)

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

Läs mer

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

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

Läs mer

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110.

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110. 1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Denna tenta kommer att vara färdigrättad On 14/1-04 och kan då hämtas på mitt

Läs mer

Introduktionslaboration

Introduktionslaboration LINKÖPINGS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Avdelningen för programvara och system (SaS) Tommy Olsson 2006-08-31 TDIU06 Programmering g.k Introduktionslaboration Ht1, 2006 Detta häfte

Läs mer

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I 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 mer

Sätt att skriva ut binärträd

Sätt att skriva ut binärträd Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer

Läs mer

( ostream ) << ( annan datatyp ) : ostream

( ostream ) << ( annan datatyp ) : ostream 1 Inmatning och utskrift Inmatning från tangentbord och utskrift till skärm sker i C++ med hjälp av strömmar. Vi har tidigare sett exempel på utskrift. Vi kommer i det här avsnittet även ta upp inmatning

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Fö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 mer

Övning från förra gången: readword

Ö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 mer

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

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 (

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb 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

Föreläsning 5: Introduktion av pekare

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

Läs mer

Föreläsning 4: Poster

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

Läs mer

Övningar i JavaScript del 2

Övningar i JavaScript del 2 Övningar i JavaScript del 2 Genm dessa övningar frtsätter intrduktinen av JavaScript. Vi tar nu upp if-satser ch lite mer m funktiner. Vi kmmer ckså in på tillämpningar sm att byta en bild på webbsidan

Läs mer

Exempel på ett litet Ada-program

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

Läs mer

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser

Innehå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 mer

2.4. Teckensträngar och logiska uttryck

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

Läs mer

Fö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 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 mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

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

16 Programmering TI -86 F1 F2 F3 F4 F5 M1 M2 M3 M4 M5 16 Programmering Skriva program till TI-86... 214 Köra program... 221 Arbeta med program... 223 Hämta och köra assemblerprogram... 226 Arbeta med strängar... 227 TI -86 M1 M2 M3 M4 M5 F1 F2 F3 F4 F5 214

Läs mer

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

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

Läs mer

Beräkningsvetenskap föreläsning 2

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

Läs mer

Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201) Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201) Lars-Henrik Eriksson Fredag 5 april 2013, kl 14:00 17:00, i Polacksbackens skrivsal Hjälpmedel: Inga. Inte heller elektronisk

Läs mer

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

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv Datorlära 6 Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv 1 Arbeta med Strängar Strängar skapas med text inom citattecken, enkla eller dubbla.!>> str=

Läs mer

Dynamisk HTML JavaScript och webbläsarens objektmodell

Dynamisk HTML JavaScript och webbläsarens objektmodell Dynamisk HTML 1 JavaScript och webbläsarens objektmodell Ove Lundgren (2009) Ove Lundgren - 1 - DOMDHTML2009.doc Innehåll Dynamisk HTML Webbläsarens variabler och metoder. Objektmodellen. Anropa metoder

Läs mer

Chapter 3: Using Classes and Objects

Chapter 3: Using Classes and Objects Chapter 3: Using Classes and Objects I dessa uppgifter kommer du att lära dig om hur man använder klasser och metoder från java biblioteket. Du kommer inte att förstå allt som händer bakom metod anrop

Läs mer

Övningar Dag 2 En första klass

Övningar Dag 2 En första klass Kurs i C++ Sid 1 (5) Övningar Dag 2 En första klass Denna övning går ut på att steg för steg bygga upp en klass och skapa objekt. Vi kommer att utgå från en sammansatt datatyp i en struct och parallellt

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer C++ - en introduktion Eric Elfving Institutionen för datavetenskap 1 / 72 Översikt 1 Grunderna 2 Uttryck och satser 3 Funktioner 4 Poster 1 Grunderna Ett första

Läs mer

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

Kompilering 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 mer

"if"-satsen. Inledande programmering med C# (1DV402)

if-satsen. Inledande programmering med C# (1DV402) "if"-satsen 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 i verket if-satsen

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. 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 mer

En snabb titt på XML LEKTION 6

En snabb titt på XML LEKTION 6 LEKTION 6 En snabb titt på XML Bokstaven x i Ajax står för XML, ett mycket användbart beskrivningsspråk som gör det möjligt för Ajax-tillämpningar att hantera komplex strukturerad information. I den här

Läs mer

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t. Föreläsning 11 Arrayer Arrayer Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt int[] tal = new int[3]; Kan ha en array av t.ex: Heltal (int) Tecken (char) Personer (objekt av klassen

Läs mer

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll 2010-04-22

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll 2010-04-22 Översikt 732G11 PROGRAMMERING 1 Institutionen för datavetenskap Om kursen Vad är programmering (bra för)? Programmeringsspråket Java Utvecklingsmiljön Eclipse Genomgång av några programexempel Programmering

Läs mer

Programmering B med Visual C++ 2008

Programmering 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 mer

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

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

Läs mer

TDIU01 (725G67) - Programmering i C++, grundkurs

TDIU01 (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 mer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

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

Läs mer

1 Iteration. 1.1 for-satsen

1 Iteration. 1.1 for-satsen 1 Iteration Iteration innebär en upprepning, repetition av satser. Vi har nu sett hur en villkorssats kan välja att utföra ett satsblock beroende på om ett villkor är uppfyllt, selektion. För selektion

Läs mer

Föreläsning 6 pekare och pekare tillsammans med arrayer

Föreläsning 6 pekare och pekare tillsammans med arrayer Föreläsning 6 pekare och pekare tillsammans med arrayer Vi ska nu undersöka vad pekare egentligen är och hur de relaterar till arrayer. Det är ett centralt tema i C-programmering. Vi följer boken och går

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

Läs mer

Begrepp :: Determinanten

Begrepp :: Determinanten c Mikael Forsberg 2008 1 Begrepp :: Determinanten Rekursiv definition :: Kofaktorutveckling Låt oss börja definiera determinanten för en 1 1 matris A = (a). En sådan matris är naturligtvis bara ett vanligt

Läs mer

Introduktion till algoritmer - Lektion 3 Matematikgymnasiet, Läsåret 2014-2015. Lektion 3

Introduktion till algoritmer - Lektion 3 Matematikgymnasiet, Läsåret 2014-2015. Lektion 3 Introduktion till algoritmer - Lektion 3 Matematikgymnasiet, Läsåret 014-015 Lektion 3 Denna lektion är temat hur man effektivt ska organisera den data som en algoritm använder för att åtkomsten till datan

Läs mer

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

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,

Läs mer

TDIU01 - Programmering i C++, grundkurs

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

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 3 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Operatorer Java Standard Library Inmatning Operatorer operatorer En operator är en

Läs mer

Hjälpmedel för kompilatorkonstruktion, DVB004

Hjälpmedel för kompilatorkonstruktion, DVB004 Hjälpmedel för kompilatorkonstruktion, DVB004 Version 4.2 021104 Göran Fries 031104 GF Kompilatorn kan lämpligen konstrueras i tre ganska fristående pass (p1,p2,p3). Första passet gör en lexikalisk analys,

Läs mer

Uttryck, satser och strömhantering

Uttryck, satser och strömhantering Linköpings Universitet Institutionen för datavetenskap (IDA) UPP-gruppen 2018-09-06 Mål Uttryck, satser och strömhantering I denna laboration ska du lära dig Formaterad inläsning och utskrift Vanliga repetitions-

Läs mer

Programmering 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 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 mer