Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 15.09.2015
Сообщений: 8

Переменная цикла For должна описываться в том же цикле, что и цикл for

01.10.2015, 17:32. Показов 1294. Ответов 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
uses crt;
Type Circle = record
                x,y,r:real;
              end;
     massiv=array[1..10] of Circle;
var c:massiv;
    i,j,n,k:integer;
procedure SetRandom(var c:massiv;var n:integer);
begin
write('Количество окружностей до 10 n=');
read(n);
writeln('Введите параметры окружностей:');
for i:=1 to n do
 begin
  writeln('Окружность ',i);
  write('координата центра Х=');
  read(c[i].x);
  write('координата центра Y=');
  read(c[i].y);
  write('радиус=');
  read(c[i].r)
 end;
clrscr;
end;
procedure GetCircle;
begin
for i:=1 to n do
writeln(i,'-й круг находится в точке (',c[i].x:5:2,':',c[i].y:5:2,') и имеет радиус ',c[i].r:5:2);
end;
function Accross(a:Circle; b:Circle) : boolean;
var d:real;
begin
d:=sqrt(sqr(b.x - a.x) + sqr(b.y - a.y));
result:=(d<a.r+b.r)and(d>abs(a.r-b.r))//окружности могут быть 1 внутри 2
end;
begin
SetRandom(c,n);
GetCircle;
writeln;
k:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
if Accross(c[i],c[j]) then
 begin
  k:=1;
  writeln('круг ',i,' пересекается с кругом ',j);
  end;
if k=0 then write('Нет пересекающихся кругов')
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.10.2015, 17:32
Ответы с готовыми решениями:

Переменная цикла for должна описываться в том же блоке, что и цикл for
всем доброго времени суток) у меня такая проблема на вот этой строчке for i:=1 to n-1 do выдает ошибку &quot;Переменная цикла for...

Выдает ошибку :Переменная цикла for должна описываться в том же блоке, что и цикл for
program Ford_Bellman; uses crt; const inf=100000; Vmax=1000; Emax=Vmax*(Vmax-1) div 2; type Edges=record u, v, w: integer; ...

Переменная цикла for должна описываться в том же блоке, что и цикл for
Доброго времени суток, у меня проблема. не могу понять в чем проблема. помогите разобраться uses crt; const n=6; const b:array...

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33395 / 21505 / 8236
Регистрация: 22.10.2011
Сообщений: 36,901
Записей в блоге: 12
01.10.2015, 17:36
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
uses
  crt;
 
type
  Circle = record
    x, y, r: real;
  end;
  massiv = array[1..10] of Circle;
 
var
  c: massiv;
  i, j, n, k: integer;
 
procedure SetRandom(var c: massiv; var n: integer);
var
  i: integer; // <---
begin
  write('Количество окружностей до 10 n=');
  read(n);
  writeln('Введите параметры окружностей:');
  for i := 1 to n do
  begin
    writeln('Окружность ', i);
    write('координата центра Х=');
    read(c[i].x);
    write('координата центра Y=');
    read(c[i].y);
    write('радиус=');
    read(c[i].r)
  end;
  clrscr;
end;
 
procedure GetCircle;
var
  i: integer; // <---
begin
  for i := 1 to n do
    writeln(i, '-й круг находится в точке (', c[i].x:5:2, ':', c[i].y:5:2, ') и имеет радиус ', c[i].r:5:2);
end;
 
function Accross(a: Circle; b: Circle): boolean;
var
  d: real;
begin
  d := sqrt(sqr(b.x - a.x) + sqr(b.y - a.y));
  result := (d < a.r + b.r) and (d > abs(a.r - b.r))//окружности могут быть 1 внутри 2
end;
 
begin
  SetRandom(c, n);
  GetCircle;
  writeln;
  k := 0;
  for i := 1 to n - 1 do
    for j := i + 1 to n do
      if Accross(c[i], c[j]) then
      begin
        k := 1;
        writeln('круг ', i, ' пересекается с кругом ', j);
      end;
  if k = 0 then write('Нет пересекающихся кругов')
end.
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
02.10.2015, 06:26
Во-первых: я вижу переменную k, которая вообще не используется…
Во-вторых: я бы переменные основной программы перенёс ниже к модулю основной программы…
Конечно, пришлось бы добавить недостающие (теперь) переменные во все процедуры и функции.
Но я бы точно был уверен, что они не пересекутся с переменными основной программы!
Ну и в-третьих: я бы переделал ввод информации о пересекающихся кругах в табличный вид:
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
uses
  crt;
 
type
  Circle = record
    x, y, r: real;
  end;
  massiv = array[1..10] of Circle;
 
procedure SetRandom(var c: massiv; var n: integer);
var
  i : Integer;
begin
  write('Количество окружностей до 10 n=');
  read(n);
  writeln('Введите параметры окружностей:');
  for i := 1 to n do
  begin
    writeln('Окружность ', i);
    write('координата центра Х=');
    read(c[i].x);
    write('координата центра Y=');
    read(c[i].y);
    write('радиус=');
    read(c[i].r)
  end;
  clrscr;
end;
 
procedure GetCircle(n : Integer; c : massiv);
var
  i : Integer;
begin
  for i := 1 to n do
    writeln(i, '-й круг находится в точке (', c[i].x:5:2, ':', c[i].y:5:2, ') и имеет радиус ', c[i].r:5:2);
end;
 
function Accross(a: Circle; b: Circle): boolean;
var
  d: real;
begin
  d := sqrt(sqr(b.x - a.x) + sqr(b.y - a.y));
  result := (d < a.r + b.r) and (d > abs(a.r - b.r))//окружности могут быть 1 внутри 2
end;
 
var
  c: massiv;
  i, j, n: integer;
 
begin
  SetRandom(c, n);
  GetCircle(n, c);
  
  writeln;
  WriteLn('· - круги не пересекаются', NewLine, 'X - круги пересекаются');
  Write('   ');
  for i := 1 to n do
    Write(i:2);
  WriteLn;
   
  for i := 1 to n do
    begin
      Write(i:2, ' ');
      for j := 1 to n+1-i do
        if Accross(c[i], c[j]) then
          Write(' X')
        else
          Write(' ·');
      WriteLn;
    end;
end.
Добавлено через 1 минуту
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
1-й круг находится в точке ( 1.00: 2.00) и имеет радиус  3.00
2-й круг находится в точке ( 4.00: 5.00) и имеет радиус  6.00
3-й круг находится в точке ( 7.00: 8.00) и имеет радиус  9.00
4-й круг находится в точке ( 0.00: 9.00) и имеет радиус  8.00
5-й круг находится в точке ( 7.00: 6.00) и имеет радиус  5.00
6-й круг находится в точке ( 4.00: 3.00) и имеет радиус  2.00
7-й круг находится в точке ( 1.00: 2.00) и имеет радиус  3.00
8-й круг находится в точке ( 4.00: 5.00) и имеет радиус  5.00
9-й круг находится в точке ( 6.00: 6.00) и имеет радиус  7.00
10-й круг находится в точке ( 7.00: 8.00) и имеет радиус  8.00
 
· - круги не пересекаются
X - круги пересекаются
    1 2 3 4 5 6 7 8 910
 1  · X X X X X · X X X
 2  X · X X X · X · X
 3  X X · X · · X X
 4  X X X · X X X
 5  X X · X · X
 6  X · · X X
 7  · X X X
 8  X · X
 9  X X
10  X
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.10.2015, 06:26
Помогаю со студенческими работами здесь

Переменная цикла for должна описываться в том же блоке, что и цикл for
program matr; uses crt; const n = 5; m = 5; var

Переменная цикла for должна описываться в том же блоке, что и цикл for
type mas = array of integer; var u: mas; i: integer; function k(l: mas; y: integer): mas;// возвращаем переменную типа...

Ошибка: переменная цикла for должна описываться в том же блоке что и цикл for
Не запускается что не так? program fa4; type ttf=file of integer; var f,f1:ttf; a,b:array of integer; i,j:integer; procedure...

Ошибка: Переменная цикла for должна описываться в том же блоке, что и цикл for
Задачка program srs_6; type asd = array of integer; var a,b,c,d:asd; s,s1,s2,s3,s4,i,j:integer; function...

Переменная цикла for должна описываться в том же блоке, что и цикл for - Pascal ABC
uses crt, graphABC; var n, m, i, j, max1, max2, n1, n2: integer; a: array of integer; z: char; procedure menu(var w:...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru