Измерение скорости перемещения блоков данных в ОЗУ - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Измерение скорости перемещения блоков данных в ОЗУ. Подскажите плес.

Решение задачи: «Измерение скорости перемещения блоков данных в ОЗУ»

textual
Листинг программы
uses
dos, crt;
 
const
  memsize = 32000;
 
var
  hour, min, sec, hund: word;
  hr2, mn2, sc2, sh2: word;
  t1, t2, t: longint;
  p, q: Array [1..MemSize] of byte;
  i: integer;
 
begin
  FillChar(p, MemSize, 0);
  GetTime(hour, min, sec, hund);
  
  writeln('Исходное время: ', hour, ':', min, ':', sec, ':', hund);
  t1 := sec * 1000 + hund * 10 + min * 60000;
  writeln('t1: ', t1, ' миллисекунд');
  
  for i := 1 to 10000 do
    Move(p, q, memsize);
  
  GetTime(hour, min, sec, hund);
  writeln('Время после события: ', hour, ':', min, ':', sec, ':', hund);
  t2 := sec * 1000 + hund * 10 + min * 60000;
  writeln('t2: ', t2, ' миллисекунд');
  t := t2 - t1;
  writeln('Время работы: ', t, ' миллисекунд');
  readln;
end.

Объяснение кода листинга программы

  1. uses - начало описания используемых библиотек и модулей
  2. const - начало описания констант
  3. var - начало описания переменных
  4. FillChar(p, MemSize, 0); - заполнение массива p нулями
  5. GetTime(hour, min, sec, hund); - получение текущего времени и сохранение его в переменные hour, min, sec, hund
  6. writeln('Исходное время: ', hour, ':', min, ':', sec, ':', hund); - вывод начального времени на экран
  7. *t1 := sec 1000 + hund 10 + min 60000;** - расчет времени выполнения первого этапа программы в миллисекундах
  8. writeln('t1: ', t1, ' миллисекунд'); - вывод времени выполнения первого этапа на экран
  9. for i := 1 to 10000 do - начало цикла, выполняющегося 10000 раз
  10. Move(p, q, memsize); - перемещение массива p в массив q (предположительно, для имитации работы с блоками данных)
  11. GetTime(hour, min, sec, hund); - получение текущего времени и сохранение его в переменные hour, min, sec, hund
  12. writeln('Время после события: ', hour, ':', min, ':', sec, ':', hund); - вывод времени после выполнения первого этапа на экран
  13. *t2 := sec 1000 + hund 10 + min 60000;** - расчет времени выполнения второго этапа программы в миллисекундах
  14. writeln('t2: ', t2, ' миллисекунд'); - вывод времени выполнения второго этапа на экран
  15. t := t2 - t1; - расчет времени работы программы в миллисекундах
  16. writeln('Время работы: ', t, ' миллисекунд'); - вывод времени работы программы на экран
  17. readln; - ожидание нажатия клавиши для завершения работы программы
  18. end. - конец программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы