0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 32
1

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

16.12.2017, 11:28. Показов 1801. Ответов 7

Author24 — интернет-сервис помощи студентам
Здравствуйте уважаемые программисты и любители. Ни как не получается сделать программу: Прямоугольник, пульсирующий случайным образом в диапазоне от минимальной до максимальной длины диагонали.
Категорически не понимаю как сделать такое задание.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.12.2017, 11:28
Ответы с готовыми решениями:

Слова максимальной и минимальной длины
Помогите пожалуйста...всю голову сломала(( Напечатать все слова максимальной и минимальной длины. Повторы слов не выводить.

Сформируйте случайным образом 10 чисел в диапазоне [-10; 10]
Сформируйте случайным образом 10 чисел в диапазоне , округлите их до целого и в документ выведите произведение положительных чисел....

Заполнить массив случайным образом в диапазоне от -20 до 20
Заполнить массив случайным образом в диапазоне от -20 до 20,посчитать среднее всех элементов массива. Все элементы массива, которые меньше...

7
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
16.12.2017, 11:38 2
А в контексте изучения каких основ программирования дано данное задание? В чем заключается случайность пульсирования? Я могу достаточно вольно трактовать задание и сделать его, соответственно, вольно.
0
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 32
16.12.2017, 11:51  [ТС] 3
Получается что нужно сделать чтобы по середине экрана случайным образом задавался прямоугольник(т.е. нужно добавить случайность диагонали и угол наклона, чтобы он строился не только горизонтально ,но и вертикально)
0
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
16.12.2017, 11:58 4
Т.е. он должен находиться на экране под углом, или все же строим прямоугольник вертикальным или горизонтальным под прямыми углами? Что вкладывается в слово "пульсирование" тогда?
0
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 32
16.12.2017, 12:00  [ТС] 5
вот пример, только в данной задачи квадрат и он задается от мин. до макс. длины стороны.
Delphi
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
unit Unit4;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.ExtCtrls, Math;
 
type
  TForm4 = class(TForm)
    GroupBox1: TGroupBox;
    LEdit1: TEdit;
    LabelDS: TLabel;
    ButtonMove: TButton;
    TrackBarSpeed: TTrackBar;
    LabelSpeed: TLabel;
    Label1: TLabel;
    Timer1: TTimer;
    Label2: TLabel;
    LEdit2: TEdit;
 
 
   procedure ButtonMoveClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
      procedure FormResize(Sender: TObject);
        procedure LEdit1KeyPress(Sender: TObject; var Key: Char);
           procedure Timer1Timer(Sender: TObject);
            procedure TrackBarSpeedChange(Sender: TObject);
 
 
 
 
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form4: TForm4;
 
implementation
 
{$R *.dfm}
var
RadCircle, CenterX, CenterY, PointX, PointY, RadPoint, XMin, XMax, YMin, YMax, X, Y: integer;
Angle, StepPoint: real;
PointColor: TColor;
 
 
procedure TForm4.ButtonMoveClick(Sender: TObject);
 begin
 if Timer1.Enabled then
  begin
    ButtonMove.Caption:='Запустить';
    LEdit1.Enabled:=true;
    LEdit2.Enabled:=true;
  end
  else
  begin
      if (Trim(LEdit1.Text)='') or (Trim(LEdit2.Text)='') then
   begin
    ShowMessage('Введите все данные!');
    LEdit2.SetFocus;
    Exit;
   end;
   if strtofloat(LEdit1.Text)<=5 then
   begin
     ShowMessage('Введите другое значение');
     LEdit1.SetFocus;
     Exit;
   end;
 
    XMin:=StrToInt(LEdit1.Text);
    XMax:=StrToInt(LEdit2.Text);
    X:=RandomRange(XMin,XMax);
     Y:=X-5;
    if (XMax>=Form4.Width div 2) or (XMax>=(Form4.Height-GroupBox1.Height) div 2) then
   begin
    ShowMessage('Квадрат не влезает в окно! Введите другую сторону.');
    LEdit2.SetFocus;
    Exit;
   end;
    LEdit1.Enabled:=false;
    LEdit2.Enabled:=false;
    ButtonMove.Caption:='Остановить';
  end;
  Timer1.Enabled:=not Timer1.Enabled;
end;
 
procedure TForm4.FormCreate(Sender: TObject);
begin
  randomize;
  CenterX:=Form4.Width div 2;
  CenterY:=(Form4.Height-GroupBox1.Height) div 2;
  PointColor:=clBlue;
  Canvas.Pen.Color:=PointColor;
 
end;
 
procedure TForm4.FormResize(Sender: TObject);
begin
  CenterX:=Form4.Width div 2;
  CenterY:=(Form4.Height-GroupBox1.Height) div 2;
end;
 
 
 
procedure TForm4.LEdit1KeyPress(Sender: TObject; var Key: Char);
begin
 if Key in['0'..'9',chr(VK_BACK)]=False then Key:=#0;
end;
 
procedure TForm4.Timer1Timer(Sender: TObject);
begin
  Canvas.Pen.Color:=Form4.Color;
  Canvas.Rectangle(CenterX-X,CenterY-Y,CenterX+X,CenterY+Y);
  X:=RandomRange(XMin,XMax);
  Y:=X-5;
  Canvas.Pen.Color:=clBlue;
  Canvas.Rectangle(CenterX-X,CenterY-Y,CenterX+X,CenterY+Y);
end;
 
procedure TForm4.TrackBarSpeedChange(Sender: TObject);
begin
  Timer1.Interval:=Trunc(1000/TrackBarSpeed.Position);
  LabelSpeed.Caption:=IntToStr(TrackBarSpeed.Position);
end;
 
end.
0
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
16.12.2017, 12:09 6
Ну попробуй вот так:

Delphi
1
2
3
4
5
6
7
8
9
procedure TForm4.Timer1Timer(Sender: TObject);
begin
  Canvas.Pen.Color:=Form4.Color;
  Canvas.Rectangle(CenterX-X,CenterY-Y,CenterX+X,CenterY+Y);
  X:=RandomRange(XMin,XMax);
  Y:=RandomRange(XMin,XMax);
  Canvas.Pen.Color:=clBlue;
  Canvas.Rectangle(CenterX-X,CenterY-Y,CenterX+X,CenterY+Y);
end;
0
 Аватар для krapotkin
5899 / 4623 / 1454
Регистрация: 14.04.2014
Сообщений: 20,494
Записей в блоге: 20
16.12.2017, 13:28 7
Лучший ответ Сообщение было отмечено yashenko2016 как решение

Решение

ну или так. На форме лежит TShape, Timer.Interval = 50;
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TForm1=class(TForm)
..
  shape1:TShape;
end;
 
function GetRectInflate:integer;
begin
  result := round(10 * sin(getTickCount/100) );
end;
 
procedure TForm1.Timer1Timer(Sender:TObject);
var d:integer;
begin
  d:=GetRectInflate();  
  shape1.width := 100 + 2*d;
  shape1.height := 50 + 2*d;
  shape1.left := width div 2 - shape1.width div 2;
  shape1.top := height div 2 - shape1.height div 2;
end;
0
0 / 0 / 0
Регистрация: 08.06.2016
Сообщений: 32
16.12.2017, 13:58  [ТС] 8
Это будет прямоугольник, верно? Просто тот текст программы для квадрата и не по диагонали, а по стороне
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.12.2017, 13:58
Помогаю со студенческими работами здесь

В тексте переставить слова минимальной и максимальной длины
Вводится текст. В тексте переставить слова минимальной и максимальной длины. Конец ввода F1.

Поменять местами слово максимальной и минимальной длины.
Поменять местами слово максимальной и минимальной длины. строки char*. Как это можно сделать? Слова в строке разделены пробелом или...

Поменять местами подстроки минимальной и максимальной длины
Дана строка длиной не более 40 символов. Строка разделена точками на подстроки. Поменять местами подстроки минимальной и максимальной...

В файле заменить все слова максимальной длины на слова минимальной длины
Нужно в считанном из файла тексте заменить все слова максимальной длины на слова минимальной длины, а результат записать в новый файл....

Поменять первое слово максимальной длины и последнее слово минимальной длины
Отсортировать по убыванию слова любого предложения. Поменять первое слово максимальной длины и последнее слово минимальной длины


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
Разбиваем монолит на два микросервиса и реализуем CI/CD
ArchitectMsa 20.03.2025
Когда команда растет, а функциональность монолита расширяется, поддерживать и развивать такую систему становится все труднее. Разработчики начинают тратить много времени на разбор сложных. . .
Python и PDF: Создание и редактирование файлов
py-thonny 20.03.2025
Работа с PDF-документами – одна из популярных задач в современной разработке. Python предлагает несколько инструментов для создания, чтения и редактирования PDF-файлов, среди которых особенно. . .
Корутины в Unity и производительно­сть WaitForSeconds
GameUnited 20.03.2025
Разработчики игр на Unity часто сталкиваются с вопросом: как выполнять действия через определённые промежутки времени, не блокируя основной поток игры? Тут как раз и приходят на помощь корутины —. . .
Криптография в PHP
Jason-Webb 20.03.2025
PHP предоставляет много криптографических возможностей: от встроенных функций хеширования до полноценных библиотек шифрования — арсенал средств довольно обширен. Но всё это бесполезно без понимания. . .
Lineedge (Semi-Alpha) 0.75@20: Что мы потеряли
Etyuhibosecyu 20.03.2025
С каждым новым стандартом Lineedge обретает новые возможности — это ясно, как божий день. Однако есть и другая сторона — избавление от устаревших и проблемных элементов. Обычно удаление. . .
Реализация перечислений в Go
golander 19.03.2025
Если вы перешли на Go с других языков программирования (как я), таких как C#, Java или Python, вы наверняка заметили, что Go не имеет встроенной поддержки перечислений (enumerations). Это может стать. . .
Шаблон API Gateway в микросервисной архитектуре
MatrixArchitect 19.03.2025
API Gateway — один из основных компонентов микросервисной архитектуры. Фактически, API Gateway представляет собой сервис, который располагается между клиентскими приложениями и бэкенд-микросервисами,. . .
C++26: Что мы потеряли
bytestream 19.03.2025
С каждым новым стандартом C++ обретает новые возможности — это ясно, как божий день. Однако есть и другая сторона — избавление от устаревших и проблемных элементов. Обычно удаление функциональности. . .
Async/await в C#: Асинхронное программировани­е в действии
UnmanagedCoder 19.03.2025
Разработка современных приложений немыслима без понимания асинхронного программирования. Если вы когда-либо создавали приложение, которое взаимодействует с внешними ресурсами — будь то работа с. . .
Сопоставление с образцом (Pattern Matching) в Python: Списки и словари
py-thonny 19.03.2025
Программисты любят, когда код говорит сам за себя. Представьте, что вы можете просмотреть структуру данных и мгновенно понять, что с ней делать — без сложных условий и вложенных проверок. Именно эту. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru