Как исправить эту программу "Бегущая строка" под общий случай. Чтобы можно было ввести...

0 голосов
56 просмотров

Как исправить эту программу "Бегущая строка" под общий случай. Чтобы можно было ввести любую бегущую строку. Помогите пожалуйста!
Программа «Бегущая строка»
Uses Crt;
Procedure Beg(x,y,Len : Byte; S : String);
Var i : Byte;
Begin
For i:=1 to Len do S:=' '+S+' ';
Repeat
GoToXY(x,y);
Writeln(Copy(S,1,Len));
Delete(S,1,1);
Delay(100);
Until Length(S) end;

Begin
Beg(10,10,20,'Бегущая строка');
end.


Информатика (46 баллов) | 56 просмотров
0

после uses Crt добавляете строку var st: string; после слова begin в конце программы добавляете строку write('задайте строку '); readln(st); и меняете вызов процедуры Beg(10,10,10,st);

0

Uses Crt;var st: string;Procedure Beg (10,10,10,st);Var i : Byte;Begin For i:=1 to Len do S:=' '+S+' '; Repeat GoToXY(x,y); Writeln(Copy(S,1,Len)); Delete(S,1,1); Delay(100); Until Length(S)<Len;end;Begin write ('задайте строку ');readln(st);end.

0

Вот так? Что-то не получается.(((

0

Заголовок процедуры менять не надо, надо изменить вызов процедуры в последнем блоке begin ... end. Procedure Beg(x,y,Len : Byte; S : String); - так и остается, Beg(10,10,20,'Бегущая строка'); - заменяется на Beg (10,10,10,st);

0

Uses Crt;Procedure Beg(x,y,Len : Byte; S : String);Var i : Byte;BeginFor i:=1 to Len do S:=' '+S+' ';RepeatGoToXY(x,y);Writeln(Copy(S,1,Len));Delete(S,1,1);Delay(100);Until Length(S);end;BeginBeg (10,10,10,st);end.

0

Вот так что ли? Опять не получается!(((

0

Сбросил я вам программу

Дан 1 ответ
0 голосов
Правильный ответ

Устал я реанимировать вашу программу, проще снова написать. Текст во вложении.

(9.7k баллов)
0

Спасибо большое. Но что-то не то опять. Строка не идёт.

0

Введите строку выводит команда, но бегущей строки не получается(((((

0

Это был вариант "слева - направо" (для арабов) а вот вариант "справа - налево"Uses Crt;
var st: string;
Procedure Beg(x,y : Byte; S : String);
Var i,n: Byte;
ss: string;
Begin
n:=80-2*x;
ss:='';
for i:=1 to n do ss:=ss+' ';
Repeat
For i:=1 to n+Length(S) do
begin
Delete(ss,1,1);
if i<= Length(S) then ss:=ss+S[i]<br> else ss:=ss+' ';
GoToXY(x,y);
Write(ss);
Delay(20000);
end;
Until KeyPressed;
end;

Begin
write('задайте строку: ');
readln(st);
Beg (10,10,st);
end.

0

А как сделать чтоб строка быстрее шла?

0

Чтобы строка быстрее шла уменьшите задержку по времени Delay(20000) , поставьте Delay(10000) - будет в два раза быстрее