Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

Relevanta dokument
Pascal... Pascal. Pascal... Pascal...

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Några fakta om Standard Pascal. Serafim Dahl, Carina Edlund, m.fl.

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19

Typsystem. Typsystem... Typsystem... Typsystem... 2 *

Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem.

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

TDIU01 - Programmering i C++, grundkurs

Funktioner, Procedurer och Parametrar. Funktioner, Procedurer och Parametrar... Funktioner, Procedurer och Parametrar procedurspecifikation

Klassdeklaration. Metoddeklaration. Parameteröverföring

Parameteröverföring. Exempel. Exempel. Metodkropp

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Sista delen av kursen

Programspråkslingvistik. Sista delen av kursen. Ett programspråk

Sista delen av kursen

Standardfilerna Input och Output

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Standardfilerna Input och Output. Filer... Filer... vanlig utbyggnad för ökad dynamik. Filer... filtyper

Språket Python - Del 1 Grundkurs i programmering med Python

Deklarationer/definitioner/specifikationer

Programmering A. Johan Eliasson

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Övning2. Variabler. Data typer

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmeringsteknik med C och Matlab

DD1361 Programmeringsparadigm. Carina Edlund

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Repetition i Pascal. Exemplen fac. Exemplen fac i Pascal. Exemplen fac motivering. Orginalet

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Polymorfi (många skepnader) är egentligen en mängd olika abstraktionsmekanismer och en indelning skulle kunna se ut så här: polymorfi

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Språket Scheme. DAT 060: Introduktion till (funktions)programmering. DrScheme. uttryck. Jacek Malec m. fl. evaluering av uttryck.

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Objektorienterad Programmering (TDDC77)

Variabler och konstanter

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Översikt över Visual Basic

Objektorienterad programmering Föreläsning 4

Exempel på ett litet Ada-program

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

DD1314 Programmeringsteknik

1 Funktioner och procedurell abstraktion

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

Objektorienterad programmering i Java

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Abstraktion. procedurabstraktion. DA2001 (Föreläsning 26) Datalogi 1 Hösten / 27

Några saker till och lite om snabbare sortering

Pythons standardbibliotek

F4. programmeringsteknik och Matlab

Abstraktion. Abstraktion... Abstraktion... Abstraktion...

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

C++ - En introduktion

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Föreläsning 2 Programmeringsteknik och C DD1316

TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

Periodiska decimalbråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Anteckningar 1: Grundläggande saker

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet

Tentamen Grundläggande programmering

Introduktion C-programmering

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

GOTO och lägen. Några saker till och lite om snabbare sortering. GOTO och lägen (3) GOTO och lägen (2)

Kontinuerliga listor. Fält (listor) Kontinuerliga listor... Kontinuerliga listor...

Repetition C-programmering

Programmeringsteknik I

SMD 134 Objektorienterad programmering

Programmering för språkteknologer I, VT2012. Rum

Föreläsning 3: Booleans, if, switch

Lathund. C för inbyggda system

Hjälpmedel för kompilatorkonstruktion, DVB004

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Beräkningsvetenskap föreläsning 2

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

i LabVIEW. Några programmeringstekniska grundbegrepp

Föreläsning 1: Momstabellen i C++

C++ - En introduktion

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Objektorienterad Programmering (TDDC77)

6.1 Kompilering och lite grundläggande information

Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.

FÖRELÄSNING 1 PERSONAL TDDC74 PROGRAMMERING: ABSTRAKTION OCH MODELLERING VT 2017 SYFTE EXAMINATION ORGANISATION

Planering Programmering grundkurs HI1024 HT 2014

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Transkript:

Programspråk uppkallat efter Blaise. Skapat av Nicolaus Wirt. Avsett för undervisning för att lära ut typbegreppet och styrstrukturer. Har fått stor spridning p.g.a. enkelhet och att kompilatorn varken kräver stort utrymme eller mycket tid. Programmen byggs upp av reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 1 / 25

... är ett starkt typat språk, d.v.s. att man kan vid kompileringstillfället avgöra om ett program är syntaktiskt och semantiskt korrekt (men inte om det är logiskt korrekt). Varje objekt associeras med en datatyp och regler för konvertering mellan datatyper avgör om en operation är riktig. Ett fullständigt (meningslöst) program: PROGRAM test; { programhuvud, ; skiljer satser åt } BEGIN { BEGIN END utgör ett block } END. DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 2 / 25

... Programmet skrivs i en texteditor, spars på en fil under ett namn t.ex. test.p (.p för att tala om för kompilatorn att det är ett program) För att kompilera programmet kan man skriva: gpc -o test test.p Om kompileringen lyckas blir resultatet en fil med namnet test Programmet startas med kommandot test Man kan även skriva pc test.p. Då har man inte givit programmet ett namn och måste starta det med kommandot a.out Det kan hända att man måste använda formen./test respektive./a.out för att kunna starta programmet. DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 3 / 25

... För att få något gjort måste man ha med procedurer och funktioner samt andra satser: PROGRAM test(output); funktionsnamn formella parametrar och deras typ resultatets typ FUNCTION square(x:integer):integer; { funktionshuvud } BEGIN square := x * x { funktionskropp } END; gör att resultatet sänds tillbaka BEGIN Writeln(square(3)) { huvudprogram } END. anrop av funktionen DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 4 / 25

