ニートです1からプログラミングを教えてくれる [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1たかし
垢版 |
2015/12/25(金) 18:43:55.48
先生を募集します

先生!!
106takasi
垢版 |
2015/12/27(日) 20:51:57.20
あと>>97で短く書き直すと言ったのですが、正直言います。面倒くさい!なので
>>100で言っていた部分を直しcpuHand = rnd.Next(1, 4); をwhileの中に移動しました
2015/12/27(日) 21:01:45.50
>>105
.slnや.csprojの中にもソリューション名やプロジェクト名の情報が入ってるから、
ファイル名を変えただけだと、不具合になるかもしれない。
面倒でもプロジェクトを一から作ることから始めるのがいいと思う。
汚い方法ならフォルダーまるごとコピーってのもあるけどプロジェクト名がかぶることになる。
2015/12/27(日) 21:09:14.52
ソリューションのフォルダーの中に「bin」というフォルダがある。
その中に「Debug」フォルダがある。
中を見ると拡張子が「.exe」のファイルがあるはずだ。
実行可能ファイル、通称「エグゼファイル」。
このファイルは、コマンドプロンプトからコマンドと同じように実行できる。
2015/12/27(日) 21:17:50.74
もちろん、プログラムが使用するバージョンの.NET Frameworkがインストールされていないと、
プログラムが開始しないでエラーになる。ユーザーにframeworkをインストールするように説明しないといけない。
110takasi
垢版 |
2015/12/27(日) 21:17:50.98
面倒なので新しく作りプログラム内容をコピペしました
他のファイル、フォルダはすべて削除しました
exeファイルでコマンドプロンプトからプログラムを実行デキルことを確認しました!
2015/12/27(日) 21:24:43.71
コマンドプロンプトは、昔のMS-DOSを引き継いでいる。
基本的な使い方と見た目はMS-DOSとあまり変わっていない。
キーボードで文字ベースの画面に文字列を入力して操作する操作系をCUIとかコンソールなどという。
2015/12/27(日) 21:28:31.26
BMI計算プログラムの計算結果を小数点以下第二位で四捨五入させて表示させよ。
2015/12/27(日) 21:35:10.42
>>103
クラス(class)のcだ。
クラスとはデータと、そのデータに対する処理を行う関数をまとめたものを扱うための型だ。
クラスの中の関数をメソッドという。
ソースをよく見るとclassが見つかるだろう?
2015/12/27(日) 21:49:06.20
失礼、staticのついた関数はインスタンスとは無関係でメソッドではない。
class Programの中にMainというstaticな関数がある。
Mainの引数はコマンドラインで渡された文字列の配列である。
コマンドラインは空白区切りである。
2015/12/27(日) 21:54:52.60
staticな関数を作ってみよう。
class Programの中に
「static int add(int x, int y) {
int z = x + y;
return z;
}」
と書きましょう。これは足し算する関数addです。returnは値を返します。
Mainでこのadd関数を呼び出すことができます。試してみよう。
116takasi
垢版 |
2015/12/27(日) 22:06:25.15
できました
static void Main(string[] args)
{
//BMI= 体重kg ÷ (身長m)^2
double dBmi;
double dWeight;
double dHeight;
Console.WriteLine("BMI計算プログラム");
Console.WriteLine("体重を入力して下さい(kg)");
//入力された文字列をfloat型に変換
dWeight = double.Parse(Console.ReadLine());
Console.WriteLine("身長を入力して下さい(m)");
dHeight = double.Parse(Console.ReadLine());
dBmi = dWeight / Math.Pow(dHeight, 2);
dBmi = Math.Round(dBmi, 2);
Console.WriteLine("あなたのBMIは" + dBmi);
Console.ReadLine();
}
117takasi
垢版 |
2015/12/27(日) 22:08:39.46
躓いたところは、変数に入れる値が低いのでfloat型にしようとしたのですが、Math.PowがDouble型の変数にしか対応していなかったのでやむなくDouble型にしました
2015/12/27(日) 22:10:02.35
メソッドを作ってみよう。class Programの中に
「int m_i = 0;
int f(int x){return m_i + x;}

とかいて、Main関数の中に
「var cMain = new Program();
cMain.m_i = 3;
Console.WriteLine(cMain.f(2).ToString());」
と書いて実行してみよう。予想通りに動いたかな? fはメソッドです。cMainはProgram型のインスタンスです。
119takasi
垢版 |
2015/12/27(日) 22:17:22.07
>>115
こんな感じで大丈夫でしょうか

class Program
{
static void Main(string[] args)
{
Console.WriteLine(add(100, 200));
Console.ReadLine();
}
static int add(int x,int y)
{
int z = x + y;
return z;
}
}
2015/12/27(日) 22:20:17.08
インスタンスは型を指定したnewによって作成され、メモリーにインスタンスのデータが格納されます。
インスタンスはメモリー上に複数存在することができます。
2015/12/27(日) 22:21:27.01
>>119
ok
122takasi
垢版 |
2015/12/27(日) 22:23:58.07
スタティックとかインスタンスとかよく分かってませんができました!

class Program
{
int m_i = 0;
int f(int x)
{
return m_i + x;
}
static void Main(string[] args)
{
var cMain = new Program();
cMain.m_i = 3;
Console.WriteLine(cMain.f(2).ToString());
Console.ReadLine();
}
}
123takasi
垢版 |
2015/12/27(日) 22:26:19.76
var cMainはインスタンスが入った変数ってことでしょうか
124takasi
垢版 |
2015/12/27(日) 22:27:34.54
メモリーが何なのかどこに存在するのかどのくらいの容量なのかわかりませんがそこはまだ追求しなくてもいいレベルですかね!頭がツアkれます!
125takasi
垢版 |
2015/12/27(日) 22:28:33.42
単語の意味は分かっていませんが、なぜこういう動作をするのかは一応分かりました
2015/12/27(日) 22:33:06.12
>>123
はい
127takasi
垢版 |
2015/12/27(日) 22:35:14.68
あと型varについてですが、型が明らかな時varを使うと仰っておりましたが、どこで明らかになっているかわかりません!
代入する値で判断しているのでしょうか?
例えば、
var i = 10 ←これは整数値だからint型だ!とコンピュータが判断
と、なればもう全てvarでもコンピュータの判断に任せることができるのではないでしょうか!
文章ヘッタクソなのでおかしなこと言っていたらごめんなさい!
128takasi
垢版 |
2015/12/27(日) 22:36:45.84
>>126
ありがとうございます先生!
クラスをNEWすると分身(インスタンス)ができるんですね
2015/12/27(日) 22:40:46.21
代入以外にもvarで型が決まるのはいろいろあるが、
代入の場合は右辺の型で決まる。
規則に従って型を推論する。
型推論というらしい。
130takasi
垢版 |
2015/12/27(日) 22:44:06.96
なるほど、推論ということは作り手の思ったものと違う型が作られてしまう場合もあるので”明らか”な時に使うのですね!
でも僕は確実にこれはこの型!ってはっきりしている方がいいのでvarを使うのは何か不安ですね
考えすぎですかね??
2015/12/27(日) 22:45:43.98
インスタンスを2個作って何かを試してみよ。
2015/12/27(日) 22:53:20.60
配列を作ってみよう。

int[] array = {12,34,56};
foreach(var item in array) {
Console.WriteLine(item);
}」
2015/12/27(日) 22:59:21.03
コマンドライン引数を表示してみよう。
「for(int i=0;i<args.Length;++i){
Console.WriteLine(i + ": " + args[i]);
}
2015/12/27(日) 23:03:01.89
お休み。
135takasi
垢版 |
2015/12/27(日) 23:05:18.39
>>131
できましたhttps://i.gyazo.com/4c11c7ec9b17bf0aba853fa6d0b5ee94.png
136takasi
垢版 |
2015/12/27(日) 23:12:52.67
>>132
できました
https://i.gyazo.com/886075721a18e99db212f49242ea5653.png

>>133
何も表示されませんでした・・・
https://i.gyazo.com/e726234b42bdede43ff02d7d50046559.png

おやすみなさい
137takasi
垢版 |
2015/12/27(日) 23:15:22.84
今日は余り進まなかった
単純なこと考えるだけなのに勝手にあたまがこんがらがるうううううううううう
2015/12/27(日) 23:42:02.64
>>114
修飾子がstaticのものはメソッドではないだとwww
139takasi
垢版 |
2015/12/28(月) 00:35:39.58
先生こんばんは
staticとは何なのかお教え下さい
140takasi
垢版 |
2015/12/28(月) 01:02:08.57
他に先生はいらっしゃいませんか!夕方8時に起きたので寝れないのです!
言語は問いません、なんでもやります僕はたまごっちです!
141takasi
垢版 |
2015/12/28(月) 01:06:38.66
言語は問わないと言いましたが、環境を用意するのが楽な言語が好ましいです・・・
Web開発とかアプリ開発に興味があります
偏差値40前後の高校を卒業後約10年ほぼニートでした
頭のできは良くありません!やる気もあまりありません!
今更自己紹介です!と、いうか違う言語を平行して勉強しないほうがいいですね!黙っときます!
2015/12/28(月) 01:07:50.41
>>141
違う言語を並行して学習するのは全然悪くないよ。
143takasi
垢版 |
2015/12/28(月) 01:11:52.03
>>142
そうなんですか先生
たしかにこのスレを立てる前にスプリクト言語?のUWSCというのをちょろっといじってましたがC#と似てる部分がありましたね
他の言語も似てるのでしょうかね?今ある言語はC言語の兄弟みたいなことを聞いたことあるのでたぶん似ているのでしょうね・・・
まあ僕に平行して勉強するような器用なことができるかはわかりませんが。。。
何か僕にやらせたい言語有りますか?すっごい他人任せですが
2015/12/28(月) 05:58:51.88
>>143
paizaに登録してスキルテストでまずはDランク問題全てクリアしなさい。C#も使えるよ
145takasi
垢版 |
2015/12/28(月) 17:18:48.12
おはようございます
paiza登録しました今から殺ります
146takasi
垢版 |
2015/12/28(月) 19:22:26.76
yesかnoを7回入力し、何回noを入力したかを出力するプログラムを書いているのですが

class Program
{
static void Main(string[] args)
{
int yukyu = 0;
for(int i = 1; i > 7 + 1; ++i)
{
String d_i = System.Console.ReadLine();
System.Console.WriteLine(d_i);
if(d_i == "no")
{
++yukyu;
}
}
System.Console.WriteLine(yukyu);
}
}
これでうまく動作しませんでした
エラーにもならないのですが、どこか問題あるのでしょうか。。。
147takasi
垢版 |
2015/12/28(月) 19:24:52.27
ReadLineが作動しないのです
forの外にあるReadLineは動作するのですが、for内のReadLineは動かないのでしょうか
2015/12/28(月) 21:13:06.72
i > 7 + 1
149takasi
垢版 |
2015/12/28(月) 21:31:23.64
アッ・・・
2015/12/28(月) 23:27:17.27
こうなってるのか?
(i>7)+1
151takasi
垢版 |
2015/12/29(火) 00:19:33.58
正 i < 7 + 1
誤 i > 7 + 1
でした
152takasi
垢版 |
2015/12/29(火) 02:21:53.24
今日はサボってしまいました申し訳ございません
153takasi
垢版 |
2015/12/29(火) 21:46:23.67
おはようございます
さっさとpaizaの課題を終わらせます
2015/12/29(火) 21:55:38.35
Main関数のargsは、実行時に渡されるコマンド引数を表す。
コマンドプロンプトでスペース区切りで渡すことができる。
プロジェクトのプロパティでもデバッグ時のコマンド引数を指定できるぞ。
2015/12/29(火) 21:58:30.19
コマンド引数によって処理を変えることはコンソール(CUI)ではよくある。
指定したファイルを開いて処理したい場合などに便利だ。
156takasi
垢版 |
2015/12/29(火) 23:17:51.73
>>10あたりで勉強したコマンドですね、覚えておきます
paizaの問題D002で1時間以上掛かってしまいました
適性が無いと感じ泣きそうになります
157takasi
垢版 |
2015/12/30(水) 01:49:38.62
8/32まで終わりました 残りも頑張ります

先生方に質問です。VSで引数"()"の"("を入力するとインテリセンス機能?で")"が入力されますが
文字入力位置は"("と")"の間に有り、引数が要らないReadLine()などですと
末尾に移動するのにアローキーの→を押すか、Endキーを押さなくてはならなくて指の移動が辛いです!
先生方はどのように移動させていますか?我慢して→かEndを押さねばならないのでしょうか?
冬で手がかじかみ誤打を頻発させています・・・
2015/12/30(水) 07:48:28.06
>>157
そのまま)を入力する。
手がかじかむなら暖房を掛ければ?
159takasi
垢版 |
2015/12/30(水) 20:56:53.90
おはようございます

それは)を入力して自動入力された)を削除でしょうか?
もしくは()の自動入力をOFFにしているので)をそのまま入力ということでしょうか?
後者であればその()の自動入力をOFFにする方法を教えていただきたいです!
他の自動入力機能は便利なので()だけOFFにするっていうのはできませんかね?
2015/12/30(水) 21:18:50.47
「ツール」→「オプション」から自分で探せ
2015/12/31(木) 20:56:03.54
応援してるよ!がんばって
162takasi
垢版 |
2015/12/31(木) 21:36:11.04
>>160
ありがとうございます

>>161
ありがとうございます

ありがとうございます

ありがとうございます

良いお年を
2016/01/01(金) 00:16:42.73
明けましてすみません。
164takasi
垢版 |
2016/01/02(土) 05:35:53.62
明けましておめでとうございます。今年もよろしくお願い致します。
課題の続きをします
このところ課題しかやってる気がしないのですがこれでいいのでしょうか
たぶんいいのでしょうねまずはコード書くことに慣れること
果てしてシンプルなメモ帳と自動シャットダウンタイマーを作れるところまで成長するのでしょうか、続くのでしょうか・・・
スマホアプリなんかも作ってみたいと思うようになってきましたそんな2016年
165takasi
垢版 |
2016/01/02(土) 08:52:04.12
配列のインデックス番号は0から始まりますよね
例えば配列に5つの要素を入れたい場合は0から始まるので、
要素1.[0]
2.[1]
3.[2]
4.[3]
5.[4]
new int[4]となるはずですが
int[] s = new int[4];
for (int i = 0; i < 5; ++i)
{
s[i] = int.Parse(Console.ReadLine());
}
としたところエラーがでました
しかし、宣言でint[5]にしたところエラーにならず、要素も5つ入れることができました
int[5]だと要素が6つ入るのでは?????????
????????状態です
166takasi
垢版 |
2016/01/02(土) 08:55:46.04
ああ、馬鹿だあああああああ
そりゃループ回数が5回だから要素が6つも入るわけ無いですよね
と、いうことは↑s[5]は何も要素が入ってないことになりますよね
わざわざ空の要素を用意しないといけないのでしょうかああわからない
167takasi
垢版 |
2016/01/02(土) 08:58:50.57
MSのガイドを見たら
int[] array = new int[5];

array[0]~[4]の要素しかないんですね
間違って覚えてた!!!!!!!!!!!!!
168takasi
垢版 |
2016/01/02(土) 08:59:17.84
ややこしい!!!!コンニャロう!!
169片山博文MZ ◆T6xkBnTXz7B0
垢版 |
2016/01/02(土) 14:10:34.05
int NUM = 5;
int[NUM] a;
for (int i = 0; i < NUM; ++i) {
a[i] = i;
}
2016/01/02(土) 15:19:44.76
>>1
ニートには100%無意味だから無駄な時間を使うべきではない。
2016/01/02(土) 16:50:25.39
バッチファイル厨嫌いじゃない
2016/01/02(土) 17:25:39.25
次はファイル入出力だ。
九九の表をテキストファイルに出力してみよ。
2016/01/02(土) 17:30:02.02
ファイルを入出力する前にオープン(開く)という操作が必要だ。
入出力が終わったらクローズ(閉じる)しないといけない。
2016/01/02(土) 20:18:53.09
あけおめ

なにこれ、マジスレ?
2016/01/02(土) 20:33:29.78
>>174
マジスレだよ。たかしは本気だ。
2016/01/02(土) 20:40:42.77
コマンドプロンプトで「notepad」と入力するとメモ帳が起動する。
メモ帳のファイル名が「notepad.exe」で、システムに登録されているからだ。
「notepad "(パスファイル名)"」を入力すればメモ帳でファイルが開かれる。試して見なさい。
2016/01/02(土) 20:59:53.53
コマンドを探しだす方法は、「サーチパス」、すなわちPATHという環境変数によって指定する。
詳しくは「Windows サーチパス」で検索。
環境変数にはシステムの環境変数と、プロセスの環境変数の二種類ある。
プロセスはプログラムのインスタンスである。
また、Windowsはサーチパス以外にもAppPathというレジストリーからの情報も使ってコマンドを検索することがある。
AppPathに登録していれば、Win+Rからコマンドを起動できる。
178takasi
垢版 |
2016/01/02(土) 21:39:22.76
おはようござざいます

ファイルの入出力やってみます

このスレはマジですけどやる気はマジではないかもしれません
2016/01/02(土) 22:13:13.55
「C:\Program Files」はプログラムと、変更しないデータを格納するためのシステムフォルダである。
このフォルダにプログラムを格納したい場合、「インストーラ」を使う。
このフォルダは管理者権限なく、勝手に変更してはならない。
よってこのフォルダに設定ファイルを書き込んではいけない。
設定を書き込みたい場合は、AppDataかレジストリを使う。
180takasi
垢版 |
2016/01/02(土) 22:16:00.36
九九の表できた・・・!
class Program
{
static void Main(string[] args)
{
int num;
for(int i = 1; i < 10; ++i)
{
num = i;
for(int n = 1; n < 10; ++n)
{
if (n == 9) Console.WriteLine(num * n);
else if (n == 1) Console.Write(i + "の段 " + num * n + " ");
else Console.Write(num * n + " ");
}
}Console.ReadLine();
}
}

嬉しいので報告だけしました
2016/01/02(土) 22:18:44.87
バイナリファイルの読み書きができたら、Windows Forms (WinForms) に進んでもいいぞ。
2016/01/02(土) 22:22:42.12
>>180
それをテキストファイルに書き込めばいい。

http://ufcpp.net/study/csharp/lib_file.html
2016/01/02(土) 22:33:33.05
数値の出力において桁をそろえたい場合はString.Formatメソッドを使う。
Stringクラスはよく使うので、ひまなときはStringのメソッドを眺めておきなさい。
184takasi
垢版 |
2016/01/02(土) 23:07:56.26
できました!これでよかでしょうか
https://i.gyazo.com/dc888ad7d26be90b98ab70f4c5700482.png
185takasi
垢版 |
2016/01/02(土) 23:10:45.17
質問です。今C#を勉強していますが、このままC#を勉強すればCは勉強しなくても良いでしょうか
186takasi
垢版 |
2016/01/02(土) 23:14:46.30
と、いいますかC#の基本を理解すれば他の言語への学習もすんなり活きますか?
2016/01/02(土) 23:24:22.88
>>184
水平位置がそろっていないように見える。
九九の表ではそろえないといけない。
数値をそろえるためのstatic関数を作ってみろ。
String.Formatが使えるはず。
OSを作りたいならCは必須だが、C#の後でいい。
2016/01/02(土) 23:35:49.30
お休みなさい
189takasi
垢版 |
2016/01/02(土) 23:37:53.66
>>184
↑のすでに記述されたコードはいじらずに関数の追加だけでyそうか?
190takasi
垢版 |
2016/01/02(土) 23:39:18.32
おやすみなさい!!
191takasi
垢版 |
2016/01/03(日) 03:39:37.95
>>144先生!やっと終わりました!https://i.gyazo.com/41c13dc803015cb945175b67089c10d3.png
>>184の訂正は明日やりますおやすみなさい
2016/01/03(日) 10:57:18.83
>>191
なかなか飲み込み早いな!
2016/01/03(日) 13:51:52.10
九九の表の「データの流れ」(data flow)について考えよう。
九九のそれぞれの数はintであった。それが単一行Stringになり、WriteLineに渡される。
実は、改行文字は"\n"で表せる。これをWriteに渡せば勝手に改行してくれる。
改行文字を使うと、九九の表は複数行文字列で表せる。
データの流れは次のようにできる。

