380 likes | 497 Views
Próvtøkupensum 2010. Teldufrøði, C stig Forritan Greiðsluevnisloysn Bygnaður í telduni. Forritan við Visual Basic. Teldufrøði, C stig. Forritan Torkild Skjelborg: Projektorienteret programmering i Visual Basic. Del 1: Lær Visual Basic gennem problemløsning, (1) VisualBasic, part 1.pdf
E N D
Próvtøkupensum 2010 Teldufrøði, C stig Forritan Greiðsluevnisloysn Bygnaður í telduni
Forritan við Visual Basic Teldufrøði, C stig
ForritanTorkild Skjelborg: Projektorienteret programmering i Visual Basic Del 1: Lær Visual Basic gennem problemløsning, (1) VisualBasic, part 1.pdf Om Visual Basic – en indledning 1. Digitale ure 2. Akvarium – en simpel animation 3. Farver og farvesans 5. Puslespil Del 2: Teori og overblik , (2) VisualBasic, part 2.pdf 3. Grundstrukturer i Visual Basic 4. Grundmoduler i Visual Basic 5. Variable og data 8. Hvordan finder man fejl i sine programmer Projekt 1: Egi VB forrit
Visual Basic, problemløsning Om Visual Basic – en indledning (TS1, Indledning) • Hvussu nýtur man forritið Visual Basic? • Form, objekt, eginleikar, koda v.m. 1. Digitale ure (TS1,1) • Form, lable, command, timer, subrutine 2. Akvarium – en simpel animation (TS1,2) • Command, timer, imagebox, variable, subrutine, randomize 3. Farver og farvesans (TS1,3) • Frame, command, lable, scrollbar, variable, subrutine, RGB colour, randomize 5. Puslespil (TS1,5) • Command, lable, imagebox, subrutine, index, randomize
Grundstrukturur í VB (TS2,3) • Sekvens • setningar, ið verða greiddir eftir tørni • Greining • treyt verður eftirkannað áðrenn ein ella fleiri setningar verð greiddir • Endurtøka • setningarverða endurtiknir til ein tryt er uppfylt
Grundmodul í VB (TS2,4) • Procedura • event procedure (í samband við objekt) • generell procedura • Funktión • generell funktión • verður serliga nýtt til útrokningar • Standard funktiónir í VB • sí yvirlit á s. 71 • Operatorar • sí yvirlit á s. 73
Variablar og data (TS2,5) • Option Explicit • allir variablar SKULU nálýsast (erklæres) • Simplar datatypur • Dim: dimension, lokalur variabul í procedure • Static: statiskur, lokalur variabul • Private: generellur, privatur variabul • Public: globalur variabul • Strukturerað data • Tabellir • Postar ella records • Objekt
At finna villur (TS2,8) • Syntaks villur • Stavi villur • Semantik villur • Run-time villur vísa seg, tá forritið koyrur • Logiskar villur villur í logikki í forritinum
Eftirmeting – Forritan í VisualBasic • Hvussu dámdu tykkum innihaldið? • Lætt/Torført • Ov nógv/ov lítil tíð • Praktisk vs. ástøði • Undirvísingin • Undirvísarin • Umstøðurnar • Meira U?
Greiðsluevnisloysn Teldufrøði, C stig
GreiðsluevnisloysnFrede Dybkjær: Avanceret IT-bruger med databaser i Access 2006 Bæverly Tekstil A/S s. 3-5 Access begreber s. 7-8 Faser ved planlægning og konstruktion af en database s. 19 Normalformer s. 20 Appendix: Windows s. 24-26 Projekt 2: Valfríur dátugrunnur við mynstukrøvum
Beverly Tekstil A/S • Dátugrunnur til bílegging av vøru • Vøruskrá • Kundaskrá • Ordraskrá • Relatiónir
Microsoft Access hugtøk Amboðsforrit til at gera dátugrunn (*.mdb) • Tabellir: postar, felt, lyklafelt og relatiónir • Fyrispurningar: at velja røtt virðir til rapportir • Formularar: brúkaraflata til at sláa inn nýggj data (input), og til at presenterað data á skermi (output) • Rapportir: at presenterað data til at skriva út (output) Objekt og eginleikar Brúkarar • Vanligur brúkari, superbrúkari, serfrøðingur • Rættindi, mannagongdir, arbeiðsuppgávur Trygd og back-up
Projekt fasur • Hugskots fasa • Analysu fasa Entitetur (felt), Attributtur (eginleiki), Relatión • Design fasa (Formalisering) E/R diagram, Normalformur, Tabellir, Felt, Lyklafelt, Formularar, Fyrispurningar, Rapportir, Navngeving • Implementerings fasa (+royndar fasa) • Verksetings fasa • Revisións fasa
Analysu fasa • Entitetur • ein lutur, ið kann lýsast við ávísum eginleikum (felt í einari tabell) • Attributtur • eginleiki við einum entiteti • Relatión • samband millum entitetir • Brúkarar og serfrøðingar • Vanligur brúkari, superbrúkari, supportari, umsitari, mennari, designari, forritari • Rættigheitir og trygd • Backup, streymføring, køling, hølis atgongd
Design fasa • Tekna E/R diagramm • Entitetir Relatión, umhugsa normalform • Dokumenterað tabellir og feltir (entitetir og attributtir) • Eyðmerk lyklafelt: primerlykil, kandidatlykil, fremmandalykil • Lýs neyðugar formularar til datainnsláttur og – vísing • Lýs neyðugar rapportir og fyrispurningar • Unik og logisk navngeving • Tabel, Felt, Formularar, Fyrispurningar, Rapportir
Normalformur 1. Normalformur (1NF) • Allar tabellir eiga at hava eitt lyklafelt • Ymiskir bólkar av data eiga at vera í hvør sínari tabell 2. Normalformur (2NF) • 1NF skal vera uppfylt • Sama data má ikki standa í sama felti á fleiri røðum, tá skal tað flytast í egna tabell 3. Normalformur (3NF) • 2NF skal vera uppfylt • Allar attributtir skulu vera beinleiðis knýttar til lyklafeltið
Víðari menning Superbrúkari Forritari Brúkari Superbrúkari Forritari Superbrúkari Brúkari Forritari Superbrúkari Forritari
Bygnaðurin í telduni Teldufrøði, C stig
Bygnaður í telduniArne Tolstrup Madsen: PC indsigt og udsyn, TolstrupDATA 2002 Assemblersprog s. 9-18 Maskinkode s. 19-29 Avanceret assembler og maskinkode s. 30-37 Pseudocode s. 2-8 Projekt 3: Assembler forritan
Assembler • Lægsta forritanarmál: • ein assembler linja er ein maskinkotu linja • ein linja í hægri forritanar máli er fleiri maskinkotu linjur • Assembler forrit koyra skjótari enn forrit í hægri forritanarmáli • Assembler forritan verður gjørd í tveimum pørtum: • Data partur: definitión av variablum og ásetan av byrjunarvirði • Kotu partur: forritið sjálvt
PC indsigt • Simulerings amboð við trimum gluggum til assembler, maskinkotu og pascal forritan • Maskingluggi við CPU, registrum og dátugoymslu • 4 registur (r0, r1, r2, og r3) og upp til 10.000 goymslulinjur • Hjálp til assembler og maskinkotu instruktióni
PC indsigt: Assembler • Data instruktión: • num [var] {byrjunarvirði} // definitiónir • Kotu instruktiónir: • load [reg] [var] // les úr variabli • store [reg] [var] // skriva í variabul • add/sub/mul/div [reg] [reg] [reg] // rokni instruktiónir • jmp [label] // lop til frámerki • jmpz/jmpnz/jmplt [reg] [label] // treytað lop til frámerki • int [reg] [kota] // avbrot frá ytri eind ella // steðga forritinum
PC indsigt: Jump-instruktiónir jmpz r1 ln1 jump to lable ln1 if r1 is zero (z=zero) jmpnz r1 ln1 jump to lable ln1 if r1 is not zero (nz=not zero) jmplt r1 ln1 jump to lable ln1 if r1 is less than zero (lt=less than zero), that is if R1 is negative jmp label unconditional jump to lable
Input og output int r1 10 read from keyboard into r1 (interupt 10) int r3 11 write to display from r3 (interupt 11) DATA. CODE. int r110 int r210 add r1r2 r3 int r311 int r00 // stop
Uppgáva 1.15 Ger eitt assemblerforrit, ið innlesur eitt tal, n, og hareftur innlesur n tøl. Síðani skal forritið útskriva sum og kvadratsum av tølunum. Dømi: um talið 5 verður innlisið fyrst, skal forritið innlesa 5 tøl, t.d. tølini 2, 8, 4, 7 og 4. Síðani skal forritið rokna og útskrivað 2+8+4+7+4 og 22+82+42+72+42. DATA. … CODE. … int r0 0 Teldufrøði, C stig
PC (Personal Computer) Teldufrøði, C stig
CPU (Central Processor Unit) program code & data PC Program Counter IR Instruction register ALU Arithmetic Logic Unit r0...r3 Data Registers Teldufrøði, C stig
Instruktion Nr Assemblerkode Intern repræsentation Virkning/bemærkninger int 1 int rl 0010 01 1 0 0010 læs heltal fra tastatur til rl load 2 load rl y 02 1 0 0017 r1:=lager[0017] store 3 store rl y 03 1 0 0017 lager[0017]:=rl add 4 add rl r2 r3 04 1 2 3 000 r3:=rl+r2; (6.-8. ciffer er 0) sub 5 sub rl r2 r3 05 1 2 3 000 r3:=rl-r2; (6.-8. ciffer er 0) mul 6 mul rl r2 r3 06 1 2 3 000 r3:=rl*r2; (6.-8. ciffer er 0) div 7 div rl r2 r3 07 1 2 3 000 r3:=rl div r2; (6.-8. ciffer er 0) jmp 8 jmp lbl 08 0 0 0126 hop til adressen lbl jmpz 9 jmpz rl lbl 09 1 0 0126 hvis rl = 0 så hop til adressen lbl jmpnz 10 jmpnz rl lbl 10 1 0 0126 hvis rl<= 0 så hop til adressen lbl jmplt 11 jmplt rl lbl 11 1 0 0126 hvis rl < 0 så hop til adressen xlbl PC indsigt: Maskinkoda aritmetiskar instruktiónir: [xx ra rb rc 000], aðrar instruktiónir: [xx ra 0 aaaa]
Uppgáva 2.4 DATA. num x 10000 CODE. • start: int r1 10 //read(kg) • jmpz r1 stop • load r2 x • mul r1 r2 r1 • int r2 10 //read(cm) • div r1 r2 r1 • div r1 r2 r1 • int r1 11 //write(BMI) • jmp start • stop: int r0 0 Teldufrøði, C stig
Assembler og maskinkota • 2-pass assembler: • 1: goym data og lables, og checka syntaksfeilir í code • 2: umset til maskinkotu • fetch/execure processor: • les næstu instruktión • útfør instruktiónina Teldufrøði, C stig
Teldan • bygnaður í løgum • Brúkari brúkaraforrit: word, excell, power point • Forrit há-niveau forritan: visual basic, C++ • Koda lá-niveau forritan: assambler, maskinkoda • Fetch/execute stýrisskipan: dos, windows, mac os, linux • Hardware fysiska teldan • virus • uppgáva 2.9 • von Neumann • felags lagur til data og kodu Uppg 2.9: Lav en virus på en færdig IEX-fil ved at åbne den i maskinkodeeditoren og rette direkte i maskinkoden. En ‘virus’ kan f.eks. bestå i udskrift af nogle tal på skærmen. Teldufrøði, C stig
Konstantar og Array • Aritmetiskar instruktiónir við konstantum • add r2 #5 r2// legg konstantin 5 saman við r2 • 04 2 0 2 1 05 • Array data variabul • num[4] code 4 lagurpláss vera løgd av til variabul “code”: Teldufrøði, C stig
Adressering • loada r1 code // legg laguradressuna hjá code[0] í r1 • 14 1 0 0035 // r1:=0035 • load r2 r1+3 // legg innihaldi á adressu r1+3 í r2 • 02 2 1 0003 // r2:=uuuuuuuu • store r2 r1+3 // goym r2 á adressu í r1+3 • 03 2 1 0003 // lagur[0038]:=r2 Teldufrøði, C stig
String variabul • String[12] s “Tolstrup” • String[5] t “4087” • http://www.asciitable.com/ • int r1 13 //útskriva string var //til adressu í r1 • int r1 12 //innles string var //frá adressu í r1 Teldufrøði, C stig
Lav et assemblerprogram, der kan kryptere en tekst meget simpelt ved, at alle tegn udskiftes med tegnet, der har en værdi 3 højere. Uppgáva 3.4 DATA. String s "FSHF" CODE. loada r1 s //les fyrstu adressu int r1 13 load r2 r1 //heinta 1. char add r2 #3 r2 //broyt 1. char store r2 r1 //1. char er broyttur add r1 #1 r1 //næsta adressa load r2 r1 //heinta 2. char add r2 #3 r2 //broyt 2. char store r2 r1 //2. char er broyttur add r1 #1 r1 //triðja adressa load r2 r1 //heinta 3. char add r2 #3 r2 //broyt 3. char store r2 r1 //3. char er broyttur add r1 #1 r1 //fjóðra adressa load r2 r1 //heinta 4. char add r2 #3 r2 //broyt 4. char store r2 r1 //4. char er broyttur loada r1 s //les fyrstu adressu int r1 13 //útskriva nýggjan tekst int r0 0 DATA. String s "FSHF" CODE. loada r1 s //les fyrstu adressu int r1 13 loop: load r2 r1 //heinta char jmpz r2 end add r2 #3 r2 //broyt char store r2 r1 //char er broyttur add r1 #1 r1 //næsta adressa jmp loop end: loada r1 s //les fyrstu adressu int r1 13 //útskriva nýggjan tekst int r0 0 Teldufrøði, C stig
Lav et assemblerprogram, der sammensætter to strenge og gemmer resultatet i en ny streng. Husk at erklære den nye streng tilstrækkelig lang. Uppgáva 3.5 DATA String a “ER” String b “685” String c[10] CODE Teldufrøði, C stig