Administrivia Programmering Grunderna i C Kortspel. Programmering. Sommarkurs 2007 www.hh.se/staff/vero/programmering. Verónica Gaspes.



Relevanta dokument
Recap Mera om nya typer Kort Fält. Programmering. Sommarkurs Verónica Gaspes. IDE-sektionen.

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ö

Introduktion till programmering, hösten 2011

Föreläsning 2. Operativsystem och programmering

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

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

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg)

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

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

Pekare och arrayer. Indexering och avreferering

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

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

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

Programmeringsteknik med C och Matlab

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

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

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

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

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

Grundkurs i programmering - intro

Programmeringsteknik med C och Matlab

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

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

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

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

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

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

översiktskurs (5DV031)

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

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

Tentamen *:58/ID100V Programmering i C Exempel 3

Introduktion till programmering

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

Introduktionsmöte Innehåll

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004

tentaplugg.nu av studenter för studenter

Repetition C-programmering

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

Välkomna till DIT012 IPGO

En kort text om programmering i C.

Introduktion C-programmering

C++ Slumptalsfunktioner + switch-satsen

Instruktioner för att kunna programmera på skolans datorer

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

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl Omtentamen i Programmering C, Fri, Kväll,

OOP Objekt-orienterad programmering

Planering Programmering grundkurs HI1024 HT data

Möte 7: Uppföljning av föreläsningen med Peer Instruction - (PI)

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

Utkast. Programmering. Signals. Olika typer av program. Sommarkurs Avbrott i mjukvara.

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

Information Coding / Computer Graphics, ISY, LiTH CUDA. En lösning för generella beräkningar. En introduktion: Programmingsmodell och språk

TDIU01 - Programmering i C++, grundkurs

kl Tentaupplägg

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

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

Programmering II (ID1019) :00-11:00

#include <stdio.h> #include <string.h>

Enkla datatyper minne

Föreläsning 1: Introduktion till kursen

Program & programmering

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

Men först: Några funktioner ur preluden. Introduktion till programmering. Uppgiften. Variationer av uppgiften. Föreläsning 4

(2) Skriv ett program som skapar ett antal processer vars relationer beskrivs av nedanstående tidsdiagram a

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

n Detta för att kunna koncentrera oss på n Tal: number? n Symboler: symbol? n Strängar: string? n Tecken: char? n Boolskt: boolean?

Programsystemkonstruktion med C++: Övning 1. Karl Palmskog september 2010

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

Övning från förra gången: readword

Reguljära uttryck. Reguljära uttryck. Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89)

Typkonvertering. Java versus C

Objektorienterad programmering i Java I

Undervisning. Examination

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

Introduktion till programmering och Python Grundkurs i programmering med Python

Planering Programmering grundkurs HI1024 HT 2014

Switch, Array (fält) switch break, continue, goto (scary) Sammansatta tilldelningar Kommentarer Array Sortering

Användarhandledning Version 1.2

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Imperativ programmering

Programmering i C++ Kompilering från kommandoraden

Dela, koda och korrigera! Undervisningsmaterial inom digital kompetens

TDP Regler

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

Det finns många flaggor till g++,

Introduktionslaboration

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

Tentamen EDAF30 Programmering i C++

Föreläsning 10. Pekare (Pointers)

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

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

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Objektorienterad Programmering (TDDC77)

Pascal... Pascal. Pascal... Pascal...

Objektorienterad Programmering (TDDC77)

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

Uppgift 1 ( Betyg 3 uppgift )

Transkript:

Programmering Sommarkurs 2007 www.hh.se/staff/vero/programmering Verónica Gaspes IDE-sektionen Juni 12

Utkast 1 Administrivia 2 Programmering 3 Grunderna i C 4 Kortspel

Kurs resurser www.hh.se/staff/vero/programmering Lärare Verónica Gaspes ansvarig för kursmaterial, examination och föreläsningar. Anders Åhlander handledning under övningar och laborationer Program Ett operativ system. En webbrowser. En ANSI-C kompilator. En texteditor. Finns många av alla, vi tillhandahåller några, ni kan använda andra!

