[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем
Автор Сообщение
Михаил Долинский

Темы: 1984
Сообщений: 47242

Мой профиль
В реальной жизни очень часто встречаются такие задачи.
Далее приводятся примеры таких задач.
Михаил Долинский

Темы: 1984
Сообщений: 47242

Мой профиль
Задача:
Если два одинаковых символа стоят подряд,то второй символ заменяется на '*'.

Название Размерность Тип 
In          8        вход
S           1        вход
Out         8        выход

In - входной символ
S - по переднему фронту читаем входной символ; по заднему выдаем выходной
Out - выходной символ

unsigned char __in  In;
unsigned char __in  S;
unsigned char __out Out;


void main()
{

	while(S); // задержка для того, что поймать первый передний фронт

	unsigned char last = 0; // запоминаем последний символ
	for (;;)
	{
		while (!S); // ждем передний фронт
		unsigned char cout = In;
		if (last == cout)
		{
			cout = '*';
			last = 0;
		}
		else last = cout;
		while(S); // ждем задний фронт
		Out = cout;
	}
}

Михаил Долинский

Темы: 1984
Сообщений: 47242

Мой профиль
Еще задача
На вход поступает поток чисел.
Требуется на выход подать те же числа, но в отсортированном порядке.

Вариации задачи:
- числа 4-битные, можно использовать сортировку подсчетом
- числа 32-битные, сортировку подсчетом использовать нельзя.
- предусмотреть возможность каскадирования
например, разрабатывать две схемы:
... для каскадируемой сортировки
... для каскадируемого слияния отсортированных массивов.

Инициатива приветствуется !!!
 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем
Time:0,032