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