假期刷题打卡--Day2

一.遗留问题的解决

遗留问题1:如何使用c++、Java和python实现输入多个整型数值并用逗号分隔;

1.MT1003 整数运算

请编写一个简单程序,用户输入2个整型数据存储在变量中,并输出他们的和与差。

格式

输入格式:2个整型数据,用逗号分隔

输出格式:输出分两行,分别输出他们的和与差

样例 1

输入:3,5

输出:3+5=8

           3-5=-2

c++实现代码

        对于c++,因为我并没有系统的学过这个语言,所以在使用的过程中C语言和c++是穿插使用的,所以在这个问题中,为了方便,我就直接用C语言解决了这个问题。

#include 

using namespace std;

int main( )
{
    int a , b ;
    scanf("%d,%d",&a,&b);
    printf("%d+%d=%d\n",a,b,a+b);
    printf("%d-%d=%d",a,b,a-b);
    return 0;
}
 Java实现代码     

使用Java解决此问题,需要使用到split()函数,以下是split()函数相关概念。

(下面的定义与实例均来源于菜鸟教程,具体内容可以参考Java split() 方法 | 菜鸟教程 (runoob.com))

        Java String类中的split() 方法是根据匹配给定的正则表达式来拆分字符串。

注意: . 、 $、 | 和 * 等转义字符,必须得加 \\。

注意:多个分隔符,可以用 | 作为连字符。

例1:String 类的 split 方法示例:定义一个 String 字符串类型变量 str,一个 String[] buff 数组,将"小学,初中,高中,大专,本科,研究生,博士"赋值给 str,用 , 分割 str 字符串,并且将分割后的字符串数组赋值给 buff。

public class Test {
    public static void main(String args[]) {
        String str = "小学,初中,高中,大专,本科,研究生,博士";
        String[] buff = str.split(",");
        for(int i=0;i

例2:. 必须得加转义字符\\,以下是拆分 IP 地址的实例:

public class Demo {
    public static void main(String args[]) {
        String str = "192.168.1.1";
        // . 必须得加 转义字符\\
        for(String s : str.split("\\.")){
            System.out.println(s);
        }
    }
}

        通过上述内容,可以学习到使用分隔符的具体过程,即首先将输入转换成字符串,然后重新定义一个字符串数组,使用split()函数将输入的字符串用’,’分隔,将分割后的字符串赋值给新定义的字符串数组中。

        依照上述方法实现题目要求,具体代码如下:

/*先转换成输入一串字符串,然后定义数组,split以“,”分割*/

Scanner input = new Scanner(System.in);
String s = input.next();
String[] str = s.split(“,”); //这里要使用双引号,因为这个参数应该是字符串,而不是字符

 上述代码实现了将字符串用“,”分隔,并且将分隔后的字符串赋值给了字符串数组,依据题目要求,输入两个整型变量,然后输出它们的和与差。具体代码如下:

        /*这里不直接赋值是因为数组是字符串类型的,而题目要求是整型,
        所以使用Integer.parseInt()将()内的String类型字符串转化为int类型*/
        int a = Integer.parseInt(str[0]);
        int b = Integer.parseInt(str[1]);

        int c = a + b ;//若是直接在输出中使用“+”表示字符串拼接,所以提前计算出
        int d = a - b;

        System.out.println(a + "+" + b + "=" + c );//这里“+”表示拼接
        System.out.println(a + "-" + b + "=" + d );

整体实现代码如下:

import java.util.Scanner;
import java.util.*;

class Main {

   public static void main(String[] args) {

      Scanner input = new Scanner(System.in);
      // code here
      String s  = input.next();
      String[] str = s.split(",");//使用双引号

      /*这里不直接赋值是因为数组是字符串类型的,而题目要求是整型,
        所以使用Integer.parseInt()将()内的String类型字符串转化为int类型*/
      int a = Integer.parseInt(str[0]);
      int b = Integer.parseInt(str[1]);


      int c = a + b ;//若是直接在输出中使用“+”表示字符串拼接,所以提前计算出
      int d = a - b;
      System.out.println(a + "+" + b + "=" + c );//这里“+”表示拼接
      System.out.println(a + "-" + b + "=" + d );
      input.close();
   }
}
python实现代码

 使用python解决该问题,需要使用map()函数。

参考网站:Python map() 函数 | 菜鸟教程 (runoob.com)

map() 函数语法:

map(function, iterable, ...)

描述

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

参数

  • function -- 函数
  • iterable -- 一个或多个序列

 所以题目要求输入格式:

a,b=map(int,input().split(","))

'''这里首先需要输入,即使用input()函数,然后在输入的时候使用“,”隔开,即使用split()函数'''

 print输出多种类型变量,可以使用“,”隔开

实现代码如下: 

print(a,"+",b,"=",a+b)
print(a,"-",b,"=",a-b)

但是使用“,”隔开时,输出的结果中“,”也占一个空格,所以输出的结果是这样:

假期刷题打卡--Day2_第1张图片

要想达到预期的结果,就需要使用到sep参数。

sep参数是用来设定print()中的多个对象之间的连接符号是什么,默认是空格,而print中多个对象之间是通过逗号,来分隔。

使用逗号分隔,中间会有空格,如上图。

而若是使用sep参数,可以设置sep=“”等来设置分隔符号,因此空格被替换为无空格

实现代码如下:

    print(a,"+",b,"=",a+b,sep="")
    print(a,"-",b,"=",a-b,sep="")

 结果如下:

假期刷题打卡--Day2_第2张图片

整体实现代码如下:


def main():
    #code here
    a,b = map(int,input().split(","))
    print(a,"+",b,"=",a+b,sep="")
    print(a,"-",b,"=",a-b,sep="")
    pass


if __name__ == '__main__':
    main();

 以上就是昨天遗留的一个问题,如果以后学习到其他方法,还会补充。

遗留问题2:如何实现将数据传入相应单元。

要求:将数据放进40H开始的单元中。

最笨但是最简单的办法,就是使用MOV指令一个一个移进去,代码如下:

//数据块传送程序设计   编写程序将 40H 开始的 16 个数据送到 90H 开始的 16 个单元中
		
START:
	MOV R0,#40H
	MOV R1,#90H
	MOV R2,#16
	
TABLE:
	MOV 40H,#0
	MOV 41H,#1
	MOV 42H,#2
	MOV 43H,#3
	MOV 44H,#4
	MOV 45H,#5
;…………给16个单元分别赋值

LOOP:
	MOV A,@R0
	MOV @R1,A
	LJMP NEXT
	
NEXT:
	INC R0
	INC R1
	DJNZ R2,LOOP
	
END	

 明天继续吧。

你可能感兴趣的:(假期打卡学习,python,开发语言,c++,c语言,java,汇编)