Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Lena11
0 / 0 / 0
Регистрация: 24.11.2011
Сообщений: 9
1

Задача на паскале

08.12.2011, 22:13. Просмотров 694. Ответов 1
Метки нет (Все метки)

Задача:
Даны 2 пересекающихся круга. Вычислить:
а). площадь объединения кругов;
б). площадь пересечения кругов;
в). площадь фигуры, полученной разностью объединения и пересечения кругов.
Помогите пожалйста убрать из программы раздел Type, а TKrug заменить на переменные.

Сама программа:

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
Program Task4;
 
Uses
  CRT;
 
Type
  TKrug = Record
    x, y : Real;
    R : Real;
  end;
 
Const
  N = 30000;
  
Var
  Krug1, Krug2 : TKrug;
  S : Real;
  S_Comb : Real;
  S_Cross : Real;
  Comb  : LongInt;
  Cross : LongInt;
  x, y: Real;
  x1, x2 : Real;
  y1, y2 : Real;
  i : LongInt;
 
 
 
Function Popadanie(Krug : TKrug; x,y: Real): Boolean;
begin
  Popadanie := sqr(x - Krug.x) + sqr(y - Krug.y) <= sqr(Krug.R);
end;
 
 
 
Begin
  Randomize;
  ClrScr;
 
  
  WriteLn('Ввод параметров первого круга');
  Write('Координата x=');  ReadLn(Krug1.x);
  Write('Координата y=');  ReadLn(Krug1.y);
  Write('Радиус R=');      ReadLn(Krug1.R);
  Writeln;
  
  WriteLn('Ввод параметров второго круга');
  Write('Координата x=');  ReadLn(Krug2.x);
  Write('Координата y=');  ReadLn(Krug2.y);
  Write('Радиус R=');      ReadLn(Krug2.R);
  Writeln;
 
 
   if Krug1.x - Krug1.R  < Krug2.x - Krug2.R then   
    begin
      x1 := Krug1.x - Krug1.R;   
      x2 := Krug2.x + Krug2.R;   
    end
  else
    begin
      x1 := Krug2.x - Krug2.R;
      x2 := Krug1.x + Krug1.R;
    end;
 
    if Krug1.y + Krug1.R  > Krug2.y + Krug2.R then   
    begin
      y1 := Krug1.y + Krug1.R;       
  y2 := Krug2.y - Krug2.R;    
  end
  else
    begin
      y1 := Krug2.y + Krug2.R;
      y2 := Krug1.y - Krug1.R;
    end;
 
  
  S := abs(x2-x1)*abs(y2-y1);
 
 
    
  Comb := 0;
  Cross := 0;
 
    For i := 1 to N do
    begin
            x := x1 + (x2 - x1)*random;
      y := y1 + (y2 - y1)*random;
 
            if Popadanie(Krug1, x, y) or Popadanie(Krug2, x, y) then      Comb := Comb + 1;            
      if Popadanie(Krug1, x, y) and Popadanie(Krug2, x, y) then    Cross := Cross + 1;  
   end; {For}
 
 
  S_Comb := Comb/N*S;   
   S_Cross := Cross/N*S;  
   Writeln(' Площадь объединения : ',  S_Comb:8:3 );
  writeln(' Площадь пересечения : ',  S_Cross:8:3);
  writeln(' Площадь разности объединения и пересечения: ',  S_Comb - S_Cross:8:3);
 
  ReadLn;
End.
 Комментарий модератора 
Сообщение изменено модератором.
Для кода программ есть соответствующие теги в редакторе сообщений.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2011, 22:13
Ответы с готовыми решениями:

Задача в Паскале
Задача состоит в следующем: Большее из трех чисел заменить суммой,меньшее-произведением,среднее-не...

Задача в паскале.
Необходимо придумать задачу с командой &quot;повторить&quot;, записать для цикла с предусловием и...

Задача на паскале
Дано а, х, z. Если х + z не равно а, вычислить Y = arcsin(x) + tg(a/z) Если х – z = a, вычислить...

Задача на Паскале
Всем доброго времени суток!:) Необходимо написать программу на Паскале,вот условие задачи:...

задача в Паскале
Помогите решить задачу на паскале из 3 массивов 1)создать массив из 20 целых чисел с клавиатуры....

1
Puporev
Модератор
58928 / 44606 / 30787
Регистрация: 18.05.2008
Сообщений: 106,881
09.12.2011, 13:16 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
60
61
62
63
64
65
66
67
68
69
Uses  CRT;
const N=30000;
Var x1,y1,r1,x2,y2,r2:real;
    S : Real;
    S_Comb : Real;
    S_Cross : Real;
    Comb  : LongInt;
    Cross : LongInt;
    x, y: Real;
    x11, x12 : Real;
    y11, y12 : Real;
    i : LongInt;
Function Popadanie(x1,y1,r1 : real; x,y: Real): Boolean;
begin
  Popadanie := sqr(x - x1) + sqr(y - y1) <= sqr(r1);
end;
 
Begin
  Randomize;
  ClrScr;
  WriteLn('Ввод параметров первого круга');
  Write('Координата x=');  ReadLn(x1);
  Write('Координата y=');  ReadLn(y1);
  Write('Радиус R=');      ReadLn(r1);
  Writeln;
 
  WriteLn('Ввод параметров второго круга');
  Write('Координата x=');  ReadLn(x2);
  Write('Координата y=');  ReadLn(y2);
  Write('Радиус R=');      ReadLn(r2);
  Writeln;
 
  if x1 - r1  < x2 - r2 then
    begin
      x11 := x1 - r1;
      x12 := x2 + r2;
    end
  else
    begin
      x11 := x2 - r2;
      x12 := x1 + r1;
    end;
  if y1 + r1  > y2 + r2 then
    begin
      y11 := y1 + r1;
      y12 := y2 - r2;
    end
  else
    begin
      y11 := y2 + r2;
      y12 := y1 - r1;
    end;
  S := abs(x12-x11)*abs(y12-y11);
  Comb := 0;
  Cross := 0;
  For i := 1 to N do
   begin
    x := x11 + (x12 - x11)*random;
    y := y11 + (y12 - y11)*random;
    if Popadanie(x1,y1,r1, x, y) or Popadanie(x2,y2,r2, x, y) then Comb := Comb + 1;
    if Popadanie(x1,y1,r1, x, y) and Popadanie(x2,y2,r2, x, y) then Cross := Cross + 1;
   end; {For}
  S_Comb := Comb/N*S;
  S_Cross := Cross/N*S;
  Writeln(' Площадь объединения : ',  S_Comb:8:3 );
  writeln(' Площадь пересечения : ',  S_Cross:8:3);
  writeln(' Площадь разности объединения и пересечения: ',  S_Comb - S_Cross:8:3);
  ReadLn;
End.
1
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2011, 13:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

задача в паскале с файлами
я ни знаю как ее написать помогите пожалуйста : Дан файл f , элементы которого являются целыми...

Задача в паскале ( матрицы ).
Прошу помочь мне решить задачу в паскале очень надо плизззззз :P Даны целые положительные числа M...

Транспортная задача на паскале.
Помогите решить задачу на Pascal она не из простых, но надо срочно!!!(желательно 3 способа: полным...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.