0 / 0 / 0
Регистрация: 03.07.2015
Сообщений: 4

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

04.07.2015, 14:45. Показов 1704. Ответов 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,168
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
Модератор
10411 / 5698 / 3401
Регистрация: 17.08.2012
Сообщений: 17,350
06.07.2015, 19:24
Строка есть одномерный массив, состоящий из символов. Текстовый дисплей предназначен для отображения символов. В программе осуществляется вывод на текстовый дисплей предопределённой строки символов "'она бежит:)" по частям таким образом, чтобы создать иллюзию циклического передвижения указанной строки по экрану дисплея справа налево.

Так пойдёт?

Не по теме:

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

0
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
06.07.2015, 19:33
Просто изначально просили именно математический аппарат. )
0
 Аватар для abit
868 / 527 / 148
Регистрация: 03.02.2013
Сообщений: 1,845
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru