Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 03.07.2015
Сообщений: 4

Реализовать бегущую строку

04.07.2015, 14:45. Показов 1709. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно математически решить задачу бегущая строка, помогите
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.07.2015, 14:45
Ответы с готовыми решениями:

Реализовать функцию Copy(s, i, n), возвращающую строку, полученную копированием из строки s n символов
Реализовать функцию Copy(s, i, n), возвращающую строку, полученную копированием из строки s n символов, начиная с i-го. Не использовать...

Реализовать бегущую строку
В Borland C++. Реализовать бегущую строку, которая через определенный интервал времени изменяет направление движения. AnsiString =...

Реализовать бегущую строку по диагонали
Здравствуйте, вот такой код, выводится бегущая строка и идет справа налево, что нужно дописать, чтобы она пошла по диагонали? .model...

10
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
04.07.2015, 15:00
Это как математически?
0
0 / 0 / 0
Регистрация: 03.07.2015
Сообщений: 4
04.07.2015, 15:12  [ТС]
ну вот к примеру код программы
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Program z1;                                                                       {Название программы}
Const n:=10;                                                                    {Объявления констант}
Var n:integer;                                                           {Объявления переменных}
d:real;
i, j:integer;
Begin                                                                                   {Начало программы}
Writeln (‘введите размерность матрицы 2 или 3); {Ввод: введите размерность матрицы 2 или 3}
Readln(n);                                                                                             {Вывод n}
Writeln(‘введите элементы матрицы’);       {Ввод: введите элементы матрицы}
For i:= 1 to n do;                                                                                   {Цикл i }
For j:= 1 to n do read (A[i,j]);                                                                {Цикл j }
If n = 2 then d:= A[1,1]*A[2,2]-A[1,2]*A[2,1];
If n = 3 then d:= A[1,1]* A[2,2]* A[3,3]+ A[1,2]* A[2,3]* A[3,1]+ A[1,3]- A[2,1]- A[3,2]- A[1,3]* A[2,2]- A[3,1]- A[1,2]+ A[2,1]* A[3,3]- A[1,1]* A[2,3]* A[3,2];
Writeln (‘определитель матрицы =, d:3:3);   {Ввод: определитель матрицы =}
Readln;                                                                                                    {Вывод}
End.
а вот математическое решение:
Матрица - математический объект, записываемый в виде прямоуголь-ной таблицы чисел и допускающий алгебраические операции (сложение, вычитание, умножение) между ним и другими подобными объектами.
Определитель матрицы - многочлен от элементов матрицы. Определитель можно найти только у квадратной матрицы, то есть у матрицы, у которой число строк равняется числу столбцов.
Пользователь водит с клавиатуры размерность матрицы (переменная n) и элементы матрицы (массив А).
Условием проверяется чему равно n. Если n=2, то вычисляется определитель второго порядка по заданной формуле.

Если n=3, то вычисляется определитель третьего порядка по формуле.
Далее выводиться ответ на экран.

Добавлено через 5 минут
а вот мой код
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Uses crt,dos;
var
  Reg: Registers;
{-----}
Procedure KursOff; {убрать курсор}
begin
 with Reg do
  begin
   AH := 1;    {управление курсором}
   CH := $20   {убрать курсор}
  end;
 Intr($10,Reg);
end;
{-----}
Procedure BegStr(y: Integer;str: String;speed,col: Integer);
Var
  strok : String;
  a, k  : Integer;
Begin
  TextColor(yellow);
  str:=' '+str;
  k:=80-length(str);
  for a:=1 to k-1 do
  str:=str+' ';
  repeat
    delete(str,1,1);
    gotoxy(1,y);
    delay(speed);
    delline;
    write(str);
    strok:=copy(str,1,1);
    str:=str+strok;
  until keypressed;
end;
 
{ - - - M A I N - - - }
begin
  clrscr;
  KursOff;
  BegStr(она бежит:)',90,14);
  clrscr;
end.
нужно математическое решение
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
04.07.2015, 15:16
В 40-й строке - ошибка.
Надо исправить на
Pascal
1
  BegStr(1,'она бежит:)',90,14);
1
0 / 0 / 0
Регистрация: 03.07.2015
Сообщений: 4
04.07.2015, 15:18  [ТС]
поможете с математическим решением?
0
 Аватар для Krasiosoft
52 / 52 / 23
Регистрация: 01.06.2015
Сообщений: 189
04.07.2015, 20:50
Цитата Сообщение от Sergeyyseid Посмотреть сообщение
поможете с математическим решением?
А какое отношение имеет задача с бегущей строкой к задаче с подсчетом определителя матрицы?
0
0 / 0 / 0
Регистрация: 03.07.2015
Сообщений: 4
04.07.2015, 22:24  [ТС]
это я к примеру, мне то нужно решение бегущей строки
0
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
06.07.2015, 11:15

Не по теме:

Может не по теме.
Нашел у себя модуль, созданный около 15 лет назад, а может и больше... т.к. в модуль периодически вносились изменения. Вот часть его:


Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
Uses Crt;
Procedure beg1(aa,bb:integer;st:string);
 var len,w:integer;
     s1,s2:string;
begin
 if odd(length(st)) then st:=st+' ';
 len:=length(st) div 2;
 s1:='';s2:='';
 for w:=1 to len do
                 begin
                  delay(60);
                  s1:=s1+copy(st,w,1);
                  s2:=copy(st,2*len+1-w,1)+s2;
                  gotoxy(aa+len-w,bb);write(s1);
                  gotoxy(aa+len,bb);write(s2);
                 end;
end;
 
 Procedure beg2(x,y:integer;st:string);
 var s1,s2,s3,s4 :string;
     l,i        :integer;
begin
 if length(st)<4 then
                 begin
                      repeat
                       st:=st+' ';
                      until length(st)>=4;
                 end;
 if odd(length(st)) then st:=st+' ';
 if length(st)/4-round(length(st)/4)<>0 then st:=st+'  ';
 l:=length(st);
 s1:='';s2:='';s3:='';s4:='';l:=l div 4;
 //cursor(False);
 for i:=1 to l do
                 begin
                  delay(60);
                  s1:=s1+copy(st,i,1);
                  s2:=copy(st,2*l+1-i,1)+s2;
                  s3:=s3+copy(st,i+l*2,1);
                  s4:=copy(st,4*l+1-i,1)+s4;
                  gotoxy(x+l-i,y);   write(s1);
                  gotoxy(x+l,y);     write(s2);
                  gotoxy(x+l*3-i,y); write(s3);
                  gotoxy(x+l*3,y);   write(s4);
                 end;
//cursor(True);
end;
 
 Procedure beg3(x,y:integer;st:string);
 var i:integer;
 begin
//cursor(False);
gotoxy(x,y);
for i:=1 to length(st) do
 begin
 delay(60);
 write(st[i]);
 end;
//cursor(True);
end;
 
 Procedure beg4(x,y:byte;st:string);
 var
    s   : string[79];
    n,i : byte;
 begin
      s:='';n:=0;
      for i:=x+length(st)-1 downto x do
          begin
           n:=n+1;
           s:=s+st[n];
           gotoxy(i,y);write(s);
           delay(70);
          end
 end;
 
Procedure beg5(x,y:byte;st:string);
var
   i,k : byte;
begin
     beg4(x,y,st);
     delay(300);
     k:=length(st);
     for i:=1 to k do
     begin
          delete(st,1,1);
          st:=st+' ';
          gotoxy(x,y);write(st);
          delay(70);
     end
end;
 
Procedure beg6(x,y:byte;st:string);
Var i,j   : Byte;
    S1,S2 : String;
Begin
    If Odd(Length(st)) then st:=st+' ';
    s1:='';s2:='';
    For i:=1 to Length(st) div 2 do
        Begin
            Delay(60);
            s1:=st[(Length(st) div 2)-i+1]+s1;
            s2:=s2+st[(Length(st) div 2)+i-1];
            GoToXY(x,y);Write(s1);
            GoToXY(x+Length(st)-i-1,y);Write(s2);
        End;
End;
 
Procedure beg7(xx,yy:byte;sst:string);
Var ss,ss1,ss2   : String;
    i         : Byte;
Begin
    If Odd(Length(sst)) then sst:=sst+' ';
        ss2:=Copy(sst,(Length(sst) Div 2)+1,Length(sst) Div 2);
        ss1:=Copy(sst,1,Length(sst) Div 2);
        ss:=ss2+ss1;
        Beg6(xx,yy,ss);
    //cursor(False);
    For i:=Length(sst) Div 2 downto 1 do
        Begin
            GoToXY(xx+i-1,yy);
            Write(ss1);
                        Delay(30);
                        Write(' ');
                        GoToXY((Length(sst) Div 2)-i+1+xx,yy);
                        Write(ss2);
            Delay(30);
                        GoToXY((Length(sst) Div 2)-i+xx,yy);
                        Write(' ');
        End;
           GoToXY(xx,yy);Write(sst);
     //cursor(True);
End;
 
Procedure Beg8(a,b:Byte;St:String);
Var i,n : Byte;
Begin
//cursor(False);
For n:=a to a+Length(st)-1 do
Begin
 For i:=1 to 30 do
 Begin
  GotoXY(Round(Random(Length(st)+a-1-n)+n),b);
  Write(chr(Round(Random(140)+32)));
  Delay(4);
 End;
 GotoXY(n,b);Write(st[n-a+1]);
End;
//cursor(True);
End;
 
Begin
 beg1(10,5,'Testing procedure BEG1');
 beg2(10,7,'Testing procedure BEG2');
 beg3(10,9,'Testing procedure BEG3');
 beg4(10,11,'Testing procedure BEG4');
 beg5(10,13,'Testing procedure BEG5');
 beg6(10,15,'Testing procedure BEG6');
 beg7(10,17,'Testing procedure BEG7');
 beg8(10,19,'Testing procedure BEG8');
 Writeln;
