Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Чередование | / - \ | через равные промежутки


Автор: Tirael 31.5.2006, 00:14
Задание состоит в сделующем:

Требуется выводить на экран циклически чередующиеся символы "|", "/", "-", "\". Чередование указанных символов должно продолжаться, пока не исчерпан заданный в секундах интервал. Величина временного интервала и скорость чередования символов передаются в программу через аргументы командной строки. 

Автор: Solomon 31.5.2006, 00:27
Цитата

 Величина временного интервала и скорость чередования символов


Можно уточнть... 

Автор: skyboy 31.5.2006, 00:30
Tirael, язык - Пролог? Или алгол?  

Автор: Oleg_Ci 31.5.2006, 08:58
Цитата
передаются в программу через аргументы командной строки.

 Это значит из DOS запускать программу :  > name_programma interval skorost ? Где "name_programma" - название программы,  а  "interval skorost" - это параметры передаваемые программе, так получается ?
Код

int main ( int argc, char *argv[] )
{
// тогда argr равно 3, argv[0]-указатель на перв. символ имени name_programma
// argb[1], [2] - указ. на interval skorost

//тогда здесь выводим всё обратно на консоль
for ( int i = 0; i<argc; i++ )
        cout<<argv[i]<<endl;
return 0;
}
 

Автор: MAKCim 31.5.2006, 09:44
Код

#include <time.h>
#include <stdio.h>
#include <stdlib.h>

char symbols[4]={'/','|','\\','-'};

int main(int argc, char* argv[])
{
    size_t interval=atoi(argv[1]),
        speed=atoi(argv[2]);
    size_t index=0;
    clock_t i=clock();
    do
    {
        // здесь какая-нибудь функция типа sleep
        printf("\r%c",symbols[index++]);
        if (index==4) index=0;
    }
    while ((clock()-i)<(interval*CLOCKS_PER_SEC));
}
 

Автор: Tirael 31.5.2006, 09:57
Как сделать так, чтобы символ всегда печатался в первой позиции первой строки ? 

Автор: MAKCim 31.5.2006, 11:18
Цитата

Как сделать так, чтобы символ всегда печатался в первой позиции первой строки ?  

символ возврата каретки
Код

...
unsigned int i=0;
for (; i<1000; ++i) printf("\r%d",i);
  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)