+LVWRULHQ. .XUVLQQHKnOO 2EMHNWRULHQWHUDGSURJUDPXWYHFNOLQJ ª 2EMHNWRULHQWHUDGDQDO\V ª 2EMHNWRULHQWHUDGGHVLJQ ª 2EMHNWRULHQWHUDGSURJUDPPHULQJ

Relevanta dokument
Enkla datatyper minne

TDIU01 - Programmering i C++, grundkurs

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

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

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

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

Objektorienterad programmering Föreläsning 4

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

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Programmering A. Johan Eliasson

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

SMD 134 Objektorienterad programmering

Objektorienterad Programmering (TDDC77)

Programmeringsteknik med C och Matlab

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

float Mindre rella tal ( floating point number ) double Rella tal/flyttal ( double precision floating point number )

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

Objektorienterad Programmering (TDDC77)

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

Data, typ, selektion, iteration

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

TDDC77 Objektorienterad Programmering

C konstruerades i början på sjuttiotalet av Dennis Ritchie vid Bell Laboratories.

Parameteröverföring. Exempel. Exempel. Metodkropp

Winstrand Development

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

Funktionens deklaration

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

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

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

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

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

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

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT / 26

TDIU01 - Programmering i C++, grundkurs

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

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.

Lathund. Pacific C för MS-DOS

Instuderingsfrågor till Steg 1

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

Uttryck och villkor. Föreläsning 2

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

Undervisning. Examination

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

OOP Objekt-orienterad programmering

Föreläsningsmaterial (Syntax och variabler)

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

C++ - En introduktion

TDDC77 Objektorienterad Programmering

Programmering i C++ EDA623 Typer. EDA623 (Föreläsning 4) HT / 33

1 Programmering i Java. Program element - Introduktion. Exempel. Exempel. Kapitel 3:

Variabler använder man sig av för att under programkörningen spara data eller information i primärminnet. En variabel har typ, namn och värde.

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Undervisning. Examination

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

Lathund. C för inbyggda system

Föreläsning 1 & 2 INTRODUKTION

Övning2. Variabler. Data typer

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

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström

EDAf30: Programmering i C++, 7.5 hp. EDAf30: Programmering i C++, 7.5 hp Administration. EDAf30: Programmering i C++, 7.5 hp Obligatoriska moment

(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

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

F4. programmeringsteknik och Matlab

Programmering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world

Introduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret L0 - Grunder i C++

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

C++ Lektion Tecken och teckenfält

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

Loopar och datatyper. Föreläsning 3

Studentportalen UNIX-konton (systemansvariga P4118) Lärare: Tom Smedsaas,

Introduktion till programmering

Programmering i C++ EDAF hp. EDAF30 (Föreläsning 2) HT / 18

Uttryck och villkor. Föreläsning 2

TDIU01 - Programmering i C++, grundkurs

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

TDDC77 Objektorienterad Programmering

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

*Pekarvärden *Pekarvariabler & *

Repetition C-programmering

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Innehåll. EDAf30: Programmering i C++, 7.5 hp. EDAf30: Programmering i C++, 7.5 hp Viktiga skillnader mot Java

Lathund. C för inbyggda system

Anteckningar 1: Grundläggande saker

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

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

2D1387, Programsystemkonstruktion med C++ Johnny Bigert, Kursens hemsida:

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

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

Objektorienterad programmering i Java

C-programmering, föreläsning 2 Jesper Wilhelmsson

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Föreläsning 1: Momstabellen i C++

Föreläsning 2 - Intro till Java

Transkript:

1-1.XUVLQQHKnOO 2EMHNWRULHQWHUDGSURJUDPXWYHFNOLQJ ª 2EMHNWRULHQWHUDGDQDO\V ª 2EMHNWRULHQWHUDGGHVLJQ ª 2EMHNWRULHQWHUDGSURJUDPPHULQJ +LVWRULHQ 1-2 6WlYDQ HIWHU NDG DEVWUDNWLRQ 0DVNLQRULHQWHUDGH VSUnN ² 0DVNLQNRG L IRUP DY VLIIURU ² $VVHPEOHUNRG 3URFHGXURULHQWHUDGH VSUnN ² )2575$1 $OJRO &2%2/ %$6,& 3$6&$/ & 2EMHNWRULHQWHUDGH VSUnN ² 6LPXOD $GD 6PDOOWDON-DYD