Typer De grundläggande typerna i är: Integer (heltal) Real (reella tal) Boolean (sanningsvärden true & false) Char (tecken ur aktuell kodtabell) Delintervall av ovanstående (utom Real) DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 5 / 25

In- och utmatning Write(par1, par2,...) skriv par1, par2,... utan radbyte WriteLn(par1, par2,...) skriv par1, par2,... avslutat med radbyte Write(234:6) skriv 234 högerjusterat i 6 positioner. Om platsen är för liten sker automatiskt utvidgning så objektet får plats. DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 6 / 25

In- och utmatning... Write(2.234567:1:3) Skriv 2.234567 i en position (måste alltså utvidgas) och med 3 decimaler (korrekt avrundat) Write(3:1:4) är fel eftersom 3 är (implicit) ett heltal. Write och Writeln kan skriva enkla typer och teckensträngar omgivna av apostroftecken. Read(var1, var2,...) läser in värden till var1, var2,... ReadLn(var1, var2,...) läser in värden till var1, var2,... och ser till att nästa Read (Readln) läser från en ny rad (har inte något med radbyte att göra) DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 7 / 25

OBS Objekts, funktioners och procedurers namn måste börja på en bokstav och bara innehålla bokstäver och siffror. (bokstav är A..Z,a..z) Kompilatorn läser texten endast en gång och alla namn som den stöter på måste vara definierade innan de används. Man måste alltså skriva saker i rätt ordning En funktion f 1 som använder en funktion f 2 måste stå efter f 2 i programkoden! DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 8 / 25

Deklarationsordning... PROGRAM test2(output); FUNCTION absolutbelopp(x:integer):integer; BEGIN IF x < 0 THEN absolutbelopp := -x ELSE absolutbelopp := x END; FUNCTION absx3(x:integer):integer; BEGIN absx3 := Sqr(x) * absolutbelopp(x) END; BEGIN Writeln(absx3(-3)) END. DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 9 / 25

Operatorer Aritmetiska opererar på resultat + addition num & set num (real) & set subtraktion num & set num (real) & set multiplikation num & set num (real) & set / division num real div division Integer Integer mod modulo Integer Integer Relationsop > < >= <= = <> DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 10 / 25

Operatorer... Boolean NOT AND OR Prioritetsordning 1. NOT 2. * / DIV MOD AND 3. + - OR 4. > < >= <= = <> Detta betyder att vi måste sätta ut parenteser i logiska uttryck. Ex: (1 + 1 = 3) OR (2 < 4) AND (7 >= 3 * 2) DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 11 / 25

En mer utbyggd programdel PROGRAM test3(input, output); CONST { konstantdefinitioner } n = 10; pi = 3.141592; prompter = Mata in ett tal ; TYPE { typspecifikationer } naturligt = 0..Maxint; smallint = 0..n; biglet = A.. Z ; flyttal = Real; VAR { variabeldeklarationer } tal: naturligt; ch: biglet;... DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 12 / 25

I Scheme I scheme har vi programmerat strikt funktionellt (allt har varit funktioner och vi arbetar bara med funktionsvärden). Men man kan ändra ett objekts tillstånd med set! > (define x 3) > (set! x 7) > x 7 Objektets tillstånd har ändrats! DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 13 / 25

Scheme... > (define := (lambda (val) (set! x val))) > (:= 12) > 12 I bygger de flesta program på att objektens tillstånd ändras! DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 14 / 25

I PROGRAM test4(input, output); VAR n, k: Integer; FUNCTION fak(n: Integer): Integer; BEGIN IF n < 2 THEN fak := 1 ELSE fak := n * fak(n - 1) END; BEGIN Writeln( N över K, ange n och k ); Readln(n, k); Writeln(fak(n) / (fak(k) * fak(n - k)):1:0); END. DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 15 / 25

Val IF villkor THEN sats1 ELSE sats2; Eller IF villkor THEN sats; DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 16 / 25

Val... satserna kan vara sammansatta och skall då omges av BEGIN END IF villkor THEN BEGIN sats1; sats2 END ELSE BEGIN sats3; sats4 END; DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 17 / 25

Syntaxdiagram sats icketerminal symbol (förklaras i annat diagram). end terminal symbol (förklaras inte vidare) program identifierare ( (fil-) identifierare, ) ; block. DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 18 / 25

Syntaxdiagram... identifierare bokstav bokstav siffra DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 19 / 25

Syntaxdiagram... bokstav A B... Z a b... z siffra 0 1 2 3 4 5 6 7 8 9 DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 20 / 25

Syntaxdiagram... block deklarationsdel sammansatt sats DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 21 / 25

Syntaxdiagram... deklarationsdel label lägesdeklaration ; const konstantdefinition ; type typdefinition ; var variabeldeklaration ; procedurdeklaration ; funktionsdeklaration ; DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 22 / 25

Syntaxdiagram... procedurdeklaration procedurhuvud ; block direktiv funktionsdeklaration funktionshuvud ; block direktiv DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 23 / 25

Syntaxdiagram... procedurhuvud procedure identifierare ( formell parameter ; ) DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 24 / 25

Syntaxdiagram... funktionshuvud function identifierare ( formell parameter ; ) : (typ-)identifierare DA2001 (Föreläsning 10) Datalogi 1 Hösten 2010 25 / 25