山东大学项目实训树莓派提升计划二期项目(2)小组记录

本次博客为项目实训第六周的工作汇总。

本周中,小组成员完成了环境的相关配置,并把 配置说明与操作步骤携程实验指导书。且进行每个模块课程的实验1、2的知识整理、实验构思、实验示例代码编写。

1.Java部分

1.1 实验1:条件判断和循环

考察相等性运算符和关系运算符、逻辑性运算符、条件语句、循环语句等,并使用Scanner类考察代码实现的交互。

实验题目:

1.编写Stars.java程序中的test01_1Code()方法,实现从控制台输入一个自然数n(n>=1),使得在控制台中打印出边长为n的菱形。

2.编写PalindromeTester.java程序中的 test01_2Code(String testString)方法,测试参数testString是否为回文字符串(回文:顺读和倒读都相同的字符串序列),如果是,则返回true;反之返回false。

例如,测试用例为“radar”时,返回true。

1.2 实验2:对象和类。

考察学生对如何定义类、创建对象、使用类与对象的掌握,还有类及成员的修饰符的运用、构造函数的使用、局部变量和全局变量在使用中的影响等多个方面。

实验题目:

为二次方程式ax^2+bx+c=0设计一个名为QuadraticEquation的类。这个类包括:

代表三个稀疏的私有数据域a、b、c。
一个参数为a、b、c的构造方法。
a、b、c的三个get方法。
一个名为getDiscriminant()的方法返回判别式,b^2-4ac。
名为getRoot1()和getRoot2()的方法返回等式的两个根。
名为test()的方法,返回值为void,如果判别式为正数,显示两个根,返回2;如果判别式为0,显示一个根,返回1;否则,显示“The equation has no roots.”,返回0。

2.C语言部分

2.1 实验1:helloworld.c、两数相加

考察对于Ubuntu更新gcc、安装编程环境的基本操作,以及基本c程序的编写与运行。

实验题目:

helloworld.c 程序

程序说明:利用printf() 函数 输出"hello , raspberry!";

两数相加

程序说明:从控制台读入两个int型数值,输出两数之和

2.2 实验2:熟悉do{} while() 循环结构

通过多个小实验,考察对于do{} while()语句的掌握程度,掌握结构化设计的分支结构。

实验题目:

打印十遍raspberry pi

程序说明:熟悉do-while结构,输出十次raspberry pi

累数相加之和

程序说明:从控制台读入两个整型数字from 和 to, 求从from到to的累加之和

从数组中找出最大的元素并输出

程序说明:在array数组中找出最大元素,并将其输出

3.Python部分

3.1 实验1:条件、循环分支

通过补充代码并使用python第三方库——单元测试框架pytest,学习关于条件语句和循环语句的相关内容。

实验题目:

  1. 编写一个名为collatzl()的函数,它有一个名为number的参数,如果参数是偶数,那么collatz()就返回number//2,如果number是奇数,collatz()就返回3*number+1。
  2. 编写一个函数,让用户输入一个正整数,并不断对这个数调用collatz(),可以发现,无论输入的参数为什么整数,最后结果都为1,即使时数学家也不能确定为什么。

3.2 实验2:列表

给你一个数组 nums 和一个值 val,你需要在 原数组上 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

示例 1:
输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。
例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。

示例 2:
输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,4,0,3]
解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。
注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。

4.计算机系统原理部分

本实验包含 7 道与位级层面整数运算及操作的题目,使用 C++ 写成。Exp1.cc 文件中包含这 7 道题的空函数体,学生需要通过有限的 C++ 算术或逻辑操作符修改这些函数体,以实现函数功能。因为需要在树莓派上运行,实验将提供基于 Linux 环境本地检查功能,以方便学生进行检查。
实验题目:

本实验假设学生的机器有如下特征:

  1. 使用 32 位二进制补码存储数据
  2. 右移操作为算术右移
  3. 使用小端法存储数据

题目一,使用位级运算符号 NOT ~ 和 OR | 实现 x & y,本题目为 CS:APP Data Lab 中 bitXor 的简化版。

题目二,返回当前值的相反数,本题为 CS:APP Data Lab 原题。

题目三,无符号整数乘法,这道题是从 CS:APP 书上模拟出来的,只要认真看了课本应该没有什么难度。

题目四,从整数中取出字节,这道题目是 0-index 的。

题目五,判断当前值是否为 32 位补码整数最大值,即 2^31-1 = 2147483647,本题为 CS:APP Data Lab 原题。

题目六,判断当前整数的所有奇数位比特是否为 1,本题目为 CS:APP Data Lab 中 allOddBits 的修改版。

题目七,判断是否 x ≥ y,本题目为 CS:APP Data Lab 中 isLessOrEqual 的修改版。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值