基本情報技術者、応用情報技術者、Java、IT活用

現役システムエンジニアによる基本情報処理者や応用情報処理技術者の資格への用語説明、Java、様々なITのお勉強をしたい方へ

jQuery checkboxの扱い方

今回はjQueryのcheckboxの扱い方をまとめてみました

 

チェックボックスの宣言

<input type="checkbox" class="checkbox_c" id="checkbox1" value="1" checked>

 

オブジェクトの指定は

$('#ID名') になります。

今回のID名はcheckbox1になります。

 

クラス名を指定したい時はドットにし、

$('.checkbox_c')のように書きます。

 

では実際に使う方法を記載していきます。

チェックボックスのチェックを入れる

$('#checkbox1').prop('checked', true);

 

チェックボックスのチェックを外す

$('#checkbox1').prop('checked', false);

 

チェック状態を取得する

$('#checkbox1').prop('checked');

 

changeイベントの書き方

$('#checkbox1').change(function() {
    

     alert("change");

 

})

 

同じclassの全チェックボックス状態を取得する

    let targets = document.querySelectorAll("input[type='checkbox'][class='checkbox_c']");

    let cnt=0;

    for (const i of targets) {
        if(i.checked){
            cnt++;
        }
    }

 

 

同じclassの全チェックボックスを付ける、外す

    let targets = document.querySelectorAll("input[type='checkbox'][class='checkbox_c']");

    let cnt=0;

    for (const i of targets) {
           i.checked=true;  //←全てチェックを付ける場合

           i,checked=false; //←全てチェックを外す場合
    }

 

 

閲覧頂き、ありがとうございました。

またjQueryについて役立つ情報を掲載していきますね!!

 

広告

 

M/M/1待ち行列モデル について

M/M/1待ち行列モデルは基本情報技術者応用情報技術者試験の午前試験でよく出ますね!

 

最初は難しいですが、落ち着いてやればチャンス問題になるかと思います!

では実際説いていきましょう!

 

お客さんは1時間に15人到着します。

1人を処理するのに平均で3分かかります。

M/M/1待ち行列モデルに基づく時、平均待ち時間は何分でしょうか?

 

この問題を解いていきます。

 

M/M/1は待ち行列のモデルの事です。

 

この計算ではまずは窓口利用率を出します。

 

            λ(到着率)(ラムダ)(人/時間)

ρ(窓口利用率)(ろー)─────────────              

            μ(サービス率)(ミュー)(人/時間)

 

 

その後、下記の式で並んでいる人数を出す事が出来ます。

           ρ (ろー)

平均待ち人数───────────           

          1 - ρ(ろー)

 

それができたら

平均待ち時間= 平均待ち人数×平均サービス時間

 

です。

では実際に問題を解いてみましょう。

 

窓口利用率を出す時に、時間の単位を合わせましょう。

・お客さんは1時間に15人到着します。(60分で15人来る)

・1人を処理するのに平均で3分かかります。(60分で20人処理できる)

 

この場合、

              15人(60分で来る人数)

ρ(窓口利用率)(ろー)=───── = 0.75(窓口利用率)            

              20人(60分で処理できる人数)

 

になります。

 

これで ρ(窓口利用率) は0.75になりましたね。

これを出すには時間の単位を合わせるのが大事ですね。

あと、ρ(窓口利用率)は基本的に1より小さい値になります。

1を超えたら時間内に処理できてないので溢れていってしまいますね…

 

その後並んでいる人数を出すのは簡単です。

 

1 - ρ(ろー) 分 の ρ(ろー) です。

いち ひく ろー ぶん の ろー と覚えましょう。

 

          ρ (ろー)     0.75

平均待ち人数─────────── = ─────────  = 3人           

          1 - ρ(ろー)     1-(0.75)

 

となります。

 

平均待ち時間は3人(平均待ち人数)×3分(平均サービス時間)=9分 となります。

 

如何でしたか?少しでも参考になりますと幸いです。

それでは頑張ってください!!

 

広告

 

 

Javaプログラミングの基礎9 substringの文字列切り出しを使う

substringは、Javaで文字を切り出したい時に使います。

使い方

substring(開始位置,終了位置)

開始位置は0番から始まりますので、0にしたら1文字目(先頭から)になります。

終了位置を5にした場合は、5番目(6文字目)まで切り出します。

 

実際に使ってみましょう。

 

これに対して、文字列を切り出してみます。

String moji="おはようございます。今日も頑張りましょう。";

使い方 説明 結果
moji.substring(0,5) 先頭である0番目から5番目の1つ前まで切り出す おはようご
moji.substring(2,5) 2番目(3文字目)から6番目(5文字目)までを切り出す ようご
moji.substring(5) 5番目(6文字目)から後ろ全てを切り出す ざいます。今日も頑張りましょう。
moji.substring(moji.length()-8) 後ろ8文字を切り出す 頑張りましょう。

 

それでは実際に使ったコードをここに記載しておきます。

    String moji="おはようございます。今日も頑張りましょう。";
               
        //先頭である0番目から5番目の1つ前まで切り出す
        System.out.println("moji.substring(0,5):"+moji.substring(0,5));
                
        //2番目(3文字目)から6番目(5文字目)までを切り出す
        System.out.println("moji.substring(2,5):"+moji.substring(2,5));
        
        //5番目(6文字目)から後ろ全てを切り出す
        System.out.println("moji.substring(5):"+moji.substring(5));
        
        //文字数をカウントする
        System.out.println("moji.length():"+moji.length());

        //後ろから8文字を抜き出す
        System.out.println("moji.substring(moji.length()-8):"+moji.substring(moji.length()-8));

 

文字数をカウントする時はlength()を使います。

なので、後ろから8文字を切り出したいという時は

moji.substring(moji.length()-8);

を使います。

 

結果はこちら

substringはデータベースのカラムの定義が100の場合、それを超えると登録に失敗するので、先頭から100文字だけを出力するといった使い方が多いです。

また、他社とのシステム連携や、ファイルに出力する際に、決まった文字数だけ出力したいといった事が多いのでとてもよく使います。

それでは頑張ってくださいね♪

 

 

OSI参照モデル 

基本情報技術者応用情報技術者試験では、かなりの確率でOSI参照モデルの問題が出てきます。

 

OSI参照モデルは、ネットワークにおける通信機能を7つの役割に分けたものです。

 

 ルータは3層なので、ネットワーク同士を中継するルーティングやIPアドレスによる制御はできるけど、それ以上の層の役割はないよという事を表しています。

 

ブリッジは2層ですね、だからIPアドレスによる制御はできず、ARPにより、同じセグメント内全てにデータを飛ばす事までしかできません。

 

L2スイッチ、L3スイッチの

Lはレイヤー を表し、つまり何層かを表しています。

とても、わかりやすいですね。

L2スイッチ=スイッチングハブ

L3スイッチ=ルータ 

の機能があると思ってもらえればよいと思います。

 

OSI参照モデル プロトコル 通信機器
7層 アプリケーション層 HTTP,FTP,DNS,SMTP,POP ゲートウェイ
6層 プレゼンテーション層 SMTP,FTP,Telnet
5層 セション層 TLS,NetBIOS
4層 トランスポート層 TCP,UDP
3層 ネットワーク層 IP,ICMP ルータ,L3スイッチ
2層 データリンク PPP,Ethernet,ARP ブリッジ,L2スイッチ,スイッチングハブ
1層 物理層 RS-232,UTP,無線 リピータ

参考になりましたか?少しでも身になってもらえると光栄です。

それでは頑張ってください。

 

 

広告

Javaプログラミングの基礎8 絶対に使った方がいい インデントを揃える方法。 

インデントとは、文字の書き出し位置です。

 

インデントを揃えるとは行のスタート位置を揃える事です。

 

インデントを揃えないパターンはこうです。

スタート位置がバラバラでとてもわかりにくいですね。頭が痛くなってきます。

 

インデントを揃えてみます。

TABキーで決まった量のインデントを入れられるので使ってみてください。

これでとても見やすくなりますね。

 

やり方は

for←スタート地点

} ←終了地点

のインデントを揃えます。

その中は階層が1つ下がり、TABを押してインデントを1つ右にずらします。

 

if←スタート地点

}←終了地点

も揃えます。

その中も階層が1つ下がり、TABを押してインデントを1つ右にずらします。

 

ifやforの中に入っていくにつれてTABで右にずらしていくイメージです。

 

これで二重ループでも、その中にifがあっても、わかりやすくなりますね。

システム開発は1人ではなく、複数メンバーが担当します。

なので、他の人が見たときにわかりやすいように、インデントを揃える、コメントを入れるは気にしてみてください。

自分も後で修正しやすくなるので頑張ってくださいね。

 

Javaプログラミングの基礎7 日付を文字にする SimpleDateFormat と日付の足し算、引き算について

今日の日付を取得して文字に変換し、データベースに値をセットしたり、データベースから検索したりといったことはよくやります。

 

日付型を文字列型にしたい時はこうします。

 

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        Calendar calendar = Calendar.getInstance();

        Date dateObj = calendar.getTime();
        String format = sdf.format(dateObj);
        System.out.println("今日の日付は"+format+"です。");

 

上にimportの記述を入れてください。

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

 

 

SimpleDateFormatは日付をどういう文字列の形にするかを指定します。

  • yyyy=年
  • MM=月
  • dd=日
  • hh=時間
  • mm=分
  • ss=秒
  • SSS=ミリ秒
  • E=曜日

MMが月、mmが分ですが、これ間違えやすく、逆にしてしまうとセットされる時間がおかしくなるので気を付けてくださいねw

 

 

今日の日付を2022/12/21 としたい場合は

new SimpleDateFormat("yyyy/MM/dd");

とします。

 

日付の区切りをハイフンにし、時間までとって

2022-12-21 10:55:30  としたい場合は

 SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

とします。

 

 

 現在日時を取得するところはここです。

        Calendar calendar = Calendar.getInstance();

        Date dateObj = calendar.getTime();

 

Calendar というクラスを使います。

その後取得した日時を日付型の dateObj という変数に現在日時をセットしています。

 

        int week = calendar.get(Calendar.DAY_OF_WEEK); 
        System.out.println(week);

で数値として曜日も取得可能です。

日曜が1、月曜が2、火曜が3、水曜が4、木曜が5、金曜が6、土曜が7です。

 

明日の日時を取りたい時はこうします。

        calendar.add(Calendar.DATE, 1);

2日前は-2とします。マイナスにする。

        calendar.add(Calendar.DATE, -2);

1か月後はこうです

        calendar.add(Calendar.MONTH,1);

3か月前はこうです。マイナスにする。

        calendar.add(Calendar.MONTH,-3);

2年後はこう指定します。

        calendar.add(Calendar.YEAR,2);

前年などもとれます。マイナスにする。

        calendar.add(Calendar.YEAR,-1);

 

では2日前を取得して表示してみます。

   SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();

        calendar.add(Calendar.DATE, -2);
         Date dateObj = calendar.getTime();         
        String format = sdf.format(dateObj);
        System.out.println("2日前は"+format+"です。");

 

 

以上が日付を文字にする方法と、足し算、引き算でした。

如何でしたか?慣れたら簡単だと思うので、頑張ってくださいね!

 

Javaプログラミングの基礎6 型変換とエラー処理について

まずはJavaの型変換について説明していきます。

 

代表的な型に文字列型と数値型がありましたね。

文字列を数値型に変換したい時があります。

どのような時でしょうか?

 

例えば100という文字があります。

ここに1を足して101にしたい時

こう書くとどうなるでしょうか?

        String moji="100";
        moji=moji+1;
        
        System.out.println(moji);

 

 

答えは1001

 

です。

あれ?101にしたいのにってなりますね。

 

文字列の足し算は後ろに別の文字がくっつくだけになります。

文字列を計算に使いたい時は数値に変換してから足す必要があります。

 

文字を数値にしたい時はInteger.parseIntを使います。

        String moji="100";
        Integer suuchi =Integer.parseInt(moji);
        System.out.println(suuchi+1);

 

ちゃんと101になりましたね。

 

これはすごく便利ですね。

でも、Javaとしてはちゃんとルールを守ってくれないとエラーになります。

どんな時でしょうか?

 

答えは数値に変換できない文字を数値に変換しようとしたときです。

 

数値に変換できない文字をInteger.parseIntをしてみましょう。

        String moji="僕は17歳";
        Integer suuchi =Integer.parseInt(moji);
        System.out.println(suuchi+1);
       



 

コンソールにエラーが出ましたね。これをExceptionといいます。

 

このエラーはどの場所にどんなエラーが発生しているかを示しています。

Exception in thread "main" java.lang.NumberFormatException: For input string: "僕は17歳"
    at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
    at java.base/java.lang.Integer.parseInt(Integer.java:668)
    at java.base/java.lang.Integer.parseInt(Integer.java:786)
    at MainShori.main(MainShori.java:10)

 

NumberFormatException はこの文字が数値のフォーマットになってないよ。

と言っています。

エラーを少しずつ下を見ていくと、自分が作ったファイルの名前が出てきます。

MainShori.java:10

ここです。これはMainShori.java10行目でエラーが発生しているよ。という意味です。

 

10行目は左の数値10のところなので、

    

    Integer suuchi =Integer.parseInt(moji);

ここですね。これを知っていれば、エラーが出たときにすぐに対応できます。

よくシステムの保守をやっていると、早く正確にエラーの箇所を見つけ、

適切に修正する能力が大事だと思っています。

 

エラーになっても、決まった適切な処理をして、システムが止まらないようにしたい場合は

try とcatchを使います。

こう書いてみましょう。tryとcatchの間に処理したい内容を書き、そこの間でもしエラーが発生した場合は、catchの中に入ります。

 

先ほどのExceptionの内容はeという変数に入りますので、

e.printStackTrace();でエラー内容を出力できます。

 

        String moji="僕は17歳";
        try {

            Integer suuchi =Integer.parseInt(moji);
            System.out.println(suuchi+1);
            
        }catch(Exception e) {
                //処理に失敗した時にここにくる

            e.printStackTrace();
            System.out.println(moji+"変換に失敗しました");
                        
        }

 

エラーを表示しましたが、システムが止まる事なく最後まで進みましたね。

 

 

 

以上が型変換とエラー処理でした。如何でしたか?

引き続き頑張ってくださいね!!