⑴ 如何使用java實現加減乘除運算
加法: a= b+c;
減法:a=b-c;
乘法:a=b*c;
除法:a=b/c;
⑵ java加減乘除是什麼類
java中實現加減乘除的類是java.math.BigDecimal類. BigDecimal 類提供以下操作:算術、標度操作、舍入、比較、哈希演算法和格式轉換。
加法運算:調用BigDecimal類的add方法即可
BigDecimalb1=newBigDecimal("1");
BigDecimalb2=newBigDecimal("2");
BigDecimalresult=b1.add(b2);//加法
System.out.println(result);
減法運算:調用BigDecimal類的subtract方法即可
BigDecimalb1=newBigDecimal(3.2);
BigDecimalb2=newBigDecimal(1.6);
BigDecimalresult=b1.subtract(b2);//減法
System.out.println(result);
乘法運算:調用BigDecimal類的multiply方法即可
BigDecimalb1=newBigDecimal(9);
BigDecimalb2=newBigDecimal(8.2);
BigDecimalresult=b1.multiply(b2);//乘法
System.out.println(result);
除法運算:調用BigDecimal類的divide方法即可。
注意: 除法運算存在除不盡的情況,比如1.0/3=0.333333.. 我們需要指定小數點後面的長度,以及有效的舍入模式(例如四捨五入模式).
BigDecimalb1=newBigDecimal("1");
BigDecimalb2=newBigDecimal("3");
intscale=5;//scale指定小數點後面的位數為5位
doubleresult=b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();//除法
//BigDecimal.ROUND_HALF_UP表示四捨五入
System.out.println(result);
備註:
1:BigDecimal的構造參數有很多,但浮點類型建議轉換成字元串類型, 避免精度的丟失.
doubled1=0.001;//浮點類型
Strings1=Double.toString(d1);//轉成字元串
BigDecimalb1=newBigDecimal(s1);//使用字元串作為構造參數
2:BigDecimal類, 內存佔用比基本類型多,並且為了計算的精度,速度比double慢一點.所以,只有在需要精確計算的情況下,才使用BigDecimal類進行. 普通運算,還是多使用+-*/運算符,位運算符等.
⑶ 設計一個Java程序,能夠實現加減乘除運算,謝謝!
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
{
=8199443193151152362L;
privateJButtonbto_s=newJButton("sqrt"),bto_zf=newJButton("+/-"),bto_ce=newJButton("CE"),bto_c=newJButton("C"),bto_7=newJButton("7"),
bto_8=newJButton("8"),bto_9=newJButton("9"),bto_chu=newJButton("/"),bto_4=newJButton("4"),bto_5=newJButton("5"),
bto_6=newJButton("6"),bto_cheng=newJButton("*"),bto_1=newJButton("1"),bto_2=newJButton("2"),bto_3=newJButton("3"),
bto_jian=newJButton("-"),bto_0=newJButton("0"),bto_dian=newJButton("."),bto_deng=newJButton("="),bto_jia=newJButton("+");
JButtonbutton[]={bto_s,bto_zf,bto_ce,bto_c,bto_7,bto_8,bto_9,bto_chu,bto_4,bto_5,bto_6,bto_cheng,bto_1,bto_2,bto_3,bto_jian,
bto_0,bto_dian,bto_deng,bto_jia};
privateJTextFieldtext_double;//=newJTextField("0");
privateStringoperator="=";//當前運算的運算符
privatebooleanfirstDigit=true;//標志用戶按的是否是整個表達式的第一個數字,或者是運算符後的第一個數字
privatedoubleresultNum=0.0;//計算的中間結果
=true;//判斷操作是否合法
publicCalculator()
{
super("Calculator");
this.setBounds(300,300,300,300);
this.setResizable(false);
this.setBackground(Color.orange);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.getContentPane().setLayout(newBorderLayout());//設置布局
text_double=newJTextField("0",20);//設置文本區
text_double.setHorizontalAlignment(JTextField.RIGHT);//設置水平對齊方式未右對齊
this.getContentPane().add(text_double,BorderLayout.NORTH);//將文本區添加到Content北部
JPanelpanel=newJPanel(newGridLayout(5,4));//在內容窗口添加一個網格布局
this.getContentPane().add(panel);//添加panel面板
for(inti=0;i<button.length;i++)//在面板上添加按鈕
panel.add(button[i]);
for(inti=0;i<button.length;i++)
button[i].addActionListener(this);//為按鈕注冊
text_double.setEditable(false);//文本框不可編輯
text_double.addActionListener(this);//
this.setVisible(true);
}
publicvoidactionPerformed(ActionEvente)//
{
Stringc=e.getActionCommand();//返回與此動作相關的命令字元串。
System.out.println("##########commandis"+c);
if(c.equals("C")){
handleC();//用戶按了「C」鍵
}
elseif(c.equals("CE"))//用戶按了"CE"鍵
{
text_double.setText("0");
}
elseif("0123456789.".indexOf(c)>=0)//用戶按了數字鍵或者小數點鍵
{
handleNumber(c);//handlezero(zero);
}else//用戶按了運算符鍵
{
handleOperator(c);
}
}
privatevoidhandleC()//初始化計算器的各種值
{
text_double.setText("0");
firstDigit=true;
operator="=";
}
privatevoidhandleNumber(Stringbutton){
if(firstDigit)//輸入的第一個數字
{
text_double.setText(button);
}elseif((button.equals("."))&&(text_double.getText().indexOf(".")<0))//輸入的是小數點,並且之前沒有小數點,則將小數點附在結果文本框的後面
//如果字元串參數作為一個子字元串在此對象中出現,則返回第一個這種子字元串的第一個字元的索引;如果它不作為一個子字元串出現,則返回-1
{
text_double.setText(text_double.getText()+".");
}elseif(!button.equals("."))//如果輸入的不是小數點,則將數字附在結果文本框的後面
{
text_double.setText(text_double.getText()+button);
}
//以後輸入的肯定不是第一個數字了
firstDigit=false;
}
privatevoidhandleOperator(Stringbutton){
if(operator.equals("/")){
//除法運算
//如果當前結果文本框中的值等於0
if(getNumberFromText()==0.0){
//操作不合法
operateValidFlag=false;
text_double.setText("除數不能為零");
}else{
resultNum/=getNumberFromText();
}
}elseif(operator.equals("+")){
//加法運算
resultNum+=getNumberFromText();
}elseif(operator.equals("-")){
//減法運算
resultNum-=getNumberFromText();
}elseif(operator.equals("*")){
//乘法運算
resultNum*=getNumberFromText();
}elseif(operator.equals("sqrt")){
//平方根運算
if(getNumberFromText()<0){
operateValidFlag=false;
text_double.setText("被開方數不能為負數");}
else
resultNum=Math.sqrt(resultNum);
}
elseif(operator.equals("+/-")){
//正數負數運算
resultNum=resultNum*(-1);
}elseif(operator.equals("=")){
//賦值運算
resultNum=getNumberFromText();
}
if(operateValidFlag){
//雙精度浮點數的運算
longt1;
doublet2;
t1=(long)resultNum;
t2=resultNum-t1;
if(t2==0){
text_double.setText(String.valueOf(t1));
}else{
text_double.setText(String.valueOf(resultNum));
}
}
operator=button;//運算符等於用戶按的按鈕
firstDigit=true;
operateValidFlag=true;
}
()//從結果的文本框獲取數字
{
doubleresult=0;
try{
result=Double.valueOf(text_double.getText()).doubleValue();//ValueOf()返回表示指定的double值的Double實例
}catch(NumberFormatExceptione){
}
returnresult;
}
publicstaticvoidmain(finalString[]args){
newCalculator();
}
}
⑷ 加減乘除運算(Java)
實際上這相當於javascript的eval方法,以下是該方法的java實現:
//Eval.java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class Eval {
public int eval(String exp){
List<String> list = infixExpToPostExp(exp);//轉化成後綴表達式
return doEval(list);//真正求值
}
//遇到操作符壓棧,遇到表達式從後綴表達式中彈出兩個數,計算出結果,壓入堆棧
private int doEval(List<String> list) {
Stack<String> stack = new Stack<String>();
String element;
int n1,n2,result;
try{
for(int i = 0; i < list.size();i++){
element = list.get(i);
if(isOperator(element)){
n1 = Integer.parseInt(stack.pop());
n2 = Integer.parseInt(stack.pop());
result = doOperate(n1,n2,element);
stack.push(new Integer(result).toString());
}else{
stack.push(element);
}
}
return Integer.parseInt(stack.pop());
}catch(RuntimeException e){
throw new IllegalExpressionException(e.getMessage());
}
}
private int doOperate(int n1, int n2, String operator) {
if(operator.equals("+"))
return n1 + n2;
else if(operator.equals("-"))
return n1 - n2;
else if(operator.equals("*"))
return n1 * n2;
else
return n1 / n2;
}
private boolean isOperator(String str){
return str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/");
}
private List<String> infixExpToPostExp(String exp){//將中綴表達式轉化成為後綴表達式
List<String> postExp = new ArrayList<String>();//存放轉化的後綴表達式的鏈表
StringBuffer numBuffer = new StringBuffer();//用來保存一個數的
Stack<Character> opStack = new Stack<Character>();//操作符棧
char ch,preChar;
opStack.push('#');
try{
for(int i = 0; i < exp.length();){
ch = exp.charAt(i);
switch(ch){
case '+':
case '-':
case '*':
case '/':
preChar = opStack.peek();
// 如果棧裡面的操作符優先順序比當前的大,則把棧中優先順序大的都添加到後綴表達式列表中
while(priority(preChar) >= priority(ch)){
postExp.add(""+preChar);
opStack.pop();
preChar = opStack.peek();
}
opStack.push(ch);
i++;
break;
case '(':
// 左括弧直接壓棧
opStack.push(ch);
i++;
break;
case ')':
// 右括弧則直接把棧中左括弧前面的彈出,並加入後綴表達式鏈表中
char c = opStack.pop();
while(c != '('){
postExp.add("" + c);
c = opStack.pop();
}
i++;
break;
// #號,代表表達式結束,可以直接把操作符棧中剩餘的操作符全部彈出,並加入後綴表達式鏈表中
case '#':
char c1;
while(!opStack.isEmpty()){
c1 = opStack.pop();
if(c1 != '#')
postExp.add("" + c1);
}
i++;
break;
//過濾空白符
case ' ':
case '\t':
i++;
break;
// 數字則湊成一個整數,加入後綴表達式鏈表中
default:
if(Character.isDigit(ch)){
while(Character.isDigit(ch)){
numBuffer.append(ch);
ch = exp.charAt(++i);
}
postExp.add(numBuffer.toString());
numBuffer = new StringBuffer();
}else{
throw new IllegalExpressionException("illegal operator");
}
}
}
}catch(RuntimeException e){
throw new IllegalExpressionException(e.getMessage());
}
return postExp;
}
private int priority(char op){//定義優先順序
switch(op){
case'+':
case'-':
return 1;
case'*':
case'/':
return 2;
case'(':
case'#':
return 0;
}
throw new IllegalExpressionException("Illegal operator");
}
}
Main.java 主函數所在類
public class Main
{
public static void main(String[] args) {
try {
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String exp=br.readLine();
int result = eval.eval(exp);
System.out.println(result);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
IllegalExpressionException異常類
public class IllegalExpressionException extends RuntimeException{
public IllegalExpressionException(){
}
public IllegalExpressionException(String info){
super(info);
}
}
⑸ Java的加減乘除問題
//JAVA編程:四則運算(接收用戶輸入的2個操作數,和運算符),計算之後,輸出結果~~~~
import java.util.Scanner;
public class 四則運算 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("請輸入第一個數字:");
int a = sc.nextInt();
System.out.print("請輸入運算符號:");
String str = sc.next();
char ch = str.charAt(0);
System.out.print("請輸入第二個數字:");
int b = sc.nextInt();
switch(ch)
{
case '+':
System.out.println(a+"+"+ b + "="+(a+b));
break;
case '-':
System.out.println(a+"-"+ b+ "="+(a-b));
break;
case '*':
System.out.println(a+"*"+ b+ "="+(a*b));
break;
case '/':
if(b==0){
System.out.println("被除數為零,運算無意義!");
break;
}
else {
System.out.println(a+"/"+ b+ " = "+(a/b));
break;
}
default:
System.out.println("運算符是無意義字元!");
break;
}
}
}
望採納~~~~~~~~
⑹ java的加減乘除運算
使用BigDecimal並且一定要用String來夠造。
實現方法如下:
import java.math.BigDecimal;
/**
* 由於Java的簡單類型不能夠精確的對浮點數進行運算,這個工具類提供精
* 確的浮點數運算,包括加減乘除和四捨五入。
*/
public class Arith{
//默認除法運算精度
private static final int DEF_DIV_SCALE = 10;
//這個類不能實例化
private Arith(){
}
/**
* 提供精確的加法運算。
* @param v1 被加數
* @param v2 加數
* @return 兩個參數的和
*/
public static double add(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2).doubleValue();
}
/**
* 提供精確的減法運算。
* @param v1 被減數
* @param v2 減數
* @return 兩個參數的差
*/
public static double sub(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
/**
* 提供精確的乘法運算。
* @param v1 被乘數
* @param v2 乘數
* @return 兩個參數的積
*/
public static double mul(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2).doubleValue();
}
/**
* 提供(相對)精確的除法運算,當發生除不盡的情況時,精確到
* 小數點以後10位,以後的數字四捨五入。
* @param v1 被除數
* @param v2 除數
* @return 兩個參數的商
*/
public static double div(double v1,double v2){
return div(v1,v2,DEF_DIV_SCALE);
}
/**
* 提供(相對)精確的除法運算。當發生除不盡的情況時,由scale參數指
* 定精度,以後的數字四捨五入。
* @param v1 被除數
* @param v2 除數
* @param scale 表示表示需要精確到小數點以後幾位。
* @return 兩個參數的商
*/
public static double div(double v1,double v2,int scale){
if(scale<0){
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 提供精確的小數位四捨五入處理。
* @param v 需要四捨五入的數字
* @param scale 小數點後保留幾位
* @return 四捨五入後的結果
*/
public static double round(double v,int scale){
if(scale<0){
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
};
⑺ java加減乘除計算器界面編程
來源:Code Wizards HQ
智能觀 編譯
孩子想學編碼的話,有很多方法可以展開學習。可以讓他們學著構建視頻游戲、創建動畫、開發移動應用程序和搭建網站。不管孩子喜歡哪種形式,都有大量的編碼書供他們快速學起來!
但是,怎麼才能找到一本好的兒童編碼書呢?
沒經驗的孩子的編碼書,應該涵蓋基本內容。
翻翻適合初學者的書,看看裡面是否有加減乘除基本數學運算,仔細看看帶變數、if / then語句、循環和函數的章節。你不需要理解這些概念是怎麼工作的,只要看看書的標題里有沒有提這些,如果沒有,這本書不適合新手。
許多好的兒童編碼書只用一種語言。
好的兒童編碼書只側重一種語言,可以是Scratch、Javascript或Python。如果你不知道孩子應該學哪種語言,可以買兩三種不同語言的書。
好的兒童編碼書有很多照片和插圖。
對於那些第一次接觸代碼的孩子來說,視覺吸引力很重要。好的兒童編碼書每一頁上都有豐富多彩的插圖,充分吸引孩子的關注。
好的兒童編碼書提供有用的、可轉移的知識。
學一門特定的語言並不像理解基本的編碼概念那麼重要。寫代碼的人可以從任何語言開始學起,然後輕松地轉入其他語言。有些語言不太適合孩子,如C和C++,很多成年人都學不好。
因此,根據以上幾項挑選原則,我們推出一份教孩子編碼的書籍,涵蓋塊編程、編程基礎語言、Web開發、移動開發、游戲編程、機器人和物聯網等幾大類,並標出適合孩子學習的年齡段,可以說是史上最全的兒童編碼書籍匯總了!如果你正在苦惱怎麼給孩子選書,快收下這份開學禮物吧~
塊編程類
學齡前的兒童也可以學慣用塊編程語言編碼。塊語言是高度圖形化的,易於學習。Scratch是為孩子們設計的一種流行的塊語言。
1. Coding with Scratch Workbook
(用Scratch編碼)
作者:DK出版公司
適合年齡: 6-9歲
在短短40頁的篇幅里,讀者就能學會用Scratch做任何事,從解決簡單的數學問題到構建、分享游戲。每章都包含指導孩子們完成簡單編碼項目的分步說明。
2. Learn to Program with Scratch:A Visual Introction to Programming with Games, Art, Science, and Math
(學會用Scratch編程:游戲、藝術、科學和數學編程的可視化介紹)
作者:Majed Marji
適合年齡: 10歲及以上
這本將近300頁的書涵蓋了初學者需要了解的關於Scratch語言的所有內容。讀完這本書後,孩子們將會牢固掌握Scratch和適用於任何語言的編程思想。
3. Scratch for Kids For Dummies
(兒童Scratch傻瓜書)
作者:Derek Breen
適合年齡: 10-14歲
讀者將在構建16個項目中,學習變數、if / then語句、循環和基本編程邏輯。
4. The Official ScratchJr Book: Help Your Kids Learn to Code
(中文版:動手玩轉ScratchJr編程)
作者:Marina Umaschi Bers 、Mitchel Resnick
適合年齡: 5-9歲
對於那些還太小不能學習Scratch的孩子來說,Scratchr Jr是一種更簡單的塊編程語言。
5. MicroWorlds EX Books for Kids
(兒童MicroWorlds EX工具書)
作者:Steve Robson
適合年齡: 5-9歲
藉助MicroWorlds EX工具,孩子們通過圖形和文本來學習。他們沒有被一種純圖形語言和「固定」代碼所束縛,也不必100 %處理文本。
鏈接:
https://pan..com/s/1igfVJVV1UpBdIZvNzogv2Q
6. Coding for Kids For Dummies
(兒童編碼傻瓜書)
作者:Camille McCue
適合年齡: 10-14歲
書中指導孩子完成15個項目,包括繪畫、動畫和游戲,還帶領孩子們完成了創建計算機程序的過程,從構思到構建、測試。
編程基礎
盡管C++、Java和Python等語言之間存在著巨大的差異,但理解編碼基礎知識,孩子可以相對輕松地從一種語言遷移到另一種語言。
Python
7. Python for Kids
(適合孩子的Python學習)
作者:Jason R. Briggs
適合年齡: 10歲以上
這本書對孩子來說既全面又容易理解。內容適合小學生,但也適合許多成人學習者看。
鏈接:
https://pan..com/s/1GJUXzKUfVed3O-sfss3MDg
8. Coding Projects in Python
(Python編碼項目)
作者:DK出版公司
適合年齡: 9-12歲
不管孩子已經學了Scratch之類的塊語言,還是沒有做過任何編程,都可以在這本書里找到需要的一切來構建軟體。書後面的詞彙和參考部分對孩子來說很有幫助。
鏈接:
https://pan..com/s/1BJE0IgfeBc8uEHrdHAxuaw
9. Python in Easy Steps
(學習Python的簡單步驟)
作者:Mike McGrath
適合年齡:中學及以上
本書不是專門為孩子寫的,但它內容組織得很好,中學生,尤其是有一些Scratch或其他語言經驗的中學生,可以很容易地理解它。讀完本書,學生可以用Python構建簡單的網頁和編寫桌面應用程序。
10. Hello World! Computer Programming for Kids and Other Beginners
(中文版:父與子的編程之旅:與小卡特一起學Python)
作者:Warren Sande
適合年齡: 12歲以上
學習編碼時,大家編寫的第一個程序就是在屏幕上顯示「Hello World」。本書沿襲了這一傳統,並為新手提供構建任何類型有用軟體所需的必要技能。
鏈接:
https://pan..com/s/1tue23Fur36Q3l-8YoziJ1w
Java
Java是一種非常流行的語言,用於所有操作系統和Android設備。這也是高中計算機科學課程中最常見的語言。
11. Java Programming for Kids: Learn Java Step by Step and Build Your Own Interactive Calculator for Fun!
(面向兒童的Java編程:逐步學習Java,並構建自己的互動式計算器)
作者:R. Chandler Thompson
適合年齡: 13-17歲
這本書既有趣又簡單。青少年讀者可以通過Java編程語言,構建互動式計算器應用程序。
12. Java for Kids (and grown ups): Learn to Code and Create Your Own Projects with Java 8
(面向兒童和成年人的Java:學慣用Java 8編寫代碼並創建自己的項目)
作者:Nadia Ameziane Garcia
適合年齡: 10-12歲
這本書只介紹學習過程中每一步所需要的東西。每一章都建立在前文介紹的基礎上,孩子們可以在短時間內學會Java的基礎知識。
C++
這不是最容易學的語言,但精通C++的人會更了解計算機是如何工作的。
13. C++ Progamming In Easy Steps
(C++編程的簡單步驟)
作者:Mike McGrath
適合年齡:中學及以上
作者通過一系列簡單的課程介紹了C++,並提供大量專家提示,以幫助讀者獲得最佳編程實踐。這本書讓孩子們短時間內學會C++基礎知識,並可能沿用很多年。
14. C++ for Kids
(適合兒童的C++語言)
作者:Blaise Vanden-Heuvel、John C Vanden-Heuvel Sr.
適合年齡: 7-9歲
這本簡短多彩的書向孩子們展示了C++編程是如何工作的。示常式序各色各樣,這樣孩子們就能理解程序的各個部分實際上是做什麼的。
Web開發類
HTML和CSS
網頁用HTML構建,用CSS設計風格。這些不是真正的編程語言,但它們讓孩子接觸文本編輯器、構思想法,對日後探索Javascript或Python之類的語言很有用。
15. Build Your Own Website, a Comic Guide to HTML, CSS and WordPress
(建立你自己的網站,HTML、CSS和WordPress的漫畫指南)
作者:Nate Cooper、Kim Gee
適合年齡:中學及以上
在這本漫畫風格的網站搭建指南中,孩子們學習HTML標記語言,熟悉控制網頁樣式的CSS語言,了解內容管理系統WordPress。
鏈接:
https://pan..com/s/194OAJuxV47aUdHndpjzXhA
16. CoderDojo Nano: Building a Website: Create with Code
(用代碼搭建網站)
作者:Clyde Hatter、CoderDojo
適合年齡: 8-12歲
這本書只有96頁,引導孩子們完成建立網站的整個過程。孩子可以建立一個和書中例子完全一樣的網站,也可以試著建自己喜歡的網站。
17. Creating a Website: Design and Build Your First Site
(創建網站:設計和建立你的第一個網站)
作者:Greg Rickaby
適合年齡: 7-11歲
這本書為孩子設計網頁提供指南,從規劃網站的結構到添加使網站與眾不同的細節。同時提供了軟體工程師在現實世界中使用的許多技巧和操作過程。
JavaScript
許多程序員認為JavaScript是互聯網的未來,學習這種語言可以建立互動性強的、有用的網站。
18. Computer Coding with Javascript
(使用Javascript進行計算機編碼)
作者:DK出版公司
適合年齡: 8-12歲
從HTML、CSS轉到JavaScript可能容易暈,因為JavaScript更加復雜、強大。但這本書內容比較簡單,孩子們可以順利過渡。
19. Javascript for Kids: A Playful Introction to Programming
(面向兒童的JavaScript:有趣的編程入門)
作者:Nick Morgan
適合年齡: 10歲以上
本書從數組、變數類型討論到游戲編程。無論孩子想製作游戲、製作動畫還是使用虛擬現實,JavaScript都能讓他們把想法變成真實的程序。
鏈接:
https://pan..com/s/1JEs-oTMGwV2OgCcRdlfJEQ
20. Javascript for Kids For Dummies
(面向兒童的JavaScript傻瓜書)
作者:Chris Minnick、Eva Holland
適合年齡: 10-13歲
如果你有興趣讀編程書,幫孩子學習編碼,試試這本。這本書遠遠超出基本內容,方便讀者構建任何能想到的Web項目。
鏈接:
https://pan..com/s/1JfXJvj0xPSdGGw-Iwr_IJA
21. Get Coding! Learn HTML, CSS, Javascript & Build a Website, App & Game
(編碼!學習HTML,CSS,Javascript ;建立一個網站,應用程序和游戲)
作者:Young Rewired State
適合年齡: 9-12歲
這本書中的課程是以任務形式呈現的,教導孩子構建網站、應用程序和游戲。他們還會了解不同類型的編程語言以及每種語言的優點。
移動開發
安卓應用
App Inventor是一個完全在線開發的Android編程環境,具有類似Scratch的塊編程界面。它簡化了移動開發過程,是向孩子們介紹Android編程的理想方式。
22. Building a Mobile App
(構建移動應用程序)
作者:Guthals
適合年齡: 7-11歲
讀這本書的孩子不僅學習編碼,還學習規劃、開發自己的定製應用。本書提供了專業人員使用的應用程序開發的內容,包括原型製作和創建應用程序框架,對熱愛移動開發的孩子來說特別有價值。
23. Hello App Inventor
(你好,App Inventor)
作者:Paula Beer、Carl Simmons
適合年齡: 9歲以上
使用App Inventor構建的應用可以利用許多智能手機功能,如運動感測器、GPS和相機。本書通過30個示例項目向讀者展示了如何利用這些功能。
鏈接:
https://pan..com/s/1ybVo8tEVE5TE3T8F4wnaqw
iOS應用
為了構建蘋果產品應用程序,開發人員使用了一種叫Swift的語言。創建這種語言時,軟體工程師想讓沒經驗的人容易學習。對於從未編程的孩子來說,這是一個很好的選擇。
24. Coding iPhone Apps for Kids
(適合孩子的iPhone應用程序編碼)
作者:Gloria Winquist、Matt McCarthy
適合年齡: 10歲以上
本書介紹了Swift語言和編碼基礎,並讓孩子們構建兩個真正的應用程序:一個生日跟蹤器和一個滑板游戲。
25. Hello Swift
(你好,Swift)
作者: Tanmay Bakshi、Lynn Beighley
適合年齡: 9歲以上
Tanmay Bakshi可以說是我們的老朋友了,智能觀從去年開始就報道他的故事。他4歲編碼,9歲就發布第一個應用程序。通過他的書,讀者也會構建能在iOS應用商店上發布的應用程序。
如果還有人對他不了解,可以看看我們往期的報道。附傳送門:
13歲天才少年在IBM掀起一場人工智慧風暴
IBM少年工程師說:人工智慧的下一個前沿是心理健康
游戲編程
Scratch游戲編程
26. Coding Games in Scratch
(用Scratch編碼游戲)
作者:Jon Woodcock
適合年齡: 8-12歲
這本書讓孩子在瀏覽器中製作自己的游戲。
27. Code Your Own Games: 20 Games to Create with Scratch
(編碼自己的游戲: 用Scratch創建20個游戲)
作者: Max Wainewright
適合年齡: 6-11歲
這本書分5個層次遞進,20個游戲項目讓孩子們熟悉編碼和游戲開發的原理。每款游戲都鍛煉了孩子們的能力,比如控制玩家互動、在屏幕上設置對象動畫、添加聲音。
28. Star Wars Coding Projects
(星球大戰編碼項目)
作者:Jon Woodcock、Kiki Prottsman
適合年齡: 8-12歲
喜歡《星球大戰》的孩子可以通過C3PO、R2D2和其他角色學習編碼。讀者不需要任何編程經驗就可以看這本書。
Python游戲編程
29. Mission Python
(Python任務)
作者:Sean McManus
適合年齡: 10歲以上
雖然對於10歲的孩子來說,這本書有點簡單了,但它探索了Python游戲編程的深度。書從Python Essentials插件開始,逐漸深入更高級的概念,如音頻文件處理和3D圖形。
30. Invent Your Own Computer Games with Python
(中文版:Python編程快速上手——讓繁瑣工作自動化)
作者:Al Sweigart
適合年齡: 10歲以上
這本書通過對Hangman和Tic-Tac-Toe等幾款流行游戲進行詳細解釋來教授編程。
鏈接:
https://pan..com/s/1ncZTTrIPlBzA30e_BNjDAA
我的世界
31. Learn to Program with Minecraft
(用我的世界學項目)
作者:Craig Richardson
適合年齡: 10歲以上
《我的世界》是一款受歡迎的3D游戲,孩子們可以在虛擬世界中探索、建造城堡等。本書介紹了如何使用Python編程擴展《我的世界》。
鏈接:
https://pan..com/s/13_FMKoqlMF8P1uu4gaqRNQ
32. Minecraft Modding for Kids For Dummies
(用我的世界教孩子建模的傻瓜書)
作者:Guthals、Stephen Foster、 Lindsey Handley
適合年齡: 10-13歲
通過9個JavaScript項目,孩子們從《我的世界》里的「玩家」化身為 「建模師」。讀者要有玩《我的世界》的經驗,但不需要以前學過編碼。
機器人和物聯網
Arino
Arino是一台微型計算機,可以用感測器、LED燈和馬達等小硬體控制各種電路。學習Arino不僅僅意味著學習編碼;它包括設計和建造真實世界的項目。
33. Adventures in Arino
(Arino歷險記)
作者:Becky Stewart
適合年齡: 11-15歲
喜歡機械和工程的孩子會喜歡本書中的項目。孩子們了解Arino,然後上手一些簡單的項目,比如讓LED燈亮起來。
鏈接:
https://pan..com/s/1JFopfxxfONYCGAKMM28yaQ
34. Sylvia』s Super-Awesome Project Book: Super-Simple Arino
(Sylvia的超棒項目書:超級簡單的Arino)
作者:Sylvia "Super-Awesome" Todd
適合年齡: 8-12歲
Sylvia介紹了如何建立Arino項目來控制燈光和製作音樂等。這些項目不是復制代碼,羅列事物,而是對事物如何工作以及為什麼工作進行了詳細解釋。
樹莓派
你可以把樹莓派(Raspberry Pi)當成Arino的升級版。兩台計算機的尺寸差不多,但是樹莓派的操作系統更接近筆記本電腦。
35. Raspberry Pi Projects Workbook
(樹莓派項目工作簿)
作者:DK出版公司
適合年齡: 7-12歲
孩子們可要通過這本書製作游戲,製作音樂,製作動畫,學習Scratch、Python和Raspberry Pi。
鏈接:
https://pan..com/s/1AzZ-ZubG41zOXUh2IFRA
36. Adventures in Raspberry Pi
(樹莓派歷險記)
作者:Carrie Anne Philbin
適合年齡: 11-15歲
本書介紹的9個項目讓孩子們快速上手樹莓派,涵蓋的概念編程有基礎、游戲編程、圖形創建等。
鏈接:
https://pan..com/s/1Ub365kwYczlN0E5k6b-57g
樂高機器人
樂高生產了幾個套件,包括機器人滾動、旋轉甚至攀爬的所有必要部件。他們也有自己的語言,孩子們用這些語言來創作。
37. The Art of Lego Mindstorms EV3 Programming
(樂高頭腦風暴EV3編程的藝術)
作者:Terry Griffin
適合年齡: 10歲以上
本書教孩子們在EV3頭腦風暴編程環境中,控制自己的機器人。他們學習如何建造樂高機器人並用代碼控制它。
38. Building Robots with Lego Mindstorms
(用樂高頭腦風暴套件製造機器人)
作者: Mario Ferrari、Giulio Ferrari、Ralph Hempel
適合年齡: 10歲以上
在本書中,孩子們使用電子電路和感測器,以及樂高頭腦風暴套件,學習製造機器人。書中有大量關於齒輪、馬達、氣動和其他工程概念的信息,對於嚴肅的機器人愛好者來說很重要。
適合學齡前兒童的編碼書
為低齡兒童設計的編碼書,幫助兒童建立對計算機程序的模式、顏色和其他基本要素的認知。
39. Baby Loves Coding
(寶貝喜歡編碼)
作者:Ruth Spiro
適合年齡:學前及以上
因為是給很小的孩子看的,書中沒有提供任何明確的編碼指導。它介紹了解決問題的方法,以及優秀程序員需要有的想法。
40. Learn to code: Robot Train』s Surprise Birthday Party (Volume 1)
(學會編碼:機器人火車的驚喜生日聚會I)
作者:by Jen Chiou
適合年齡:學前及以上
孩子在本書中了解編碼的先決條件,如決策和邏輯。通過觸摸書上像按鈕的圖片,孩子們幫助一輛虛構的機器人火車向生日派對運送用品,從而了解編碼邏輯是如何工作的。
41. HTML for Babies
(適合嬰兒的超文本標記語言)
作者:Sterling Children's
適合年齡: 3-5歲
HTML是一種簡單的標記語言,不需要復雜的邏輯,3-5歲的孩子可以通過本書,學會識別與網路編程相關的符號和顏色。
42. JavaScript for Babies
(適合嬰兒的JavaScript語言)
作者:Sterling Children's
適合年齡: 3-5歲
這本書讓孩子們了解JavaScript的一些基本結構和數據類型。
有趣的青少年編碼書
讓青少年讀一本編程類的書可能很困難,所以以下書籍通過游戲開發和其他有趣的項目,幫助青少年學習。
43. Computer Programming for Teens
(適合青少年的電腦編程)
作者:Mary E. Farrell
適合年齡:青少年
沒有編碼經驗的孩子和那些不知道學什麼語言的孩子,是本書的目標受眾。書中有一些C++、Python和Web編程語言的例子,孩子們將會找到最適合自己的編碼項目。
44. Game Programming for Teens
(適合青少年的游戲編程)
作者:Maneesh Sethi
適合年齡:青少年
本書介紹了一種名為BlitzMax的游戲專用語言,它使孩子們能在所有平台( Windows、Mac、Linux )構建游戲。
鏈接:
https://pan..com/s/1pe0gc_MlDdIeD3jp5YNE1w
適合女孩的編碼書,STEM入門
女孩可以通過編程提前接觸STEM。構建應用程序、開發游戲、編程機器人——這些活動為女孩們進入STEM領域奠定了堅實的基礎。
45. Women Who Launched the Computer Age
(開創計算機時代的女性)
作者:Laurie Calkhoven
適合年齡: 6-8歲
本書講述了6位在二戰期間為美國軍方從事秘密項目的天才女性。
46. Grace Hopper: Queen of Computer Code
(格雷斯·霍普:計算機代碼女王)
作者:Laurie Wallmark
適合年齡: 5歲以上
格雷斯·霍普是一位有創造力的計算機科學家和數學家,也是一位授勛的海軍軍官和總統自由勛章獲得者。孩子們會在她精彩的生活和成就中找到鼓勵。
47. Girls Who Code: Learn to Code and Change the World
(學會編碼並改變世界)
作者:Reshma Saujani
適合年齡: 10歲以上
Reshma Saujani是女孩編碼組織「Girls Who Code」的創始人,她在本書中介紹了電腦和編碼,以及在科技領域工作的女性的軼事。
培養兒童編碼興趣的通用讀物
編碼的孩子受益於問題解決、數學和決策能力。一些優秀的兒童計算機科學通用讀物側重於培養孩子對編碼的興趣。
48. Lauren Ipsum: A Story About Computer Science and Other Improbable Things
(勞倫·益普森:關於計算機科學和其他不可思議的故事)
作者:Carlos Bueno
適合年齡: 10歲以上
一個年輕的女孩需要找到回家的路,但要做到這一點,必須解決一個個難題……讀者不知不覺中,接觸到了編程邏輯、解決問題的技巧和其他計算機科學思想。
49. Once Upon an Algorithm
(從前有個演算法)
作者:Martin Erwig
適合年齡:中學及以上
演算法是解決問題的一組指令或過程。你可能覺得孩子們不太想看這個。但作者Martin Erwig通過類比、童話和電影引用,使演算法變得有趣。
原文鏈接:
http://www.codewizardshq.com/coding-books-for-kids/
—完—
擴展閱讀:
適合孩子學習編碼的7款工具套件
干貨|| 如何在線學習編碼?看看這 11個優秀的編程資源網站
教孩子編碼就夠了嗎?不!學校該培養的是計算思維
每個人都應該學習編碼嗎?吳恩達這樣回答……
如果學生編程能力勝於老師,編碼課該怎麼教?
親愛的朋友:
經常有讀者咨詢,有沒有適合孩子的編碼書推薦?
我們之前推薦過一些,但苦於無中文版,很多讀者找不到購買方式。
今天的推薦,內容比較全面,我們可愛的小編找遍了資源,將能找到電子版都找到,一並送給你。
其餘沒有資源的,網上也可以買到。
如果本文對你有幫助,別忘了轉發給你身邊的朋友,讓它幫助更多人。
祝安!
PS:為了方便與讀者探討,特意注冊了一個專用號。如果你也是我們的鐵桿讀者,想探討交流,可以加微信:znglmym。
智能觀 靈米
2018-9-12 於北京中關村
想知道AI加教育領域有哪些最新研究成果?
想要AI領域更多的干貨?
想了解更多專家的「智能觀」?
請前往:www.智能觀.com。
想交流溝通,請加負責人微信:znglmym
聲明:
編譯文章旨在幫助讀者了解行業新思想、新觀點及新動態,為原作者觀點,不代表智能觀觀點。
轉載智能觀原創文章,請聯系
智能觀小艾(微信號:zng2017618)!
關於我們
我們關注AI+教育。致力於提供高附加值的知識,以幫助每一位老師和我們的讀者不斷學習並提高技能。
我們努力讓發表的每一篇文章都具有最佳質量,以滿足讀者的需求。
⑻ java如何實現3個 個位數的加減乘除運算
publicclassParamDemo{
publicstaticvoidmain(String[]args){
Map<String,Integer>map=newHashMap<>();
map.put("+",1);
map.put("-",1);
map.put("*",2);
map.put("/",2);
Scannerscanner=newScanner(System.in);
intnum1=scanner.nextInt();
intnum2=scanner.nextInt();
intnum3=scanner.nextInt();
Stringop1=scanner.next();
Stringop2=scanner.next();
//此時證明第一個操作符優先順序大於第二個操作符
if(map.get(op1)-map.get(op2)>=0){
inttmpNumber=operateNum(op1,num1,num2);
System.out.println(operateNum(op2,tmpNumber,num3));
}else{
inttmpNumber=operateNum(op2,num2,num3);
System.out.println(operateNum(op1,num1,tmpNumber));
}
scanner.close();
}
privatestaticintoperateNum(Stringoperator,intnum1,intnum2){
switch(operator){
case"+":
returnnum1+num2;
case"-":
returnnum1-num2;
case"*":
returnnum1*num2;
case"/":
returnnum1/num2;
default:
return0;
}
}
}