Enkla datatyper minne



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

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

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

TDIU01 - Programmering i C++, grundkurs

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

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

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-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

Objektorienterad Programmering (TDDC77)

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

Objektorienterad Programmering (TDDC77)

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

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

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

Skizz till en enkel databas

Lathund. C för inbyggda system

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

Programmering A. Johan Eliasson

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

Data, typ, selektion, iteration

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

Loopar och datatyper. Föreläsning 3

F4. programmeringsteknik och Matlab

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

Föreläsning 2 - Intro till Java

SMD 134 Objektorienterad programmering

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

Loopar och datatyper. Föreläsning 3

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

Lathund. Pacific C för MS-DOS

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

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

Lathund. C för inbyggda system

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

TDDC77 Objektorienterad Programmering

Programmeringsteknik med C och Matlab

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.

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

Variabler, värden och typer

C++ Lektion Tecken och teckenfält

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

Objektorienterad programmering Föreläsning 4

En kort text om programmering i C.

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

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

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Variabler, värden och typer

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

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

TDIU01 - Programmering i C++, grundkurs

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

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

Tecken & Strängar. Kapitel 7

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

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

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

Chapter 3: Using Classes and Objects

Föreläsning 8: Aritmetik och stora heltal

4 Sammansatta datatyper

C++ Slumptalsfunktioner + switch-satsen

Övning2. Variabler. Data typer

Programmering i C, 7,5 hp

C++ - En introduktion

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

Instuderingsfrågor till Steg 1

Programmering Grundkurs (HI1900) Teoridel

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

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

Parameteröverföring. Exempel. Exempel. Metodkropp

Programmering av inbyggda system. Kodningskonventioner. Viktor Kämpe

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar

Tentamen i Datakunskap NT

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

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

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

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

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut

OOP Objekt-orienterad programmering

Tentamen ges för: Tentamensdatum: Tid:

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

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

Tentamen Grundläggande programmering

Planering Programmering grundkurs HI1024 HT 2014

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011

C++-programmets beståndsdelar

TDDC76 - Programmering och Datastrukturer

JAVAUTVECKLING LEKTION 3

Byggstenar. C++-programmets beståndsdelar. C++-programmets beståndsdelar. Grundläggande datatyper

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

2 Pekare och dynamiska variabler.

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

Att använda pekare i. C-kod

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

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.

Transkript:

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 tal 2 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 2

Addera två tal Pseudokod starta mata in tal mata in tal 1 mata in tal 2 beräkna summa skriv ut resultat slut 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 3

Addera två tal - data Reservera minnesutrymme genom att deklarera variabler int tal1; int tal2; int resultat; 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 4

Addera två tal Kodning i C (++) #include <iostream.h> void main(void){ } // Deklaration av variabler int tal1, tal2, resultat; // Mata in tal // Beräkna summa // Skriv ut resultat Headerfil Kommentar 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 5

Addera två tal #include <iostream.h> void main(void){ // Deklaration av variabler int tal1, tal2, resultat; } // Mata in tal cin >> tal1; cin >> tal2; // Beräkna summa resultat = tal1 + tal2; // Skriv ut resultat cout << Resultat: << resultat; 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 6

Alternativ #include <iostream.h> void main(void){ // Deklaration av variabler int tal1, tal2; } // Mata in tal cout << Mata in två heltal --> ; cin >> tal1 >> tal2; // Beräkna summa // Skriv ut resultat cout << Resultat : << ( tal1 + tal2 ); 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 7

Datatyper - minne Variabler = dataobjekt i minnet char tkn = A ; int antal = 20; float f = 19,7; Olika datatyper tar olika stor plats i minnet f antal tkn A minneskartan 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 8

Datalagring i ANSI-C Datorns funktion Data in Bearbeta data Data ut In Bearbeta Ut 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 9

Operativsystemet arbetar med filer In Bearbeta Ut filer in - EXE -filer till minnet -datafiler till disk -datafiler till skrivare - EXE -filer till minnet - osv... filer ut 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 10

Operativsystemet arbetar med filer In Bearbeta Ut Operativsystemet laddar en EXE-fil som skall bearbeta data Denna EXE-fil kan ha sitt ursprung i en C-källkodsfil Operativsystemet tillhandahåller en infil varifrån programmet läser data Operativsystemet tillhandahåller en utfil till vilken programmet skriver data 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 11

Hur fångar man upp data i ett C-? program? källkod Bearbeta läsa data från infil EXE -fil skriva data till utfil 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 12

Skapa minne, variabel Första steget blir att skapa, deklarera en variabler /* Beräknar kapitaltillväxt på 10 år framåt eller bakåt */ #include <iostream.h> void TabellPaSkarmen( int, float ); int main ( void ) { float kapital ; const float RANTA = 3.5; minnestyp identifierare, namnet på variabeln int antalar; cout << "Insatt kapital och antal år?(-->1000 10)--> "; cin >> kapital, antalar; TabellPaSkarmen( antalar, kapital ); } return 0; 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 13

Namn på variabler - identifierare Siffror, _, bokstäver (gemena, versaler) går bra Ej å ä ö ü.. Variabelnamn är signifikanta för åtminstone de första 31 tecknen C skiljer på versaler och gemena, Kapital och kapital är inte samma variabel Reserverade ord ( nyckelord ) och får inte användas 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 14

Reserverade ord Reserverade ord kan inte användas som identifierare! auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 15

