1 / 25

Begreber og Redskaber 1

Begreber og Redskaber 1. BRP. Plan for kurset. Formål Give et begrebsmæssigt grundlag for programudvikling, samt overblik over udvalg af redskaber og metoder en programmør kan bruge Forstå hvad et programmeringssprog er hvordan man kan strukturere data algoritmer til søgning og sortering.

karlyn
Download Presentation

Begreber og Redskaber 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Begreber og Redskaber 1 BRP

  2. Plan for kurset • Formål • Give et begrebsmæssigt grundlag for programudvikling, samt overblik over udvalg af redskaber og metoder en programmør kan bruge • Forstå • hvad et programmeringssprog er • hvordan man kan strukturere data • algoritmer til søgning og sortering

  3. Målgruppe • Studerende der lige har eller samtidig lærer at programmere • Dette semester: hovedparten følger indledende programmering • For resten – måske ikke megethårdt i starten • God balast til programmeringsprojekt • På Indledende Programmering: praktisk erfaring – her teoretisk baggrund

  4. Emner i kurset • Repræsentation af tal i maskinen • Næste gang ccj2: kap 2 + note (jfr kursussiden) • Heltal, negative tal, kommatal, logiske værdier • Håndkøring af programmer • Rekursion • Sortering • Datastrukturer • Stak, kø, hægtede lister • Afprøvning af programmer

  5. Idag • Hvordan kører man et java program? • Hvad er de grundlæggende dele af Java? • Lidt historie • Syntaks hvad man skriver • Semantik hvad det betyder • Pragmatik hvordan det bruges

  6. Et java program public class HelloWorld{ public static void main(String[] args){ // Hovedprogram! System.out.println(”Hej”); } }

  7. Bestanddele af program • Variable og typer • Regneudtryk • Sætninger • Underprogrammer • Klasser • Biblioteker

  8. Variable og typer • Variabel erklæring • int i; • Variabel initialisering • int i = 1; • Variabel tildeling • i = 1; • Variabel inkrementering • i++;

  9. Typer • Heltal (int,..) • Kommatal (float, double) • Logiske værdier (boolean) • Tegn (char) • Tekststrenge (String) • Og så er der også klasser og objekter...

  10. Udtryk • Sammenligning (==,>=,<=,<,>,!=) • Aritmetik (+,-,*,/,%) • Tildeling (=,+=,++) • Betinget udtryk (?: ) Eksempel int i = 3+4; boolean b = (i++ ==7);

  11. Tekststrenge • ”dette er en tekststreng” • Sammenhæftning af strenge med + • Næsten alt kan konverteres til tekststrenge, f.eks. når det står efter + Eksempel int i = 7; String s; s = ”i = ” + i;

  12. Udskrivning • System.out.println(udtryk); • System.out.println(); • System.out.print(udtryk); Udtryk er streng, tal, tegn, logisk værdi,.. Eksempel System.out.println(”Hello”);

  13. Sætninger • If: if(exp) stmt else stmt • While: while(exp) stmt • Do: do stmt while(exp) • For: for(exp;exp;exp)stmt • Switch: switch(exp){ caseexp: stmt..} • Andet: break,continue,return,try

  14. Hvad mer?? • Klasser, nedarvning og beskyttelse • Overlæsning, overskrivning, polymorfi • Interface, abstrakte klasser • Tabeller • Undtagelser, parallelitet • Et hav af standard klasser

  15. Kan man skrive til programmer? • Nå ja – men det er ikke helt let! Eksempel try{ DataInputStream in = DataInputStream(System.in); String s = in.readLine(); System.out.println("Read : "+s); }catch(java.io.IOException e){}

  16. Syntaks Fra ccj2 2.2 Assignment variableName=expression; 6.1 The while statement while(condition)statement Osv..

  17. Syntaks • Præcedens regler • i*j+k*l • Associativitet • a-b-c (a-b)-c • a=b=c a=(b=c) • Dangling else • if() if() stmt; else stmt

  18. Semantik • Hvad betyder det? Hvad er forskellem på & og &&? Hvornår er to strenge ens? Hvordan virker % for negative tal? Osv...

  19. Pragmatik • Konventioner • Klassenavne med stort bogstav • Felter og metoder med små bogstaver • Konstanter med kun store bogstaver • Ideomer • for(;;){ .. if(..)break; ..} • God stil • Indrykninger, kommentarer,..

  20. Lidt historie Maskiner: • 1. Generation: 1940 → • Radiorør, kviksølvrør, DASK 1952 • 2. Generation 1950 → • Transistorer, GIER 1959 • 3. Generation 1964 → • Integrerede kredsløb • 4. Generation • Højt integrerede kredsløb VLSI, • 5. Generation • Multiprocessormaskiner

  21. Datamaskiner Tidlige mekaniske maskiner Babbage, Pascal, Zuse 30’erne. Teori: Turingmaskinen, Church, Curry, von Neumen. Beregnelige funktioner 40-45. Beregningsmaskiner Eniac (43-44, USA) radiorør (19000stk) til beregning af kanonskud Zuse (1945, Tyskland) relæer Colosus (1943, A Turing, England) radiorør (1500stk) Krypto-analyse af Enigma koder

  22. Datamaskiner Fra 1948. Universelle maskiner Programmerbare. EDVAC rapport 1944 EDSAC (Wilkes,Cambridge,England) ACE (Turing, Manchester, England) 1948 Transistoren 1964 Integrerede kredsløb 1970 Chip, Intel 4004 (2250 transistorer, 1280 ½byte data, 4k instruktioner)

  23. Programmeringssprog Maskiner: • 1. Generation: 1940’erne • Maskinkode • 2. Generation 1948-54 • Assembler, AUTOCODE (1952) • Tidlige maskinspecifikke sprog • 3. Generation 1964 → • Højniveausprog: Java, C, C++, Pascal, • 4. Generation • Specielle programmeringsomgivelser til særlige formål • 5. Generation • Naturligt sprog

  24. Programmeringssprog Andre sprog Logikprogrammering prolog 1972 Funktionsprogrammering Lisp 1960 ML, Haskell, Scheme Fortran, 1954 Cobol, 1959-60 Algol 1960 Basic 1964 C 1972 Simula 1967 Pascal 1972 C++ 1986 Java 1995

  25. Opgaver Ccj2: P1.1, P1.2 • Skriv program der tegner et juletræ /\ / \ / \ / \ -------- || || Næste gang Ccj2: R2.8, R2.9, R2.17

More Related