Datorövning 1. int sgd(int m, int n) { int rest; while ( n!= 0 ) { rest = m % n; m = n; n = rest; return m;

Relevanta dokument
Tentamen i Objektorienterad Programmering 5p, Au, D, Fri, Pr,

Laboration 1 Introduktion till Visual Basic 6.0

3.5 Visuell programmering

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

PROGRAMMERING A VB 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL BASIC

Windows Forms Winstrand Development

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

HI1024 Programmering, grundkurs TEN

Lab5 för prgmedcl04 Grafik

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

LÖSNINGSFÖRSLAG TILL Tentamen i objektorienterad programmering i C++ I

Komponenter med COM (och COM+/VC++ 7.0)

Datorlaboration 0, Programmering i C++ (EDA623)

Räkna med ASP.NET Web Forms

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

Datorövning 1. Får du ej fram någon startsida startar du den från huvudmenyn Help Show Start Page.

Frekvenstabell över tärningskast med C#

Objektorienterad programmering Föreläsning 2

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

ÖREBRO UNIVERSITET. Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13.

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Datorlaboration 0, Programmering i C++ (EDAF30)

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

TDIU01 Programmering i C++

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

HI1024 Programmering, grundkurs TEN

Grundläggande programmering med C# 7,5 högskolepoäng

Lösningar till uppgifterna sätts ut på kurssidan och på WebCT (Gamla Tentor) i dag kl 19. Tentamen i Programmering C, 5p, Distans, övriga,

5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

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

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

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

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

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,

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Visa/Dolj knappar i Webeditor 8

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

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

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

TDIU01 - Programmering i C++, grundkurs

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

TDDC77 Objektorienterad Programmering

Frekvenstabell över tärningskast med C#

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

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

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

Övning: Arbeta med Azure Explorer

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

Tentamen Grundläggande programmering

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Del A (obligatorisk för alla)

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Code-Lite tutorial ( /RoJ)

Statistik över heltal

Kort om klasser och objekt En introduktion till GUI-programmering i Java

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

Klasser. Det är egentligen nu som kursen i programmeringsteknik börjar..., s k objektorienterad programmering.

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

Övningar Dag 2 En första klass

Programmering B med Visual C

Tentamen i Programmering

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 7 Erik Nilsson, Institutionen för Datavetenskap, LiU

Datorövning 1. Följ dessa instruktioner, och skapa och provkör det enkla C-programmet.

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

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

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

Objektorienterad Programmering (TDDC77)

TDDC76 - Programmering och Datastrukturer

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

TUTORIAL: KLASSER & OBJEKT

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Det finns många flaggor till g++,

Laboration 3, uppgift En klass för en räknare

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar

Objektorienterad Programmering (OOP) Murach s: kap 12-16

PROGRAMMERING A VC# 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL C#

ID1004 Laboration 4, November 2012

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13. Omtentamen i Programmering C, 5p, A1, D1, PA1, Fri,

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Övning. Introduktion och förberedelser

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

C++ Slumptalsfunktioner + switch-satsen

Malmö högskola 2007/2008 Teknik och samhälle

NetBeans 5.5. Avsikt. Projektfönster

Transkript:

Datorövning 1 A) Kör igång MicrosoftVisualC++-miljön. Välj File New Project från huvudmenyn och skapa ett nytt Win32 Console Project med namnet Mittnamn. Skapa en ny katalog, Oop, genom att vid Location bläddra till katalogen M:\PCSA\ och där skapa en ny katalog genom att använda musens högerknapp och i menyn välja, Nytt. Ditt projekt hamnar nu i katalogen M:\PCSA\Oop\Mittnamn\.. Glöm inte att välja ett tomt projekt med empty i Applicationfönstret som dyker upp. Välj från huvudmenyn View Solution Explorer och klicka med högerknappen på Source Files, välj Add och sedan Add New Item.I fönstret som dyker upp väljer du C++ File och ger filen namnet Mittnamn.cpp. I denna fil ska du skriva ett program som läser in ditt namn (både för- och efternamn) och skriver ut namnet ungefär mitt på skärmen. Kompilera genom att med högerknappen klicka på Mittnamn.cpp i Solution Explorer och välja Compile. Länka genom att från huvudmenyn välja Project Build och kör programmet med Start från Debug-menyn. Använd funktioner från iostream och conio för in- och utmatning och från MSViscon (kan laddas ner från kurssidan) för skärmhantering. MSViscon.cpp och MSViscon.h tar du med i projektet genom att med högerknappen på Source Files välja Add och sedan Add Excisting Item och på samma sätt med högerknappen på headerfiles för MSViscon.h. Kör programmet genom att från huvudmenyn välja Debug Start.Testa både cin >> och cin.getline vid inläsningen. Använd hjälpfunktionen (F1) för att hitta lämpliga funktioner samt se hur de anropas. När du har testat programmet färdigt stänger du det med File Close Solution. B) Skapa ett projekt Forkorta, som läser in täljare och nämnare till ett bråk och skriver ut detta förkortat. För att förkorta använder du funktionen sgd nedan som returnerar största gemensamma delaren till två tal. Skriv in funktionen före main i samma fil. int sgd(int m, int n) int rest; } while ( n!= 0 ) rest = m % n; m = n; n = rest; } return m; Kompilera länka och kör programmet. Kör också programmet radvis i debuggern genom att använda F10 eller F11. Ställ muspekaren på någon variabel och kolla in värdet på variabeln. 131

