専門学校56日目(情報工学)7月1日(月)

1時限~3時限
HTML基礎 スラスラわかるHTML&CSSの基本 第2版

前回6月24日はclass属性とdivタグについて学びました。複数のタグに対してclass属性を追加し、CSSでまとめて色を設定したりしました。

前回の課題の解答について解説がありました。
<h1>タグは<header>グループに入れ、<h3>や<p>タグはdivタグでくくりそれぞれに色を設定するようでした。
divを習うと何でもかんでもdiv使いたくなる人が出てきますが、仕方ないときに使うものだと覚えておいてください。

今日は教科書を進めます。
まずは教科書通りにCSSファイルに打ち込みました。
セレクタが初めて見るもので、
a:link(href属性が設定されている)
a:visited(リンク先が訪問済み)
a:hover(マウスポインタがリンクに乗っている。ユーザーに優しいサイト作りに使うでしょう)
a:active(マウスボタンが押されている。クリックしたことを教えるもの)
を使いました。ユーザに使いやすいことをアクセシビリティといいます。今あげたセレクタは必ず:link、:visited、:hover、:activeの順に記述すること。順といっても4つ使わないといけないわけではないです。たいていはhoverだけだったりします。

教科書はp.170までに記載されているhtml、cssを入力していきました。ボックスモデルという項目以外はすでに習っています。classで属性を付けて、それに対応するcssを書いていきました。先生が着目してほしいとおっしゃったのはp.167の4辺のマージンを0にするところです。

* {
    box-sizing: border-box;
}
これは全称セレクトという。今は便利な呪文と覚えておいて。後期に入ったらガッツリ学びます。

body {
    margin: 0 0 0 0;
}
これはマージンでありますが、まとめて書くことができます。上、右、下、左の順になっている。時計回りと覚えるとよいです。数字が3つだと、上、左右、下になり、2つだと上下、左右になり、1つだと上下左右になる。マージンがすべて0ということはmargin: 0;と同じなので数字0を4つから1つに直してください。

main {
    margin: 90px auto 90px auto;
    max-width: 1000px;
}
を入力しましたが、マージンにautoが設定されました。これは自動という意味。右と左は自由に計算してくださいという便利なもの。widthは横幅という意味。非常に重要で、widthを決めないと真ん中に配置されない。
widthとmargin-left auto、margin-right autoの3点セットで使う。

max-widthを1000にすると、ブラウザが1000以下になると幅を調整していく。widthだと固定になる。スマホが出てきてからこうしたプロパティができた。

前期の期末テストは作品制作をしてもらいます。7月の29と30、31が授業になるが、そろそろ作り始めてもらいます。学内サーバーでのみ閲覧可能なので著作権は気にしなくていいです。好きなもので作ってもらう。月末までに提出です。

練習問題に取り組み、bodyに色を設定して、それからmainにも色を付けました。ここではmainの色が勝っている。これはHTMLの仕様で、bodyの上にmainが乗っていると思ってください。

背景に画像を入れる操作をします。
body{
    background-image: url(images/kabe_shima2.gif)
}
で画像を背景に入れました。urlは相対パスになります。画像は繰返しで表示されるので作るときは最小の画像にする。そうでないと重くなるからです。
main {
    border: 1px solid #003366;
    padding: 10px;
    margin: 120px auto;
    max-width: 1000px;
    background-image: url(images/hana2.gif)
}
で設定の順番を後ろにすると、mainの画像を背景にできました。



4時限~6時限
Java基礎 スッキリわかるJava入門 第4版

今日はオンライン授業でした。
for文の復習から始まりました。

■配列
今までは変数といって、名前を変えながら作っていきました。配列は変数の塊みたいなもの。
前から何番目という感じに番号が付けられ、これを添字といいます。基本的に0から始まる。変数と同じで配列もメモリ上にこれ作って、というように
int[] data = new int[5];
と宣言する。予約語以外の名前なら何でもいい。int[5]の5は要素数。
■要素に値を代入する
data[1] = 100;
かならず添字の場所を大括弧の中に書いて指定する。0から始まるので今のは2番目に代入。
ループを使って代入することができる。
for(int i=0; i<5;i++) {
    data[i] = 100;
}

1から順番に値を要素に代入する。
for(int i=0; i<5;i++) {
    data[i] = i+1;
}

for(int i=0; i<5;i++) {
    System.out.println(data[i});
}
これは配列の先頭から順に1、2、3、4、5を代入し、それを表示させる。
int i=0を作っていますが、ブロックの中だけでしか有効でないので、下のfor文で再び宣言して作っている。もし変数iをほかで使いたければ、プログラムの先頭で宣言する必要がある。基本はfor内でループの時に作る。

public class Main {
    public static void main(String[] args) {
        int[] data = new int[5];
        for (int i = 0; i < 5; i++) {
            data[i] = i + 1;
        }
        for (int i = 0; i < 5; i++) {
            System.out.println(data[i]);
        }
    }
}
public class Main {
    public static void main(String[] args) {
        int[] data = new int[5];
        for (int i = 0; i < 5; i++) {
            data[i] = i * 5;
        }
        for (int i = 0; i < 5; i++) {
            System.out.println(data[i]);
        }
    }
}
public class Main {
    public static void main(String[] args) {
        int[] data = new int[5];
        for (int i = 0; i < 5; i++) {
            data[i] = 5 - i;}
        for (int i = 0; i < 5 ; i++) {
            System.out.println(data[i]);
        }
    }
}

配列の作成と値の代入を同時に行うこともできます。変数でいう初期化ですね。
int[] data = {1,2,3,4,5}
この例を使ったコードが以下です。

public class Main {
    public static void main(String[] args) {
        int[] data = {1,2,3,4,5};
        for (int i = 0; i < 5 ; i++) {
            System.out.println(data[i]);
        }
    }
}

絶対使う命令なので覚えてください。
配列の長さが変わることもあります。そのたびに直すのは面倒であり、配列の個数を計算してくれるのが、
for(int i=0; i<data.length; i++)
として配列の要素数を算出する。

public class Main {
    public static void main(String[] args) {
        int[] data = {0,5,0,20,30,0,0,20};
        for (int i = 0; i < data.length ; i++) {
            if (data[i] > 0) {
                System.out.println(data[i]);
            }
        }
    }
}

これはdata.lengthを使い、8つの要素を持つ配列で要素が0より大きければ出力する。
演習問題は配列を使って処理してください。

public class Main {
    public static void main(String[] args) {
        int data[] = new int[5];
        for (int i = 0; i < 5; i++) {
            System.out.println("点数を入力してください。");
            data[i] = new java.util.Scanner(System.in).nextInt();
            System.out.println("入力された点数は" + data[i] + "点です。");
        }
    }
}
public class Main {
    public static void main(String[] args) {
        int data[] = new int[5];
        for (int i = 0; i < 5; i++) {
            System.out.println((i + 1) + "科目めの点数を入力してください。");
            data[i] = new java.util.Scanner(System.in).nextInt();
            System.out.println((i + 1) + "科目めの点数は" + data[i] + "点です。");
        }
    }
}
public class Main {
    public static void main(String[] args) {
        int data[] = new int[5];
        int total = 0;
        double average = 0;
        for (int i = 0; i < 5; i++) {
            System.out.println((i + 1) + "科目めの点数を入力してください。");
            data[i] = new java.util.Scanner(System.in).nextInt();
            System.out.println((i + 1) + "科目めの点数は" + data[i] + "点です。");
            total += data[i];
        }
        average = total / 5.0;
        System.out.println("5科目の合計点は" + total + "点です。");
        System.out.println("5科目の平均点は" + average + "点です。");
    }
}

演習問題2

public class Main {
    public static void main(String[] args) {
        int scores[] = new int[5];
        for (int i = 0; i<5;i++) {
            scores[i] = i;
        }
        for (int i = 0; i<5;i++) {
            System.out.println(scores[i]);
        }
    }
}
public class Main {
    public static void main(String[] args) {
        int scores[] = new int[5];
        for (int i = 0; i<5;i++) {
            scores[i] = i + 1;
        }
        for (int i = 0; i<5;i++) {
            System.out.println(scores[i]);
        }
    }
}
public class Main {
    public static void main(String[] args) {
        int scores[] = new int[5];
        for (int i = 0; i<5;i++) {
            scores[i] = i * 5;
        }
        for (int i = 0; i<5;i++) {
            System.out.println(scores[i]);
        }
    }
}
public class Main {
    public static void main(String[] args) {
        int scores[] = new int[5];
        for (int i = 0; i<5;i++) {
            scores[i] = 5 - i;
        }
        for (int i = 0; i<5;i++) {
            System.out.println(scores[i]);
        }
    }
}

教科書3章練習問題

public class Main {
    public static void main(String[] args) {
        System.out.print("[メニュー] 1:検索 2:登録 3:削除 4:変更>");
        int selected = new java.util.Scanner(System.in).nextInt();
        switch (selected) {
            case 1 -> {
                System.out.println("検索します");
            }
            case 2 -> {
                System.out.println("登録します");
            }
            case 3 -> {
                System.out.println("削除します");
            }
            case 4 -> {
                System.out.println("変更します");
            }
        }
    }
}
public class Main {
    public static void main(String[] args) {
        System.out.println("【数あてゲーム】");
        int ans = new java.util.Random().nextInt(10);
        for (int i = 0; i < 5; i++) {
            System.out.println("0~9の数字を入力してください");
            int num = new java.util.Scanner(System.in).nextInt();
            if (num == ans) {
                System.out.println("アタリ!");
                break;
            } else {
                System.out.println("違います");
            }
        }
        System.out.println("ゲームを終了します");
    }
}

プログラミング実戦練習

/* 作成日:2024/7/1 *設計者:川渕ゆかり
* プログラマ:飯田 *プログラム名:フィボナッチ数列作成* */
public class Main {
    public static void main(String[] args) {
        int [] f = new int[30];
        f[0] = f[1] = 1;
        for (int i = 2; i < 30; i++) {
            f[i] = f[i-1] + f[i-2];
        }
        for (int i = 0; i < 30; i++) {
            System.out.println((i+1) + "項:" + f[i]);
        }
    }
}
/* 作成日:2024/7/1 *設計者:川渕ゆかり
* プログラマ:飯田 *プログラム名:売上累計算出* */
public class Main {
    public static void main(String[] args) {
        //1月~12月の各月の売上
        int [] uri = {85,100,76,66,98,120,85,96,113,120,155,180};
        //1月~12月の売上累計
        int [] rui = {0,0,0,0,0,0,0,0,0,0,0,0};
        //1月の累計セット
        rui[0] = uri[0];
        //1月はセットしたのでiを1からループし、累計額にi月の売上とそれ以前までの累計額を足して代入
        for (int i = 1; i < 12; i++) {
            rui[i] = uri[i] + rui[i-1];
        }
        //1月から順に出力
        for (int i = 0; i < 12; i++) {
            System.out.println((i+1) + "月までの売上累計額:" + rui[i]);
        }
    }
}


7限目のIT法規は中止になりました。木曜日の7限目に情報数学の代わりに授業が行われる予定です。

この記事が気に入ったらサポートをしてみませんか?