heltalstyper Variabeltyper - beror på vad man tänker lagra teckenlösa heltal ( 2 bytes lagrar talen [0, 65535] ) heltal med tecken ( 2 bytes lagrar talen [-32768, 32767]) tecken i texter ( ASCII-koden i 1 byte: 1000001 B = 65 D = A ) logiska värden, boolean ( = 0 falskt, allt annat är sant ) det lagrade värdet är exakt bitmönster ( 10011101 varje bit betyder något t ex tänd eller släckt lampa) flyttalstyper reella talen ( t.ex. 3.56E-10 = 3.56 10-10 ) det lagrade värdet är oftast en approximation 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 16

Variabeltyper heltalstyper i ANSI-C signed char minst 1 byte unsigned char minst 1byte [signed] short [int] minst 2 byte unsigned short [int] minst 2 byte [signed] int minst 2 byte unsigned [int] minst 2 byte [signed] long [int] minst 4 byte unsigned long [int] minst 4 byte [...] betyder, kan utlämnas unsigned ger teckenlöst heltal som är bra för att lagra stora positiva heltal och bitmönster 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan INT_SIZE.EXE 17 Presentation Paket

Hur lagrar man ett tecken, t. ex. A? det man lagrar är tecknets ASCII-kod som stoppas in i en variabel, minne av heltalstypen char (charcter = tecken). ASCII, American Standard Code for Information Interchange definierar variabel asciitecken char Variabeltyper heltalstyper i ANSI-C asciitecken = A ; asciitecken 1 0 0 0 0 0 0 1 1 byte i minnet 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 18

Teckenlagring - ASCII ASCII-Tabell hexadecimal kod, styrtecken ej utskrivna 0 1 2 3 4 5 6 7 8 9 A B C D E F 20! " # $ % & ' ( ) * +, -. / 30 0 1 2 3 4 5 6 7 8 9 : ; < = >? 40 @ A B C D E F G H I J K L M N O 50 P Q R S T U V W X Y Z [ \ ] ^ _ 60 ` a b c d e f g h i j k l m n o 70 p q r s t u v w x y z { } ~ 80 ƒ ˆ Š Œ Ž 90 š œ ž Ÿ A0 ª «B0 ± ² ³ µ ¹ º» ¼ ½ ¾ C0 À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï D0 Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß E0 à á â ã ä å æ ç è é ê ë ì í î ï F0 ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ Det finns flera standards för dessa (ej standard?) å Å ä Ä ö Ö OBS, ordningen! 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 19

Vad händer? char tecken; tecken = Q ; tecken = tecken + 2; cout << tecken; Vad skrivs ut? 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 20

Variabeltyper Flyttalstyper i ANSI-C, fördefinierade float? storleken är implementationsberoende, testa programmet nedan double minst lika stor som float long double minst lika stor som double används för att lagra de reella talen, noggrannheten är ej standard men skall motsvara minst 6 siffror i området [ 10-37, 10 +37 ] void void TabellPaSkarmen( TabellPaSkarmen( int int,, float float ); ); int int main main ( ( void void ) ) { { float float kapital kapital ; ; int int antalar; antalar; printf("insatt printf("insatt kapital kapital och och antal antal å scanf("%f%d", scanf("%f%d", &kapital, &kapital, &anta &ant TabellPaSkarmen( TabellPaSkarmen( antalar, antalar, kap ka Presentation Paket FLOATSIZ.EXE Presentation Package FLOAT.EXE Presentation Package DOUBLE.EXE MS PowerPoint 4.0 Paket L_DOUBLE.EXE 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 21

Fånga data från tangentbordet Tangentbordet ( CON ) är en textfil som genererar ASCII-koder Det behövs funktioner som konverterar ( tolkar ) den text som läses in och som lagrar det tolkade datat i en variabel (minne). Funktioner som klarar detta ligger i cin 0XFF lagra, fånga konvertera, tolka texten: 0XFF eller talet: 255? variabel???????????????????????? primärminne 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 22

Fånga data från tangentbordet cin >> ettheltal; 0XFF konvertera, tolka lagra, fånga texten: 0XFF eller talet: 255? variabel???????????????????????? primärminne 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 23

Skriva data till bildskärm Eftersom bildskärmen ( CON ) är en textfil ( i detta fall ) som tar ASCII-koder så behöves funktioner som konverterar binärdata och som hämtar datat från rätt variabel (minne). Funktioner som gör detta ligger i cout FF konvertera hämta texten: FF eller talet: 255? variabel 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1???????? primärminne 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 24

Skriva data till bildskärm cout << ettheltal; FF konvertera hämta texten: FF eller talet: 255? variabel 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1???????? primärminne 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 25

cin vad händer i detalj.. cin >> kapital >> antalar; Insatt kapital och antal år?(-->1000 10)-->1000 15 cin läser från textfilen CON (tangentbordsbufferten) Eko till skärmen! Package RÄNTAFKN.EXE 1 0 0 0 1 5 \n \r tangentbordsbuffert 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 26

Sammanfattning Variabler måste deklareras är namn (identifierare) på dataobjekt i minnet variabeltyp väljs efter vad som skall lagras enkla typer för heltal, tecken och flyttal Dataobjekt måste tolkas som datatyp i minnet vid läsning och skrivning från/till filer 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 27

Sammanfattning Heltalstyper finns för olika stora tal kan tolkas med och utan tecken Flyttalstyper finns för olika precision och storlek olika i olika operativsystem - testa! 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 28

Sammanfattning Teckentyper är heltal om en byte tolkas normalt som tecken 7 bitars ASCII är normal standard många standards finns för 8 bit Nytt är UNICODE 16 bit character set Det finns *många* standards för teckenkodning character encoding 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 29

Nästa gång Mer om enkla datatyper Operationer på data Typomvandling - hur farligt är det? Automatisk typomvandling Läsbar och självdokumenterande kod 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 30

Öva - Testa! Guruns bästa tips: Om du undrar hur något fungerar i C Skriv ett miniprogram! 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 31