Att komma igång. Föreläsning 1

Relevanta dokument
Att komma igång. Föreläsning 1

Att komma igång. Föreläsning 1

Föreläsning 3. Programmering, C och programmeringsmiljö

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

Föreläsning 3. Programmering, C och programmeringsmiljö

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Föreläsning 2. Operativsystem och programmering

Att komma igång. Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program

Instruktioner för att kunna programmera på skolans datorer

Uttryck och villkor. Föreläsning 2

Uttryck och villkor. Föreläsning 2

Introduktion till programmering, hösten 2011

Introduktion till programmering och Python Grundkurs i programmering med Python

Grundkurs i programmering - intro

NetBeans 5.5. Avsikt. Projektfönster

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

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

Programmeringsteknik med C och Matlab

Objektorienterad Programmering (TDDC77)

Innehålls förteckning

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

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

Övningsuppgifter till föreläsning 2 Variabler och uttryck

NetBeans 7. Avsikt. Projektfönster

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

Code-Lite tutorial ( /RoJ)

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

*Pekarvärden *Pekarvariabler & *

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Objektorienterad programmering i Java I

Repetition C-programmering

Så här skriver du ditt första program i C++

En kort text om programmering i C.

Planering Programmering grundkurs HI1024 HT 2014

Introduktion C-programmering

Kompilera och exekvera Javakod

Programmering i C++ Kompilering från kommandoraden

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

Programmering i C, 7,5 hp

Inledande programmering med C# (1DV402) Introduktion till C#

Extramaterial till Matematik Y

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Laboration 1 Introduktion till Visual Basic 6.0

Program & programmering

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.

Övningar i 2D2050. Per-Anders Staav (kallas Pa) Epost: eller

Laboration 10 - Eclipse

Föreläsning 9. Repetition och exempelproblem

TDIU01 - Programmering i C++, grundkurs

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Objektorienterad Programmering (TDDC77)

Indexerade variabler

Program. Kapitel make Program Interpreterande och kompilerande program

tentamensdags och lab 3

Planering Programmering grundkurs HI1024 HT TIDAA

OOP Objekt-orienterad programmering

Introduktion till användning av linux-servern sledge och några övningsuppgifter

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

Arrays (indicerade variabler) Föreläsning 6

SMD 134 Objektorienterad programmering

INSTALLATION OCH KONFIGURATION AV PROGRAM PICBASIC PRO - MICRO CODE STUDIO PLUS - EPIC PLUS

Installationsanvisning för kursens programvara på egen dator

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

Enkla datatyper minne

2.1 Variabler. 2.2 Regler för namngivning i C. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 2

Loopar och datatyper. Föreläsning 3

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

Inledande programmering med C# (1DV402) Introduktion till programmering

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

Föreläsning 1: Intro till kursen och programmering

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Programmering i C. Christer Sandberg, Gunilla Eken, Stefan Bygde Olof Andersson Linus Källberg Caroline Uppsäll Johan Hägg

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

TDDC77 Objektorienterad Programmering

HI1024 Programmering, grundkurs TEN

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

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

Föreläsning 10. Pekare (Pointers)

Planering Programmering grundkurs HI1024 HT data

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

F4. programmeringsteknik och Matlab

Eclipse. Kort genomgång

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Loopar och datatyper. Föreläsning 3

Arrays (indicerade variabler) Föreläsning 4

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

Datorlaboration 0, Programmering i C++ (EDA623)

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips

1 Datorer och program

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

Objektorienterad programmering i Java

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

Instruktion för användande av Citrix MetaFrame

HI1024 Programmering, grundkurs TEN

Användarhandledning Version 1.2

Transkript:

Att komma igång Föreläsning 1

Att komma igång Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera Variabler printf scanf

Vad är programmering? Ett väldigt kraftfullt, effektivt och roligt sätt att kommunicera med en dator Att skapa program / applikationer till en dator eller annan hårdvara (mobil, dammsugare, brödrost, miniräknare) Ett strukturerat generellt sätt att lösa problem

Hur lär man sig att programmera? Övning övning övning programmering är ett hantverk! Det är helt avgörande att ni jobbar med uppgifterna som hör till varje föreläsning direkt. Endast föreläsningen ger ingenting! Gör allt ni kan för att hålla er i fas. Ni får/bör hjälpa varandra men aldrig kopiera kod. Du måste förstå vad du programmerar vad varje rad gör! För att lära dig programmera (och för att hitta fel) måste du kunna läsa koden såsom en dator (kompilator) läser koden.

Vad har du lärt dig när kursen är klar? C Programmering Problemlösning

Syntax och semantik Definitionen av ett programspråk kan grovt delas upp i två delar: Syntaxen: definierar formen hos språket och bestämmer hur man får skriva. Ett programspråks syntax beskriver hur formellt korrekta program får formuleras. Semantiken: definierar vad som händer när man skrivit en viss sak. Ett programspråks semantik beskriver vad som krävs för att ett formellt korrekt program ska vara meningsfullt och vad som händer när det körs. Syntaxen definieras formellt och exakt medans semantiken oftast beskrivs informellt i våra naturliga språk. I programmering krävs att syntaxen följs exakt. Minsta avvikelse gör programmet okörbart.

Algoritmer En algoritm är en metod för att lösa ett problem genom att utföra ett antal elementära operationer i en av algoritmen given ordning. Metoden skall efter ett ändligt antal operationer nå lösningen. Det är en instruktion som man utan att tänka ska kunna följa steg för steg och då få fram resultatet. Man behöver alltså inte förstå varför man gör varje steg. Som exempel kan vi ta algoritmen för att multiplicera två tal. När vi ska få datorer att lösa problem är algoritmer ett måste eftersom datorn inte kan förstå vad den gör utan bara följer instruktioner.

Boken! 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. Det är dessutom boken ni får ha med er på den praktiska tentamen. Hittar ni i boken är den då ett mycket bra stöd.

Kurs - PM Genomgång

Vad är ett program? 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 ett program som processorn kan förstå. Filen som vi då får kallas för exekverbar eller körbar.

Kompilerande-Interpreterande 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)

Programmeringsmiljö För att kunna programmera behöver vi editor för att skriva vår kod kompilator kompilerar vår kod till ett körbart program Kompilatorn består ofta av flera program (preprocessor, kompilator, länkare) som skapar vårt körbara program i flera steg. Alla program man använder för att programmera (oftast fler än ovan, tex debugger) utgör ens programmeringsmiljö. Det är helt avgörande för er framgång på kursen att ni redan idag får igång en sådan på er dator. Förhoppningsvis har ni gjort detta på introkursen men annars se till att ni inte går härifrån förrän ni lyckats. Gå in på introkursen HF0010 (länk finns på kth-social) och följ instruktionen i föreläsning 3.

Hello World! Ä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 <stdio.h> 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.

Installera CodeLite (förhoppningsvis har ni redan gjort detta) Mac användare kör och/eller installera xcode först. Gå in på https://codelite.org/ och ladda ner codelite (gratis) för ditt operativsystem. För windows får man installationsfilen zippad med 7-Zip som finns att ladda ner gratis om du inte redan har det (http://www.7-zip.org/). När du installerat programmet kör setup wizard och välj install MinGW (kompilatorn). Välj sedan scan for compiler.

Lägg till path-variabeln i windows (behövs inte på mac eller linux och ibland inte på windows10?) Windows: Högerklicka på computer (den här datorn?) och välj properties. Välj advanced system and settings. Välj Environment variables (miljövariabler). Välj path-variablen och välj edit. Var noga så att du inte tar bort något som redan finns. Vi ska bara lägga till. Lägg till ett ; sist i raden och klipp sedan in sökvägen till gcc:. I min installation: ;C:\TDM-GCC-64\bin Öppna nu kommandotolken (cmd) och prova att skriva gcc. Om den klagar över att den saknar input-fil har vi lyckats: gcc: fatal error: no input files compilation terminated.

Vårt första C-program Börja med att skapa en katalog lokalt på din dator där du ska ha dina C-program. Kom ihåg att säkerhetskopiera denna katalog ofta. I Workspace View välj Explorer-mappen och dra sedan din nya katalog till Explorer-mappen. Välj nu File->New->Empty File Välj nu File->Save As och spara filen som hello.c i katalogen du skapat lokalt. Högerklicka på din katalog i Explorer-mappen och välj refresh. Du kan nu se filen i fönstret. Skriv in Helloworldkoden i filen och spara.

Kommandotolken Vi har nu skrivit ett första C-program. Programmet är vanlig text och kan inte förstås av processorn. Vi ska nu låta kompilatorn översätta vårt program till maskinkod (kompilera). Öppna kommandotolken i widows eller ett terminalfönster på mac och linux (eller powershell windows 10). Du kan i denna se exakt var i filträdet du befinner dig. Så här ser det ut för mig: C:\Users\bfelt> Jag vill då hoppa upp två steg C:\Users\bfelt>cd.. C:\Users>cd.. C:\> Vi befinner oss i roten och jag vill nu gå ner i min katalog för C-program. Först listar jag alla kataloger med dir (eller ls i power-shell eller terminalfönster). C:\>dir Nu vill vi gå ner i katalogen Cprogram C:\>cd Cprogram C:\Cprogram> Nu kan du skriva dir och se att din fil hello.c ligger här. Vi ska nu kompilera denna C:\CProgram>gcc hello.c -o hello.exe Om vi bara skriver gcc hello.c kommer den körbarafilen att heta a.exe. Obs att körbara filer på mac har extension.out. För att köra programmet skriver vi bara namnet med eller utan exe. C:\CProgram>hello.exe Hello World! I linux och på mac måste man skriva./hello.out

Ett enkelt program /* Calculation of distance when travelling at speed 25 m/s */ #include <stdio.h> int main(void) { int distance,speed,time; speed = 25; printf("hur lang tid? "); scanf("%d", &time); 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! distance = speed * time; } printf("med 25 m/s kommer du att fardas %d m.\n",distance); printf("lycka till pa farden\n"); return 0; Observera indentering! -tabbningen

Variabler Måste deklareras innan de används: int i; float x,z; //int blir variabelns datatyp dvs heltal //-decimaltal Ges ett värde med tilldelning = (ej lika med!) i=4; x=3.4; Kan sedan användas i uttryck: z= i*x+2; Ska normalt ges så beskrivande namn som möjligt. Får ej börja med siffra, innehålla mellanslag eller reserverade ord: numberof, weight1, weigtht2, nrofcars, nrof_cars

Resistorer #include <stdio.h> 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 beraknas till %6.3f ohm\n",r3); return 0; }

Funktionen printf(string, ) Ex: printf( antal: %d, vikt %f,numberof,weight); Omvandlingsspecifikationer: %m.px (alt %-m.px för vänsterjusterat) m p minsta antalet platser utskriften blir (större vid behov) -valfri antalet decimaler -valfri X d betyder heltal e betyder decimaltal i grundpotensform f betyder decimaltal Escape sequences: \n ny rad \t tabb \

Exempel printf #include <stdio.h> int main(void) { int numberof=6; float weight=3.2f; //f förtydligar att det är float printf("antal: %d, vikt: %f\n", numberof, weight); float angle = 12.3456f; printf("vinkeln:%8.2f radianer\n",angle); } return 0; utskrift: Antal: 6, vikt: 3.200000 Vinkeln: 12.35 radianer

Funktionen scanf(string, ) Ex: scanf("%d%f", &numberof, &weight); -låter oss läsa in ett heltal till variabeln numberof och ett decimaltal till variabeln weight från användaren. Om användaren matar in: 4 3.7 <enter> 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!

Exempel scanf #include <stdio.h> int main(void) { int dividend,divisor; printf("kvot:"); scanf("%d / %d",&dividend,&divisor); printf("%d/%d=%d\n", dividend, divisor, dividend/divisor); } return 0; Kvot:7/3 7/3=2