147
社区成员
发帖
与我相关
我的任务
分享《程序设计基础》第一学期学习总结
1.梳理总结学习过的知识点
1.1数据类型、表达式
Java中存在int,float,double,long,char,string,boolean,byte八种类型的数据。在我的平时作业中最常用的类型为int、double和string。
表达式形如a+b=c,Java中常用的运算符有+ - * / % == != ++ -- || &&
1.2程序结构
Java有三大程序结构:顺序结构、选择结构、循环结构
顺序结构
是Java程序的基本结构,语法从上到下一句一句执行,是最简单的算法结构
选择结构
当我们需要判断一个条件时,需要使用选择结构,选择结构的关键词有if、else if、
switch。if常用于两个选项,配合上else if可实现多个选项、switch通常用于有限个结果的场景。
循环语句
循环语句是在特定情况下,反复执行循环内的代码,循环的次数应该时有限的。
1.3 数组应用
Java数组是提供给我们的一个储存数据的容器,常用的数组有一维数组和二维数组,三维及以上的数组很少使用。
数组在创建时应该指定数据类型和长度。
通过数组,我们可以实现诸如排序等需求,本学期我们只学习的最基本的冒泡排序。
冒泡排序的基本原理:从第一位数字开始,依次与下一位数字进行比较,若后面的数字大于前者,则维持原状,否则交换位置,以此类推,直至所有数据排列完成。鉴于冒泡排序的低效,我一般使用Arraylist.sort方法。
1.4 类、方法
Java中类是十分常见的,可以说,Java是由一个个类组成的。类可以理解为为了完成任务所设计的工具包。如使用十分频繁的Scanner类,它可以帮助我们实现从键盘录入数据。
Java方法是一段可以重复调用的代码,其存在的目的是为了简化代码,提高可读性。
2.1示例1 求定积分
本题题干极为复杂,给初学编程的我留下了深刻的印象。但在仔细分析后,代码部分倒也不难实现,源码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
do{
double down=input.nextDouble();
double up=input.nextDouble();
double n=input.nextDouble();
double fxup,fxdown,out=0;
for(int i=0;i<n;i++){
fxdown=Math.pow(down+((up-down)/n)*i,2);
fxup=Math.pow(down+((up-down)/n)*(i+1),2);
out+=((fxup+fxdown)*((up-down)/n))/2;
}System.out.println(String.format("%.3f",out));
}while(input.hasNext());
}
}
简单来说,就是按照输入要求将所求函数分为n份,再使用for循环一一将每份梯形的面积算出来,最后相加得到总面积,保留三位小数后输出。
2.2示例2 模拟计算器
这题本身也不难,但是是第一次接触续写题,把完整代码复制上去后无法通过,百思不得其解。源码如下:
private static int sum(int a,int b){
int out =a+b;
return out;
}
private static int sub(int a,int b){
int out =a-b;
return out;
}
private static int mul(int a,int b){
int out =a*b;
return out;
}
private static int div(int a,int b){
int out =a/b;
return out;
}
定义 private static 后简单填写运算符即可完成。
2.3在线测评系统使用感受
最让人不适应的一点是某些题目无法粘贴,在IDEA编写完成还要手动誊写到PTA且过程中经常出错,带来额外的时间消耗。
3.1一般是在百度搜索
3.2没有记录,无法绘制
3.3其实这个学期学的挺蒙的,有很大部分时间都是边写代码边学习,趁着寒假,我打算在B站寻找网课并划分时间学习
4.1社区氛围很好,基本问题都有现成的答案
4.2 有些资源需要付费
4.3 B站,优点是免费和详细,可以找到具体的章节教学
5.主要阻力还是在数学上,程序算法往往都异想天开,数学差很难理解。我认为还是要多写代码,多多实践,不能止于观摩