学習日記

自分用に学んだことを書いていきます

C言語(1限目)ー環境設定

 

環境設定

C言語を始めたいけれど、

そもそもプログラムってどうやって始めればいいの?

という方むけの説明です。

プログラミングを始めるためにはまずは環境を作ることが大切です。

今は総合開発環境『IDO』ひとつでプログラミングとその結果を知ることができます。

IDOがなくても実はメモ帳からもプログラミングは始められます。)

 

メモ帳でのプログラミングはこちらのサイトが詳しいと思います→

プログラミングに挑戦しよう! - 初心者のためのプログラミング入門 - インフォテックの人材募集

 

私は現在macwindowsと2パターン開発環境『IDO』を持っているのでご紹介します。

Mac

主にXcodeを使用します。

appleストアで入手可能ですが、結構容量があるので有線環境をお勧めします。

このかたのプログが丁寧に説明されています。→

https://k-ham.com/xcode-install/

 

ただ、なぜかXcodeで上手く動かなかったり文字化けをすることがあります。

その際は

「ターミナル」というツールで実行するとうまくいくことがあります。

 

Windows

こちらではVisual Studio を使用して開発しています。

C言語向けの参考書でも良く使われている環境なので

Windousユーザーの方には強くお勧めします。

 

Visual Studio Community 2017のダウンロードとインストール | C言語入門 | CppDrive

 

環境の違い

macWindowsはコードのに違いがあるため、相互に受け渡したソースファイルをそのまま実行することはできません。

そのため、少し変換する必要がありますのでご注意ください。

 

        文字コード       改行コード

Windouse    SJIS                                   CR + LF

Mac                      UTF-8                                      LF

 

 

始めてのプログラム

ここまでの環境設定が終了したら、

早速プログラムを書いて実行されるか確認してみましょう。

 

 

#include<stdio.h>

int main()

{

    printf("hello world")

 return 0;

}

 

どうでしょうか?

実行画面には 

hello  world

と表示されましたか?

 

無事に表示されれば設定は終了です。

 

次回この6行のプログラムを解説していきます。

 

 

 

 

C言語を学ぶ上での基本知識−8

C言語を学ぶ上での基本知識−8

(データーの圧縮、コード)

 

 

前回

  

 

hima-3.hateblo.jp

 

 

最初から

hima-3.hateblo.jp

 

 コンピューターの機能

入力、出力、記憶、演算、制御を5大機能という

 

ハードウエアーシステム

ハードウエアでは入力信号がAND/ORなどの理論ゲートで処理され、

情報はフリップフロップで記憶されている

フリップフロップ(FF)…二進法の基本である1ビットの情報を

一時的に"0"または"1"の状態として保持する(記憶する)ことができる論理回路

 

入力ポート

入力信号は入力ポートを介して中央のレジスタに読み込まれ、

まとめて処理、必要なら内部メモリーに記憶される。

 

演算機能の集約

演算処理はすべてレジスタ上で、論理演算・算術演算機能を持つALUと連携して処理される。

 

ALU…様々な演算機能がまとめられている。

 

ノイマン型CPU

機械語をメモリーに格納し1つずつ取り出して順次解読、実行する

次に実行する機械語の番地はプログラムカウンターで保持され、

機械語を書き換えれば処理内容を変えることができる。

ソフトウェアと呼ばれている。

 

それては反対にハードウェアでは書き換えができない。

 

ノイマン型コンピューターでは機械語は1つずつ取り出ししながら解読されるため時間がかかる

 

CPU…中央処理装置または中央演算処理装置。コンピュータにおける中心的な処理装置。

 

ノイマン型CPUの動作

機械語

 ↓    取り出し(フェッチ)

 ↓ 解読 (デコード)

 ↓ 実行(クロック)

 

アーキテクチャ

レジスタ構成、ALU機能、割り込みの仕組み、機械語の体系などの構成方法のこと

 

CPUの種類

CISC

強力な命令を持ち少ない命令で複雑な計算をこなす

RISC

命令体系を単純化して内部のパイプライン処理効率を高められている

DSP

行列演算など有効な積和演算回路を内蔵

 

CPU内ではレジスタ上でデーター処理が行われる

 

 

データーの場所指定

 

即値データ

命令自体にデーターが含まれている

 

レジスタアドレシング

レジスタ間のデーター移動

命令でレジスタを指定する

 

直接アドレシング

命令にメモリの番地が含まれている

命令でアドレスを直接指定する

 

関節アドレシング

あらかじめデーターの置いてあるレジスタを指定する

 

絶対アドレス方式

メモリのアドレスそのものを指定

 

相対アドレス方式

標準メモリが置いてある場所と目的番地との差を指定

 

割り込み

CUPは普通あらかじめ決められた順にプログラムを実行しますが、実行中のプログラムを一時的に中断して

別の処理を行う仕組みが設けられています。

 

 

外部割り込み

プログラムとは無関係に周辺回路からの信号により発生

瞬時停電やソフトウェア故障、リセットなど

 

内部割り込み

プログラムが原因で発生

 

割り込みの仕組み

 

割り込み機能の有効性

あらかじめ要因ごとの処理プログラムを用意することで要因により自動発生する仕組みをと来ることができる。

リアルタイム処理と並列処理が可能になる

 

高速化技術

 

ノイマン型のプロセッサーはハードウェアと比べて

処理速度が劣りますが処理速度を上げるためにさまざまな方法があります

 

キャッシュ

よく使われるメモリー内容を低速から高速に移しておくこと

アクセスされた付近のデーターをまとめて高速メモリーに転送しそのアドレスを記憶する

 

ライトスルー方式

キャッシュとメインメモリー同時に書き込む

ライトスルー方式は簡単だが、キャッシュによる高速化はできない

 

ライトバック方式

CPUが記憶装置にデータを書き込む際、いったんキャッシュメモリーにデータを書き込み、

処理の空き時間ができてからキャッシュメモリーからメインメモリーに書き込む方式

 

パイプライン

CISC

複雑命令セットコンピュータ

RISC

縮小命令セットコンピュータ

 

パイプライン

CISCでは内部構造が複雑で実行困難な高速化方法

 

RISCの命令過程

フェッチ→ デコード→実行→メモリーアクセス→レジスタ書き込み

これを利用し例えば命令をデコードしているとき

同時に次に命令をフィッチすることができ並列処理により処理速度を速めることができる

 

スーパースカラ

プロセッサーの中に複数の命令を並列に処理する方式のこと

 

 

                           

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

おすすめ参考書

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

 
価格:2970円(税込、送料無料) (2020/4/23時点)

楽天で購入

参考HP

IT用語辞典 e-Words

 

情報に誤りがある場合コメントにてお知らせいただけると幸いです。

C言語を学ぶ上での基本知識−7

C言語を学ぶ上での基本知識−7

(データーの圧縮、コード)

 

 

前回

  

 

hima-3.hateblo.jp

 

 

最初から

hima-3.hateblo.jp

 

 

データー圧縮

ディジタル情報をより少ないビット数で符号化すること

 

ランレグス符号

同じ長さの情報を符号化

 

ハフマン符号

発生率が高い情報により短い符号を与える

例えばAという文字を良く使用する場合Aを1ビット(1)で表現することとする

これにより大幅にビット数を減らすことができる

 

フーリエ級数

音、画像などいくつかの周波数を利用するときその周波数を合成して一つの合成周波数として圧縮する

その時フーリエ級数が使用される

 

フーリエ級数 - Wikipedia

 

DCT

コサイン関数による式を利用して標本化された信号を周波数成分の係数列に変換する方法

元の波形の再生に影響のない情報を削減でき圧縮できるが、削除した情報は元に戻すことができない。

 

身近な符合

バーコード、QRコードなど

 

符号(コード)とは

0と1でできた情報伝達のための配列

 

PCM

バルス符号変調の意味

アナログ列をバルス信号に変換すること

バルス…一定感覚を持った信号の波

 

バーコード

黒いバーを並べることで数字や文字を表す。

スキャナーで光学的に読み取ることでキーボードを使わなくてもディジタル情報を入力できる

バーコードの形式や表現符号には用途別に規格化されている

 

ORコード

デンソーにより開発された

横幅のドット配置で情報を表す二次元コード

位置決め用のパターンが配置されていることによりどの角度からでも読み取り可能

バーコードよりも格納できる情報量が多く英字や漢字なども格納できる

 

                           

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

おすすめ参考書

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

 
価格:2970円(税込、送料無料) (2020/4/23時点)

楽天で購入

参考HP

IT用語辞典 e-Words

 

情報に誤りがある場合コメントにてお知らせいただけると幸いです。

C言語を学ぶ上での基本知識−5

C言語を学ぶ上での基本知識−5

(負の表現、小数表現)

 

 

前回

 

 

 

hima-3.hateblo.jp

 

最初から

hima-3.hateblo.jp

 

 

数値演算

1と0で整数を表すとビット数によって表示可能な数値の範囲が決まる。

 

負数の表現

 

負の数は最上位ビットを使用して表します。

0=正 1=負

4ビット +符号 で表す −1

 1   0001

最上位ビット

 

このようになる

 

反対符号数値

 

3の整数を-3のような負の数字に変換する場合       (4ビットの場合)

(1)元の数の全ビットを反転したビットを作る 

              3= 0011 → 1100

(2)このビット列に位置を加える

        1101

(3)符号ビットをつけます

       1101

これがディジタル内での表現になります。

 

小数表現

 

 

固定小数表現

 

0と1で表しているある一定の場所よりも右側を少数と定め表現できます。

 

3.5を固定小数表現で表すと

0011.1

となります

 

浮動小数

 

小数を『符号 仮数 指数』の三段階に分けたビットで表示すると

表現できる数値の範囲が拡大されます。

 

例えば 0,003 は十進数で 3×10―2  となり

3   の   3  が仮数     二進数にして 0011(整数で表されます)

10―2   の   2  が指数      二進数にして   0010

10―2  の    ―   が符号     の部位で表されます

 

これを一列のビットで表すと

1   0010  0011

符号部       指数部         仮数

 

となります

                           

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

おすすめ参考書

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

 
価格:2970円(税込、送料無料) (2020/4/23時点)

楽天で購入

参考HP

IT用語辞典 e-Words

 

情報に誤りがある場合コメントにてお知らせいただけると幸いです。

C言語を学ぶ上での基本知識−4

C言語を学ぶ上での基本知識−4

(フラグ、ビットシフト)

 

 

前回

 

 

hima-3.hateblo.jp

 

 

 

最初から

hima-3.hateblo.jp

 

フラグ

前回は入力と出力の関係について解説しましたが、

より複雑な制御のためには論理演算の情報を記録する必要があり

ソフトウェア的な言い方でこれを『フラグ』と言います。

 

複数のフラグをまとめて『フラグレジスタ』『ステータスレジスタ』と呼ばれます。

 

レジスタ・・・演算など一時的な目的で記録するもの

 

代表的なフラグ

 

ゼロフラグ

演算結果が0なら1として記憶

それ以外は0として記憶する

 

キャリーフラグ

演算結果がレジスタに収まりきれない時に1として記憶

 

この2つが重要なフラグです。

 

そのほかフラグ

 

サインフラグ

最上位ビットが『負の値』を示す。

その際にサインフラグも1を記憶する

 

バリティフラグ

演算結果に含まれる1のビット数が偶数の際に1を記憶

 

オバーフローフラグ

符号付き演算で計算範囲を超えた際に1を記憶

 

ハーフキャリーフラグ

演算の補正に利用される

 

 

 

 

ビットシフト

ビットのon/offの並びを横にずらしてくこと

 

右シフト

0110→011

 

10進数では6が3になり2分の1になる

 

左シフト

0110→110

 

10進数では6が3になり2倍になる

 

論理シフト

シフトの方向に関係なくありふれたビットはキャリーフラグに格納される

 

算術シフト

 

右算術シフトの場合左端ビットは不変

左算術シフトの場合左シフト

 

 

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

おすすめ参考書

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

 
価格:2970円(税込、送料無料) (2020/4/23時点)

楽天で購入

参考HP

IT用語辞典 e-Words

 

情報に誤りがある場合コメントにてお知らせいただけると幸いです。

C言語を学ぶ上での基本知識−3

C言語を学ぶ上での基本知識−3

(文字の表現、ディジタル変換)

 

 

前回

 

hima-3.hateblo.jp

 

 

 

最初から

hima-3.hateblo.jp

 

 

パソコン内で行われている論理演算はAND,OR,NOTで考えられている

 

論理積(AND)

・・・入力全てに1があるとき出力は1

 

   1010

   1100

________

出力  1000

 

 

 

論理和(OR)

・・・入力に1があると出力は1になる

 

   1010

   1100

________

出力  1110

 

論理積は掛け算のような考え方

論理和は血死産のような考え方

と覚えれば理解しやすいです。 

 

 

 

否定(NOT)

・・・1なら0 0なら1

 

 

NAND

論理積(AND)をNOTで否定しているので、入力全てに1があるとき出力は0 となる

 

    1010

    1100

________

AND   1000

NAND   0111

 

 

NOR

論理和(OR) をNOTで否定しているので、入力に1があると出力は0になる となる

   1010

   1100

________

OR   1110

NOR   0001

 

 

排的論理和(XOR)

 排的論理和は基本的には論理和の考え方で1と1が現れた時に排除(0に)する。

 

   1010

   1100

________

出力 0110

 

 

 

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

おすすめ参考書

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

 
価格:2970円(税込、送料無料) (2020/4/23時点)

楽天で購入

参考HP

IT用語辞典 e-Words

 

情報に誤りがある場合コメントにてお知らせいただけると幸いです。

C言語を学ぶ上での基本知識−2

C言語を学ぶ上での基本知識−2

(文字の表現、ディジタル変換)

 

前回は2進数の表記について触れたが、以降は2進数の考え方を基本に持ちます。

 

前回

 

hima-3.hateblo.jp

 

 

文字の表現

 

ディジタルの世界では0と1しか使用できないので、

これを使って文字を表すには0と1の組み合わせを使用して文字の再現がされています。

この文字を0と1の組み合わせで指定したものを文字コードと呼びます。

ASCLL(アルファベット、数字、記号を7ビットで符号化した)

コードが基本となっています

 

日本語は

区点コード や JISコード等が使われています。

 

 

 

ディジタル化

 ・アナログとディジタルの違いとは

   アナログは連続量を連続で表現しているため、なめらかな曲線のような情報である

   ディジタルは連続量を離散的な値で表現するため元の情報との間に誤差が生じる

   ディジタルの利点として数値として値を表すことができるためコンピューターで扱うことができ、減衰・雑音に強い。

   解像度や周波数、ビット数を大きくすることで誤差が小さくなる。

 

・音声のディジタル化
  • 音声をアンプを使い利用しアナログ情報化
  • サンプリング回路により一定間隔、時間でアナログ信号の入力を行いうことでアナログ情報を離散的な情報として取得【標本化
  • A―D変換回路により⑵の情報の各点の信号を数値化する【量子化
  • 2進法に変換【符号化

この過程を踏むことによりコンピュターで使用可能な音声データーを作成します。

 

 

 

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

おすすめ参考書

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

 
価格:2970円(税込、送料無料) (2020/4/23時点)

楽天で購入

参考HP

IT用語辞典 e-Words

 

情報に誤りがある場合コメントにてお知らせいただけると幸いです。