Moment Föreläsningar Går 2 ggr i veckan och presenterar material som kan vara till hjälp för att lösa övningsuppgifter och laborationer. De kan även hjälpa att ta till sig litteratur. Inte obligatorisk närvaro Övningar Går 2 ggr i veckan, alla exempel som tas i föreläsningar med variationer finns för att ni skall kunna experimentera med de. Handledning finns för att ni inte skall fastna utan att kunna gå vidare. Inte obligatorisk men rekommenderat!

Moment Laborationer Mer av problemlösning karaktär. Handledning finns för att ni inte skall fastna. Kräver mer tid än det som är under handledning. Obligatorisk inlämning i grupper av 2. Så: bilda grupper idag! Jag samlar namn på ett papper! Tentamen En skriftlig tentamen av praktisk karaktär (programmeringsuppgifter) Obligatorisk!

Kursbok Det finns böker on line och böker på biblioteket. Ni skall söka under Programmering (Pubb, Pubbz) där ni skall leta efter böker om programmering med C. Finns både på svenska och engelska. Det finns också mycket material på nätet i form av kursanteckningar, tutorials, programbibliotek. Lite av det finns under kursens hemsidans länkar.

Vad är program? If art interprets our dreams, the computer executes them in the guise of programs! Alan J. Perlis Vi använder datorn genom att exekvera köra program De olika program får datorn att bete sig som olika maskiner! Program måste laddas till datorns minne för att köras. Även detta görs av ett program: operativ systemet Efterssom datorn förstår inte mycket mer en nollor och ettor har man försett datorn med program som kan översätta något som vi kan förstå till något som datorn kan förstå. Dessa översättare kallas för kompilatorer.

Vad är program? If art interprets our dreams, the computer executes them in the guise of programs! Alan J. Perlis Vi använder datorn genom att exekvera köra program De olika program får datorn att bete sig som olika maskiner! Program måste laddas till datorns minne för att köras. Även detta görs av ett program: operativ systemet Efterssom datorn förstår inte mycket mer en nollor och ettor har man försett datorn med program som kan översätta något som vi kan förstå till något som datorn kan förstå. Dessa översättare kallas för kompilatorer.

Vad är program? If art interprets our dreams, the computer executes them in the guise of programs! Alan J. Perlis Vi använder datorn genom att exekvera köra program De olika program får datorn att bete sig som olika maskiner! Program måste laddas till datorns minne för att köras. Även detta görs av ett program: operativ systemet Efterssom datorn förstår inte mycket mer en nollor och ettor har man försett datorn med program som kan översätta något som vi kan förstå till något som datorn kan förstå. Dessa översättare kallas för kompilatorer.

Vad är program? If art interprets our dreams, the computer executes them in the guise of programs! Alan J. Perlis Vi använder datorn genom att exekvera köra program De olika program får datorn att bete sig som olika maskiner! Program måste laddas till datorns minne för att köras. Även detta görs av ett program: operativ systemet Efterssom datorn förstår inte mycket mer en nollor och ettor har man försett datorn med program som kan översätta något som vi kan förstå till något som datorn kan förstå. Dessa översättare kallas för kompilatorer.

Vad är program? If art interprets our dreams, the computer executes them in the guise of programs! Alan J. Perlis Vi använder datorn genom att exekvera köra program De olika program får datorn att bete sig som olika maskiner! Program måste laddas till datorns minne för att köras. Även detta görs av ett program: operativ systemet Efterssom datorn förstår inte mycket mer en nollor och ettor har man försett datorn med program som kan översätta något som vi kan förstå till något som datorn kan förstå. Dessa översättare kallas för kompilatorer.

Vad är programmering? The programs we use to conjure processes are like a sorcerer s spells. They are carefully composed from symbolic expressions in arcane and esoteric programming languages that prescribe the tasks we want our processes to perform. Vi förklarar för en maskin hur alla instanser av ett problem skall lösas! Vi programmerar för att styra processer i datorn. Vi frambesvärjar datorns andar med våra besvärjelser.

Vad är programmering? The programs we use to conjure processes are like a sorcerer s spells. They are carefully composed from symbolic expressions in arcane and esoteric programming languages that prescribe the tasks we want our processes to perform. Vi förklarar för en maskin hur alla instanser av ett problem skall lösas! Vi programmerar för att styra processer i datorn. Vi frambesvärjar datorns andar med våra besvärjelser.

Vad är programmering? The programs we use to conjure processes are like a sorcerer s spells. They are carefully composed from symbolic expressions in arcane and esoteric programming languages that prescribe the tasks we want our processes to perform. Vi förklarar för en maskin hur alla instanser av ett problem skall lösas! Vi programmerar för att styra processer i datorn. Vi frambesvärjar datorns andar med våra besvärjelser.

Vad är programspråk? A computer is like a violin. You can imagine a novice trying first a phonograph and then a violin. The latter, he says, sounds terrible. That is the argument we have heard from our humanists and most of our computer scientists. Computer programs are good, they say, for particular purposes, but they aren t flexible. Neither is a violin, or a typewriter, until you learn how to use it. Marvin Minsky När datorn fungerar som översättare, måste vi förse den med en text skriven enligt mycket strikta regler. Det vi skriver kallas för källkod och de regler vi måste följa kallas för programspråk. Det som kompilatorn producerar kallas för objektkod.

Vad är programspråk? A computer is like a violin. You can imagine a novice trying first a phonograph and then a violin. The latter, he says, sounds terrible. That is the argument we have heard from our humanists and most of our computer scientists. Computer programs are good, they say, for particular purposes, but they aren t flexible. Neither is a violin, or a typewriter, until you learn how to use it. Marvin Minsky När datorn fungerar som översättare, måste vi förse den med en text skriven enligt mycket strikta regler. Det vi skriver kallas för källkod och de regler vi måste följa kallas för programspråk. Det som kompilatorn producerar kallas för objektkod.

Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

Programmering beståndsdelar De programspråk som intresserar oss erbjuder sätt att beskriva våra ideér av vad som datorn skall göra. De kan uppdelas i Enkla uttryck som beskriver de enkla sakler språket handlar om. Sätt att kombinera för att bygga mer sammansatta element från enklare sådana Sätt att abstrahera för att namge sammansatta element så att de kan hanterass som enkla! Och detta för både procedurer och data Data Stoft vi vill hantera. Procedurer Beskrivningar av det vi vill göra med datan!

Algoritmiska lösningar Programmering handlar även om att hitta på lösningar som kan beskrivas som algoritmer! Kursen kommer att handla lika mycket om vissa kända algoritmiska lösningar så som hur man uttrycker de i programspråket C.

Algoritmiska lösningar Programmering handlar även om att hitta på lösningar som kan beskrivas som algoritmer! Kursen kommer att handla lika mycket om vissa kända algoritmiska lösningar så som hur man uttrycker de i programspråket C.

Algoritmer unplugged Example Behöver 10 volontärer som skall få var sitt tal. Behöver en volontär för att ställa de andra på sin plats i ordning. Du kan fråga var och en vad de har för nummer och Du får be de att flytta på sig.

Hur tänker man? Vi tänker på att göra små steg, alltid samma sak, men många gånger! Insertion sort Vi ökar den delen som är sorterad med en position varje varv. Vi börjar med ett enda element! Sedan, inför nästa position, vi jämför elementet med de föregående, en i taget, och flyttar de för att göra plats om det behövs! När vi hittar rätt plats, sätter vi elementet!

Hur tänker man? Vi tänker på att göra små steg, alltid samma sak, men många gånger! Insertion sort Vi ökar den delen som är sorterad med en position varje varv. Vi börjar med ett enda element! Sedan, inför nästa position, vi jämför elementet med de föregående, en i taget, och flyttar de för att göra plats om det behövs! När vi hittar rätt plats, sätter vi elementet!

Ett problem - en lösning? Förhoppningsviss har vi kommit på olika sätt att lösa problemet med att få vännerna på rätt plats! Det finns alltså många olika algoritmer för att lösa samma problem. Alla är inte lika bra fast de löser problemet rätt!

Ett problem - en lösning? Förhoppningsviss har vi kommit på olika sätt att lösa problemet med att få vännerna på rätt plats! Det finns alltså många olika algoritmer för att lösa samma problem. Alla är inte lika bra fast de löser problemet rätt!

Ett litet C program main(){ 12345*67890; } Vi har definierat namgett en funktion: main Den skall multiplicera 2 givna tal. Observera användning av {, } och ;. De är skiljetecken och det finns strikta regler för hur vi kan använda de! Notera (), plats för funktionens argument. 12345*67890; är funktionens kropp.

Ett litet C program main(){ 12345*67890; } Vi har definierat namgett en funktion: main Den skall multiplicera 2 givna tal. Observera användning av {, } och ;. De är skiljetecken och det finns strikta regler för hur vi kan använda de! Notera (), plats för funktionens argument. 12345*67890; är funktionens kropp.

Ett litet C program main(){ 12345*67890; } Vi har definierat namgett en funktion: main Den skall multiplicera 2 givna tal. Observera användning av {, } och ;. De är skiljetecken och det finns strikta regler för hur vi kan använda de! Notera (), plats för funktionens argument. 12345*67890; är funktionens kropp.

Ett litet C program main(){ 12345*67890; } Vi har definierat namgett en funktion: main Den skall multiplicera 2 givna tal. Observera användning av {, } och ;. De är skiljetecken och det finns strikta regler för hur vi kan använda de! Notera (), plats för funktionens argument. 12345*67890; är funktionens kropp.

Ett litet C program main(){ 12345*67890; } Vi har definierat namgett en funktion: main Den skall multiplicera 2 givna tal. Observera användning av {, } och ;. De är skiljetecken och det finns strikta regler för hur vi kan använda de! Notera (), plats för funktionens argument. 12345*67890; är funktionens kropp.

Ett litet C program main(){ 12345*67890; } Vi har definierat namgett en funktion: main Den skall multiplicera 2 givna tal. Observera användning av {, } och ;. De är skiljetecken och det finns strikta regler för hur vi kan använda de! Notera (), plats för funktionens argument. 12345*67890; är funktionens kropp.

Ett litet C program main(){ 12345*67890; } Man använder en textredigerare för att knappra in detta och lagra det i en textfil. På våra system kommer ni att använda nedit. Man använder sedan en C kompilator för att producera ett annat fil med maskininstruktioner. I våra system kommer ni att använda gcc. Nu kan vi köra detta och få veta vad 12345*67890 är!

Ett litet C program main(){ 12345*67890; } Man använder en textredigerare för att knappra in detta och lagra det i en textfil. På våra system kommer ni att använda nedit. Man använder sedan en C kompilator för att producera ett annat fil med maskininstruktioner. I våra system kommer ni att använda gcc. Nu kan vi köra detta och få veta vad 12345*67890 är!

Ett litet C program main(){ 12345*67890; } Man använder en textredigerare för att knappra in detta och lagra det i en textfil. På våra system kommer ni att använda nedit. Man använder sedan en C kompilator för att producera ett annat fil med maskininstruktioner. I våra system kommer ni att använda gcc. Nu kan vi köra detta och få veta vad 12345*67890 är!

Ett litet C program main(){ 12345*67890; } Man använder en textredigerare för att knappra in detta och lagra det i en textfil. På våra system kommer ni att använda nedit. Man använder sedan en C kompilator för att producera ett annat fil med maskininstruktioner. I våra system kommer ni att använda gcc. Nu kan vi köra detta och få veta vad 12345*67890 är!

