ブログ
ブログ一覧 (全1518件中 1153件目~1155件目を表示)
-
2018.12.27
冬休み、中高生向けプログラミング講座として、AKITA デジタルユース キャンプ 2018(地域ICTクラブ)が行われています。
本校では、情報システム科と高度職業実践科の学生1名ずつが、メンターとして講師のサポートをしています!!
4日間のうち、今日は2日目。
ちょっとずつ指導も慣れてきているようでした。
内容は秋田の魅力を発信するWebサイトの作成。
WordPressを使っています。
メンターも事前に内容指導してもらっているわけでなく、一緒に勉強しながらです。
他のメンターの秋大や県立大の学生らとも仲良くなっていました。
嬉しいですね。
今後も秋コアは、地域と連動した取り組みを行っていきます!!
-
2018.12.26
Javaプログラミングコンテスト最優秀賞者のプログラムを見てみよう、第3弾です。
残っている処理は、与えられたIPアドレスのブロードキャストアドレスを求めることです。
int型の変数ipには現在、IPアドレスが数値として入っています。またint型の変数zには、サブネットマスクのサフィックス値が入っています。
たとえばIPアドレスが192.168.61.145/26であるとき、ブロードキャストアドレスは上位26ビットはそのまま、残りの6ビットはすべて1にしたものになります。
では、最優秀者のコードを見ていきます。
前回の処理で既に
char[] ipc = Integer.toBinaryString(ip).toCharArray();
を実行しています。char型の配列ipcには、ipを2進数にしたものを1桁ずつ区切って0か1を文字にしたものが格納されています。
ネットワークアドレスのときは、
for (int i = 31; i >= z; i--) ipc[i] = '0';
としましたが、ブロードキャストアドレスのときは
for (int i = 31; i >= z; i--) ipc[i] = '1';
とします。
あとは表示するだけですが、これもネットワークアドレスのときと一緒。
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); } System.out.println(a + "." + b + "." + c + "." + d);
ちなみに、サブネットマスクとIPアドレスの論理積をとればネットワークアドレスが求まりますが、ブロードキャストアドレスの場合はサブネットマスクの0と1を反転したものとIPアドレスの論理和をとればよいです。
しかし今回のコードでは、あまり難しく考えずにシンプルに処理されていますね。
今回紹介したコードを繋げたものは以下のようになります。
String[] sp = str.split("[\\./]"); int a = Integer.parseInt(sp[0]); int b = Integer.parseInt(sp[1]); int c = Integer.parseInt(sp[2]); int d = Integer.parseInt(sp[3]); int z = Integer.parseInt(sp[4]); int ip = (a << 24) + (b << 16) + (c << 8) + d; char[] ipc = Integer.toBinaryString(ip).toCharArray(); for (int i = 31; i >= z; i--) ipc[i] = '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); } System.out.println(a + "." + b + "." + c + "." + d); for (int i = 31; i >= z; i--) ipc[i] = '1'; 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); } System.out.println(a + "." + b + "." + c + "." + d);
とにかくコンテストの短い時間でここまで書けたのが驚きだったので、3回に分けて紹介しました!
-
ビジネスキャリア科2年担任の後条です。
経理ビジネスコース1年は冬休み直前、企業会計原則の一般原則の
学習を行いました。
企業会計原則は、現在に至るまでの会計に携わってきた先人たちの
知恵の結晶です。
商法32条の2や会社法431条にある通り、会計処理の基本的な考え方は
「公正なる会計“慣行”を斟酌すべし」
「公正妥当と認められる企業会計の“慣行”に従う」
といった“慣行”とされる、先人たちの知恵である経験則です。
私自身、税理士試験の財務諸表論を勉強した際、企業会計原則に
初めて触れましたが、それまで簿記で学習してきた処理で疑問に
思っていたことが、どの様な考え方に裏付けされていたかを学習
したことにより、会計に関しての理解が深まりました。
ところで以前のブログ「帳簿記入と財務会計」でも触れましたが、
会計理論は日々の学習の積み重ねが大切です。
学生たちにはこれからも理論と計算の同時並行的な授業を提供して、
簿記会計そして税務への理解をさらに深めてもらいたいと思います。