LV2之-----js基础程序逻辑(语法规范& if else&switch&for)------练习

js练习------语法规范& if else&switch&for

  • part1

1.用代码实现

变量a中存储的数字10,变量b中存储的数字是3

1)a除以b后,并取整,在页面输出得到的结果?
	var a = 10,b = 3;
        var num = parseInt(a/b);
        alert(num);

2)将a%b后得到的结果转换为字符串类型,在打印台输出得到的结果,并验证最终的结果数据类型是否为字符串
	var num = String(a%b);
        alert(typeof num);

2.用代码实现

输入一数字作为秒数,在页面按小时,分钟,秒的格式输出( 如输入600,页面显示:0小时100秒 )
       var num = window.prompt('请输入秒数');
        var h = parseInt(num/3600);
        var y = num%3600;
        var m = parseInt(y/60);
        var s = y%60;
        alert(h+"小时"+m+"分钟"+s+"秒");


3.用三元运算符实现

1)小明和妈妈约定,期末考试如果语文数学成绩都是满分100,周末妈妈就带他去游乐园,否则就只有在家改错题
        var yw = window.prompt('请输入语文成绩');
        var sx = window.prompt('请输入数学成绩');
        yw==100&&sx==100? console.log('去游乐园') :  console.log('做作业')

2)小明考了双百分,妈妈周末带小明去游乐园玩了一天,随后和小明约定,如果明年小明还能拿到双百分并且奥数

能够获得华杯赛前90名就带他去迪斯尼乐园,否则就只有后年再努力了
        var sum = window.prompt('请输入语文数学总成绩');
        var mc = window.prompt('请输入奥数华杯赛名次');
        sum==200&&mc<90&&mc>0? console.log('去迪士尼') :  console.log('学习')
3.使用axure画流程图

1)在淘宝购买商品的整个流程图(注意:购买时如果未登录需要回到登录页面,如果账户和密码输入错误3次将被锁定无法登录)

2)输入1个同学的成绩,60-70D70-80C80-90B90-100A 不及格-60E 最后输出这个同学到底是哪个分段(画流程图并代码实现)
        var sum = window.prompt('请输入该同学的成绩(0-100)');
        if(sum>100){
            alert("太大了");
        }else if(sum>=90){
            alert("成绩为A");
        }else if(sum>=80){
            alert("成绩为B");
        }else if(sum>=70){
            alert("成绩为C");
        }else if(sum>=60){
            alert("成绩为D");
        }else if(sum<60){
            alert("成绩为E");
        }

3)输入三个数,找出最大数(画流程图并代码实现)
	var a = window.prompt('请输入一个数a');
        var b = window.prompt('请输入一个数b');
        var c = window.prompt('请输入一个数c');
        var max = 0;
        if(a>=max) {
            max = a;
        }
        if(b>=max){
            max = b;
        }
        if(c>=max){
            max = c;
        }
        alert("最大数为"+max);











- part 2

1.用户户输入整数。
如果输入的是16 的整数,则程序输出:your number is in 16.  c=(用户输入的数) 
如果输入的是其它数字,输出:Your number is too large. c=(用户输入的数)
	var c = window.prompt('请输入一个数1-6的整数');
        if(c<=6 && c>=1){
            alert("your number is in 1~6");
            alert("c="+c);
        }else{
            alert("Your number is too large");
            alert("c="+c);
        }

2.输入a ,b,c 三个个位数(0-9)之间,组成一个最大的三位数
        var a = window.prompt('请输入一个0-9的整数');
        var b = window.prompt('请输入一个0-9的整数');
        var c = window.prompt('请输入一个0-9的整数');
        var num = "";
        if(a>=b){
            a = a;
        }else {
            num = a;
            a = b;
            b = num;
        }
        if(b >= c){
            b = b;
        }else{
            num = b;
            b = c;
            c = num;
        }
        if(a > b){
            a = a;
        }else {
            num = a;
            a = b;
            b = num;
        }
        alert("这个数为"+a+b+c);

3、判定2000-2500年中是闰年的年,输出闰年的条件是:
(1).能被4整除,但同时不能被100整除的年份都是闰年
(2).能被400整除的年份是闰年
    其它情况都不是闰年
        var  year = "";
        for(var i = 2000;i <= 2500;i++){
           if(i%4 == 0 && i%100 != 0){
           year = year+i;
           }else if (i % 400==0) {
    	    	year=year+i;
            }
        }
 	alert(year);

