不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

paizaラーニング『Java入門編4:配列の基礎 (全9回)』を受講してみた

2021-03-27 16:07:56 | paiza

『Java入門編4:配列の基礎 (全9回)』


メモ

#01:配列とは何かを学ぼう

  • 一般的な配列の話
    • indexは0から始まる、など・・・

#02:配列を作ろう

  • 配列を作成する
    String[] test = {"A", "B"};

#03:配列の要素を取り出してみよう

  • System.out.println(test[0]);

#04:ループで配列を処理しよう

  • 配列の長さを調べる
    System.out.println(test.length);

#05:ループで配列を処理しよう2

  • ループ(拡張for)で配列を出力する
    for (String m : test) {}
    • indexを使わない。要素の数を数えなくて良い。

#06:ArrayListクラスを使おう

  • ArrayListを作成する
    import java.util.*;
    ArrayList<String> test = new ArrayList<String>();
  • ArrayListの要素を追加する
    test.add("A");
    test.add("B");
  • ArrayListの要素を出力する
    System.out.println(test.get(0));
  • ArrayListのサイズを出力する
    System.out.println(test.size());
  • ArrayListの要素を更新する
    test.set(1, "C");
  • ArrayListの要素を削除する
    test.remove(1);

#07:splitで文字列を分割しよう

  • 標準入力で1行データを読み込む
    String line = sc.nextLine();
  • 文字列をカンマで分割して配列に格納する
    String[] test = line.split(",");

#08:配列に複数行データを読み込んでみよう

  • 標準入力から複数行データを読み込む(読み込む行数が不明な場合)
    while (sc.hasNextLine()) {}

#09:配列を使ったランダムくじ

  • 配列を使って、RPGの戦闘シーンのようなメッセージを表示するプログラムを作る。


認定証

通常の配列とArrayListクラスを使った配列では、結構使い方が違うな。
C++でも似たような感じだったな。


学習ステータス




paizaラーニング『Java入門編3: ループ処理を学ぶ (全9回)』を受講してみた

2021-03-27 15:18:51 | paiza

『Java入門編3: ループ処理を学ぶ (全9回)』


メモ

#01:条件によるくり返し処理1 - while

  • whileによるループ処理の基本形
    while (条件式) {
     処理
    }

#02:条件によるくり返し処理2 - while

  • 初期値を変えたり、条件式を変更したり。

#03:RPGの攻撃シーンを作る

  • 自己代入演算子
    • +=
    • -=

#04:0から5までを表示してみよう - for

  • for inによるループ処理の基本形
    • for (int i = 0; i < 10; i++) {}:0から9まで10回ループ
  • インクリメント演算子
    • ++:+1
    • --:-1

#05:繰り返しでHTMLを作成する

  • HTMLプルダウン表示の基本形
    • <select name=''name">
       <option>1</option>
       <option>2</option>
      </select>

#06:データの読み込み(標準入力)

  • 標準入力の説明

#07:データを読み込んでみよう - 標準入力

  • ライブラリのインポート
    import java.util.*;
  • 標準入力から文字列の読み込み
    Scanner sc = new Scanner(System.in);
    String line = sc.next();
  • 標準入力から数値の読み込み
    Scanner sc = new Scanner(System.in);
    int line = sc.nextInt();
    • 実数の場合は、nextDouble()

#08:複数データを読み込んでみよう

  • 標準入力から複数行データを読み込む基本形
    標準入力をループで処理する

#09:西暦年と平成年の対応表を作る

  • 西暦<>昭和
    • 西暦年 = 昭和年 + 1925
    • 昭和年 = 西暦年 - 1925
  • 西暦<>平成
    • 西暦年 = 平成年 + 1988
    • 平成年 = 西暦年 - 1988
  • 西暦<>令和
    • 西暦年 = 令和年 + 2018
    • 令和年 = 西暦年 - 2018


認定証

この辺はやっぱり冗長に感じる。
ペースアップしてどんどんこなしていこう。


学習ステータス




paizaラーニング『Java入門編2:条件によって処理を変えてみよう (全11回)』を受講してみた

2021-03-27 13:38:53 | paiza

『Java入門編2:条件によって処理を変えてみよう (全11回)』


メモ

#01:IF文による条件分岐

  • if文はC/C++と同じ
    if (条件式) {
     処理1
    } else {
     処理2
    }

#02:複数の条件を組み合わせてみよう

  • else if (条件式)

#03:比較演算子で条件分岐してみよう

  • 比較演算子もC/C++と同じ

#04:おみくじを作ってみよう

  • Math.random()メソッドを使っておみくじプログラムを作る

#05:RPGのクリティカルヒットを再現

  • 複数の条件式からなるif文の例

#06:西暦から平成何年かを求めてみよう

  • 西暦年/平成年の計算方法
    • 平成年から西暦年を求めるには、平成年に「1988」を足す。
    • 西暦年から平成年を求めるには、西暦年から「1988」を引く。

#07:【補講】複数の条件を組み合わせてみよう - AND

おっ!声が明るくなった!!😲 
補講だけに何年後かに追加されたチャプターだろうから、声優さんも慣れてきたのかな?😃 
心なしか、音量も大きい気がする😁 
  • AND演算子:&&

#08:【補講】複数の条件を組み合わせてみよう - OR

  • OR演算子:||

#09:【補講】条件の評価結果を理解しよう

  • 論理型:boolean

#10:【補講】データ型について理解しよう

  • 整数
    • - byte: 8ビット整数 -128から127までの整数
    • - short: 16ビット整数 -32768から32767
    • - int: 32ビット整数 -2147483648 から2147483647
    • - long: 64ビット整数 -9223372036854775808から9223372036854775807まで
  • 実数
    • - float:32ビット単精度小数点
    • - double:64ビット倍精度小数点
  • データ型の変換
    データ型を変換することを「データのキャスト」と呼ぶ。
    • 文字列→整数:System.out.println(Integer.parseInt(text));
    • 文字列→実数:System.out.println(Double.parseDouble(text));

#11:【補講】税込み金額を計算する

  • 5%オフの商品に、消費税8%を追加した場合を例にとり、小数点以下の数値をどのように扱うか学習する。
※ レストランでのイートインの場合、今はもう消費税10%だけどね。

認定証



学習ステータス




paizaラーニング『Java入門編1:プログラミングを学ぶ (全9回) 』を受講してみた

2021-03-27 09:38:28 | paiza

『Java入門編1:プログラミングを学ぶ (全9回)』


さて、いよいよ大詰め、『Java入門編 (全10レッスン)』をやっていくか。
ってか、全10レッスンって多いなっ!!😅 

Ubuntuの場合、Javaの開発環境ってどういうようなものが必要なんだろう?
そういえば、Eclipseは既にインストール済みだったけど、使えるのかな?

とりあえず、「Ubuntu20 Java 開発環境」ってググってみよう。
↑ここを参考に、Javaがすでにインストールされているかどうか確認。
  • $ java -version
  • $ javac -version
あれれ!?😲 どうやら、すでにインストール済みらしい。😅 
あんまり意識してインストールしてないんだが、
なんかのタイミングでインストールされていたのかな?

まぁでも、上記のサイトに書いてあるインストールコマンドを実行したら、新たに2、3個パッケージがインストールされたみたいだぞ。
  • $ sudo apt install default-jre
  • $ sudo apt install default-jdk
エディタとかIDEとかは何かいいのあるのかな?
たぶん、Eclipseなんかがそうなんだろうけど、イマイチ使い方よく分からんから、
とりあえずVSCodeでやってみよう。

VSCodeでJavaのファイルを新規作成したら、Java関連の拡張機能を自動的におすすめしてくれるから、簡単にインストールすることができた。
そのおかげか、実行もVSCodeのターミナル内で簡単にできるな(F5)!😲 
改めて、VSCodeって便利だね〜😌 

メモ

#01:Javaとは?

おぉ〜、なんか講師の声が暗い。この講座は初期に作られたものなのか?

#02:Javaでプログラムを書いてみよう

  • Hello worldのプログラム
    public class Main {
     public static void main(String[] args) {
      System.out.println("Hello world");
     }
    }
  • 学習ステータス

#03:コメントでプログラムを見やすく!

  • コメントアウトのやり方
    • 「//」から行末までがコメント
    • 複数の行をコメントアウトするときは、コメント行の先頭に「/*」を、末尾に「*/」を記述

#04:HTMLを表示してみよう

  • 改行したくない場合
    System.out.print("文字");
  • 学習ステータス

#05:変数を使えるようになろう

  • 変数の宣言
    • String player = "勇者"; // 文字列データの変数
    • int number = 3;  // 整数データの変数
  • 文字列と変数を連結する方法
    変数と文字列は、「+」記号で連結できる。
    • player = "戦士"
      print(player + "は、荒野を歩いていた")

#06:サイコロを作ろう

  • Math.random()    :0から1までのランダムな数値を出力する
  • 学習ステータス

※ JavaってC/C++みたいにライブラリのインポートって要らないのかな?

#07:演算子で計算してみよう

  • 基本的な算術演算子
    + 足し算 6 + 2 # 8
    - 引き算 6 - 2 # 4
    * 掛け算 6 * 2 # 12
    / 割り算 6 / 2 # 3
    % 余り    6 % 4    # 2

