ブログ

ブログ一覧 (全1493件中 1138件目~1140件目を表示)

  • 2018.12.17

    医療事務科1年の安藤です😋

    最近はとても寒くなってきましたね😣

    さて学校では、電話応対などの就職準備講座が
    行われるようになりました。

    普段アルバイトでも、電話を取る機会は
    たくさんありますが、話すスピードや、
    声のトーンなど、そこまで気をつけたことが
    なかったので勉強になりました✏️

    講座以外にも、次の検定が迫ってきています!
    冬休みのうちに勉強を頑張りたいです!


    ついこの間、入学したばかりなのに、
    気づいたら1年は終わろうとしています。
    来年に向けてもっと時間を大切にしていきたいです👍

  • 医療事務科の嵯峨です(*^^)

    今日のキャリア開発Ⅰの授業では、
    電話応対マナーについて学びました。

    電話応対は、声だけのやり取りになるので
    声のトーンや話すスピードなどが
    印象を左右します。
    「笑声(えごえ)」を意識して
    口角を上げながら声を出すと
    印象が良くなる、というお話が
    とても勉強になりました!

    録音機能がある練習用の電話機を使って
    学生が電話応対を行ったのですが、
    その話している声を自分で聞いてみて
    「早口すぎるー!」「声が低めー!」など
    多くのことに気付いたようでした。
    自分のことを客観的に振り返るのって
    大事ですね(*^^*)

    これから、さらに練習を重ねて
    実践的な電話応対力を身に付けいきましょう
    (^o^)丿

  • 2018.12.15

    Javaプログラミングコンテスト最優秀賞者のプログラムを見てみよう、第2弾です。

    最優秀賞のプログラム精解!(その1)

     

    ネットワーク関連の問題の要点部は「文字列 str にIPv4アドレスがサブネットマスクのサフィックス付きで与えられたときに、ネットワークアドレスとブロードキャストアドレスを表示する」のが目標です。

    前回の時点で、IPアドレスの上位から8ビットずつをint型のa、b、c、dに代入し、サブネットマスク(サフィックス値)をzに代入しました。

     

    ここから、ネットワークアドレスを求めていきます。

    
    int ip = (a << 24) + (b << 16) + (c << 8) + d;
    
    

    ipに、IPアドレスを数値として入れました。

    "<<"はシフト演算。

    c << 8は、cを左に8ビットシフトした値になります。左に1ビットシフトすると2倍になるので、8ビットシフトすると256倍になります。

    このあたり、知っていればどうってことはないのですが、一度は覚えていてもいざ使おうとなるとできるかどうか・・・。

    ついつい、c * Math.pow(2, 8) とか b * Math.pow(2, 16)とやってしまいそうな気がします。

     

    ipに32ビットの整数値を格納しましたが、int型は32ビットなので大丈夫です。

    ここも、余裕を持ってlong型にしようとか考えそうになりますが、値として持てればいい、つまり正負の符号などを考えなくていいのでint型がぴったりですね。

     

    同様にしてサブネットマスクを求めてint型にし、ipと論理積(&)をとればネットワークアドレスが求まります!

    といきたいところですが、最優秀者のコードは違いました。

    
    char[] ipc = Integer.toBinaryString(ip).toCharArray();
    
    

    ipを一旦、2進数文字列に変換し、char型の配列に格納します。

    さらに

    
    for (int i = 31; i >= z; i--) ipc[i] = '0';
    

    としました。

    考えてみれば、ipを2進表記したときに下位zビットを0にセットするだけでいいですね。

    当たり前のことですが、ネットワークアドレスを求めるときにサブネットマスクと論理積をとる、というふうに覚えているとこうした簡単なことに気づきづらいものです。

    ついついまともにやってしまいそう・・・。

    こうしてあっさり求めたネットワークアドレスを数値に戻します。

    
    a = b = c = d = 0;
    for (int i = 0; i < 8; i++) {
    	a += (ipc[i] - '0') << (7 - i);
    	b += (ipc[i + 8] - '0') << (7 - i);
    	c += (ipc[i + 16] - '0') << (7 - i);
    	d += (ipc[i + 24] - '0') << (7 - i);
    }
    

    プログラムは、それを作った人の思考経路が透けて見えるので面白いです。

    たとえばaにはipアドレスの上位8ビットを入れたいのですが、各ビットはchar型の配列に'0'か'1'として入っているので、これを一旦数値に変換します。

    このとき、char型は内部的に整数値になっているので、ipc[i] - '0'のように引き算ができます。'0'の次が'1'になっているので、これにより'0'は0に、'1'は1になります。

    さらに最上位ビットであれば128倍、つまり左に7ビットシフトします。2番目のビットであれば、左に6ビットシフトし、…となるので、for文で繰り返し処理します。

    そしてこれらを足し合わせるためにa += (右辺)としています。これはa = a + (右辺)と同じで、aに(右辺)を加えていくという意味になります。

     

    これで数値に変換されますが、この部分は他にもいろいろなやり方がありそうです。

     

    あとは表示するだけ。

    
    System.out.println(a + "." + b + "." + c + "." + d);
    
    

    見事でした。

    もう一つのブロードキャストアドレスも、同じようにできそうですね。

    詳しくは次回!

     

1 378 379 380 381 382 498
↑