översiktskurs (5DV031)
|
|
- Ann Jansson
- för 7 år sedan
- Visningar:
Transkript
1 Programmeringsteknisk översiktskurs (5DV031) Föreläsning 10
2 Innehåll Ändlig aritmetik Fler exempel på funktioner med arrayer som parametrar Läsanvisningar: Dessa bilder, kapitel 11
3 Många beräkningar är Val av modell Idealiseringar Fel i indata approximationer Mätvärden med begränsad noggrannhet Avrundningsfel Ändlig aritmetik Trunkeringsfel ett oändligt värde ersätts med en ändlig
4 Exempel Jordens yta beräknas med: A=4πr 2 Approximationer modelleras som en sfär radiens värde är ett resultat av tidigare beräkningar värdet π är ett oändligt värde som måste trunkeras värden och resultat i beräkningarna avrundas och dessutom så ökar felets storlek pga beräkningarna (bla multipliceras felen med 4)
5 Avrundningsregler Avkorta eller avrundning till närmast jämna? Fel fortplantas snabbt! Vancouver-exemplet Januari 1982 börsindex satt till 1000 November 1983 bottennotering 520 Index noterades med 3 decimaler och avhuggning och uppdaterades efter varje transaktion Korrekta beräkningar med avrundningar nästan dubblade index Ariane 5, 1996 Obemannad raket som exploderade 40s efter start En 16 bitars signed int tilldelades ett 64-bitars flyttal 16 bitar kan lagra max och talet var för stort Talet hade med raketens horisontella hastighet att göra
6 Avrundningsregler Amerikansk patriot missil i Gulf-kriget 1991 Datorns tid multiplicerades med 0.1 för att få tid i sekunder. 0.1 kan ej lagras exakt 24-bit tal medför avkortning som medförde fel på h körning gav ett fortplantat fel på 0.34s Raketen åker > 0.5 km på den tiden Hamnade i en amerikansk barack och dödade 28 soldater Sida med fler exempel:
7 Olika typer av fel Syntaxfel Grammatiska fel Felstavningar Upptäcks vid kompileringen Programkörningsfel(run-time error) Problem som uppstår under programkörning. Avslutar programmet Logiska/Semantiska fel (Tankefel) Problemet är löst på fel sätt, eller man har löst fel problem. Man får ett felaktigt resultat
8 Heltal(int) Datatypen int används tillsammans med char, short int och long int för att lagra heltal i C. Matematiskt sett finns det oändligt många heltal. På en dator måste det införas en begränsning på hur stora heltalen kan bli. Normalt sparas ett heltal (int) i ett maskin-ord, oftast 4 byte (4 * 8 = 32 bitar).
9 Heltal forts. Om int lagras som 4 bytes, betyder det att den kan anta 2 32 olika värden. Hälften av värdena används för att lagra negativa heltal och hälften för att lagra positiva heltal. Om i är en variabel av typen int, kan i anta heltalsvärden i intervallet [-2 31,2 31-1]. Eftersom variabler har begränsad lagringskapacitet kan man drabbas av overflow, t.ex. om man försöker multiplicera två variabler vars produkt blir större än det maximala värdet som en variabel kan lagra.
10 Overflow #include <stdio.h> #include <windows.h> #include <limits.h> int main(void){ int x=int_max; printf("%d\n",x); x=x+1; printf("%d\n",x); system("pause"); return 0; } kallin@cs.umu.se Varför blev det så här?
11 Heltalsrepresentation Alla variabler oavsett typ representeras internt i datorn som binära tal med ettor och nollor. Om vi antar att en int representeras med 2 byte (dock vanligare med 4 byte) på systemet blir den binära representationen: = = = =9
12 Bitvisa operationer I C kan man operera direkt på de enskilda bitarna med de så kallade bitoperatorerna. Logiska operatorer unary complement and & exclusive or ˆ inclusive or Shiftoperatorer left shift << right shift >> Bitvisa operatorer kan enbart utföras på heltalstyper (int,unsigned int, long, char,...).
13 Binärt komplement Med komplementet menas att alla bitar byter värde, dvs alla ettor blir nollor och alla nollor blir ettor. Den binära representationen av heltalet int a = ; ( ) är Uttrycket a blir således eller
14 Negativa tal Negativa tal representeras ofta enligt vad som på engelska kallas two s complement representation. Det innebär att ett negativt tal -n representeras som det binära komplementet till n
15 Addition exempel 1 I en byte för enkelhetens skull 3+(-2)=1 Notera att man struntar i den sista minnessiffran! kallin@cs.umu.se
16 Addition exempel =-128 Man får en overflow om de två sista minnessiffrorna är 01 (som ovan) eller 10. Nu vet vi varför blev kallin@cs.umu.se
17 Övriga heltalstyper short lagras oftast med 2 byte vanligen mindre intervall än int. long lagras oftast med 4 eller 8 byte vanligen större intervall än int. unsigned framför en heltalstyp (ex. unsigned int) innebär att enbart positiva tal kan lagras. Detta innebär också att intervallet för tal (positiva) som kan lagras fördubblas.
18 Typstorlek, sizeof Operatorn sizeof används för att veta hur många bytes som krävs för att lagra ett objekt. Objekt kan vara en datatyp (float), eller ett uttryck (a+b). sizeof(int) sizeof(a+b) sizeof returnerar ett heltal som anger hur många bytes som krävs för lagringen. C är flexibelt när det gäller storlekarna på datatyper vilket kan leda till dålig portabilitet av kod. Användandet av sizeof kan delvis undvika detta problem.
19 Lagring Följande gäller alltid på alla system. sizeof(char) == 1 sizeof(unsigned) == sizeof(signed) == sizeof(int) sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) ANCI C specificerar också att sizeof(int) >= 2 sizeof(long) >= 4
20 Konvertering Uttryck som x+y har ett värde och en datatyp. Om x och y är av typen int, blir x+y typen int. Om x och y är av typen short, blir x+y typen int. short konverteras alltid till int i uttryck.
21 Konvertering En char eller short (signed eller unsigned) kan användas där en int eller unsigned int förväntas. Ex: Om en funktion tar en int som argument, kan man skicka en char istället. Om däremot funktionen returnerar en int, så bör man inte ta emot det i en char. kallin@cs.umu.se
22 Aritmetiska konverteringar Om operanderna till en binär operator är av olika typ så kan en av dom konverteras. Antag att vi har: int i; float f; Uttrycket i+f i konverteras till en float och hela uttrycket får typen float.
23 Aritmetiska konverteringar Vid tilldelningar kan också konvertering ske. double d; d = i Värdet av i att konverteras till double och hela uttrycket blir double. En utökning av en variabel, som sker i fallet med d = i går ofta bra men däremot kan i = d orsaka problem. Decimaldelen av d kommer att försvinna och i kommer att tilldelas heltalsdelen.
24 Explicita konverteringar Explicita konverteringar (eng. casts) låter programmeraren byta typ på ett uttryck. Om vi antar att i är av typen int så kommer (double)i att konvertera värdet av i så att uttrycket har typen double. Variabeln i påverkas inte av konverteringen utan är fortfarande av typen int (long)('a' +1.0) f = (float)((int)d + i) d = (double) i/3; (double)(x = 77)
25 Flyttal - float En float har vanligtvis en ungefärlig precision av 6 signifikanta siffror och ett ungefärlig omfång (range) på till Representationen i maskinen blir (i bas 10 i.s.f. 2): 0.d 1 d 2 d 3 d 4 d 5 d 6 10 n där -38<n<38.
26 Flyttal - double En double har vanligtvis en precision av 15 signifikanta siffror och ett omfång på till x i satsen double x = ; /* 20 signifikant digits */ resulterar att x blir tilldelat ett värde som lagras enligt (15 signifikanta siffror)
27 Exempel Att reella tal inte lagras exakt kan ge upphov till vissa problem. Om vi antar att vår dator kan lagra en float med maximalt 5 signifikanta siffror. float x = 12345F; float y = 1e-1F; float z = 0 / (x + y e5F); /*problem*/ När uttrycket i nämnaren skall evalueras måste exponenten av de tre talen vara av samma storlek. x= e5 y= e5 x+y e5==0
28 Exempel 2 #include <stdio.h> #include <windows.h> #include <math.h> int main(void) { floor 0.2/0.2 = floor 0.4/0.2 = floor 0.6/0.2 = floor 0.8/0.2 = floor 0.2/ = floor 0.4/ = floor 0.6/ = floor 0.8/ = /* Funktionen floor ger oss närmsta heltalet mindre eller lika med ett reellt tal */ printf("floor %.1f/0.2 = %f\n", 0.2, floor(0.2/0.2)); printf("floor %.1f/0.2 = %f\n", 0.4, floor(0.4/0.2)); printf("floor %.1f/0.2 = %f\n", 0.6, floor(0.6/0.2)); printf("floor %.1f/0.2 = %f\n", 0.8, floor(0.8/0.2)); /* Såg ni att något blev konstigt?? Vi provar att räkna ut * differensen mellan beräkningen och det förväntade resultatet */ printf("\n\n"); printf("floor %.1f/ = %f\n", 0.2, floor(0.2/0.2)-1.0); printf("floor %.1f/ = %f\n", 0.4, floor(0.4/0.2)-2.0); printf("floor %.1f/ = %f\n", 0.6, floor(0.6/0.2)-3.0); printf("floor %.1f/ = %f\n", 0.8, floor(0.8/0.2)-4.0); } system("pause"); return 0; kallin@cs.umu.se
29 Flyttalslagring mer exakt Tecken (+/-) 0 betyder positivt 1 negativt Exponenten Högsta och lägsta float 1 [31] double 1 [63] Tecken Exponent Mantissa Bias 8 [30-23] 11 [62-52] 23 [22-00] 52 [51-00] exponenten reserverade för speciella tal. För att klara positiva och negativa har man en bias som adderas till exponenten Mantissa Ledande 1:an implicit 1.Mantissa*2 (Exponent-Bias) kallin@cs.umu.se
30 Exempel binärt 1100 = 1.100*2 3 Teckenbit 0 Exponent 127+3=130=> Mantissa Totalt: kallin@cs.umu.se
31 Exempel binärt = 1.0*2-3 Teckenbit 1 Exponent =124=> Mantissa Totalt: kallin@cs.umu.se
32 Overflow för float Det finns 5 talområden där float variabler inte kan hantera normalt: 1. Negativa tal mindre än -( ) (negative overflow) 2. Negativa tal större än (negative underflow) 3. Noll 4. Positiva tal mindre än (positive underflow) 5. Positiva tal större än ( ) (positive overflow) 0 Hanteras av ett tal där exponent och mantissa båda är 0 Finns också +- Infinity (Inf) och NotANumber (NaN) kallin@cs.umu.se
33 Intern talrepresentation Interna talrepresentationen påverkar noggrannheten 0.1 kan inte lagras exakt på det sätt som flyttalen lagras #include <stdio.h> int main(void) { double x; for(x=0;x!=10;x+=0.1) printf("%f\n",x); return 0; }
34 Utskrift från exemplet Loopen avslutas alltså inte då x blir 10. Detta pga att det resultatet inte blir exakt 10 i datorns interna representation.
35 Logiska bitvisa binära operationer Tabellen visar and (&), exclusive or (ˆ) och inclusive or ( ) på 1-bits fält. a b a & b a ˆ b a b
36 Logiska bitvisa binära operationer Uttryck Representation Värde a b a & b a ˆ b a b
37 Shiftoperatorer De två operatorerna till shiftoperatorerna måste vara av heltalstyp. Uttrycket expr1 << expr2 innebär att bitrepresentationen i expr1 shiftas expr2 steg till vänster. int d=1076; d << 1; d << 3; d << 29; d << 32; Vid vänstershift fylls 0:or på från höger
38 Exempel void bit_print(unsigned in) { unsigned mask=1<<8*sizeof(in)-1; while(mask) { printf("%d",mask&in?1:0); mask=mask>>1; } } int main(void) { bit_print(123); printf("\n"); return 0; }
39 Övningarna baseras på uppgifter från skrivsalstentor på en liknande kurs Exempel 1 Skriv en funktion som ur parametern instr kopierar en delsträng till parmetern utstr. Den delsträng som skall kopieras börjar i index start och är antal tecken lång. void substr(char instr[], int start, int antal, char utstr[]) kallin@cs.umu.se
40 Övningarna baseras på uppgifter från skrivsalstentor på en liknande kurs Exempel 2 Skriv en funktion som konverterar en sträng av tecken till dess heltalsmotsvarighet. För att göra funktionen lite mer generell så ska funktionen kunna ta en följd av tecken på valfri plats i strängen. int string2int(char tal[], int start, int stopp) start och stopp är index för första och sista tecknet i strängen tal som skall konverteras. Du får anta att funktionen anropas på ett rimligt sätt, dvs. att start<=stopp och att båda är korrekta index i arrayen. Du får också anta att det framräknade heltalet kan representeras i datatypen int. kallin@cs.umu.se
41 Övningarna baseras på uppgifter från skrivsalstentor på en liknande kurs Exempel 3 Skriv en funktion som tar en textsträng som parameter och vänder på den. Om funktionen anropas med strängen Program ska resultatet bli margorp. void kastaom(char str[]) Tips: Det finns en funktion som heter strlen som ger längden på en sträng! kallin@cs.umu.se
42 Övningarna baseras på uppgifter från skrivsalstentor på en liknande kurs Exempel 4 Givet följande main-funktion int main(void){ int i, tarning[5]; srand(time(0)); for (i=0; i < 5; i++) tarning[i] = rulla(); for (i=0; i < 5; i++) printf("%d: %d\n",i,tarning[i]); if (par(tarning)) printf("minst par!"); else printf("alla olika!"); printf("\nklart!\n"); return 0; } Skriv funktionerna rulla och par. kallin@cs.umu.se
Föreläsning 8: Aritmetik och stora heltal
2D1458, Problemlösning och programmering under press Föreläsning 8: Aritmetik och stora heltal Datum: 2006-11-06 Skribent(er): Elias Freider och Ulf Lundström Föreläsare: Per Austrin Den här föreläsningen
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 merHeltal(int) Programmeringsteknik 54
Heltal(int) Datatypen int används tillsammans med char, short int och long int för att lagra heltal i C. Matematisk sett finns det oändligt många heltal. På en dator måste det införas en begränsning på
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 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 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 för ingenjörer, VT06 2 Repetition Repetition -
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 merFöreläsning 8: Aritmetik och stora heltal
DD2458, Problemlösning och programmering under press Föreläsning 8: Aritmetik och stora heltal Datum: 2007-11-06 Skribent(er): Martin Tittenberger, Patrik Lilja Föreläsare: Per Austrin Denna föreläsning
Läs merGPT- föreläsning 10. För en vecka sedan Problemlösning på lägre nivå kan sortera funktioner Förra gången
GPT- föreläsning 10 För en vecka sedan Problemlösning på lägre nivå kan sortera funktioner Förra gången poparoramometoterorövoverorfoförorinongog Denna gång Olika typer av fel Felsökning och felsökningsverktyg
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 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 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 merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner
Läs merIE1205 Digital Design: F6 : Digital aritmetik 2
IE1205 Digital Design: F6 : Digital aritmetik 2 Talrepresentationer Ett tal kan representeras binärt på många sätt. De vanligaste taltyperna som skall representeras är: Heltal, positiva heltal (eng. integers)
Läs merLoopar och datatyper. Föreläsning 3
Loopar och datatyper Föreläsning 3 Dagens kluringar int x; printf("ange x:"); scanf("%d",&x); if(/*fyll i kod*/) printf("du angav x mellan 7 och 14"); int i=0; if(i++) i++; printf("%d",i++); //vad skrivs
Läs merLoopar och datatyper. Föreläsning 3
Loopar och datatyper Föreläsning 3 Dagens kluringar int x; printf("ange x:"); scanf("%d",&x); if(/*fyll i kod*/) printf("du angav x mellan 7 och 14"); int i=0; if(i++) i++; printf("%d",i++); //vad skrivs
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 merKlassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
Läs mern Kap 4.1, 4.2, (4.3), 4.4, 4.5 n Numerisk beräkning av derivata med n Felen kan t ex vara avrundningsfel eller mätfel n Felet kan mätas
Datoraritmetik Beräkningsvetenskap I/KF Kursboken n Kap 4., 4., (4.3), 4.4, 4. n I kap 4.3 används Taylorutvecklingar. Om du ännu inte gått igenom detta i matematiken, kan du oppa över de delar som beandlar
Läs merParameteröverföring. Exempel. Exempel. Metodkropp
Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I
Läs merDatoraritmetik. Från labben. Från labben. Några exempel
Datoraritmetik Beräkningsvetenskap I Från labben Två huvudtyper av fel: diskretiseringsfel och avrundningsfel Olika sätt att mäta fel: relativt fel, absolut fel Begreppen ε M, Inf, NaN, overflow, underflow,
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 merDigitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.
Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra
Läs 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 meröversiktskurs (5DV031)
Programmeringsteknisk översiktskurs (5DV031) Föreläsning 5 Innehåll Indexerade variabler Arrayer, sortering Läsanvisningar: Kapitel 6.1-6.3 Ett problem Hur sparas data T.ex. när man vill spara resultaten
Läs merDigital- och datorteknik
Digital- och datorteknik Föreläsning #7 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Aritmetik i digitala system Speciella egenskaper: Systemet
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 merBinär addition papper och penna metod
EDA4 - Digital och Datorteknik 9/ EDA 4 - Digital och Datorteknik 8/9 Dagens föreläsning: Aritmetik, lärobok kapitel 6 Ur innehållet: hur man adderar och subtraherar tal i det binära talsystemet hur man
Läs merDigital- och datorteknik
Digital- och datorteknik Föreläsning #7 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Speciella egenskaper: Systemet arbetar med kodord (s k
Läs merProgrammering, 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 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 merDatorsystemteknik DVG A03 Föreläsning 3
Datorsystemteknik DVG A03 Föreläsning 3 Datoraritmetik Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Hur stora tal kan vi få med N bitar? Största
Läs merJohan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen
Tentamen för teknisk kemi, 10p, moment 1 29 november 1999 Skrivtid 9-15 Hjälpmedel: av följande böcker. - U. Bilting och J. Skansholm: Vägen till C - A. Kelley & I. Pohl: A Book on C Maxpoäng: Gräns för
Läs mer7 november 2014 Sida 1 / 21
TANA09 Föreläsning 2 Talrepresentation i datorer. Flyttalssystem. Datoraritmetik och Beräkningsfel. Beräkningsfelsanalys och Kancellation. Serier och Resttermsuppskattningar. Tillämpning - Beräkning av
Läs merDigital Aritmetik Unsigned Integers Signed Integers"
Digital Aritmetik Unsigned Integers Signed Integers" Slides! Per Lindgren! EISLAB! Per.Lindgren@ltu.se! Original Slides! Ingo Sander! KTH/ICT/ES! ingo@kth.se! Talrepresentationer" Ett tal kan representeras
Läs merHeltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit
Fler byggstenar Heltalsrepresentation Fyra heltalstyper Intern data representation Typomvandlingar Fler operatorer VŠljande & upprepande satser Tecken-bit by te t short t int t 7 bitar 15 bitar 31 bitar
Läs merDatoraritmetik. Binär addition papper och penna metod. Binär subtraktion papper och penna metod. Binär multiplikation papper och penna metod
inär addition papper och penna metod Dagens föreläsning: Lärobok, kapitel rbetsbok, kapitel Ur innehållet: hur man adderar och subtraherar tal i det binära talsystemet hur man kan koda om negativa binära
Läs merProgrammering, grundkurs, 8.0 hp HI1024, omtentamen, TEN1. Tisdagen den 7 juni 2011,
Programmering, grundkurs, 8.0 hp HI1024, omtentamen, TEN1 Tisdagen den 7 juni 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 inom C programmering.
Läs merProgrammering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world
Programmering i C Målsättning Introducera programmering i C för de som inte har någon erfarenhet av C eller C++. Litteratur Kernighan, Ritchie: The C Programming Language, Second edition, Steve Oualline:
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 meri LabVIEW. Några programmeringstekniska grundbegrepp
Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar
Läs merPROGRAMMERING-Java Omtentamina
PROGRAMMERING-Java Omtentamina Nicolina Månsson 2007-08 13 Tentamensinstruktioner Poängsättning Hela tentamen omfattar 41 poäng. Poäng för varje uppgift står angivet inom parentes före varje uppgift. -
Läs merFlyttal kan också hantera vanliga tal som både 16- och 32-bitars dataregister hanterar.
FLYTTAL REAL Flyttal används i datorsystem för s k flytande beräkning vilket innebär att decimalkommat inte har någon fix (fast) position. Flyttal består av 2 delar (mantissa och exponent). När ett datorsystem
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 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 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 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 merTDDC77 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 merIteration while-satsen
Datatypen double TDA143 I1 Programmerade system Föreläsning 3 (OH-bilder 3) Iteration while-satsen Christer Carlsson I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna,
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 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 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 merF2 Datarepresentation talbaser, dataformat och teckenkodning
F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Jonas Wisbrant Datarepresentation I en dator lagras och behandlas all information i form av binära tal ettor och nollor.
Läs merObjektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Java Språket Utmatning av Sträng litteraler Variabler
Läs 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 merÖvning från förra gången: readword
(9 september 2010 T4.1 ) Övning från förra gången: readword /** readword.c * * int readword(char w[], int n) { * * Läser tecken tills en bokstav påträffas. * Läser och lagrar sedan högst n-1 bokstäver
Läs merF2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!
F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Von Neumann-arkitekturen Gemensamt minne för programinstruktioner och data. Sekventiell exekvering av instruktionerna.
Läs merProgramstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser
// En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa
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 mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val
732G11 Linköpings universitet 2011-01-26 1 2 3 4 Program recept 1 spaghetti = 100; 2 salt = 1; 3 olja = 5; 4 köttbullar = 8; 5 ketchup = 0,5; 6 koka(salt, spaghetti); 7 micra(köttbullar); 8 Om(micron ==
Läs merAgenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då
Agenda Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer Övningar nu och då 1 Motivering I de flesta problem ingår att hantera multipla data I de
Läs 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 merSpråket Python - Del 1 Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR
Läs merUlf Assarsson. Grundläggande C-programmering del 2 Pekare och Arrayer. Läromoment:
Grundläggande C-programmering del 2 Pekare och Arrayer Ulf Assarsson Läromoment: Pekare Absolutadressering (portar): typedef, volafle, #define Arrayer av pekare, arrayer av arrayer Hemuppgi9er: v2. Föregående
Läs merÖvning2. Variabler. Data typer
Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =, ,!=,!) -String hur man
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 merFörenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4
Ext-6 (Ver 2010-08-09) 1(5) Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4 Tecken-beloppsrepresentation av heltal Hur skall man kunna räkna med negativa tal i ett digitalt system,
Läs merTentamen 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 merTentamen i Programmering grundkurs och Programmering C
1 of 8 Ö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 merObjektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6
Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner
Läs merFöreläsning 3. Iteration while-satsen
Föreläsning 3 Iteration while-satsen Datatypen double I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har
Läs merFöreläsning 8: Aritmetik I
DD2458, Problemlösning och programmering under press Föreläsning 8: Aritmetik I Datum: 2009-11-03 Skribent(er): Andreas Sehr, Carl Bring, Per Almquist Föreläsare: Fredrik Niemelä 1 Flyttal Att representera
Läs merDagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler
21-1-2 1 Dagens föreläsning Hur fungerar ett Lisp system intern struktur av symbolen, tal, listan pekare - delade strukturer - eq minneshantering fri lista - sophämtning/garbage collection stack Diverse
Läs merProgrammering av inbyggda system. Pekare och Arrayer. Viktor Kämpe
Pekare och Arrayer Viktor Kämpe Pekare Pekarens värde är en adress. Pekarens typ berättar hur man tolkar bitarna som finns på adressen. unsigned char* pek 0x3026 0x3026 0110 0001 typ värdet är en adress...
Läs merTeknisk Beräkningsvetenskap I Tema 1: Avrundning och populationsmodellering
Teknisk Beräkningsvetenskap I Tema 1: Avrundning och populationsmodellering Eddie Wadbro 5 november 2014 Eddie Wadbro, Tema 1: Avrundning och populationsmodellering, 5 november 2014 (1 : 21) Innehåll Datoraritmetik
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 merC-programmering, föreläsning 2 Jesper Wilhelmsson
C-programmering, föreläsning 2 Jesper Wilhelmsson Funktioner void Globala och lokala variabler, scope static Arrayer Strängar ASCII, ANSI Argument till main Slumptal Funktioner Nu är det dags att börja
Läs merProgrammering för språkteknologer I, VT2012. Rum
Programmering för språkteknologer I, VT2012 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.lingfil.uu.se/~evelina/uv/uv12/pst1/ Idag - Kursplan - Börja programmera - Lokala variabler - aritmetiska
Läs merTentamen i Programmering grundkurs och Programmering C
1 of 6 Ö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 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 merTentamen 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 merDigital- och datorteknik
Digital- och datorteknik Föreläsning #24 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Allmänt Behovet av processorinstruktioner för multiplikation
Läs merVariabler 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.
2 Enkla datatyper Att skriva ett program innebär att man ska tillverka en plan för att bearbeta data eller information på något sätt Programmering handlar om data och bearbetning av data Data kan vara
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 merTentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011
1 of 7 Ö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 merJAVAUTVECKLING LEKTION 3
JAVAUTVECKLING LEKTION 3 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Numeriska typer Inläsning av numerisk data Numeriska typomvandlingar Standardklassen Math Villkorskonstruktioner
Läs merFö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 merTentamen 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 merLAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M
TANA21+22/ 5 juli 2016 LAB 1. FELANALYS 1 Inledning I laborationerna används matrishanteringsprogrammet MATLAB. som genomgående använder dubbel precision vid beräkningarna. 1.1 Innehåll Du ska 1. bestämma
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 merFunktioner och programstruktur. Föreläsning 5
Funktioner och programstruktur Föreläsning 5 Dagens kluring int v[10]=1,2,3,4,5,6,7,8,9,10; int i; for(i=0;i
Läs merStruktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik
Digitalteknik 3p, vt 01 Struktur: Elektroteknik A Kurslitteratur: "A First Course in Digital Systems Design - An Integrated Approach" Antal föreläsningar: 11 (2h) Antal laborationer: 4 (4h) Examinationsform:
Läs merUppgift 1 ( Betyg 3 uppgift )
2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal
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 merTentamen i Programmering grundkurs och Programmering C
1 of 7 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen fredag 15
Läs merE02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I
E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition Kurs: 1dv403 Webbteknik I Johan Leitet E02 - "The Review" Dagens agenda Identifierare Kommentarer Variabler Datatyper Operatorer Villkorssatser
Läs merFunktioner och programstruktur. Föreläsning 5
Funktioner och programstruktur Föreläsning 5 Dagens kluring int v[10]=1,2,3,4,5,6,7,8,9,10; int i; for(i=0;i
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 merStatistik över heltal
Övningsuppgift Statistik över heltal Steg 2 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande
Läs merDynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar
Dynamiskt minne Agenda Vad är dynamiskt minne Motivering Hur gör man i C Övningar Minne Datorns primärminne används till olika ändamål De flesta system partitionerar minnet efter användningen: Programkoden
Läs mer