Алгоритм чтения данных из памяти - C (СИ)
Формулировка задачи:
Привет.
Не могу придумать алгоритм чтения данных из памяти.
В общем, данные (данные - это массив char размером 64 байта) пишутся в память по кольцу. Данные формирует прибор после каждого измерения. По достижению 2048 записей в память счетчик обнуляется, и запись данных начинается сначала (с нулевого сектора в памяти). Получается, прибор сделал измерение положил данные в память, сделал следующее измерение снова положил в память и т.д. как достиг 2048 обнулил адрес записи данных и начал все с начало (стирание предыдущих данных не делается).
Проблема в чтение последних данных из памяти после обнуления счетчика.
Предположим прибор у нас не чего ранее не мерил и память и счетчик пусты. Мы сделали одно измерение и хотим считать его из памяти. Для этого нам надо указать адрес начало данных в памяти и длину пакета и все данные получены (все хорошо). Сделали сто измерений и хотим получить последних 10 для этого (зная длину данных и начальный адрес вычисляем) вычисляем адрес и также указываем длину и т.д. до 2048 измерения. После счетчик обнулился и начинает перезаписывать данные в памяти, а старые то остались в памяти. И вот тут возникает проблема вычисления адреса от куда читать данные. Нужно взять кусок с начало и кусок с конца. Как это сделать?
Решение задачи: «Алгоритм чтения данных из памяти»
textual
Листинг программы
while(ptr1 < ptr2) putchar(ptr1++);
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- Указатель
ptr1
инициализируется значениемptr2 - 1
. - В цикле
while
выполняется условиеptr1 < ptr2
. - В каждой итерации цикла значение
ptr1
увеличивается на единицу. - В каждой итерации цикла выводится значение
ptr1
с помощью функцииputchar
. - Цикл завершается, когда значение
ptr1
становится равнымptr2
. Список действий: - Инициализация
ptr1
значениемptr2 - 1
. - Выполнение условия
ptr1 < ptr2
в циклеwhile
. - Увеличение значения
ptr1
на единицу в каждой итерации цикла. - Вывод значения
ptr1
с помощью функцииputchar
в каждой итерации цикла. - Цикл завершается, когда значение
ptr1
становится равнымptr2
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д