編程青蛙過河
Ⅰ 少兒編程如何培養孩子的框架思維
【導讀】在進行少兒編程學螞賀習的時候,第一步是當孩子把遇到的問題拆開,變成每一個個小點之後,就需要讓孩子把悶拿派這些小點串聯起來,形成一個框架,這是學習新事物的第二步,框架思維,培養孩子的框架思維,就是鍛煉孩子把零散元素歸類組合的能力,那麼少兒編程進行孩敏型子框架思維的培養呢?下面我們就來一起看看吧。
1、學習編程,就是學習一種框架的搭建。一個指令代表什麼,一個語言模塊能起到什麼效果,又如何使用這些知識搭建一個可行的框架,使得老師布置的任務在這個框架內可以順利的完成,這是學習編程的孩子每次上課都會思考的內容。
2、老師讓學生們完成一個游戲編程,要求是演示小青蛙過河。那麼學生在對題目進行拆解後,可以搭建的框架有很多。可以是演示青蛙全身運動游過去的,可以只是跳過去的,甚至可以是飛過去的。一切都取決於孩子想要什麼,搭建起來的框架能達到什麼效果。
3、編程就像一個拼圖游戲。孩子需要把被打散的圖片利用框架思維重新歸類,並進行組合。只不過編程會更多樣,更復雜,也更能開發孩子的大腦。
4、在編程這種框架搭建如此多樣的學科里,孩子的框架思維絕不是簡單鍛煉的程度。一個編程學習得好的孩子,會有一種異於常人的歸類構架能力。
學習少兒編程的好處有很多,不僅能培養孩子的框架思維,也能進行邏輯思維等的鍛煉,另外,未來社會的發展必然向智能化轉換,所以提早讓孩子接觸科學智能,對於孩子以後的發展也是有諸多好處的。
Ⅱ 青蛙過河vb編程思路
沒有用任何語言編寫,是純數學推導。
設n為石墩數,m為荷葉數 ,設F[n,m]表示當有n個石墩,m個荷葉時,能跳過去的最多青蛙數,我們現在可以增加一個石墩,此時就有n+1個石墩了,把第n+1個石墩看成右岸,這樣就可以把F[n,m]個青蛙從左岸跳到第n+1個石墩上(藉助原來河裡的n個石墩,m個荷葉), 這時第n+1個石墩上就有F[n,m]個青蛙了,此時河裡還有n個空石墩,m個空荷葉,還可以幫助F[n,m]個青蛙從左岸跳到真正的右岸,此時再把第n+1個石墩看成左岸, 藉助河裡的n個石墩,m個荷葉,順利的跳到右岸青蛙的身上.至此一共可以跳過去 2*F[n,m]個青蛙.
由此可知: 關系式 F[n+1,m]=2*F[n,m]
推導: F[n,m]=2*F[n-1,m]
=4*F[n-2,m]
……
=(2^i)*F[n-i,m]
……
=(2^n)*F[0,m]
當n=0時,河裡只有m個荷葉,每個葉上只能有一個青蛙,再加上從右岸可以直接跳到左岸的一隻,所以共有m+1個青蛙,即F[0,m]=m+1;所以
F[n,m]=(m+1)*2^n
Ⅲ 一道C語言編程題解
那樣的題目應該算是比較精典的題目吧,所以在網上有相關資料可找哦
Ⅳ C語言問題 過河
sunlight12346正解,不過還可以優化一下
構造一個updateMin函數,功能為,計算青蛙從x開始跳到L所需要踩的石子數,如果結果比當前計算得到的最小數curMin小,則返回計算結果,如果大於等於curMin,則返回curMin,通過遞歸計算最終的最小值。可以稍作剪枝,如果遞歸過程中,已踩的石子數stepedStNum已經大於等於curMin,那麼就返回curMin,不必要再繼續計算下去。
#include <stdio.h>
void main()
{
int x, s, t, l, curMin, stoneNum, i, temp;
int stoneLoc[100]={0};
int stepedStNum = 0;
x = 0;
printf("Input the length of bridge:");
scanf("%d",&l);
printf("Input the range of distance:");
scanf("%d%d",&s,&t);
printf("Input the number of stone:");
scanf("%d",&stoneNum);
for ( i=0; i<stoneNum; i++)
{
scanf("%d", &stoneLoc[i]);
}
curMin = l;
curMin = updateMin(x, stepedStNum, s, t, l, stoneLoc, stoneNum, curMin);
printf("%d", curMin);
}
int updateMin(int x, int stepedStNum, int s, int t, int l, int stoneLoc[], int stoneNum, int curMin)
{
int i = 0;
if (x >= l)
{
return stepedStNum;
}
for (i=0; i<stoneNum; i++)
{
if (stoneLoc[i] == x)
{
stepedStNum++;
break;
}
}
if (stepedStNum >= curMin)
{
return curMin;
}
for (i=t; i>=s; i--)
{
curMin = updateMin(x+i, stepedStNum, s, t, l, stoneLoc, stoneNum, curMin);
}
return curMin;
}
Ⅳ 請教高手們一道編程題
OI的題吧
我覺得用動態規劃做就可以了
從第一點開始, 記錄到達每一個點所需的最少步數
類似於求最長遞增或遞減序列問題:)