Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Слични документи
Tutoring System for Distance Learning of Java Programming Language

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

Funkcije predavač: Nadežda Jakšić

P11.3 Analiza zivotnog veka, Graf smetnji

Microsoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode]

Microsoft Word - 11 Pokazivaci

Програмирај!

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Funkcije predavač: Nadežda Jakšić

Postavka 2: Osnovni graf algoritmi 1 DISTRIBUIRANI ALGORITMI I SISTEMI Iz kursa CSCE 668 Proleće 2014 Autor izvorne prezentacije: Prof. Jennifer Welch

P9.1 Dodela resursa, Bojenje grafa

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

Microsoft Word - AIDA2kolokvijumRsmerResenja.doc

Grananje u programu predavač: Nadežda Jakšić

Microsoft Word - Lekcija 11.doc

PROMENLJIVE, TIPOVI PROMENLJIVIH

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

1 jmbag ime i prezime Programiranje 2 prvi kolokvij, Rezultati i uvidi u kolokvije: Rezultati u petak, 3.5., navečer na webu, a uvidi u p

Рационални Бројеви Скуп рационалних бројева 1. Из скупа { 3 4, 2, 4, 11, 0, , 1 5, 12 3 } издвој подскуп: а) природних бројева; б) целих броје

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

KATALOG ZNANJA IZ INFORMATIKE

Техничко решење: Метода мерења ефективне вредности сложенопериодичног сигнала Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић

Projektna dokumentacija Boostowski - mobile

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Slide 1

Uvod u računarstvo 2+2

Programiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

8 2 upiti_izvjesca.indd

Konstrukcija i analiza algoritama Nina Radojičić februar Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne fun

Zadatak T=5: Jedinica WBSD propušta vred Potiče iz polja Rwb.LMD Signal Rwb.WRLMD izaziva propuštanje ove vrednosti 2. Vrednost 0000

Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra

3.Kontrlne (upravlja~ke) strukture u Javi

Primenjeno programiranje - vezbe GUI i baze podataka

Microsoft PowerPoint - 12-Funkcije_1.ppt [Compatibility Mode]

PowerPoint Presentation

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

PowerPoint Presentation

Tutoring System for Distance Learning of Java Programming Language

Programiranje za UNIX Okruženje unix procesa

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

2015_k2_z12.dvi

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

1, 2, 3, кодирај! Активности циклуса 4 Пројект «Аркадне игре» - Час 6: Програмирање падања новчића (наставак) Доминантна дисциплина Математикa Резиме

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Microsoft Word - uputstvo-estudent-v2.docx

Електротехнички факултет Универзитета у Београду Катедра за рачунарску технику и информатику ИР3ПИА - Пројекат из предмета Програмирање интернет аплик

Algoritmi i arhitekture DSP I

Strukture predavač: Nadežda Jakšić

INDIKATOR SVJETLA FUNKCIJE TIPKI 1. Prikazuje se temperatura i parametri upravljanja 2. Crveno svjetlo svijetli kad grijalica grije 3. Indikator zelen

Microsoft PowerPoint - C-4-1

Upitni jezik SQL

Slide 1

Uvod u statistiku

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

Algoritmi SŠ P1

Uvod u računarstvo 2+2

Računarski praktikum I - Vježbe 11 - Funktori

Document ID / Revision : 0419/1.1 ID Issuer Sustav (sustav izdavatelja identifikacijskih oznaka) Upute za registraciju gospodarskih subjekata

РЕПУБЛИКА СРПСКА МИНИСТАРСТВО ПРОСВЈЕТЕ И КУЛТУРЕ РЕПУБЛИЧКИ ПЕДАГОШКИ ЗАВОД Милоша Обилића 39 Бањалука, Тел/факс 051/ , 051/ ; p

Korisničko uputstvo mobilne aplikacije Digitalni Kiosk 1

Introduction to Programming

MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU

PowerPoint Presentation

Припејд картица Корисничко упутство

Microsoft Word - VEROVATNOCA II deo.doc

Prikaz znakova u računalu

