Console::Write("Velg en prosess ved å trykke et nummer"); Console::Write("1. Start Kalkulatoren"); Console::Write("2.

Like dokumenter
2. ØVING I WINDOWS FRA CHRISTIAN ANDOLO

public ref class TraadKlasse { public: static void traadramme() { int teller=0; array<string^>^colornames = Enum::GetNames(ConsoleColor::typeid);

static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden

// Handlanger.cpp : main project file. #include "stdafx.h"

Program delegate. Lage et nytt prosjekt i Visual Studio

1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO

static int skrivetidsfrist = 0; // antall overskredet tid når skrive

Program socket server

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7

INF1000 oppgaver til uke 38 (17 sep 23 sep)

Avdeling for ingeniørutdanning Institutt for teknologi

Programmering i C++ Løsningsforslag Eksamen høsten 2005

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

UNIVERSITETET I OSLO

INF1010. grensesni-et Comparable<T> grensesni-et Iterable<T> rekursjon

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF Notater. Veronika Heimsbakk 10. juni 2012

Løse reelle problemer

1,r H øgs kolen i Østfol d

INF Løsning på seminaropppgaver til uke 8

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Høgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N. Grunnleggende programmering

UNIVERSITETET I OSLO

INF Uke 10. Ukesoppgaver oktober 2012

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

UNIVERSITETET I OSLO

GUI («Graphical User Interface») del 2

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

"behrozm" Oppsummering - programskisse for traversering av en graf (dybde først) Forelesning i INF februar 2009

UNIVERSITETET I OSLO

INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd

OPPGAVE 5b og 8b Java Kode

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

Sortering med tråder - Quicksort

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

I et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ

INF1010 Eksamenstips. Løsningsforslag prøveeksamen del 1.

Løse reelle problemer

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Forelesning inf Java 4

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Rekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Ukeoppgaver INF1000: 12. feb 16. feb

Jentetreff INF1000 Debugging i Java

INF1010 Binære søketrær ++

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

INF1010. Grensesnittet Comparable<T>

Gjennomgang av eksamen H99

INF 1010, vår 2005 Løsningsforslag uke 11

INF1010 Sortering. Marit Nybakken 1. mars 2004

Program brusautomat Eksempel på en tilstandsmaskin

Rekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr

INF1000: Forelesning 4. Mer om arrayer Metoder

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java

INF1000 : Forelesning 4

Socket og ServerSocket

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:

Dagens tema C, adresser og pekere

Ark 3 av 26. printf("i adresse %08x ligger b med verdien %d.\n", &b, b); printf("i adresse %08x ligger a med verdien %d.

IN1010 våren januar. Objektorientering i Java

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

Algoritmer og datastrukturer Eksamen

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

UNIVERSITETET I OSLO

Eksamensoppgave i IMT1082 Objekt-orientert programmering

Kontinuasjonseksamen

Kontinuasjonseksamensoppgave i IMT1082 Objekt-orientert programmering

Mattespill Nybegynner Python PDF

Feilmeldinger, brukerinput og kontrollflyt

Oblig 4Hybelhus litt mer tips enn i oppgaven

Mer objektorientert programmering

Algoritmer og datastrukturer Eksamen

Programmering Høst 2017

K O N T I N U A S J O N S E K S A M E N

UNIVERSITETET I OSLO

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Kapittel 8: Programutvikling

Dagens tema INF1070. Vektorer (array er) Tekster (string er) Adresser og pekere. Dynamisk allokering

En klasse er noe - en metode gjør noe (! / # <= (! * +!! ",-' %. "- -/ %.!#) )! " 0'%! * *$! "1-)) '' % '. 22!'( 7/ /! * 2 2! "*"% 8"%% 9 - -!

Algoritmer og datastrukturer Løsningsforslag

UNIVERSITETET I OSLO

Seminaroppgaver IN1010, uke 2

Vektorer. Dagens tema. Deklarasjon. Bruk

Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO

Del 1 En oversikt over C-programmering

Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Rekursjon. Binærsøk. Hanois tårn.

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

KONTINUASJONSEKSAMEN

Transkript:

Oppgave 1 // Uke2opggave1.cpp : main project file. #include "stdafx.h" using namespace System; using namespace System::Diagnostics; int main(array<system::string ^> ^args) Console::Title = "Eksempel prosess"; Console::Write("Velg en prosess ved å trykke et nummer"); Console::CursorTop = 5; Console::Write("1. Start Kalkulatoren"); Console::CursorTop = 7; Console::Write("2. Start Paint"); Console::CursorTop = 9; Console::Write("3. Start Notepad"); Console::CursorTop = 11; Console::Write("4. Start Exel"); //Har ikke exel så det blir open office sin versjon av exel

Console::CursorTop = 13; Console::Write("Velg funksjon: "); String^ str = Console::ReadLine(); int valg = System::Convert::ToInt32(str); Process^ calcprosess = gcnew Process; Process^ paintprosess = gcnew Process; Process^ notepadprosess = gcnew Process; Process^ exelprosess = gcnew Process; ProcessStartInfo^ calcprosessinfo = gcnew ProcessStartInfo("C:\\windows\\system32\\calc.exe"); ProcessStartInfo^ paintprosessinfo = gcnew ProcessStartInfo("C:\\windows\\system32\\mspaint.exe"); ProcessStartInfo^ notepadprosessinfo = gcnew ProcessStartInfo("C:\\windows\\system32\\notepad.exe"); ProcessStartInfo^ exelprosessinfo = gcnew ProcessStartInfo("C:\\Program Files\\OpenOffice.org 3\\program\\scalc.exe"); calcprosess->startinfo = calcprosessinfo; paintprosess->startinfo = paintprosessinfo; notepadprosess->startinfo = notepadprosessinfo; exelprosess->startinfo = exelprosessinfo; if(valg == 1) calcprosess->start(); if(valg == 2) paintprosess->start();

if(valg == 3) notepadprosess->start(); if(valg == 4) exelprosess->start(); Console::WriteLine("\n "); return 0; Oppgave 2 // Uke2oppgave2.cpp : main project file. #include "stdafx.h" using namespace System; using namespace System::Threading; /* Her kan du forandre litt i både hvordan du kan prioritere og velge å drøye koden ved å kjøre. Det gjøres ved sleep kommandoen som jeg har lagt før hver gang enten for løkka eller while løkka kjører. Også ved bruk av semaphore kan jeg kjøre to 2 tråder sammtidig, slik at de ikke kræsjer. Uten den ville ikke programmet ha funket. Dette gjørs ved komandoene WaitOne() som gjør at den starter så andre tråder ikke kan kjøre samtidig, og ved release() så stopper tråden. Så disse kommandoen vil fungere om hverandre hvis vi vil kjøre flere prosesser samtidig. */

public ref class TraadEksempel private: static Semaphore^ m_semaforskjerm; public: static void Skriveteller() int teller=0; while(true) //Eving løkke Thread::Sleep(20); m_semaforskjerm->waitone(); if(++teller <= 10000) ConsoleColor::DarkRed; Console::BackgroundColor = Console::CursorLeft = 0; Console::CursorTop = 2; Console::Write("Tråd 1 (Skriver alle tall opp til 10 000 og deretter starte på nytt): " + teller++); else teller=0; ConsoleColor::DarkRed; Console::BackgroundColor = Console::CursorLeft = 0; Console::CursorTop = 2; Console::Write("Tråd 1 (Skriver alle tall opp til 10 000 og deretter starte på nytt): ");

m_semaforskjerm->release(); public: static void Skriveascii() int teller2=0; while(true) //Evig løkke if (++teller2 <= 255) Thread::Sleep(200); m_semaforskjerm->waitone(); ConsoleColor::DarkMagenta; Console::BackgroundColor = Console::CursorLeft = 0; Console::CursorTop = 5; Console::Write("Tråd 2 (Skal skrive ut alle ascii tallene): " + Convert::ToChar(teller2)); //her skrives ut ascii tegnene ved bruk av string(char) else teller2 = 0; m_semaforskjerm->release(); void Main() m_semaforskjerm = gcnew Semaphore(1,1);

ThreadStart^ threaddelegate1 = gcnew ThreadStart(Skriveteller); ThreadStart^ threaddelegate2 = gcnew ThreadStart(Skriveascii); Thread^ traad1 = gcnew Thread(threadDelegate1); //traad1->priority = ThreadPriority::Lowest; //her kan jeg sette prioritet, enten normal, lowest traad1->start(); //starter tråd1 ; Thread^ traad2 = gcnew Thread(threadDelegate2); //traad2->priority = ThreadPriority::Normal; //her kan jeg sette prioritet, enten normal, lowest traad2->start(); //starter tråd2 int main(array<system::string ^> ^args) Console::Title = "Uke 2 Oppgave 2"; TraadEksempel^ tradeksempel = gcnew TraadEksempel(); tradeksempel->main(); //starter trådeksempel return 0; Oppgave 3 // Uke2oppgave3.cpp : main project file. #include "stdafx.h"

using namespace System; using namespace System::Diagnostics; using namespace System::Threading; public ref class Eksempel public: static void Ramme() int teller = 0; array<string^>^colornames = Enum::GetNames(ConsoleColor::typeid); array //Legger fagene i en while(true) Thread::Sleep(1000); ConsoleColor spartcolor = Console::BackgroundColor; int Posx = Console::CursorLeft; int Posy = Console::CursorTop; if (++teller == colornames->length) teller = 0; Console::BackgroundColor = *dynamic_cast<consolecolor^> colornames[teller])); (Enum::Parse(ConsoleColor::typeid, for (int i=2; i<50 ; i++) Console::CursorLeft = i;

Console::CursorTop = 2; //Øverste Rammen Console::Write("/"); Console::CursorTop = 20; //Nederste Rammen Console::Write("/"); for (int j=2; j<=20 ; j++) Console::CursorLeft = 2; Console::CursorTop = j; //Venstre Ramme Console::Write("/"); Console::CursorLeft = 50; //Høre Ramme Console::Write("/"); Console::BackgroundColor = spartcolor; Console::CursorLeft = Posx; Console::CursorTop = Posy; void Main() ThreadStart^ threaddelegate1 = gcnew ThreadStart(Ramme); Thread^ traad1 = gcnew Thread(threadDelegate1); traad1->start(); //Starter tråden

; int main(array<system::string ^> ^args) Console::Title = "Uke 2 oppgave 3"; Eksempel^ eksempel = gcnew Eksempel(); eksempel->main(); //Kjører Tråden Console::CursorTop = 5; Console::Write("Velg en prosess ved å trykke et nummer"); Console::CursorTop = 8; Console::Write("1. Start Kalkulatoren"); Console::CursorTop = 10; Console::Write("2. Start Paint"); Console::CursorTop = 12; Console::Write("3. Start Notepad"); Console::CursorTop = 14; Console::Write("4. Start Exel");

Console::CursorTop = 16; Console::Write("Velg funksjon: "); String^ str = Console::ReadLine(); int valg = System::Convert::ToInt32(str); Process^ calcprosess = gcnew Process; Process^ paintprosess = gcnew Process; Process^ notepadprosess = gcnew Process; Process^ exelprosess = gcnew Process; ProcessStartInfo^ calcprosessinfo = gcnew ProcessStartInfo("C:\\windows\\system32\\calc.exe"); ProcessStartInfo^ paintprosessinfo = gcnew ProcessStartInfo("C:\\windows\\system32\\mspaint.exe"); ProcessStartInfo^ notepadprosessinfo = gcnew ProcessStartInfo("C:\\windows\\system32\\notepad.exe"); ProcessStartInfo^ exelprosessinfo = gcnew ProcessStartInfo("C:\\Program Files\\OpenOffice.org 3\\program\\scalc.exe"); exel //Har ikke exel så det blir open office sin versjon av calcprosess->startinfo = calcprosessinfo; paintprosess->startinfo = paintprosessinfo; notepadprosess->startinfo = notepadprosessinfo; exelprosess->startinfo = exelprosessinfo; if(valg == 1) calcprosess->start(); if(valg == 2)

paintprosess->start(); if(valg == 3) notepadprosess->start(); if(valg == 4) exelprosess->start(); return 0; Beskrivelse Oppgavene har jeg løst ved hjelp av eksemper fra hjemmesiden til faglærer og litt hjelp fra studass. Det største problemet var rammen i siste oppgave som jeg fikk hjelp av studass. Der prøvde jeg ved hjelp av en teller å skrive manuelt ut fargekoden, men fikk ikke det til å brukte heller en fra fagsiden, der hvor jeg lager en fargeliste og skriver den ut samtidig med rammen. Skjermdumping Oppgave 1 Oppgave 2

Oppgave 3