目录
pta第一次博客
1.前言
这三次pta里,第一次的难度是最低的,基本上只要会基础的格式,对java有一定的了解就能轻松解决,第二次难度较低,只要掌握一些字符串的相应函数就能解决,第三次作业难度就相对提升了很大一个阶段,需要熟悉并熟练运用正则表达式来处理字符串,还需要熟练对类的划分和引用。
2.设计与分析
第二次作业第二题
1.题目:
RS232是串口常用的通信协议,在异步通信模式下,串口可以一次发送58位数据,收发双方之间没有数据发送时线路维持高电平,相当于接收方持续收到数据“1”(称为空闲位),发送方有数据发送时,会在有效数据(58位,具体位数由通信双方提前设置)前加上1位起始位“0”,在有效数据之后加上1位可选的奇偶校验位和1位结束位“1”。请编写程序,模拟串口接收处理程序,注:假定有效数据是8位,奇偶校验位采用奇校验。
输入格式:
由0、1组成的二进制数据流。例如:11110111010111111001001101111111011111111101111
输出格式:
过滤掉空闲、起始、结束以及奇偶校验位之后的数据,数据之前加上序号和英文冒号。
如有多个数据,每个数据单独一行显示。
若数据不足11位或者输入数据全1没有起始位,则输出"null data",
若某个数据的结束符不为1,则输出“validate error”。
若某个数据奇偶校验错误,则输出“parity check error”。
若数据结束符和奇偶校验均不合格,输出“validate error”。
如:11011或11111111111111111。
例如:
1:11101011
2:01001101
3:validate error
试题分析
本题主要是要熟悉对字符串数据的处理,其中如果结束符不为1和结束符与奇偶校验均不合格时输出是一样的,所以可以先判断结束符是否合格,
源代码展示:
查看代码[code]import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner input =new Scanner(System.in); String a=input.nextLine(); int i,j=1,n,m=0; if(a.length() |