CH11_JS的多重循环

第11章:Javascript的多重循环

本章目标

  1. 掌握二重循环的使用

  2. 掌握二重循环的控制语句的使用

课程回顾

  1. 循环控制有那几种方式

讲解内容

1. 回顾练习

需求说明
某次程序大赛,AI2101班有4名学员参加,学员的成绩由用户输入,计算该班参赛学员的平均分

2. 为什么要使用二重循环

  1. 问题:若有3个班级各4名学员参赛,如何计算每个班级参赛学员的平均分?

  2. 分析:

    外层循环控制班级数目,内层循环控制每个班级学员数目

    所以只能通过使用二重循环实现

3. 什么是二重循环

在这里插入图片描述

#### 4. 案例实现
  1. 若有3个班级各4名学员参赛,如何计算每个班级参赛学员的平均分?

        <script>
          //若有3个班级各4名学员参赛,如何计算每个班级参赛学员的平均分?
          for (var i=1;i<=3;i++) {//3个班
              var sumScore=0;
              console.log("请输入第"+i+"个班的学生成绩:");
              for(var j=1;j<=4;j++){
                var score=prompt("请输入第"+j+"个学生成绩:");
                console.log("第"+j+"个学生成绩:"+score);
    
                sumScore+=parseInt(score);//累计成绩,注意要类型转换
              }
              console.log("平均分为:"+(sumScore/4));
          }
        </script>
    

    在这里插入图片描述

5. 二重循环的控制语句

在这里插入图片描述

课后作业

  1. 打印图案
    图案1:

    在这里插入图片描述

    图案2:

    在这里插入图片描述

    图案3:

    在这里插入图片描述

    图案4:

    在这里插入图片描述

    图案5:

    在这里插入图片描述

    图案6:

    在这里插入图片描述

    图案7:

    在这里插入图片描述

    图案8:

    在这里插入图片描述

    图案9:

    在这里插入图片描述

    图案10:

    在这里插入图片描述

    图案11:

    在这里插入图片描述

    图案12:

    在这里插入图片描述

  2. 若有3个班级各4名学员参赛,计算每个班级参赛学员平均分,统计成绩大于85分学员数 。

  3. 从键盘输入10个整数,合法数值是1,2,3,不是这三个数则为非法数字。试编程统计每个整数和非法数字的个数。

    效果如下:

    请输入10个数

    1,2,3,2,5,4,1,7,6,7

    数字 1 的个数:2

    数字 2 的个数:2

    数字 3 的个数:1

    非法数字的个数:5

  4. 实现九九乘法表

  5. 编写程序,输出斐波那契数列的前10个数。运行结果如图1所示。

    提示:斐波那契数列数字排列规律为:1,1,2,3,5,8,13,21……

数字 2 的个数:2

数字 3 的个数:1

非法数字的个数:5

  1. 实现九九乘法表

  2. 编写程序,输出斐波那契数列的前10个数。运行结果如图1所示。

    提示:斐波那契数列数字排列规律为:1,1,2,3,5,8,13,21……

  3. 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
TIM2_CH1_CAPTURE_STA是一个用于记录TIM2通道1输入捕获状态的变量。在使用STM32的输入捕获功能时,我们需要在捕获到边沿信号时记录当前定时器的值,以便后续计算时间差或者频率等信息。TIM2_CH1_CAPTURE_STA通常是一个32位的变量,其中高16位用于记录捕获次数,低16位用于记录捕获状态。具体的定义和使用可以参考以下代码: ```c #define TIM2_CH1_CAPTURE_STA_COUNT 0XFFFF //捕获计数器的最大值 #define TIM2_CH1_CAPTURE_STA_RISING 0X01 //上升沿捕获标志 #define TIM2_CH1_CAPTURE_STA_FALLING 0X02 //下降沿捕获标志 uint32_t TIM2_CH1_CAPTURE_STA = 0; //捕获状态变量 uint32_t TIM2_CH1_CAPTURE_VAL; //捕获值 void TIM2_IRQHandler(void) { if ((TIM2_CH1_CAPTURE_STA & TIM2_CH1_CAPTURE_STA_FALLING) == 0) //还未捕获到下降沿 { if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET) //捕获到上升沿 { TIM2_CH1_CAPTURE_STA |= TIM2_CH1_CAPTURE_STA_RISING; //标记上升沿已经被捕获 TIM_SetCounter(TIM2, 0); //清空定时器计数器 TIM_ClearITPendingBit(TIM2, TIM_IT_CC1); //清除中断标志位 } } else //已经捕获到上升沿 { TIM2_CH1_CAPTURE_VAL = TIM_GetCapture1(TIM2); //获取捕获值 TIM2_CH1_CAPTURE_STA |= TIM2_CH1_CAPTURE_STA_FALLING; //标记下降沿已经被捕获 TIM_ClearITPendingBit(TIM2, TIM_IT_CC1); //清除中断标志位 } } int main(void) { //初始化TIM2通道1输入捕获 TIM_ICInitTypeDef TIM2_ICInitStructure; TIM2_ICInitStructure.TIM_Channel = TIM_Channel_1; TIM2_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; TIM2_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; TIM2_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; TIM2_ICInitStructure.TIM_ICFilter = 0x00; TIM_ICInit(TIM2, &TIM2_ICInitStructure); //使能TIM2通道1输入捕获中断 TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE); //启动TIM2 TIM_Cmd(TIM2, ENABLE); while (1) { if ((TIM2_CH1_CAPTURE_STA & TIM2_CH1_CAPTURE_STA_FALLING) != 0) //已经捕获到下降沿 { uint32_t capture_time = TIM2_CH1_CAPTURE_VAL + TIM2_CH1_CAPTURE_STA_COUNT * TIM_GetCounter(TIM2); //计算捕获时间 uint32_t capture_freq = SystemCoreClock / capture_time; //计算捕获频率 TIM2_CH1_CAPTURE_STA = 0; //清空捕获状态 } } } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

功夫熊猫大侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值