《程序设计基础》学习总结

 1. 梳理总结学习过的知识点

1.1 数据类型、表达式运算符

1.1.1数据类型主要可以分为两大类:

第一大类基本数据类型

分为三种类型

第一类数值型包含

一、整数类型

1.byte
8位、有符号的以二进制补码表示的整数。

范围(-128(-2^7),127(2^7-1))

默认值:0

包装类:Byte

2.short
16位、有符号的以二进制补码表示的整数。

范围(-32768(-2^15),32767(2^15-1))

默认值:0

包装类:Short

3.int
32位、有符号的以二进制补码表示的整数。

范围(-2,147,483,648(-2^31),2,147,483,647(2^31-1))

默认值:0

包装类:Integer

4.long
64位、有符号的以二进制补码表示的整数。

范围(-9,233,372,036,854,775,808(-2^63),9,223,372,036,854,775,807(2^63-1))

默认值:0

包装类:Long

二、浮点型

Java中浮点型数据无法由二进制直接表示,而是一种对于实数的近似数据表示法,它遵循IEEE 754标准。

5.float
单精度、32位、符合IEEE 754标准的浮点数。

float在储存大型浮点数组的时候可节省内存空间

浮点数不能用来表示精确的值,如货币

默认值:0.0f

包装类:Float

6.double
双精度、64位、IEEE 754标准的浮点数。

浮点数的默认类型为double类型

double类型同样不能表示精确值,如货币

默认值:0.0d

包装类:Double
第2类字符型

char

位数16位

范围(0,2^16-1)

默认值:null

第·3类布尔型

boolean

位数8位

默认值

false

范围ture、false

第二大类引用数据类型

class类

接口

数组

1.1.2表达式,运算符

常用运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。Java也提供了一套丰富的运算符来操纵变量,们可以把运算符分成以下几组:

算术运算符、关系运算符、位运算符、逻辑运算符、赋值运算符 和 其他运算符

Java中的语句有很多种形式,表达式就是其中一种形式。表达式由操作数与运算符所组成。

操作数可以是常量、变量,也可以是方法;运算符就是数学中的运算符号如“+”、“-”、“*”、“/”、“%”等。以下面的表达式(z+100)为例,“z”与“100”都是操作数,而“+”就是运算符。

表达式的计算结果必须是一个值,如果表达式是一个条件,就会产生逻辑值结果,即真或假。在其他情况下,值通常为计算的结果。

    1.2 程序结构

1.2.1 while循环结构
while循环的语法如下:

while(布尔表达式){

循环体;

}

说明:

布尔表达式表示循环体执行的条件,当条件为true时执行循环体。

循环体既可以是一条简单的语句,也可以是复合语句。

while语句的执行过程是:计算布尔表达式的值,如果其值是true,执行循环体;再计算布尔表达式的值,如果其值是true,再执行循环体,形成循环,直到布尔表达式的值变为false,结束循环。

1.2.3. do-while循环结构
do-while循环的语法如下:

do{

循环体;

}while(布尔表达式);

说明:

布尔表达式表示循环执行的条件。

循环体既可以是一条语句,也可以是语句序列。

do-while语句执行的过程是:执行循环体,计算布尔表达式的值,如果其值为true,再执行循环体,形成循环,直到布尔表达式的值变为false,结束循环,执行do-while语句后的语句。

注意:

        1. do-while语句执行时最少执行一次,因为先执行循环体,再判断表达式

        2. while语句执行时最少执行零次,因为先判断表达式,再执行循环体

1.2.4. for循环结构
for循环的语法结构:

for(表达式1; 表达式2; 表达式3){

循环体;

}

说明:

表达式1的作用是给循环变量初始化。

表达式2的作用是给出循环条件。

表达式3的作用是改变循环变量的值。

循环体可以是一条或多条语句。

for循环的执行过程是:执行表达式1,计算表达式2,如果表达式2的值为true,执行循环体,执行表达式3,改变循环变量的值,再计算表达式2的值,如果是true,再进入循环体,形成循环,直到表达式2的值为false,结束循环,执行for后面的语句。

1. if结构

if(布尔表达式){
   //如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}
 

如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码。

2. if-else分支结构

if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行。

if(布尔表达式){
   //如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}

4. switch-case结构
switch(expression){
    case value1 :
       //语句1
       break; //可选
    case value2 :
       //语句2
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句3
}
    //语句4

switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

执行流程:
    计算变量/表达式的数值 ⇒ 判断是否匹配字面值1;
    ⇒ 匹配,执行语句1,执行语句4
    ⇒ 不匹配,判断是否匹配字面值2
        ⇒ 匹配,执行语句2,执行语句4
        ⇒ 不匹配,执行语句3,执行语句4
 

    1.3 数组应用

一、冒泡排序

        冒泡排序算法原理:重复地遍历要排序的元素,依次比较相邻两个元素,如果前一个比后一个大,就把它们两个调换位置,直到没有元素再需要比较。这个算法的名字由来是因为越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端。

二、 选择排序
        选择排序原理:首先定义一个记录最小(大)元素的下标,将下标为i的元素依次与数组中其他所有元素进行比较,找到最小(大)的元素下标,然后将最小(大)元素与下标为i的元素互换位置。

        每轮比较结束后都会将一个最小(大)的元素排好序,不需要在进行比较,因此外层循环控制每次要排序的元素下标,从0开始,到倒数第二个数结束,因为最后一位数已经不需要在进行比较了,他后边已经没有元素了;内层循环控制数组的遍历,即控制比较次数,从第二个数开始,到最后一个数结束。

三、插入排序

        插入排序原理:将数组第一个元素视为已经排好的序列,将要插入的元素与前边已经排好的序列从后往前依次进行比较,当找到一个比他小的元素时,将要插入的序列放到该元素之后,其余元素向后移动,重复以上动作知道排序完成。

1.4类、方法

3.1 Java 类结构
一个Java文件只能有1个public class,其类名和文件名必须相同

注释的两种方法

双斜杠的单行注释
/*···*/的块注释
类时Java中的最基础逻辑单元

Java所有的内容都需要放在类中
内容不允许游离在类以外
Java项目是由一个个类组成的
类的构成

成员变量/属性
成员方法/函数
 

一、方法的定义
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:

修饰符 返回值类型 方法名(参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}
1
2
3
4
5
6
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下return
ValueType 是关键字void。
方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
方法体:方法体包含具体的语句,定义该方法的功能。

二、方法的调用
含有static的方法(静态方法),完整的调用方法是:类名.方法名(实参) ;

不含static的方法(成员方法),必须先创建对象,然后:引用.方法名(实参);

在同一个类中调用时,可以省略 “类名.”;但当未声明 “类名.”时,默认从当前类中寻找方法,不能省略类名调用其他类中的方法。

三、方法的返回值
1.当该方法没有特殊声明返回值类型的时候,默认为void类型

2.方法的返回值类型不是void的时候:

要求方法必须保证百分之百的执行“return 值;”的语句来进行值的返回
一个方法有返回值的时候,当我们调用了这个方法,,方法返回了一个值,对于调用者来说,我们可以选择接收返回值 , 也可以选择不接收。但一般情况下的都是接收的。

2. PTA实践总结
选择不少于两个程序示例进行说明,需要发布源代码、测试用例。
谈一下在线刷题的个人感受。
    2.1示例1sdut-循环-7-统计正数和负数的个数

import java.util.Scanner;
 public class Main{
     public static void main(String[] args){
         Scanner sc= new Scanner(System.in);
         int num;
         int sum = 0;
         double ave;
         int x = 0;
         int y = 0;
         while(sc.hasNextInt()){
             num=sc.nextInt();
             sum+=num;
             if(num==0){
                break;        
           }else if(num>0){
                 x+=1;
             }else if(num<0){
              y+=1;
         }           
             
         }
      ave = (1.00*sum/(x+y));
      System.out.println(x + "\n" + y + "\n" + sum);  
      System.out.printf("%.2f",ave);
         }
 }

说明:本题目主要考验while循环,其中sc.hasNextInt()代表循环输入整数。

测试用例

1 2 3 -1 -2 -3 0
 

结果3
3
0
0.00
    2.2示例2 按正整数的相反数字顺序输出

import java.util.Scanner;
  public class Main{
      public static void main(String[] args){
          Scanner sc=new Scanner(System.in);
      int a=sc.nextInt();
          while(a!=0){
              int b=a%10;
              System.out.print(b);
              a/=10;
          }
      
      
      }
  }

说明:主要利用%余数首先输出个位数,/10后十位数变为个位数并循环达到目的
    实验用例

5236

结果

6325

    2.5在线评测系统使用感受

考的非常细致,有时候一个小问题可能要找好久。

3. 改进学习方法、措施落实情况(内容可扩展,至少包括以下项)
    3.1 除课堂外,遇到不会的问题时会到哪个平台搜索

csdn
    3.2 根据记录2个月的每天代码时长,利用excel绘制统计表


    3.3 感觉个人的哪些方法还存在不足?哪些方面需要改进?

 

在类的方面运用不足,编程思想不够灵活容易进入死胡同。
    ...
4. 你知道csdn么,结合使用情况表述他的优点与不足
    4.1 csdn给你的直观感受是什么?便利,多数问题可以找到答案
    4.2 csdn你感觉最不舒服的地方是什么?有些文章要钱
    4.3 你还利用了哪些平台学习编程知识,他们是哪些网站或资源,优点是什么?哔哩哔哩,视频资源丰富,有讲解,且灵活分散,基本免费
5. 你认为影响你学习编程的主要阻力是什么?如何克服!编程思想未形成,不够熟练和熟悉,多自我思考,多进行代码练习
6. 其它(针对课程的学习,请发挥)  

学习计划:完成团队考核,继续深入学习java 

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值