Console.WriteLine が出力されない罠

新しいお勉強を始めたのでメモメモ。

使っているのは
Win7 Pro
Microsoft Visual C# 2010 Express
猫でもわかる C# プログラミング

サンプル通りに作成したのにうまくいかず。。
デバッグすると、一瞬 dos ぽい画面出るけどすぐ消える。。

ツールバーに表示する項目として「デバッグなしで実行」てのを追加。


これを使うと、dos が出てきてプログラムの結果が出力される。


こんなところでつまづくとは、って感じですけど。

王道の FizzBuzz

Sub Initialize
	
	Dim inputNum As String
	Dim outputNum As String
	Dim wNum As Variant
	Dim num As Integer
	Dim i As Integer
	Dim z As Integer

	inputNum = ""
	outputNum = ""
	z = 0

entry:	
	inputNum = InputBox$("数字入力", "FizzBuzz")
	
	If IsNumeric(inputNum) = False Then
		GoTo msg
	ElseIf inputNum <= 0 Then
		GoTo msg
	End If

	num = CInt(inputNum)
	
	'1は最初で入れとく
	outputNum = "1" + Chr(10) + Chr(13)

	For i = 2 To num
		wNum = ""
		If i Mod 3 = 0 Then
			wNum = "Fizz"
		End If
		If i Mod 5 = 0 Then
			wNum = wNum + "Buzz"
		End If
		If wNum = "" Then
			wNum = i
		End If
		
		outputNum = outputNum + wNum + Chr(10) + Chr(13)
	Next
	
	MsgBox outputNum
	Exit Sub
	
msg:
	MsgBox "整数いれて!"
	z = z + 1
	If z = 3 Then
		MsgBox "exit!"
		Exit Sub
		GoTo entry	
	End If
End Sub

こんなもんでしょうか。

(ちょっとカンニングしましたが)
ゼロ以上の数値が入力されているかのチェックを入れて、それ以外のものが3回入力されたら処理終了するようにしました。

九九を出力するプログラム

使用言語:lotusscript

Sub Initialize
	
	Dim i As Integer	'かけられる数
	Dim j As Integer	'かける数
	Dim r As Integer	'こたえ
	Dim msg As String	'出力
	
	msg = ""
	
	For i = 1 To 9
		For j = 1 To 9
			r = i * j
			If r < 10 Then
				msg = msg + " " + CStr(r) + " "
			Else
				msg = msg + CStr(r) + " "
			End If
		Next
		If i < 9 Then
			msg = msg + Chr(10) + Chr(13)
		End If
	Next
	
	MsgBox msg
	
End Sub

出力結果の縦をそろえられなかったのが気に入らないけど。

素数を出力するプログラム

おもしろそうだったのでつくってみた^^
言語は lotusscript 。

Sub Initialize
	
	Dim entry_num As String	'入力された数字(変換前)
	Dim num As Integer			'入力された数字(変換後)
	Dim i As Integer			'カウント用
	Dim j As Integer			'カウント用
	Dim p As Integer			'配列要素数
	Dim aliquot As Integer		'約数の数
	Dim aliquot_num As String	'約数
	
	entry_num = InputBox$("数字入力", "Prime number")
	If entry_num = "" Then
		Print "数字入力して!"
	Else
		num = CInt(entry_num)
		aliquot_num = ""
		
		For i = 1 To num
			aliquot = 0
			For j = 1 To i
				If i Mod j = 0 Then
					aliquot = aliquot + 1
				End If
			Next
			If aliquot = 2 Then
				If aliquot_num <> "" Then
					aliquot_num = aliquot_num + " , "
				End If
				aliquot_num = aliquot_num + CStr(i)
			End If
		Next
		
		'出力
		MsgBox "入力した数字の範囲内にある素数は…" + Chr(10) + Chr(13) + aliquot_num
	End If
	
End Sub

100 を入力したときの出力結果

10000 を入力したら、画面に入りきらないくらい出てきて吹き出しそうになったw
ちなみに処理時間は15秒ほど。

計算方法とかところどころ調べてしまったのが悔しい。。
しかも 1 も素数だと勘違いしてたorz

てか、ブログ書くのいつぶりよ^^#

久しぶりに楽しかったです^^

【終了】AIX講習

全12回にわたって実施されたAIX講習が先日終了。
結局最初から最後まで基本的なコマンド紹介みたいな感じで、章末に練習問題的なのをちょいちょいやって。
こんなレベルでも、知識ありってことで経歴書に書かれるという恐ろしい会社orz

最後に、unix ユーザには vi 派と emacs 派がいるって話をしててうけた笑

一問一答アプリ

ふと思いついたので疑問だらけですが。

・1日1通受信している試験対策のメルマガを使って、一問一答アプリ作れないかしら?
→過去のメールをいちいち開くのは面倒なので、楽に繰り返し解けるようにしたい

・メール本文にある問題、選択肢、回答、解説の情報をデータベース化する?
→自動で抽出するのは難しそうなので全部手入力になる?



家計簿アプリは結構前に断念したから←
これ作ってリリースして今年上半期の成果にしたいなー。