Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 19
1

Вывести 25 векторов, координаты которых заданы случайным образом

22.05.2018, 08:00. Показов 1392. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста с программой. Нужно чтобы паскаль выводил 25 векторов координаты заданы рандомно. Как они должны быть расположены показано на рисунке. Попозже выложу, что мы уже сделали. А именно мы смогли сделать рандомные координаты нам помоч с выводом.
Миниатюры
Вывести 25 векторов, координаты которых заданы случайным образом  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2018, 08:00
Ответы с готовыми решениями:

Вычислить суммы А+B; C+D векторов, заданных случайным образом
добрый день! помогите мне дописать чуть -чуть программу... задание: Вычислить суммы А+B; C+D...

Модуль Graph: Нарисовать в нижней, левой четверти экрана 150 точек, выбирая координаты и цвета случайным образом
Нарисовать в нижней, левой четверти экрана 150 точек, выбирая координаты и цвета случайным образом

Заданы координаты вершин треугольника. Вывести их в порядке обхода треугольника по часовой стрелке, координаты
Заданы координаты вершин треугольника. Вывести их в порядке обхода треугольника по часовой стрелке,...

Массивы. Вывести элементы массива, размещая их там случайным образом, с задержкой в 2 секунды
Программа должна сформировать случайным образом массив из 20 целых чисел из отрезка и вывести...

24
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.05.2018, 08:59 2
Так пойдет?
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
uses graphABC;
type vect=record
           x1,y1,x2,y2:integer;
          end;
const n=25;
function Ugol(p:vect):real;
begin
if (p.x2>p.x1)and(p.y2<=p.y1) then Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))//I четверть
else if (p.x2>p.x1)and(p.y2>p.y1) then Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))+2*pi//IV четверть
else if p.x2<p.x1 then  Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))+pi//II-III четверти
else if p.x2=p.x1 then
 begin
  if p.y2<p.y1 then  Ugol:=pi/2//вертикально вверх
  else if p.y2>p.y1 then Ugol:=3*pi/2//вертикально вниз
  else Ugol:=0;
 end;
end;
procedure vector(p:vect);
var x3,y3,x4,y4:integer;
    u:real;
begin
line(p.x1,p.y1,p.x2,p.y2);
u:=ugol(p);
x3:=p.x2-round(20*cos(u+pi/10));
y3:=p.y2+round(20*sin(u+pi/10));
line(p.x2,p.y2,x3,y3);
x4:=p.x2-round(20*cos(u-pi/10));
y4:=p.y2+round(20*sin(u-pi/10));
line(p.x2,p.y2,x4,y4);
end;
var v:array[1..n] of vect;
    i:byte;
    x0,y0:integer;
begin
setwindowsize(560,560);
centerwindow;
x0:=50;
y0:=510;
setpenwidth(2);
line(x0,y0,550,y0);
line(x0,y0,x0,10);
setpenwidth(1);
for i:=1 to 5 do
 begin
  line(x0+100*i,y0-5,x0+100*i,y0+5);
  line(x0-5,y0-100*i,x0+5,y0-100*i);
  textout(x0+100*i-10,y0+10,inttostr(5*i));
  textout(x0-25,y0-100*i,inttostr(5*i));
 end;
randomize;
for i:=1 to n do
 begin
  v[i].x1:=51+random(480);
  v[i].y1:=10+random(500);
  v[i].x2:=51+random(180);
  v[i].y2:=10+random(500);
  vector(v[i]);
 end;
end.
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 19
22.05.2018, 10:48  [ТС] 3
Надо чтобы было 5 векторов в ряду, всего 5 рядов. Векторы не должны пересекаться. Как на рисунке показано. Оси не обьязательно.

Добавлено через 2 минуты
Но спасибо огромное за то что помогли.
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.05.2018, 10:49 4
В первом посте написано
Цитата Сообщение от вероник Посмотреть сообщение
Нужно чтобы паскаль выводил 25 векторов координаты заданы рандомно.
Ничего про
Цитата Сообщение от вероник Посмотреть сообщение
Надо чтобы было 5 векторов в ряду, всего 5 рядов. Векторы не должны пересекаться.
там нет. До свидания.
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 19
22.05.2018, 10:56  [ТС] 5
Я написала что как на рисунке. На рисунке показано. Всего доброго.
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.05.2018, 11:41 6
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
uses graphABC;
type vect=record
           x1,y1,x2,y2:integer;
          end;