Vilken besvikelse! Vi kan använda datorn för att räkna C har många aritmetiska operationer fördefinierade! Men, så längre man bara använder datorns minne och räkneenheter kan man inte se något! Vill vi se något måste vi, från programmet, påverka något externt! Till exempel, lagra resultatet i en fil som en rad tecken, eller visa den på skärmen. #include <stdio.h> main(){ printf("%d",12345*67890); } Det är svårt och många behöver skriva på skärmen, då finns det bibliotek som måste inkluderas av kompilatorn. Det som finns där är funktioner som vi måste lära oss att använda! Man skall läsa om de och förstå vad de förväntas som argument och vad de gör med dessa.

Vilken besvikelse! Vi kan använda datorn för att räkna C har många aritmetiska operationer fördefinierade! Men, så längre man bara använder datorns minne och räkneenheter kan man inte se något! Vill vi se något måste vi, från programmet, påverka något externt! Till exempel, lagra resultatet i en fil som en rad tecken, eller visa den på skärmen. #include <stdio.h> main(){ printf("%d",12345*67890); } Det är svårt och många behöver skriva på skärmen, då finns det bibliotek som måste inkluderas av kompilatorn. Det som finns där är funktioner som vi måste lära oss att använda! Man skall läsa om de och förstå vad de förväntas som argument och vad de gör med dessa.

Vilken besvikelse! Vi kan använda datorn för att räkna C har många aritmetiska operationer fördefinierade! Men, så längre man bara använder datorns minne och räkneenheter kan man inte se något! Vill vi se något måste vi, från programmet, påverka något externt! Till exempel, lagra resultatet i en fil som en rad tecken, eller visa den på skärmen. #include <stdio.h> main(){ printf("%d",12345*67890); } Det är svårt och många behöver skriva på skärmen, då finns det bibliotek som måste inkluderas av kompilatorn. Det som finns där är funktioner som vi måste lära oss att använda! Man skall läsa om de och förstå vad de förväntas som argument och vad de gör med dessa.

Vilken besvikelse! Vi kan använda datorn för att räkna C har många aritmetiska operationer fördefinierade! Men, så längre man bara använder datorns minne och räkneenheter kan man inte se något! Vill vi se något måste vi, från programmet, påverka något externt! Till exempel, lagra resultatet i en fil som en rad tecken, eller visa den på skärmen. #include <stdio.h> main(){ printf("%d",12345*67890); } Det är svårt och många behöver skriva på skärmen, då finns det bibliotek som måste inkluderas av kompilatorn. Det som finns där är funktioner som vi måste lära oss att använda! Man skall läsa om de och förstå vad de förväntas som argument och vad de gör med dessa.

Vilken besvikelse! Vi kan använda datorn för att räkna C har många aritmetiska operationer fördefinierade! Men, så längre man bara använder datorns minne och räkneenheter kan man inte se något! Vill vi se något måste vi, från programmet, påverka något externt! Till exempel, lagra resultatet i en fil som en rad tecken, eller visa den på skärmen. #include <stdio.h> main(){ printf("%d",12345*67890); } Det är svårt och många behöver skriva på skärmen, då finns det bibliotek som måste inkluderas av kompilatorn. Det som finns där är funktioner som vi måste lära oss att använda! Man skall läsa om de och förstå vad de förväntas som argument och vad de gör med dessa.

Mera om printf Strängar printf("hello world\n"); Observera kontrolltecknet \n som markerar en radbyte. Observera att vi behöver ingen mönster sträng som första argument! Flera delar printf(%s%d%s%d%s, "the square of ", 11111, " is ", 11111*11111, "\n")

Mera om printf Strängar printf("hello world\n"); Observera kontrolltecknet \n som markerar en radbyte. Observera att vi behöver ingen mönster sträng som första argument! Flera delar printf(%s%d%s%d%s, "the square of ", 11111, " is ", 11111*11111, "\n")

