Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Nu till dagens ämne: Vi rekapitulerar det första problemet ur ProblemI:



Relevanta dokument
Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Detta är andra problemlösningsföreläsningen, vi diskuterar problemen ur Problem II.

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

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

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

Maria Österlund. Inför festen. Mattecirkeln Addition 2

C++ Slumptalsfunktioner + switch-satsen

3.3 for-satsen. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 3

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Enkla uppgifter. Uppgift 1. Uppgift 2

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010

Programmeringsteknik med C och Matlab

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

Programmering Grundkurs (6H2950) Grundläggande Programmering (6A2001)

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

Prov kapitel FACIT Version 1

4 Sammansatta datatyper

Belopp Belopp > procent

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

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

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

Tips och tricks 1 Cadcorp SIS

Programmeringsuppgifter 1

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

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

Enkla datatyper minne

Facit till Några extra uppgifter inför tentan Matematik Baskurs. x 2 x

SVEMO TA - REGISTRATOR

Objektorienterad programmering D2

Chapter 3: Using Classes and Objects

205. Begrepp och metoder. Jacob Sjöström

Användarhandledning pcskog Bmwin 2011

"if"-satsen. Inledande programmering med C# (1DV402)

tentamensdags och lab 3

Wienerprocesser. Finansiell statistik, vt-05. Enkel slumpvandring. Enkel slumpvandring. Varför: model för aktiekurs (dock med aber...

Tentamen OOP

Uppgift 1 (Oläsliga krypterade meddelanden)


Dagordning (Kopiera så att alla körmedlemmar kan läsa) Årsmötesprotokoll Färdig mall som du bara fyller i.

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

Planering av egen cup - Steg 4: Under cupdagarna

Grupparbete L ÄR ARHANDLEDNING TRO, HOPP & KÄRLEK. Sjömanstatueringar.

Programmering Grundkurs (HI1900) Teoridel

Känguru 2011 Student (gymnasiet åk 2 och 3)

Föreläsning 4: Poster

UPPGIFT 1 V75 FIGUR 1.

Introduktion till PHP

Programmeringsolympiaden 2012 Kvalificering

HI1024 Programmering, grundkurs TEN

UPPGIFT 1 KANINER. Håkan Strömberg 1 Pär Söderhjelm

OOP Omtenta

Tentaupplägg denna gång

Hej! Jag heter Peter Siepen. I år är jag värd för Vår Ruset där den här trevliga Träningsdagboken lanseras. Ge mig ett par minuter så ska jag visa

Textsträngar från/till skärm eller fil

Följande, ur problemsynpunkt enkla uppgifter, är till för att nöta in dagens teori.

Var? Drygt 100 planer" Göteborg, Mölndal och Kungsbacka"

Data, typ, selektion, iteration

Resultatsammanställning för alkoholer/etylenglykol

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentaupplägg denna gång

(a) Hur stor är sannolikheten att en slumpvist vald person tror att den är laktosintolerant?

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB

2. Komma igång Skapa grupper och elever Skriv också ut sidan 13 så att eleverna har en snabbguide till programmet.

STYRANDE SATSER. 1) Skriv ett program som räknar ut hur många år du har till pensionen. Vi räknar här med att man pensioneras det år man fyller 65 år.

Lektion 1 - Programmeringsteknik F1, ht 2003

Tävlingsinformation 2016

Senaste revideringen av kapitlet gjordes , efter att ett fel upptäckts.

Har er förening tillstånd för lotterier?

BEDÖMNINGSSTÖD. till TUMMEN UPP! matte inför betygssättningen i årskurs 6

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

Att använda pekare i. C-kod

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

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

Flyttal kan också hantera vanliga tal som både 16- och 32-bitars dataregister hanterar.

TENTAMEN. Programmering Grundkurs (HI1900) Skrivtid 13:15-18:15. Tisdagen 26 april Tentamen består av 8 sidor

SMD 134 Objektorienterad programmering

Lönestatistik Jordbrukssektionen inom Skogs- och Lantarbetsgivareförbundet

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

HI1024 Programmering, grundkurs TEN

Skizz till en enkel databas

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

Domarassistenten.com. - en introduktion för domare

Flera kvantifierare Bevis Direkt bevis Motsägelse bevis Kontrapositivt bevis Fall bevis Induktionsprincipen. x y (x > 0) (y > 0) xy > 0 Domän D = R