const n=5;
function Ugol(p:vect):real;
begin
if (p.x2>p.x1)and(p.y2<=p.y1) then Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))//I четверть
else if (p.x2>p.x1)and(p.y2>p.y1) then Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))+2*pi//IV четверть
else if p.x2<p.x1 then  Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))+pi//II-III четверти
else if p.x2=p.x1 then
 begin
  if p.y2<p.y1 then  Ugol:=pi/2//вертикально вверх
  else if p.y2>p.y1 then Ugol:=3*pi/2//вертикально вниз
  else Ugol:=0;
 end;
end;
procedure vector(p:vect);
var x3,y3,x4,y4:integer;
    u:real;
begin
line(p.x1,p.y1,p.x2,p.y2);
u:=ugol(p);
x3:=p.x2-round(20*cos(u+pi/10));
y3:=p.y2+round(20*sin(u+pi/10));
line(p.x2,p.y2,x3,y3);
x4:=p.x2-round(20*cos(u-pi/10));
y4:=p.y2+round(20*sin(u-pi/10));
line(p.x2,p.y2,x4,y4);
end;
var v:array[1..n,1..n] of vect;
    i,j,k:byte;
    x,y:integer;
begin
setwindowsize(520,520);
centerwindow;
{for i:=0 to 5 do//если нужно квадратная сетка
 begin
  line(10+i*100,10,10+i*100,510);
  line(10,10+i*100,510,10+i*100);
 end; }
randomize;
y:=10;
for i:=1 to 5 do
 begin
  x:=10;
  for j:=1 to 5 do
   begin
    k:=random(2);
    if k=0 then
     begin
      v[i,j].x1:=x+5;
      v[i,j].x2:=x+95;
     end
    else
     begin
      v[i,j].x2:=x+5;
      v[i,j].x1:=x+95;
     end;
    v[i,j].y1:=y+5+random(90);
    v[i,j].y2:=y+5+random(90);
    vector(v[i,j]);
    x:=x+100;
   end;
  y:=y+100;
 end;
 
end.
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 19
22.05.2018, 11:41  [ТС] 7
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
program vecktor;
 
uses  crt;
 
type
vector =record;
x1:integer;
x2:integer;
y1:integer;
y2:integer;
end;
var i,k,n,m:integer; pole:array[1..25] of vector;
begin
 
// координата Х1
for k:=0 to 4 do
for i:=1 to 5 do
begin
pole[i].x1:= random(5)+5*k+1;
write (pole[i].x1, ' ');
end;
 
n:=0;
write;
 
writeln;
//координаты Х2
 
for k:=0 to 4 do
for i:=1 to 5 do
begin
pole[i].x2:= random(5)+5*k+1;
write (pole[i].x2, ' ');
end;
 
n:=0;
write;
 
 
writeln;
//координата Y1
 
 for k:=0 to 4 do
for i:=1 to 5 do
begin
pole[i].y1:= random(5)+5*k+1;
write (pole[i].y1, ' ');
end;
 
n:=0;
write;
writeln;
 
 
//координата Y2
 
for k:=0 to 4 do
for i:=1 to 5 do
begin
pole[i].y2:= random(5)+5*k+1;
write (pole[i].y2, ' ');
end;
 
 
n:=0;
write;
 
 
moveto (pole[1].x1*10,pole[1].y1*10);
   {
Line(pole[1].x1*10,pole[1].y1*10, pole[1].x2*10,pole[1].y2*10);
 
Line(pole[2].x1*10,pole[2].y1*10, pole[2].x2*10,pole[2].y2*10);
 
Line(pole[3].x1*10,pole[3].y1*10, pole[3].x2*10,pole[3].y2*10);
 
Line(pole[4].x1*10,pole[4].y1*10, pole[4].x2*10,pole[4].y2*10);
 
Line(pole[5].x1*10,pole[5].y1*10, pole[5].x2*10,pole[5].y2*10);
 
Line(pole[6].x1*10,pole[6].y1*10, pole[6].x2*10,pole[6].y2*10);
 
Line(pole[7].x1*10,pole[7].y1*10, pole[7].x2*10,pole[7].y2*10);
 
Line(pole[8].x1*10,pole[8].y1*10, pole[8].x2*10,pole[8].y2*10);
 
Line(pole[9].x1*10,pole[9].y1*10, pole[9].x2*10,pole[9].y2*10);
 
Line(pole[10].x1*10,pole[10].y1*10, pole[10].x2*10,pole[10].y2*10);
 
}
end.
Вот, что сделали мы координаты формирует правильно. Проблема с выводом.
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.05.2018, 11:46 8
Посмотрите мой последний код, в вашем лень разбираться, тем более что там ошибки.
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 19
22.05.2018, 11:48  [ТС] 9
Спасибо большое.
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.05.2018, 11:49 10
Если что-то не поймете в коде спрашивайте.
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 19
22.05.2018, 12:08  [ТС] 11
А можно у вас поинтересоваться? Там же возможно внести такие изменения, что какие он данные рандомно получил он их вносит в документ а потом когда начинает рисовать он их берет из этого файла? Вы только не ругайтесь я не прошу сделать. Я хочу у вас спросить как у более опытного программиста это же возможно или очень геморойно?
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.05.2018, 12:18 12
Конечно можно. Там где я вычисляю координаты точек, не рисовать, а писать координаты в текстовый файл.
Pascal
1
2
3
4
5
6
7
8
9
10
11
assign(f,'koordinaty.txt');
rewrite(f);
for i:=1 to n do
 begin
............
for j:=1 to n do
 begin
//вычисляем координаты
//пишем в файл
write(f,' ',v[i,j].x1,' ',v[i,j].y1,' ',v[i,j].x2,' ',v[i,j].y2);
close(f);
А потом читаем координаты из файла и рисуем
Pascal
1
2
3
4
5
6
7
8
9
assign('koordinaty.txt');
reset(f);
for i:=1 to 5 do
for j:=1 to 5 do
 begin
  read(f,v[i,j].x1,v[i,j].y1,v[i,j].x2,v[i,j].y2);
  vector(v[i,j]);
 end;
close(f);
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 19
22.05.2018, 13:10  [ТС] 13
Я вас правильно поняла сюда вставлять?
На фото выделила.
Миниатюры
Вывести 25 векторов, координаты которых заданы случайным образом  
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.05.2018, 13:21 14
Вроде да, лучше бы текстом код выложили.

Добавлено через 3 минуты
Вообще в таком случае нужно сделать 2 программы, в первой создать файл, во второй прочитать его и нарисовать, иначе как-то глупо получается, создаем массив, пишем его в файл, обратно читаем из файла. Да и с двумя программами не очень по умному. Нафига этот файл, который создается программно?
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 19
22.05.2018, 13:25  [ТС] 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
uses graphABC;
type vect=record
           x1,y1,x2,y2:integer;
          end;
const n=5;
function Ugol(p:vect):real;
begin
if (p.x2>p.x1)and(p.y2<=p.y1) then
 Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))
else if (p.x2>p.x1)and(p.y2>p.y1)
 then Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))+2*pi
else if p.x2<p.x1
then  Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))+pi
else if p.x2=p.x1 then
 begin
  if p.y2<p.y1 then  Ugol:=pi/2
  else if p.y2>p.y1 then Ugol:=3*pi/2
  else Ugol:=0;
 end;
end;
procedure vector(p:vect);
var x3,y3,x4,y4:integer;
    u:real;
begin
line(p.x1,p.y1,p.x2,p.y2);
u:=ugol(p);
x3:=p.x2-round(20*cos(u+pi/10));
y3:=p.y2+round(20*sin(u+pi/10));
line(p.x2,p.y2,x3,y3);
x4:=p.x2-round(20*cos(u-pi/10));
y4:=p.y2+round(20*sin(u-pi/10));
line(p.x2,p.y2,x4,y4);
end;
var v:array[1..n,1..n] of vect;
    i,j,k:byte;
    x,y:integer;
begin
setwindowsize(520,520);
centerwindow;
 assign(f,'koordinaty.txt');
rewrite(f);
randomize;
y:=10;
for i:=1 to 5 do
 begin
  x:=10;
  for j:=1 to 5 do
   begin
    k:=random(2);
    if k=0 then
     begin
      v[i,j].x1:=x+5;
      v[i,j].x2:=x+95;
     end
    else
     begin
      v[i,j].x2:=x+5;
      v[i,j].x1:=x+95;
     end;
     write(f,' ',v[i,j].x1,' ',v[i,j].y1,' ',v[i,j].x2,' ',v[i,j].y2);
close(f);
    {v[i,j].y1:=y+5+random(90);
    v[i,j].y2:=y+5+random(90);
    vector(v[i,j]);
    x:=x+100;    }
   assign('koordinaty.txt');
reset(f);
for i:=1 to 5 do
for j:=1 to 5 do
 begin
  read(f,v[i,j].x1,v[i,j].y1,v[i,j].x2,v[i,j].y2);
  vector(v[i,j]);
 end;
close(f);
   end;
   
  y:=y+100;
 end;
 
end.

Вот с вашими вставками в код, а почему у меня паскаль абс говорит что он не знает переменную f. Объявила как текст, выдает ошибки.
Зачем нужен файл - это прихоть преподавателя.
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.05.2018, 13:46 16
Первая программа-создание файла.
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
type vect=record
           x1,y1,x2,y2:integer;
          end;
const n=5;
function Ugol(p:vect):real;
begin
if (p.x2>p.x1)and(p.y2<=p.y1) then Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))//I четверть
else if (p.x2>p.x1)and(p.y2>p.y1) then Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))+2*pi//IV четверть
else if p.x2<p.x1 then  Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))+pi//II-III четверти
else if p.x2=p.x1 then
 begin
  if p.y2<p.y1 then  Ugol:=pi/2//вертикально вверх
  else if p.y2>p.y1 then Ugol:=3*pi/2//вертикально вниз
  else Ugol:=0;
 end;
end;
var v:array[1..n,1..n] of vect;
    f:text;
    i,j,k:byte;
    x,y:integer;
begin
assign(f,'koordinaty.txt');//файл будет в папке с программой
rewrite(f);
randomize;
y:=10;
for i:=1 to 5 do
 begin
  x:=10;
  for j:=1 to 5 do
   begin
    k:=random(2);
    if k=0 then
     begin
      v[i,j].x1:=x+5;
      v[i,j].x2:=x+95;
     end
    else
     begin
      v[i,j].x2:=x+5;
      v[i,j].x1:=x+95;
     end;
    v[i,j].y1:=y+5+random(90);
    v[i,j].y2:=y+5+random(90);
    write(f,v[i,j].x1:4,v[i,j].y1:4,v[i,j].x2:4,v[i,j].y2:4);
    x:=x+100;
   end;
  writeln(f);
  y:=y+100;
 end;
close(f);
write('Файл с координатами koordinaty.txt создан')
end.
Вторая программа чтение файла и построение.
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
uses graphABC;
type vect=record
           x1,y1,x2,y2:integer;
          end;
const n=5;
function Ugol(p:vect):real;
begin
if (p.x2>p.x1)and(p.y2<=p.y1) then Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))//I четверть
else if (p.x2>p.x1)and(p.y2>p.y1) then Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))+2*pi//IV четверть
else if p.x2<p.x1 then  Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))+pi//II-III четверти
else if p.x2=p.x1 then
 begin
  if p.y2<p.y1 then  Ugol:=pi/2//вертикально вверх
  else if p.y2>p.y1 then Ugol:=3*pi/2//вертикально вниз
  else Ugol:=0;
 end;
end;
procedure vector(p:vect);
var x3,y3,x4,y4:integer;
    u:real;
begin
line(p.x1,p.y1,p.x2,p.y2);
u:=ugol(p);
x3:=p.x2-round(20*cos(u+pi/10));
y3:=p.y2+round(20*sin(u+pi/10));
line(p.x2,p.y2,x3,y3);
x4:=p.x2-round(20*cos(u-pi/10));
y4:=p.y2+round(20*sin(u-pi/10));
line(p.x2,p.y2,x4,y4);
end;
var v:array[1..n,1..n] of vect;
    f:text;
    i,j,k:byte;
    x,y:integer;
begin
assign(f,'koordinaty.txt');
reset(f);
for i:=1 to 5 do
for j:=1 to 5 do
read(f,v[i,j].x1,v[i,j].y1,v[i,j].x2,v[i,j].y2);
close(f);
setwindowsize(520,520);
centerwindow;
randomize;
y:=10;
for i:=1 to 5 do
 begin
  x:=10;
  for j:=1 to 5 do
   begin
    k:=random(2);
    if k=0 then
     begin
      v[i,j].x1:=x+5;
      v[i,j].x2:=x+95;
     end
    else
     begin
      v[i,j].x2:=x+5;
      v[i,j].x1:=x+95;
     end;
    v[i,j].y1:=y+5+random(90);
    v[i,j].y2:=y+5+random(90);
    vector(v[i,j]);
    x:=x+100;
   end;
  y:=y+100;
 end;
 
end.
Добавлено через 3 минуты
Функцию Ugol из первой программы нужно убрать.
Раз написано
const n=5, нужно в текстах программ везде 5 заменить на n.
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 19
22.05.2018, 13:50  [ТС] 17
Хорошо я заменю как вы сказали, а их соединить же можно?
0
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
22.05.2018, 13:55 18
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Да, можно.