#08:値段を計算してみよう

  • 単価と個数に応じて合計金額を計算するプログラム

#09:データの型を覚えよう

  • データの種類(型)について
    • int:整数
    • double:実数
    • String:文字列


認定証

C/C++をやっているから、基本的にはJavaもそんなに難しくはないな。
ただ、Main関数(メソッド?)を書くにも、決まり文句を多く書く感じだな。


学習ステータス


出たっ!茶髪兵士!!
Jリーガーの若手が2年目には茶髪になるのと同じなのかな?

paizaラーニング『Rails入門5: deviseのユーザー情報を利用しよう (全9回)』を受講してみた

2021-03-26 22:24:13 | paiza

『Rails入門5: deviseのユーザー情報を利用しよう (全9回)』


メモ

#01:掲示板でユーザー情報を使おう

  • このレッスンで作る掲示板
    - deviseで作成したユーザー認証に、1行掲示板を組み合わせる
    - ログインしている時だけ投稿できる
    - 投稿者名をdeviseのユーザー名にする
    - 自分の投稿だけ、編集・削除できる
  • 作成手順
    - ログイン時だけ投稿できる掲示板を作る
    - 1行掲示板の記事に、Emailを表示する
    - Userモデルに、nameカラムを追加する
    - Userモデルに、ユーザー名を保存する
    - 投稿時にログインユーザー名を保存
    - 自分の記事だけを編集・削除

#02:ログイン時だけ投稿できる掲示板を作ろう

  • 1行掲示板を作成する
    $ rails g scaffold article user_id:integer content:string
    $ rails db:migrate
  • 掲示板の初期データを投入する
    • db/seeds.rbに記述
      • Article.create(user_id: 1, content: 'hello world')
    • $ rails db:seed
  • アクセス
    http://localhost:3000/articles
  • ログイン時に、特定のアクションだけ実行できるようにする
    app/controllers/articles_controller.rb

#03:1行掲示板にEmailアドレスを表示しよう

  • ArticlesモデルとUserモデルを関連付ける
    app/models/article.rb
  • 投稿者のメールアドレスを表示する
    app/views/articles/index.html.erb
  • Welcomeページから、ログインを削除
    app/controllers/welcome_controller.rb
  • Welcomeページから、掲示板にリンクする
    app/views/welcome/index.html.erb
  • ナビゲーションを共通で表示する
    app/views/layouts/application.html.erb

#04:Userモデルにnameカラムを追加しよう

  • Userモデルにカラムを追加
    $ rails g migration AddNameToUser name:string
    $ rails db:migrate
  • コンソールで確認
    rails console
    User.all
  • サインアップ画面に「name」カラムを追加
    app/views/devise/registrations/new.html.erb
  • ユーザー情報の変更画面に「name」カラムを追加
    app/views/devise/registrations/edit.html.erb

#05:Userモデルのユーザー名を保存しよう

  • コントローラで、nameカラムを保存する
    app/controllers/application_controller.rb

#06:掲示板にユーザー名を表示しよう

  • ナビゲーションのログイン情報に、ユーザー名を表示
    app/views/layouts/application.html.erb
  • 投稿一覧に、nameカラムを表示する
    app/views/articles/index.erb.html
  • 投稿の詳細画面に、nameカラムを表示する
    app/views/articles/show.erb.html

#07:ログインユーザー名で投稿を保存しよう

  • 新規投稿フォームを修正して、user_idを削除する
    app/views/articles/_form.html.erb
  • createメソッドを修正する
    app/controllers/articles_controller.rb
※ ここの演習課題、難しいというより、説明が不十分過ぎて意味が分からなかった。ユーザー名なのか、ユーザーIDなのか説明が足りなくないか?コード判定詳細に出てくるチェック項目のタイトルも混乱要素の1つだと思うぞ。😡 

#08:自分の記事だけ編集・削除 その1

  • updateアクションを修正する
    app/controllers/articles_controller.rb
    • def update
  • destroyアクションを修正する
    app/controllers/articles_controller.rb
    • def destroy

#09:自分の記事だけ編集・削除 その2

  • 投稿一覧を修正する
    app/views/articles/index.html.erb
  • 詳細画面を修正する
    app/views/articles/show.html.erb

※ このチャプターの演習課題も説明が足りない気がする!😡 

ミスリードするような書き方になっているよな。
ちゃんとこのチャプターに沿った説明をしてほしいものだな。

認定証

なんとか認定証取得したけど、
ラスト2個の演習課題の説明が酷すぎたな。😡 


学習ステータス



一応、これでRailsの一通り修了したな。長かった〜😩 
残るは、Java関連だけかな?
契約期間もあと数日だけど、すべて完了できるかな?
もしかしたらもう1ヶ月追加で契約するかどうか?う〜む😒