diff options
author | Prashant S | 2020-04-14 10:25:32 +0530 |
---|---|---|
committer | GitHub | 2020-04-14 10:25:32 +0530 |
commit | 06b09e7d29d252fb2f5a056eeb8bd1264ff6a333 (patch) | |
tree | 2b1df110e24ff0174830d7f825f43ff1c134d1af /Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb | |
parent | abb52650288b08a680335531742a7126ad0fb846 (diff) | |
parent | 476705d693c7122d34f9b049fa79b935405c9b49 (diff) | |
download | all-scilab-tbc-books-ipynb-master.tar.gz all-scilab-tbc-books-ipynb-master.tar.bz2 all-scilab-tbc-books-ipynb-master.zip |
Initial commit
Diffstat (limited to 'Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb')
-rw-r--r-- | Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb | 355 |
1 files changed, 355 insertions, 0 deletions
diff --git a/Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb b/Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb new file mode 100644 index 0000000..4d270b6 --- /dev/null +++ b/Data_Structures_Using_C_And_C_by_Y_Langsam/3-Recursion.ipynb @@ -0,0 +1,355 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 3: Recursion" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.1: Multiplication_of_2_numbers.sci" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Multiplication of 2 numbers\n", +"funcprot(0)\n", +"function[val]=mul(a,b)\n", +" if(b==1)\n", +" val=a;\n", +" else\n", +" val=a+mul(a,b-1);\n", +" end\n", +"endfunction\n", +"//Calling Routine:\n", +"a=4;\n", +"b=3;\n", +"val=mul(4,3)\n", +"printf('Product of %d and %d is %d',a,b,val);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.2: Factorial_of_a_number.sci" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Function To Caluculate factorial of a given number\n", +"function[value]=fact(a)\n", +" value=-1;\n", +" if(a<0|a>170)\n", +" disp('Invalid valu.');\n", +" break;\n", +" else\n", +" if(a==1|a==0)\n", +" value=1;\n", +" else\n", +" value=a*fact(a-1);\n", +" end\n", +" end\n", +"endfunction\n", +"//Calling Routine:\n", +"a=5;\n", +"val=fact(a);\n", +"printf('%d factorial is %d',a,val);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.3: Fibbonacci_series.sci" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"function[fib]=fibbo(n)\n", +" fib=-1;\n", +" if(n<0)\n", +" disp('Invalid Entry');\n", +" else\n", +" if(n<=1)\n", +" fib=n;\n", +" else\n", +" fib=fibbo(n-1)+fibbo(n-2);\n", +" end\n", +" end\n", +"endfunction\n", +"\n", +"function[l]=fibbon(n)\n", +" x=0;\n", +" l=(fibbo(0));\n", +" for x=1:n-1\n", +" l=[l(:,:),fibbo(x)];\n", +" end\n", +" disp(l);\n", +"endfunction\n", +"//Calling Routine:\n", +"n=5;\n", +"l=fibbon(n)" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.4: Binary_Search.sci" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"function[b]=bsear(a,l,u,n)\n", +" if(l>u)\n", +" b=-1;\n", +" else\n", +" mid=int32((l+u)/2);\n", +" if(n==a(mid))\n", +" b=n;\n", +" else\n", +" if(n>a(mid))\n", +" mid=int32((l+u)/2);\n", +" b=bsear(a,mid+1,u,n);\n", +" else\n", +" mid=int32((l+u)/2);\n", +" b=bsear(a,l,mid-1,n);\n", +" end\n", +" end\n", +" end\n", +"endfunction\n", +"\n", +"function[b]=bsearc(a,l,u,n)\n", +" b=bsear(a,l,u,n);\n", +" if(b==-1)\n", +" disp('The element is not there');\n", +" end\n", +" if(b==n)\n", +" disp('The element is there');\n", +" end\n", +"endfunction\n", +"//Calling Routine:\n", +"a=[12 122 3233 12121]//Must be sorted:\n", +"b=bsearc(a,1,4,12)" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.5: Tower_Of_Hanoi.sci" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"function[]=towe(n,from,to,aux)\n", +" if(n==1);\n", +" disp(to,'to ',from,'Move peg 1 from');\n", +" else\n", +" towe(n-1,from,aux,to);\n", +" disp(to,'to',from,'from',n,'Move Peg');\n", +" towe(n-1,aux,to,from);\n", +" end\n", +"endfunction\n", +"\n", +"function[]=tower(from,to,aux)\n", +" n=input('Enter n');\n", +" towe(n,from,to,aux);\n", +"endfunction\n", +"//Calling Routine:\n", +"n=3//Number of disks\n", +"towe(n,'a','b','c')" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.6: Prefix_To_Postfix_Conversion.sci" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"funcprot(0)\n", +"function[y]=find1(g)\n", +" length1=strlen(g);\n", +" if(length1==0)\n", +" y=0;\n", +" else\n", +" if(isalphanum(g(1)))\n", +" y=1;\n", +" else\n", +" if(length1<2)\n", +" y=0;\n", +" else\n", +" s=strsplit(g,1);\n", +" s=s(2);\n", +" m=find1(s);\n", +" if(m==0|length1==m)\n", +" y=0;\n", +" else\n", +" e=strsplit(g,m+1);\n", +" e=e(2);\n", +" n=find1(e);\n", +" if(n==0)\n", +" y=0;\n", +" else\n", +" y=m+n+1;\n", +" end\n", +" end\n", +" end\n", +" end\n", +" end\n", +" endfunction\n", +" function[l]=strlen(x)\n", +" i=1;\n", +" l=0;\n", +" [j,k]=size(x)\n", +" for i=1:k\n", +" l=l+length(x(i));\n", +" end\n", +"endfunction\n", +"function[po]=pr2po(pr)\n", +" length1=strlen(pr);\n", +" if(length1==1)\n", +" if(isalphanum(pr))\n", +" po(1)=pr(1);\n", +" else\n", +" disp('Invalid string\n');\n", +" end\n", +" else\n", +" s=strsplit(pr,1);\n", +" g=s(2);\n", +" m=find1(g);\n", +" s=strsplit(pr,m+1);\n", +" g1=s(2);\n", +" n=find1(g1);\n", +" f=strsplit(pr,1);\n", +" c=f(1);\n", +" if((c~='+'&c~='-'&c~='/'&c~='*')|m==0|n==0|m+n+1~=length1)\n", +" printf('Invalid string\n');\n", +" else\n", +" s=strsplit(pr,1);\n", +" s=strsplit(s(2),m);\n", +" opnd1=s(1);\n", +" s=strsplit(pr,m+1);\n", +" opnd2=s(2);\n", +" post1=pr2po(opnd1);\n", +" post2=pr2po(opnd2);\n", +" post=[post1(:,:) post2(:,:)]\n", +" f=strsplit(pr,1);\n", +" c=f(1);\n", +" post3=[post(:,:) c];\n", +" po=post3;\n", +" end\n", +" end \n", +" endfunction\n", +" //Calling Routine:\n", +" \n", +" s1='+-*abcd';//no spaces between\n", +" po=pr2po(s1);\n", +" disp(po,'postfix is');\n", +" s1='+-*/+-*/abcdefghi'\n", +" po=pr2po(s1);\n", +" disp(po,'postfix is');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.7: Simulating_Factorial_By_Non_recursion.sci" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"\n", +"function[]=simu_fact(n);\n", +" a=1;\n", +" while(n>0)\n", +" a=a*n;\n", +" n=n-1;\n", +" end\n", +" disp(a,'Factorial is ');\n", +"endfunction\n", +"//Calling Routine:\n", +"a=9\n", +"simu_fact(a)" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} |