Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program p1;
- uses crt, Utils;
- type TArray = array[0..1000000] of integer;
- procedure initArray(var arr : TArray; N : integer);
- begin
- for var i := 0 to N - 1 do
- begin
- arr[i] := random(50); //i + 1;
- end;
- end;
- {
- procedure printArray(var arr : TArray; N : integer);
- var i : integer;
- begin
- for i := 0 to N - 1 do
- begin
- write(' ', arr[i]);
- end;
- end;
- }
- {Код через обычный цикл}
- function cicleStandart(a : TArray; N : integer) : integer;
- var sum : integer;
- i : integer;
- begin
- sum := 0;
- for i := 0 to N - 1 do
- begin
- sum := sum + a[i];
- end;
- result := sum;
- end;
- {Код через развернутый цикл}
- function cicleExtand(a : TArray; N : integer) : integer;
- var sum : integer;
- i : integer;
- begin
- sum := 0;
- i := 0;
- while(i < N) do
- begin
- sum := sum + a[i] + a[i+1] + a[i+2] +
- + a[i+3] + a[i+4] + a[i+5] + a[i+6] + a[i+7];
- i := i + 8;
- end;
- result := sum;
- end;
- var arr : TArray;
- k : integer;
- N : integer;
- timeBefore : LongInt;
- timeAfter : LongInt;
- CountIteration : integer;
- sum : integer;
- begin
- //write(' Введите n = '); readln(n);
- N := 1000000;
- initArray(arr, N);
- // printArray(arr, N);
- CountIteration := 1000;
- timeBefore := Milliseconds ;
- for k := 1 to CountIteration do sum := cicleStandart(arr, N);
- writeln(' Сумма элементов массива через стандартный цикл : ', sum );
- timeAfter := Milliseconds ;
- writeln(' Время выполнения: ', (timeAfter - timeBefore)/1000:1:10, ' секунды' );
- timeBefore := Milliseconds;
- for k := 1 to CountIteration do sum := cicleExtand(arr, N);
- writeln(' Сумма элементов массива через развернутый цикл : ', sum );
- timeAfter := Milliseconds;
- writeln(' Время выполнения: ', (timeAfter - timeBefore)/1000:1:10, ' секунды' );
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement