Jupyter Notebook Assign_1项目概览

需积分: 9 0 下载量 60 浏览量 更新于2024-12-13 收藏 6KB ZIP 举报
资源摘要信息: " Assign_1 是一个与 Jupyter Notebook 相关的项目或作业。Jupyter Notebook 是一个开源的 Web 应用程序,允许用户创建和共享包含实时代码、方程、可视化和叙述性文本的文档。这些文档被称为笔记本,非常适合数据清洗和转换、数值模拟、统计建模、机器学习等各种任务。 Jupyter Notebook 的界面是一个交互式环境,可以运行 Python、R、Julia 等多种编程语言的代码,尤其在数据科学和分析领域广泛应用。用户可以按照顺序执行代码单元格,并且每个单元格的输出(比如图表、文字说明和代码输出)将直接显示在笔记本中。这种交互式编程方式可以增强学习体验和促进实验性的探索。 'Assign_1' 这个标题表明这个项目或作业是某个课程或教学内容的第一个分配任务。标签 'JupyterNotebook' 则进一步确认了这个任务涉及到使用 Jupyter Notebook 工具。由于 'Assign_1-main' 是压缩文件中的一个主要文件夹或文件,我们可以合理推测这可能是存放了 Jupyter Notebook 文件的主目录。 在这个任务中,学生或用户可能需要使用 Jupyter Notebook 来完成一系列的编程练习或数据分析任务,这些任务设计来帮助用户熟悉 Jupyter Notebook 的界面、功能和一些基本的编程概念。例如,用户可能需要加载数据集、进行数据清洗、绘制图表、计算统计数据、应用机器学习算法等。 Jupyter Notebook 提供的实时代码执行和丰富的可视化展示功能使得它成为教育和科研工作中非常受欢迎的工具。通过这样的作业,初学者可以逐步建立起对编程逻辑的理解,并且能够直观地看到代码执行的结果,这对于提高学习者的积极性和理解深度非常有帮助。 由于 Jupyter Notebook 的便携性和易用性,它也常被用于远程教育和团队合作中。学生可以将完成的笔记本文件上传到云端平台,与教师和同学分享,进行代码审查和讨论。 综上所述,'Assign_1' 作为一个与 Jupyter Notebook 相关的项目或作业,不仅为学习者提供了一个接触和实践数据科学工具的机会,同时也通过具体的任务挑战促进编程技能的发展和应用能力的提升。"

#include "free_list.h" #include "assign_list.h" /** * 通过最佳适应算法进行内存分配 * @param free_list 待操作的空闲分区链表 * @param assign_list 待操作的分配分区链表 * @param size 进程请求的内存大小 * @param ret_begin 分配成功时分配的内存块的起始地址 * @param ret_end 分配成功时分配的内存块的结束地址 * @return 分配成功返回true,反之返回false */ bool BF(LinkList free_list, LinkList assign_list, int size, int *ret_begin, int *ret_end) { LNode *cur = free_list.m_head->next; /***begin 补全以下代码***/ /**end**/ } /** * 向内存中归还内存块 * @param free_list 待操作的空闲分区链表 * @param assign_list 待操作的分配分区链表 * @param begin 待归还内存块的起始地址 * @param end 待归还内存块的结束地址 * @return 归还成功返回true,否则返回false */ bool RetSpace(LinkList free_list, LinkList assign_list, int begin, int end) { /***begin 补全以下代码***/ /**end**/ } int main() { LinkList free_list; LinkList assign_list; int records[5][2]; // 累计会申请五次内存,记录这五块内存的起始地址和结束地址 /* 初始化两个链表 */ freeListInit(&free_list, 0, 512); assignListInit(&assign_list); freeListShow(free_list); assignListShow(assign_list); /* reg(300KB) */ printf("----------reg(300KB)----------\n"); BF(free_list, assign_list, 300, &records[0][0], &records[0][1]); freeListShow(free_list); assignListShow(assign_list); /* reg(100KB) */ printf("----------reg(100KB)----------\n"); BF(free_list, assign_list, 100, &records[1][0], &records[1][1]); freeListShow(free_list); assignListShow(assign_list); /* release(300KB) */ printf("----------release(300KB)----------\n"); RetSpace(free_list, assign_list, records[0][0], records[0][1]); freeListShow(free_list); assignListShow(assign_list); /* reg(150KB) */ printf("----------reg(150KB)----------\n"); BF(free_list, assign_list, 150, &records[2][0], &records[2][1]); freeListShow(free_list); assignListShow(assign_list); /* reg(50KB) */ printf("----------reg(50KB)----------\n"); BF(free_list, assign_list, 50, &records[3][0], &records[3][1]); freeListShow(free_list); assignListShow(assign_list); /* reg(90KB) */ printf("----------reg(90KB)----------\n"); BF(free_list, assign_list, 90, &records[4][0], &records[4][1]); freeListShow(free_list); assignListShow(assign_list); /* 销毁两个链表 */ listDestroy(free_list); listDestroy(assign_list); return 0; }

2023-06-10 上传

补全下述代码:#include "free_list.h" #include "assign_list.h" /** * 通过首次适应算法进行内存分配 * @param free_list 待操作的空闲分区链表 * @param assign_list 待操作的分配分区链表 * @param size 进程请求的内存大小 * @param ret_begin 分配成功时分配的内存块的起始地址 * @param ret_end 分配成功时分配的内存块的结束地址 * @return 分配成功返回true,反之返回false */ bool FF(LinkList free_list, LinkList assign_list, int size, int *ret_begin, int *ret_end) { LNode *cur = free_list.m_head->next; /***begin 补全以下代码***/ /**end**/ } /** * 向内存中归还内存块 * @param free_list 待操作的空闲分区链表 * @param assign_list 待操作的分配分区链表 * @param begin 待归还内存块的起始地址 * @param end 待归还内存块的结束地址 * @return 归还成功返回true,否则返回false */ bool RetSpace(LinkList free_list, LinkList assign_list, int begin, int end) { /***begin 补全以下代码***/ /**end**/ } int main() { LinkList free_list; LinkList assign_list; int records[5][2]; // 累计会申请五次内存,记录这五块内存的起始地址和结束地址 /* 初始化两个链表 */ freeListInit(&free_list, 0, 512); assignListInit(&assign_list); freeListShow(free_list); assignListShow(assign_list); /* reg(300KB) */ printf("----------reg(300KB)----------\n"); FF(free_list, assign_list, 300, &records[0][0], &records[0][1]); freeListShow(free_list); assignListShow(assign_list); /* reg(100KB) */ printf("----------reg(100KB)----------\n"); FF(free_list, assign_list, 100, &records[1][0], &records[1][1]); freeListShow(free_list); assignListShow(assign_list); /* release(300KB) */ printf("----------release(300KB)----------\n"); RetSpace(free_list, assign_list, records[0][0], records[0][1]); freeListShow(free_list); assignListShow(assign_list); /* reg(150KB) */ printf("----------reg(150KB)----------\n"); FF(free_list, assign_list, 150, &records[2][0], &records[2][1]); freeListShow(free_list); assignListShow(assign_list); /* reg(50KB) */ printf("----------reg(50KB)----------\n"); FF(free_list, assign_list, 50, &records[3][0], &records[3][1]); freeListShow(free_list); assignListShow(assign_list); /* reg(90KB) */ printf("----------reg(90KB)----------\n"); FF(free_list, assign_list, 90, &records[4][0], &records[4][1]); freeListShow(free_list); assignListShow(assign_list); /* 销毁两个链表 */ listDestroy(free_list); listDestroy(assign_list); return 0; }

2023-06-09 上传