begreber og redskaber 1
DESCRIPTION
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 PresentationTRANSCRIPT
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
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
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
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
Et java programpublic class HelloWorld{
public static void main(String[] args){
// Hovedprogram!
System.out.println(”Hej”);
}
}
Bestanddele af program• Variable og typer
• Regneudtryk
• Sætninger
• Underprogrammer
• Klasser
• Biblioteker
Variable og typer• Variabel erklæring
•int i;
• Variabel initialisering•int i = 1;
• Variabel tildeling•i = 1;
• Variabel inkrementering•i++;
Typer• Heltal (int,..)
• Kommatal (float, double)
• Logiske værdier (boolean)
• Tegn (char)
• Tekststrenge (String)
• Og så er der også klasser og objekter...
Udtryk• Sammenligning (==,>=,<=,<,>,!=)
• Aritmetik (+,-,*,/,%)
• Tildeling (=,+=,++)
• Betinget udtryk (? : )
Eksempel
int i = 3+4;
boolean b = (i++ ==7);
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;
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”);
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
Hvad mer??• Klasser, nedarvning og beskyttelse
• Overlæsning, overskrivning, polymorfi
• Interface, abstrakte klasser
• Tabeller
• Undtagelser, parallelitet
• Et hav af standard klasser
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){}
SyntaksFra ccj2
2.2 AssignmentvariableName = expression;
6.1 The while statement
while(condition) statement
Osv..
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
Semantik• Hvad betyder det?
Hvad er forskellem på & og &&?
Hvornår er to strenge ens?
Hvordan virker % for negative tal?
Osv...
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,..
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
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
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)
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
ProgrammeringssprogFortran, 1954Cobol, 1959-60Algol 1960Basic 1964C 1972Simula 1967Pascal 1972C++ 1986Java 1995
Andre sprog
Logikprogrammering
prolog 1972
Funktionsprogrammering
Lisp 1960
ML, Haskell, Scheme
OpgaverCcj2: P1.1, P1.2• Skriv program der tegner et juletræ /\ / \ / \ / \ -------- || ||Næste gang Ccj2: R2.8, R2.9, R2.17