A. flash as3.0编程:用数组生成10个小球做自由落体运动,然后到达舞台底部反弹
模拟自由落体运动说难也难,说简单也简单,看你想达到什么效果。如果考虑到下落物体的质量、密度、弹力(硬度)与空气阻力,下落到达物体的硬度及摩擦力、角度等,这就比较难,你可学习下Box2D物理引擎。
不过看到这儿还是给你个简单的实例参考下:
/*-----------------复制10个小球---------------------
**先做一个小球元件(影片剪辑)AS链接为ball
**注:不用将小球拖至舞台上。
*/
for(vari:int=0;i<10;i++)
{
varbal:ball=newball();//将库元件实例化
bal.x=stage.stageWidth/10*i;//实例初始位置X坐标
bal.y=5;//实例初始位置Y坐标
addChild(bal);//加入显示列表
bal.addEventListener(Event.ENTER_FRAME,balMove);//帧频侦听函数
}
/*----------------构建侦听函数----------------*/
functionbalMove(e:Event):void
{
varbal:ball=e.targetasball;//传递转换
if(bal.y<stage.stageHeight-bal.height)
{
//根据物理学,V平方=2gh公式计算,(1米=30象素,g=10,1秒24帧)
bal.v=Math.sqrt(2*10*(bal.y*30))/24;
}
else
{
bal.v=-bal.v*.8;//简单模拟,并不科学,详见Box2D物理引擎!
}
bal.y+=bal.v;//Y轴值变化。
}
B. pascal编程:自由落体
const g=10{重力加速度};e=1E-5;{小车接受小球的极限距离}
var H,s1,v,l,k,t1,t2,Vmin,Vmax:real;
n2,n1,num,n:integer;
begin
readln(h,s1,v,l,k,n);num:=-1;
t1:=sqrt(2*h/g);{小球落地时间}
if h<=k+e then t2:=0 else t2:=sqrt(2*(h-k-e)/g);{小球落到小车上的最短时间}
if s1-v*t2+L+e<0
then num:=0
else n2:=trunc(s1-v*t2+L+e);{小车接受的球的最大编号为n2}
if n2>n-1 then n2:=n-1;{n2取trunc(s1-v*t2+L+e)与n-1的较小值}
if s1-v*t1-e<=0
then n1:=0
else if s1-v*t1-e>n-1
then num:=0
else if (s1-v*t1-e)=trunc(s1-v*t1-e)
then n1:=trunc(s1-v*t1-e){小车接受的球的最小编号为n1}
else n1:=trunc(s1-v*t1-e)+1;
if num=-1 then num:=n2-n1+1;{小车接受的球的个数为num}
writeln(num);
end.
C. C语言,计算物体自由下落的距离:一个物体从100米的高空自由下落。编写程序,求3秒前下落的垂直距离
#include "stdio.h"
int main(int argv,char *argc[]){
printf("Vertical fell in %g meters ",9.8*3*3/2);
return 0;
}运行结果:
拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
D. 编写程序,自由落体位移公式
函数如下(双击Form,直接黏贴到Form_Load事件最上方)Const g As Double = 9.81Function GetValue(v As Double,t As Double)GetValue = 0.5*g*t*t+v*tEnd Function 假设床体上有一个按钮,点击后如下:Dim v As DoubleDim t As Doublev = CDbl(InputBox("请输入v:"))t = CDbl(InputBox("请输入t:"))Print GetValue(v,t)
E. 编程计算自由落体下落过程中每隔0.01秒时物体速度
这个只需要利用自由落体的公式
就可以了,等于
初速度➕时间×重力加速度。
F. java自由落体题
发现“cloudhy”同学的程序,有点小问题,完善如下:
/**
*1. 模拟自由落体程序 程序描述:一个小球从100m高度自由落下,每次落地后反弹跳回原高度的一半,再落下。编程实现:
* 1)求小球在第5次落地时,一共经过多少m?
* 2) 第5次反弹高度多少m?
* 3) 将以上两个计算结果的输出。
*/
public class FreeFallen {
/**
* 计算第time次弹起的高度
*
* @param time 弹起的次数
*/
public static double countHeight(int time) {
double height = 100; //应该是double类型的,第三次弹起就是小数了
for (int i = 0; i < time; i++) {
height = height / 2;
}
return height;
}
/**
* 计算第time次落地后经过的距离
*
* @param time 落地的次数
*/
public static double countDistance(int time) {
double distance = 100; //总距离
double each; //每次经过的距离
for (int i = 1; i < time; i++) {
//distance += distance / 2;
each = countHeight(i-1); //每次弹起下落一回就等于上一次的高度,因为每次落地后反弹跳回原高度的一半
distance += each;
}
return distance;
}
public static void main(String[] args) {
System.out.println(countDistance(5));
System.out.println(countHeight(5));
}
}
G. c#编程 小球自由落体及弹起
#include<stdio.h>
#include<math.h>
intmain()
{intm,i;
doublesum=0,n;
printf("输入小球落下的高度,小球反弹次数: ");
scanf("%lf%d",&n,&m);
sum+=n;
for(i=0;i<m;i++)
{
n=n/2.0;
printf("第%d次弹跳%lf高 ",i+1,n);
if(i<m-1)
{
sum+=n*2;
printf("弹跳第%d次下一次没到,经过的路程:%lf ",i+1,sum);
}
printf(" ");
}
printf("前%d次弹跳共经过:%lf ",m,sum);
return0;
}
H. c语言编程 自由落体
T(int t) {int i; for(i=1;i<=t;i++) delay(7535);} /*这里的常量要根据机器的配置自主设置*/ #include<conio.h> #include<time.h> main() {int x=40,y=0,k=20,t=20,m=1,n=1,i; while(k!=0) {m=-m;n=-n; m==1?--k:0; for(i=1;i<=k;i++) {gotoxy(x,y); printf("%c",2); T(t); /*在这里调用定义的函数T来控制delay()语句 */ clrscr(); m==-1?y++:y--; /*笑脸的上下运动*/ n==-1?t--:t++;/*运动的加速度*/ } } }
I. 编写程序以计算自由落体运动的位移,输入t,按下列公式计算并输出对应的自由落
晕,你强
T秒内的位移是1/2GT*T。T-1秒内的位移是1/2*G*(T-1)*(T-1)
所以H=1/2GT*T-1/2*G*(T-1)*(T-1)=(1/2)*G*(2T-1)
所以T=(2H+G)/2G