Problema cu grade de total

Download Report

Transcript Problema cu grade de total

Problem of degrees of total
(characteristic control)
?? ?
?
Problem of degrees of total
(characteristic control)

Purpose
 Create an ordered list, with elements grouped by common
characteristics, on several nesting levels
Sum, mean, dispersion – an
indicator computed from the
elements of the group
Grouping criteria – all
elements with the same value
of the criteria will be grouped
in the list
 For each group compute a total
▪ nr. of characteristics + 1 = nr. of degrees of total
 The list is created in a text file
Problem of degrees of total
(characteristic control)

Examples
Grouping characteristic
Populaţia localităţilor urbane, pe judeţe
Characteristic value
Credite acordate de Banca Popescu
în anul 2009, pe tipuri
Judeţul Alba
Alba Iulia
Beiuş
100.000
Filiala Alba
15.000
Imobiliar cu ipotecă
75 mil.
……………………………….......................
De nevoi personale
15 mil.
Auto
25 mil.
Total Alba
250.000
Judeţul Argeş
Piteşti
Curtea de Argeş
Total Alba
200.000
115 mil.
Filiala Argeş
Imobiliar cu ipotecă
30 mil.
De nevoi personale
12 mil.
400.000
Auto
18 mil.
………………………………………………………..
Total Argeş
60 mil.
………………………………………………………..
………………………………….……….…………..
Total naţional
…………………………………………..…………..
20.000
……………………………….......................
Total Argeş
15.000.000
Total
Total naţional
4500 mil.
Problem of degrees of total
(characteristic control)

Example
Grouping
characteristics
Characteristics
values
Lista cu mediile studenţilor din facultatea CSIE
Anul 1
Grupa 1000
1. Ionel
8.66
2. Georgel
10.00
3. Dorel
5.00
4. Vasilica
10.00
5. Maricica
9.50
…………………………………….
Media grupei 1000
9.12
Grupa 1001
1. Popescu
7.50
2. Ionescu
9.25
….………………….......................
Media grupei 1001
8.78
……………………………………………..
Media anului 1
9.25
Anul 2
Grupa 1020
1. Mitica
5.33
2. Jenel
6.45
3. Nicuşor
7.77
…………………………………….
Media grupei 1020
8.33
…………………………………………….
Media anului 2
9.33
……………………………………………………..
……………………………………………………..
……………………………………………………..
Media generala
9.50
Total
Problem of degrees of total
(characteristic control)

How to create the list from a raw binary file?
 Elements must be listed in order, according to
characteristics values
 file must be sorted first
 Traverse the file sequentially
Problem of degrees of total
(characteristic control)
i=0
i<n-1
Nu
Deschide fișier
calculează nr. articole n
x.nota > y.nota
i=0
Direct access
to elements
(records)?
Start
Start
(x.an > y.an) sau
((x.anj=i+1
== y.an) și (x.gr > y.gr))
i<n-1
n=?
Stop
Da
j<n
Da
What is the best
j=i+1
way
to
sort
a
file?
j<n Da
How to
exchange two
records?
Da
Poziționare nr. rel. i
Articol x
Nu
Poziționare nr. rel. j
i=i+1
STOP
x[i]>x[j]
Da
x[i] <->x[j]
Nu
Articol y
Nu
x>y
?
Nu
i=i+1
Da
Poziționare nr. rel. i
Articol y
Poziționare nr. rel. j
j=j+1
Articol x
j=j+1
Problem of degrees of total
(characteristic control)
Examine the list
General algorithm
→
Start
Process level 1 group
Initial general
operations
Initial op. on
level 1
Rec. x
Group is not finished
!feof(f)
Nu
Final general
operations
Process level 1
group
→
Nu
Process level 2
group
Final op. on
level 1
Exit
→
Stop
Da
Da
Problem of degrees of total
(characteristic control)
→
Process level 2 group
Initial op. on
level 2
Group is not finished
Nu
Final op. on
level 2
Exit
Process level n group
content
Da
Process level 3
group
→…→
Process record
Rec. x
Exit
Deschidere fişier de date
Problem of degrees of total
Deschidere fişier text
Scrie în
listainiţială
rînd început
grup
nou
la nivelul
1
Operații inițiale
Scriere
parte
în
fişierul
text
(titlu
ş.a.)
(characteristic
control)
Scrie în lista
început1 grup nou la nivelul 2
generale
Iniţializare
totalrînd
la nivelul
Iniţializare
total
general
Iniţializare
totalla
lanivelul
nivelul
2
Calcule
pentru
articolul
curent
(sumă,curent
medie
etc.)
Reţine
valoarea
curentă
a
caracteristicii
la nivelul
Scrie
rînd
final
2,
cu de
totalul
1,
Alte
operaţii
necesare
în
funcţie
problemă
Articol x
Reţine
valoarea
a caracteristicii
la nivelul
Scrie
curent
în
listă (1)
1Adună
(v1) rînd
(2)
total
nivelcurentă
curent
la total nivel superior
2 (v2)
Adună
valoare
curentăînlafuncţie
total nivel
curent (2)
Alte
operaţii
necesare,
de problemă
(1)
(general)
Alte operaţii
operaţii necesare,
necesare, în
în funcţie
funcţie de
de problemă
problemă
Da
Alte
!feof(f)
Operații inițiale
Algoritm
la nivelul 1
general
Scriere rînd final la nivelul general, cu totalul curent
pentru
Scriere2 final lista (data, ora,
semnătura
etc.) Da
!feof(f)
și
v1==c1
niveluri
de fişier de date
Închidere
Operații inițiale
grupare
Închidere fişier text
Nu
la nivelul 2
Alte operaţii necesare, în funcţieNude problemă
Start
Operații finale
la nivelul 1
Operații finale
generale
Stop
!feof(f)
și v1==c1 și
v2==c2
Da
Prelucrare
articol
Nu
Operații finale
la nivelul 2
Articol x
Problem of degrees of total
(characteristic control)