Mera om printf Strängar printf("hello world\n"); Observera kontrolltecknet \n som markerar en radbyte. Observera att vi behöver ingen mönster sträng som första argument! Flera delar printf(%s%d%s%d%s, "the square of ", 11111, " is ", 11111*11111, "\n")

Mera om printf Strängar printf("hello world\n"); Observera kontrolltecknet \n som markerar en radbyte. Observera att vi behöver ingen mönster sträng som första argument! Flera delar printf(%s%d%s%d%s, "the square of ", 11111, " is ", 11111*11111, "\n")

Vilken besvikelse! Kan inte vi använda programmet för flera olika värden? Kommandoradsargument Programmet kan ta emot argument från kommandoraden. Efterssom det är main i programmet som körs, har man möjlighet att programmera main som en funktion med argument och, när operativ systemet startar programmet skickas dessa argument till main! #include <stdio.h> main(int argc, char * argv[]){ printf("%s%s","welcome ", argv[1]); }

Vilken besvikelse! Kan inte vi använda programmet för flera olika värden? Kommandoradsargument Programmet kan ta emot argument från kommandoraden. Efterssom det är main i programmet som körs, har man möjlighet att programmera main som en funktion med argument och, när operativ systemet startar programmet skickas dessa argument till main! #include <stdio.h> main(int argc, char * argv[]){ printf("%s%s","welcome ", argv[1]); }

Vilken besvikelse! Kan inte vi använda programmet för flera olika värden? Kommandoradsargument Programmet kan ta emot argument från kommandoraden. Efterssom det är main i programmet som körs, har man möjlighet att programmera main som en funktion med argument och, när operativ systemet startar programmet skickas dessa argument till main! #include <stdio.h> main(int argc, char * argv[]){ printf("%s%s","welcome ", argv[1]); }

Lite om typer I C, så som i många programspråk, finns det olika typer av värden. För varje typ finns vissa operationer och funktioner. Example Argumenten från kommandoraden är strängar av tecken medan * behöver tal för att beräkna resultatet! Just vad gäller tal brukar vi mäninskor inte medvetet skilja mellan följden av tecken och dess värde men när vi skall summera tal gör vi om strängen till en annan representation! Vilken? Vill vi läsa tal från kommandoraden måste vi ta emot en sträng och göra om den till tal! Efterssom detta är så pass vanligt, finns det stöd i språket: funktionen int atoi(char * str) återfinns i biblioteket stdlib.h

Lite om typer I C, så som i många programspråk, finns det olika typer av värden. För varje typ finns vissa operationer och funktioner. Example Argumenten från kommandoraden är strängar av tecken medan * behöver tal för att beräkna resultatet! Just vad gäller tal brukar vi mäninskor inte medvetet skilja mellan följden av tecken och dess värde men när vi skall summera tal gör vi om strängen till en annan representation! Vilken? Vill vi läsa tal från kommandoraden måste vi ta emot en sträng och göra om den till tal! Efterssom detta är så pass vanligt, finns det stöd i språket: funktionen int atoi(char * str) återfinns i biblioteket stdlib.h

Lite om typer I C, så som i många programspråk, finns det olika typer av värden. För varje typ finns vissa operationer och funktioner. Example Argumenten från kommandoraden är strängar av tecken medan * behöver tal för att beräkna resultatet! Just vad gäller tal brukar vi mäninskor inte medvetet skilja mellan följden av tecken och dess värde men när vi skall summera tal gör vi om strängen till en annan representation! Vilken? Vill vi läsa tal från kommandoraden måste vi ta emot en sträng och göra om den till tal! Efterssom detta är så pass vanligt, finns det stöd i språket: funktionen int atoi(char * str) återfinns i biblioteket stdlib.h