4、编写代码:运输公司对用户计算运费.路程越远每公里运费越低。
每公里每吨货物的基本运费为10,货物重为w,距离为s,折扣为d,
则总运费f的计算公式为:f=10*w*s*(1-d)
s<250km        没有折扣
250<=s<500     2%折扣
500<=s<1000    5%折扣
1000<=s<2000   8%折扣
2000<=s<3000   10%折扣
3000<=s        15%折扣

        var w = 1;
        var s = window.prompt('请输入距离');
        var d = 0;
        var f = 0;
        if (s < 250){
            d = 0;
        }else if (250 <= s && s<500){
            d = 0.02;
        }else if (500 <= s && s<1000){
            d = 0.05;
        }else if (1000 <= s && s<2000){
            d = 0.08;
        }else if (2000 <= s && s<3000){
            d = 0.1;
        }else if (3000 <= s){
            d = 0.15;
        }
        f=10*w*s*(1-d);
        alert(f);

- part4

作业1.模拟自动饮料机

要求:

1.当输入0时,模拟自动饮料机停止运行

2.自动饮料机运行的过程中,当输入1-5时候给出对应的饮料(1.可口可乐 2.雪碧 3.鲜橙多 4.冰红茶 5.矿泉水)

输入其他值的时候给出非法操作提示,并提示重新输入
        var a = window.prompt('请输入一个0-5的整数');
        if(a == 0){
            alert("停止运行");
        }else if (a == 1){
            alert("可口可乐");
        }else if (a == 2){
            alert("雪碧");
        }else if (a == 3){
            alert("鲜橙多");
        }else if (a == 4){
            alert("冰红茶");
        }else if (a ==5){
            alert("矿泉水");
        }else if (a<0 || a>5){
            alert("非法输入,请重新输入!");
        }

作业2:作业7:水仙花数

例:水仙花数 153=1*1*1+5*5*5+3*3*3
输入一个数,判断是不是水仙花数
	var num = window.prompt('请输入一个三位数');
        var a = parseInt(num/100);
        var b = parseInt(num/10%10);
        var c = parseInt(num%10);
        if(a*a*a+b*b*b+c*c*c == num){
            alert("是水仙花数");
        }else {
            alert("不是水仙花数");
        }


作业3:判断三角形

根据三角形的三条边长(长、中、短三条边),来判断三角形类型。

提示:

(1) 一个三角形的边应该都为正数

(2) 一个三角形的边都应该满足三角形条件:两边之和大于第三边

钝角三角形:任意两边的平方和小于第三边的平方,如:a*a+b*b<c*c
        var a = window.prompt('请输入a边长');
        var b = window.prompt('请输入b边长');
        var c = window.prompt('请输入c边长');
        a = parseInt(a);
        b = parseInt(b);
        c = parseInt(c);
        if(a<0 && b<0 && c<0){
            alert("请输入正确的数");
        }
        else if (a+b<c){
            alert("不是三角形");
        }
        else if (c+b<a){
            alert("不是三角形");
        }
        else if (a+c<b){
            alert("不是三角形");
        }
        else if (a*a+b*b<c*c){
            alert("钝角三角形");
        }
        else if (a*a+c*c<b*b){
            alert("钝角三角形");
        }
        else if (b*b+c*c<a*a){
            alert("钝角三角形");
        }
        else if (a*a+b*b==c*c){
            alert("直角三角形");
        }
        else if (a*a+c*c==b*b){
            alert("直角三角形");
        }
        else if (b*b+c*c==a*a){
            alert("直角三角形");
        }
        else if (a*a+b*b>c*c){
            alert("锐角三角形");
        }
        else if (a*a+c*c>b*b){
            alert("锐角三角形");
        }
        else if (b*b+c*c>a*a){
            alert("锐角三角形");
        }



作业4:按年//日的顺序输入一个任意日期,在页面输出:这是这一年的第几天

如:201612日 是2016年的第2天,而20161231日则是2016年的第366天(因为闰年会多一天)

        var arr = [31,28,31,30,31,30,31,31,30,31,30,31];
        var year = window.prompt('请输入年份');
        var month = window.prompt('请输入月份');
        month = parseInt(month);
        var day = window.prompt('请输入号数');
        day = parseInt(day);
        for(var i = 0; i< month -1;i++){
                day += arr[i];
                console.log(day);
            }
     	if(year%4 == 0 && year%100 != 0 || year % 400==0 && month>2 ){
     	   day++;
     	}
   	alert("这是第"+year+"年的第"+day+"天");


  • part4
    <script>
1.99乘法表
for(var i=1;i<=9;i++){
//---定义其行数
     for(var j=1;j<=i;j++){
     document.write(i,j)
    }
    document.write("
"
) //---让每一行换行 } 2.等腰三角形 for(var j=1;j<5;j++){ //------设置行数 for(var k=4;k>=j;k--){ document.write(' ') //-----设置每行前的空格 } for(var i=1;i<=j*2-1;i++){ document.write('*') } //-----设置每一行的* 数 document.write('
'
) } 3.菱形 var line=7; for(var i=0;i<line;i++) { //-------前四行,每行递增两个 if(i<=3) { for(var j=1;j<=line-i-4;j++) { document.write(' '); } for(var j=0;j<i*2+1;j++) { document.write('*'); } } else { for(var j=1;j<=i-line+4;j++) { document.write(' '); } //i=4,打印5个 //i=5,打印3个 //i=6,打印1个 for(var j=(line-i)*2-1;j>0;j--) { document.write('*'); } } document.write('
'
); } 4.空心菱形 for(var j=1;j<5;j++){ for(var k=4;k>=j;k--){ document.write('|') } for(var i=1;i<=j*2-1;i++){ if(i==1 || i==j*2-1){ document.write('*') }else{ document.write('|') } } document.write('
'
) } 5.30个人,其中有男人、女人和小孩,在一家饭馆里吃饭 共花了500元,每个男人各花30元,每个女人各花20元,每个小孩各花10元,问男人、女人和小孩各有几人? for(var man=1;man<=30;man++){ for(var women=1;women<=30;women++){ for(var child=1;child<=30;child++){ if(man+women+child==30 && man*30+women*20+child*10){ console.log('男有'+man+'人'+' '+'女有'+women+'人'+' '+'孩子有'+child+'人') break; } } } } 1.找出1-100之内有多少个偶数,输出这些偶数,并输出它们的和是多少? sum=0; for(var i=1;i<=100;i++){ if(i%2==0){ sum=sum+i } } console.log(sum) 2.找出100--999里面有多少个水仙花数,分别输出这些水仙花数? for(var shui=100;shui<999;shui++){ var bai= parseInt(shui/100) var shi= parseInt(shui%100/10) var ge= parseInt(shui%100%10) if( Math.pow(bai,3) +Math.pow(shi,3) + Math.pow(ge,3) == shui ){ console.log(shui) } } 3.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 /* 分析 共有sum 个桃子,10天 每天吃 (sum/2)-1 */ var peachsum=1; //----定义桃子总数 for(var day=1;day<=9;day++){ //----从倒数第一天起算,每天吃的数量 peachsum=(peachsum+1)*2 } document.write("一共"+peachsum) 4.题目:有一分数序列:2/13/25/38/513/821/13...求出这个数列的前20项之和。 //中转变量---temp 5.小球从100米掉落,弹起到50米,然后再掉落,弹到25米,弹10次以后,小球经过的路径是多少米(截止第10次弹地) var sum=100,h=50; for(i=2;i<=10;i++){ sum=sum+2*h; h=h/2; } console.log('小球经过的路径是'+sum) 6.有一队兵,他想知道有多少人,便让士兵排队报数:按从15报数,最末一个士兵报的数为1;按从16报数,最末一个士兵报的数为5;按从17报数,最末一个士兵报的数为4;最后再按从111报数,最末一个士兵报的数为10。编程求至少有多少兵? for(p=1;ture;p++){ //----设置人数 自增加 if(p%5==1 && p%6==5 && p%7==4 && p%11==10){ //------设置条件 document.write('一共至少有'+p+'个兵') break; } } // 7.序列:1,2,3,5,8,13...。找出第20个数是多少?得出前20个数 /*分析 每三个一组后一个数是前两个数的和 设置一个中转变量--c*/ var a=1, b=2,c=0; var sum=0; for(var number=0;number<18;number++){ c=a+b; a=b; b=c; sum=sum+c; } sum=sum+3; console.log("第20个数是:"+c); console.log("前20个数的和:"+sum); 4.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。输入60=2*2*3*5var nmu=prompt('输入一个数字') 5.输入2个日期 (年月日),计算两个日期相差多少天? </script>

你可能感兴趣的:(编程练习,前端LV2)