Autors:
Edijs Birkenfelds
1. Programmas teksts
{Autors:
Edijs Birkenfelds 3DZ3}
{Uzdeveums:
Sakartot vesalu skaitlu masivu ar Binaras ievietosanas metodi
Ieejas
dati: Skaitlu masivs patvaliga seciba, tiek ievadits no klaviaturas
Izejas
dati: Sakartots skaitlu masivs augosa seciba
Ierobezojumi:
Maksimalais skaitlu skaits masiva ir 100, skaitla vertiba
pec modula nedrikst parsniegt
100.}
Program
Karto;
uses crt;
var A:array[1..100]of shortint;
M,S:word;
N,i,j:byte;
okk:boolean;
ch:char;
{--
Binaras ievietosanas metode -----------------------}
Procedure Binary(var S,M:word);
var B:array[1..100]of shortint;
bn:byte;
ok:boolean;
begin
B[1]:=A[1];bn:=1;
For i:=2 to N do
begin
inc(S);
if A[i]>B[bn] then B[bn+1]:=A[i]
else begin
j:=0;ok:=False;
Repeat
inc(j);inc(S);
if A[i]
begin
Move(B[j],B[j+1],(bn-j+1)*SizeOf(shortint));
B[j]:=A[i];
inc(M,bn-j+1);
ok:=True;
end;
Until ok;
end;
inc(bn);
end;
WriteLn;WriteLn('Tagad rezultats');
For i:=1 to N do Write(' ',B[i]);
WriteLn;WriteLn('Mainas : ',M,' salidzinasanas : ',S);
end;
{--
beigas -------------------------------------}
Begin
Repeat
ClrScr;S:=0;M:=0;
Write('Ievadiet elementu skaitu
<1-100> :');ReadLn(N);
WriteLn;if (N<1)or(N>100) then Halt;
For i:=1 to N do
begin
Repeat
okk:=True;
Write('Ievadiet ',i,' elementu
:');ReadLn(A[i]);
For j:=1 to i-1 do
if(A[j]=A[i])or(abs(A[i])>100)then okk:=False;
Until okk;
end;
ClrScr;
For i:=1 to N do Write(' ',A[i]);
WriteLn;
Binary(S,M);
WriteLn;
Write('Atkartot ? J/N :');ReadLn(ch);
Until not(ch in['j','J']);
End.
2. Testēšanas dokumentācija
2.1. Testu projektējumu specifikācija (TPS)
TPS
idenfikātors:
-
'Binary'
Īpašība
ko testēs:
-
Atbilstība projektējuma prasību specifikācijai
Pieejas
izklāsts:
-
Testējot programmu 'Karto', tiks testēti galvenokārt divi svarīgi
uzdevumi. Pirmais, vai programma korekti veic datu ielasīšanu un pārbaudi.
Otrais, vai programma pareizi sakārto skaitļus masīvā.
-
Tiks apskatīti arī gadījumi ar robežvērtībām un kļūdainām vērtībām.
Testu
idenfikācija:
-
'Test1' - mēģina ievadīt vairāk/mazāk elementus kā atļauts
-
'Test2' - ievada neatļautas elementu vērtības (neatbilst diapazonam)
-
'Test3' - ievada nekorektas elementu vērtības (cits datu tips)
-
'Test4' - kārtošanas algoritma tests
-
'Test5' - robežvērtību elementu pārbaude
Īpašības
- Atbilstība projektējuma prasību specifikācijai, 'pass/fail' kritēriji:
-
Programma neatbilst projektējuma specifikācijai, ja kaut viens no
augstāk minētajiem testiem ir ieguvis neapmierinošu rezultātu. Piemēram,
'Test2' - tiekievadītas neatļautas vērtības, bet programma turpina darbu bez brīdinājuma, vai tiek ievadītas pareizas vērtības, bet programma izdot kļūdas paziņojumu.
'Test2' - tiekievadītas neatļautas vērtības, bet programma turpina darbu bez brīdinājuma, vai tiek ievadītas pareizas vērtības, bet programma izdot kļūdas paziņojumu.
2.2. Testēšanas kopsavilkuma pārskats (TSR)
TSR
idenfikators:
-
'TestBinarySummary'
Kopsavilkums:
-
Programma 'Karto' realizēta programmēšanas valodā TURBO PASCAL, kura
paredzēta darbam operāciju sistēmā MS DOS.
-
Testēšanas gaitā atklājās:
- Programmā nav paredzēts gadījums, ka ievada skaitli, kas pārsniedz attiecīgā datu tipa diapazonu
- Programmā nav paredzēts gadījums, ka ievada skaitļa vietā simbolisku izteiksmi
- Programmā nav paredzēts gadījums, ka ievada vesala skaitļa vietā reālu skaitli
-
Uzskatu, ka programma neatbilst prsību specifikācijai
-
Testēšanas vadītājs: Edijs Birkenfelds
/E. Birkenfelds/
3. Sarežģītības novērtējums
3.1. Programmas lielums pēc Holsteda mēra
N1 - kopējais komandu
skaits
N2 - kopējais operandu
skaits
N= N1 + N2 =52+74=126
3.2. Makkeiba (McCabe) skaitlis
N -
kopējais salīdzinājuma operāciju skaits
C=N+1=9+1=10
3.3. MakKlūra (McClure) skaitlis
M1 - kopējais salīdzinājuma
operāciju skaits
M2 - mainīgo skaits,
kuri pielietoti šajās operācijās
M= M1 + M2 =9+11=20
4. Prasību apraksts
Sistēmas
mērķis - sakārtot vesalus skaitļus augošā secībā, izmantojot Binārās
ievietošanas metodi.
Ievadskaitļu
masīvu jānolasa no klavitūras.
Izejas
skaitļu masīvu jāizdrukā uz ekrāna.
Nepareizu
ievaddatu gadījumā programmai korekti jātiek galā.
Sistēmai
jābūt realizētai TURBO PASCAL vidē.
Programmai
jābūt strādājošai un noturīgai pret neparedzētām lietotāju darbībām.
5. Projektējuma apraksts
Modulis
"Karto" veic datu ielasīšanu un pārbauda to korektību. No moduļa
"Karto" tiek izsaukta procedūra "Binary", kas veic skaitļu
kārtošanu pēc Binārās ievietošanas metodes. Saņēmi atpakaļ vadību, modulis
"Karto" izdrukā sakārtoto skaitļu masīvu.
6. Lietotāja saskarnes apraksts
Datu
ievads
Rezultāts
pēc programmas darbināšanas
Nav komentāru:
Ierakstīt komentāru