編程小強
1. 兒童學習機器人編程要怎樣入門
一般是不需要什麼基礎的,現在的編程教育一般是從編程思維、圖形化編程、編程語句,由入門到深入逐步展開的。一般的可編程機器人也是立足於Scratch簡易編程軟體的,像是時下比較熱門的百變小強、優必選、能力風暴、makeblock,他們的編程軟體都是以Scratch為主體,加以自己的特色。而Scratch是一款十分簡易的編程軟體,是專門為兒童研發的。如果你不放心,可以買一款可編程智能玩具試一試,不用太貴,200、300的就可以,功能其實都差不多的。望採納
點擊我頭像進去官網看詳細資料
2. c++編程的問題
你的問題很多啊:1、沒有定義類對象。2、對象初始化錯誤(沒有定義構造函數).3、字元串數組問題;
下面是我的兩種改進方法:
一、(使用構造函數)
#include<iostream.h>
class CStuScore
{
public:
CStuScore(float a1,float a2,float a3,char *p)//定義構造函數,以初始化類對象;
{
strName=p;//姓名;
fScore[0]=a1;
fScore[1]=a2;
fScore[2]=a3;
}
char *strName; //用字元串指針比字元串數組要方便些;
char strStuNO[9];
void SetScore(float s0,float s1,float s2) //有了構造函數,這個函數有點多餘;
{
fScore[0]=s0; fScore[1]=s1; fScore[2]=s2;
}
float GetAverage();
private:
float fScore[3];
};
float CStuScore::GetAverage()
{
return(float)((fScore[0]+fScore[1]+fScore[2])/3.0);
}
void main()
{
CStuScore ak=CStuScore(50,60,70,"小強");//定義類對象,並初始化;
cout<<ak.strName<<"strName的平均成績為: "<<ak.GetAverage()<<"\n"; //輸出結果;
}
二、(使用你自己定義的函數)
#include<iostream.h>
class CStuScore
{
public:
char *strName;
char strStuNO[9];
void SetScore(float s0,float s1,float s2)
{
fScore[0]=s0; fScore[1]=s1; fScore[2]=s2;
}
float GetAverage();
private:
float fScore[3];
};
float CStuScore::GetAverage()
{
return(float)((fScore[0]+fScore[1]+fScore[2])/3.0);
}
void main()
{
CStuScore ak;
ak.strName="小強";
ak.SetScore(100,80,80);
cout<<ak.strName<<"strName的平均成績為: "<<ak.GetAverage()<<"\n";
}
建議使用第一種方法(也就是構造函數初始化方法),這才是類的真正精髓;
3. 如何快速學好編程
單純編程上的進步,很簡單就是經驗,但你要理解才可以進步的快。這就是說,你的理論課要學好,才能學好編程。
操作系統,網路原理,計算機體系結構,數據結構,編譯原理學習要經歷很多階段:
1、基本語法。
2、編碼實踐。
3、技近乎道。
4、創造新世界。
(基本語法):學習任何東西,都是一個由表及裡的過程。對於一門編程語言來說,「表」 就是基本詞彙和語法。
(3)編程小強擴展閱讀:
在實踐中,我們逐步熟練使用很多API庫、框架,也不斷踩坑填坑、看源代碼、不斷解決問題,不斷加深對語言的理解,同時會看一些優秀的框架源代碼。
如果還有精力,我們再去學習語言更底層的東西,而不僅僅停留在應用層面。如Java中的集合類實現的演算法與數據結構。
如JVM是如何執行Java代碼的。如Java的線程和操作系統線程的關系。以及一些操作系統方面的知識。
參考資料:網路-編程
4. 小強在自學了簡單的電腦編程後,設計了如圖1-4-4所示的程序,他若輸入的數為-1,那麼執行程序後輸
圖呢?
5. 大家談談什麼才是學習編程的最好方法
回答這個問題是我最近兩年來唯一的關注點。我覺得此處提及的許多資源盡管都很不錯,然而我卻注意到,成功的學生,無論使用哪種資源,往往都會在以下三個方面,比其他人有著更好的表現。
聚焦習慣而不是目標
獨自學習非常痛苦
項目實踐
聚焦習慣而不是目標
聚焦習慣而不是目標聽起來似乎不合常理,但是請聽我把話說完 - 這是一個有關平衡的問題。凡是和我共過事的人都知道,我有時就像傻子一樣,在一天內,引用《蝙蝠俠:俠影之謎》中 Ra's Al Ghul 的話多達 3-4 次。
Bloc 公司的投資者們對於我在董事會上頻繁地引用《蝙蝠俠:俠影之謎》中的片段作為開始,早已經煩透了。
R'As 告訴 Bruce:
「(當你的胳膊快要凍僵的時候,)按摩你的胸口,你的胳膊自然會暖和起來。」
如果你將精力放在在每星期編程 20-30 個小時的習慣培養上,成為一名 Web 開發者的目標很快就可以實現。如果你將目標設定為在數月內成為一名 Web 開發者,在什麼時候能可以達成目標以及距離目標還有多遠等不確定性的壓力之下,你反而可能會一無所獲。聚焦於習慣而不是目標。按摩你的胸口,你的胳膊自然會暖和起來。
因此,你現在應該做的是:在你的日程安排上,每天花15分鍾時間用於編程。不要多於15分鍾,每天只要15分鍾就夠了。如果你能在一星期之內堅持做下來而不找任何借口,請試著把時間延長到一天20分鍾。不要試圖通過每天一小時的編程來過度擴展自己的能力,編程就是一場 10000 小時的馬拉松,因此我們應該將精力集中在培養習慣上。與其在一天內花費大量時間學習編程,不如每天花費少量時間,但是能夠天天堅持,因為這樣更有效。
獨自學習非常痛苦
當我在學習 Web 開發時,在我的學習過程中,擁有一位導師和加入一個社區是兩個最大的組成要素。
擁有一位導師
大學期間,我曾在一家名叫 merge.fm 的小型創業公司工作。暑假期間,我與該公司的一位聯合創始人一起工作,我在此期間學到的東西比我之前一年在大學學到的還要多。跟隨一名經驗豐富的專業人士一起工作,可以真正地加速你學習的速度,你會了解到他們如何思考問題的,同時,也會發現自己的不足之處。這就是為什麼師徒制通常成為學習一門新技藝的默認標準的一個原因吧,因為它非常有效。
加入一個社區
我加入了的兩個社區,一個是 Illini Entrepreneurship Network(我們學校的一個學生組織),另一個是 Hacker News(一個面向黑客和創業者的大型在線社區)。
我沒有從 Hacker News 學到任何有關對象和類的知識,但是我學到了一些別的東西。我知道了沒人喜歡 JavaScript。我知道了 Ruby 程序員是編程領域的潮人。我還知道了 Bret Taylor, Rich Hickey 和 John Carmack 都是編程世界的領袖人物,還有就是,那些真正關心員工的軟體公司,它們公司的廚房看上去就像興奮劑實驗室。
總之,我學會了如何說行話。當你和其他程序員一同工作的時候,這一點非常重要,也正因如此,才使你覺得自己就是一名程序員。
項目實踐
在學習 Web 開發的第一年,我動手實現了以下項目:
一個 Digg 的克隆版(來自 Sitepoint書上的 Rails 例子,我想現在它已經過時了)
一個在線購物應用程序(來自 Agile Web Development with Rails 4)
一個 GeekSquad-esque 應用程序(個人項目)
一個實時在線課堂應用程序(個人項目)
一個外語學習應用程序(課程項目)
我認為構建真實項目之所以非常重要的原因有很多,就我而言,最重要的一個原因是它充滿了樂趣。這恰恰是在傳統教育中嚴重缺失的,也正因如此,它才成為了諸多原因中最重要的一項。尋找如何開展項目實踐的參考資源,http://ruby.railstutorial.org/ 是一個不錯的選擇。
要具有「小強」精神
對於那些能堅持讀到此處的讀者們,我偷偷地增加了第四項內容。Paul Graham 曾經對 Airbnb 的創始人說過:
「你們這些傢伙是不會失敗的,因為你們就像打不死的『小強』一樣」
一段時期,你可能會有放棄學習編程的想法。就像任何具有同樣價值的事情一樣,學習編程真的很難,有時你會覺得自己真的很笨。這就是為什麼第一項策略如此重要的原因 - 不要過度擔心是否已經取得進步,或者需要花費多長時間達成目標。你要做的就是每周堅持 10-30 個小時的編程。就像執著的『小強』一樣,你就不會失敗。
多年以前我說過一句話 - 「成功貴在堅持(註解:亦可譯為『生活中80%的成功源於堅持』)」,這句話經常被其他人引用。人們常常向我提及,他們想編寫一個劇本,他們想製作一部電影,他們想撰寫一本小說。那些最終成功實現目標的人,80%的做法是先行動起來。那些最終失敗的人,他們連這一點都做不到。這正是他們不能做成一件事情的原因,他們沒有去做。一旦你去做了,如果你真地去編寫電影劇本,或者撰寫小說,實際上,你的成功之路已走過大半。這就是我可以告訴你的我人生最大的成功經驗。其它的都是失敗的教訓。
-- Woody Allen(美國好萊塢著名電影導演)
作者:Roshan Choxi,美國在線編程學習公司 Bloc 聯合創始人/CEO
6. 尋找計算機編程入門的書或電子書
首先可以先選擇自己想學習的語言。如果想速成的簡單的JAVA比較適合你。但是想系統的學習編程的話我推薦你選擇C和C++。
C的話,清華大學出版社的譚浩強出的那本《C語言程序設計》有很多人選用,因為比較基礎,很多大學也是用來當做教科書來用的。
C++的話,基礎的有那本《C++ primer》 那本很有名的,深入點有機械工業出版社的《C++語言設計語言》是C++設計者自己寫的書。
JAVA的話我看的也很雜,沒什麼特別好的推薦給你,不好意思。
其實只要掌握好1門語言,其他的自然而然的就觸類旁通了。
但是如果你真心的想選擇編程的話,語言什麼的都是其次,演算法設計及數據結構才是編程的精華,建議你多看看演算法類的書,《演算法導論》是我推薦的書。
7. C語言編程
你好!!
break;
case'/':
if(x1==0)
}
return0;
}
8. 編程解邏輯學問題
只有一個程序文件。
思路簡介:對問題的分析理解為,每一句話都縮小了可能的取值集合,通過
三句話排除其它各種可能最終確定了生日。
這里用一個矩陣來表示,矩陣的行列分別與可能取值中的月與日對應,且各
自都是按升序排列的。例如,若最終答案為3-3(本題的答案是2-0),則就是
12月5日(當然這里只是舉個例子)。
通過三句話,每次排除相應的行列即去除不符合的月份和日子。
#include <cstdlib>
#include <iostream>
#define M 5
#define N 7
using namespace std;
void initmn_r(short [][N]);
void initmn_c(short [][N]);
void displaymn(short [][N]);
int main(int argc, char *argv[])
{
short mn[M][N] = {{0,0,1,1,0,1,0},
{0,0,1,0,1,0,0},
{1,0,0,1,0,0,0},
{1,1,0,0,0,1,0},
{0,0,0,0,0,0,-1}};
bool flag = false; //the flag for the answer's existence
//initialize:
//init for column
initmn_c(mn);
//init for row
initmn_r(mn);
//the judge rule 1:小明說:如果我不知道的話,小強肯定也不知道
for(int j=0;j<N-1;j++)
if(mn[M-1][j]==1){ //找到相應的列,以便排除掉相應的行.
for(int i=0;i<M-1;i++)
if(mn[i][j] == 1) //確定要排除的行
for(int k=0;k<N;k++)
mn[i][k] = 0;
mn[M-1][j] = 0;
}
//the judge rule 2:小強說:本來我也不知道,但是現在我知道了
//first init again
initmn_c(mn);
for(int j=0;j<N-1;j++)
if(mn[M-1][j]>1){ //找到要排除的列
for(int i=0;i<M;i++)
mn[i][j] = 0;
}
//the judge rule 3:小明說:哦,那我也知道了
//first init again:
initmn_r(mn);
for(int i=0;i<M-1;i++)
if(mn[i][N-1]==1){
flag = true;
for(int j=0;j<N-1;j++)
if(mn[i][j]==1){
cout << "We've found it!\n";
cout << "The Result is :\n" << i << '-'<<j << endl;
}
}
if(flag==false)
cout << "No answer!\n";
system("PAUSE");
return EXIT_SUCCESS;
}
void initmn_c(short pmn[][N])
{
for(int k=0;k<N-1;k++)
pmn[M-1][k] = 0;
for(int j=0;j<N-1;j++)
for(int i=0;i<M-1;i++)
pmn[M-1][j]+=pmn[i][j];
}
void initmn_r(short pmn[][N])
{
for(int k=0;k<M-1;k++)
pmn[k][N-1] = 0;
for(int i=0;i<M-1;i++)
for(int j=0;j<N-1;j++)
pmn[i][N-1]+=pmn[i][j];
}
void displaymn(short pmn[][N])
{
cout << "Now Matrix is:\n";
for(int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
cout << pmn[i][j] << '\t';
cout << endl;
}
cout << endl;
}
這個方法對於類似的判斷准則都是可取的。如果你還有不明白的地方,可以給我發郵件[email protected]