電卓作る

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2010/11/15(月) 17:09:29
どうやって作るんだ
112デフォルトの名無しさん
垢版 |
2010/11/19(金) 22:19:16
>>111
prog.cs(15,8): error CS0165: Use of unassigned local variable `keisan1'
prog.cs(17,29): error CS0165: Use of unassigned local variable `keisan2'
prog.cs(17,38): error CS0165: Use of unassigned local variable `mojisuu'
prog.cs(19,9): error CS0165: Use of unassigned local variable `kekka'
prog.cs(23,19): error CS0165: Use of unassigned local variable `kekka'
Compilation failed: 5 error(s), 0 warnings

visual c#でもコンパイルエラーになる
2010/11/19(金) 22:31:37
>>112
まずwhileの前にkeisan1に値を入れて一番上のエラーを潰したら?
114デフォルトの名無しさん
垢版 |
2010/11/19(金) 22:38:16
>>113
int型に全部入れたがエラー出る

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object
at Test.Main () [0x00000] in <filename unknown>:0

2010/11/19(金) 22:40:45
>>114
コードは?
116デフォルトの名無しさん
垢版 |
2010/11/19(金) 22:41:42
using System;

public class Test
{
public static void Main()
{
string nyuuryoku;
int keisan1 = 0;
int keisan2 = 0;
int mojisuu = 0;
string moji1;
int suuchi1 = 0;
int kekka = 0;
nyuuryoku = Console.ReadLine();
while (keisan1 != -1){
keisan1 = nyuuryoku.IndexOf("+");
moji1 = nyuuryoku.Substring(keisan2, mojisuu);
suuchi1 = Convert.ToInt32(moji1);
kekka = kekka + suuchi1;
keisan2 = keisan1;
mojisuu = keisan1 - keisan2;
}
Console.WriteLine(kekka);


}
}
2010/11/19(金) 22:46:08
>>116
C#はしらないんだけどstringにも何か入れてみたら?
あと実行時のエラーは色んなところをコメントアウトしたりprint文を入れて行ってすこしずつ調べる
118デフォルトの名無しさん
垢版 |
2010/11/19(金) 22:54:14
prog.cs(11,8): error CS0029: Cannot implicitly convert type `int' to `string'
Compilation failed: 1 error(s), 0 warnings

できない
2010/11/19(金) 22:56:52
>>118
その英語を訳すと?
120デフォルトの名無しさん
垢版 |
2010/11/19(金) 22:58:52
>>119

intからstringに変換できないとか

文字を入れても駄目だった
2010/11/19(金) 22:59:57
>>120
コードは?
あとsageで
2010/11/19(金) 23:01:02
using System;

public class Test
{
public static void Main()
{
string nyuuryoku;
int keisan1 = 0;
int keisan2 = 0;
int mojisuu = 0;
string moji1 = 0;
int suuchi1 = 0;
int kekka = 0;
nyuuryoku = Console.ReadLine();
while (keisan1 != -1){
keisan1 = nyuuryoku.IndexOf("+");
moji1 = nyuuryoku.Substring(keisan2, mojisuu);
suuchi1 = Convert.ToInt32(moji1);
kekka = kekka + suuchi1;
keisan2 = keisan1;
mojisuu = keisan1 - keisan2;
}
Console.WriteLine(kekka);


}
}

2010/11/19(金) 23:01:46
>>122
>文字を入れても駄目だった
とはどこの部分?
124デフォルトの名無しさん
垢版 |
2010/11/19(金) 23:02:49
>>123
string moji1 = 0;

string moji1 = a;
に変えた
2010/11/19(金) 23:04:14
>>124
aは文字ではない。
126デフォルトの名無しさん
垢版 |
2010/11/19(金) 23:06:08
>>125
string moji1 = "a";
に変えたがエラーが出る
Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object
at Test.Main () [0x00000] in <filename unknown>:0

2010/11/19(金) 23:12:16
Runtime errorは出ても問題ないのか
2010/11/19(金) 23:13:07
>>126
もうすぐだ。
sageろっての。

実行時のエラーはコメントアウトしていって問題の場所を突き止める。


// い
// う
// え

がエラーなかったら



// う
// え

これも大丈夫なら




// え

と少しずつはずしていけば場所が分かる
2010/11/19(金) 23:20:41
using System;

public class Test
{
public static void Main()
{
string nyuuryoku;
int keisan1 = 0;
int keisan2 = 0;
int mojisuu = 0;
string moji1 = "a";
int suuchi1 = 0;
int kekka = 0;
nyuuryoku = Console.ReadLine();
while (keisan1 != -1){
keisan1 = nyuuryoku.IndexOf("+");
//moji1 = nyuuryoku.Substring(keisan2, mojisuu);
//suuchi1 = Convert.ToInt32(moji1);
//kekka = kekka + suuchi1;
//keisan2 = keisan1;
//mojisuu = keisan1 - keisan2;
}
//Console.WriteLine(kekka);


}
ここでエラーになった
2010/11/19(金) 23:27:07
>>129
その悪い行をコメントアウトして
かわりにその時点でnyuuryokuに何が入っているか表示させてみたら?
2010/11/19(金) 23:32:23
>>130
エラーの原因は↓だった
while (keisan1 != -1){

2010/11/19(金) 23:36:10
>>131
解決した?
133デフォルトの名無しさん
垢版 |
2010/11/19(金) 23:37:50
>>132
whileは負の数を使えないのか
2010/11/19(金) 23:40:49
>>133

// while (keisan1 != -1){
keisan1 = nyuuryoku.IndexOf("+");
//
//
// }

こうコメントアウトするとどうなる?
2010/11/19(金) 23:44:05
>>124
同じエラーが出た
2010/11/19(金) 23:45:19
>>135
じゃ keisan1 = nyuuryoku.IndexOf("+"); が悪い行だよな。
これもコメントアウトしてnyuuryokuになにが入ってるか見たら?
2010/11/19(金) 23:45:29
安価ミス
>>134
2010/11/19(金) 23:56:08
この前perlで数百ケタ同士の掛け算ができるスクリプト作ったら
計算終わるまでに20分とかかかってワロタww
そのあとBigIntあるとか知ってさらにワロタwww
2010/11/19(金) 23:58:31
using System;

public class Test
{
public static void Main()
{
int a;
int b;
if (a = -1){
b = 1;
}
while (b != 1){
Console.WriteLine("a");
}
}
}
これでもできなかったから負の数を使わないメソッドを自分で作ればいいのか
2010/11/20(土) 00:01:38
>>139
それがだめなのは>>112だからだろ
そんなことより>>136の結果は?
2010/11/20(土) 00:07:01
>>140
ideoneというサイトだと実行できない
いまコンパイラをインストールしてる
2010/11/20(土) 00:08:13
>>136
は前にやったが入力した文字が表示された
2010/11/20(土) 00:08:17
>>141
おk
2010/11/20(土) 00:14:26
>>139
今回のに関係ないが
if (a = -1){
じゃなくて
if (a == -1){
2010/11/20(土) 00:25:33
入力した文字が表示された

ここは問題ないのか
2010/11/20(土) 00:29:17
コメントをなくして実行すると
入力文字列の形式が正しくありません。
と表示される
2010/11/20(土) 00:29:20
>>145
なにも入力しないとどうなる?
2010/11/20(土) 00:31:07
>>147
同じエラーが出る
suuchi1 = Convert.ToInt32(moji1);
が問題のようだ
2010/11/20(土) 00:34:43
変数
args {string[0]} string[]
nyuuryoku "1+1" string
keisan1 1 int
keisan2 0 int
mojisuu 0 int
moji1 "" string
suuchi1 0 int
kekka 0 int
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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