Составить программу по вычислению площади (в выделенной области) методом Монте-Карло...

0 голосов
87 просмотров

Составить программу по вычислению площади (в выделенной области) методом Монте-Карло (график y=sinx (фото ниже)).


image

Информатика (32 баллов) | 87 просмотров
0

Язык программирования QBASIC

Дано ответов: 2
0 голосов
Правильный ответ
MS DOS QBasic 1.0

RANDOMIZE TIMER
CONST n = 100000
k = 0: pi2 = 2 * ATN(1)
FOR i = 1 TO n
   x = pi2 * RND: y = RND
   IF y <= SIN(x) THEN k = k + 1<br>NEXT i
PRINT pi2 * k / n

Результаты (несколько вызовов)
 1.000078925210238
 1.002717863112688
 1.00188534103632
 .9981782616019249
 1.00315768609643
 1.000094633173943
 1.004634234684706
(150k баллов)
0 голосов

Const n=10000;
var x,y,s,h:real; i,k:integer;
begin
k:=0;
for i:=1 to n do
 begin
 x:=pi/2*random;
 y:=random;
 if y end;
s:=pi/2*k/n;
writeln('s = ',s:7:5);
// Проверка (можно убрать)
h:=pi/2/n;
x:=0-h;
s:=0;
for i:=1 to n do
 begin
 x:=x+h; s:=s+sin(x);
 end;
s:=s*h;
writeln('s = ',s:7:5);
end.

Пример:
s = 0.99479
s = 0.99992

QBasic:
Dim x As double
Dim y As double
Dim s As double
Dim h As double
Dim p2 As double
Dim n As integer
Dim i As integer
Dim k As integer
p2=3.1415926535/2
n=10000
k=0
for i=1 to n
 x=p2*rnd
 y=rnd
 if ynext i
s=p2*k/n
print "s = ";s
REM Проверка (можно убрать)
h=p2/n
x=0-h
s=0
for i=1 to n
 x=x+h
 s=s+sin(x)
next i
s=s*h
print "s = ";s

(194k баллов)
0

Какой это язык программирования?

0

Паскаль

0

Я забыл указать. Мне нужен QBASIC. Можно ли на нём?

0

Язык нужно указывать в вопросе (если это важно). Бейсика у меня нет. Там всё аналогично будет.

0

Прошу прощения. Я знаю. Просто забыл почему-то. К вопросу. Я в языках программирования ничего не понимаю просто. Если бы мог, то переделал. Но знания не позволяют.. А работу завтра сдавать надо

0

На QBASIC проверяйте сами (у меня нет Бейсика)

0

Большое спасибо