Lite om typer I C, så som i många programspråk, finns det olika typer av värden. För varje typ finns vissa operationer och funktioner. Example Argumenten från kommandoraden är strängar av tecken medan * behöver tal för att beräkna resultatet! Just vad gäller tal brukar vi mäninskor inte medvetet skilja mellan följden av tecken och dess värde men när vi skall summera tal gör vi om strängen till en annan representation! Vilken? Vill vi läsa tal från kommandoraden måste vi ta emot en sträng och göra om den till tal! Efterssom detta är så pass vanligt, finns det stöd i språket: funktionen int atoi(char * str) återfinns i biblioteket stdlib.h

Squares #include <stdio.h> main(int argc, char * argv[]){ printf("%s%d%s%d", "the square of ", atoi(argv[1]), " is ", atoi(argv[1])*atoi(argv[1])); } Vi ber programmet att beräkna atoi(argv[1]) 3 gånger!

Squares #include <stdio.h> main(int argc, char * argv[]){ printf("%s%d%s%d", "the square of ", atoi(argv[1]), " is ", atoi(argv[1])*atoi(argv[1])); } Vi ber programmet att beräkna atoi(argv[1]) 3 gånger!

Namn Abstraktion I programmet kan vi namnge uttryck för att använda namnet där uttrycket behövs. Detta hjälper till att organisera programmet och kan undvika upprepade beräkningar av samma uttryck! #include <stdio.h> main(int argc, char * argv[]){ int val = atoi(argv[1]); printf("%s%d%s%d", "the square of ", val, " is ", val*val ); }

Namn Abstraktion I programmet kan vi namnge uttryck för att använda namnet där uttrycket behövs. Detta hjälper till att organisera programmet och kan undvika upprepade beräkningar av samma uttryck! #include <stdio.h> main(int argc, char * argv[]){ int val = atoi(argv[1]); printf("%s%d%s%d", "the square of ", val, " is ", val*val ); }

Kortlek Kort finns inte i programspråket! Det finns inga värden som är kort och det finns inga operationer som har med kort att göra! Vi vill skriva program som handlar om kort. Var börjar vi?

Kortlek Kort finns inte i programspråket! Det finns inga värden som är kort och det finns inga operationer som har med kort att göra! Vi vill skriva program som handlar om kort. Var börjar vi?

Kortlek Kort finns inte i programspråket! Det finns inga värden som är kort och det finns inga operationer som har med kort att göra! Vi vill skriva program som handlar om kort. Var börjar vi?

Vad är ett kort? Den fransk-engelska kortleken består av 52 spelkort uppdelade i fyra så kallade färger, även kallade sviter. Varje färg innehåller ett ess, nummerkort från 2 till 10, en knekt, en dam och en kung. Esset var från början bara en etta, därför börjar nummerkorten på 2. Det finns totalt 13 olika i varje färg alltså, och en sammanfattande beteckning på dessa 13 är valörer. Ett korts identitet bestäms entydigt av dess färg och valör och en standardkortlek innehåller ett kort för varje tänkbar kombination av dessa båda egenskaper. sv.wikipedia.org/wiki/fransk-engelsk kortlek

Kort i C Vi vill så småningom kunna ha en typ för kort och definiera funktioner som har med kort att göra. Vi börjar med typer för svit och valör. I ett C program kan vi ha vårt eget bibliotek, av saker som vi behöver för vårt main! Example typedef enum {CLUB,SPADE, HEART, DIAMOND} suit; typedef enum {ACE,KING,QUEEN,KNIGHT,TEN, NINE, EIGHT, SEVEN, SIX, FIVE, FOUR, THREE,TWO} value;

Kort i C Vi vill så småningom kunna ha en typ för kort och definiera funktioner som har med kort att göra. Vi börjar med typer för svit och valör. I ett C program kan vi ha vårt eget bibliotek, av saker som vi behöver för vårt main! Example typedef enum {CLUB,SPADE, HEART, DIAMOND} suit; typedef enum {ACE,KING,QUEEN,KNIGHT,TEN, NINE, EIGHT, SEVEN, SIX, FIVE, FOUR, THREE,TWO} value;

