⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 近轴光束的光路计算.cpp

📁 这是近轴光束的光路计算程序,简化计算.无编译问题.
💻 CPP
字号:
// 近轴光束的光路计算.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

///////////宏定义光线入射高度///////////////////////////////////////////////////////////////////////////////
#define h 30.0
////////////////////////////////////////////////////////////////////////////////////////////////////////////	
void main(int argc, char* argv[])
{ 
  int x, flag=1, i, j;
  double  l1[10],l2[10], r[10], u1[10], u2[10], n[10],  d[10], i1[10], i2[10],a[10], b[10], c[10];
	printf("请输入透镜的数目(0<x<11):");
		 while(flag)
		 {
			scanf("%d",&x);
				printf("\n");
					if(x<=0||x>=11) 
						printf("输入错误!\n请重新输入透镜的数目(0<x<11):");
					else 
						flag=0;
		 }
///////////输入光学参数//////////////////////////////////////////////////////////////////////////////////////
			printf("请按顺序正确输入每个透镜的球半径r:");
			for(i=0;i<x;i++)
				scanf("%lf",&r[i]);
			printf("\n");
			printf("请按顺序正确输入每个透镜的距离d:");
			for(i=0;i<x-1;i++)
				scanf("%lf",&d[i]);
			printf("\n");
			printf("请按顺序正确输入每个透镜的折射率n:");	
			if(x!=1)
			{
				for(i=0;i<x-1;i++)
					scanf("%lf",&n[i]);
				n[i]=1;
			}
			else
			{
				for(i=0;i<x;i++)
					scanf("%lf",&n[i]);
			}
			printf("\n");
//////////演算第一块透镜的象距///////////////////////////////////////////////////////////////////////////////
			i1[0]=h/r[0];   
			i2[0]=i1[0]/n[0];
			u2[0]=i1[0]-i2[0];
			a[0]=i2[0]*r[0]/u2[0];
			l2[0]=a[0]+r[0];
/////////演算过其他透镜的象距////////////////////////////////////////////////////////////////////////////////	
			for(j=1;j<x;j++)
			{
				c[j-1]=l2[j-1]-d[j-1];
				l1[j]=c[j-1];
				u1[j]=u2[j-1];
				b[j]=l1[j]-r[j];
				i1[j]=b[j]*u1[j]/r[j];
				i2[j]=i1[j]*n[j-1]/n[j];
				u2[j]=u1[j]+i1[j]-i2[j];
				a[j]=i2[j]*r[j]/u2[j];
				l2[j]=a[j]+r[j];
				
			}
/////////输出每过一透镜的象距/////////////////////////////////////////////////////////////////////////////////
				for(i=0;i<x;i++)
				{
					printf("过第%d块透镜后的象距:l%d=%lf\n",i+1,i+1,l2[i]);
				}
/////////输出光组的焦距///////////////////////////////////////////////////////////////////////////////////////
					printf("光组的焦距:f=%lf\n",h/u2[--i]);

}			
			



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -