第4章 計算
Q1
入力を受け取り、出力を生成すること。
Q2
キーボード、マウス、タッチスクリーン、ファイル、その他の入力デバイス(音楽キーボード、ビデオレコーダー、ネットワーク接続、温度センサー、デジタルカメラのイメージセンサー)、ほかのプログラム:入力
ネットワークインターフェイス、ミュージックシンセサイザー、電気モーター、ライト、ヒーター:出力の例
Q3
正しく
単純に
効率良く
Q4
構造と【コードの品質】に配慮することは多くの場合何かを正常に動作させるために最もすばやい方法である。
プログラムを構成するための主な手段は、大きな計算を小さな計算に分離することであり、その方法は2つある。→①抽象化 ②分割統治
Q5
プログラム実行の流れを制御するのが文
Q6
lvalは演算子がオペランドを変更する場合に用いられる、代入の左辺に使用できる値の略記。+= *= -= などがある
Q7
変わらない変数 const int pi = 3.14;
Q8
表記法そのもの
Q9
初期化された後は新しい値を割り当てることができない名前付きのオブジェクトのことであり、コードを読みやすくするのに役立つ
シンボル定数に定義することなく、リテラルを用いて繰り返しプログラム中で使われている数字、定数、文章
Q11
%以外すべてはintとdoubleの両方に使用可能
Q12
%
Q13
+と-と>と<
Q14
多くの定数と比較する際にはSwitch文をしようすることが 賢明である(少々古風ではあるが)
Q15
caseの最後のbreakの入力忘れ
Q16
初期化、停止条件定義、インクリメント
左から順に実行される
Q17
for文は単純な初期化、条件、インクリメント操作から定義できる場合は必ずfor文を使うようにする。そうでない場合はWhile文を使うようにする
Q18
計算式を行うことで変換してから出力する
Q19
戻り値の型の指定、関数名の指定、パラメータの名前および型の指定
第3章 オブジェクト、型、値
3.1 入力
何かを読み取るためには、それを読み込む場所が必要である。そのような【場所】をオブジェトという。
オブジェクトは配置できる情報の種類を指定する型を持つメモリ領域である
名前付きのオブジェクトは変数と呼ばれる
#include "../../std_lib_facilities.h"
#include <string>
int main() {
cout << "Please enter your first name (followed by 'Enter'):\n";
string first_name;
cin >> first_name;
cout << "Hello," << first_name << "!\n";
return 0;
}
改行によってコンピュータに注意をひかせることができるのである
3.2 変数
データを格納する【場所】はオブジェクトと呼ばれる
オブジェクトにアクセスするためには名前が必要である
名前付きのオブジェクトは変数と呼ばれ、①オブジェクトに配置するものと②適用できる操作を決定する型を持つ
C++には多くの型があるが実務上は5つの型に絞っても特に問題は発生しないだろうとのこと
int 整数
double 浮動小数点
char 個々の文字
string 文字列
bool 論理変数
3.3 入力と型
string型に数字を入力した場合は自動的に文字列に変換される
ホワイトスペースによって入力されたものが区別されるようになる
1つの出力文で複数の値を出力できるのと同様に1つの入力文で複数の文が入力できるのである
int main() {
{
cout << "Please enter your first name and age:\n";
string first_name="???";
int age=0;
cin >> first_name;
cin >> age;
cout << "Hello," << first_name << "(age" << age << ")\n";
keep_window_open();
}
3.4 演算と演算子
変数の型は変数に格納する値をを指定するだけでなく、変数に適用できる演算とそれらの意味も決定する
int count;
cin >> count;
int型によって演算子は整数にcountを読み込む
string name;
cin >> name;
>>演算子は文字列nameに読み込む
int c2 = count +2;
+演算子は整数を足す
string s2 name +"Jr";
+演算子は文字を足す
などなど
コンパイラは各変数に適用できる演算を正確に知っているので多くのミスを防ぐことができる
文字列の比較でアルファベット順での並び替えが可能
3.5 代入と初期化
代入と初期化は論理的に異なる
初期化は常に変数をからであると見なす。
代入は変数に新しい値を挿入する前にその古い値を削除しなければならない
値はコイン/箱が変数=>箱を空っぽにしておくことはできない
int main(){
while (1)
{
cout << "Please enter a floating value\n";
double n;
cin >> n;
cout << "n==" << n
<< "\nn+1==" << n + 1
<< "\nthree times n==" << n * 3
<< "\n twice n==" << n * 2
<< "\n n squared==" << n*n
<< "\n half of n==" << n / 2
<< "\n square root of n==" << sqrt(n)
<< "\nn==" << n
<< "\nn==" << n
<<endl;
};
3.5.1 例:重複する単語の検出
ドリル
二重引用符は単純引用符と違う意味を持つ
#include<iostream>
using namespace std;
{
string first_name = "";
cout << "Enter the name of the person you want to write to\n";
cin >> first_name;
cout << "Dear " << first_name << "\n";
string friend_name;
cout << "Please enter your friend name!\n";
cin >> friend_name;
cout << "Have you seen " << friend_name << " lately.\n";
char friend_gender = 0;
cout <<"Please enter gender of your friend\n";
cin >> friend_gender ;
if (friend_gender == 'm')
cout << "If you see " << friend_name << " please ask him to call me \n";
if (friend_gender == 'f')
cout << "If you see " << friend_name << " please ask her to call me \n";
int age = 0;
cout << "Please enter your age\n";
cin >> age;
cout << "I hear you just had a birthday and you are " << age << " years old\n";
if (age < 0 || age>110)
simple_error("you are kidding!");
if (age < 12)
cout << "Next year you will be " << age + 1;
if (age == 17)
cout << "Next you will be able to vote\n";
if (age > 70)
cout << "I hope you are enjoying retirement";
}
#include "Header.h"
#include<iostream>
using namespace std;
void main()
{
string first_name = "";
cout << "Enter the name of the person you want to write to\n";
cin >> first_name;
cout << "Dear " << first_name << "\n";
string friend_name;
cout << "Please enter your friend name!\n";
cin >> friend_name;
cout << "Have you seen " << friend_name << " lately.\n";
char friend_gender = 0;
cout <<"Please enter gender of your friend\n";
cin >> friend_gender ;
if (friend_gender == 'm')
cout << "If you see " << friend_name << " please ask him to call me \n";
if (friend_gender == 'f')
cout << "If you see " << friend_name << " please ask her to call me \n";
int age = 0;
cout << "Please enter your age\n";
cin >> age;
cout << "I hear you just had a birthday and you are " << age << " years old\n";
if (age < 0 || age>110)
simple_error("you are kidding!");
if (age < 12)
cout << "Next year you will be " << age + 1;
if (age == 17)
cout << "Next you will be able to vote\n";
if (age > 70)
cout << "I hope you are enjoying retirement";
keep_window_open();
}
#include "Header.h"
void main()
{
double d = 0;
while (cin >> d) {
int i = d;
char c = i;
int i2 = c;
cout << "d==" << d <<"\n";
cout << "i==" << i << "\n";
cout << "c==" << c << "\n";
cout << "i2=" << i2 << "\n";
cout << "char(" << c << ")\n";
}
}
用語
代入
cin
連結
変換
宣言
デクリメント
定義
インクリメント
初期化
名前
初期化
名前
縮小
オブジェクト
演算
型
型安全
値
変数
練習問題
Q1 完了しました!
Q2#include "Header.h"
void main()
{
cout << "これはマイルとキロメートルを変換するプログラムです。マイル数を入力してください!\n";
int mile = 0;
cin >> mile;
cout << mile << "は " << 1.6*mile << " kmです!";
keep_window_open();
}
Q3
やりました
Q4
#include "Header.h"
void main()
{
cout << "これは入力した2つの値の最小値、最大値、合計、差、比率を求め表示するプログラムです。\n";
cout << "スペースを空けて2つの数字を入力してください\n";
int val1 = 0;
int val2 = 0;
cin >> val1 >> val2;
int small = 0;
int large = 0;
if (val1 > val2)
large = val1;
small = val2;
if (val2 > val1)
large = val2;
small = val1;
cout << "2つの数字の最小値は " << small << " です\n";
cout << "2つの数字の最大値は " << large << " です\n";
cout << "2つの数字の合計は " << val1+val2 << " です\n";
cout << "2つの数字の差は " << large-small<< " です\n";
cout << "2つの数字の比率は " <<small/small <<"対" <<large/small << " です\n";
keep_window_open();
}
Q5
#include "Header.h"
void main()
{
cout << "これは入力した2つの値の最小値、最大値、合計、差、比率を求め表示するプログラムです。\n";
cout << "スペースを空けて2つの数字を入力してください\n";
double val1 = 0;
double val2 = 0;
cin >> val1 >> val2;
double small = 0;
double large = 0;
if (val1 > val2)
large = val1;
small = val2;
if (val2 > val1)
large = val2;
small = val1;
cout << "2つの数字の最小値は " << small << " です\n";
cout << "2つの数字の最大値は " << large << " です\n";
cout << "2つの数字の合計は " << val1+val2 << " です\n";
cout << "2つの数字の差は " << large-small<< " です\n";
cout << "2つの数字の比率は " <<small/small <<"対" <<large/small << " です\n";
keep_window_open();
}
Q6
#include "Header.h"
#include "string"
void main()
{
int one = 0;
int two = 0;
int three = 0;
cin >> one >> two >> three;
int first;
int second;
int third;
if (one>two && one>three)
third = one;
if (two > three)
second = two;
first = three;
if (three > two)
second = three;
first = two;
cout << "oneが1番大きいよ!\n";
if (two>one && two>three)
third = two;
if (one > three)
second = one;
first = three;
if (three > one)
second = three;
first = one;
cout << "twoが1番大きいよ!\n";
if (three>one && three>two)
third = three;
cout << "threeが1番大きいよ!\n";
if (two > one)
second = two;
first = one;
if (one > two)
second = one;
first = two;
cout << "threeが1番大きいよ!\n";
cout << first << "," << second << "," << third <<"\n";
keep_window_open();
}
#include "Header.h"
#include "string"
void main()
{
int one = 0;
int two = 0;
int three = 0;
cin >> one >> two >> three;
double smallest=0;
double middle=0;
double largest=0;
if (one <= two && one <= three) {
smallest = one;
if (two < three) {
middle = two;
largest = three;
}
else {
middle = three;
largest = two;
}
}
else if (two <= one && two <= three) {
smallest = two;
if (one > three) {
middle = one;
largest = three;
}
else {
middle = three;
largest = one;
}
}
else {
smallest = three;
if (one > two) {
middle = one;
largest = two;
}
else {
middle = two;
largest = one;
}
}
cout << smallest << "," << middle << "," << largest << "\n";
keep_window_open();
}
Q8
#include "Header.h"
#include "string"
void main()
{
int val = 0;
cout << "こちらに数字を入力してください!\n";
cin >> val;
if (val % 2 == 0) {
cout << val << " は偶数です。\n";
}
else {
cout << val << " は奇数です。\n";
}
keep_window_open();
}
Q9
#include "Header.h"
#include "string"
void main()
{
cout << "Please Enter strings of number\n";
string val;
cin >> val;
if (val == "zero") {
cout << 0 <<"\n";
}
else if(val=="one") {
cout << 1 << "\n";
}
else if (val == "two") {
cout << 2 << "\n";
}
else if (val == "three") {
cout << 3 << "\n";
}
else if (val == "four") {
cout << 4 << "\n";
}
else {
cout << "not a number I know";
}
keep_window_open();
}
#include "Header.h"
#include "string"
void main()
{
string operand;
int val1 = 0;
int val2 = 0;
cout << "Please enter operand and two numbers!\n";
cin >> operand >> val1 >> val2;
if (operand == "+") {
cout << "You want to caluclate " << val1 << "+" << val2 <<"\n"
}
else if (operand == "-") {
cout << "You want to caluclate " << val1 << "-" << val2 << "\n";
}
else if (operand == "*") {
cout << "You want to caluclate " << val1 << "*" << val2 << "\n";
}
else if (operand == "/") {
cout << "You want to caluclate " << val1 << "/" << val2 << "\n";
}
else if (operand == "plus") {
cout << "You want to caluclate " << val1 << "+" << val2 << "\n";
}
else if (operand == "minus") {
cout << "You want to caluclate " << val1 << "-" << val2 << "\n";
}
else if (operand == "mul") {
cout << "You want to caluclate " << val1 << "*" << val2 << "\n";
}
else if (operand == "div") {
cout << "You want to caluclate " << val1 << "/" << val2 << "\n";
}
keep_window_open();
}
Q11
だるいから飛ばすわ。悪い。
第2章 Hello,World!
2.1 プログラム
- コンピュータに何かをさせるには、何をするか正確に(極端なほど詳細に)伝える必要がある。そうした【何をするか】の説明をプログラムと呼ぶ。
- プログラミングとは、そうしたプログラムを記述し、テストすることである。
- 誰でもプログラムをすでに理解しているということになる。
- 【近くの映画館まで車で行く方法】【2階のトイレに行く方法】【電子レンジで食事を温める方法】などなど...これらとプログラムをわけ隔てるものは【精度】である!
- コンピュータは全く持って要領が悪い!ex.廊下って何? 右に曲がるって何? 階段を上がるにはどうすれば良いの?
2.2 最初のプログラム
#include "std_lib_facilities.h"
int main()
{
cout<<"Hello,World!!:¥n";
return 0;
}
- コメントはプログラマの意図を明らかにするために使用される
- cout = character output stream
- std = standard
- プログラムはコンピュータとプログラマの2人の読み手の為に書かれる
- #を使ってincludeされるファイルはヘッダーファイルと呼べれ拡張子.hがつけられる
- coutなどの用語の定義が示されることになる
- コンピュータはmainという名の関数を探し出し、その中に書かれた命令から実行する
- 関数とは、複数(0個以上)の命令をひとまとまりにして名前を付けたものであり、【その関数の中に書かれた命令が、書かれた順番に実行される】ためのものである。通常は以下の4つの部分から構成される
- 戻り値の型
- 今回の場合は、intであり実行を要求した側に関数が返す結果の種類を指定する。intは予約語なので他の何かの名前として使用することはできない
- 名前
- mainが名前にあたる
- パラメータリスト
- ()内は空なので今回は空
- 関数の本体
- {}で囲まれており関数が実行するアクションを列挙する
- main関数は【システム】によって戻り値は使用しないが、UNIXなどの一部のシステムではプログラムの正常終了の可否をしらべるために戻り値を使用するのである
- ↑return 0; の意味 ※ちなみに書かなくてもreturn 0;であるかのように振る舞う
2.3 コンパイル
- ソースコード=人間が読める形式
- 拡張子: cpp .h
- 実行可能ファイル、マシンコード、オブジェクトコード=コンピュータ理解できる形式
- 拡張子: .obj .o
- コンパイラは文法に非常にうるさい、少しでもミスがあれば仕事をしない難儀な野郎だ
- 多くのC++文は;で終了することを忘れてはいけない
- 1つの文が終了し次の文が開始することをコンパイラに知らせるのが;の役割
- コンパイラは私たちが招く多くの問題から私たちを救ってくれているのである。
- コンパイラはプログラマの味方であり、最も頼りになる存在なのである
- コンパイラが吐き出すエラーメッセージを理解できるようになることが言語のスキルアップには欠かせないのである
2.4 リンク
Q1
実行画面にHello,World!の文字列を表示すること
Q2
名前
戻り値の型
パラメータ
内容本体
Q3
main
Q4
LINUX系のOSにおいて、正常にビルドが終了したことを知らせるため。なお、特に記述がなければプログラムは0を戻り値として返すことになる
Q5
人間が記述したソースコードをコンピュータが理解できるオブジェクトファイル/マシンコードに変換すること
Q6
外部からヘッダーファイルを取り込みこと。ヘッダーファイル内には用語の定義などが記述されている
Q7
ヘッダーファイルであることを明示している
Q8
マシンコードの集合を実行可能ファイルにまとめる役割
Q9
ソースファイルは人間が書いて人間が理解するためのもの、オブジェクトファイルはソースファイルをコンパイラし、コンピュータが理解できる形に変換したもの
統合開発環境の略称(Interractive Development Interface)プログラムにの実装に必要なものがパッケージ化されて用意されている
Q11
実践してみないと分らないことはたくさんある
練習問題
Q1
何も持たずに立ち上がる
右を向く
2歩前進する
左を向く
2歩前進する
右を向く
ドアを開ける
1歩前進する
ドアを閉める
1歩前進する
右を向く
2歩前進する
左を向く
左足を前に1段目にかける
右足を2段目にかける
左足を3段目にかける
階段がなくなったならば、両足をそろえる
左を向く
ドアを開ける
前に進む
正しい部屋であるかどうか確認する
FIn
用語の定義
//
コメントアウト用の文字
二重スラッシュ。この後に書かれたものは全てコメントである
<<
出力演算子と呼ばれ、>>の右に書かれたものを左の出力ストリームに送る
Cが発展した言語
幅広いプログラミングタスクの為に開発されたプログラム言語
コメント
プログラムの理解を助けるためにプログラマーが記述するコメント
コードで直接表現できないプログラマの意図を説明するために書かれる。
たいていの場合一番役に立つのは自分自身にとってである
コードを人が読める形式から、機会が読める形式に変換するもの
ソースコードをオブジェクトコードに変換するもの
コンパイルエラー
コンパイル時に発生するエラー
コンパイルによって検出されるエラー
cout
シーアウトと発音する。Charactor outputo systemの略称で標準出力ストリームを表す
モニタに文字列を表示する関数
実行可能プログラム
プログラムのうち機械が直接理解できる形式のもの
.exeの拡張子を持つファイルでプログラムの実行に使用する
関数
複数の命令をひとまとめにして名前をつけたもの
命令の集まり。名前、戻り値の型、パラメータ、関数本体から構成される。
ヘッダー
#includeを用いてインクルードされるファイル全般
main関数の上に記述し用語の定義などが記されているファイル。拡張子は.h
統合開発環境のことであり、プログラム開発に必要なあらゆるものがセットになっているもの
#include
外部かヘッダーファイルを読み取るための命令
ライブラリ
用語の定義などが記されているファイル、ヘッダーファイルの1種
リンカ
複数のオブジェクトファイルを結び付けて実行可能ファイルを生成するプログラム
main()
あらゆるC++ファイルに含まれている関数
オブジェクトコード
ソースコードはコンパイルすることによってコンピュータが理解できる形式に変換したもの
出力
画面上にデータを表示すること
プログラム
何らかの問題解決を行うために記述される命令の集合体
コンピュータに対して、何をするかを正確に伝える必要があるが、その何をするかの説明のこと
プログラムの実際の姿
文
プログラムにおける最小単位。セミコロン;で1つ1つの文は区切られる
第1章 コンピュータ、人、プログラミング
1.1 はじめに
- プログラミングはなぜ価値ある行為なのか?
- 現代文明におけるプログラミングの役割は何か?
- プログラマが立派に貢献できる場所はどこか
- 現代文明はソフトウェアの上に成り立っている。ソフトウェアを改良し、ソフトウェアの新しい用途を見つけることで、多くの人々に貢献できる。プログラミングはそのことに関して不可欠な役割を果たす。
1.2 ソフトウェア
- 操作系とそれ以外→生活の中にプログラミングは溶け込んでいる
1.3 人
1.4 コンピュータサイエンス
1.5 偏在するコンピュータ
時計、運輸、電気通信、医学、情報、垂直視野
1.6 プログラマの基準
- 正確さを求め、信頼性を求める、うまく設計されていることを望む、手ごろな価格であることを望む、メンテナンス可能である必要がある
- コンピュータは細かいことにうるさく、容赦のない、愚かな機械である。
- 世の中は私たちが望む以上に複雑で、私たちは自分たちが要求するものの実際の意味をよく分かっていない。
- わたしたちは常識を前提にしがちである。
- プログラミングは理解することである。=タスクをプログラムできる=理解している
- プログラミングはテーマを完全に理解する試みの一部ある。
- プログラムはテーマの理解度を正確に写す鏡である。
プログラムの開発の4つのステージ
- 分析 =>問題は何か?ユーザーは何を求めているか?ユーザーは何を必要とするか?ユーザーは何ができるか?どのような信頼性が必要か?
- 設計 =>問題をどのようにして解決するか?システムの全体的な構造はどのようなものにすべきか?それはどのようなパーツで構成されるか?パーツとパーツはどのようにやり取りするか?システムとユーザーはどのようにやりとりするか?
- プログラミング =>問題への解決策(設計)をコードで表現する。すべての制約(時間、スペース、資金、信頼性など)を満たす方法でコードをする記述する。正確でメンテナンス可能なコードにする。
- テスト =>体系的に試してみることによって、すべての状況下でシステムが正しく動作することを確認する。
- プログラミングとテストはよく実装と呼ばれる。これらの開発ステージは順序よく進んでいくとは必ずしも限らない。
- フィードバックが重要である。私たちは経験から学び、学んだことに基づいて行動を変える
- アイデア段階においては、設計上のアイデアを書き、それらを友人たちに説明してフィードバックを得るほうが簡単である。1人きりで設計することはなるべく避け、自分のアイデアを誰かに説明して試してみるまで、コーディングを開始してはならない。単にアイデアを明確にしようとするだけで、驚くほど多くのことを学べる。
- プログラムの実装で行き詰ったときは、問題そのものに関して考えてみる。誰かと話をする。自分が何をしたいのか、そしてなぜそれが上手くいかないのかを説明する。問題を誰かに丁寧に説明するだけで解決策が見つかることは意外と多い。必要がない限り、1人きりでデバックを行うことは適策ではない。
- アイデアをコードで直接表現することは、プログラミングの基本原理である。
- 複素数型 int型 文字列 string型 複素数 complex型 グラフィックス Sharp型 Circle型 Color型 Dialog_box型 データストリーム isream型
- 最も基本的なレベルにおいて、アイデア、概念、エンティティ、【もの】として考える何か、ホワイトボードに描けるもの、言葉で表せるものがあるときにその何かをプログラムに名前付きのエンティティ(型)として存在させ、それにふさわしいと思われる操作を提供する。
復習
Q1
コンピュータ上で実行されるプログラムの集まり
Q2
現代の便利な生活はコンピュータを基盤に成り立っており、従ってそれらの働きを規定する役割になるソフトウェアも当然重要と言えるから
Q3
電話機、カメラ、ホームベーカリー、車、風力タービン、食料倉庫、牛舎などなどその他多数の場面
Q4
携帯電話のソフトウェアが正しく動作しない場合、画面の強制終了が発生する
エンジンの燃料噴射装置のソフトウェアが正しく動作しない悪燃費での運転を強いられる
Q5
カーナビゲーションシステムにおいて最短距離を進む道を高度なアルゴリズムによって導出する
Q6
ユーザーのニーズを考えること、他人と活発に意見を交換すること、実際にコーディングを行うこと
Q7
コンピュータサイエンスはコンピュータを用いて創造的な活動を行うために考慮すべき要因の全体集合を指し、プログラミングはその体系を形成する1部分になる
Q8
設計:
空間や部品の視覚化、計算全般、部品のシミュレーション
構造:
溶接ロボット、CAD/CAMによる銅板の切断'()
エンジン:
EFI(電子制御式燃料噴射装置)の制御
マネージメント:
運行経路のシミュレーション
監視:
商船の位置をいつで確認できるようなWEBサイト
Q9
WEBサービスを提供するコンピュータの集まり
2008年2月に211の地域から発信された通話の数
山田太郎はがんにかかったことがあるか
染野良一郎の注文したコーヒーメーカーは発送されたのか
Q11
ヒトゲノムの解析、人間の脳の構造の解析、テキストマイニング
Q12
CTスキャナ、執刀補助システム、カルテの閲覧システム
Q13
オンラインゲーム、映画におけるCG表現、漫画ソフト
Q14
正確さ、信頼性、うまく設計されていること、手ごろな価格であること、メンテナンス可能であること
Q15
ソフトウェアに求められる要求を満たしながら、設計、プログラムなどの諸活動を周囲との調和を保ちながら行う人
Q16
分析→設計→プログラミング→テスト
Q17
コンピュータは細かいことに厳しい愚かな機械であるから
現実の社会は私たちが思っている以上に複雑なものであるから
Q18
ヤマト運輸の商品配送システム
=いつ何を注文したとしても基本的には遅滞なく商品を届けてくれるから
Amazonのレコメンドエンジン
=自分の興味のある商品について推薦してくれるので商品購入の幅が広がる
図書館の在庫検索WEBシステム
=家にいながらにして、県内すべての蔵書の状態を知ることができる
Q19
う~ん、特に思いつかない
練習問題
Q1
テレビをつける
=リモコンからの操作受付はコンピュータによって行われている
=視聴者参加型の番組の場合、専門ソフトウェアで記述されていることになる
=制作されている番組じたい、コンピュータによって動く高性能ビデオカメラによって撮影されている
=映像の編集には、編集ソフトウェアが使用されている
Q2
中小企業/官公庁向け経営コンサルタント
=タブレットコンピュータによって相手方にプレゼンテーションを行う
=システム導入自体を提案することがある
Q4
図書館の在庫情報を調べること
東京に行くときの最も安い行き方を調べること
Q5
映像を編集する
最短経路を調べる
調べ物をする
ゲームをする
Q6
寝る
歩く
あくびをする
人と話をする
孤独に考えことをする
好きな人を思う
絵を描く
海に潜る
Q7
店頭での接客
街頭でのビラ配り
単純ライン工
教師による授業
車の運転
Q8
私がコンピュータプログラマになりたいのは、自分の作った何らか形あるものをこの社会に残したいからである。そして、現代において価値ある生産物を生み出そうと思うならばもはやコンピュータが必ず関与してくることは自明のことであるように思う。
自分の思い描いたアイデアをすぐに形にできることによって、その他の優秀なプログラマともコミュニケーションが取れる。そのことによってはじめて組織システムを統括する資格を得ることができる、価値ある創造物作りに関与することができるようになると考えるのである。
Q9
顧客のニーズをくみ取り(あるいは顧客が真に抱えている問題を特定し)、プログラマに伝える役割を担いたいと思う。技術偏重になるばかりでユーザーの声に耳を傾けない技術者は驚くほど大勢存在するのではないかと私は考えており、そういった不幸を生み出さないためにも正しい道を示す先導者としての役割をソフトウェア開発において演じてみたいとは思うのである
私はコンピュータが思考体にまで発展する可能性は大いにあると考えている。
なぜなら私たちのを構成しているものは間違いなくこの地球に存在している物質であり、その構成さえ判明すれば人類がそれと全く同じものを作り出すのは不可能ではないと考えるからである。我々が抱く感情というものも所詮は物質同士反応、共鳴しておこる物理現象にすぎないと考えるわけである。
Q11
社交的である
あらゆる方面に好奇心旺盛である
コードを書く前の前段階の時間が長い
Q12
流通システムの管理
電車内の車内放送、発券システム、ブレーキ
ロケット制御
時計
カルテ管理システム
ロケット制御
=>夢がある
8月2日 エメリヤーエンコ=アレキサンダー
久々に快調に飛ばせた1日でした~
勝因は単にフレッツ光持ちが多かったことかな、それだけでも大分着地変わってくる。
やっぱり外部要因に影響されやすいお仕事。なんでもそうだろうけどね
キャッシュゲームのコツみたいなのが少し分かってきたかも。
コールの基準を持たないとバッドコールでいつか破産しそうなので、早めに作る!
試験終わったら本格的に、①ポーカー本②データアナリティクス③プロになるためのWEB開発&Ruby on Railsスクリーンキャストに取り組む!
GROM買ったらジムカーナにも挑戦してみたいなあせっかくだし!
そんな感じでした~!
今日のバンクロール
着地は36ドル!(1)雑魚手で不用意にリンプイン(2)降りない相手に無駄にブラフこの2つは大きく財を失うプレーだと分かった。逆に自分がエッジを得られるのはこういった低レベルの相手をしているとき。でっかい負けを減らす!
今日の新体験
ローソンでたらこスパゲッティを買った!(前も買ったかも笑)
8月1日 ウイリアム=クラーク
スマホで反復学習をすると思いのほか効率が良いことに気付く!
→あと1週間は真面目に勉強します..
0.05/0.10から0.1/0.25にレートを上げて一瞬で7ドル吹き飛ぶ事件が発生w
→自重せねばなあ。バンクロール管理を学ばねば、ポーカーは全てに通ず
栃木県でバイク購入して直帰してくる計画実行開始!
そとでピザ食いながら花火を見た
→きれいだった
今日の戦績
最終結果28ドル
一瞬43ドルまで増えたけど、暴走して一気にバンクロール削られるの巻!
→はい、酒飲んだときはやめときましょうね~|д゚)
今日の新体験
ベランダで花火を見る
7月31日 ミルトン・フリードマン
日々ポーカーをプレイしていて常に気にしていなければいけないのは、
自分の選択したプレーが期待値(Expected Value)がプラスであるかどうか。
これがプラスなら、統計学でいう大数の法則に従って最終的には期待値通りにの成績に収束していくことになるっちゅうわけ。(分散が大きいゲームであればあるほど収束までに必要なプレー数は増えるみたいね)
自分のような、駆け出しプレイヤーの味方になってくれるのが、
Snowieというポーカートレーニングソフトウェアの存在!
公式HPにはこのソフトを使用してトレーニングを行ったことによってわずか三~四か月で富豪になったという青年のインタビューが乗っている笑
特にプリフロップのプレイに関してはかなり改善点が多いようなので(ベットすべき場所でコール&降りるべき場所でとりあえずついていく)まずはここから直していきたいところ!
ーーーーーーーーーーーーーーー
今日の戦績
25ドル→41ドル→30ドル→40ドル
5ドルバイインのリングゲームで小遣い稼ぎな日でした。
ーーーーーーーーーーーーーーー
今日の学習
中小企業政策/法務
税制に関して重点的に・・・・
ーーーーーーーーーーーーーーー
今日の新経験
ヤフオク/メルカリ/フリマノに出品!
ーーーーーーーーーーーーーーー