Top Banner
Begreber og Redskaber 1
25

Begreber og Redskaber 1

Jan 16, 2016

Download

Documents

karlyn

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. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Begreber og Redskaber 1

Begreber og Redskaber 1

Page 2: Begreber og Redskaber 1

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

Page 3: Begreber og Redskaber 1

Målgruppe• Studerende der lige har eller samtidig

lærer at programmere

• Dette semester: hovedparten følger indledende programmering

• For resten – måske ikke meget hårdt i starten

• God balast til programmeringsprojekt

• På Indledende Programmering: praktisk erfaring – her teoretisk baggrund

Page 4: Begreber og Redskaber 1

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

Page 5: Begreber og Redskaber 1

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

Page 6: Begreber og Redskaber 1

Et java programpublic class HelloWorld{

public static void main(String[] args){

// Hovedprogram!

System.out.println(”Hej”);

}

}

Page 7: Begreber og Redskaber 1

Bestanddele af program• Variable og typer

• Regneudtryk

• Sætninger

• Underprogrammer

• Klasser

• Biblioteker

Page 8: Begreber og Redskaber 1

Variable og typer• Variabel erklæring

•int i;

• Variabel initialisering•int i = 1;

• Variabel tildeling•i = 1;

• Variabel inkrementering•i++;

Page 9: Begreber og Redskaber 1

Typer• Heltal (int,..)

• Kommatal (float, double)

• Logiske værdier (boolean)

• Tegn (char)

• Tekststrenge (String)

• Og så er der også klasser og objekter...

Page 10: Begreber og Redskaber 1

Udtryk• Sammenligning (==,>=,<=,<,>,!=)

• Aritmetik (+,-,*,/,%)

• Tildeling (=,+=,++)

• Betinget udtryk (? : )

Eksempel

int i = 3+4;

boolean b = (i++ ==7);

Page 11: Begreber og Redskaber 1

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;

Page 12: Begreber og Redskaber 1

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”);

Page 13: Begreber og Redskaber 1

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){

case exp: stmt..}

• Andet:break,continue,return,try

Page 14: Begreber og Redskaber 1

Hvad mer??• Klasser, nedarvning og beskyttelse

• Overlæsning, overskrivning, polymorfi

• Interface, abstrakte klasser

• Tabeller

• Undtagelser, parallelitet

• Et hav af standard klasser

Page 15: Begreber og Redskaber 1

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){}

Page 16: Begreber og Redskaber 1

SyntaksFra ccj2

2.2 AssignmentvariableName = expression;

6.1 The while statement

while(condition) statement

Osv..

Page 17: Begreber og Redskaber 1

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

Page 18: Begreber og Redskaber 1

Semantik• Hvad betyder det?

Hvad er forskellem på & og &&?

Hvornår er to strenge ens?

Hvordan virker % for negative tal?

Osv...

Page 19: Begreber og Redskaber 1

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,..

Page 20: Begreber og Redskaber 1

Lidt historieMaskiner:• 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

Page 21: Begreber og Redskaber 1

DatamaskinerTidlige 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

Page 22: Begreber og Redskaber 1

DatamaskinerFra 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)

Page 23: Begreber og Redskaber 1

ProgrammeringssprogMaskiner:• 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

Page 24: Begreber og Redskaber 1

ProgrammeringssprogFortran, 1954Cobol, 1959-60Algol 1960Basic 1964C 1972Simula 1967Pascal 1972C++ 1986Java 1995

Andre sprog

Logikprogrammering

prolog 1972

Funktionsprogrammering

Lisp 1960

ML, Haskell, Scheme

Page 25: Begreber og Redskaber 1

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