Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vladimir1209
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 2
#1

Реализовать задержку сигнала на 10 тактов - C++

11.07.2013, 21:20. Просмотров 930. Ответов 10
Метки нет (Все метки)

реализовать задержку сигнала на 10 тактов(шагов цикла) для функции y=x, с использованием массива из 10 элементов в качестве стека для хранения промежуточных данных функции с задержкой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2013, 21:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать задержку сигнала на 10 тактов (C++):

Неверный вывод количества тактов - C++
template<typename iterator> std::pair<int, std::pair<iterator, iterator>> maxCrosssSubArray(iterator begin, iterator middle, iterator...

Измерить кол-во тактов процессора - C++
Здравствуйте. Подскажите, пожалуйста, каким способом можно измерить количество тактов (или время с точностью до наносекунд), затраченное на...

Замер количества тактов исполнения через rdtsc() - C++
по идее rdtsc(); выдает кол-во тактов, т.е. т2-т1 выдаст затраченное кол-во тактов на том или ином участке кода, но ... #include...

Необходим подсчёт количества тактов в сети фейстеля - C++
дан исходник http://file.qip.ru/file/Rc7F-xO9/jetcrypt.html нужно посчитать количество тактов в программе,выяснить,возможно ли...

Замер времени(тактов процессора) выполнения процедуры - C++
Почему то замер дает отрицательный результат (при просмотре в режиме дебаг) и на выходе 0 в итоге. clock_t start, end; start =...

RDTSC или как замерять количество тактов CPU на некоторые вычисления? - C++
пока мерю так. но что-то мне подсказывает 677 тактов на вычисление простой длины вектора слишком много. два подряд умножение уже 1800+...

10
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
12.07.2013, 08:48 #2
Цикл - ладно, стек - ладно, но о каком сигнале идет речь?
0
Ilot
Модератор
Эксперт С++
1818 / 1176 / 232
Регистрация: 16.05.2013
Сообщений: 3,108
Записей в блоге: 5
Завершенные тесты: 1
12.07.2013, 08:50 #3
SatanaXIII, наверное имеется ввиду '\a'.
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
12.07.2013, 10:14 #4
Аааа! Я ничего не понимаю. Это похоже на задание на каких-нибудь вступительных экзаменах, когда само задание делать три минуты, а вкуривать условие год.

У нас есть функция - y, которая равна значению некоторой переменной (константе? (или это так записано, что функция может делать что угодно?)). В цикле происходит обращение к этой функции, и она возвращает значения, которые записываются в темповый массив. Десять итераций цикла и десять же элементов массива. Ладно, есть связь. Задержка сигнала на десять итераций, - то есть пока идут десять итераций, выдавать сигнал. Хорошо. ...Но что это за бред?! Чего надо сделать-то?
0
AntonChik
1084 / 582 / 21
Регистрация: 11.11.2008
Сообщений: 1,544
12.07.2013, 10:27 #5
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Но что это за бред?! Чего надо сделать-то?
если без задержки, то в каждый момент появления x мы бы получали y
но т.к. у нас задержка то мы получим значение y от x-10, т.е. y-10
банальная функция y=x вроде взята для простоты, но с другой стороны слегка мешает понять смысл.

алгоритм такой что получая х, мы кладем его в стек, а в y возвращаем дно стека (т.е. первые 10 итераций система не работоспособна, т.к. копит задержку),
таким образом при глубине стека 10, будем получать задержку в 10 итераций

как пример можно взять телемост, когда ведущая задает корреспонденту вопрос и первые секунды ждет пока до него дойдет сигнал, затем вроде начинается общение, но с задержкой
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
12.07.2013, 10:32 #6
AntonChik, то есть пресловутый "сигнал" это есть передача некоего значения x (в данном случае) в функцию y и получение результата выполнения y?
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,926
Записей в блоге: 1
12.07.2013, 10:43 #7
Цитата Сообщение от AntonChik Посмотреть сообщение
алгоритм такой что получая х, мы кладем его в стек, а в y возвращаем дно стека
Это называется не стек, а очередь!
FIFO
Я сразу подумал о такой вещи, прочитав заголовок.
Создаём очередь из 10 элементов.
При очередной итерации запускаем вычисление.
При вычислении используем значение, положенное в очередь 10 итераций назад.
Результат вычисления кладём в конец очереди, а из её начала убираем 1 самый старый элемент.
В результате, каждый раз будет браться элемент, вычисленный 10 ходов назад для вычисления текущего
Вот и вся задержка!


Но это ОЧЕРЕДЬ(FIFO), а не СТЕК( LIFO) !!!
1
AntonChik
1084 / 582 / 21
Регистрация: 11.11.2008
Сообщений: 1,544
12.07.2013, 10:52 #8
я отличаю стек от очереди и тоже сразу заметил, что тут либо в постановке эти понятия попутаны, либо действительно надо использовать стек.
я дал понять, что потребуется вытаскивать дно стека, а это либо невозможно, либо нужен еще один стек.
в общем это уже другая проблема.
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
12.07.2013, 10:55 #9
AntonChik, Kuzia domovenok, я вообще не уверен, что здесь слово стек обозначает именно стек. Скорее формулировка "в качестве стека" подразумевает собой просто складирование десятка вычисленных значений, дабы они не потерялись. Не важно как оно будет организованно. Я думаю.

Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Но это ОЧЕРЕДЬ(FIFO), а не СТЕК( LIFO) !!!
Один мой знакомый препод любил привести хороший пример на банке с лимонадом для понимания отличия между стеком и очередью:
Стек - это баночка, а очередь это трубочка.


А вообще за такое формулирование задания как у ТС надо убивать. Пусть это гуманитарии упражняются в казуистике.
0
Vladimir1209
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 2
12.07.2013, 14:00  [ТС] #10
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
AntonChik
Возможно вы правы, но я не представляю как это реаизовать
0
_Xan_
20 / 20 / 6
Регистрация: 19.09.2010
Сообщений: 85
17.07.2013, 21:15 #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
using namespace std;
 
double f(double x);
 
int main()
{
    double mas[10]={0};
    for(int i=0; i<10; i++)
    {
        cin>>mas[i];
    }
    double k=1;
    while (k!=0.0)
    {
        cin>>k;
        cout<<f(mas[0])<<endl;
        for(int i=1; i<10; i++) mas[i-1]=mas[i];
        mas[9]=k;
    }
    return 0;
}
 
double f(double x)
{
    return x*x;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2013, 21:15
Привет! Вот еще темы с ответами:

Как реализовать задержку звука? - DirectX
С помощью DirectSound или как еще?

Как реализовать задержку включения? - Электроника
Всем добрый день! Прошу вашей помощи, т.к. в электронике я далеко не специалист. Имеется некое устройство (на фото), назовем его...

Реализовать задержку при выполнении кода - Free Pascal
Есть ли в Free Pascal такая функция, с помощью которой можно задавать задержку только одному действию? (Delay задерживает всю программу) ...

Как реализовать задержку выполнения кода (Sleep) - Visual Basic .NET
На каждом втором сайте твердят, что чтобы сделать паузу в программе нужно пользоваться Api функцией Private Declare Sub Sleep Lib...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
17.07.2013, 21:15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru