(头歌)Java程序设计---------简单 IPO

第1关:三个数的平均值

任务描述

本关任务:编写一个 IPO 流程的程序,输入三个数,输出平均值。

相关知识

完成本关任务,你需要学习以下知识:

  1. 什么是 IPO;
  2. 从控制台读取输入;
  3. 标识符与变量;
  4. 变量及相关操作。

什么是 IPO

IPO 指程序执行的三个流程,分别是输入(Input)、执行(Precess)以及输出(Output)。

IPO 流程将在本课程中非常常见,编写的代码也可以根据 IPO 简单的分成三个部分。

从控制台读取输入

为了使程序具有与外界交互的能力, Java 提供了从控制台读取输入这样一种途径。可以使用Scanner类从控制台输入,此外,Java 使用System.in来抽象标准输入设备。

输入示例如下:

  1. /** 代码清单 1 */
  2. // 创建从控制台标准输入的对象
  3. Scanner input = new Scanner(System.in);
  4. // 从控制台读取一个小数
  5. double d = input.nextDouble();
  6. // 从控制台读取一个整数
  7. int i = input.nextInt();
  8. // 从控制台读取一行字符串
  9. String s = input.nextLine();

标识符与变量

代码清单 1 中,每条输入语句的前面都有类似double d =这样的符号,这是为了使用变量存储输入的数据,其中double是变量类型,d是变量名(或标识符)。

标识符是为了标识程序中诸如类、方法和变量的元素而采用的命名。

注:变量、方法、类的概念相对复杂,将在后续章节详细介绍,这里只会简单介绍变量及标识符。

标识符就相当于我们在编程时给 Java 程序中定义的各种元素的名称,就像发明家给自己各式各样的发明取名字一样。Java 规定了标识符命名需要遵守一些规则:

  • 标识符是由数字、字母、下划线(_)和美元符号($)组成的字符序列;

  • 标识符不能以数字开头,例如1number作为标识符是不合法的;

  • 标识符不能是保留字,保留字是指 Java 语言所用到的特定符号,例如变量类型double,就不能用作编程人员自定义的标识符;

  • 标识符可以为任意长度。

值得注意的是,Java 标识符是大小写敏感的,例如:Appleapple是两个不同的标识符。

合理的使用标识符,能够使我们编写的程序更加美观、更加易懂,因此请养成良好的标识符命名习惯。

最后,下表列举了一些常见保留字,在命名标识符时需要尽量避开: | 类型 | 标识符示例 | | ------------ | ------------ | | 类型名 | double、float、int、char、String 等 | | 修饰符 | static、public、private 等 | | 操作符 | new、break、continue 等 | | 语句 | if、else、switch、catch、throw 等 | | 类声明符 | class |

变量及相关操作

前面说完了标识符,再简单介绍一下变量,因为标识符一个主要的作用是给变量命名。通俗来说,变量就是一个存储容器,容器中存放的“东西”可以进行改变。我们编写程序,就是为了按照一定的规则使用并改变容器中存储的“东西”,最终得到我们想要的“东西”。

我们改变变量中存储东西时需要使用赋值操作。

示例如下:

  1. /** 代码清单 2*/
  2. // 声明了一个 double 类型的变量,变量名为 number
  3. double number;
  4. // 对 number 进行赋值,改变其存储的内容
  5. number = 1.0; // 此时 number 存储着数字 1.0
  6. // 再次对 number 进行赋值,改变其存储的内容
  7. number = 2.0 // 此时 number 存储着数字 2.0

代码清单 2 中,通过赋值操作=可以不断的改变变量的值,需要注意的是,赋值的符号=并不是数学意义上的“相等”,在 Java 中,“相等”的概念由符号==来体现。

此外,Java 还提供了一些操作符来操作变量中存储的东西。 示例如下:

  1. /** 代码清单 3 */
  2. // 声明两个 double 类型的变量
  3. double a, b;
  4. // 对变量 a, b 进行赋值
  5. a = 1.0;
  6. b = 2.0;
  7. // 对变量 a, b 进行加法操作,并将操作结果赋值
  8. double c = a+b; // 此时变量 c 中存储着加法的结果
  9. // 对变量 c 进行出发操作,并重新赋值
  10. c = c/3.0;
  11. // 最终,变量 c 中存储的值为 1.0

代码清单 3 中,使用了+以及/操作符,分别进行了加法和除法操作,虽然这两种操作仅仅是 Java 提供的操作中的就牛一毛,但也代表了 Java 程序执行的一般过程,即:操作变量的值,并将结果赋值。

注意:以上语句需要在主方法中进行编写。

编程要求

根据提示,在右侧编辑器 Begin-End 区域补充代码,实现求三个数的平均值的功能。具体要求如下:

  • 依次输入三个double类型的浮点数分别存入变量a,b,c 中;
  • 然后计算三个数的平均值,存入变量result中。

测试说明

平台会对你编写的代码进行测试:

测试输入:

  1. 1.0
  2. 2.0
  3. 3.0

预期输出:

  1. 2.0

代码如下 

package step1;

import java.util.Scanner;
public class Main 
{
    public static void main(String[] args) 
    {
        Scanner input = new Scanner(System.in);
        double a,b,c;
        double result = 0.0;

        //请在指定位置填写代码。
        /********* Begin *********/
         a = input.nextDouble();
         b = input.nextDouble();
         c = input.nextDouble();
         result=(a+b+c)/3;
        /********* End *********/

        input.close();
        System.out.print(String.format("%.1f", result));
    }
}

第2关:摄氏度转华氏度

任务描述

本关任务:掌握标准输出以及小数的简单格式化输出,编写程序输入摄氏度数,输出相应的华氏度。

相关知识

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

  1. 从控制台输出;
  2. print 和 println;
  3. 格式化输出之控制小数点;
  4. 摄氏度与华氏度。

从控制台输出

在上一关中,讲解了如何从控制台输入,从而实现 Java 程序与外界的交互。而除了从外界获取信息, Java 程序有时还需要将信息展示给外界,例如一些提示信息、计算的结果、出现的错误等等,这就用到了 Java 的标准输出。 示例如下:

  1. /** 代码清单 1 */
  2. // 输出字符串
  3. System.out.print("Welcome to Java");
  4. double a = 1.0;
  5. // 输出浮点数
  6. System.out.print(a);
  7. // 输出一行字符串
  8. System.out.println("Welcome to Java");
  9. // 输出一行浮点数
  10. System.out.println(a);

在控制台的输出结果:

  1. Welcome to Java1.0Welcome to Java
  2. 1.0

代码清单 1 展示了简单的控制台输出信息,包括输出浮点数以及输出字符串,虽然输出结果杂乱无章,而且输出浮点数的格式也不明确,但至少我们知道了如何编写语句进行输出。

print 和 println

我们可以看到代码清单 1杂乱无章的信息输出,这是因为printprintln使用上的区别。与System.in相对应, Java 提供了标准输出的抽象,就是System.out。在 代码清单 1 中,我们使用了System.out的两种输出语句,分别是System.out.print()System.out.println()

它们的区别是:print()输出完毕后不换行,而println()输出完毕后会换行,因此println()不输出任何东西时,就输出一个换行符。因此,对代码清单进行简单的修改,对比两次输出结果,你就会明白两个方法的区别。

示例如下:

  1. /** 代码清单 2 */
  2. // 输出字符串
  3. System.out.print("Welcome to Java");
  4. // 换行输出
  5. System.out.println();
  6. double a = 1.0;
  7. // 输出浮点数
  8. System.out.print(a);
  9. // 换行
  10. System.out.println();
  11. // 输出一行字符串
  12. System.out.println("Welcome to Java");
  13. // 输出一行浮点数
  14. System.out.println(a);

在控制台的输出结果:

  1. Welcome to Java
  2. 1.0
  3. Welcome to Java
  4. 1.0

请一定要注意printprintln的区别,本实践课程所提供的实训在进行评测时,会采用精确匹配,有时侯评测未通过,很有可能就是输出的结尾是否多了一个换行。

格式化输出之控制小数点

代码清单 1 中,我们输出了一个浮点数,可以看到输出结果保留到小数点后一位,即1.0。那么看以下代码:

  1. /** 代码清单 3 */
  2. double a = 1.00;
  3. System.out.print(a);

输出结果:

  1. 1.0

当想要输出1.00这样的信息时,Java 依然固执的输出1.0这样的形式,要解决这样的问题。就要用到格式化输出。

示例如下:

  1. /** 代码清单 4 */
  2. double a = 1.00;
  3. System.out.println(String.format("%.3f",a));
  4. System.out.println(String.format("%.4f",a));

输出结果:

  1. 1.000
  2. 1.0000

代码清单 4提供了一个使用格式化输出控制输出浮点数小数点的例子,其中%.3f%.4f代表了小数点后保留 3 位、4 位。格式化输出本身涉及的内容很多,这里不做展开,通过后续课程学习,你将逐步进行掌握,直至灵活运用。

注意,本实训课程的评测对小数点也有精准要求,当要求输出1.00, 而实际输出1.0时,意味着无法通过评测。所以,请使用格式化输出,按要求保留输出小数的位数。

摄氏度与华氏度

摄氏度和华氏度是温度的两种不同计量方式,它们之间可以相互转化:

华氏度=(9/5)∗摄氏度+32

提示:在进行除法时,9/59/5.0是有区别的, 示例如下:

  1. /** 代码清单 5 */
  2. // 整数除
  3. System.out.println(9/5);
  4. System.out.println(9/5.0);

输出:

  1. 1
  2. 1.8

这是因为 Java 中的除法操作/对小数和整数是不同的,5是整型(int), 5.0是浮点型(double)。

编程要求

根据提示,在右侧编辑器 Begin-End 区域 补充代码,实现摄氏度转华氏度的功能。具体要求如下:

  • 输入一个double类型的值存入变量C中,表示摄氏度的值;
  • 将摄氏度转化为华氏度存入变量F后输出,结果保留两位小数。末尾无换行。

测试说明

平台会对你编写的代码进行测试:

测试输入:0

预期输出:32.00

代码如下 

package step2;
import java.util.Scanner;

public class Main 
{
    public static void main(String[] args) 
    {
        Scanner input = new Scanner(System.in);
        double C = input.nextDouble();
        input.close();
        double F;

        //请在指定位置填写代码。
        /********* Begin *********/
        double a;
        a=9/5.00;
        // System.out.println(a);
        F=a*C+32;
        System.out.print(String.format("%.2f", F));

        /********* End *********/
    }
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失棉的羊 .

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值