Алгоритм чтения данных из памяти - C (СИ)

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

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

Привет. Не могу придумать алгоритм чтения данных из памяти. В общем, данные (данные - это массив char размером 64 байта) пишутся в память по кольцу. Данные формирует прибор после каждого измерения. По достижению 2048 записей в память счетчик обнуляется, и запись данных начинается сначала (с нулевого сектора в памяти). Получается, прибор сделал измерение положил данные в память, сделал следующее измерение снова положил в память и т.д. как достиг 2048 обнулил адрес записи данных и начал все с начало (стирание предыдущих данных не делается). Проблема в чтение последних данных из памяти после обнуления счетчика. Предположим прибор у нас не чего ранее не мерил и память и счетчик пусты. Мы сделали одно измерение и хотим считать его из памяти. Для этого нам надо указать адрес начало данных в памяти и длину пакета и все данные получены (все хорошо). Сделали сто измерений и хотим получить последних 10 для этого (зная длину данных и начальный адрес вычисляем) вычисляем адрес и также указываем длину и т.д. до 2048 измерения. После счетчик обнулился и начинает перезаписывать данные в памяти, а старые то остались в памяти. И вот тут возникает проблема вычисления адреса от куда читать данные. Нужно взять кусок с начало и кусок с конца. Как это сделать?

Решение задачи: «Алгоритм чтения данных из памяти»

textual
Листинг программы
while(ptr1 < ptr2)
    putchar(ptr1++);

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

В данном коде выполняется следующая последовательность действий:

  1. Указатель ptr1 инициализируется значением ptr2 - 1.
  2. В цикле while выполняется условие ptr1 < ptr2.
  3. В каждой итерации цикла значение ptr1 увеличивается на единицу.
  4. В каждой итерации цикла выводится значение ptr1 с помощью функции putchar.
  5. Цикл завершается, когда значение ptr1 становится равным ptr2. Список действий:
  6. Инициализация ptr1 значением ptr2 - 1.
  7. Выполнение условия ptr1 < ptr2 в цикле while.
  8. Увеличение значения ptr1 на единицу в каждой итерации цикла.
  9. Вывод значения ptr1 с помощью функции putchar в каждой итерации цикла.
  10. Цикл завершается, когда значение ptr1 становится равным ptr2.

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


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

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

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