
動画中ではCygWinを初期の頃はインストールしていましたが現在では、Tiny C Compiler = GNU-C 互換をインストールする前提でコース進行しています。
はじめにの動画で解説していなかった部分を解説しています。
マイクロソフト(Windows TM)は、ソフトウエアであるがゆえに、思わぬ落とし穴がある場合があります。
Windowsへの各種インストールでの失敗をへらすために無料のコースを用意しています。もちろんMacユーザーの方が視聴しても役立つ内容ですのでおすすめします。
Javaのコースで制作中でしたが、C言語言語から受講される方が多いのでC言語講座にも追加することにしました。
Windows、MacOS、iOS,iPadOSでもできるだけ同じに理解できるように解説しています
たくさんのレビューや、質問などで気になった事柄についてお答えします。 その1
たくさんのレビューや、質問などで気になった事柄についてお答えします。 その2
WindowsとCの言語の最新事情についてお話します。
PDFが表示できないというWindows環境の方がいるので、対処しました。
あまりに基本的すぎて、多くの学校では教えないのですが、とても大事なことと考えて下さい。
このセクションでは、メモリーとはどういうものか?
コンピュータの構造上なぜ重要なのか? どうやって数の多いメモリーを管理するのかを
理解します。アドレッシングという方法の根本的な理解です。
アドレッシングは、番地管理とも、アドレス管理とも言われます。
Cの言語においては、後にポインターという言葉でよく出てきます。
できるだけ簡単に理解できるようにドキュメントにまとめてあります。
理解できるまで難度も読み返して、しっかり理解してください。
2進、8進、16進数から10進数への変換が簡単に理解できるようにまとめてあります。
コンピュータと数学の変数は根本的な違いがあります。数学の変数には大きさの概念がありませんが、
コンピューターの変数は、メモリを使うので有限な変数になります。このことの理解はとても大事なものです。
例えばゼロという概念は、数学の世界では絶対ゼロというものですが、コンピューターの世界のゼロには大きさがあります。
ノイマン型コンピューターについてのまとめドキュメント:PDFです
ノイマン型のコンピュータを表すイメージ図を描き、その特徴を挙げること。
パッケージインストーラーのchocolateryが導入されていれば、Cのコンパイラを簡単に導入できますよ♫
とても小さいサイズで、超高速にコンパイルできるTccをウインドウズ10にインストールしてみます。windows10以外でも可能です。
Windowas10(64bit)の環境に、GNU C(Gcc)の環境を構築します。
ウインドウズには、メモ帳程度のテキストエディタしかないので、vimテキストエディタを導入します。
とてもかんたんでディスクスペースも消費しませんので、ユニックスのコマンドを使えるようにしてみましょう。
文法を覚えてからでは何ヶ月も先になるので、今このタイミングで、まずはプログラムを作ってみましょう
このレクチャーではウインドウズでもMacやリナックスと同様に作業できる様子をお見せします。
Windowsの方は仮想環境でLinuxを動作させてみると、MacのようなUnixでのC言語を学習しやすくなります。今回は仮想環境のインストール編です。
Linuxのダウンロードとバーチャルボックスの設定について解説しました。
少し長めの動画ですがUbuntuLinuxを仮想環境で起動するまでの全部ですので、御覧ください
前回のレクチャーで解説できていなかったUbuntuの日本語入力等について解説します。
VirtualBoxのリナックスを起動してGccでコンパイル実行する様子をお見せします。
iPadのアプリには、Linuxの仮想環境を利用できるものがありますが、Linuxのインストールなしでも利用できます
ライアンヤコブという方が開発しているコマンドをLinuxかMacOSにインストールすれば、かんたんに実行できます。この内容はウインドウズの方は仮想環境上のLinuxであれば可能です。
まれにある質問になぜC言語はインタープリタではないのですかという質問があるんですが・・・お答えします
現在のOSはマルチタスクなので、同じプログラムを複数起動すると効率が上がるのですが実際にお見せしましょう
実習主体の講座ですので、まずはC言語の実行環境を理解しましょう。この動画では、三大OSに共通のオンライン実行環境(プログラム作成可能)を解説します。
アップルのマッキントッシュの環境にC言語の環境を作る方法を学習しましょう。
MacOSXはもともとUnixベースのOSなので、必要なものはさいしょからすべて含まれています。
Windowsの環境にC言語の環境を作る方法です。
ダウンロードは、
K2Editor:http://k2top.jpn.org/index.php?K2Editor
Cygwin:https://www.cygwin.com/
から配布されています。
CygWinの導入がうまく出来ないという方に、かつてのコマンドラインCコンパイラのボーランドC5.5の導入方法を紹介します。2017年現在まだダウンロード可能です。
ライブCDについて解説しています
補足事項:Ubuntu LinuxのISOイメージの配布は以下の場所で行われています。
https://ubuntulinux.jp/download/ja-remix
CygWinの導入がうまく出来ないという方に、かつてのコマンドラインCコンパイラのボーランドC5.5の導入方法を紹介します。2017年現在まだダウンロード可能です。
WindowsXP当時の環境の方には、最新のBCC5.5の環境は動作させられません。そのため、旧バージョンがまだダウンロード可能なので、その導入方法を解説します。2017年2月現在で、まだ可能です。
WindowsXPの環境にBCC32(5.5)をインストールするまでを紹介します。
補足事項:Ubuntu LinuxのISOイメージの配布は以下の場所で行われています。
https://ubuntulinux.jp/download/ja-remix
以後は、MACの環境でプログラムを実験していきますので、このレクチャーでは実際にMacの環境でプログラミング実行しておみせしましょう。
C言語のプログラムを学ぶ者が必ず伝統的に行うプログラムですが、このプログラムには、C言語のプログラミング上7割の重要項目がふくまれるので、必ず暗記しましょう。
暗記しましょうと伝統的に言われるHelloworldを表示するプログラムです。
WandBoxはオンラインでプログラムのコンパイルと実行結果を見ることのできるサイトです。
WandBOXに行き、Hello Worldの表示プログラムを実行してみましょう。
wandsboxが個人の方がボランティア運営してくださっているサービスなので・・・
メモリイメージの書き方を暗記してください。
1バイトの変数をメモリ上にとって、そのアドレス(番地)を表示してみます。
ポインタは、何型の変数であっても一定のサイズになることが理解できるようになります。
2進数と10進数の変換については、暗記事項です。
8進数は、2進数に戻して簡単に10進変換できますよ。
16進数も基本的には8進同様、まずは2進数表現にしてから簡単に10進数変換できます。
printfのフォーマットを解説したサイトさんは
http://www.k-cube.co.jp/wakaba/server/format.html
関数辞典さんはこちら (現在、このサイトは無くなっています)
http://www.c-tipsref.com/reference/stdio/printf.html
インターネットアーカイブにコピーが残っています。
file:///Users/tadaowatanabe/Desktop/C言語関数辞典.webarchive
IInternet Archiveというサービスを使うことで、過去のサイトのデーターをある程度再利用できます。
Internetarchivesにも限界がありますが、他にもリソースはたくさんあります。
wandboxについては章を設けてあるので参考にしてください。
メモリイメージの描き方を学びます。
まずメモリとビットの関係について解説してみました。
8進数と10進数の関係を解説しました。暗記事項の方が多いです。
2進数に変換できれば、10進数への変換も簡単にできることになります。
旧コンテンツですので視聴の必要はありません
10進数の100を16進数で表示する問題です。
wandsboxで実際に入力してためしてみましょう。
変数とメモリの関係、型そしてデーター型の理解はプログラム言語の理解にも直結します。
Wandboxでプログラムしてみましょう
int,long型については、現在レジスタサイズではありません。
プログラム言語とプログラミングの関係を解説してみました。
変数とメモリイメージを理解するときは一気にしなくてはなりません。
新しくプログラムを創る分には問題ないのですが、16bit時代のプログラムソースを、23bitあるいは64bitCPUに持っていく場合には、かなり気を使う必要があります。
整数型変数のサイズをプログラムで求めてみます。同じようにやってみてくださいね
long,float,double型のサイズもプログラムで表示して見てみましょう
ポインターは型に関係なく、同じ大きさになるので、実際に確かめてみましょう
実は二進数は奥が深いわりにC言語では直に扱えなかったりするのでその辺のことをお話します。少々手書きもあr」います。
C言語のC11の仕様での扱いで実際にプログラミングしてみます。プログラムソースはダウンロードできます。
通常の変数では扱いきれないデーター表現が必要になったために、データーの構造化が出現します。
構造化されたデーターからさらにデーターの抽象化という考えが発生します。
データー構造に次元を持ち込んだ配列について解説します。
白板を用いて二次元配列までとポインタについて解説してみました。2022年の最新版です。
3次元以上の配列はまず使うことはないので、3次元の配列のメモリイメージを理解すれば、多次元配列は問題ありません。
データーの抽象化について解説しています。
共用体の使いみち等について解説しています。
同じ内容で宣言した変数でも構造体と共用体ではサイズにちがいがあります。
構造体についてわかりやすく解説をしています。白板を使うので見ずらいかもしれませんがご容赦ください
二次元平面の一点を表すデータ:x,y座標の構造を構造体で作ってみます。
ポインターについては、専用の章を設けました、そちらもご視聴下さいませ
何型のポインタ変数であっても、サイズ=型は同じだということを確認してみましょう
プリプロセッサや、アノニマス・シノニムについて解説しています。
C言語がそれまでのプログラミング言語と違って革新的だったのが、記憶クラスです。変数のスコープとも言いますが、これが後のオブジェクト指向につながっていきます。
文字列と配列の関係を理解するにはC言語文字列を理解する必要があります。
実は日本語にはいくつかの文字コード体系があります。
ロケールとワイド文字列を使うと安定した日本語処理ができるようになります。
専門学校で20年以上プログラミング教育をした経験を活かしたカリキュラムになっています。また常に内容を見直し、最新の情報も取り込んでいます。
そのため、初心者向けと銘していますが、それは、表面だけ文法を説明するような内容ではなく、基礎を身に着けていただきたいために、言語の深い部分にまで詳細に解説、学習する方にC言語とはどのような言語なのかを理解していただける内容になっています。
そのため、数日でマスターできるというような安易な内容にはしていませんし、確実な理解に必要な時間数になっています。
このコースは、ITリテラシーの3部作の最初のコースとして設計しました。
このコースの次は、C言語を理解した上で、コンピューター概論、OS概論と続きます。三部目が、オブジェクト指向を予定しています。
初期の頃の欠点を見直し、白板解説が見づらい場合はスライド解説を取り入れ、動画時間数が長く、スマホ向きではないものは時間分割するなどの改善も施してあります。またプレビューも多く配置しました。
このコースで、学習しづらいものは、C言語そのものではなく、プログラミングですが、それでもプログラミングの基礎が身につくようなセクションも加えましたので、ぜひ受講してC言語の世界を楽しんでいただければと思います。
受講者さんの中の小中高の先生のためのプログラミング教育の考察章も加えました
2022年度の改良は、実習動画の増加に重きをおいていますので、ご安心いただけます。
講師 渡邊