第1講 始めようVisual C++
第7話 バックアップの方法とソースを書くコツ
皆さん、これからたくさんプログラムを作っていきます。
そこで、プログラムをバックアップする方法やソースを簡単に書く方法をご紹介しておきます。
まず、皆さんに結構高度なソフトが簡単にできてしまうことを体験して頂きます。
(以下は、VisualC++2010Express Edition以外のバージョンではエラーしますので、
第2話 Visual C++をインストールしよう
によってVisualC++2010Express Editionをインストールしてください。)
これから作っていただくソフトは、第21講で学ぶ末項確定法による魔方陣作成ソフトです。
このサイトでは、題材として魔方陣の作成を扱う場面が多々ありますので、
魔方陣とは何か、例を挙げて説明しておきましょう。
7 | 23 | 37 | 64 | 33 | 57 | 25 | 14 |
3 | 55 | 44 | 18 | 50 | 6 | 21 | 63 |
61 | 27 | 30 | 26 | 60 | 1 | 31 | 24 |
46 | 36 | 12 | 17 | 15 | 38 | 34 | 62 |
19 | 51 | 22 | 53 | 28 | 16 | 29 | 42 |
35 | 9 | 59 | 20 | 56 | 39 | 32 | 10 |
40 | 48 | 4 | 54 | 13 | 58 | 41 | 2 |
49 | 11 | 52 | 8 | 5 | 45 | 47 | 43 |
この例は8次魔方陣です。
8次という意味は、1辺が8の正方形だという意味です。
そして、魔方陣とは、
8次魔方陣なら各セル(升)に1から64までの数字が漏れなく1つずつ入っていて、
2本の対角線、すべての列(縦)、すべての行(横)の合計が同じになるものです。
8次魔方陣を人が作るとしたら、1週間本気で考えても1つもできないでしょう。
それを1秒で何百個もコンピュータに作らせてしまうのが、魔方陣作成ソフトです。
コード(プログラミングの文章)の内容は、本講を順に読んでいって頂かないと理解はできませんので、
ここでの理解は、操作面に限らせて頂きます。まず、次をクリックして頂いて開いてください。
ダウンロードファイルForm5.h
フォイルが開けたら、上から下までドラッグで範囲指定してください。
・
・
・
そして、右クリックしてコピーしてください。
次に、Visual C++を起動して頂き、
新しいプロジェクトをクリックします。CLRとWindowsフォームアプリケーションを選び、
名前を末講確定法として下さい。そうすると、ソリューション名も末講確定法になります。
場所については、上の画面と違ってもそのまま(デフォルトのまま)にしておいて下さい。
変更してしまうと、エラーしてしまうので場所はいじらないで下さい。
名前が入りましたら、OKボタンを押します。
上図のようになったら、Form1.hを右クリックすると、
サブメニューが開きますので、
コードの表示をクリックします。すると、
のようにコードが現れますので、コードの上から下までドラッグで範囲指定をして下さい。
・
・
・
そして、右クリックして、貼り付けを選びます。
すると、コードがダウンロードしたダウンロードファイルForm5.hと同じになります。
要するにコードを最初のものからコピーペーストを使って、
ダウンロード用ファイルForm5.hのコードに変更したのです。
コードの変更がうまくいかなかった方は、
1度上から下までドラッグして範囲指定をして,Deleteキーで削除してから、
ダウンロードファイルForm5.hからコピペをしてコードがダウンロードファイルForm5.hと同じになるまで、
粘り強く挑戦されて下さい。
変更がうまくいった方は、F5を押してビルドされて下さい。
すると、というソフトが立ち上がるはずです。
TextBoxに、例えば4と入力され実行ボタンを押して下さい。
パソコンの性能によっては、数秒かかるかもしれませんが次のように結果が出力されるはずです。
そして、スクロールすると、
となります。
これは、
私の使用パソコンでは4次魔方陣100個作るのに0.2808秒かかったということを示しています。
皆様におかれましてはどうでしょうか。
もっと、短い時間でできていれば、
皆さんが使っているパソコンの方が私のパソコンより性能が上だということです。
私のパソコンで、1個あたり0.002808秒です。
どうです。すごいでしょう。
TextBoxには10まで入力可能ですから、実験してみて下さい。
ただし、数字が大きくなるにしたがって処理時間が長くなりますので、待ち時間は長くなります。
10次にしますと、私のパソコンでは、
100個作るのに、約37秒です。
1個あたり、0.37秒です。
私は、経験がありませんがプロジェクト名(名前)が全角だと、
パソコンによっては動かない場合があると、書籍には書いてありますので、
うまくいかなかった方はプロジェクト名を例えばp(半角アルファベット)としてもう一度実験して下さい。
ただし、その際はコードの
#pragma once
#include<stdlib.h>
int n;
int a1[20][20],a2[20][20],p[20][20],cn1[20],cn2[20];
int x[400],y[400];
int s;
namespace 末項確定法 {
using namespace System;
・
・
・
末項確定法もpに変更されて下さい。
コードの内容は別にして、ソフトが簡単にできてしまうことがお分かりでしょうか。
さらに、注目すべきことは、
デザインに変更すると、
とデザインまで変更されていることです。
デザインの方でツールボックスから上のようにデザインすることは、
かなり手間のかかる作業です。
そのやり方は第15講第8話 DataGridViewによる順列作成ソフトの改良その1で学びますが、
軽く30分はかかる作業です。それが、一瞬にしてできたことに注目されて下さい。
実は、デザインがどうなっているかは、すべて
コードに書かれているのです。
ですから、コードをいじると自動的にデザインも出来上がるのです。
これから、様々なコーティング(プログラミングの文章を書くこと)に挑戦しますが、
是非、コピーペーストをうまく活用して下さい。
ただし、しばらくはいじるコードは、
赤で囲ってある部分だけです。
その他は、基本的には学習が進むまでいじらないようにして下さい。
ソースを書くコツを紹介します。
コードの内容は、後に学習しますので、タイピングのコツだけを学んでください。
void f(){
int i,j;
for(i=0;i<100;i++){
for(j=0;j<100;j++){
a[i][j]=100*i+j+1;
}
}
String^ w=L"";
for(i=0;i<100;i++){
for(j=0;j<100;j++){
w+=a[i][j]+L" ";
}
w+=L" ";
}
}
例えば、これから
void f1(){
int i,j;
for(i=0;i<100;i++){
for(j=0;j<100;j++){
a1[i][j]=100*i+j+1;
}
}
String^ w=L"";
for(i=0;i<100;i++){
for(j=0;j<100;j++){
w+=a1[i][j]+L" ";
}
w+=L" ";
}
}
を作るのに、すべてタイピングすることは無駄な作業です。
もちろん、コピーペーストをご利用されて下さい。
コピーして、貼り付けをします。
そして、a[i][j]を手でa1[i][j]と変更されてもいいわけですが、
是非とも置換という方法を覚えて下さい。a[i][j]をドラッグして、範囲指定してから、
編集をクリックして、クイック置換を選びます。
そうすると、検索する文字列には自動的にa[i][j]が入っています。置換後の文字列をa1[i][j]として、すべてを変更するときにはすべて置換を選んで下さい。
今回の例では、a[i][j]は2個しかありませんでしたが、学習が進んでいくと何十個も出てくることがあります。
これをいちいち手で修正していたのでは、大変ですからクイック置換を是非活用したいのものです。
コピペとクイック置換を有効に組み合わせて、効率よくコーティングされて下さい。
最後に、バックアップの方法を紹介します。
プロジェクトを作ると、
場所に書いてあるフォルダ内に、
名前(ソリューション名)と同名のフォルダが作成されます。
このフォルダの中に今回作ったプロジェクトの関連ファイルがすべて収まっています。
プロジェクトとは実は、関連ファイルの集合体なのです。
さらに、ソリューションは複数のプロジェクトを束ねたものということになっていますが、
実際には、
ソリューションには1つのプロジェクトしか入っていませんから
(この講義では複数入ることはありません。)
実質プロジェクト=ソリューションです。
このファイルの集合体が、新しく作られたフォルダの中にすべて納められているのです。
ですから、バックアップは適当にフォルダを作っておいて、
そこにコピーペーストするだけでできます。
私の場合は、D:\VC++2010というフォルダが作ってあり、
さらに中にd1からd10までの10個のフォルダが切ってあります。
例えば、場所をD:\VC++2010\d3にしてプロジェクトを作った場合には、
D:\VC++2010\d3内に名前と同名の『末講確定法』というフォルダができます。
このフォルダをコピーして、
例えばD:\VC++2010\d4に貼り付ければ、バックアップとなります。
つまり、D:\VC++2010\d3とD:\VC++2010\d4に
同じフォルダ『末講確定法』ができます。
そして、このフォルダがプロジェクト関連ファイルの集合体なのです。
プログラミングを大きくいじるときには、
必ずバックアップ(できれば複数)をとっておいて下さい。
そして、修復が困難なほど大きく失敗してしまった場合には、
本体フォルダ(今の例ではD:\VC++2010\d3の末項確定法などの該当フォルダ)を削除してから
バックアップしてあったフォルダ(D:\VC++2010\d4などにある)をコピーして、
もとのフォルダが納めてあった
フォルダ(今の例ではD:\VC++2010\d3)に貼り付けをして下さい。
尚、ここで述べたことと同様な説明が
第19講第8話 ソースを書く際のコツに書かれていますので
そちらも参照してください。
NEW! eclipse c++ 入門
NEW! 魔方陣 数独で学ぶ VBA 入門
NEW数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第2部
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第3部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