1-3 2EMHNWRULQWHUDGHVSUnN,QNDSVOLQJ $UY 3RO\PRUIL & 1-4 (WWSURFHGXURFK REMHNWRULHQWHUDW K\EULGVSUnN )OH[LEHOW $QYlQGEDUWWLOOGHW PHVWD 9DQOLJWI UHNRPPDQGH *DQVNDNUlYDQGH

1-5 Standardisering Traditionell C - standard» Definierad 1978 i boken "The C Programming Language" avkernighan/ritchie C - ANSI standard» Påbörjades 1983 och slutfördes 1989 av en grupp bestående av dator- och programtillverkare samt universitet C++ standard» Sommaren 1998 ANSI standard! 1-6 Uppbyggnad av ett C++ program Exempel på ett C++ program #include <iostream.h> void main() { cout << "Hello world"; } C++ och Java s syntax är till stora delar lika public class hello { public static void main(string args[]) { System.out.println("Hello world"); } }

1-7 Från källkod till körbart program prog.cpp #include<iostream.h> main() { }...... MS Visual C++ Borland C++ Kompilator Länkare prog.exe Ett additions program 1-8 // Ett additions program -------------------------------------- #include <iostream.h> main() { int tal1, tal2, summa; //deklaration av heltalen cout << "Ange tal 1" << endl; //frågar om första talet cin >> tal1; //läser in första talet cout << "Ange tal 2" << endl; //frågar om andra talet cin >> tal2; //läser in andra talet summa = tal1 + tal2; //beräknar summan cout << "Summan blir: " << summa << endl; //skriver summan } return 0; // indikerar att programmet avslutades normalt //-------------------------------------------------------------

1-9 cout Matar ut text på skärmen Ex: cout << "Enter first integer\n"; <<» Visar vad som ska skickas till cout för utmatning» Flera sådana kan finnas i ett utmatningsuttryck Citationstecken "... "» Avgränsar en textsträng» Används vid nästan all textutmatning Definierad i iostream.h» Header filer Filer som innehåller deklarationer av funktioner Måste vara med som en include-rad 1-10 cin Läser data från tangentbordet Ex: cin >> tal1; Deklarationen finns i iostream.h

Escapesekvenser 1-11 Character Newline Horizontal tab Vertical tab Backspace Form Feed Alert Backslash Question mark Single quote Double quote Null character With octal code 000 With hexadecimal code xhhh C++ Escape Sequence \n \t \v \b \f \a \\ \? \ \ \0 \000 \xhhh Heltalstyper 1-12 Typ C++ Java Minnesstorlek Område Minnesstorlek Område char 1 byte -128 till 127 char är ingen heltalstyp byte short int long Saknas i C++, motsvaras delvis av char Inte större än long. Oftast 2 byte Beror på maskin, ofta 2 eller 4 byte Inte mindre än short. Oftast 4 byte 1 byte -128 till 127 (-32 768 till 32 767) 2 byte -32 768 till 32 767 Beror på... 4 byte -2 147 483 648 till 2 147 483 647 (-2 147 483 648 till 2 147 483 647) 8 byte -9 223 372 036 854 775 808 till 9 223 372 036 854 775 807

Flyttalstyper 1-13 Typ float double C++ Java Minnesstorlek Område Minnesstorlek Område Inte större än double. Oftast 4 byte Inte mindre än float. Oftast 8 byte (ca + 3.4E+38) 4 byte ca + 3.4E38 (ca + 1.8E+308) 8 byte ca + 1.8E+308 Teckentyper 1-14 Typ C++ Java Minnesstorlek Område Minnesstorlek Område char 1 byte ASCII-tabellens tecken. Egentligen en heltalstyp. 2 byte Unicode s tecken

Logiska typer 1-15 Typ bool boolean C++ Java Minnesstorlek Område Minnesstorlek Område true, false men de båda värdena representeras av 1 eller 0... true, false Exempel på kvalificerare 1-16 Typ Minnesstorlek Område unsigned char Lika som char 0 till 255 unsigned short Lika som short 0 till (65 535) unsigned int Lika som int Från och med 0 till MAX_INT unsigned long Lika som long 0 till (4 294 967 295) Unsigned long int Lika som long. 0 till (4 294 967 295) long double Större än double Större talområde än double

Deklaration och tilldelning av variabler 1-17 int mittheltal; cout << mittheltal; mittheltal = 3; cout << mittheltal << \n ; // Deklaration // Ett obestämt värde skrivs ut! // Tilldelning // Talet 3 och en ny rad skrivs ut /* EttNyttTal deklareras och tilldelas värdet av mittheltal och etttaltill deklareras och tilldelas värdet värdet 23 */ int ettnytttal = mittheltal, etttaltill = 23; ettnytttal = mittheltal = etttaltill = -49; // Nu har alla tre variablerna värdet -49 1-18 Deklaration av variabler Syntax» typ variabelnamn;» typ variabelnamn = värde;» typ var1 [= värde1], var2 [=värde2],.; Exempel» int j;» double pressure = 32.314;» long filesize, disksize, totalfilesize = 0;» int j, i = 2, k = 3;» double x = 3.12; double y = 2*x, z = 4.5, a = 45.7;

Variablers storlek 1-19 /******************************************************************************************************* * Detta program undersöker hur mycket minne som "int"-deklarerade och variabler använder. Dessutom använder programmet * konstanten INT_MAX för att kontrollera vilket som är det minsta tal som variabeln kan lagra. Konstanterna INT_MIN och * INT_MAX är deklarerade i standardbiblioteket "limits.h". Motsvarande konstanter för decimaltal finns i float.h. * Programmerare: Hans-Edy Mårtensson * Datum: 1998-08-11 ********************************************************************************************************/ #include <iostream.h> #include <limits.h> #include <float.h> //- main ---------------------------------------------------------------------------------------------------------------------------------------------------- void main(void) { cout <<"En \"int\"-deklarerad variabel tar upp " <<sizeof(int) <<" byte i datorns minne." << endl; int heltal = 34; cout <<"Variabeln \"heltal\" tar upp " <<sizeof(heltal) <<" byte" << endl; cout <<"\ndet minsta tal som en \"int\"-variabel kan lagra är: <<INT_MIN << endl; cout <<"\ndet största tal som en \"int\"-variabel kan lagra är: <<INT_MAX << endl; cout <<"\ndet minsta tal som en \"double\"-variabel kan lagra är: <<DBL_MAX << endl; cout <<"\ndet största tal som en \"double\"-variabel kan lagra är: " <<DBL_MIN << endl; } //------------------------------------------------------------------------------------------------------------------------------------------------------------ Konstanter 1-20 Syntax» const typ namn = värde; Exempel» const unsigned char ASCII_A = 65;» const DAYS_IN_WEEK = 7;» const char FIRST_DISK_DRIVE = A ; Om konstantens typ utelämnas i deklarationen så förutsätter kompilatorn int.

Konstanter med hjälp av preprocessor-direktiv 1-21 Syntax» #define namn värde Exempel» #define ASCII_A 65» #define DAYS_IN_WEEK 7 Innan koden kompileras byter så byter preprocessorn ut alla förekomster av namn till motsvarande värde. 1-22 Tecken Består av ett tecken omgivet av apostrofer Ex: 'a' 'F' '>' Värdet är koden för motsvarande tecken För ASCII-koden gäller följande: Ex: c1 = c2 + 'a' - 'A'; Om c2 har koden för en stor bokstav kommer c1 få koden för motsvarande liten bokstav ('a' - 'A' = 32) Ex: i = c - '0' Ger ett heltal i intervallet 0 till 9 om c är en siffra

1-23 Aritmetiska operatorer De vanliga operatorerna: '+'- addition '-' - subtraktion '*' - multiplikation '/' - division OBS! 10/100 får värdet 0 (heltalsdivision) Speciella operatorer: '%' - modulooperatorn Ex: 14 % 5 ger värdet 4 - rest vid heltalsdivision Subtraktionsoperatorn '-' finns även i en variant med bara en operand s.k. unär variant 1-24 Operatorernas prioriteter Bestämmer hur sammansatta uttryck med flera operatorer ska grupperas Ex: i + j * k grupperas som: i + (j * k) Operanden räknas till den operator som har högst prioritet Prioritetsordning för de vanliga aritmetiska operatorerna: - (unär) högst * / % + - lägst Ex: - 2 + 4 / 2 * 3 får värdet 4 Grupperingen kan ändras med parenteser Ex: (- 2 + 4 )/ 2 * 3 får värdet 3

Aritmetiska tilldelningsoperatorer 1-25 De aritmetiska operatorerna kan kombineras med = för att skapa aritmetiska tilldelningsoperatorer Ex: i = i + k; y = y - x; kan skrivas mer kompakt som: i += k; y -= x; Allmänt gäller att: op1 = op1 op op2 är ekvivalent med: op1 op= op2 op kan bl.a. vara någon av: + - * / % Upp- och nedräkningsoperatorer 1-26 Ex : i++ <-> i = i + 1 n-- <-> n = n - 1 Två varianter finns: postfixoperator i++ ökningen av i ska ske efter att uttryckets värde har beräknats Ex: i = 4; j = 7; b = i++ * j--; /* b får värdet 28 */ prefixoperator ++i ökningen av i ska ske innan uttryckets värde har beräknats Ex: i = 4; j = 7; a = ++i * --j; /* a får värdet 30 */

1-27 Typomvandling Syntax» typ(uttryck)» (typ) uttryck Exempel» int i = 2; float a, b; a = float(i); b = (float) i; 1-28 'XVNDNXQQD«'X VND NXQQD VNULYD HWW HQNHOW SURJUDP L & 'X VND NXQQD VNULYD XW RFK OlVD LQ GDWD YLD ELOGVNlUP RFK WDQJHQWERUG 'X VND NlQQD WLOO VSUnNHWV HQNOD GDWDW\SHU 'X VND NXQQD DQYlQGD GH DULWPHWLVND RSHUDWRUHUQD