PC-teknik, 5 p LABORATION FILHANTERING
|
|
- Per Åström
- för 8 år sedan
- Visningar:
Transkript
1 PC-teknik, 5 p LABORATION FILHANTERING Laborationsansvariga: Anders Arvidsson Utskriftsdatum: Laborant(er):
2 1 Syfte Laborationen ska illustrera möjligheten att använda funktioner i DOS för att läsa och skriva filer. Dessutom kommer filformatet för bitmap att gås igenom. 2 Genomförande Laborationen genomförs individuellt eller i grupper om två studenter. Som hjälp används föreläsningsanteckningarna, Art of Assembler, Software Interrupts och lathunden. OBS! Föregående laboration ligger till grund för denna och måste vara avklarad innan denna påbörjas! I PingPong finns filer som används till vissa av uppgifterna. Lab-PM finns även i elektronisk form, vilket underlättar kopiering av programexempel. Redovisa delresultat för labhandledaren, som markerar detta med en signatur i ditt lab-pm. Det kan t ex vara lämpligt att redovisa vid varje rubriknivå 2. Redovisning av hela laborationen bör ske senast en vecka efter laborationstillfället. 2
3 3 Laborationsuppgifter Uppgifterna löses i Pacific C. Anges inget annat så ska uppgiften lösas med assembler inom #asm - #endasm. 3.1 Öppna, läsa och stänga filer I PingPong finns en C/asm-fil, filh.c, samt en textfil testfil.txt. Funktionerna för filhantering är genomgångna på föreläsningen. Se efter vilka funktioner för interrupt 21H som förekommer i filh.c och leta efter information om dessa i Software interrupts och AoA, kapitel 13. Utgå från main() och studera hela koden så du ser hur funktionerna används. Placera textfilen i lämplig katalog (se sökväg i koden) och testkör programmet. Förklara vad alla siffror betyder (ASCII-symboler mm) som uppträder på utskriften när programmet körs. Utskrift: Förklaring (eller ASCII): pos 0 = pos 1 = pos 2 = pos 3 = pos 4 = pos 5 = pos 6 = pos 7 = pos 8 = pos 9 = EOFtest = 3
4 3.2 Skapa en textfil INT 21H Function 5BH Create new File Läs om ovanstående interrupt i dokument Software Interrupts i pingpong. Funktionen skapar en ny fil med filnamnet som pekas ut av DX. Om allt går som det ska fås en filehandle i AX. En filehandle är ett nummer som används för att hänvisa till filen. Om något går snett sätts carryflaggan och en felkod lagras i AX. Se nedanstående exempel. #include <stdio.h> char filename[]="g:\\testfil.txt"; int filehandle; char error; int error_nr; //Sökväg till filnamn (OBS! dubbla //backslash \\) //Variabel som lagrar filehandle //Sätts till 1 om något går fel //Variabel som innehåller felkod void createfile(void) #asm mov _error,#0,byte ;Nollställ felflagga mov ah,#05bh ;Create new file mov cx,#0 ;Normal mov dx,#_filename ;peka DX på filnamn int #21H ;Anropa och skapa fil jnc createstop ;Kolla om något gick fel mov _error_nr,ax ;Lagra felkod i error_nr mov _error,#1,byte ;Sätt felflagga createstop: mov #endasm _filehandle,ax void main(void) createfile(); if(error) printf( Fel nr %d vid createfile\n,error_nr); else printf( OK! Filehandle: %d vid createfile\n,filehandle); Skriv in programmet, kompilera och kör. Kontrollera att filen skapas. Kör programmet igen, fås något felmeddelande, i så fall vilket? Felet beror alltså på att filen redan finns. Du måste därför ta bort den varje gång du kör programmet för att inte få ett felmeddelande. Det kan t.ex. göras med doskommandot del g:\testfil.txt. I AoA kap 13 beskrivs interrupt 21H funktion 3CH Create File. Det som skiljer denna funktion mot funktion 5BH är att den inte ger något felmeddelande om filen redan finns. Den kommer helt enkelt att skriva över den gamla filen. 4
5 3.2.2 INT 21H Function 3EH Close File Ovanstående program är inte riktigt bra. Filen skapas och en filehandle fås. För att tala om för operativsystemet att filen inte används måste den stängas. Detta kan göras med dosinterrupt 21H funktion 3EH Close File. Läs om interruptet i dokument Software Interrupts och lägg till en funktion som stänger filen INT 21H Function 40H Write to File or Device Läs om interruptet i dokumentet Software Interrupts. Lägg sedan till nedanstående funktion till ditt program. char tkn; void writefile(void) #asm mov ah,#40h ;Write to File mov bx,_filehandle mov cx,#1 ;antal tecken som skall skrivas mov dx,#_tkn ;adress till tkn i dx mov _tkn,# A,byte ;tecknet A i tkn int #21H ;anropa interrupt #endasm mov ah,#40h ;Write to File mov cx,#1 ;antal tecken som skall skrivas mov dx,#_tkn ;adress till tkn i dx mov _tkn,# B,byte ;tecknet B i tkn int #21H ;anropa interrupt Moidifiera sedan huvudprogrammet enligt följande: void main(void) createfile(); if(error) printf( Fel nr %d vid createfile\n,error_nr); else printf( OK! Filehandle: %d vid createfile\n,filehandle); writefile(): closefile(); Öppna sedan filen testfil.txt med notepad eller något liknande program och kontrollera innehållet. 5
6 3.2.4 Från tangentbord till fil Gör ett program som skapar en fil, läser in ett antal tecken från tangentbordet och sparar dem i filen. Filen skall sedan stängas. Inläsning av tecken skall ske med dosinterrupt 21H Funktion 01H Character Input With Echo. Efter att ett tecken lästs in ska det skrivas till filen och sedan ska programmet vänta på inmatning av nästa tecken. Inläsning ska avslutas om en funktionstangent trycks ned. Då ska filen stängas med closefile. Kontrollera att programmet fungerar genom att öppna textfilen i en editor. 3.3 Läsa en textfil I detta avsnitt kommer du att skriva ett program som läser din nyss skapde fil och skriver ut den på skärmen. Läs därför om följande dosinterrupt i dokumentationen (AoA kap 13 och Software interrupts). INT 21H Function 3DH Open File INT 21H Function 3FH Read File or Device INT 21H Function 02H Character Output Utskrift av fil Skriv ett program som öppnar filen som skapdes i föregående uppgift med Open File. Läs sedan in ett tecken med Read File och skriv ut det med Character Output. Läs sedan in ytterligare ett tecken och skriv ut. Detta upprepas tills End Of File nås, då skall filen stängas med Close File. Hur man detekterar EOF står i AoA kap
7 3.4 Bitmap Filformat En bitmapfil kan indelas i fyra huvudblock: Filhuvud Infohuvud Palettinfo Bitmap data I filhuvudet finns bl.a. information om filstorlek och på vilken position i filen bitmapdatat börjar. Pos (byte nr i fil) Storlek (bytes) Standardvärde Syfte 0 2 0x4D42 Måste alltid vara BM för att visa att det är en bitmapfil Specificerar filstorlek Tal som visar offset från filens början till bitmapdata I infohuvudet finns diverse information om bildens storlek och antal färger. Infohuvudet börjar på position 14 i filen. I en normal bitmapfil börjar paletteinfo på position 54 i filen. Här definieras paletten, dvs vilka färger som finns till förfogande i bilden. Varje färg ligger lagrad som 4 byte innehållande intensiteterna för röd, grön och blå, samt en oanvänd byte. I den grafikmode som används kan 256 färger användas, men dessa väljs ur en palett bestående av 256 k (2 18 ) färger. Paletten skrivs till grafikkortets D/A-omvandlare som genererar färgerna på skärmen. (Se senare kodexempel.) Varje byte (i bitmap data) som bestämmer bildpunktens färg pekar sålunda ut en position i paletten, där en blandning av 6 bit från vardera färg finns definierad. Med varje bitmapbild följer en egen palett, vilket kan ge problem vid samtidig visning av flera bilder skapade i olika program. Själva bilden ligger i blocket bitmap data. Detta block börjar på position 1078 i en 256-färgers bitmap. Betrakta bilden nedan: 7
8 Detta är bilden som den visas på datorskärmen. När bilden lagras i filen lagras först den understa pixelraden från vänster till höger (rad 200 i en 320*200 bitmap). Sedan lagras rad 199 o.s.v. Det innebär att i filen ligger bilden lagrad enligt figuren nedan. Det är alltså viktigt att tänka på var man börjar rita upp den inlästa bilden. Mer om BMP-formatet (fast med felaktig uppgift om ordningen på färgerna) står att läsa på: Uppgift 3 Du skall nu modifiera ett befintligt program så att en bitmapbild läses in och ritas upp på skärmen. Hämta bitmapfilen dilbert.bm från PingPong och lägg den på ditt konto under g:\pacific. (Filen är modifierad så att den inte går att öppna med ett vanligt ritprogram ens om man återställer filtillägget.) Hämta sedan filen bmpstud.c och öppna den i Pacific C. Programmet består av ett antal subrutiner och ett huvudprogram skrivet i assembler. Eftersom laborationen handlar om filhantering är resterande delar redan skrivna. Du behöver bara komplettera programmet med asm-kod för filhantering enligt specifikationen längre ner. (Börja gärna med att läsa om huvudprogrammet.) Programmet har följande grundstruktur: #include <stdio.h> int storees,oldes; //Variabler som lagrar pekare till extra-segment char filename[]="g:\\pacific\\dilbert.bm"; int filehandle; unsigned char rowdata[320]; //Pixeldata för en rad unsigned int pos; //Position för filpekare unsigned char row; //Visar vilken rad som skall skrivas //till bildminnet char palette[1024]; //array för palettdata int error; //Variabel för felkod void subrutiner(void) urn; #asm ;openfile - öppnar filen angiven av variabeln filename ; filehandle sparas i variabeln filehandle ; om något går fel lagras felkod i error ; annars sätts error till noll openfile: //*Kompletteras* 8
9 ;seek - Flyttar filpekaren till en viss position i filen ; positionen pekas ut av variabeln pos seek: //*Kompletteras* ;readrow - Läser in en skärmrad (320 bytes) med bmp-data och lägger ; den i arrayen rowdata readrow: //*Kompletteras* ;closefile - Stänger filen som anges av filehandle closefile: //*Kompletteras* ;setgfx setgfx: //Finns i fil - Ställer in grafikmod 320*200, 256 färger ;setpalette - Hämtar paletten från bitmapfilen och lägger den i ; grafikminnet setpalette: //Finns i fil ;writerow - skriver en rad med pixeldata till bildminnet ; raden specifieras av variabeln row writerow: //Finns i fil ;resetgfx - Återställer grafikläge resetgfx: //Finns i fil #endasm void main(void) #asm call openfile ;öppna bitmap-fil cmp _error,#0,word ;kontrollera om något gått fel jne err call setgfx ;ställ in grafikläge 9
10 call setpalette ;ställ in palette mov _pos,#1078,word ;peka p första position i bmp-data call seek mov _row,#199,byte ;peka på sista rad på skärmen l1: call readrow ;läs in en rad med bmp-data call writerow cmp _row,#0,byte ;kolla om vi skrivit ut sista rad je stop ;i så fall - avsluta dec _row,byte ;annars - minska rad jmp l1 stop: mov ah,#0 ;vänta på knapptryckning int #16H err: #endasm call resetgfx ;Återställ grafikläge call closefile ;stäng fil if(error) printf( Fel nr %d vid openfile\n,error); getchar(); Här följer en genomgång av vilka subrutiner som skall kompletteras och i stora drag hur. Openfile: Använd dosinterrupt 21H funktion 3DH Open File för att öppna filen som anges av den globala variabeln filename. Glöm inte att spara undan filehandle. Om carry-flaggan sätts har något gått fel, lagra då felkod i den globala variabeln error. Tänk på att error annars skall nollställas. Seek: Läs om dosinterrupt 21H funktion 42H Seek i AoA kap Med detta interrupt kan man alltså ställa filpekaren på en viss position i filen. När nästa läsning av filen sker görs det från den aktuella positionen. Skriv subrutinen så att filpekaren ställs på den position som pekas ut av den globala variabeln pos. Tänk på att både cx och dx används för att bestämma position. Nollställ därför cx och lägg pos i dx. Readrow: Använd dosinterrupt 21H Funktion 3fH Read File till den här subrutinen. När rutinen anropas ska den läsa in 320 bytes data från bitmapfilen och lägga dem i arrayen rowdata[]. Closefile: Denna subrutin skall stänga bitmapfilen med dosinterrupt 21H funktion 3EH Close File. 10
11 Huvudprogrammet, main Huvudprogrammet börjar med att bitmapfilen öppnas och grafikläge och palett ställs in. Filpekaren ställs sedan på början av bitmap-datat genom att startpositionen lagras i pos och subrutinen seek anropas. Talet 199 lagras sedan i den globala variabeln row för att peka på den nedersta raden på skärmen (d v s den rad som lagrats först i bilden). En rad bitmap-data läses genom att subrutinen readrow anropas och sedan skrivs denna ut på skärmen med writerow. Därefter minskas row med ett och processen upprepas tills alla 200 raderna skrivits ut. Testkör och bli stum av beundran... Övriga kommentarer Studera gärna writerow ingående för att repetera pekare och hantering av grafikminne. Övriga delar av koden, t ex hur paletten sätts, kan studeras närmare om dessa delar behövs i kommande valfria programmeringsuppgift. 11
PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION
PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION Laborationsansvarig: Anders Arvidsson Utskriftsdatum: 2005-08-31 Laborant(er): 1 Syfte Laborationen ska ge studenten möjlighet att genom assemblerinlägg
Läs merTentamen PC-teknik 5 p
Tentamen PC-teknik 5 p Lösningar och kommentarer OBS! Denna version av tentan är främst avsedd för dem som gick kursen HT-02. En parallell tentamen i E103 är något anpassad för dem som gick kursen tidigare.
Läs merTentamen PC-teknik 5 p
Tentamen PC-teknik 5 p Namn:. Klass:... Program: Di2, Em3, Et3 Datum: 03-08-15 Tid: 13:30-18:30 Lokal: E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific C
Läs merTentamen PC-teknik 5 p Lösningar och kommentarer
Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3, Et3 Datum: 04-08-10 Tid: 13:30-18:30 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific
Läs merTentamen PC-teknik 5 p
Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3, Et3 Datum: 04-01-12 Tid: 13:30-18:30 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific
Läs merLaboration 3 HI1024, Programmering, grundkurs, 8.0 hp
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen
Läs merTentamen PC-teknik 5 p Lösningar och kommentarer
Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3 Datum: 06-01-12 Tid: 13:30-18:30 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific
Läs merProgrammeringsteknik med C och Matlab
Programmeringsteknik med C och Matlab Kapitel 6: Filhantering Henrik Björklund Umeå universitet 13 oktober 2009 Björklund (UmU) Programmeringsteknik 13 oktober 2009 1 / 22 Textfiler Filer är sekvenser
Läs merProgrammeringsteknisk översiktskurs för yrkeshögskoleprogram
Programmeringsteknisk översiktskurs för yrkeshögskoleprogram Föreläsning 12 Våren 2005 Innehåll Palindrom Hur man hittar fel i program, debuggning Felhantering, hur man förhindrar program att krascha Ev.
Läs merSystemkonstruktion LABORATION REALTIDSPROGRAMMERING
Systemkonstruktion LABORATION REALTIDSPROGRAMMERING Laborationsansvariga: Anders Arvidsson, Björn Lundblad Utskriftsdatum: 2002-10-31 Laboranter: 1 Syfte Denna laboration syftar till att öva användningen
Läs merLaboration 3 HI1024, Programmering, grundkurs, 8.0 hp
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen
Läs merTentamen PC-teknik 5 p
Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3, Et3 Datum: 02-10-13 Tid: 08:00-13:00 Lokal E104 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific
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 merLaboration 3 HI1024, Programmering, grundkurs, 8.0 hp
Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp Dataingenjörsprogrammet, elektroingenjörsprogrammet och medicinsk teknik KTH Skolan för Teknik och Hälsa Redovisning: Se Kurs-PM om hur redovisningen
Läs merHI1024 Programmering, grundkurs TEN
HI1024 Programmering, grundkurs TEN2 2016-01-09 KTH STH Haninge 8.15-13.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King
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 merAtt 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 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 merTentamen PC-teknik 5 p Lösningar och kommentarer
Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3 Datum: 05-10-22 Tid: 09:00-14:00 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific
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 merLösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13.00. Omtentamen i Programmering C, Fri, Kväll, 050108.
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13.00. Denna tenta kommer att vara färdigrättad Fr 14/1 och kan då hämtas på mitt tjänsterum,
Läs merPlanering Programmering grundkurs HI1024 HT 2015 - data
Planering Programmering grundkurs HI1024 HT 2015 - data Föreläsning V36 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning
Läs merFöreläsning 3. Programmering, C och programmeringsmiljö
Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator
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 merFöreläsning 7: Filer
Genomgånget på FÖ: Föreläsning 7: Filer Undantag: Liten mall för undantag ("exceptions") och vad man har det till. Dock inte med betoning på allt, men det väsentliga är upptaget. Filer: P. Open(filvar,
Läs merPlanering Programmering grundkurs HI1024 HT TIDAA
Planering Programmering grundkurs HI1024 HT 2016 - TIDAA Föreläsning V35 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning
Läs merSträngar. Strängar (forts.)
Strängar En sträng i C är helt enkelt en array av char: char namn[20]; För att få strängar att bete sig som om de vore av dynamisk längd markeras strängens slut med null-tecknet \0 : J o z e f S w i a
Läs merLabb 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 merFöreläsning 13. In- och utmatning
Föreläsning 13 In- och utmatning Dagens kluring Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar
Läs merBesvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok
Namn: Laborationen godkänd: Laboration 2. Cacheminne Laborationens syfte I laborationen ska du bekanta dig med cacheminnen. Genom laborationen fås kunskap om hur cacheminnen är konstruerade och hur de
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 merDeklarera en struct som kan användas för att representera en rät linje
Deklarera en struct som kan användas för att representera en rät linje Använd den I main för att deklarera en variabel som du initierar så att den representerar en linje som går genom punken (0,2) och
Läs merTentamen PC-teknik 5 p Lösningar och kommentarer
Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, (Em3, Et3) Datum: 04-10-15 Tid: 13:30-18:30 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund,
Läs merUppgift 1 (vadå sortering?)
2011-06-08.kl.14-19 Uppgift 1 (vadå sortering?) Du skall skriva ett program som sorterar in en sekvens av tal i en vektor (en array ) enligt en speciell metod. Inledningsvis skall vektorn innehålla endast
Läs merUppgift 1a (Aktiekurser utan poster)
Uppgift 1a (Aktiekurser utan poster) Vi har lite olika upplägg i de kurser vi håller och i vissa kurser finns det med något som vi kallar "poster" (eng. "record"). I andra har vi inte med detta. Vi har
Läs merChapter 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 merFilhantering. Grunderna i filhantering. Uppbyggnad av filer. Data hierarkin. Filpekaren. Positionering i filer 2002-10-29
Grunderna i filhantering Filhantering Filer kan användas för permanent lagring av data Hårddisk, disketter, CD-R/W, band Variabler och arrayer Försvinner när du avslutar programmet Sparas i datorns arbetsminne
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 merHI1024 Programmering, grundkurs TEN2 2015-10-30
HI1024 Programmering, grundkurs TEN2 2015-10-30 KTH STH Haninge 8.15-13.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King
Läs merKTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012
KTH STH TENTAMEN HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012 Gamla kurskoder: HI1900, 6E2950, etc. Examinator: Johnny Panrike Rättande lärare: Nicklas Brandefelt, Johnny Panrike och
Läs merTentamen PC-teknik 5 p
Tentamen PC-teknik 5 p Lösningar med kommentarer Program: Di2 Datum: 05-01-10 Tid: 13:30-18:30 Lokal He303 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Bilaga: Ingen Examinator:
Läs merHI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,
KTH STH TENTAMEN HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011, 8.15-13.15 Gamla kurskoder: HI1900, 6E2950, etc. Examinator: Johnny Panrike Rättande lärare: Nicklas Brandefelt, Johnny
Läs merMaskinorienterad programmering
Maskinorienterad programmering Sammanfattning Ur innehållet: Vi rekapitulerar kursens syften Vi repeterar kursens lärandemål Vi belyser hur den skriftliga delen av examinationen genomförs. Sammanfattning
Läs merFöreläsning 4. Val, boolska värden, läsbarhet, osv
Föreläsning 4 Val, boolska värden, läsbarhet, osv Exempel /* Programmeringsteknik med C och Matlab Programmering i C HT13 Exempel Fil: plus_one.c Författare: Jonny Pettersson Användare: jonny Datum: 7
Läs merEnklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut
F5: Filhantering in- och utmatning (kap. 2 och 8) 1 Utskrift på skärm, inläsning från tangentbord (kap. 2) Spara och hämta variabler med save och load (kap. 2) Kommandot textread Mer avancerad filhantering:
Läs merHI1024 Programmering, grundkurs TEN2 2014-03-13
HI1024 Programmering, grundkurs TEN2 2014-03-13 KTH STH Haninge 13.15-18.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King
Läs merLEU240 Mikrodatorsystem
Institutionen för data- och informationsteknik 2011-10-11 LEU240 Mikrodatorsystem Vi har tidigare i olika sammanhang sett att det är önskvärt att kunna använda ett högnivåspråk som C för att skriva program
Läs merExempelsamling Assemblerprogrammering
Exempelsamling Assemblerprogrammering I uppgifterna nedan utgå från följande programskelett: #include.data var1:.word 12 var2:.word 19 sum: prod:.float 0.set noreorder.text.globl start.ent start
Läs merF5: Högnivåprogrammering
F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data via
Läs merF5: Högnivåprogrammering
1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data
Läs merLaboration: Grunderna i MATLAB
Laboration: Grunderna i MATLAB 25 augusti 2005 Grunderna i MATLAB Vad är MATLAB? MATLAB är ett interaktivt program för vetenskapliga beräkningar. Som användare ger du enkla kommandon och MATLAB levererar
Läs merFöreläsning 3. Programmering, C och programmeringsmiljö
Föreläsning 3 Programmering, C och programmeringsmiljö Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator
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 merLathund. Pacific C för MS-DOS
Lathund Pacific C för MS-DOS Revision 2 2003-08-28 Anders Arvidsson Karl-Johan Krantz Synpunkter välkomnas! Innehållsförteckning 1 Introduktion...3 1.1 Assembler kontra C...3 1.2 Kodexempel...3 1.3 PACIFIC
Läs merCPU. Carry/Borrow IX. Programräknare
Laboration:. Jämförelser mellan assembler och C. CPU ACCA ACCD ACCB 8-bitars ackumulatorer eller 16- bitars ackumulator CCR 1 1 1 SXH I NZVC Flaggregister Carry/Borrow IX IY PC Indexregister X Indexregister
Läs merHI1024 Programmering, grundkurs TEN
HI1024 Programmering, grundkurs TEN2 2015-01-08 KTH STH Haninge 13.15-18.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning
Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (
Läs merMalmö högskola 2007/2008 Teknik och samhälle
Laboration 12 Avsikten med denna laboration är att du ska göra några grafiska program. Börja med att skapa paketet laboration 12. Grundläggande uppgift Uppgift 12a Uppgiften går ut på att göra en enkel
Läs merUppgifter till praktiska tentan, del A. (7 / 27)
Uppgifter till praktiska tentan, del A. (7 / 27) I. Sortering/Sökning: III II. Representation/Omvandling/format/protokoll: II III. Strukturering: II I alla problem, där bokstäver förekommer, antar vi att
Läs merProgrammering av inbyggda system. Kodningskonventioner. Viktor Kämpe
Kodningskonventioner Viktor Kämpe Varför kodningskonventioner? Förståelse för Skillnaden mellan lokala/globala variabler. Funktionsargument. Returvärde. Möjliggör Mix av assembler och C. Kodningskonventioner/VK
Läs merLaboration 2 i Datorteknik- Assemblerprogrammering II
Högskolan i Halmstad 1 (8) - Assemblerprogrammering II Målet med laborationen är att få begrepp om Subrutiner. in/utparametrar. Lokala variabler Maska in bitar till ett register Konstruktion av subrutiner
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 merC++ 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 merLaboration 1. "kompilera"-ikonen "exekvera"-ikonen
Programmerade system I1 Syfte Laboration 1. Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i att skriva
Läs merLö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 merKPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner
KPP053, HT2016 MATLAB, Föreläsning 1 Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner MATLAB Väletablerat Mycket omfattande program GNU OCTAVE Öppen
Läs merArduinokurs. Kurstillfälle 4
Kurstillfälle 4 CW-generering Det här kan ses som överkurs men kan ändå vara roligt för att kunna generera CW på ett enkelt sätt. Det blir en hel del nytt men vi tar det steg för steg Som alla vet gäller
Läs merDagens föreläsning. Specialtecken. Mer om printf. Formateringssträngar. Mer om scanf. Programmeringsteknik för Ingenjörer VT05
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 12 Filhantering Funktionsbibliotek Mer om kompilering Lagrinsklasser Makron Programmeringsteknik VT05 2 Mer om printf Utskrifter
Läs merVisa/Dolj knappar i Webeditor 8
Supportdokument Visa/Dolj knappar i Webeditor 8 Synpunkter, felaktigheter, önskemål etc. för dokumentet meddelas Fil: VisaDölj knappar i Webeditor 8.docx Innehållsförteckning 1. Allmänt... 2 2. Skapa ett
Läs merkl Tentaupplägg. TIPS 4: Du kan kompilera din kod med följande kommandon g++11, w++11 (för mer varningar)
Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer
Läs merGrundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2
AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga
Läs merTUTORIAL: SAMLING & KONSOLL
TUTORIAL: SAMLING & KONSOLL Denna tutorial är en fortsättning på den tutorial där vi skapade klassen Car och sedan objekt av denna klass. Vi skall nu lära oss att lagra dessa objekt i en samling och även
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 merEnchipsdatorer med tillämpningar LABORATION 7, ROBOT
Enchipsdatorer med tillämpningar LABORATION 7, ROBOT Laborationsansvariga: Anders Arvidsson Utskriftsdatum: 2005-05-14 Laboranter: 1 Syfte Denna laboration syftar till att introducera interrupt och watchdog
Läs merProgram. Kapitel make Program Interpreterande och kompilerande program
Kapitel 11 Program Detta kapitel är som synes mycket kort och nämner inte allt från föreläsningen. 11.1 Program Ett datorprogram är en samling instruktioner som beskriver något som en dator ska utföra.
Läs merSystemkonstruktion SERIEKOMMUNIKATION
Systemkonstruktion SERIEKOMMUNIKATION Laborationsansvariga: Anders Arvidsson Utskriftsdatum: 2005-04-26 Syfte Laborationen syftar till att ge studenten tillfälle att närmare bekanta sig med RS-232-protokollet,
Läs merKompilering 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 merFöreläsning 10. Pekare (Pointers)
Föreläsning 10 Pekare (Pointers) Dagens kluringar int a=5; int f(int b) a--; b++; return b; int main() int a=3; printf("%d,",f(a)); printf("%d",a); return 0; int f(int a) if(a==1) return a; else return
Läs merAtt bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.
Laboration 1 Avsikt Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java. Del 1 Ta fram dokumentet NetBeans5_5.pdf från kurssidan och arbeta med
Läs merKompilera och exekvera Javakod
Kompilera och exekvera Javakod Förberedelser För att kunna göra dessa övningar måste du ha installerat Java Development Kit, JDK, som bland annat innehåller Java kompilatorn, javac. Hur du installerar
Läs merLaboration 1 Introduktion till Visual Basic 6.0
Laboration 1 Introduktion till Visual Basic 6.0 Förberedelse Förbered dig genom att läsa föreläsningsanteckningar och de kapitel som gåtts igenom på föreläsningarna. Läs även igenom laborationen i förväg.
Läs merEn kort text om programmering i C.
En kort text om programmering i C C skapades 1972 av Brian Ritchie och Dennis Kerighan på Bell Labs i USA Det blev det språk som är mest använt genom tiderna Det finns många olika språk Pascal, FORTH,
Läs merDataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte
CT3760 Mikrodatorteknik Föreläsning 4 Tisdag 2005-09-06 Stacken I datasammmanhang är en stack ett minnesområde. Det är processorn som använder stacken. För att skapa en stack anger man en adress i stackpekarregistret.
Läs merSammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111
/home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111 0 # coding : latin Sammanfattning Gick igenom listor, dictionary, felhantering, strängjämförelser, split(), rstrip()
Läs merSimulering med ModelSim En kort introduktion
Linköpings universitet Institutionen för systemteknik Laborationer i digitalteknik Datorteknik 2017 Simulering med ModelSim En kort introduktion TSEA22 Digitalteknik D Linköpings universitet SE-581 83
Läs merTDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Strömmar, externa filer och kommandoradsargument Eric Elfving Institutionen för datavetenskap 7 oktober 2015 Översikt 2/32 Strömmar Kommandoradsargument Jämförelseoperatorer
Läs merKort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel
Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1310/
Läs merEclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.
Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod
Läs merBildbaskontoret. Bruksanvisning. Handitek. anpassar tekniken till människan BRUX\...\809082 BILDBASKONTORET
Bildbaskontoret Bruksanvisning Handitek BRUX\...\809082 BILDBASKONTORET anpassar tekniken till människan Innehållsförteckning Introduktion... 3 Datorkrav...3 Om bildbaser... 4 Vad är en bildbas?...4 Varför
Läs merFÖRSLAG TILL LÖSNING AV Tentamen i Objektorienterad programmering C++ I
FÖRSLAG TILL LÖSNING AV Tentamen i Objektorienterad programmering C++ I 2002-03-18 Betygsgränser: 3 14 poäng 4 20 poäng 5 27 poäng Maxpoäng: Hjälpmedel: 32 poäng Bilagd ASCII-tabell Lycka till Per Ekeroot
Läs merÖvningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010
STYRNING - i Mikrodatorteknik för U2 2010 1. Uppgift M10 (5p) aug-09 Skriv ett program i PIC-assembler som - gör PortB till utport - ettställer bit 0, 3 och 4 i PortB - nollställer bit 5 och 6 i PortB
Läs merLaboration 10 - Eclipse
Laboration 10 - Eclipse Avsikten med laborationen är att du ska träna på att använda paket, att du ska packa några klassfiler i en jar-fil och slutligen använda innehållet i en jar-fil från en annan klass
Läs merProgrammering. Scratch - grundövningar
Programmering Scratch - grundövningar Lär känna programmet: Menyer för att växla mellan att arbeta med script, utseende/bakgrund och ljud. Scenen där allting utspelar sig. Här klickar du på bakgrunden
Läs merObjektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
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 merNetBeans 7. Avsikt. Projektfönster
NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till
Läs merDatorteknik TSIU02 Lab 2 Morsesändare v0.7
Inledning För att skriva program i något programspråk förenklar det att ha ett strukturerat angreppssätt. I assembler får man strukturen genom omsorgsfull användning av subrutiner. Som exempel på en mer
Läs merUppgift 1 ( Betyg 3 uppgift )
Uppgift 1 ( Betyg 3 uppgift ) I filerna queue_handling.ads och queue_handling.adb finns en datastruktur som motsvarar en kö. Det finns fyra operationer som kan utföras på en kö. 1) Enqueue som stoppar
Läs merTDIU Regler
Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt
Läs merInstruktioner för att kunna programmera på skolans datorer
Instruktioner för att kunna programmera på skolans datorer De här instruktionerna är viktiga att känna väl till inför tentamen samt inför laborationsredovisningar. Många av er kommer att använda bärbara
Läs mer