Задача на цикл - VB (58923)
Формулировка задачи:
Определить зависимость фокусного расстояния двояковыпуклой стеклянной линзы от радиусов ее сферических поверхностей, если показатель преломления стекла m=1,5;
f = 1 / ((m - 1) * ((1 / R1) + (1 / R2)))
где 4,2 <= r1 <= 12,2
6,4 <= r2 <= 24,4 c шагом 2 см.
Вот такой код я написал, но в ответе у меня почему-то R1 значения повторяются каждый раз
Не пойму, в чем причина
Решение задачи: «Задача на цикл»
textual
Листинг программы
Dim R1 As Double, R10 As Double, dR As Double, R1k As Double
Dim R2 As Double, R20 As Double, R2k As Double
Dim f As Double, m As Double
R10 = InputBox("M0", , 4.2) 'R1 начальное
dR = InputBox("dM", , 2) 'Шаг R1,2
R1k = InputBox("Mk", , 12.2) 'R1 конечное
R20 = InputBox("V0", , 6.4) 'R2 начальное
R2k = InputBox("Vk", , 24.4) 'R2 конечное
m = InputBox("m", , 1.5) 'преломление
R2 = R20
Do While R2 <= R2k
Print "R2 = " & R2
R1 = R10
Do
f = 1 / ((m - 1) * ((1 / R1) + (1 / R2)))
Print vbTab & "Pri r1 = " & R1 & vbTab & "f = " & f
R1 = R1 + dR
Loop Until R1 > R1k
R2 = R2 + dR
Loop