コンピュータサイエンス入門 第五章 超個人的解答

 四章はプログラムで効率を測定するところが終わってなくてまだ出してないし、終わってないし。五章は手付かずですが。
試験あれば手がつくわけねーだろ\(^o^)/
ってことで、今一番重要なものを片付け次第取り掛かる。明日には始めてたい。
それにしても、どんどん面倒くさくなっていく・・・
溜め込むと絶対出来ないから溜め込まずに一週間に一度でこなしてきたけど。
泣き言なんていってられないので、がんばって片付けます。

2008/05/31 17:45

進行中。でも四章が終わってないのでもうちょっとかかるかも。

2008/06/02 22:27

課題を提出したので、更新。

解答一覧

5.1

1. プログラミング言語の名前をできるだけ数多く列挙してください。

Ans.
 アセンブラ言語、BASIC、FortranCOBOLC言語C++C#JAVA、Lips、JavascriptperlrubyPythonPHP 


などなど知ってるものを上げた

2. 高水準のプログラミング言語のほうが低水準のプログラミング言語より生産性が高い理由を説明してください。

Ans.
 高水準の言語の場合、コードの理解のしやすさやコードの保守性に優れいている。

5.2

1.自分が使っているシステムのCPUのアセンブリ言語のニモニックを調べてください。

Ans. 
 AMD64系のCPUでは、以下のニモニックが存在する。

  • 間違いを確認したので、修正中・・・
  • sunのサイトに一覧がありましたので、引用としてリンクを貼っておきます。

Instructions, Operands, and Addressing (x86 Assembly Language Reference Manual)

2.アセンブラアセンブリ言語の違いを簡潔に述べてください。

Ans. 
 アセンブリ言語アセンブラと呼ぶことが良くあるが、厳密には、アセンブラとはソースコードをマシンコードに変換するプログラムのことであり、アセンブリ言語とは、アセンブラのソースコートを作成する際に使う言語である。

5.3

1. アセンブリ言語だけを使ってOS全体や高機能なアプリケーションを作成することが事実上不可能である理由を説明してください。

Ans.
 アセンブリ言語ではマシンコードと一対一で命令する言語である。OSや高機能アプリケーションを作る際には、CPUの単純命令だけではコードの保守性やプログラムの表現の限界、コードを書く人間の理解を超えてしまうだろう。人間が使いやすく、保守性に優れた高級プログラミング言語はそのために開発されている。

2. 使用しているIDEでできることを列挙してください。現在使っているIDEがない場合は、インターネットでフリーのIDEをダウンロードしてください。

Ans.
 eclipseでは、

  • コード生成機能(プロジェクト管理)
  • デバッグ機能(ブレークポイント機能によりコードの動きを監視)
  • 検索機能(命令に対するヘルプ参照)
  • ビルド機能(コンパイラと連携でき、ビルドの手間がかからない)
  • リファクタリング機能(コード補完やコード内の関係性の表示)

 に特徴がある。また、最近のIDEにはプラグイン機能があり、豊富なプラグインで機能を補うことが可能、開発者に合わせた開発環境を構築できる。

5.4

1. 独立させられるコードブロックをプロシージャとして作成してプロシージャを呼び出す方法の利点を説明してください。

Ans.
 プロシージャにまとめておくことにより、ほかのプログラムに再利用することが容易になる。
 ある機能を細かくプロシージャにまとめて管理することにより、プログラムの機能追加がしやすくなる。これを構造化プログラミングと呼ばれている。

2. ウィンドウシステムで発生するイベントを出来るだけたくさん列挙してください。

Ans.
 ウィンドウシステムで発生するイベントは以下のものがある
 ウィンドウ生成、ウィンドウ終了、描画、左マウスボタンダウン、左マウスボタンアップ、マウスの移動、キーダウン、キーアップ、タイマイベント

5.5

1. ウィンドウシステムのウィンドウのプロパティとして考えれるものを列挙してください。

Ans. 
以下のプロパティが存在する。開発環境や言語によっては異なる場合がある。

  • 引用しました。

引用先:Windows デスクトップ関連のプロパティのサポート

配色に関するプロパティは 外形に関するプロパティは フォントプロパティは
3D オブジェクトのバックグラウンドカラー アクティブなタイトルバーのサイズ アクティブなタイトルバーのフォント
3D オブジェクトの強調表示 アクティブなウィンドウボーダのサイズ アイコンのフォント
3D オブジェクトのハイライト キャプションボタンのサイズ アクティブでないタイトルバーのフォント
3D オブジェクトの陰影 アイコンのサイズ メニューのフォント
アクティブなタイトルバーカラー アイコンの横の間隔 メッセージボックスのフォント
アクティブなタイトルバーのフォントカラー アイコンの縦の間隔 パレットタイトルのフォント
アプリケーションのバックグラウンドカラー アクティブでないタイトルバーのサイズ 選択された項目のフォント
デスクトップカラー アクティブでないウィンドウのボーダのサイズ ツールヒントのフォント
アクティブでないタイトルバーカラー メニューのフォントサイズ
アクティブでないタイトルバーのフォントカラー メニューのサイズ
アクティブでないウィンドウのボーダカラー パレットタイトルのサイズ
メニューのカラー スクロールバーの幅
メニューのフォントカラー スクロールバーの高さ
メッセージボックスのフォントカラー 選択項目のサイズ
選択された項目のカラー
選択された項目のフォントカラー
ツールヒントのカラー
ツールヒントのフォントカラー
ウィンドウカラー
ウィンドウのフォントカラー
ホットトラッキングのカラー
2. 文字列を表示できるコマンドボタン(プッシュボタン)クラスがあってそのソースコードを利用できるものとします。クリックすると音が鳴るコマンドボタンを作るためにする必要があることをまとめてください。

Ans. 
 以下のものが必要だと考えた。

  • サウンドを鳴らすクラス
  • ポインタの位置を把握するクラス
  • クリックした時のイベント検知機能
  • ボタンを表示するクラス、プロパティ
  • ボタンのイベント処理

5.6

1.プログラミング言語をどれか選んで、そのプログラミング言語のキーワードを列挙してください。

Ans.
 C言語には以下のキーワードがある。

 auto、break、case、char、const、continue、default、do、double、else、enum、exter、float、for、goto、if、int、long、register、return、short、signed、s、static、struct、switch、typedef、union、unsigned、void、volatile、while

2. このセクションで説明しているプログラミング言語のいずれかで「Hello, Computer Section」と表示するプログラムを作成してください。開発ツールをもっていない場合は、インターネットで無償のツールをダウンロードすることが出来ます。

Ans.
 C言語で表示させて見ます。

void main(void) {

	printf("Hello, Computer Section/n");

	return0

}

5.7

1. HTMLで自分を紹介するドキュメントを作成してください。

Ans. 
 以下のようになる。誕生日などの数値は仮にしている。

  • 実名出してた(´・ω・`) なんとなく修正。
<html>
<head>
<title>自己紹介<title>
</head>
<body>

<h1>自己紹介</h1>

<h2>アピール</h2>
    <p>こんにちわ、piropatiです。</p>

<h2>年齢</h2>
    <p>22歳</p>
   
<h2>生年月日</h2>
    <ul>
        <li>19XX</li>
        <li>11</li>
        <li>11</li>
    </ul>

<h2>好きな食べ物</h2>
    <ul>
        <li>カレーライス</li>
        <li>豆腐ハンバーグ</li>
    </ul>

<h2>好きな音楽</h2>
    <ul>
        <li>J-POP</li>
        <li>JAZZ</li>
    </ul>

</body>
</html>
2. XMLで自分の情報を含むドキュメントを作成してください。

Ans. 
 以下のようになる。

  • 実名出してた(´・ω・`) なんとなく修正。
<?xml version='1.0' encoding='UTF-8'?>
<自己紹介>
    <アピール>
        <アピール文>こんにちわ! piropatiです!</>
    </アピール>
   
    <氏名>piropati</氏名>
    <年齢>22</年齢>
    <誕生日>
        <年>19XX</年>
        <月>11</月>
        <日>11</日>
    </誕生日>

    <好きな何か>
        <食べ物>
            <料理名>カレーライス</料理名>
            <料理名>豆腐ハンバーグ</料理名>
        </食べ物>
       
        <音楽>
            <ジャンル>J-POP</ジャンル>
            <ジャンル>JAZZ</ジャンル>
        </音楽>
    </好きな何か>

</自己紹介>