Month: May 2016

C exercises(7) Pointer ArraysC exercises(7) Pointer Arrays

ポインタの配列 複数の文字列をchar型の2次元配列で宣言しました。それを下記に示します。 char kw[3][7] = {"double", "extern", "switch"}; 同様なものをポインタを使って宣言すると、下記のようにポインタの配列となります。 const static char *wday[ ] = { "Sunday", "Monday", "Tuesday", "Wednesday", […]

C# exercises (6) Graphics and PaintC# exercises (6) Graphics and Paint

Graphicsオブジェクト ウインドウの内部を表示したり描き直したりする必要が生ずると、Formに「Paint」というイベントが発生し、Paintプロパティに設定されているメソッドが呼び出されるようになっています。 このPaintイベント用のメソッドは、これまでのクリック時のイベント用メソッドなどとは微妙に違いがあります。これは以下のように定義されます。 private void メソッド名 (object sender, PaintEventArgs e) {     ……ここに描画処理を書く…… } 第1引数に、イベントが発生したオブジェクトが渡されるのは同じですが、第2引数に渡されるのはSystem.Windows.Formsパッケージの「PaintEventArgs」というクラスのインスタンスです。これは、描画のためのイベント情報を管理するもので、描画に必要なオブジェクトなどもこの中にまとめられているのです。 中でも重要なのが「Graphics」というオブジェクトです。これはSystem.Drawingパッケージに用意されているクラスで、これはGDI+(Graphics Device Interfaceというグラフィック描画のための機能の強化版)を利用して画面にさまざまな描画を行うための機能を提供します。 Paintイベント フォームのプロパティをイベントに切り替えて、Paintイベントを探し、メソッド名Form1Paintを入力 […]

C programming (7) Ch1 & Ch2 SummaryC programming (7) Ch1 & Ch2 Summary

履修システム使い方 (塚本先生担当) 連絡事項 花やしきについて、学生にお知らせ頂きたい事項を3点連絡  ①遅刻しないように 9:20までに 161教室に集合する事   出席の確認をします。  ②着物着付け、忍者の時間割をお知らせします。   「誰が何時」という情報  ③雨が降っても花やしきに行きます。   必ず9:20までに161教室に登校する事   第一章、第二章のまとめ 過去のページを参照 演習 演習2-6(P37) 身長を整数値として読み込み、標準体重を実数で表示するプログラムを作成せよ。 標準体重 = (身長 – […]

C exercises(6) Pointers and VariablesC exercises(6) Pointers and Variables

ポインタの仕組み:ポインタで変数を指す ポインタとは ポインタ (pointer)とは、あるオブジェクトがなんらかの論理的位置情報でアクセスできるとき、それを参照するものである。有名な例としてはC/C++でのメモリアドレスを表すポインタが挙げられる。(ja.wikipedia.org) ポインタ=メモリアドレス 間接演算子 * と アドレス演算子 & ポインタの使用手順 宣言 アドレスの設定 使用 ポインタで変数 間接演算子を使って、ポインタが指すメモリの値を取得することを間接参照するといいます。 間接演算子を用いれば、アドレスを間接参照するだけではなく、ポインタが表すアドレスに値を間接代入することもできます。 #include <stdio.h> int main() { […]

C exercises(5) AddressC exercises(5) Address

ポインタの仕組み:アドレスとは ポインタはC言語(および拡張言語)に特有の概念で、C言語を学び始めた初心者が必ずといっていいほどつまづく概念でもあります。ポインタがどうしても理解できないためにC言語に挫折してしまう方もいます。 アドレスの基本 コンピュータの記憶装置(メモリ)には、アドレスが付けられている。 変数のアドレス 変数のアドレスを取得するには変数名の前にアンパサンド “&”をつけます。 int a = 123; printf(“aのアドレス : %p\n”, &a); 配列のアドレス 配列の先頭をアドレスは、配列名だけで示します。要素のアドレスは&配列名[添字]で示します。 #include <stdio.h> int […]

[GCC]C Compiler on MacBook[GCC]C Compiler on MacBook

MacBookで、C言語開発環境の構築 Macに最初から入っている「テキストエディット」とMacに最初から入っている「ターミナル」から入門できますが、無料で多機能Atom、VSCodeを使えこなせるとより本格的にC言語開発できます。 Mac:C言語開発環境 Xcode またはXcode Command Line Toolsを入れる。 Xcode MacBookでは、Xcodeの開発環境を入れるは普通だか、サイズが大きい。iPhoneのアプリ開発環境も一気に揃う利点があります。 Xcode Command Line Tools Xcode Command Line Toolsだけ入れるとする。サイズの節約になります。 # xcode-select […]

CalculatorCalculator

電卓プログラムの考え方、書き方例 2つの数値の加減乗除をする電卓のようなプログラムを作ります。 簡単なようですが、多くの話題(データ型の選択、入力、判断や繰り返しなど)を含んでおり、学習に役立つ例題です。 今回は、プログラムをつくる流れも分かるように、どんなプログラムにするか検討するところから始めます。 それを処理手順に書き、C言語のコードに直します。 プログラムの機能を考える まずは、どんなプログラムにするかを考え、前提とすることや制約についても検討します。 数や演算の指定はどうする? たとえば「2 + 5」のように、「数値1 演算記号 数値2」の順に入力すると計算結果が表示されるようにする。 演算記号は、+, -, *, / のみとする。 繰り返して計算できるようにする 繰り返しの終了は、指定が上記の書式でなかったときとしよう。 […]

Reverse Polish Notation CalculatorReverse Polish Notation Calculator

逆ポーランド記法 逆ポーランド記法 逆ポーランド記法を使えば、式の計算をする(評価)には、先頭からひとつずつ順番に記号を読み込み、その記号が演算子以外であればスタックに値を積み、演算子であればスタックから値を取り出して演算し結果をスタックに積む、という簡単な操作の繰り返しだけでよい。そのため、プログラミング初心者の練習課題として、逆ポーランド記法の電卓を作ることがよく行われる。 逆ポーランド記法による計算の例 2+3を計算するとき,逆ポーランド記法では,次のように表す.数値や演算子(+, -, *, /)の間にはスペースを設ける. 2 3 + これはいくつかのメモリー(記憶場所)が準備されているとき, 2を1番目のメモリーに記憶 3を2番目のメモリーに記憶 1番目のメモリーの内容と2番目のメモリーの内容を加算 加算結果を1番目のメモリーに記憶 という手順で計算することを表している. 特徴: 日本語の並びと同じ計算順序 逆ポーランドには括弧がない […]