Föreläsning1. • Boken?!?! • Vad är ett program? • Kompilerande-Interpreterande • Programmeringsmiljö • Hello World! • Att programmera och ett enkelt program.

Slides:



Advertisements
Liknande presentationer
Snabbguide och tips.
Advertisements

Talföljder formler och summor
Skapa ett video-CV på YouTube
X-mas algebra Är du redo? Klicka!!.
INTRODUKTION TILL PROGRAMMERING
Välkommen till internet för nybörjare
F2 - Intro till Java1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): • Vad behövs för att kunna programmera? • DrJava • Java •
Föreläsning 7, Kapitel 7 Designa klasser Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
hej och välkomna EKVATIONER Ta reda på det okända talet.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Funktioner och programorganisation
Att skriva en artikel.
Vill du lära dig kort division?
De fundamentala datatyperna
#include void fun(char s[]) { int i=-1; while(s[++i]!=0) { if('a'
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
C-programmering ID120V William Sandqvist Länkad lista
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Att programmera i språket Java
Grundläggande programmering
Föreläsning 2 Datalogi för E1 2D1343
En PowerPoint om PowerPoint
Programmering B PHP Lektion 2
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Pekare och speciell programstruktur i inbyggda system
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Programmering B PHP Lektion 2
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Programmering B PHP Lektion 3
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Grundläggande programmering
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
Modulär programutveckling
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Objektorienterad programmering i Java
Objektorienterad Programmering i C++ I
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Java paket och jar-filer
INTRODUKTION TILL PROGRAMMERING
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 2 ( ) INNEHÅLL: -Variabler och datatyper -Tilldelning av variabler -Aritmetiska.
Läsbar prolog CM 8.1. allmäna principer correctness user-friendliness efficiency readability modifiability robustness documentation.
Problemlösningsmetodik
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
Anders Sjögren Selektion i C ”vägval” if och switch - satserna.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Anders Sjögren Deklarationsområde och funktioner.
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
Föreläsning2 Operativsystem.
William Sandqvist Funktionsbibliotek När man utvecklat en funktion så långt att den är "färdigutvecklad" kan man lika gärna spara den på.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 1 Introduktion till kursen. Algoritmer
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
OOP&M - teori1 OOP&M – Föreläsning 3 kap 2-4 Repetition Föreläsning-datayper-syntax-tilldelning.
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Kommunikationspass Jag heter
Anders Sjögren Funktioner något in och något annat ut.
Python.
Föreläsning 16: Tentan, att förbereda sig…
Presentationens avskrift:

Föreläsning1

• Boken?!?! • Vad är ett program? • Kompilerande-Interpreterande • Programmeringsmiljö • Hello World! • Att programmera och ett enkelt program • Variabler • printf • scanf

• Ni behöver läsa boken både för att lära er sånt vi inte hinner på föreläsningen och för att lära er att lära från en bok. • Har ni använt boken aktivt under kursen kommer den senare vara en följeslagare genom er programmeringskarriär som ni kan gå tillbaka till igen och igen både för att repetera och för att lära er nytt.

En processor kan endast utföra extremt enkla operationer såsom: flytta ett tal i minnet till en annan plats, lägga ihop ett tal med ett annat tal, dela ett tal med två osv. Ett program som processorn kör måste därför bestå av sådana enkla instruktioner. Dessutom finns hoppinstruktioner som gör att den kan köra om sekvenser av koden (oftast efter att ha bytt plats på talen i minnet). Förutom vid hoppinstruktioner utför processorn instruktionerna i ordning en efter en. - ett sådant enkelt program som processorn kan förstå sägs vara i maskinkod

Oftast vill man själv inte programmera i maskinkod då det blir extremt arbetsamt att få datorn att göra något användbart. Istället programmerar vi i något högnivåspråk, t.ex C. Denna kod kallas källkod (C-kod). Denna kompileras sedan av en kompilator (ett program) till maskinkod (objektkod) som processorn kan förstå. Filen som vi då får kallas för exekverbar eller körbar.

• Det ovan beskrivna sättet att arbeta beskriver hur man arbetar med kompilerande språk. Ex. C, C++, Fortran • I interpreterande språk kompileras inte koden i förväg. Istället låter vi ett program översätta åt processorn varje gång vi kör koden. Dessa program kallas interpreterande. Ex. Basic, Lisp • Samma språk kan ha båda möjligheterna. • (Java är ett mellanting)

• För att kunna programmera behöver vi ett eller flera program på vår dator. Dessa kallas vår programmeringsmiljö. • Till att börja med är det bäst att använda enklast tänkbara miljö för att verkligen förstå vad man gör. Vi ska använda en miljö som heter gcc. Denna innehåller kompilator (och en del andra program såsom länkare) men ingen editor. För att skriva in kod kan man använda vilken texteditor som helst (kod är vanlig text tills den kompileras). Vi rekommenderar att ni använder emacs eller Codeblocks. gcc körs i ett terminalfönster så det blir också en del av vår programmeringsmiljö. • Senare, kanske redan under denna kurs, när man börjar förstå hur saker hänger ihop kan det vara smidigare att använda Codeblocks också för att skapa och exekvera program eller kanske väljer ni en annan miljö såsom Eclipse. • För att ni ska ha exakt samma och en väl fungerande programmeringsmiljö använder vi virtual box för att köra en färdigkonfigurerad linuxmiljö. • Senare bör ni också sätta upp en egen programmeringsmiljö på era datorer.

• Är ett litet program som gör minsta möjliga för att testa att man har en fungerande programmeringsmiljö och att man förstår hur man använder den: #include int main(void) { printf("Hello World! \n"); return 0; } • Ett litet första steg mot fantastiska program! Börja alltid med detta i en ny miljö och backa alltid hit om du har problem.

mkdir program cd program emacs hello.c & [3] 1949 ls hello.c gcc hello.c -o hello ls hellohello.c Hello World! cd.. -gå upp cd -gå hem cd / -gå till root

/* Beräkning av sträckan om man färdas med hastigheten 25 m/s */ #include int main(void) { int stracka,hastighet,tid; hastighet = 25; printf("Hur lång tid? "); scanf("%d", &tid); stracka = hastighet * tid; printf("Med 25 m/s kommer du att färdas %d m.\n",stracka); printf("Lycka till på färden\n"); return 0; } •Hur programmerar man? skriv en rad – kompilera – provkör –osv •Hur läser man ett program? Som en kompilator – rad efter rad •Vad gör varje tecken? Allt betyder något Målet är att förstå allt – ibland får ni nu i början nöja er med att acceptera •Kompilatorn är extremt kinkig – ha tålamod – kompileringsfel är ”enkla” att fixa! •Observera indentering! -tabbningen

/* Beräkning av sträckan om man färdas med hastigheten 25 m/s */ #include int main(void) { int stracka,hastighet,tid; hastighet = 25; printf("Hur lång tid? "); scanf("%d", &tid); stracka = hastighet * tid; printf("Med 25 m/s kommer du att färdas %d m.\n", stracka); printf("Lycka till på färden\n"); return 0; } Terminal(shell): emacs enkeltP.c & [1] 1921 gcc enkeltP.c -o enkeltP Hur lang tid fardas du? 10 Med 25 m/s kommer du att fardas 250 m. Lycka till pa farden

• Måste deklareras innan de används: int i, j, k;//heltal float x,y,z;//decimaltal • Ges ett värde med tilldelning = (ej lika med!) i=4; x=3.4f; • Kan sedan användas i uttryck: z= i*x+2; • Ska normalt ges så beskrivande namn som möjligt Ex: antal, vikt1, vikt2, antalBollar, antal_bollar Får ej börja med siffra! Reserverade ord får ej användas!

#include int main(void) { float r1,r2,r3; printf("Resistans hos R1 (ohm) : "); scanf("%f",&r1); printf("Resistans hos R2 (ohm) : "); scanf("%f",&r2); r3=r1*r2/(r1+r2); printf("R3 beräknas till %6.3f ohm\n",r3); return 0; }

Ex: printf(”antal: %d, vikt %f”,antal,vikt); Omvandlingsspecifikationer: %m.pX ( alt %-m.pX) m – minsta antalet platser utskriften blir (större vid behov) -valfri p – antalet decimaler -valfri X –d – heltal e – decimaltal i grundpotensform f – decimaltal (g – decimaltal grundpotens eller ej beroende på storlek) Escape sequences: \n – ny rad \t – tabb \”

#include int main(void) { int antal=6; float vikt=3.2f; //använd gärna f när du skriver en float printf("Antal: %d, väger: %f\n", antal, vikt); float vinkel = f; printf("Vinkeln:%8.2f radianer\n",vinkel); return 0; } utskrift: Antal: 6, väger: Vinkeln: radianer

Ex: scanf("%d%f", &antal, &vikt); -låter oss läsa in ett heltal till variabeln antal och ett decimaltal till variabeln vikt från användaren. Om användaren matar in: får antal värdet 4 och vikten värdet 3.7 & -tecknet före variabelnamnet kallas adress-operatorn och gör att vi skickar minnesadressen istället för värdet till scanf. scanf behöver ju veta var den ska stoppa data! Viktigt!

#include int main(void) { int t,n; printf("Bråk:"); scanf("%d / %d",&t,&n); printf("%d/%d\n",t,n); return 0; } utskrift: Bråk:2/3 2/3

• Kompilera och kör ett helloworld-program (K2 E1,s33) • Kompilera och kör enkelt program och resistorer från föreläsningen. Pröva att modifiera och experimentera med koden – LEK! • Frivilligt: Skumma snabbt igenom kapitel 1. • Läs igenom kapitel 2 Speciellt 2.6 som vi inte pratat om men ni ska kunna! • Gör K2 P1, P2, P3 (sid 33-34) • Läs igenom kapitel 3, fastna inte på detaljer, har du sett dem nu hittar du tillbaka när du behöver dem • Gör K3 E1, P1, P6 (sid 49-51) • Gör gärna fler uppgifter om du hinner! E-excercises, P-programming projects