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

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

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

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

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

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

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

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

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

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

Как сделать задержку ? - C++
к примеру вот программа. Что надо дописать и куда для задержки изображения ? /* Дане чотиризначне число. Визначити; а) входять чи...

Как сделать задержку? - C++
Почему после запуска программа сразу же закрывается? #include <iostream> #include <locale.h> #include <string> #include...

Как сделать задержку C++ - C++
#include <iostream> #include <math.h> #include <conio.h> using namespace std; double function(double x, double y) { ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
12.07.2013, 08:48     Реализовать задержку сигнала на 10 тактов #2
Цикл - ладно, стек - ладно, но о каком сигнале идет речь?
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
12.07.2013, 08:50     Реализовать задержку сигнала на 10 тактов #3
SatanaXIII, наверное имеется ввиду '\a'.
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
12.07.2013, 10:14     Реализовать задержку сигнала на 10 тактов #4
Аааа! Я ничего не понимаю. Это похоже на задание на каких-нибудь вступительных экзаменах, когда само задание делать три минуты, а вкуривать условие год.

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

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

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


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

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


А вообще за такое формулирование задания как у ТС надо убивать. Пусть это гуманитарии упражняются в казуистике.
Vladimir1209
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 2
12.07.2013, 14:00  [ТС]     Реализовать задержку сигнала на 10 тактов #10
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
AntonChik
Возможно вы правы, но я не представляю как это реаизовать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.07.2013, 21:15     Реализовать задержку сигнала на 10 тактов
Еще ссылки по теме:

Сделать задержку программы на 30 секунд - C++
В С++ иметься задержка? Гугл тормозит, инет модем сторублевый... Фрагмент: ... cout<<"Продолжить?"<<endl; cin>>a; ...

Как выполнить задержку консоли - C++
Есть программа // Arith_adapt.cpp : Defines the entry point for the console application. // /* Д. Мастрюков, "Монитор", N1, 1994. ...

Функция, реализующая задержку в 2 секунды - C++
помогите написать функцию которая будут возвращать 1 через 2 секунды от ее запуска! используя #include<windows.h> ...

Как создать временную задержку - C++
#include<iostream> using namespace std; int main () { setlocale(LC_CTYPE,"Russian"); ???

Мигание светодиода, организовать задержку - C++
Добрый день. Пытаюсь написать программу, которая имитировала бы мигание светодиода. (1 - мигает, 0 - не мигает ). Написал...


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

Или воспользуйтесь поиском по форуму:
_Xan_
20 / 20 / 6
Регистрация: 19.09.2010
Сообщений: 85
17.07.2013, 21:15     Реализовать задержку сигнала на 10 тактов #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;
}
Yandex
Объявления
17.07.2013, 21:15     Реализовать задержку сигнала на 10 тактов
Ответ Создать тему
Опции темы

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