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

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

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

 
 Ответить  Открыть новую тему 
> Бегущая строка зигзагом, ваще не знаю....
сообщение
Сообщение #1


Пионер
**

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

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


Задачка такая:
при запуске программы пользователь вводит текстовую информаци, которая затем должна выводиться на экран в виде бегуещей зигзагом слева направо по горизонтали строки. Вывод бегущей строки должен происходит в текстовом окне 80х5 символов в середине экрана. Завершение проги по esc.
помогите плиз, не знаю с чего начать алгоритм...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
в виде бегуещей зигзагом слева направо по горизонтали строки
wacko.gif Зигзагом, слева направо, да еще и по горизонтали? Что это? Как двигаться-то строка должна, объясни... Просто бегущая (причем, в любом направлении, на выбор, или справа налево, или слева направо) строка уже была на форуме, здесь: Задача. Бегущая строка
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


Цитата(volvo @ 30.03.2009 22:25) *

wacko.gif Зигзагом, слева направо, да еще и по горизонтали? Что это? Как двигаться-то строка должна, объясни... Просто бегущая (причем, в любом направлении, на выбор, или справа налево, или слева направо) строка уже была на форуме, здесь: Задача. Бегущая строка

ну это должно выглядить что-то типа вот так=) в окне бегает 80х5 ...
б_______т
_е_____с_р
__г___я___о
___у_а_____к
____щ_______а
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Так, что ли?
uses crt;

const
s: string = 'running STRING';
width = 80; { Вот это - размеры "окна", в котором все будет двигаться }
height = 5;

delta: integer = 1;

procedure next_pos(var x, y: integer);
begin
inc(x); inc(y, delta);
if (y = height) or (y = 1) then delta := - delta;

if x = width then x := 1;
end;

procedure print(const s: string; x, y: integer);
var i: integer;
begin
for i := 1 to length(s) do begin
gotoxy(x, y); write(s[i]);
next_pos(x, y);
end;
end;

var
x, y, dy: integer;
begin
x := 1; y := 1;
repeat
clrscr;
dy := delta;
print(s, x, y);
delta := dy;
next_pos(x, y);
delay(120); { <--- Задержку установишь, какую надо }
until keypressed;

while keypressed do readkey;
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

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

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


ну ты молоток, хотел что бы чуток помогли, а тут такое=) мне прям стыдно, за то что я такой тупой=)
аааа, не все равно есть что подделать, мне надо открыть окно с помощью процедуры winodow! надеюсь я справлюсь=)))

добавляю window (1,9,80,14) в правам верхнем углу большого экрана зависает строчка=(( аааа все норм!

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


Пионер
**

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

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


еще раз огромное спасибо! вот окончательная версия "Бегущей строки по зигзагу в окне" =)

uses crt;

const
width = 80;
height = 5;
delta: integer = 1;

procedure next_pos(var x, y: integer);
begin
inc(x); inc(y, delta);
if (y = height) or (y = 1) then delta := - delta;

if x = width then x := 1;
end;

procedure print(const s: string; x, y: integer);
var i: integer;
begin
for i := 1 to length(s) do begin
gotoxy(x, y); write(s[i]);
next_pos(x, y);
end;
end;

var
x, y, dy: integer;
c : char;
s: string;
begin
textbackground(9);
clrscr;
window(1,9,80,14);
textbackground(2);
textcolor(4);
writeln('Vvedite strochku');
read(s);
x := 1; y := 1;
repeat
while keypressed do c:=readkey;
clrscr;
dy := delta;
print(s, x, y);
delta := dy;
next_pos(x, y);
delay(120);
until c=#27;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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