Java小白_面向对象程序设计01顺序结构_06Java顺序结构之无输入求多边形的面积

学习-Java顺序结构之无输入求多边形的面积

  • [任务描述]
  • 相关知识
    • [标识符]
    • [变量和常量]
    • [声明变量]
    • 数据类型
      • [int]
      • [byte]
      • [short]
      • [long]
      • [float]
      • [double]
    • [声明常量]
    • [算术运算符]
    • [[编程要求]
  • [测试说明]

1. 任务要求

任务描述

本关任务:计算一个由正方形和等腰三角形组成的多边形的面积,其中正方形边长 4 厘米,等腰三角形底边为正方形的一条边,其到对角顶点的高为 2.6 厘米。 输出格式:该多边形的面积为 xxx

xxx 为多边形的面积。

相关知识

为了完成本关任务,你需要掌握:

  1. 标识符的命名规则;
  2. 变量和常量的定义;
  3. 整型、浮点型变量和常量的定义与使用;
  4. 算术表达式及其优先级;
  5. 使用并置符号‘+’合并多个字符串常量。
标识符

在上一个实训中,我们对变量和类名的命名规则已经有了一定的了解,而它们都属于标识符,下面我们来看一下标识符的命名规则吧。

命名规则:

  • 标识符必须以字母、下划线 _ 、或美元符 $ 开头(这里的字母并不单单指英文字母,中文也可以,但是我们并不推荐);
  • 标识符其它部分可以是字母、下划线 _ 、美元符 $ 和数字的任意组合;
  • Java 标识符大小写敏感,且长度无限制;
  • 不可以是 Java 的关键字。

另外:表示类名和接口名的标识符用大写字母开始,如:Person,Student 等;表示方法和变量的标识符用小写字母开始,后面的描述性词以大写开始,如:playGames(),studyEnglish() 等等。

接下来我们讲解什么是变量,什么是常量,以及它们在 Java 程序中的使用。

变量和常量

变量和常量,有一个共同的属性:量。量是一种传递数据的介质,量的实质是“值”。而有些量在程序的运行过程中会发生改变,有些量在程序运行过程中值不能发生改变,这些数据在程序中分别被叫做变量和常量。例如,我们在数学中学过的圆的周长:C=2π**r,其中Cr就是其中的变量,而 2 和 π就是其中的常量。

在实际的程序中,可以根据数据在程序运行中是否发生改变,来选择应该是使用变量表示还是常量表示。

现在,大家对变量和常量的概念应该已经有了基本的了解,那变量和常量在 Java 中又是怎么定义的呢?

声明变量

为了方便的引用变量的值,在程序中需要为变量设定一个名称,这就是变量名。Java 语言要求变量在使用以前必须首先声明,在程序中声明变量的语法格式如下:

[修饰符] 数据类型 变量名;

修饰符是可选的,我们在后面的实训中会进行详细的介绍。数据类型和变量名之间使用空格进行间隔(空格的个数不限,但是至少需要一个),声明语句使用“;”作为结束。也可以在声明变量的同时,设定该变量的值,语法格式如下:

数据类型 变量名 = 值;

在程序中,变量的值代表程序的状态,在程序中可以通过变量名来引用变量中存储的值,也可以为变量重新赋值,语法格式如下:

数据类型 变量名1 = 值1;变量名1 = 值2;

当需要声明多个同类型的变量时,我们还可以使用如下格式:

数据类型 变量名1 = 值1,变量名2 = 值2,……变量名n = 值n;

在变量的声明语法中,我们会看到“数据类型”这个名词,它是什么呢,在 Java 又扮演了怎么样的角色呢?

数据类型

Java 语言支持的数据类型分为两种:基本数据类型(Primitive Type)和引用数据类型(Reference Type)。

Java 语言提供的基本数据类型共有八种,包括六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型,详细见下表。

数据类型描述占用字节取值范围默认值
byteJava中最小的数据类型,1个字节-128~~127(-27~~27-1)0
int整型,用于存储整数4个字节-2147483648~21474836470
short短整型2个字节-32768~327170
long长整型8个字节-263~263-10L
float浮点型,用于存储带小数点的数字4个字节/0.0f
double双精度浮点型,用于存储带有小数点的数字8个字节/0.0d
char字符型,用于存储单个字符2个字节0~65535
boolean布尔类型,用于判断真或假1个字节仅有两个值,即true、falsefalse

注:一个字节等于 8 位(bit)

int

int 数据类型是 32 位、有符号的以二进制补码表示的整数;一般地整型变量默认为 int 类型,具体实例如下:

// 声明一个变量名为 a,数据类型为 int 的变量,并赋予该变量的值为 30000
int a = 30000;
// 声明一个变量名为 b,数据类型为 int 的变量,并赋予该变量的值为 -1200
int b = -1200;
// 输出 a,b 两个变量
System.out.println(a);System.out.print(b);

执行结果如下:

30000-1200
byte

byte 数据类型是 8 位、有符号的,以二进制补码表示的整数;该类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一,具体实例如下:

// 声明一个变量名为 a,数据类型为 byte 的变量,并赋予该变量的值为 100
byte a = 100;
// 声明一个变量名为 b,数据类型为 byte 的变量,并赋予该变量的值为 -50
byte b = -50;
// 输出 a,b 两个变量
System.out.println(a);
System.out.print(b);

执行结果如下:

100-50
short

short 数据类型是 16 位、有符号的以二进制补码表示的整数;short 数据类型也可以像 byte 那样节省空间。一个 short 变量是 int 型变量所占空间的二分之一,具体实例如下:

// 声明一个变量名为 a,数据类型为 short 的变量,并赋予该变量的值为 1800
short a = 1800;
// 声明一个变量名为 b,数据类型为 short 的变量,并赋予该变量的值为 -600
short b = -600;
// 输出 a,b 两个变量
System.out.println(a);
System.out.print(b);

执行结果如下:

1800-600
long

long 数据类型是 64 位、有符号的以二进制补码表示的整数;这种类型主要使用在需要比较大整数的系统上,具体实例如下:

// 声明一个变量名为 a,数据类型为 long 的变量,并赋予该变量的值为 1800000
long a = 1800000L;
// 声明一个变量名为 b,数据类型为 long 的变量,并赋予该变量的值为 -6000000
long b = -6000000L; 
//'L'和'l'均可,但小写容易与数字1混淆,建议大写;也可省略// 输出 a,b 两个变量System.out.println(a);
System.out.print(b);

执行结果如下:

1800000-6000000

这四个数据类型就是 Java 数据类型中的整型,接下来讲解浮点型的数据类型。

float

float 数据类型是单精度、32 位的浮点数;float 在储存大型浮点数组的时候可节省内存空间,具体实例如下:

// 声明一个变量名为 a,数据类型为 float 的变量,并赋予该变量的值为 2.35
float a = 2.35f; 
// 定义float类型变量的时候赋值,该值后面必须加上f
// 声明一个变量名为 b,数据类型为 float 的变量,并赋予该变量的值为 -5.894
float b = -5.894f;
// 输出 a,b 两个变量
System.out.println(a);
System.out.print(b);

执行结果如下:

2.35-5.894
double

double 数据类型是双精度、64 位的浮点数;浮点数的默认类型为 double 类型,具体实例如下:

// 声明一个变量名为 a,数据类型为 double 的变量,并赋予该变量的值为 1800.50d 这个d可写可不写。double a = 1800.50d;
// 声明一个变量名为 b,数据类型为 double 的变量,并赋予该变量的值为 -600.47
double b = -600.47;
// 输出 a,b 两个变量
System.out.println(a);
System.out.print(b);

执行结果如下:

1800.5-600.47

注意:这些类型的值在定义的时候不能超过它的范围,如果超过将会报错。

以上就是我们的浮点型和整型的数据类型了,Java 的基本数据类型还有字符型和布尔型,我们在后面的实训中会详细讲解。

我们已经了解了 Java 中的一些数据类型,现在我们继续回到变量这里。

在 Java 中,对于变量我们又有哪些要注意的呢?

  1. 在 main 方法中不能定义两个同名变量;
  2. Java 中的每个变量必须先声明,后使用;
  3. 在一行上可以定义多个变量,但建议只定义一个变量;
  4. 变量一次只能赋一个值,但可以修改多次。

对于变量,我们这节就讲到这里,接下来我们来看常量。

声明常量

在程序运行过程中一直不会改变的量,称为常量。其在整个程序中只能被赋值一次。

常量在程序中主要有 2 种表现形式:

  1. 字面常量:代表常数,便于程序的修改(例如:圆周率的值 3.1415926);
  2. 符号常量:增强程序的可读性(例如:常量 UP、DOWN、LEFT 和 RIGHT 分别代表上下左右,其数值分别是 1、2、3 和 4)。

常量一般分为以下几种:字符串常量、整型常量、浮点常量、字符常量、布尔常量和空常量。字符串常量我们在上一个实训中已经有了了解,本实训主要讲解整型常量和浮点型常量。

  1. 整数常量,直接写上数字,没有小数点,比如:10,20,30,50 等。

  2. 浮点常量,直接写上的数字,有小数点。其实可以把浮点常量比作小数,比如 4.5,5.6,7.8 等。

例子:

public class Demo {    
    public static void main(String[] args) {        
        System.out.println(12);// 12为整型常量        
        System.out.print(3.57);// 3.57为浮点型常量    
    }
}

执行结果:

123.57

在我们的生活中,我们会经常碰到两个数的加,减,乘,除,那么我们在 Java 当中又如何进行计算呢?

算术运算符

算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法、赋值等。 Java 中常用的算术运算符:

算术运算符名称举例
+加法5+2=17
-减法5-2=3
*乘法5*2=10
/除法8/5=1,8.0/5=1.6

我们将通过下面的这些例子为大家详细讲解。

public class Demo {    
    public static void main(String[] args) {        
        // 定义一个int型的变量a,将其赋值为100        
        int a = 100;        
        // 定义一个int型的变量b,将其赋值为84       
        int b = 84;        
        // 定义一个 double 型的变量c,将其赋值为25.4        
        double c = 25.4;        
        //将变量a与变量b相加,然后输出        
        System.out.println(a+b);        
        // 将变量a与变量c相减,然后输出        
        System.out.println(a-c);        
        // 将变量a与变量b相乘,然后输出        
        System.out.println(a*b);        
        // 将变量a与变量b相除,然后输出        
        System.out.println(a/b);        
        // 将变量a与变量c相除,然后输出        
        System.out.println(a/c);        
        // 输出a*c-a/b+c的值        
        System.out.print(a*c-a/b+c);            
    }
}

执行结果如下:

18474.6840013.9370078740157482564.4

我们发现 a/b 的为 1 ,是因为 / 并不是我们理解上的除法,当两个数都是整型的时候,它实际上是求整,也就是说它算出来的是商,因为两个整型相除,返回结果依然还是整型,它并不会保留小数部分,所以得到的是商。而一个整型和一个浮点型相除时得到的就是一个正常的除法运算值。

通过上面的练习,我们会发现 Java 中的运算顺序跟我们数学中的也是一样的,先算乘除再算加减。那如果我们想要先算加减,再算乘除怎么办呢?我们可以使用圆括号。

// 定义一个int型的变量a,将其赋值为100
int a = 100;
// 定义一个int型的变量b,将其赋值为84
int b = 84;
// 定义一个 double 型的变量c,将其赋值为25.4
double c = 25.0;
System.out.print((a+b)/c);

执行结果:

7.36

所以,最终的优先级是有圆括号的先算圆括号里面的,再算乘除,最后算加减。

注意:这些值在进行运算时不要超过它的范围,如果超出会产生数据溢出。

而赋值运算符又是怎样的呢?

基本的赋值运算符是“=”。他的优先级别低于其他的运算符,所以对该运算符往往最后读取。例如我们定义变量的时候给其赋值。

int a = 10;

复合的赋值运算符,又称为带有运算的赋值运算符,也叫赋值缩写。

运算符名称举例等价于
+=加赋值n+=25n=n+25
-减赋值n-=25n=n-25
*乘赋值n*=25n=n*25
/除赋值n/=25n=n/25

例子:

int a = 3;// 把右边的常量值赋值给左边的变量
a += 4;// 把左右两边相加的结果,赋值给左边,相当于 a = a + 4;
System.out.print(a);

执行结果:

7

它首先会进行加法运算 a+4,再将运算结果赋值给变量 a。

整型数据与整型数据进行运算时,谁的数据类型的范围大,数据类型就会变为谁的。浮点数据也是如此。当浮点数据类型与整形进行运算后,其数据类型都会变为该浮点数据类型。关于数据类型的转换,我们将会在后面的实训中详细介绍。

上面我们讲到了变量之间的运算,那如果我想要将两个字符串常量进行拼接又该怎么办呢?

例子:

public class Demo {    
    public static void main(String[] args) {        
        // 使用 + 可以将两个字符串常量进行拼接        
        System.out.println("我喜欢你"+"祖国!");        
        System.out.print("早上好"+",小明");    
    }
}

执行结果如下:

我喜欢你祖国!早上好,小明
编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。注意最后的输出格式为“该多边形的面积为 xxx”,其中 xxx 为多边形的面积。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。

/**
 * 任务:计算一个由正方形和等腰三角形组成的多边形的面积,其中正方形边长4厘米,等腰三角形底边为正方形的一条边,其到对角顶点的高为2.6厘米。
 * 类名为:PolygonalArea
 */
 
public class PolygonalArea {
    public static void main(String[] args) {
    	 
         
         int square_length = 4;  // 声明int型变量square_length用于表示正方形边长,并赋值 4
         double triangle_h = 2.6;  // 声明double型变量triangle_h用于表示三角形底边上的高,并赋值 2.6
         // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
         /********** Begin **********/
         // 第1步:计算正方形面积,赋值给变量area_square

         // 第2步:计算等腰三角形面积,赋值给变量area_triangle

         // 第3步:计算多边形面积,即正方形面积和等腰三角形面积,赋值给变量area_total

         // 第4步:打印输出多边形面积,即使用不换行输出语句输出变量area_total的值 输出格式:该多边形的面积为 xxx      其中xxx 为多边形的面积



        /********** End **********/

    }
} 


开始你的任务吧,祝你成功!

2. 任务分析

1. 输入输出分析

输入:无输入

输出:打印输出多边形面积,即使用不换行输出语句输出变量area_total的值 输出格式:该多边形的面积为 xxx 其中xxx 为多边形的面积

2. 需求分析
  1. 定义变量

  2. 计算正方形的面积,赋值给变量area_square

  3. 计算等腰三角形的面积,赋值给变量 area_triangle

  4. 计算多边形面积 即正方形面积和等腰三角形的面积,赋值给变量area_total

3. 所需知识

4. 确认代码框架
  1. 定义变量
int square_length = 4;  // 声明int型变量square_length用于表示正方形边长,并赋值 4
double triangle_h = 2.6;  // 声明double型变量triangle_h用于表示三角形底边上的高,并赋值 2.6
  1. 计算正方形的面积,赋值给变量area_square

    public static int areaSquare(int length){
        int area_square = length*length;
        return area_square;
    }
    
  2. 计算等腰三角形的面积,赋值给变量 area_triangle

    public static double areaTriangle(int length,double h){
        double area_triangle = 0.5*length*h;
        return area_triangle;
    }
    
  3. 计算多边形面积 即正方形面积和等腰三角形的面积,赋值给变量area_total

    public static double areaTotal (int area_square,double area_triangle){
        double areaTotal = area_square + area_triangle;
        return areaTotal;
    }
    
5. 书写代码
public class PolygonalArea{
    public static void main(String[] args){
        int square_length =4;
        double triangle_h = 2.6;
        int area_square = areaSquare(square_length);//记得参数是啥
        double area_triangle = areaTriangle(square_length,triangle_h);
        double area_total = area_square + area_triangle;
        System.out.print("该多边形的面积为 "+area_total);
    }
    public static int areaSquare(int length){
        int area_square = length * length;
        return area_square;
    }
    public static double areaTriangle(int length,double h){
        double area_triangle = 0.5 * length * h;
        return area_triangle;
    }
    public static double areaTotal(int area_square,double area_triangle){
        double area_total = area_square + area_triangle;
        return area_total;//记得return
    }
}

3. 代码

最终代码

public class PolygonalArea{
    public static void main(String[] args){
        int square_length =4;
        double triangle_h = 2.6;
        int area_square = areaSquare(square_length);//记得参数是啥
        double area_triangle = areaTriangle(square_length,triangle_h);
        double area_total = area_square + area_triangle;
        System.out.print("该多边形的面积为 "+area_total);
    }
    public static int areaSquare(int length){
        int area_square = length * length;
        return area_square;
    }
    public static double areaTriangle(int length,double h){
        double area_triangle = 0.5 * length * h;
        return area_triangle;
    }
    public static double areaTotal(int area_square,double area_triangle){
        double area_total = area_square + area_triangle;
        return area_total;//记得return
    }
}

之前的代码

public class PolygonalArea {
    public static void main(String[] args) {
        int square_length = 4;    // 声明 int 型变量 square_length 用于表示正方形边长,并赋值 4
        double triangle_h = 2.6; // 声明 double 型变量 triangle_h 用于表示三角形底边上的高,并赋值 2.6
        
        // 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
        /********** Begin **********/
        // 第1步:计算正方形面积,赋值给变量 area_square
        int area_square = square_length * square_length;

        // 第2步:计算等腰三角形面积,赋值给变量 area_triangle
        double area_triangle = 0.5 * square_length * triangle_h;

        // 第3步:计算多边形面积,即正方形面积和等腰三角形面积,赋值给变量 area_total
        double area_total = area_square + area_triangle;

        // 第4步:打印输出多边形面积,即使用不换行输出语句输出变量 area_total 的值,输出格式:该多边形的面积为 xxx,其中 xxx 为多边形的面积
        System.out.println("该多边形的面积为 " + area_total);
        /********** End **********/
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值