end.
0
Модератор
10428 / 5716 / 3404
Регистрация: 17.08.2012
Сообщений: 17,383
06.07.2015, 19:24
Строка есть одномерный массив, состоящий из символов. Текстовый дисплей предназначен для отображения символов. В программе осуществляется вывод на текстовый дисплей предопределённой строки символов "'она бежит:)" по частям таким образом, чтобы создать иллюзию циклического передвижения указанной строки по экрану дисплея справа налево.

Так пойдёт?

Не по теме:

Кэп бессмертен.

0
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
06.07.2015, 19:33
Просто изначально просили именно математический аппарат. )
0
 Аватар для abit
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,851
15.07.2015, 04:59
математическая модель (но мог напутать с индексами, я уже накатил)
имеем исходную матрицу m x n
https://www.cyberforum.ru/cgi-bin/latex.cgi?A = \[ \begin{matrix}<br />
a_{1,1} & \dots & a_{1,n} \\<br />
\vdots & \ddots & \vdots \\<br />
a_{m,1} & \dots & a_{m,n}<br />
\end{matrix}<br />
\]
хотим получить матрицу, сдвинутую по строкам (бегущая строка), допустим сдвигаем в +, это значит вправо, обозначим её как
https://www.cyberforum.ru/cgi-bin/latex.cgi?A^{+1} = \[ \begin{matrix}<br />
a_{1,n}  a {1,1} & \dots & a_{1,n-1} \\<br />
\vdots & \ddots & \\<br />
a_{m,n}a_{m,1} & \dots & a_{m,n-1}<br />
\end{matrix}<br />
\]
легко показать, что сдвиг на n позиций вернёт нас к исходной матрице:
https://www.cyberforum.ru/cgi-bin/latex.cgi?A^{+n} =A
не сложнее показать, что и движение в обратную строну даст:
https://www.cyberforum.ru/cgi-bin/latex.cgi?A^{-1} =A^{n-1}
и вообще говоря, справедливо:
https://www.cyberforum.ru/cgi-bin/latex.cgi?A^{x} =A^{x-n}

эти свойства очень важны, когда мы найдём https://www.cyberforum.ru/cgi-bin/latex.cgi?A^{+1} из https://www.cyberforum.ru/cgi-bin/latex.cgi?A
как это найти? в принципе не сложно... существует куча путей, например, можно обратится к перемножению матриц:
https://www.cyberforum.ru/cgi-bin/latex.cgi?R = A*B
сперва определимся с размерностью B, т.к. нам необходимо получить в R матрицу размерности A (R по нашей задумке будет https://www.cyberforum.ru/cgi-bin/latex.cgi?A^{+1},то размерность B должна быть n x n, т.е. (A) m x n * (B) n x n = (R) m x n, это следует из свойств произведения матриц, теперь из его определения выпишем итоговую формулу для элементов матрицы R (как их найти из матриц A и B):
https://www.cyberforum.ru/cgi-bin/latex.cgi?r_{i,j}=\sum_{q=1}^n a_{i,q} b_{q,j} https://www.cyberforum.ru/cgi-bin/latex.cgi? \forall i \in [1..m], j \in [1..n]
видно, что в центральной части матрицы R (исключая первый элемент по i) выполняется:
https://www.cyberforum.ru/cgi-bin/latex.cgi? \forall i \in (1..m], j \in [1..n] : https://www.cyberforum.ru/cgi-bin/latex.cgi?a_{i-1,j}=\sum_{q=1}^n a_{i,q} b_{q,j}
для граничных условий слева:
https://www.cyberforum.ru/cgi-bin/latex.cgi? i = 1 : https://www.cyberforum.ru/cgi-bin/latex.cgi?a_{1,j}=\sum_{q=1}^n a_{1,q} b_{q,j}
из этих уравнений методом Крамера (или Гаусса) можно определить матрицу B, на которую нужно умножать, чтобы сдвинуть на 1 позицию вправо матрицу A и получить https://www.cyberforum.ru/cgi-bin/latex.cgi?A^{+1} из https://www.cyberforum.ru/cgi-bin/latex.cgi?A (https://www.cyberforum.ru/cgi-bin/latex.cgi?B судя по всему тривиальна), из уравнений для матриц выше - можно рекурсивно сдвигать куда угодно и на сколько угодно)

Добавлено через 41 минуту
awdwadwadwa
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.07.2015, 04:59
Помогаю со студенческими работами здесь

Реализовать в окне бегущую строку
Помогите пожалуйста, как сделать бегущаю строку, и простую строку ? Как сделать чтобы бегущая строка, строка обычная, и фото (компонент...

Реализовать бегущую строку, которая через определенный интервал времени изменяет направление движения
Реализовать бегущую строку, которая через определенный интервал времени изменяет направление движения

Реализовать бегущую строку, которая через определенный интервал времени изменяет направление движения
Задание:Реализовать бегущую строку, которая через определенный интервал времени изменяет направление движения. Среда разработки Visual...

Изобразить бегущую строку
Написать программу которая изображает ''бегущую строку' Графически'!!!

Создать бегущую строку
Векторная графика Создать бегущую строку. Данная программа должна передавать изображение на канву, и плавно перемещать это изображение,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru