苏嵌//张朋//2018.07.18

苏嵌                                                                                                                                   项目实战

学习日志                                       姓名:张朋                       日期:2018年07月18日

 

 

 

 

今日学习任务

 

  1. 函数调用的过程。
  2. 数组的遍历、数组名的作用、数组指针变量的作用及使用。
  3. 学会使用多维数组并掌握其应用。
  4. 了解并学会左右法则的使用。

今日任务完成情况

 

(详细说明本日任务是否按计划完成,开发的代码量)

今日任务按计划完成。

  1. 掌握了函数的调用过程,更加深刻的理解了数组使用及其遍历的过程。
  2. 进一步的学会了左右法则的使用。
  3. 知道了return和exit()的区别,懂得了如何让函数返回多个值。
  4. 更加深刻的知道了多维数组的使用以及指针数组的使用。

今日开发中出现的问题汇总

 

  1. 函数调用的过程分为哪几个步骤?
  2. 调用子函数时传值和传地址的区别?
  3. return和exit()的区别?
  4. 让子函数返回多个值的方法是什么?

 

今日未解决问题

 

今日开发收获

通过今天的学习,让我对指针和数组的理解更加的深刻了,明白了函数有关的相关知识(以前所不知道的知识)。懂得了怎么让函数返回多个值。还有就是数组名的作用,以及如何画多维数组的内存分布图。同时,通过今天课上的代码练习,让我进一步的增强了写代码的能力。

 

自我评价

 

(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)

 

 

今天可以跟上老师的步骤, 在今天的学习中,我懂得了之前一直模糊不清的知识点,让我不再对多维数组和指针感到恐惧,反而更加喜欢编写这方面的程序。但是,由于只是刚刚开始理解这些方面的知识,所以编写代码的时候还是非常吃力的。这就要求自己在课下多花些时间编写代码,通过大量的练习不断的提高自己的能力。

其他

 

 

 

//1.数组的遍历方法(多种方法)(源代码如下)

  1 #include <stdio.h>
  2 
  3 #define MAX_LEN 3
  4 int main()
  5 {
  6     int i;
  7     int arr[MAX_LEN];
  8     int * parr = arr;
  9 
 10     int arr_len;
 11 
 12     for(i = 0; i < MAX_LEN; i++)
 13     {
 14        // scanf("%d",arr + i);
 15      //  scanf("%d",parr + i);
 16         //scanf("%d",&arr[i]);
 17         scanf("%d",parr++);
 18     }
 19     parr = arr;
 20     for(i = 0; i < MAX_LEN; i++)
 21     {
 22        // printf("arr[%d] = %d\n",i,arr[i]);
 23         printf("arr[%d] = %d\n",i,*parr++);
 24     }
 25 
 26 
 27     return 0;
 28 }
//2.进行多个系统功能函数的重写,源代码如下:

  1 #include <stdio.h>
  2 #include <string.h>
  3 
  4 char *my_strcpy(char *dest, char *src)
  5 {
  6     char *d_tmp = dest;
  7     char *s_tmp = src;
  8     while(*s_tmp != '\0')
  9     {
 10         *d_tmp = *s_tmp;
 11         d_tmp++;
 12         s_tmp++;
 13     }
 14     *d_tmp = '\0';
 15     return dest;
 16 }
 17 char *my_strncpy(char *dest, char *src, int num)
 18 {
 19     int i;
 20     char *d_tmp = dest;
 21     char *s_tmp =src;
 22 
 23     for(i = 0; i < num; i++)
 24     {
 25         *(d_tmp + i) = *(s_tmp + i);
 26     }
 27     *(d_tmp + i) = '\0';
 28     return d_tmp;
 29 }
 30 char *my_strcat(char *dest, char *src)
 31 {
 32 
 33     char *d_tmp = dest;
 34     char *s_tmp = src;
 35 
 36     while(*d_tmp != '\0')
 37     {
 38         d_tmp++;
 39     }
 40     while(*s_tmp != '\0')
 41     {
 42         *(d_tmp) = *(s_tmp);
 43         s_tmp++;
 44         d_tmp++;
 45     }
 46     *d_tmp = '\0';
 47     return dest;
 48 }
 49 char *my_strncat(char *dest, char *src, int len)
 50 {
 51     int i;
 52 
 53     char *d_tmp = dest;
 54     char *s_tmp = src;
 55 
 56     while(*d_tmp != '\0')
 57     {
 58         d_tmp++;
 59     }
 60     for(i = 0; i < len; i++)
 61     {
 62         *(d_tmp + i) = *(s_tmp + i);
 63     }
 64     *(d_tmp +i) = '\0';
 65     return dest;
 66 }
 67 int my_strcmp(char *dest, char *src)
 68 {
 69     char *d_tmp = dest;
 70     char *s_tmp = src;
 71 
 72     while(*s_tmp == *d_tmp)
 73     {
 74         s_tmp++;
 75         d_tmp++;
 76         if((*s_tmp == '\0') && (*d_tmp == '\0'))
 77         {
 78             return 0;
 79         }
 80         if((*s_tmp) > (*d_tmp))
 81         {
 82             return -1;
 83         }
 84         if(*s_tmp < (*d_tmp))
 85         {
 86             return 1;
 87         }
 88     }
 89 }
 90 int main()
 91 {
 92     char *str = "hello world!";
 93     //char *str1 = "Hi!Hi!";
 94     char ptr[100] = "h!!!";
 95 
 96    // char *temp = my_strcpy(ptr,str);
 97 
 98     //char *temp1 = my_strncpy(ptr,str,3);
 99      //char *temp2 = my_strcat(ptr,str);
100       // char *temp3 = my_strncat(ptr,str,3);
101       int ret = my_strcmp(ptr,str);
102     printf("str = %s\n",str);
103     printf("ptr = %s\n",ptr);
104     //printf("str1 = %s\n",str1);
105    // printf("temp = %s\n",temp);
106   // printf("temp1 = %s\n",temp1);
107     // printf("temp2 = %s\n",temp2);
108    // printf("temp3 = %s\n",temp3);
109    printf("ret = %d\n",ret);
110 
111     return 0;
112 }
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
污水池清扫机器人是一种可以在污水池内进行清洁作业的机器人设备,它可以有效地降低人工清洁的风险,提高清洁效率,因此得到了广泛的关注和研究。目前,国内外对污水池清扫机器人的研究主要集中在机器人的设计与控制、环境感知与导航、清扫机构与清扫效果等方面。 在机器人的设计与控制方面,研究者们主要关注机器人的整体结构设计、运动控制与稳定性、能量供应与管理等问题。例如,美国康奈尔大学的研究团队提出了一种基于智能材料的污水池清扫机器人设计方案[1],该机器人利用智能材料的形变来实现机器人的运动控制和稳定性保证。另外,国内的一些高校如浙江大学、华南理工大学等也对机器人的运动控制、能量供应等问题进行了深入的研究[2][3]。 在环境感知与导航方面,研究者们主要关注机器人对污水池内环境的感知与建模、路径规划与导航等问题。例如,美国加州大学伯克利分校的研究团队提出了一种基于激光扫描和视觉识别的污水池清扫机器人导航系统[4],该系统可以实现对污水池内物体的三维重建和识别,进而实现机器人的路径规划和导航。同时,国内的一些高校如清华大学、南京航空航天大学等也对机器人的环境感知和导航问题进行了研究[5][6]。 在清扫机构与清扫效果方面,研究者们主要关注机器人清扫机构的设计、清扫效率与清扫效果等问题。例如,美国乔治华盛顿大学的研究团队提出了一种基于高效清洗技术的污水池清扫机器人[7],该机器人采用高压水流清洗技术,可以有效地清洗污水池内的污垢和污染物。同时,国内的一些高校如东南大学、中南大学等也对机器人的清扫机构和清扫效果进行了研究[8][9]。 综上所述,目前对污水池清扫机器人的研究主要集中在机器人的设计与控制、环境感知与导航、清扫机构与清扫效果等方面。未来,随着人工智能、机器视觉等技术的发展,污水池清扫机器人将会得到更广泛的应用和研究。 参考文献: [1] Zhang, Q., & Wang, Q. (2016). A soft robot for sewage cleaning based on smart material. In 2016 IEEE International Conference on Robotics and Biomimetics (ROBIO) (pp. 1631-1636). IEEE. [2] 王富强, 沈蒙, 张波, & 杨坤. (2018). 污水池清洁机器人的设计与研究. 机械设计与制造, (7), 1-4. [3] 彭刚, 王鑫, 谭波, & 王浩. (2019). 基于智能电池的污水池清洁机器人设计. 微电机, 52(4), 14-17. [4] Liu, T., & Tomizuka, M. (2015). An integrated navigation system for a sewer cleaning robot. Journal of Field Robotics, 32(2), 257-273. [5] 李志伟, & 于光辉. (2017). 基于激光雷达的污水管道清洁机器人导航研究. 机器人, 39(6), 820-827. [6] 樊嘉琳, 张金峰, & 岳文. (2017). 基于SLAM的污水管道清洁机器人自主导航研究. 自动化学报, 43(7), 1229-1238. [7] Wu, J., & Gupta, S. (2014). A high-efficiency cleaning robot for sewage tanks. Journal of Field Robotics, 31(2), 271-288. [8] 严晓东, & 肖章华. (2017). 基于差速驱动的污水池清扫机器人设计. 机械设计与制造, (12), 22-25. [9] 张朋, 刘伟, & 程红飞. (2019). 一种新型污水池清扫机器人的设计. 机械与电子, (2), 89-90.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值