IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Процедуры и функции модуля Crt и Dos
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Сделайте кто лабу.
Составить программу вывода на экран окна, которое условно "разбито" на вертикальные столбцы. Верхние части столбцов окрашены одним фоном, нижние - другим. Граница раздела фонов столбцов формирует синусоиду произвольной амплитуды с периодом, равным ширине окна. При нажатии клавиши "Ввод" начинают изменяться соотношения заполнения столбцов разными фонами, т.е. создается эффект "бегущей" слева направо волны.

Сообщение отредактировано: Вадим -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Вадим

Это самый первый набросок. Его еще можно улучшать и улучшать... ;)


{$N+}
Uses Crt;

Const
 numBars = 80;
 TimeDelay = 12000; { Задержка перед перерисовкой очередного кадра }

Var
 bars: Array[1 .. numBars] of Word;

 currDegree: Double;
 T: Word;
 i, j: Integer;

Const
 Change: Boolean = False;

Begin
 ClrScr;
 For i := 1 To numBars Do
   Begin
     { Здесь я пытаюсь изобразить синусоиду }
     currDegree := Pred(i) * (360 / numBars);
     bars[i] := Trunc(13 + 12 * sin(currDegree / (180 / Pi)));
   End;


 While True Do
   Begin

     For j := 1 To numBars Do
       For i := 1 To 24 Do
         Begin
           If i > bars[j] Then TextColor(Red) Else TextColor(Yellow);
           GotoXY(j, i); Write(#176)
         End;

     If Change Then
       Begin
         { Если уже был нажат Enter }
         Delay(TimeDelay);

         T := bars[1];
         Move(bars[2], bars[1], Pred(numBars)*SizeOf(Word));
         bars[numBars] := T;

         { Для выхода из программы - Esc }
         If KeyPressed Then
           If ReadKey = #27 Then Break
       End
     Else
       Begin
         { Сразу после отрисовки статичной картинки - ждем нажатия на Enter }
         While not KeyPressed Do;
         Change := (ReadKey = #13)
       End;
   End;

 ClrScr;
End.



Исправлено

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Вадим   Процедуры и функции модуля Crt и Dos   14.10.2004 0:07
xds   А волшебное слово?   14.10.2004 4:07
Amro   А он скажет, если сделаешь :D   14.10.2004 5:49
Altair   Какая наглость! :angry: :angry: IP я твой …   14.10.2004 12:11
APAL   Oleg_Z, терпимей... ;)   14.10.2004 14:48
BRS   Не - насамом деле такие посты убивают... Я плохо п…   14.10.2004 16:44
GoodWind   смотри а Анекдотах форму приказа :lol:   14.10.2004 21:17
GoodWind   сознаюсь, бывают у меня подобные состояния :roll…   14.10.2004 21:23
Вадим   Чё вы все так сразу налетели? Я же вас не заставля…   18.10.2004 0:44
Altair   Действительно, что все налетели? Ну у меня наверно…   18.10.2004 0:49
volvo   Вадим Это самый первый набросок. Его еще можно ул…   18.10.2004 1:56
Amro   Прикольно, тока директиву сопроцес -ра надо включи…   18.10.2004 2:08
volvo   Так я и не выключал :lol:   18.10.2004 2:20
BlackShadow   Та же беда...   19.10.2004 1:42
Гость_Вадим   Volvo, после этой строчки выдаётся ошибка 116 cur…   22.10.2004 1:19
volvo   Ну Amro уже написал: первой строкой программы доба…   22.10.2004 1:51
Bast   Помогите переделать, что бы волна шла в другую сто…   7.12.2007 19:47
Michael_Rybak   Код в студию.   7.12.2007 19:54
Bast   {$N+} Uses Crt; Const numBars = 80; TimeDe…   7.12.2007 20:56
volvo   Ну, неужели так сложно догадаться, что надо всего …   8.12.2007 1:09


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 7.05.2024 17:55
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name