Kort i C Vi vill så småningom kunna ha en typ för kort och definiera funktioner som har med kort att göra. Vi börjar med typer för svit och valör. I ett C program kan vi ha vårt eget bibliotek, av saker som vi behöver för vårt main! Example typedef enum {CLUB,SPADE, HEART, DIAMOND} suit; typedef enum {ACE,KING,QUEEN,KNIGHT,TEN, NINE, EIGHT, SEVEN, SIX, FIVE, FOUR, THREE,TWO} value;

Vad har vi gort? Nu kan vi i vårt program använda suit och value där vi behöver typer! På samma sätt som det finns värden i typerna int och char * så finns det värden i de nya typerna! SPADE är ett värde av typ suit Men, finns det operationer, funktioner? Nej! vi måste definiera de!

Vad har vi gort? Nu kan vi i vårt program använda suit och value där vi behöver typer! På samma sätt som det finns värden i typerna int och char * så finns det värden i de nya typerna! SPADE är ett värde av typ suit Men, finns det operationer, funktioner? Nej! vi måste definiera de!

Vad har vi gort? Nu kan vi i vårt program använda suit och value där vi behöver typer! På samma sätt som det finns värden i typerna int och char * så finns det värden i de nya typerna! SPADE är ett värde av typ suit Men, finns det operationer, funktioner? Nej! vi måste definiera de!

Att definiera funktioner Example Vi vill erbjuda möjlighet att visualisera sviterna till exempel genom att vissa esset av en given svit. Vilken funktion? Vi börjar med funktionens signatur: vad den heter, vilken typ av argument den förväntar sig och vilken typ av resultat den producerar. void showsuit(suit s) Detta är det man måste veta när man skall använda showsuit.

Att definiera funktioner Example Vi vill erbjuda möjlighet att visualisera sviterna till exempel genom att vissa esset av en given svit. Vilken funktion? Vi börjar med funktionens signatur: vad den heter, vilken typ av argument den förväntar sig och vilken typ av resultat den producerar. void showsuit(suit s) Detta är det man måste veta när man skall använda showsuit.

Att definiera funktioner Example Vi vill erbjuda möjlighet att visualisera sviterna till exempel genom att vissa esset av en given svit. Vilken funktion? Vi börjar med funktionens signatur: vad den heter, vilken typ av argument den förväntar sig och vilken typ av resultat den producerar. void showsuit(suit s) Detta är det man måste veta när man skall använda showsuit.

Att definiera funktioner Efterssom det finns program som kan visa bilder och det finns bilder på kort tillgängliga, kommer vi att använda oss av detta! Example SHOW A HEART Starta andra program Detta är också vanligt och svårt, så det finns stöd i Cs bibliotek. int system(char * cmnd) finns i biblioteket stdlib.h Example system("xv classic-cards/3.jpg")

Att definiera funktioner Efterssom det finns program som kan visa bilder och det finns bilder på kort tillgängliga, kommer vi att använda oss av detta! Example SHOW A HEART Starta andra program Detta är också vanligt och svårt, så det finns stöd i Cs bibliotek. int system(char * cmnd) finns i biblioteket stdlib.h Example system("xv classic-cards/3.jpg")

Att definiera funktioner Efterssom det finns program som kan visa bilder och det finns bilder på kort tillgängliga, kommer vi att använda oss av detta! Example SHOW A HEART Starta andra program Detta är också vanligt och svårt, så det finns stöd i Cs bibliotek. int system(char * cmnd) finns i biblioteket stdlib.h Example system("xv classic-cards/3.jpg")

Att definiera funktioner I kommandot till system behöver vi kunna välja olika filer beroende på vilken suit vi får! void showsuit(suit s){ switch(s){ case CLUB : system("xv classic-cards/1.png");return; case SPADE : system("xv classic-cards/2.png");return; case HEART : system("xv classic-cards/3.png");return; case DIAMOND : system("xv classic-cards/4.png");return; } }