LUCRARE de EVALUARE -...

13
UNIVERSITATEA TEHNICĂ DIN CLUJ-NAPOCA CENTRUL REGIONAL DE EDUCAŢIE ŞI FORMARE PROFESIONALĂ FLEXIBILĂ – CLUJ LUCRARE de EVALUARE Titlul lucrării: Model de documentatie pentru proiectul de atestat la clasa a 12-a, Specializarea Matematica-Informatica Cursant: Prof. Diana Man

Transcript of LUCRARE de EVALUARE -...

UNIVERSITATEA TEHNICĂ DIN CLUJ-NAPOCA

CENTRUL REGIONAL DE EDUCAŢIE ŞI FORMARE PROFESIONALĂ

FLEXIBILĂ – CLUJ

LUCRARE de EVALUARE

Titlul lucrării:

Model de documentatie pentru proiectul de atestat

la clasa a 12-a, Specializarea Matematica-Informatica

Cursant: Prof. Diana Man

Cuprins

Tema proiectului ........................................................................................... 3

Specificarea cerinţelor ................................................................................... 3

Analiza ........................................................................................................... 4

Proiectarea aplicaţiei ..................................................................................... 5

Certificarea .................................................................................................. 10

Implementarea ............................................................................................. 11

Bibliografie .................................................................................................. 13

Prezentarea proiectului

Tema proiectului

Astronomia. Constelatii stelare este o aplicatie care ofera informatii generale din

domeniul astronomiei, realizeaza reprezentarea grafică si clasificarea unui set de

puncte si ofera posibilitatea de a testa cunostintele acumulate prin rezolvarea unui

set de teste grila.

Motivam alegerea temei datorita intereselui nostru pentru studiul Universului.

Specificarea cerinţelor

a) Date de intrare

In cazul datelor din domeniul astronomiei

o Imagini, informatii, site-ul NASA,etc.

In cazul reprezentării grafice şi a clasificării unei mulţimi de puncte

o Fisierele text care contin coordonatele punctelor: Dataset1, Dataset2,..

o Numărul de clase specifiat

In cazul testelor de evaluare a cunoştinţelor

o Fisierele care contin întrebarile, respectiv răspunsul corect: Test1,

Test2, etc.

b) Datele de ieşire

In cazul datelor din domeniul astronomiei,

o Imagini, informatii, site-ul NASA, etc.

In cazul reprezentării grafice şi a clasificării unei mulţimi de puncte

o Matricea de apartenenţă a punctelor la clase

o Matricea centrelor claselor

In cazul testelor de evaluare a cunoştinţelor

o Rezultatul testului

c) Cerinţe de sistem

Microsoft Visual Studio.NET or Microsoft .NET Framework

Microsoft Windows NT 4.0, Windows 2000 or Windows XP

Analiza a) Algoritmii

Pentru clasificarea punctelor se foloseşte algoritmul Fuzzy Clustering

Funcţia obiectiv care trebuie minimizată este:

c

i

c

i ik

q

ik

K

kic dmJcccMJ1 1

2

121 ),...,,( (1)

unde q ),1[ este exponentul de fuzificare

Sunt două condiţii necesare ca J să atingă minimul:

K

k

q

ik

K

k k

q

ik

i

m

umc

1

1 (2)

c

j

q

jk

ikik

d

dm

1

)1/(2)(

1 (3)

unde ikd este distanţa intre fiecare punct şi centrul clasei din care aparţine.

M are două proprietăţi: suma fiecărei coloane este 1 şi suma tuturor elementelor este

K. (4)

Algorithm (Jang et al., 1977) 1. Se iniţializează matricea de apartenenţă M cu valori aleatorii 0 sau 1,

respectând constrăngerile cerute de (4)

2. Se calculează centrele claselor ),...2,1( cici folosind (2).

3. Se calculează funcţia obiectiv, folosind (1). Stop dacă s-au atins numărul

maxim de iteraţii (100) sau nu se observă o imbunătăţire a acestei funcţii fată

de iteraţia anterioară

4. Se calculează din nou M, folosind (3)

5. Se reia pasul 2.

b) Tipul aplicaţiei

Este o aplicatie de dimensiune mică dar se urmăreşte extinderea acesteia.

c) Caracteristicile aplicaţiei

S-a urmărit acurateţea, robusteţea, extensibilitatea, eficienţa, compatibilitatea,

