6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

Relevanta dokument
Datalogi I, grundkurs med Java 10p, 2D4112, Fiktiv tentamen, svar och lösningar och extra kommentarer till vissa uppgifter 1a) Dividera förs

Datalogi I, grundkurs med Java 10p, 2D4112, Tentamen 29 november 2003, svar och lösningar

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

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Imperativ programmering

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

Program & programmering

Digital- och datorteknik

Föreläsning 2. Operativsystem och programmering

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

F2 Binära tal EDA070 Datorer och datoranvändning

Grundkurs i programmering - intro

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Flyttal kan också hantera vanliga tal som både 16- och 32-bitars dataregister hanterar.

SVAR TILL TENTAMEN I DATORSYSTEM, HT2013

PROGRAMMERINGSMETODIK

OOP Objekt-orienterad programmering

Föreläsning 8: Aritmetik och stora heltal

F2 Datarepresentation talbaser, dataformat och teckenkodning

Introduktion till programmering och Python Grundkurs i programmering med Python

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

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

DIGITALA TAL OCH BOOLESK ALGEBRA

Språket Python - Del 1 Grundkurs i programmering med Python

Imperativ programmering. Föreläsning 4

Datorsystemteknik DVG A03 Föreläsning 3

Föreläsning 1: Intro till kursen och programmering

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

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

Objektorienterad programmering

Programmering = modellering

Enkla datatyper minne

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Datorsystem. Tentamen

Datorsystem. Exempeltentamen

IT för personligt arbete F5

TDP002 - Imperativ programmering

Inledande programmering med C# (1DV402) Introduktion till programmering

IT för personligt arbete F6

Kort beskrivning av Sveriges första dator BESK

Introduktion till programmering. Programspråk och paradigmer

LAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M

TDP002 Imperativ programmering

Programmering A. Johan Eliasson

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

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.

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Variabler, värden och typer

Föreläsning 1: Intro till kursen och programmering

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

PROGRAMMERINGSMETODIK

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

Data, typ, selektion, iteration

Exempel på typer av datorspråk EXCEL

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Objektorienterad programmering, allmänt

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Introduktion till programmering

Datoraritmetik. Från labben. Från labben. Några exempel

Testning av program. Verklig modell för programutveckling

Talsystem Teori. Vad är talsystem? Av Johan Johansson

IE1205 Digital Design: F6 : Digital aritmetik 2

SKOLFS. beslutade den XXX 2017.

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Problemlösning. Planering av program. Konstruktion. Programmeringsmetaforer. Problemlösning. Programmering = Problemlösning

Variabler, värden och typer

Föreläsning 8: Aritmetik och stora heltal

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

TDIU01 - Programmering i C++, grundkurs

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Programmeringsteknik II

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

TDDE44 Programmering, grundkurs

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

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

SKOLFS. beslutade den -- maj 2015.

Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler

Datorsystem. Tentamen

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Klassdeklaration. Metoddeklaration. Parameteröverföring

Exempel på typer av datorspråk EXCEL

Grunderna i stegkodsprogrammering

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.

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Maskinorienterad Programmering /2011. Maskinorienterad Programmering 2010/11. Maskinnära programmering C och assemblerspråk

Tentamen i. TDDC67 Funktionell programmering och Lisp

Datorsystem. Övningshäfte. Senast uppdaterad: 22 oktober 2012 Version 1.0d

Det finns en hemsida. Adressen är

MIKRODATORTEKNIK 2012 INNEHÅLLSFÖRTECKNING

Föreläsning 5 5DV086 - Programspråk

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