1 Polinomi jedne promenljive Neka je K polje. Izraz P (x) = a 0 + a 1 x + + a n x n = n a k x k, x K, naziva se algebarski polinom po x nad poljem K.

Drveta odlucivanja - algoritmi

Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica

Uvod u računarstvo 2+2

PowerPoint Presentation

Електротехнички факултет Универзитета у Београду Катедра за рачунарску технику и информатику ИР3ПИА - Пројекат из предмета Програмирање интернет аплик

OSNOVNA ŠKOLA, VI RAZRED MATEMATIKA

Slide 1

CPHP_19

СТАРТ - СТОП ПАРКИНГ СИСТЕМ КОРИСНИЧКО УПУТСТВО страна 1 од 12

СТАРТ - СТОП АПЛИКАЦИЈА - КОРИСНИЧКО УПУТСТВО

Introduction to Programming

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Laboratorija za termičku obradu Inženjerstvo površina Kratko uputstvo za obradu i analizu profila u programskom paketu SPIP Programski paket SPIP preu

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА школска 2017/2018. година ТЕС

Microsoft Word - Odluka o dodeli ugovora

Natjecanje 2016.

Uvod u takmičarsko programiranje

RA

Algoritmi SŠ P1

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

Grafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odr

1. GRUPA Pismeni ispit iz MATEMATIKE Prezime i ime broj indeksa 1. (15 poena) Rexiti matriqnu jednaqinu 3XB T + XA = B, pri qemu

UPUTSTVO ZA KRETANJE KROZ EON KORISNIČKI INTERFEJS 1

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa.

Microsoft Word - Uputstvo za upotrebu studentskih servisa.doc

Uputstvo za korištenje korisničkog web portala AC-U UPUTSTVO ZA KORIŠTENJE KORISNIČKOG WEB PORTALA Izdanje: 1, maj / svibanj 2019 Strana 2 od 1

I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.

Dinamičko programiranje Primer 1: Za dati niz naći njegov najduži neopadajući podniz. Defnicija: podniz nekog niza je niz koji se dobija izbacivanjem

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

OOP1 - domaci 2 (2004/05)

Транскрипт:

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Brkić SI 29/15 Zrenjanin 2018. Softversko inženjerstvo

Sadržaj 1. Zadatak... 3 2. Zadatak... 6 3. Zadatak... 9

1. Zadatak Prvi zadatak se bavi pogađanjem nasumičnog broja iz intervala od 1 do 100.

Funkcija randomnumber je klasična funkcija za biranje nasumičnog broja u nekom intervalu. Interval se određuje pomoću donje i gornje granice koje funkcija prima kao argumente. Povratna vrednost funkcije predstavlja taj broj koji je funkcija izgenerisala. Pošto se u zadatku traži da se izmeri i vreme za koje je korisnik uspeo da pronađe izgenerisani broj, pravimo funkciju brojačsekundi. Protekle sekunde će teći sve dok se broj ne pronađe, što se vidi iz uslova u while petlji postavljenog u liniji broj 26. Promenljiva ctitle je ustvari ispis koji će se videti u naslovu konzole i tu će se prikazivati protekle sekunde u realnom vremenu (znači broj sekundi se konstantno povećava za jedan). U main funkciji se kreira nit. Parametri niti su: NULL, bez bezbednostih atributa, koristi podrazumevane 0, koristi podrazumevanu veličinu steka BrojacSekundi, naziv niti (naziv funkcije koja se pokreće kao nit) NULL, argumenti (parametri) koji se prosledjuju niti 0, korisiti podrazumevane tagove za kreiranje niti (0 - odmah pusti nit da se izvršava) &dwthreadid), vrati identifikator niti

Nakon kreiranja niti postavlja se uslov if koji znači da ukoliko se proces nije kreirao, HANLDE ce imati vrednost NULL. U do while petlji vrši se provera da li je uneti broj veći ili manji od zadatog broja. Ako je manji dobićemo poruku da je traženi broj manji, a ako je veći dobićemo poruku da je treženi broj veći. Ako pogodimo broj dobijamo obaveštenje da smo pogodili broj i za koliko vremena smo to uspeli. Još jedan bitan uslov je stavljen u while petlji na liniji 80, a to je da ako protekle sekunde dostignu broj 20 program se završava i mi dobijamo poruku da nam je vreme isteklo. Ovako izgleda program kada se pokrene:

2. Zadatak Ovaj zadatak prikazuje matrix program koji radi pomoću niti. Na samom početku pravimo strukturu, koja se naziva tparam, odnosno zvaće se param i ona predstavlja parametre jednog treda a to su kolona kojoj on pripada i head koji predstavlja početak treda (niti).

Sledeća funkcija DWORD WINAPI dothread (LPVOID lpparam) služi za kreiranje niti i kreiranju njeihovog izgleda. U njoj određujemo kolika je veličina ekrana naše konzole da bismo mogli odrediti veličinu niti. To radimo pomoću funkcije CONSOLE_SCREEN_BUFFER_INFO. U while petlji pomoću FillConsoleOutputAttribute u zavisnosti od toga na kojoj se poziciji nalazi karakter određujemo njegovu boju (tamno zelena, svetlo zelena, bela i crna). Zatim pomoću funkcije random ubacujemo karaktere u određenom opsegu. Na kraju funkcije postavljamo uslove za brisanje niti, tj. kada nit dođe do kraja konzole ona kreće da se briše, a nakon nekog vremena za njom kreće nova nit. U main funkciji određujemo koliko niti ćemo kreirati, u ovom slučaju taj broj je 40. U for petlji dodeljujemo parametrima vrednosti, svakoj niti ponaosob, tj. određujemo broj kolona i pomoću random funkcije određujemo odakle će niti počinjati (svaka nit se stvara na različitoj poziciji). Na kraju ako je pritisnut karakter a, nama se u konzoli ispisuje poruka kraj rada, i niti se stopiraju.

Nakon pokretanja program izgleda ovako:

3. Zadatak U ovom zadatku zadat je niz brojeva koji treba da se sortira. Sortiranje se vrši pomoću algoritma za sortiranje niza, a dimenzija niza određena je u promenljivoj dim koja je u ovom slučaju 5000. Na osnovu nje izračunavamo broj niti i dužinu niza. Algoritam za sortiranje je u ovom slučaju uzet kao već gotov, tako da ga nećemo posebno objašnjavati. Kroz dve for petlje se krećemo kroz niz upoređujući članove i određujići koji je veći a koji manji član. Funkcija DWORD WINAPI sortthread služi nam da sortiramo niti pomoću funkcije sortalgorithm. Ono što je novo a to je da pravimo novu promenljivu koja je ustvari pokazivač i pomoću kastovanja, određujemo njegovu veličinu. U main funkciji određujemo karakteristike procesora, tačnije processaffinitymask i systemaffinitymask i prikazujemo ih u konzoli. Određujemo koliko imamo ukupno slobodne memorije pomoću promenljive memorija koja ustvari predstavlja objekat MEMORYSTATUS gde se nalaze informacije o memoriji. U pokazivac *n pomoću memorijske alokacije smestamo njegovu veličinu i potom kreiramo niti. Uzimamo početno vreme. Pomoću funkcije WaitForMultipleObjects kreiramo višenitno sortiranje, tačnije niz delimo na više delova od kojih svaki deo pripada drugoj niti, tako da jedna nit sadrži jedan deo niza. Funkcija će čekati sve dok se svi uslovi ne ispune. Nakon toga kreira se nova nit koja sve te satavlja u jednu, naravno sortira sve te već sortirane delove niza koji su sada sastavljeni opet u jedan pomoću funkcije WaitForSingleObject. Uzima se krajnje vreme i oduzimanjem početnog od krajnjeg vremena dobijamo vreme koje je bilo potrebno za sortiranje niza i to štampamo u konzoli. Nakon toga stampa se niz koji je sortiran, odnosno svi njegovi članovi od najmanjeg ka najvećem. Na samom kraju upotrebom free(niz); mi oslobađamo memoriju koju je niz zauzeo.

Program će nakon izvršavanje izgledati ovako: