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

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

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

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





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

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


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

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


Новичок
*

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

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


{$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.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



- Текстовая версия 20.07.2025 18:46
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"