integritatea şi nu în ultimul rând realizarea unei interfeţe prietenoase. De asemenea

s-a avut în vedere realizarea unei aplicaţii modulare.

Proiectarea aplicaţiei

Se urmăreşte proiectarea de ansamblu prin studierea modulelor ce compun

aplicaţia şi a legăturii reciproce dintre ele.

a) Fişierele text care conţin coordonatele punctelor care compun setul de date de

intrare a clasificarii, precum si fisierele care conţin testele pot fi create manual,

din Notepad.

b) Operaţii

Vizualizarea informaţiilor legate de astronomie (info generale, planete,

constelatii, clasificarea stelelor)

Reprezentarea grafică şi clasificarea unei mulţimi de puncte

Rezolvarea unei set de teste cu întrebări legate de informaţiile prezentate

anterior.

c) Modelul fizic

Interfaţa

i. Meniul este compun dinurmătoarele opţiuni:

1. Informaţii generale –oferă informatii generale din domeniul

astrologiei

2. Planete cu submeniul:

- Marcur

- Venus

- Terra

- Marte

- Jupiter

- Saturn

- Uranus

- Neptuln

- Pluto

Ofera informaţii referitoare la planetele sistemului nostru

solar, precum şi imagini reprezentative.

3. Constelaţii cu submeniul:

- Andromeda

- Antile

- Virgo

- Hercules

- Scorpio

- Ara

- Ursa Major

- Auriga

- Bootes

- Cancer

Oferă informaţii referitoare la constelatiile amintite mai sus

precum şi imagini reprezentative.

4. Clasificare stele - prezinta o clasificare a stelelor (dupa stralucire, gruparea in

spatiu, existenta sateliţilor artificiali, etc)

- reprezintă graphic o multime de puncte ale căror

coordonate se citesc dintr-un fişier text şi încearcă o

clasificare a acesteia într-un număr de clase specificat;

clasele obţinute sunt evidenţiate prin reprezentare cromatică

5. Test- oferă posibilitatea testării cunoştinţelor acumulate, prin

rezolvarea unui set de teste grilă cu patru variante de răspuns

corect, din care e corectă o singură variantă. Intrebările se

citesc din fişiere test, realizate în Notepad.

Raspusurile corecte sunt codificate in fisirul text, dupa

formula:

Raspcodificat=(raspcorect+’N’-‘A’)*nrIntrebarii

6. NASA- Incărcă site-ul NASA, permiţând aflarea noutăţilor

de ultimă oră din domeniu, folosind un WebBrowser, oferit

de toolbox-ul limbajului C#

7. Despre- oferă informatii despre propiect, realizatori,

versiune, copyright

8. Ieşire-permite ieşirea din aplicaţie

Form principal

Formularul Form1, care realizeaza reprezentarea grafică a unei mulţimi de puncte si

clasificarea acestora in 10 clase (10 contelatii):

Form1 (Clasificare):

Form2 (Testul grilă):

Proiectarea modulelor

Form principal: - implementeză interfaţa (meniul principal)

Form1 Class

- Apelează metodele statice ale clasei Fuzzy, respectiv

Graphic

Fuzzy Class

- Foloseşte metodele clasei Matrix

- Realizează metodele necesare implementării

algoritmului Fuzzy Clustering

i. InitFcm –iniţializează matricea de apartenetă U

cu numere aleatoare

- StepFcm- calculează coordonatele centrelor

1. calculează distanţa de la fiecare punct la

centru

2. calculează valoarea funcţiei obiectiv

3. recalculează matricea de aparteneţă U

- Fcm- apelează in mod repetat metoda FCM, atata timp

cat nu s-a realizat numărul maxim de iteratii (100) sau

nu s-a observat o imbunătaţirea a fucţiei obiectiv faţă

de iteraţia precedentă

Graphic Class

- Realizează reprezentarea grafică a punctelor

Matrix Class - implementează operaţiile specifice

lucrului cu matrici (inmulţirea a două matrici,

inmulţirea unei matrici cu un scalar, ridicarea la

putere a unei matri, transpusa unei matrici, etc.)

Form

principa

l

Form1 Form2 Form3 Form4 Form5 Form6 Form7

Grapg

Class

Matrix lass Fuzzy

Class

Form31 Form31 …Form39

- implementează operaţiile specifice lucrului cu matrici

(inmulţirea a două matrici, inmulţirea unei matrici cu

un scalar, ridicarea la putere a unei matri, transpusa

unei matrici, etc.)

Certificarea In acest pas se urmăreşte:

- Demonstrarea corectitudinii algoritmului

- Testarea aplicaţiei

- Corectarea eventualelor erori

In această aplicaţie se folosesc algoritmi a căror corectitudine a fost deja

demonstrată. Fiecare modul se testează în mod independent, apoi se testează aplicaţia

în totalitatea ei. Se folosesc sistemul de generarea a excepţiilor, oferit de limbajul C#.

Implementarea

//Conţinutuil clasei Graphic

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace FuzzyClustering

{

class Grafic : Form

{

public static void Puncte(int nl, int nc, int _nrPuncte, float[,]

a) //reprezinta grafic punctele initiale ale caror coordonate s-au citit

din fisier

Graphics g = Form1.ActiveForm.CreateGraphics();

SizeF sizef = g.VisibleClipBounds.Size;

g.PageUnit = GraphicsUnit.Inch;

g.PageScale = Math.Min(sizef.Width / g.DpiX / 1700,

sizef.Height / g.DpiY / 1700);

g.TranslateTransform(50, 50);

g.FillRectangle(new SolidBrush(System.Drawing.Color.Black),

1, 1,1500, 1500);

g.DrawRectangle(new Pen(System.Drawing.Color.White), 1, 1,

1500, 1500);

Random x = new Random();

for (int i = 0; i < _nrPuncte; i++)

{

Pen p = new Pen(System.Drawing.Color.LightSteelBlue);

g.DrawEllipse(p, a[i, 0], a[i, 1], 10, 10);

}

}

public static void Clusteri(int nrClusters, int nrPuncte, int

nrCoordonate, float[,] u, float[,] A, float[,] center)

{

//reprezinta cromatic clusterii obtinuri cu ajutorul FCM

algorithm

Graphics g = Form1.ActiveForm.CreateGraphics();

SizeF sizef = g.VisibleClipBounds.Size;

g.PageUnit = GraphicsUnit.Inch;

g.PageScale = Math.Min(sizef.Width / g.DpiX / 1700,

sizef.Height / g.DpiY / 1700);

g.TranslateTransform(50, 50);

g.FillRectangle(new SolidBrush(System.Drawing.Color.Black),

1, 1, 1500, 1500);

g.DrawRectangle(new Pen(System.Drawing.Color.White), 1, 1,

1500, 1500);

Color[] culori ={ System.Drawing.Color.DeepSkyBlue,

System.Drawing.Color.YellowGreen, System.Drawing.Color.Red,

System.Drawing.Color.DarkSalmon, System.Drawing.Color.Silver,

System.Drawing.Color.LightPink, System.Drawing.Color.MediumPurple,

System.Drawing.Color.Yellow, System.Drawing.Color.Blue,

System.Drawing.Color.Coral };

for (int j = 0; j < nrPuncte; j++)

{

int cl;

float max = u[0, j]; cl = 0;

for (int i = 1; i < nrClusters; i++)

if (u[i, j] > max) { max = u[i, j]; cl = i; }

g.DrawEllipse(new Pen(culori[cl]), A[j, 0], A[j, 1], 10,

10);

}

//Desenam centrele

for (int i = 0; i < nrClusters; i++)

{

g.FillEllipse(new SolidBrush(culori[i]), center[i, 0],

center[i, 1], 10, 10);

g.DrawEllipse(new Pen(culori[i]), center[i, 0], center[i,

1], 10, 10);

}

}

}

//ieşirea din aplicaţie

private void exitToolStripMenuItem1_Click(object sender, EventArgs e)

{

//optiunea din meniu Exit

Application.Exit();

}

Puncte tari:

Design

Usurinta in utilizare, datorita existentei meniului, butoanelor de înapoi

Originalitate

Finalizare

Complexitatea elementelor de programare

Posibilităţi de dezvoltare ulterioara, rezultate

Aplicatia se poate desvolta prin inserarea de noi elemente, astfel incât să

poata fi folosita ca meterial didactic.

Bibliografie

1. Wikipedia, the free enciclopedia

2. .NETFramework, Jeffrey Richter, Editura Microsoft Press,

2002

3. C# Charles Petzold, Editura Microsoft Press, 2005