Transkript:

Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor på boken Lunell: Datalogi-begreppen och tekniken Obs! Andra frågor än dessa kan komma på tentan! 1. Konvertera talet 186 till a) Binär form b) Hexadecimal form 2. På en dator med ordlängden 21 bitar (ingen realistisk ordlängd, detta är endast ett räkneexempel) lagras flyttal normaliserat med 12 bitars mantissa och 8 bitars karakteristika. 2-komplementmetoden används för negativa tal. a) Beskriv hur flyttalslagringen ser ut. Se till att få med vad som menas med normaliserad lagring, mantissa, exponent, karakteristika och 2-komplementmetoden. b) Visa hur det binära talet 100010.1 lagras som normaliserat flyttal med representationen ovan. c) Antag att A och d är flyttalsvariabler i något programspråk och antag att både Aoch d innehåller värden >0. Det logiska uttrycket A = A+d borde ha värdet sant om d=0 och värdet falskt om d6=0. Förklara varför A=A+d kan få värdet sant i ett program trots att d>0. 3. a) Vad är en algoritm? b) Vilka är de tre grundkonstruktionerna som används i algoritmer? Ge exempel på grundkonstruktionerna. Du får använda svenska, pseudokod eller något programspråk. c) Kan en ekvation, t.ex. 2x 4 19x +6 = 0, vara en algoritm? Motivera svaret! Endast ja eller nej som svar ger 0 poäng. d) Vad menas med komplexiteten hos en algoritm? e) Vad är pseudokod och varför använder man det? f) Vad är ett ohanterligt problem i algoritmsammanhang? 4. a) Vad menas med testning av program respektive felsökning i program? Klargör skillnaden! b) Vilka speciella krav ställs på testdata till ett program? c) Beskriv kort minst två metoder för felsökning i program. 5. Här följer namnen på 8 st programspråk som alla varit populära under någon period de senaste 40 åren: Algol60, C, Fortran, Java, Lisp, Pascal, Scheme, Simula a) Välj ut 4 språk och ordna dem efter deras tillkomstår, sätt äldsta språk först. b) Vilka två av språken är s.k. funktionella språk? c) Vilka två språk är mest lämpade för objektorienterad programmering? 1

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-printer ) g) avlusare ( debugger ) 7. Minnen a) Vad är primärminne respektive sekundärminne? Ge exempel på vad som brukar lagras i vardera minnestypen. b) Beskriv hur skivminnen är konstruerade och principerna för lagring av data på dessa. c) Beskriv hur ett virtuellt minne fungerar. Finns det någon egenskap hos ett program, som påverkar hur väl det fungerar med virtuellt minne? 8. Den konventionella datorn arbetar i princip rent sekventiellt och utför en instruktion i taget. Förklara genom en skiss av centralenheten hur en enskild instruktion utförs mer i detalj och vilka delar av datorn som då berörs. 9. a) Vad innebär multiprogrammering? b) System som använder sig av multiprogrammering måste ha en avbrotts mekanism. Vad är det? c) Beskriv och jämför programstyrd inmatning från tangenbord med avbrottsstyrd inmatning från tangentbord. Varför är avbrottsstyrning att föredra i samband med multiprogrammering? 10. Konvertera det hexadecimala talet (DA0) 16 till a) Decimal form (alltså till vårt vanliga sätt att skriva tal) b) Oktal form c) Binär form 11. Vad innebär redundans hos data? Ge exempel! Varför används data med redundans? 12. a) Vad är lågnivåspråk respektive högnivåspråk? Ange minst en viktig skillnad mellan dem. b) Ange en ungefärlig tidpunkt (±5 år) för när det första högnivåspråket började användas c) Vad är en Abstrakt Datatyp (ADT)? Kan man använda en sådan i Java? 2

13. En programmeringsmetodik som är vanlig vid programmering i imperativa språk som Pascal och C kallas för top-down. Hur arbetar man enligt denna metodik? 14. Vad är en databuss? Var används bussar? 15. a) Skriv det binära talet (10110110) 2 på decimal form (den vanliga) b) Skriv det binära talet (10110110) 2 på oktal form c) Skriv talet 29 på binär form 16. Beskriv principen för normaliserad flyttalslagring. Förklara speciellt vad mantissa, exponent, excess-n-metoden och karakteristika är. Du får gärna visa med ett exempel men det krävs inte för full poäng! 17. Vad betyder termen abstraktion i programmeringssammanhang? Vilken nytta har man av abstraktion? Ge två exempel på abstraktion. 18. Vad menas med syntaxen hos ett programspråk? Om du har ett syntaxfel i ett program, när upptäcks det senast? 19. Nämn minst tre olika typer av fel som kan finnas i ett program och något om hur/när man kan hitta och avhjälpa fel av de olika typerna. 20. Vad är primärminne respektive sekundärminne? Jämför dem vad gäller lagringskapacitet, åtkomsthastighet och kostnad. Du behöver inte ge några sifferuppgifter som svar, endast jämförelser av typen större, dyrare o.s.v. behövs. 21. Vid anrop av metoder (procedurer, funktioner) förekommer något som kallas aktiveringspost. Vad är det? 3

Svar och lösningar till vissa uppgifter samt hänvisningar till boken för övriga uppgifter 1. a)avsnitt 10.1, sid 208 211. Dividera 186 med 2 (heltalsdivision). Spara kvot och rest. Resten blir den minst signifikanta siffran i svaret, dvs. siffran längst till höger. Dela sedan kvoten med 2. Resten blir nästa siffra i talet. Upprepa tills en kvot blir 0. kvot rest 186=2 =93 0 93=2 =46 1 46=2 =23 0 23=2 =11 1 11=2 =5 1 5=2 =2 1 2=2 =1 0 1=2 =0 1 186 = (10111010) 2 b) Hexadecimal form fås genom att gruppera de binära siffrorna 4 och 4 (med början vid binärpunkten). Minst signifikanta siffran blir (1010) 2 = (10) 10 = (A) 16 Nästa siffra blir (1011) 2 = (11) 10 = (B) 16.Svar 186 = (BA) 16 2. a) Se Lunell, avsnitt 10.3, sid 217 218. Talet lagras som mb k b) Siffrorna som lagras i m blir 100010100000 då mantissan består av 12 bitar. Exponentenär6=(110) 2 Karakteristikan är då 6+2 7 =(110) 2 + (10000000) 2 = 10000110 2 och hela talets lagring med teckenbit, karakteristika och mantissa blir 0 10000110 100010100000 Mellanrummen är där endast för att förtydliga de olika delarna i lagringen. c) Vid beräkning av A + d måste d skrivas om med samma exponent (ochkarakteristika) som A. Det är fullt möjligt att d är så mycket mindre än A att d måste lagras som 0 med det påtvingade lagrings- formatet, exponent given av de stora talet A och ett begränsat antal siffor i mantissan. Vid obegränsad noggrannhet i lagringen av talen skulle problemet aldrig uppstå. 3. a) Lunell 2.1, sid 30. b) 2.4 figuren sid 35. c) Nej. En ekvation är inte en algoritm, då en algoritm är en beskrivning av de operationer som leder fram till en lösning. d) Komplexitet = hur tids- eller minnesåtgång växer med problemets storlek, se avsnitt 2.6 sid 39. e) Avsnitt 2.3, 2.4, sid. 33-34. f) Avsnitt 2.8, sid. 46. 4

4. a) Avsnitt 3.4, sid 60. b) Avsnitt 3.5. De 5 punkterna på sid 62 63 överlappar varandra. Man behöver inte svara med alla punkterna utan en sammanfattning av dem räcker. c) Avsnitt 3.6, sid 64 65 5. a) Enligt bilden sid. 76 är följande den korrekta tidsordningen: Fortran, Lisp, Algol60, Simula, Pascal, C, Scheme, Java Vilka 4 språk som helst i rätt ordning ger full poäng. b) Lisp och Scheme är funktionella språk c) Simula och Java är lämpade för objektorientering (men kan också användas rent imperativt). 6. a) Editor sid 107 b) Kompilator sid 96 c) Länkare sid 101 102 (bra figur nr 5.5 på sid 102) d) Interpretator sid 97, e) Korskompilator sid. 96 f) Formatterare sid. 109, g) Avlusare sid. 110 och sid. 65 7. a) Sid. 12 samt avsnitt 11.1, se även avsnitt 9.1 b) Avsnitt 6.7, sid 131 133 8. Se avsnitt 11.1, utgå från figurerna på sid. 228 och 230. 9. a) Avsnitt 6.4. b) Avsnitt 6.5 10. a)(da0) 16 = D 16 2 + A 16 1 +0 16 0 = 13 16 2 +10 16 1 +0 16 0 = 13 256 + 10 16 + 0 = 3488 11. Se sid. 156 157 12. a) Avsnitt 4.1 samt 5.1, sid 100. b) Avsnitt 4.1, sid 67, Svar: 1956 c) Avsnitt 4.2, sid 81. 13. Se sid 63. Där beskrivs visserligen testning top-down och bottom-up men resonemanget kan överföras till programutveckling. 14. Se avsnitt 11.1, Dataöverföring inom centralenheten, sid 235 236 5

15. a) (10110110) 2 =1 2 7 +0 2 6 +1 2 5 +1 2 4 +0 2 3 +1 2 2 +1 2 1 +0 2 0 = 2 7 +2 5 +2 4 +2 2 +2 1 =182 b) Gruppera ihop de binära siffrorna 3 och 3 med början vid binärpunkten. Vi får tre grupper: (10), (110) och (110). Gör om var och en till motsvarande oktala siffra. (10) 2 =2 8 ; (110) 2 =6 8 :Svar : (166) 8. c) Se lösningen till uppgift 1. Upprepad division med 2 ger: 29=2 =14, rest 1 14=2 =7,rest0 7=2 =3, rest 1 3=2 =1, rest 1 1=2 =0, rest 1 Restsiffrorna bildar det sökta binära talet. Den första restsiffran skall stå längst till höger i svaret: (11101) 2 16. Se fråga 2! 17. Se avsnitt 4.2 18. Se avsnitt 4.3 19. Feltyper: Syntaxfel (upptäcks vid kompilering), semantiska fel, logiska fel, exekveringsfel. Fel av de tre senare typerna upptäcks vid testning av programmet och hittas förhoppningsvis m.h.a. någon felsökningsmetod. Se vidare fråga 4! 20. Se fråga 7! 21. Se avsnitt 4.4, sid 91 6