C) Skapa ett nytt tomt projekt Carmain och ta fram Solution Explorer där du med högerknappen på Source Files adderar en ny fil Car.cpp till projektet och på samma sätt på Header Files adderar en ny fil Car.h enligt nedan. Implementera funktionerna i filen Car.cpp och kompilera separat. Skriv sedan ett huvudprogram i filen Carmain.cpp som läser in två bilar och skriver ut dem i ordning med den lägsta effekten först. // Specifikation av klassen CAR Car.h class CAR private : char regnr[7]; float power; int nrcyl; // Registreringsnr // Effekt // Antal cylindrar public : bool is_less_power(car c); // Sant om objektet har lägre // effekt än c *D) Klassen RTAL nedan ska avbilda bråktal. Implementera funktionerna i filen Rtal.cpp Se till att varje räkne-operation returnerar ett förkortat bråk. Skriv sedan ett huvudprogram Rtalmain.cpp, som inkluderar Rtal.h och läser in tre bråk a, b och c och skriver ut värdet av uttrycket a + b*c. Kompilera, länka och kör. // Specifikation av klassen RTAL -- Rtal.h class RTAL private : int t; int n; public : void forkorta(); RTAL add(rtal rt); RTAL sub(rtal rt); RTAL mul(rtal rt); RTAL div(rtal rt); 132

Datorövning 2 A) Skriv en funktion swap, som tar två flyttal som parametrar och byter plats på dessa. Skriv först funktionen med pekare som parametrar och sedan med referensparametrar. Skriv ett enkelt huvudprogram som läser in två tal, kör swap och skriver ut talen. B) Skriv en liknande överlagrad funktion swap (samma namn) som istället tar två strängar som parametrar och byter plats mellan dessa. Använd samma huvudprogram som ovan där du efter talen fortsätter att läsa in två strängar (max 80 tecken), kör swap och skriver ut strängarna. Kontrollera med debuggern vilken funktion som körs. C) Skriv en funktion som tar en vektor av tärningskast och antalet kast som parametrar och returnerar medelvärdet av kasten. Låt funktionen ha defaultvärdet 1000 på antalet kast. Skriv ett huvudprogram som frågar efter hur många kast som ska göras och som dynamiskt skapar en vektor som exakt rymmer kasten. Anropa sedan funktionen som beräknar medelvärdet och skriv ut resultatet D) Gör om huvudprogrammet i uppgift C ovan så att antalet kast kan skickas som parameter till main. Anger man bara en parameter så ska 1000 kast göras. Kör först programmet i Visual studio miljön och sedan i Console miljön. Observera att alla parametrar till huvudprogrammet är strängar och måste göras om av ditt program till heltal med exempelvis funktionen atoi. *E) Implementera medlemsfunktionerna till klassen VEKTOR med specifikationen : // Specifikation av klassen VEKTOR -- Vektor.h class VEKTOR private : float *vp; int storlek; public : void skapa(int s); void tabort(); // skapa dynamiskt ett VEKTOR- // objekt med storlek s // avallokera ett VEKTOR-objekt // läs in elementen // skriv ut elementen samt skriv ett huvudprogram som skapar en vektor med tre element och skriver ut den på skärmen innan den tas bort. 133

**F) En matris kan ses som en vektor av vektorer eller pekare som exempelvis matrisen med 4 rader och 5 kolumner nedan : mat mat[0] mat[1] mat[2] mat[3] // Specifikation av klassen Matris -- Matris.h class MATRIS private: float **mat; int rad, kol; public: void skapa(int r, int k); void tabort(); I funktionen skapa allokerar man först r st pekare till flyttal och sedan kör man en loop och allokerar k st flyttal för varje rad. I funktionen tabort avallokeras först varje rad av flyttal och därefter tas pekarna bort. Skriv ett huvudprogram som skapar en matris med 2 rader och 3 kolumner och skriver ut den på skärmen innan den avallokeras. 134

Datorövning 3 A) Skriv ett Windows-program som visar texten Hej mitt i ett fönster om du trycker på knappen Show/Hide och som gömmer texten då man trycker på samma knapp en gång till. Välj File New Project, Windows Forms Application och sätt namnet Datorovn3A på projektet. Här får du en hel del av ditt program färdigt. Du får ett huvudformulär (Huvudfönster) Form1 där du kan placera olika komponenter i Designfönstret Form1.h(design). Huvuddprogrammet, Form1.cpp, är färdigt och den kod som du ska skriva skriver du i filen Form1.h. Markera formuläret Form1 i Form1.h(design) fönstret och sätt i Property-fönstret, som du får fram genom att klicka med högerknappen i Formuläret Form1, property (egenskapen) Text till "En hälsning från", följt av ditt namn. Välj View Toolbox och klicka på komponenten Label (rubrik) i Window Forms och dra ut och placera en Label på formuläret Form1 i design-fönstret. Sätt property Namn till HejLabel och sätt property Text till Hej med största möjliga font som du väljer genom att klicka på de tre punkterna hos property Font. Välj sedan komponenten Button från Toolbox menyn och placera den under HejLabel. Ge den namnet ShowHideButton och texten Show/Hide. Markera knappen Show/Hide och klicka på events och dubbelklicka på den vita ytan vid händelsen click. Nu har du fått en händelsefunktion i filen Form1.h där du kan skriva vad som ska hända när du klickar på knappen Show/Hide. Skriv in koden if (HejLabel->Visible) HejLabel->Hide(); else HejLabel->Show(); Provkör och testa. Du kanske vill att Hej inte ska synas förrän du har tryckt på knappen. Det kan du fixa genom att antingen ändra property Visible eller också skriva kod i konstruktorn i Form1.h. B) Skriv ett program som istället för att visa Hej i fönstret visar en bitmapbild. Istället för en Label ska du använda en Picturebox. Denna komponent plockar du ner från Toolboxen och ger den namnet FotoPictureBox. För att ladda ner bilden klickar du på Picture i property. Klicka på de tre punkterna och leta med browsern fram den bild som du vill visa. För att visa bilden byter du ut koden som visade Hej till if (FotoPictureBox->Visible) FotoPictureBox->Hide(); else FotoPictureBox->Show(); C) Skriv ett program som visar en TextBox-komponent innehållande ditt namn istället för en Label som i uppgift A. Namnet i textboxen ska dyka upp då man klickar på Show/Hide och försvinna då man klickar en gång till. Använd knappens Clickhändelse där du anropar MyTextBox enligt: if (MyTextBox->get_Text()->Length == 0) MyTextBox->set_Text("Kalle Anka"); else MyTextBox->set_Text(""); 135

*D) Skriv ett program som har en knapp Show som när man klickar på den visar en MessageBox med en hälsningstext. För att visa en MessageBox skriver du MessageBox::Show( Hej, Hälsning från Kalle Anka ); Eftersom Show är en klassmetod, alltså en metod som är gemensam för alla objekt i klassen, anropas den med klassnamnet. Använd OK-knappen på MessageBoxen för att den ska försvinna. **E) Skriv ett program som via en meny kan läsa in ett heltal, skriva ut talet och avsluta programmet. Grafiskt användargränssnitt (GUI) enligt: Läs ska ge en egentillverkad inmatningsbox, som du adderar till projektet med Add New Item och väljer Item till WindowsForm, enligt: Lägg sedan till knappar (Ok och Cancel), textbox och Label (Ge tal) och använd ShowDialog på Indialogfönstret så att du kommer åt det inmatade värdet. Skriv ska ge en MessageBox enligt: 136