電卓作る

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2010/11/15(月) 17:09:29
どうやって作るんだ
2010/11/19(金) 19:18:49
C言語で作ってやったからいい加減黙れ。
感謝しろよ?

---start---
#include <stdio.h>
int main(){
int input1;
int input2;
printf("最初の数字を入れ(ry\n");
scanf(%x,&input1);
printf("\nもひとつ数(ry\n\n");
scanf(%x,&input2);
int answer = input1 + input2;
printf("\n\n\n\n\nあんさー:");
printf("%d\n\a\a\a,answer);
}
---end---

sage
103デフォルトの名無しさん
垢版 |
2010/11/19(金) 20:49:05
>>102
二つの数字を足すソフトはもう作った
2010/11/19(金) 21:02:37
>>103
コード晒せ
2010/11/19(金) 21:02:54
>>1
四則演算程度の電卓ならVBとかC#使えばバカでも作れるだろ。
2010/11/19(金) 21:55:52
たぶん1は高速なのを作りたいんじゃないの
107デフォルトの名無しさん
垢版 |
2010/11/19(金) 22:02:19
>>104
>>30
2010/11/19(金) 22:05:31
enzansi=[+ - * /] -> GUI.makeTheseButtons(hurry())
output.LEDlikeDisplay <- do(fuckking.hurry())[input + enzansi + input]
rest(in(peace(the world)))
109デフォルトの名無しさん
垢版 |
2010/11/19(金) 22:08:50
30のコードはコンパイルできなかった

自分でメソッド作ったほうがいいのか
2010/11/19(金) 22:11:56
change(reason=forSomeReason, Display.replace(LED -> 7 Seg Like)
whichIs <= 7(Segment) ... Bright.Red with Black background | make(hurry())
rest(in(peace(the world)))
2010/11/19(金) 22:13:26
>>109
エラーメッセージは?
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
2010/11/20(土) 00:37:36
>>148
>同じエラーが出る
って事はIdeone上では何も入力しない状態だったってことだ。
(「null readline」 で検索)

あとはがんばれ
明日早いんで寝る
2010/11/20(土) 02:01:28
>>101

何コレ?

何の言語かさえ分からん。
2010/11/20(土) 02:36:04
電卓なんてそこいらのプログラミングの本にサンプル載ってるだろ
馬鹿だ。関数電卓ですら簡単に作れるのに
難しいのは()を使った構文解析とかだ
2010/11/21(日) 04:13:10
ttp://ideone.com/G3ul5
Luaで適当に書いてみたけど途中で飽きた。誰か完成させて。
2010/11/22(月) 10:16:51
精度はあんまりよくないけど、昔ネトゲ用に自作電卓を作った
JavaScriptで、現在入力してる数値が見れるのが売りで、割り算後の小数点切捨てと小数点ありの結果も同時にだしている
2010/11/22(月) 16:20:24
>>154
うp!うp!
2010/11/22(月) 21:20:16
素人なんでいろいろ辺だと思うがそこは勘弁な
長いといわれたので少し省略 ボタンの部分も省略

function calc(ch)
{
if(ch == "=")
{
document.form1.text2.value = Math.floor(eval(document.form1.text1.value));
document.form1.text3.value = eval(document.form1.text1.value).toFixed(3);
} else if (ch == "C")
{
document.form1.text1.value = "";
document.form1.text2.value = "";
} else
{
document.form1.text1.value += ch;
}
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR = "#FFFFFF" TEXT = "#000000">
<TR><FONT color="#FF0000"><H1>JavaScript電卓</H1></FONT></TR>
<FONT color="#87CEFA">
<FORM NAME = "form1" ACTION ="#">
計算
<INPUT type="text" name="text1" value="" size="120"><BR><BR>
答え(小数点切捨て)
<INPUT type="text" size="26" name="text2" value=""><BR><BR>
答え(小数点有り)
<INPUT type="text" size="26" name="text3" value=""><BR><BR>
</FONT>
2010/11/23(火) 22:31:37
演算はどうでもいいので2〜36進変換したいです
2010/11/23(火) 22:38:34
やり方知らんのか?
2010/11/23(火) 22:46:35
浮動小数点の10進数以外の表示はライブラリがそろってないからそれなりに難しいな。
2010/11/23(火) 23:29:26
>>158
書いてみてください
2010/11/23(火) 23:47:41
手計算してみ、小学校で習う、出来るだろ
2010/11/23(火) 23:52:00
なんだ結局煽るだけか。
2010/11/23(火) 23:54:03
浮動小数点なのか整数(または固定小数点)なのかはっきりしる。
2010/11/24(水) 00:11:12
>>163
おまかせします
165158
垢版 |
2010/11/24(水) 12:55:14
>>160
最適化など何も考えず素直に Haskell で実装した
cnTrans 関数が x 進数から y 進数へ変換する

------------
data Number = Number Integer [Integer]
              deriving Show

cnTrans :: Integer -> Number -> Number
cnTrans c = fromDec c . toDec

toDec :: Number -> Integer
toDec (Number c ns) = sum $ zipWith (*) ns $ iterate (*c) 1

fromDec :: Integer -> Integer -> Number
fromDec c 0 = Number c [0]
fromDec c n = Number c (unfoldr f n)
  where f d = if d == 0 then Nothing else Just $ swap (d `quotRem` c)
        swap (a,b) = (b, a)
------------
2010/11/24(水) 18:58:47
10進数の1234を、16進数にする場合

1234 / 16 の余りを得る → 2 一桁目は2になる。

1234から一桁目の2を引く → 1232


1232を、16で割る → 77
77 / 16の余りを得る → 13 二桁目は13になる。(16進数だと、10がA、11がB、12がCだから、13はDになる)

77から二桁目の13を引く → 64


64を、16で割る → 4
4 / 16の余りを得る → 4 三桁目は4になる。

4から三桁目の4を引く → 0


0になったら終了。

得られた各桁を並べて書くと
4 13 2
各桁を16進数の記号に書き換えて
4D2
これが答え。
167166
垢版 |
2010/11/24(水) 19:04:02
#include <stdio.h>

// x を base進数で、画面にプリントする
void aaa(int x, int base)
{
int a[1000];

int* p = a;
while (x != 0) {
*p = x % base;
x = (x - *p++) / base;
}

const char t[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
while (p!=a) {
printf("%c",t[*--p]);
}
}

void main()
{
while(1){
int a, b;

printf("\n");
scanf("%d",&a);
scanf("%d",&b);

aaa(a,b);
}
}
2010/11/25(木) 01:14:21
特殊用途計算尺作成ツールなんかどうよ?
汎用の計算尺シミュレーターは沢山あるが
http://homepages.slingshot.co.nz/~timb3000/intro/intro_screenshots.html
こういった特殊用途の計算尺のシミュレータをつくるツールがあったら楽しいんじゃないか。
http://www.sliderules.info/collection/coll-specialised.htm

たとえば日没時刻計算の計算尺をつくってプラネタリウムソフトにくっつけるとかそんなの
2010/11/25(木) 22:04:49
全く使わないがこういうサイトもある

http://keisan.casio.jp/
2010/11/25(木) 22:44:40
知らんかった。ここ、便利だな。
2010/11/26(金) 00:28:55
1は>>149を最後に居なくなったのか
2010/11/26(金) 12:34:15
スレタイが

電車作る


に見えたぞ

A列車でいこう

とか

オープンワールド系RPGの世界に列車を走らせるのを想像したぞ
2010/11/26(金) 16:18:15
ゼロヨンじゃねえんだし
敷かれたレールの上をスケジュール通りに走って何が楽しいのか
2010/11/26(金) 16:36:04
様々な要因で遅れうる運行を、スケジュール通りに動くよう設計するのが楽しいんじゃないか。
完成されたシステムは、整然と動き続ける列車は、効率よく、美しい。
プログラミングに通じるものが、そこにはある。
2010/11/26(金) 19:17:54
>>174
プログラミングの前に、真っ先にグラフ理論が思い浮かんだ
2010/11/27(土) 00:05:59
組合せ最適化→Prolog
2010/11/27(土) 02:28:17
MATLAB
178デフォルトの名無しさん
垢版 |
2010/11/27(土) 16:48:20
> 82
pi/2の近似値ですね。ちなみにPCですると、
-7497258.17914
となったが、どうひょうかはするのか?
2010/11/27(土) 23:17:54
安価もちゃんとつけれないとか、専ブラ使えよ・・・
2010/11/27(土) 23:31:52
>>178
日本語でOK
2010/12/02(木) 22:03:26
>>37
JavaのBigDecimal,BigIntegerがあれば十分。

というか>>1がいまさら電卓作ってもな。

Excelを超える表計算ソフトやMATLABを超える行列演算ソフトを
作らないとまったく役に立たないと思うのだが


卒論や修論で電卓を作るとか言ってる奴が過去に研究室にいたがあれはひどかった。
教授も内心馬鹿にしてたし。新規性があれば作ってもいいという考えだから
教授はほとんどツッコミをいれなかったがね。
2010/12/02(木) 22:33:04
きっと、その人はまともな研究テーマがちゃんとあって、そのための基礎データを集めたりとか何かするのに電卓アプリが必要だったんだよ、たぶん。
こう、ユーザーインタフェースに関する実験で、どのボタンが一番頻繁に押されるのか、とか、どのボタンが一番押し間違われやすいか、とか。
知らんけど。
2010/12/02(木) 23:21:28
電話の数字は
123
456
789
 0
なのに
テンキーとか電卓は
789
456
123

なのはなぜ?
2010/12/02(木) 23:25:22
そんなの「電話 電卓 配列」でググればいいだろ
バカなのか?

それとも何か、ム板らしい面白い返しでも欲しいのか?
185デフォルトの名無しさん
垢版 |
2010/12/03(金) 02:26:25
>>181
>>112-149を読むと1は役に立つのを作ろうとしたというより、
単にプログラミングを始めたばっかりで、
何かに載ってた例題に躓いたという感じだが。

>>1
これでは学習の効率悪すぎる。
まずは薄いC#の入門書を一冊やることをオススメする
186デフォルトの名無しさん
垢版 |
2010/12/05(日) 13:25:47
ビジュアルプログラミング言語SCRATCHで書かれた電卓色々
http://scratch.mit.edu/tags/view/calculator/loveits
ソースは開発環境入れないと見れない
http://info.scratch.mit.edu/Scratch_1.4_Download
2010/12/08(水) 00:46:10
C# でも Decimal 型があるのに
2010/12/08(水) 01:18:35
>>178
tan(355/226) = -7497258.185325587112905071831891248663.....
だから小数第一位までしか合ってない。

tan(52174/33215) だと整数部分まで合わないんじゃないか?
2011/05/14(土) 08:15:35.84
>>1ではないが電卓作ってる。
(BCD自前で作ったので)計算結果が正しいかどうかわかんないという
とても怖い電卓になってる

冪と根作るのがめんどくせぇ…
190デフォルトの名無しさん
垢版 |
2011/07/09(土) 11:03:40.46
電卓の作成はプログラミングの基礎力アップに丁度良い課題だよね
191デフォルトの名無しさん
垢版 |
2011/07/10(日) 01:54:19.81
RPN電卓だ〜いすき!
2011/07/10(日) 03:39:15.02
電卓なんて、evalですぐできるじゃん
2011/07/10(日) 03:43:27.10
最初は eval でも良いよ
2011/07/10(日) 04:50:29.45
まあそうevalなよ
2011/10/31(月) 11:09:43.80
何でもREPLに結びつける思考を始めると何も作らなくなる
そのうち使わない魔法が真の魔法だとか言い出すようになる
2012/01/12(木) 17:53:39.30
バグの炙り出しを工夫しよう
2012/06/13(水) 19:19:52.42
http://s1.gazo.cc/up/s1_26489.jpg
2012/06/13(水) 19:24:06.16
なぜひょうたん
199デフォルトの名無しさん
垢版 |
2012/06/25(月) 11:42:28.34
。。。
200デフォルトの名無しさん
垢版 |
2012/06/26(火) 18:25:14.44
あげ
2012/06/27(水) 10:42:15.93
>>151
mathematicaだと思う
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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