int→単一行文字列→複数行文字列⇒Write
194takasi
垢版 |
2016/01/03(日) 15:01:40.20
おはようございます続きやります
2016/01/03(日) 15:07:11.52
プログラムは役に立たせるためにあるの。
ニートは人が困ってるのを理解できてないからやれることなの。
人が困っているのを理解できない奴は役に立つプログラムは組めないの。
よって無駄。
196takasi
垢版 |
2016/01/03(日) 15:19:40.58
static関数を作って水平位置を揃える方法が分からなかったので
すでに記述されたコードをいじれば簡単にできそうだったのでやりました!
https://i.gyazo.com/e5b8f5933aeab6d63ce186064a51c487.png

それはプログラムだけではなく全ての事に言えますね!
なら僕は自分がやりたいことだけやります!!
2016/01/03(日) 15:27:53.06
今度は、そのテキストファイルをいっぺんに読み込んで画面に出力してみろ。
198takasi
垢版 |
2016/01/03(日) 15:53:05.90
できました
https://i.gyazo.com/2bc9319292001ca6ea87abefd2ac14ba.png
質問です。結果を確認するためにはReadLineで画面に出力して確認するしか無いのでしょうか?
2016/01/03(日) 16:07:45.16
>>198
デバッグ機能にステップ実行がある。少しずつ実行しながら、下の「自動変数」などの画面で変数の内容を確認できる。
また、右下の画面で呼び出し履歴が見られるし、指定したブレークポイントでデバッグ実行を止めることができる。
ただし、プログラムがDebug versionじゃないといくつかの機能は使えないかもしれない。
200takasi
垢版 |
2016/01/03(日) 16:11:30.02
ReadLineで画面出力の方が手っ取り早いから使っているんですねわかりましたありがとうございます
2016/01/03(日) 16:12:37.06
Release versionはデバッグ情報がない分、プログラムサイズが小さく、実行が速くなる。
だから、一般にプログラムを配布する場合はReleaseを使う。
2016/01/03(日) 16:15:27.34
ReadLineは入力だぞ。出力ではない。
2016/01/03(日) 16:19:06.40
次はバイナリファイルの読み書きだ。
int[] aに適当なデータを入れてその内容をバイナリファイルに書き込め。
2016/01/03(日) 17:22:59.63
改行コードを含むテキスト文字列を一気に読み込む場合はFile.ReadAllTextを使う。
逆に一気に書き込みたい場合はFile.WriteAllTextを使う。
2016/01/03(日) 17:39:21.25
ReadAllTextやWriteAllTextにはオープンが必要ない。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況