Ickelinjära ekvationer

DE FYRA RÄKNESÄTTEN (SID. 11) MA1C: AVRUNDNING

SANNOLIKHET OCH SPEL

Svar och arbeta vidare med Student 2008

Omvårdnadspersonal Dokumentation HSL Rutin för dokumentation av omvårdnadspersonal vid hälso- och sjukvårdsinsatser

Grunderna i stegkodsprogrammering

PROGRAMMERING A VC# 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL C#

SORTERING OCH SÖKNING

BIOSTATISTISK GRUNDKURS, MASB11 ÖVNING 8 ( ) OCH INFÖR ÖVNING 9 ( )

UPPGIFT 1 ÖVERSÄTTNING

Tentamen i Programmering grundkurs och Programmering C

7 Använd siffrorna 0, 2, 4, 6, 7 och 9, och bilda ett sexsiffrigt tal som ligger så nära som möjligt.

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

Distriktsfinal. Del 1: 7 uppgifter Tid: 60 min Maxpoäng: 21 (3p/uppgift)

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Transkript:

Föreläsning 4 Detta är den första problemlösningsföreläsningen, det är meningen att ni till idag ska ha studerat de första problemen i problemsamlingen som heter ProblemI, ProblemII, ProblemIII och ProblemIV. OBS: Nästa föreläsning, nr 5, om SDL kräver speciella förberedr! Läs i nästa föreläsning om ni inte redan gjort det. Nu till dagens ämne: Vi rekapitulerar det första problemet ur ProblemI: Gissa talet Skriv programmet Gissa ett tal! Datorn tänker på ett tal genom att slumpa ett heltal i intervallet [1,100]. Användaren skall försöka gissa det hemliga talet. Datorn besvarar gissningarna med Större!, Mindre! eller Rätt!. Jag tänker nu på ett tal i intervallet [1..100]. Gissa talet! 37 Större! Gissa talet! 65 Mindre! Gissa talet! 52 Större! Gissa talet! 56 Rätt! Du gissade rätt på 4 gissningar. Hur har det gått för er? har ni löst problemet? De som inte har löst det, vilka svårigheter har ni stött på? De som har löst problemet vilka svårigheter har ni klarat av? Kan ni precisera hur ni har klarat av dessa svårigheter? De som inte har löst det, kan ni ta till er av hur man kan angripa problem i framtiden? Vi ser på ett lösningsförslag: Johnny Panrike, johnny.panrike@sth.kth.se Sidan 1 av 8

#include <stdio.h> #include <conio.h> #include <stdlib.h> // Gissa ett tal i intervallet [1..100] int main(void) int svar, gissning, antal=0; srand(time(0)); svar=(rand()%100)+1; printf("jag tänker nu på ett tal i intervallet [1..100]. \n"); do printf("gissa talet! "); scanf("%d",&gissning); antal++; if(gissning<svar) printf("större! "); if(gissning>svar) printf("mindre! "); while (gissning!=svar); printf("rätt! \n"); printf("du gissade rätt på %d gissningar.",antal); getch(); Johnny Panrike, johnny.panrike@sth.kth.se Sidan 2 av 8

Vi tittar på problem nummer 2: Decimalt till binärt Skriv ett program som läser in ett positivt heltal, representerat på basen 10, och skriver ut talet binärt. Talet på decimalform: 53 På binärform blir det 110101. Hur har det gått för er? har ni löst problemet? De som inte har löst det, vilka svårigheter har ni stött på? De som har löst problemet vilka svårigheter har ni klarat av? Kan ni precisera hur ni har klarat av dessa svårigheter? De som inte har löst det, kan ni ta till er av hur man kan angripa problem i framtiden? Vi ser på ett lösningsförslag: Johnny Panrike, johnny.panrike@sth.kth.se Sidan 3 av 8

#include <stdio.h> #include <conio.h> // Konverterar ett tal på decimalform till binärform void main(void) int tal, varde; printf("talet på decimalform (positivt heltal) : "); scanf("%d",&tal); printf("på binärform blir det "); // Finn värdet på mest signifikanta biten. varde=1; while(tal>=2*varde) varde=varde*2; // Ta fram en bit i taget, framifrån. while(varde>0) if(tal/varde==1) printf("1"); tal=tal-varde; printf("0"); varde=varde/2; getch(); Johnny Panrike, johnny.panrike@sth.kth.se Sidan 4 av 8

Vi tittar på problem nummer 3: Siffersumman Skriv ett program som läser in ett positivt heltal, och skriver ut talets siffersumma (d v s summan av de siffror som ingår i talet). (I exemplet nedan får vi siffersumman som 1+6+3+2=12.) Mata in ett tal: 1632 Siffersumman är 12. Hur har det gått för er? har ni löst problemet? De som inte har löst det, vilka svårigheter har ni stött på? De som har löst problemet vilka svårigheter har ni klarat av? Kan ni precisera hur ni har klarat av dessa svårigheter? De som inte har löst det, kan ni ta till er av hur man kan angripa problem i framtiden? Vi ser på ett lösningsförslag: #include <stdio.h> #include <conio.h> #include <stdlib.h> // Programmet beräknar siffersumman av ett tal >=0 void main(void) int tal, siffersumma=0; printf("mata in ett tal : "); scanf("%d",&tal); while(tal>0) siffersumma=siffersumma+tal%10; tal=tal/10; printf("siffersumman är %d",siffersumma); getch(); Johnny Panrike, johnny.panrike@sth.kth.se Sidan 5 av 8

Vi tittar på problem nummer 4: Vem vinner? Anna och Bengt spelar en match bestående av n omgångar av ett visst spel. Sannolikheten att Anna vinner en enskild omgång är p%, och sannolikheten att hon förlorar är (100-p)% - en omgång kan inte sluta oavgjort. Vi vill nu beräkna sannolikheten för de tre möjliga matchresultaten (vinst, oavgjort, förlust). Detta kan göras exakt om man har läst en grundkurs i statistik, men det bortser vi från här. Vi skall istället simulera 10000 matcher! Skriv ett program som simulerar 10000 sådana matcher och skriver ut en lista enligt nedan. Sannolikheterna i listan skall anges med fyra decimaler. Hur många omgångar? 4 Sannolikheten att Anna vinner en omgång (i hela %)? 60 Sannolikheten att Anna vinner matchen är 0.4752 Sannolikheten att matchen slutar oavgjort är 0.3456 Sannolikheten att Anna förlorar matchen är 0.1792 Hur har det gått för er? har ni löst problemet? De som inte har löst det, vilka svårigheter har ni stött på? De som har löst problemet vilka svårigheter har ni klarat av? Kan ni precisera hur ni har klarat av dessa svårigheter? De som inte har löst det, kan ni ta till er av hur man kan angripa problem i framtiden? Vi ser på ett lösningsförslag: Johnny Panrike, johnny.panrike@sth.kth.se Sidan 6 av 8

#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> int main(void) int n, p, delta, i, j, won=0, draw=0, lost=0, slumptal; /* delta=skillnaden mellan antalet vinster och antalet förluster /* för Anna i en pågående match */ /* won=vinster, draw=oavgjorda, lost=förluster (matcher) */ printf("hur många omgångar består matchen av? "); scanf("%d",&n); printf("sannolikheten att Anna vinner en omgång (i hela %)? "); scanf("%d",&p); srand(time(0)); for(i=1;i<=10000;i++) delta=0; for(j=1;j<=n;j++) /* Ett tal i intervallet [1,100] dras. Om t ex sannolikheten /* att Anna vinner är 60%, så får Anna "60 av 100 lotter".*/ /* Om slumptalet är <=60 så vinner Anna omgången, i annat */ /* fall förlorar hon den.*/ slumptal=(rand()%100)+1; if(slumptal<=p) delta++; delta--; /* Nu är matchen slut. Tag reda på hur matchen slutade. */ if(delta>0) won++; if(delta==0) draw++; lost++; Johnny Panrike, johnny.panrike@sth.kth.se Sidan 7 av 8

/* Nedan sker en s k typomvandling. won/10000 ger ett heltal,*/ /* medan won/10000.0 ger ett flyttal */ printf("sannolikheten att Anna vinner matchen är %.4f\n", won/10000.0); printf("sannolikheten att matchen slutar oavgjort är %.4f \n", draw/10000.0); printf("sannolikheten att Anna förlorar matchen är %.4f \n", lost/10000.0); getch(); Johnny Panrike, johnny.panrike@sth.kth.se Sidan 8 av 8