Добавлено через 4 минуты
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
uses graphABC;
type vect=record
           x1,y1,x2,y2:integer;
          end;
const n=5;
function Ugol(p:vect):real;
begin
if (p.x2>p.x1)and(p.y2<=p.y1) then Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))//I четверть
else if (p.x2>p.x1)and(p.y2>p.y1) then Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))+2*pi//IV четверть
else if p.x2<p.x1 then  Ugol:=arctan((p.y1-p.y2)/(p.x2-p.x1))+pi//II-III четверти
else if p.x2=p.x1 then
 begin
  if p.y2<p.y1 then  Ugol:=pi/2//вертикально вверх
  else if p.y2>p.y1 then Ugol:=3*pi/2//вертикально вниз
  else Ugol:=0;
 end;
end;
procedure vector(p:vect);
var x3,y3,x4,y4:integer;
    u:real;
begin
line(p.x1,p.y1,p.x2,p.y2);
u:=ugol(p);
x3:=p.x2-round(20*cos(u+pi/10));
y3:=p.y2+round(20*sin(u+pi/10));
line(p.x2,p.y2,x3,y3);
x4:=p.x2-round(20*cos(u-pi/10));
y4:=p.y2+round(20*sin(u-pi/10));
line(p.x2,p.y2,x4,y4);
end;
var v:array[1..n,1..n] of vect;
    f:text;
    i,j,k:byte;
    x,y:integer;
begin
assign(f,'koordinaty.txt');//файл будет в папке с программой
rewrite(f);
randomize;
y:=10;
for i:=1 to n do
 begin
  x:=10;
  for j:=1 to n do
   begin
    k:=random(2);
    if k=0 then
     begin
      v[i,j].x1:=x+5;
      v[i,j].x2:=x+95;
     end
    else
     begin
      v[i,j].x2:=x+5;
      v[i,j].x1:=x+95;
     end;
    v[i,j].y1:=y+5+random(90);
    v[i,j].y2:=y+5+random(90);
    write(f,v[i,j].x1:4,v[i,j].y1:4,v[i,j].x2:4,v[i,j].y2:4);
    x:=x+100;
   end;
  writeln(f);
  y:=y+100;
 end;
reset(f);
for i:=1 to n do
for j:=1 to n do
read(f,v[i,j].x1,v[i,j].y1,v[i,j].x2,v[i,j].y2);
close(f);
setwindowsize(520,520);
centerwindow;
randomize;
y:=10;
for i:=1 to n do
 begin
  x:=10;
  for j:=1 to n do
   begin
    k:=random(2);
    if k=0 then
     begin
      v[i,j].x1:=x+5;
      v[i,j].x2:=x+95;
     end
    else
     begin
      v[i,j].x2:=x+5;
      v[i,j].x1:=x+95;
     end;
    v[i,j].y1:=y+5+random(90);
    v[i,j].y2:=y+5+random(90);
    vector(v[i,j]);
    x:=x+100;
   end;
  y:=y+100;
 end;
 
end.
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 19
22.05.2018, 13:57  [ТС] 19
Спасибо вам огромное.
0
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 19
24.05.2018, 10:03  [ТС] 20
Подскажите пожалуйста зачем в коде нужны .
Pascal
1
2
3
4
5
6
7
8
y:=10;
for i:=1 to n do
 begin
  x:=10;
  for j:=1 to n do
   begin
    k:=random(2);
    if k=0 then
Почему y и x присваивать 10.

И k - для чего?
В остальном разобралась спасибо.
0
24.05.2018, 10:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.05.2018, 10:03
Помогаю со студенческими работами здесь

создать одномерный массив X[1..10] случайным образом.Вывести его в строку.Затем сделать циклическую перестановку
создать одномерный массив X случайным образом.Вывести его в строку.Затем сделать циклическую...

Дана матрица размером 7X7 элементов, случайным образом заполненная. Соседями элемента Aij называют элементы, Akp для которых выполняются неравенства i
Дана матрица размером 7X7 элементов, случайным образом заполненная. Соседями элемента Aij называют...

Найти скалярное произведение двух векторов, координаты которых заданы случайно
Помогите. Не понимаю, как нужно выполнять это задание даже. если не сложно выложите весь код. ...

Заданы координаты концов двух векторов, выходящих из начала координат. Найти длины этих векторов
Заданы координаты концов двух векторов, выходящих из начала координат. Найти длины этих векторов.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru