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

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

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

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

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

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 3. Programmering, C och programmeringsmiljö

Uttryck och villkor. Föreläsning 2

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

Planering Programmering grundkurs HI1024 HT 2014

Föreläsning 2. Operativsystem och programmering

Planering Programmering grundkurs HI1024 HT data

Planering Programmering grundkurs HI1024 HT TIDAA

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

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

Uttryck och villkor. Föreläsning 2

Introduktion till programmering och Python Grundkurs i programmering med Python

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

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

Loopar och datatyper. Föreläsning 3

Programmeringsteknik med C och Matlab

En kort text om programmering i C.

Objektorienterad Programmering (TDDC77)

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

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

Objektorienterad Programmering (TDDC77)

Grundkurs i programmering - intro

Instruktioner för att kunna programmera på skolans datorer

Programmering i C, 7,5 hp

Introduktion till programmering, hösten 2011

Introduktion C-programmering

Loopar och datatyper. Föreläsning 3

*Pekarvärden *Pekarvariabler & *

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

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

Indexerade variabler

NetBeans 7. Avsikt. Projektfönster

Föreläsning 10. Pekare (Pointers)

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

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

Repetition C-programmering

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.

NetBeans 5.5. Avsikt. Projektfönster

1 Datorer och program

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

TDIU01 (725G67) - Programmering i C++, grundkurs

Program & programmering

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

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

C-programmering, föreläsning 1 Jesper Wilhelmsson

Användarhandledning Version 1.2

1 Logga in 1. 2 Byta lösenord 1. 3 Hemkatalog 1. 4 Unixintroduktion Viktiga kommandon Läsa 3

Arrays (indicerade variabler) Föreläsning 6

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

Objektorienterad programmering i Java

Objektorienterad Programmering (TDDC77)

Arrays (indicerade variabler) Föreläsning 4

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

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

Föreläsning 3.1: Datastrukturer, en översikt

Hantering av textsträngar och talsträngar. William Sandqvist

Studentportalen UNIX-konton (systemansvariga P4118) Lärare: Tom Smedsaas,

Outline. Objektorienterad Programmering (TDDC77) Kursinfo. Outline. Hemsida. Organization. Ahmed Rezine Examination. Webreg.

Enkla datatyper minne

Att använda pekare i. C-kod

tentamensdags och lab 3

Programmering i C++ Kompilering från kommandoraden

Innehålls förteckning

Programmeringsuppgifter 1

Funktioner och programstruktur. Föreläsning 5

Editering, Kompilering och Exekvering av Javaprogram

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

Lektion 1 - Steg 1. Introduktion. Hello World

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

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

F4. programmeringsteknik och Matlab

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.

Code-Lite tutorial ( /RoJ)

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Variabler använder man sig av för att under programkörningen spara data eller information i primärminnet. En variabel har typ, namn och värde.

MATLAB-modulen Programmering i MATLAB. Höstterminen hp. Vad är MATLAB

OOP Objekt-orienterad programmering

Laboration 1 Introduktion till Visual Basic 6.0

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

Lab 1: Första labben (2p) Inledning:

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

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

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

Några småsaker. switch break, continue, goto Kommentarer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

TDIU01 - Programmering i C++, grundkurs

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

Objektorienterad programmering i Java I

TDDC77 Objektorienterad Programmering

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

Program. Kapitel make Program Interpreterande och kompilerande program

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

A-PDF MERGER DEMO ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK. Gunnar Joki Oru-Te Programmering C, 5p

Programmering. Den första datorn hette ENIAC.

Funktioner och programstruktur. Föreläsning 5

Transkript:

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

me@newtinydebian:~$ mkdir program me@newtinydebian:~$ cd program me@newtinydebian:~/program$ emacs hello.c & [3] 1949 me@newtinydebian:~/program$ ls hello.c me@newtinydebian:~/program$ gcc hello.c -o hello me@newtinydebian:~/program$ ls hello hello.c me@newtinydebian:~/program$./hello Hello World! me@newtinydebian:~/program$ cd.. -gå upp cd -gå hem cd / -gå till root http://dl.dropbox.com/u/397277/bash_shell_cheat_sheetv2.pdf

/* Beräkning av sträckan om man färdas med hastigheten 25 m/s */ #include <stdio.h> int main(void) { int stracka,hastighet,tid; hastighet = 25; printf("hur lång tid? "); scanf("%d", &tid); stracka = hastighet * tid; 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! } printf("med 25 m/s kommer du att färdas %d m.\n",stracka); printf("lycka till på färden\n"); return 0; Observera indentering! -tabbningen

/* Beräkning av sträckan om man färdas med hastigheten 25 m/s */ #include <stdio.h> Terminal(shell): me@newtinydebian:~$ emacs enkeltp.c & int main(void) [1] 1921 { me@newtinydebian:~$ gcc enkeltp.c -o enkeltp int stracka,hastighet,tid; me@newtinydebian:~$./enkeltp hastighet = 25; Hur lang tid fardas du? 10 Med 25 m/s kommer du att fardas 250 m. printf("hur lång tid? "); Lycka till pa farden scanf("%d", &tid); me@newtinydebian:~$ 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;

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 <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 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 <stdio.h> 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 = 12.3456f; printf("vinkeln:%8.2f radianer\n",vinkel); } return 0; utskrift: Antal: 6, väger: 3.200000 Vinkeln: 12.35 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: 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!

#include <stdio.h> 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