算法大整数的四则运算教学文案
- 格式:doc
- 大小:156.50 KB
- 文档页数:25
《整数四则混合运算》教案《整数四则混合运算》教案一、教学目标1.理解整数四则混合运算的规则,掌握运算的顺序。
2.能够正确进行整数四则混合运算。
3.培养学生良好的学习习惯和独立思考问题的能力。
二、教学内容及重难点1.教学内容:整数四则混合运算的规则,包括加法、减法、乘法、除法的运算顺序,以及如何进行混合运算。
2.教学重点:掌握整数四则混合运算的规则,正确进行运算。
3.教学难点:理解运算顺序,正确处理运算中的优先级和括号的使用。
三、教学步骤1.导入:通过简单的加减乘除问题,引导学生回忆旧知识,为新知识的学习做准备。
2.新课学习:a. 介绍加法、减法、乘法、除法的运算规则。
b. 通过实例演示,让学生观察、讨论,理解运算顺序。
c. 引入括号的概念,让学生了解括号的使用方法和作用。
d. 通过大量实例,让学生逐步掌握整数四则混合运算的方法。
3.巩固练习:设计不同难度的题目,让学生进行练习,巩固所学知识。
4.归纳总结:通过学生的自我总结和教师的引导,回顾所学知识,强调重点和难点。
5.布置作业:根据学生的学习情况,布置适量、有代表性的题目,以便学生课后复习和巩固。
四、教学评价与反馈1.设计评价策略:通过课堂提问、小组讨论、作业批改等方式,了解学生的学习情况,及时调整教学策略。
2.为学生提供反馈:在每个环节结束后,给予学生及时的反馈,指出优点和不足,帮助学生更好地学习和进步。
五、教学反思与改进1.对本节课进行反思:总结本节课的优点和不足,为今后的教学提供参考。
2.针对不足进行改进:根据反思中发现的问题,制定相应的改进措施,提高教学质量。
四则运算教案范文一、教学目标:1. 知识与技能:(1)理解加法、减法、乘法、除法的概念及运算规律。
(2)掌握四则运算的计算方法,能够熟练地进行计算。
(3)能够运用四则运算解决实际问题。
2. 过程与方法:(1)通过观察、操作、探究,培养学生的逻辑思维能力和解决问题的能力。
(2)学会运用运算定律进行简便计算。
3. 情感态度与价值观:(1)培养学生对数学的兴趣,激发学习热情。
(2)培养学生的团队合作精神,学会交流与分享。
二、教学内容:1. 加法运算:(1)理解加法的概念,掌握加法的计算方法。
(2)学会运用加法解决实际问题。
2. 减法运算:(1)理解减法的概念,掌握减法的计算方法。
(2)学会运用减法解决实际问题。
3. 乘法运算:(1)理解乘法的概念,掌握乘法的计算方法。
(2)学会运用乘法解决实际问题。
4. 除法运算:(1)理解除法的概念,掌握除法的计算方法。
(2)学会运用除法解决实际问题。
三、教学重点与难点:1. 教学重点:(1)掌握四则运算的计算方法。
(2)能够运用四则运算解决实际问题。
2. 教学难点:(1)运算定律的应用。
(2)解决复杂的四则运算问题。
四、教学方法与手段:1. 教学方法:(1)采用情境教学法,激发学生学习兴趣。
(2)运用探究式教学法,培养学生的自主学习能力。
(3)采用合作学习法,培养学生的团队合作精神。
2. 教学手段:(1)利用多媒体课件,直观展示四则运算的过程。
(2)运用实物操作,让学生感受四则运算的实际意义。
五、教学过程:1. 导入新课:(1)通过生活中的实例,引导学生认识四则运算。
(2)讲解四则运算的定义和计算方法。
2. 自主学习:(1)让学生自主探究加法、减法、乘法、除法的计算方法。
(2)引导学生发现运算定律,并进行验证。
3. 课堂讲解:(1)讲解四则运算的计算方法。
(2)运用实例,讲解如何运用四则运算解决实际问题。
4. 课堂练习:(1)设计不同难度的练习题,让学生进行巩固练习。
初中一年级数学教案:整数运算——四则混合运算整数运算——四则混合运算一、引言数学是一门基础学科,对学生的思维能力和逻辑思维的培养至关重要。
而在初中一年级的数学教学中,整数运算作为基础知识点之一,是培养学生基本运算能力的关键。
其中,四则混合运算是初中数学教学中的一个重要主题,它要求学生掌握正负整数相加、相减、相乘、相除的运算方法与规律。
本教案将以“整数运算——四则混合运算”为任务名称,针对这一内容展开详细讲解。
二、知识梳理1. 整数的表示法整数分为正整数与负整数,零既不是正整数也不是负整数。
正整数用“+”表示,如:+3 表示正三;负整数用“-”表示,如:-5 表示负五。
2. 整数的四则混合运算四则混合运算包括加法、减法、乘法和除法。
加法:两个同号整数相加可以保持符号不变;两个异号整数相加时结果取两者中绝对值较大的符号。
减法:减去一个整数相当于加上这个整数的相反数,即 a - b = a + (-b)。
乘法:两个同号整数相乘结果为正;两个异号整数相乘结果为负。
除法:除以正整数时,同号得正、异号得负;除以负整数时,同号得负、异号得正。
3. 解题方法(1) 对多项式依次进行运算;(2) 先算括号里的,再算乘除,最后算加减。
三、教学过程1. 导入与复习向学生提问:“请你们回顾一下什么是整数?”让学生自由发言,然后教师点评并纠正错误答案。
接着询问:“你们知道四则混合运算吗?”鼓励学生积极参与回答,从而引出下一步的教学内容。
2. 引入新知讲解正负号及其表示方法,并通过实际例子让学生理解正负号在整数中的应用。
引导学生思考在不同情况下两个整数之间的运算规律。
通过具体的计算实例来帮助学生掌握整数的四则混合运算规则。
3. 整合知识针对加法、减法、乘法和除法,展开具体的教学示范与解释。
通过多个实例进行深入讲解,帮助学生理解运算规则与方法。
同时,通过解决一系列问题来巩固学生对所学知识的掌握。
4. 提供练习机会给予学生足够的时间来完成一些练习题,并鼓励他们彼此之间互相交流与讨论。
中北大学课程设计阐明书学院、系:软件学院专业:软件工程学号:学生姓名:宋雨琪设计题目:大整数旳四则运算起迄日期: 10月11日~11月16日****:***日期: 11月16日1 设计目旳本课程设计是采用C语言, 在VC平台下实现大整数旳四则运算, 该系统运行在MS-DOS 命令行模式下。
本课程设计为学生提供了一种既动手又动脑, 独立实践旳机会, 将书本上旳理论知识和实际有机旳结合起来, 锻炼学生旳分析处理实际问题旳能力。
提高学生适应实际, 实践编程旳能力。
1)深入巩固和复习C程序设计旳基础知识;2)培养学生构造化程序、模块化程序设计旳措施和能力;3)理解软件旳编制过程及各环节旳详细内容;4)提高学生程序调试技巧、软件设计能力和代码规范化等素质;提高学生分析问题、处理问题以及实际运用能力。
2 任务概述完毕大整数旳四则运算任务, 假定整数不超过五十位规定:1) 在屏幕上可以手动输入待求旳两个大整数;2) 输入完毕后通过选择可以完毕大整数旳加、减、乘、除运算;3)将成果分别显示在屏幕上。
4) 验收时程序可以演示, 自己单独做。
3 模块划分1) 定义c_to_d(char str[N], char d[N])函数, 实现把str旳各位转变成对应整数, 右对齐存入d, start为最高位下标2)定义d_to_c(char d[N], char str[N], int start)函数, 实现把d中数字d[start...N-1]转变为字符左对齐存入str3)定义加法函数4)定义减法函数5)定义乘法函数6)定义除法函数7)定义输出格式函数8)运用主函数计算4 重要函数阐明及其N-S图1)主函数阐明①定义变量②输入要进行运算代码数字③输入数字④调用函数进行运算2)其他函数阐明①min函数, 比较两数大小②c_to_d(char str[N], char d[N])函数, 实现把str旳各位转变成对应整数, 右对齐存入d, start为最高位下标③d_to_c(char d[N], char str[N], int start)函数, 实现把d中数字d[start...N-1]转变为字符左对齐存入str④add(char str_a[N], char str_b[N], char str_c[N]), 加法函数⑤sub(char str_a[N], char str_b[N], char str_c[N]), 减法函数⑥compare(char str1[N], char str2[N]) , 实现str1,str2内存旳是要进行比较旳大整数⑦mul(char str_a[N], char str_b[N], char str_c[N]), 乘法函数⑧divd(char str_a[N], char str_b[N], char str_c[N]), 除法函数重要函数旳N-S图:图1: 函数c_to_d(char str[N],char d[N]) N-S图图2: 函数d_to_c(char d[N],char str[N],int start) N-S图图3: 加法运算函数add()旳N-S图图4: 减法运算函数sub()旳N-S图图5: 比较函数compare()旳N-S图图6: 乘法运算函数旳N-S图图7: 除法运算函数旳N-S图图8: 运行四则运算旳主函数旳N-S 图5 程序运行数据及其成果1) 测试加法输入1再输入和7for(i=1; ;i++)调用输出格式函数welcome()输入一种数x判断x 与否等于0T F 定义变量x,i, str_a[N],str_b[N],str_c[N];输出(“程序结束,欢迎 您旳使用!”)并结束程序while(x>4||x<0) 输出("输入错误,请重新输入) 再次输入一种数字 输出(”请输入需要旳两个数”) 输入一种数再输入一种数switch()case 1:运行加case 2:运行case 3:运行case 4:运行输出成果图一加法运算成果2)测试减法输入2再输入和图二减法运算成果3)测试乘法输入3再输入和23452435图三乘法运算成果4)测试除法输入4再输入和图四除法运算成果5)退出输入0图五退出程序6 课程设计心得这次我旳课程设计是大整数旳四则运算, 由于平常使用旳32位操作系统上, 整形数旳长度是32位, 即四个字节, 对于一般旳应用, 这个长度旳整数已经足够。
四则运算的教案一、教学目标1. 理解四则运算的概念和运算规则。
2. 能够根据给定的算式进行加减乘除运算。
3. 能够灵活运用四则运算解决实际问题。
二、教学重点1. 掌握四则运算的运算规则。
2. 能够准确进行加减乘除运算。
三、教学难点1. 灵活运用四则运算解决实际问题。
2. 辨析运算符优先级。
四、教学过程(一)导入1. 教师出示一个数学题目:“2 + 3 - 4 x 5 ÷ 2 = ?”,要求学生思考并计算出答案。
(二)讲解与练习1. 通过导入的题目,引出四则运算的概念和运算规则,阐述加减乘除四个运算符的运算顺序。
2. 通过多个例子,分别进行加法、减法、乘法和除法的运算练习,解释每个运算的规则和注意事项。
3. 练习板书设计:2 + 3 = 5,3 - 2 = 1,2 x 3 = 6,4 ÷ 2 = 2。
(注意避免和标题相同的文字)4. 学生进行小组练习,相互出题并互相检查计算结果的正确性。
(三)拓展与应用1. 教师提供一些实际生活场景中的问题,要求学生灵活运用四则运算解决这些问题。
2. 学生以小组合作的形式进行讨论,共同解决问题。
(四)总结与评价1. 教师对四则运算的运算规则进行总结,帮助学生记忆和理解。
2. 学生以小组为单位,进行四则运算的回顾测试,检验掌握程度。
五、作业布置1. 完成课堂上的练习题。
2. 准备下节课的学习内容。
六、教学反思本节课通过导入问题的方式引出四则运算,有助于激发学生的思维和兴趣。
在讲解和练习环节,使用了板书设计、小组练习等多种形式,增加了课堂互动和合作的氛围。
通过拓展与应用,让学生将四则运算运用到实际问题中,提高了学生对知识的应用能力和解决问题的能力。
整体教学过程生动有趣,学生参与度高,达到了预期的教学目标。
四则运算教案(通用13篇)四则运算教案篇1教学目标1让同学学会计算小数连乘、乘加、乘减类型运算挨次2让同学熟悉到小数的四则运算挨次和整数一样3让同学通过整数四则运算到小数四则运算的学习,培育其学问的迁移学习、应用力量重难点连乘、乘加、乘减题型中小数四则运算挨次教学用具电子幻灯PPT教学过程教学方法和手段引入我们已经学过了整数的四则运算,也就是关于整数的加、减、乘、除,下面大家推断屏幕上每一小题的运算挨次(板书)(1)连乘:103×8×9从左往右的依次计算(2)乘加:103+8×9先算乘法,再算加法(3)乘减:103-8×9先算乘法,再算减法通过复习整数的四则运算挨次概念分析同整数相同,连乘根据从左往右挨次依次计算;乘加,先算乘法,再算加法;乘减,先算乘法,再算减法例题讲解一、新授出示P11页“铺瓷砖”,让同学齐读题目,了解题意(a)问题是什么?100块够吗?实际上是问→100块够铺这么大的面积吗?(b)计算面积(c)面积公式(板书)二、同学列式计算(1)提示:先算一块瓷砖面积,再算100块瓷砖面积连乘:0.9×0.9×100(2)110块够吗?A0.9×0.9×110,再和85平方米比较B0.81×10+81乘加课堂练习P11做一做P14第7题做一做【乘加】【乘减】72×0.81+10.47.06×2.4-5.7=58.32+10.4=58.32+10.4=68.72=606.528小结与作业课堂小结(1)连乘:从左往右的依次计算(2)乘加:先算乘法,再算加法(3)乘减:先算乘法,再算减法本课作业一课3练课后追记四则运算教案篇2教学内容:P58、59教学目标:1、能用综合算式解答两步计算题。
2、依据文字计算题,选择正确的算式。
3、结合树状算图,用逆推的思想探究文字计算题的结构。
4、运用树状算图,培育同学有条理地思索问题。
四则运算的教案范文一、教学目标1. 知识与技能:(1)理解加法、减法、乘法、除法的概念及运算方法。
(2)能够进行简单的四则运算。
(3)掌握四则运算的运算顺序和运算法则。
2. 过程与方法:(1)通过实例演示和练习,培养学生的运算能力。
(2)利用直观教具和数学游戏,激发学生的学习兴趣。
(3)引导学生运用归纳总结的方法,掌握四则运算的规律。
3. 情感态度与价值观:(1)培养学生认真、细致的运算习惯。
(2)培养学生合作交流、解决问题的能力。
(3)培养学生对数学的热爱和自信心。
二、教学内容1. 加法运算:(1)介绍加法的基本概念和运算方法。
(2)通过实际操作和例题,讲解加法的运算规则。
(3)进行加法练习,巩固学生对加法的理解。
2. 减法运算:(1)介绍减法的基本概念和运算方法。
(2)通过实际操作和例题,讲解减法的运算规则。
(3)进行减法练习,巩固学生对减法的理解。
3. 乘法运算:(1)介绍乘法的基本概念和运算方法。
(2)通过实际操作和例题,讲解乘法的运算规则。
(3)进行乘法练习,巩固学生对乘法的理解。
4. 除法运算:(1)介绍除法的基本概念和运算方法。
(2)通过实际操作和例题,讲解除法的运算规则。
(3)进行除法练习,巩固学生对除法的理解。
5. 四则运算顺序和运算法则:(1)介绍四则运算的顺序和运算法则。
(2)通过实际操作和例题,讲解四则运算的顺序和运算法则。
(3)进行四则运算练习,巩固学生对四则运算顺序和运算法则的理解。
三、教学方法1. 情境教学法:通过生活实例和数学游戏,激发学生的学习兴趣,引导学生理解四则运算的概念和规则。
2. 直观教学法:利用直观教具和数学工具,帮助学生形象地理解四则运算的过程和方法。
3. 练习法:通过大量的练习题,巩固学生对四则运算的理解和运用能力。
4. 小组合作学习:引导学生进行小组讨论和合作交流,培养学生的团队合作意识和解决问题的能力。
四、教学评价1. 课堂表现:观察学生在课堂上的参与程度、提问回答情况,了解学生的学习状态。
运算教案四则运算教案(精选5篇)作为一名无私奉献的老师,常常需要准备教案,编写教案助于积累教学经验,不断提高教学质量。
那么应当如何写教案呢?以下是小编帮大家整理的四则运算教案(精选5篇),欢迎阅读,希望大家能够喜欢。
运算教案1学情分析:第一课时:教学目标:1、从实例中归纳加减法的意义和关系,初步理解加法与减法的意义以及它们之间的互逆关系。
2、初步学会利用加减法算式中各部分之间的关系求解加减法算式中的未知数。
3、培养学生发现数学知识和运用数学知识解决问题的能力。
教学重、难点:教学重点:理解加、减法的意义和利用加减法的关系求加减法中的未知量。
教学难点:从实例中探究加、减法的互逆关系。
教学准备:课件教学过程一、理解加、减法的意义1、理解加法的意义。
出示例1(1)一列火车从西宁经过格尔木开往拉萨。
西宁到格尔木的'铁路长814 km,格尔木到拉萨的铁路长1142 km。
西宁到拉萨的铁路长多少千米?(1)问:根据这道题你收集到了哪些信息?(让学生尝试用线段图表示)(2)请学生根据线段图写出加法算式。
814+1142=1956 或 1142+814=1956师:为什么用加法呢?那怎样的运算叫做加法?(小组讨论)(根据这两个算式,结合已有的知识讨论并试着用语言表示什么是加法。
)(3)小结:把两个数合并成一个数的运算,叫做加法。
(出示加法的意义)(4)说明加法各部分名称。
2、理解减法的意义能不能试着把这道加法应用题改编成减法应用题呢?>(1)根据学生的回答,出示例1(2)(3)尝试用线段图表示:师:根据线段图写出两道减法算式,并说说这样列式的理由。
1956-814=1142 或 1956-1142=814(2)问:怎样的运算是减法?(小组讨论)(根据这两个算式,结合已有的知识讨论并试着用语言表示)(3)小结:已知两个加数的和与其中的一个加数,求另一个加数的运算,叫做减法。
(出示)说明减法各部分名称。
四则运算教案范文最新6篇(实用版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的实用资料,如工作总结、工作报告、工作计划、心得体会、讲话致辞、教育教学、书信文档、述职报告、作文大全、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor.I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of practical materials for everyone, such as work summaries, work reports, work plans, reflections, speeches, education and teaching, letter documents, job reports, essay summaries, and other materials. If you want to learn about different data formats and writing methods, please stay tuned!四则运算教案范文最新6篇教案简单的说就是教师为了提高自己的教学质量所提前写好的书面文体,写教案的主要目的就是为了提高我们的课堂教学质量。
四则运算教学设计(精选5篇)四则运算教学设计(精选5篇)作为一位杰出的教职工,通常会被要求编写教学设计,教学设计把教学各要素看成一个系统,分析教学问题和需求,确立解决的程序纲要,使教学效果最优化。
教学设计应该怎么写才好呢?下面是小编精心整理的四则运算教学设计(精选5篇),欢迎大家借鉴与参考,希望对大家有所帮助。
运算教学设计1一、教材简析:人教版实验教材根据《标准》的理念与目标要求能结合现实素材理解运算顺序,并进行简单的整数四则混合运算(以两步为主,不超过三步)(《标准》P21),采取的是与解决问题相结合的编排方式。
在此之前,学生已经学会按从左往左的顺序计算两步式题,并且知道小括号的作用,这里主要教学含有两级运算的运算顺序(特别值得注意的是象24-82这样乘除在后的类型是第一次出现),并对此前学习过的四则混合运算进行较为系统的梳理、概括和总结。
本单元的主要内容可分为两块:1.与解决问题相结合,整理四则混合运算的顺序2. 有关0的运算。
本单元是从解决问题的角度教学整理四则混合运算的顺序,其中的问题是需要两、三步计算解决的问题。
教材创设了热闹的滑雪场情境,由此生出一系列的情境串,引出相应的4个例题。
每个例题都呈现了学生交流不同的解题思路,以及整理混合运算的画面,以鼓励学生在已有的知识基础上,积极思考、归纳,主动解决问题。
二、教学目标:1.进一步掌握含有两级运算的运算顺序,正确计算三步式题;2.让学生在经历探索和交流解决实际问题的过程中,感受解决问题的一些策略和方法,学会用两、三步计算解决一些实际问题;3.小学数学四年级下册《四则运算》教学计划:使学生在解决实际问题的过程中,养成认真审题、独立思考等学习习惯。
三、教学重点、难点:1、教学重点:引导学生发现并总结出有括号的算式要先算括号里的运算顺序。
借助括号的加入体会解决问题途径的多样性。
2、教学难点:会用括号列综合算式。
四、单元教学措施:1、充分利用教学中的情境图,以及教参给学生呈现出生动有趣的教学内容。
算法大整数的四则运算姓名:胡双兴学号:090610213 班级:090413一:实验题目:大整数加法1问题分析:处理多位整数的加法,这些整数无法在计算机硬件允许的范围内表示和处理。
2:数学模型输入时以字符串的形式表示大整数。
采用数组存放大整数,每位数组存放6位。
Num1[],num2[]存放两个加数。
Hen[]存放和,jin表示进位。
则hen[i]=num1[i]+num2[i]+jin,此时的jin表示的是来自低位的进位。
若hen[i]超过1000000,则hen[i]修正为hen[i]-1000000,且jin=1。
.3:算法策略的选择采用蛮力算法5:算法时间复杂度与空间复杂度(推导过程)6:程序实现(注释)void CBigCountDlg::ChangeToInt(){ //将字符串存储的大整数转化为整形数组存储每位数组存储6位UpdateData();int len_op1,len_op2;//存放两个字符串长度且len_op1存放较长字符串的长度len_op1=m_operate1.GetLength();len_op2=m_operate2.GetLength();if(len_op1<len_op2)//若m_operate1长度小于m_operate2长度交换两字符串{CString temp;temp=m_operate1;m_operate1=m_operate2;m_operate2=temp;int hu;hu=len_op1;len_op1=len_op2;len_op2=hu;}m1=len_op1/6; //m1是m_operate1所用数组的长度if(len_op1%6!=0)m1++;m2=len_op2/6; //m2是m_operate2所用数组的长度if(len_op2%6!=0)m2++;int t1=0;for(int i=len_op1-1;i>0;i=i-6){ //数组的每个元素存放6个字符串if(i>5) //num1中存放较长的字符串m_operate1{num1[t1]=atoi(m_operate1.Mid(i-5,6));t1++;}elsebreak;}if(t1!=m1)num1[t1]=atoi(m_operate1.Mid(0,i+1));int t2=0;for(int j=len_op2-1;j>0;j=j-6){ //num2存放字符串m_operate2if(j>5){num2[t2]=atoi(m_operate2.Mid(j-5,6));t2++;}elsebreak;}if(t2!=m2)num2[t2]=atoi(m_operate2.Mid(0,j+1));}void CBigCountDlg::OnButtonAdd(){int jin,i,j; //jin存储进位CString aa,bb; //存放输出的值aa=bb="";jin=0;for( i=0;i<100;i++){ //初始化num1[i]=num2[i]=hen[i]=0;}ChangeToInt(); //将字符型大整数转化为整数数组存储for(j=0;j<m1;j++){ //从低位开始相加每位都当成有进位处理hen[j]=num1[j]+num2[j]+jin-1000000;if(hen[j]>=0) //有进位jin=1;else //没有进位修正hen[j]的值{hen[j]=num1[j]+num2[j]+jin;jin=0;} }if(jin==1) //处理最高位的进位hen[j]=1;elsej--;//输出结果aa.Format("%d",hen[j]);for(int l=j-1;l>=0;l--){if(hen[l]<10){bb.Format("%d",hen[l]);bb="00000"+bb;}else if(hen[l]<100){bb.Format("%d",hen[l]);bb="0000"+bb;}else if(hen[l]<1000){bb.Format("%d",hen[l]);bb="000"+bb;}else if(hen[l]<10000){bb.Format("%d",hen[l]);bb="00"+bb;}else if(hen[l]<100000){bb.Format("%d",hen[l]);bb="0"+bb;}else{ bb.Format("%d",hen[l]);}aa+=bb;}MessageBox(aa);}7:使用方法,如如何启动程序,关闭程序,对输入输出要求可输入两个非负的大整数进行运算。
8:测试数据数据及结果说明(正确数据以及非正确数据)正确数据:错误数据:说明:没有在输入大整数时判断正负。
9:总结(如调试过程中遇到的问题算法策略;算法的方法)输出时按照,存放和的数组hen[],由高位到低位输出,数组中除最高位的一位并没有达到6位时如123应该输出000123而不是123.。
解决方法判断大小在数前加0。
二:实验题目大整数减法1:问题分析处理多位整数的减法,这些整数无法在计算机硬件允许的范围内表示和处理。
2:数学模型输入时以字符串的形式表示大整数。
采用数组存放大整数,每位数组存放6位。
将输入的两个大整数处理为位数较多的一个减去位数较少的一个,若被减数比减数位数少结果前面加“-”。
Num1[],num2[]存放被减数和减数。
cha[]存放差,jie表示借位。
则cha[i]=num1[i]-num2[i]-jie;jie为低位是否向此位借位。
若 cha[i]<0则修正为cha[i]+=1000000;且jie=1。
3:算法策略的选择:采用蛮力法。
4:程序流程图5:算法时间复杂度与空间复杂度(推导过程)6:程序实现(注释)void CBigCountDlg::OnButtonCut(){ //实现两个大整数的减法for(int q=0;q<100;q++)num1[q]=num2[q]=cha[q]=0;UpdateData();bool comp=0; //若comp为0则m_operate1大于或等于m_oprate2若为1则相反int len_op1,len_op2;len_op1=m_operate1.GetLength();len_op2=m_operate2.GetLength();if(len_op2>len_op1)comp=1;ChangeToInt();int jie=0;for(int i=0;i<m1;i++){cha[i]=num1[i]-num2[i]-jie;if(cha[i]<0&&(i!=m1-1)){jie=1;cha[i]+=1000000;}elsejie=0;}int begin=0; //从高位到低位找到cha[]中第一位部位0的下标几位begin for(int p=99;p>=0;p--){if(cha[p]!=0){begin=p;break;}}CString aa,bb;aa.Format("%d",cha[begin]);for(int l=begin-1;l>=0;l--){if(cha[l]<10){bb.Format("%d",cha[l]);bb="00000"+bb;}else if(cha[l]<100){bb.Format("%d",cha[l]);bb="0000"+bb;}else if(cha[l]<1000){bb.Format("%d",cha[l]);bb="000"+bb;}else if(cha[l]<10000){bb.Format("%d",cha[l]);bb="00"+bb;}else if(cha[l]<100000){bb.Format("%d",cha[l]);bb="0"+bb;}else{bb.Format("%d",cha[l]);}aa+=bb;}if(comp){aa="-"+aa;}MessageBox(aa);}7:使用方法,如如何启动程序,关闭程序,对输入输出要求输入两个非负数的大整数的减法。
8:测试数据数据及结果说明(正确数据以及非正确数据)正确数据:错误数据:说明:未考虑负数大整数相减的情况。
9:总结(如调试过程中遇到的问题算法策略;算法的方法)相减的结果课能为0,但结果是存在数组中的,判断是否为0应从最高为一次检验数组中的每一位。
三:实验题目大数乘法1:问题分析处理多位整数的加法,这些整数无法在计算机硬件允许的范围内表示和处理。
考虑,大整数与正常较小的数相乘,和两个大整数相乘。
2:数学模型输入时以字符串的形式表示大整数。
采用长整形数组存放大整数,每位数组存放4位。
Num1[],num2[]存放两个加数。
ji[]存放积。
Num2[]数组中的元素依次从低位到高位(相应大整数的低位到高位)当成正常整数与数组num1[]的每一位相乘。
jin 表示进位。
结果存放在buffer[]数组中。
将buffer[]中的元素乘以相应的权值赋值给ji[]数组。
3:算法策略的选择采用蛮力法4:程序流程图5:算法时间复杂度与空间复杂度(推导过程)6:程序实现(注释)void CBigCountDlg::ChangeToInt4(){ //将字符串表示的长整数转化为长整形数组表示,每位数组存放4位。
UpdateData();int len_op1,len_op2;//len_op1=m_operate1.GetLength();len_op2=m_operate2.GetLength();if(len_op1<len_op2){CString temp;temp=m_operate1;m_operate1=m_operate2;m_operate2=temp;int hu;hu=len_op1;len_op1=len_op2;len_op2=hu;}m1=len_op1/4;if(len_op1%4!=0)m1++;m2=len_op2/4;if(len_op2%4!=0)m2++;int t1=0;for(int i=len_op1-1;i>0;i=i-4){if(i>3){num1[t1]=atoi(m_operate1.Mid(i-3,4));t1++; }else break;}if(t1!=m1)num1[t1]=atoi(m_operate1.Mid(0,i+1));int t2=0;for(int j=len_op2-1;j>0;j=j-4){if(j>3){ num2[t2]=atoi(m_operate2.Mid(j-3,4));t2++; }else break;}if(t2!=m2)num2[t2]=atoi(m_operate2.Mid(0,j+1));}void CBigCountDlg::OnButtonMulti(){for(int i=0;i<100;i++) //初始化num1[i]=num2[i]=ji[i]=buffer[i]=0;ChangeToInt4(); //将字符串表示的大整数存入长整形数组for(int t1=0;t1<m2;t1++) //num2[t1]作为一个非大整数与数组num1[]表示的长整数相乘SingleMul(num1,num2[t1],t1);int begin;CString aa,bb;for(int j=99;j>=0;j--){if(ji[j]!=0){ begin=j; break; }}aa=bb="";aa.Format("%d",ji[begin]);for(int l=begin-1;l>=0;l--){if(ji[l]<10){ bb.Format("%d",ji[l]); bb="000"+bb;}else if(ji[l]<100){ bb.Format("%d",ji[l]); bb="00"+bb; }else if(ji[l]<1000){ bb.Format("%d",ji[l]); bb="0"+bb; }else { bb.Format("%d",ji[l]); aa+=bb;}}MessageBox(aa);}7:使用方法,如如何启动程序,关闭程序,对输入输出要求输入两个非负的的大整数的乘法8:测试数据数据及结果说明(正确数据以及非正确数据)正确数据:错误数据:说明:未考虑负数参与乘法运算的情况。