程序的概念

程序的概念,第1张

程序(Program)告诉计算机应如何完成一个计算任务,这里的计算可以是数学运算,比如解方程,也可以是符号运算,比如查找和替换文档中的某个单词。从根本上说,计算机是由数字电路组成的运算机器,只能对数字做运算,程序之所以能做符号运算,是因为符号在计算机内部也是用数字表示的。此外,程序还可以处理声音和图像,声音和图像在计算机内部必然也是用数字表示的,这些数字经过专门的硬件设备转换成人可以听到、看到的声音和图像。

程序由一系列基本 *** 作组成,基本 *** 作有以下几类:

输入(Input)

从键盘、文件或者其他设备获取数据。

输出(Output)

把数据显示到屏幕,或者存入一个文件,或者发送到其他设备。

基本运算

最基本的数据访问和数学运算(加减乘除)。

测试和分支

测试某个条件,然后根据不同的测试结果执行不同的后续 *** 作。

循环

重复执行一系列 *** 作。

你曾用过的任何一个程序,不管它有多么复杂,都是按这几类基本 *** 作一步一步执行的。程序是那么的复杂,而编写程序可以用的基本 *** 作却只有这么简单的几种,这中间巨大的落差就要由程序员去填补了,所以编写程序理应是一件相当复杂的工作。 编写程序可以说是这样一个过程:把复杂的任务分解成子任务,把子任务再分解成更简单的任务,层层分解,直到最后简单得可以用以上几种基本 *** 作来完成。

新定义运算,是指运用某种特殊符号来表示特定的意义,从而解答某些特殊算式的一种运算。

解答新定义运算,关键是要正确地理解新定义的算式含义,然后严格按照新定义的计算程序,将数值代入,转化为常规的四则运算算式进行计算。

新运算就是用“*”“△”“@”等多种符号按照一定的关系“临时”规定的一种运算法则进行的运算。新定义的算式中有括号的,要先算括号里面的。但它在没有转化前,是不适合于各种运算定律的。我们来看一下三种形式的题目。

一、直接计算型

例题1:对于任意数a、b,定义运算“☆”,使a☆b=2a×b

求:(1)1☆2 (2)2☆1

解:(1)1☆2=2×1×2=4

(2)2☆1=2×2×1=4

【解析】这道题目中,首先没有括号,我们只要了解清楚这个式子的含义,以及a、b表示的数值。“☆”表示的是:ab乘积的两倍,其中第(1)问中1就是a,2就是b;第(2)问中,2就是a,1就是b。

例题4:如果1※3=1+2+3=6,5※4=5+6+7+8=26,那么9※5=?

解:9※5=9+10+11+12+13=55

【解析】我们可以发现,1※3表示从1开始加,连续加3个数;5※4表示从5开始加,连续加4个数。所以,9※5应该是从9开始加,连续加5个数。

例题5:“☆”表示一种新运算,使下列等式成立:2☆3=7,4☆2=10,5☆3=13,7☆10=24。按此规律计算:8☆5。

解:8☆5=8×2+5=21

二、找规律型

例题4:如果1※3=1+2+3=6,5※4=5+6+7+8=26,那么9※5=?

解:9※5=9+10+11+12+13=55

【解析】我们可以发现,1※3表示从1开始加,连续加3个数;5※4表示从5开始加,连续加4个数。所以,9※5应该是从9开始加,连续加5个数。

例题5:“☆”表示一种新运算,使下列等式成立:2☆3=7,4☆2=10,5☆3=13,7☆10=24。按此规律计算:8☆5。

解:8☆5=8×2+5=21

三、解方程型

例题6:设a⊙b=3a-2b,已知x⊙4=7,求x。

解:3x-2×4=7

3x-8=7

3x=15

x=5

【解析】带有未知数的时候,转化为方程来求解。

例题7:设a⊙b=4a-2b+ab,求x⊙1=33中的未知数x。

解:4x-2×1+x=33

5x-2=33

5x=35

x=7

解题关键:要正确理解新运算的意义,并严格按新定义的要求,将数值代入新定义的式子进行运算。

注意点:新定义的运算不一定符合交换律,结合律和分配律。

比如,a&b=2a+3b,求(1)2&3&4 (2)2&4&3

解:(1)2&3=2×2+3×3=13 13&4=2×13+3×4=38 ∴2&3&4=38

(2)2&4=2×2+3×4=16 16&3=2×16+3×3=41 ∴2&4&3=41

见代码

using System

namespace ConsolApplication1

{

    // 简单的数学运算类 SimpleMath

    public class SimpleMath

    {

        // 加

        public double Add(double a, double b)

        {

            return a + b

        }

        //

        public double Subtract(double a, double b)

        {

            return a - b

        }

        // 乘

        public double Multiply(double a, double b)

        {

            return a * b

        }

        // 除

        public double Divide(double a, double b)

        {

            return a / b

        }

        // 平方根

        public double Sqrt(double a)

        {

            return Math.Sqrt(a)

        }

        // 幂

        public double Power(double a, int n)

        {

            double r = 1

            for(int i=1 i<=ni++)

            {    

                r *= a

            }

            return r

        }

    }

    

    class Program

    {

        static void Main(string[] args)

        {

            // 实例化简单算术类SimleMath

            SimpleMath sm = new SimpleMath()

            

            double r = sm.Add(100, 200)

            Console.WriteLine(r)

            

            r = sm.Subtract(200 , 100)

            Console.WriteLine(r)

            

            r = sm.Multiply(2.0, 3.0)

            Console.WriteLine(r)

            

            r = sm.Divide(100, 5)

            Console.WriteLine(r)

            

            r = sm.Sqrt(80)

            Console.WriteLine(r)            

            r = sm.Power(10, 3)

            Console.WriteLine(r)

       }

    }

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11203734.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存