トップページ⇒tech
92コメント30KB

[VB] 初心者に課題を [.net]

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
     初心者にもできそうな課題をみなさんで
     与えてあげましょう。
     出された課題を与えた初心者さんは必ずアップ
     しましょう。

     関連スレ
     [老若]VB.net質問スレ[男女]
     http://pc2.2ch.net/test/read.cgi/tech/1043629429/
0002デフォルトの名無しさんNGNG
(・∀・)ニヤニヤ
0003デフォルトの名無しさんNGNG
やっぱり戦争は駄目だよ。
0004デフォルトの名無しさんNGNG
【問題】
2chではいつも多くの糞スレが立ちます。
糞スレを立てた人が書き組みできなくなる、またその糞スレを自動的に削除
してくれるものを作りなさい。
0005デフォルトの名無しさんNGNG
早く課題くれよ
0006デフォルトの名無しさんNGNG
(1)0〜255の範囲の乱数6000個生成し、それを小さい順になるべく高速に並び替えなさい。
また、そのアルゴリズムの計算量をO(n)の形で表しなさい。
0007デフォルトの名無しさんNGNG
>>6
ああ、生成後の配列に対して並び替えを行ってね。
0008デフォルトの名無しさんNGNG
スレタイの VB はなぜ全角なのだろう?
0009デフォルトの名無しさんNGNG
>>8
聞くまでもなくVBユーザだからでしょう。小学生か中学生。
0010デフォルトの名無しさんNGNG
>>6
System.ArrayのSortメソッドで終了。
内部ではクイックソートを使ってるので、クリックソートのオーダーとほぼ一緒。
0011デフォルトの名無しさんNGNG
>>10
VBユーザのそこが見えた一瞬。
0012デフォルトの名無しさんNGNG
>>10
>O(n)の形で表しなさい。

日本語読め。
0013デフォルトの名無しさんNGNG
VBでねっとり。
0014デフォルトの名無しさんNGNG
[C]初心者に課題を[言語]
こんなスレに名前を変えてはいけませんか?
C、の課題出して欲しいのですが。
0015デフォルトの名無しさんNGNG
>>14
じゃあ>>6。qsort禁止な。


っていうか言語を問わないプログラムの問題なんぞ腐るほどある。
と、言うか言語依存の問題をプログラムの問題というのははばかられる。
001610NGNG
>>11
ど素人の甘ちゃんハケーン。
わざわざ言語を限定しているのだから、
アルゴリズムをごりごり書けと言っているわけではない。
ちなみにSystem.ArrayはVBの固有のものではなく.NET共通のものだ。

>>12
クイックソートのオーダーなら調べりゃわかることだから省略してるんだが・・・。

System.ArrayのSortメソッドはそれとほぼ同じということはわかっても、
厳密なオーダーの計算は内部ロジックを検証できないので、オーダー表記はできない。
(Sortメソッド内部ロジックでTrySZSortメソッドが使われているが、
その内部処理がないので、そこんところが不明だし。他の処理部分も全部が見れるわけではない)
001710NGNG
マンスリーカレンダーを作成せよ。
具体的な細かい仕様は自分で設定すること。

なお言語や開発環境に依存した機能をいろいろ使ったバージョンと
なるべく使わないで作ったバージョンのものを作成すること。

例えば、曜日を求めるためには最低限、算術演算子があれば計算で求められる。
しかし、最近の言語に付随するライブラリには曜日を求める機能等を持っているものも多い。
そういったものを自前で計算するもよし、ライブラリの機能を使うもよしということだ。
0018デフォルトの名無しさんNGNG
DateTimePicker貼り付けて完成。
0019デフォルトの名無しさんNGNG
MonthCalendarでもいいか。
0020デフォルトの名無しさんNGNG
>>16
必死ですね。1行オーダーを書けば相手はぐぅの音も出なくなるのに。
002110NGNG
じゃ。
O(n log n)でいいですかい?
でも、System.Array.Sortのオーダーじゃないんだって。
0022デフォルトの名無しさんNGNG
VBって便利だね
0023リア厨NGNG
>>9
阿呆。漏れでもそんな事せんな。ま、漏れも英数字の全角は嫌いだが。

ま、このスレだって着眼点はいいんじゃねぇ?
コンソールで適当な規則を得た数列を生成するとか、Windows アプリで規則的なグラフィックを作成するとか...
まぁネタスレにマヂレスしている時点で逝っていいかもしれんが。
0024デフォルトの名無しさんNGNG
次の課題きぼん
0025デフォルトの名無しさんNGNG
>>24
いい死に方を教えてください。クイックソート話でお願いします。
0026デフォルトの名無しさんNGNG
>>24
クラスターミサイルを散布されたときに、
それらを回避するための移動経路を計算するプログラムを作成せよ。

0027デフォルトの名無しさんNGNG
>>26
それどこで使うんだ?
0028デフォルトの名無しさんNGNG
>>26
イラク
0029デフォルトの名無しさんNGNG

サントリーホワイト :40%
サントリーオールド新 :40%
アーリータイムズ :40%
ジャックダニエルブラック :43%
宝焼酎純20 :20%
宝焼酎純25 :25%
宝焼酎純35 :35%
佳撰大関辛口 :
佳撰大関 : 16%
菊水辛口 :15%
菊水四段仕込 :15%
サントリー赤玉スイートワイン :14%
サントリーレゼルブ赤:14%
マンズワインモンフレールあか :14%
キリン一番搾り生 :5.5%
朝日スーパードライ  :5.0%
バドワーザー :5.0%
ハイネケン :5.0%
すぱちゅ 巨峰 :5%
すぱちゅ 梅 :5%

ここに4つのお酒が混ざってるカクテルがある、比率は1:2:3:4でアルコールの度数が10.7%だ、10.7%になる組み合わせを導いてみよ
0030デフォルトの名無しさんNGNG
佳撰大関辛口 は16%で
0031デフォルトの名無しさんNGNG
最大値と最小値を得るのはO(n)で充分です。
クイックソートのピボット値は一番右や一番左の値にはせずに
最大値と最小値の平均値にすべきなのです。
0032山崎渉NGNG
(^^)
0033山崎渉NGNG
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
0034デフォルトの名無しさんNGNG
(優)瀞瀞
0035デフォルトの名無しさんNGNG
>>31
そんなもの探していたら余計時間がかかってしまうだろ
0036デフォルトの名無しさんNGNG
いづれ、VB_PGがCOBOL_PGを追い抜く!勉強しとかなきゃ、お前ら公開するぜ。
0037デフォルトの名無しさんNGNG
アナログ時計を作成せよ。
表示できたら文字盤を付けよ。
0038デフォルトの名無しさんNGNG
>>28
はテーブル引いて上から総当りにして結果出せ
ばいいのかな?(合計107のやつだけ最後取り出す)
平凡だけど・・当たってる??
もっといい方法あるんだったらおしえてください。

-------------------------------------------
比率→1234
お酒の名前
↓
a 4080120160
b 4080120160
c 4080120160
d 4386129172
e 20406080
f 255075100
g 3570105140
h 16324864
i 16324864
j 15304560
k 15304560
l 14284256
m 14284256
n 14284256
o 5.51116.522
p 5101520
q 5101520
r 5101520
s   5101520
t   5101520
------------------------------------------------
0039デフォルトの名無しさんNGNG
>>38
すいません・・
表が・・
-----------------------------------
比率→1_2_3_4
お酒の名前
↓
a _40_80_120_160
b _40_80_120_160
c _40_80_120_160
d _43_86_129_172
e _20_40__60__80
f_ 25_50__75_100
g _35_70_105_140
h _16_32__48__64
i _16_32__48__64
j _15_30__45__60
k _15_30__45__60
l _14_28__42__56
m _14_28_42__56
n _14_28_42__56
o _5.5_11_16.5_22
p _5_10_15__20
q _5_10_15_20
r _5_10_15_20
s_5_10_15_20
t_5_10_15_20
------------------------------------------------
汚くてすいません(;・∀・)
0040_NGNG
http://homepage.mac.com/hiroyuki44/
0041デフォルトの名無しさんNGNG
>>37
さすがに馬鹿にしてませんか?
0042デフォルトの名無しさんNGNG
>>41 はできない。φ(。。)
0043デフォルトの名無しさんNGNG
すみやかにC#へ移行せよ(σ・∀・)σ
0044山崎 渉NGNG
(^^)
0045山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0046デフォルトの名無しさんNGNG
MonthCalendarでもいいか。
0047デフォルトの名無しさんNGNG
VB.NETで作成したアプリケーションって
VB6の時のような,ランタイム(の頒布)は必要ないのでしょうか?
0048デフォルトの名無しさんNGNG
>>47
.NETフレームワークが必要。再配布は可能。ユーザ側で単独でもDLできる。
0049デフォルトの名無しさんNGNG
>>48さま
ありがとうございます。
もっと情報を集めたいと思います。勉強しなければ・・・
0050デフォルトの名無しさんNGNG
VB.NETがわか〜るAPPENDを作れ。
0051こっちも頼むNGNG
こっちのスレ(VBAエキスパートについて)もよろしく
http://school2.2ch.net/test/read.cgi/lic/1066275292/l50
0052デフォルトの名無しさんNGNG
電卓を作ってください。
小数点以下の計算もできるような。
0053デフォルトの名無しさんNGNG
それを流用して宿題を完成させると
0054超初心者NGNG
皆様方にお教えを請いたく、ここにメッセージをアップさせていただきます。
私は文系でVB? ハァ? という手合いの者なのですが、大学でいきなり
意味の分からない課題を出され、途方に暮れております。
その課題は、「VB6で2進演算をする計算機を作れ」というものです。
例えば、「1011+11001=」と入力すると「100100」が出力
されるという計算機です。ただし、加数、被加数を十進に直してから計算し、
出てきた答えを2進に直して出力する、というのはナシだそうです。

どなたか、加法だけでも教えてくださいませんか?
残り3つの演算は、それをヒントにして自分で考えます。

ネタじゃないので、よろしくお願い申し上げます。
0055デフォルトの名無しさんNGNG
sage
0056デフォルトの名無しさんNGNG
>>54
そんな面倒な方法で論理演算でなく四則演算させるなんてネタ臭いな。

・その「十進数に直す」って何なんだ? Decimal型がダメなのか??
・本当に一つのテキストボックスに全角で「1011+11001=」と入力するのか?
  Text1に「1011」、Text2に「11001」と別々に入力するんじゃないのか?
・桁数に制限はあるのか?
・割り切れなかったら余りを出すのか?
・引き算に「2の補数」を使ってもいいのか?

・配列を知ってるか?
・Mid関数を知っているか?

・小学生の頃にやった筆算は覚えてるか?
0057デフォルトの名無しさんNGNG
変数宣言、文字列処理などは省略


'1011'
a(0) = 1
a(1) = 1
a(2) = 0
a(3) = 1

'11001'
b(0) = 1
b(1) = 0
b(2) = 0
b(3) = 1
b(4) = 1

'aとbの和を 配列cに入れる
c(0) = a(0) + b(0)
If c(0) = 2 Then '繰り上がり
 c(1) = 1
 c(0) = 0
End If
c(1) = c(1) + a(1) + b(1)
If c(1) >= 2 Then c(2) = 1: c(1) = c(1) - 2
c(2) = c(2) + a(2) + b(2)
If c(2) >= 2 Then c(3) = 1: c(2) = c(2) - 2
・・・
以下略
0058超初心者NGNG
>>56様、>>57様、どうもありがとうございます。

>>56
ネタではありません。何分ド素人な者ですから、用語の使い方などよくわかりません。
例えば、論理演算と四則演算など。

 >・その「十進数に直す」って何なんだ? Decimal型がダメなのか??
  例えば、「1011」を11にし、「11001」を25にして11+25=36とし、
  36を「100100」に直す、というプログラムはNGだということらしいです。
  あくまで、各桁同士で計算して繰り上がりを考えて...というプログラム
  にしろということです。「Decimal型」というのがよくわからなくて調べて
  みましたが、さっぱりです。「精度があがる云々」という文言が見受けられ
  ましたので、先生が求めているレベルをはるかに超えるものと推察します。
  したがって、「Decimal型」というのは考えに入れなくていいと思います。
 
 >・本当に一つのテキストボックスに全角で「1011+11001=」と入力するのか?
  Text1に「1011」、Text2に「11001」と別々に入力するんじゃないのか?
  違います。普通の計算機と同じようにボタンを作り(但し数字は0と1のみ)、
  普通の計算機と同じように入力します。
 
 >・桁数に制限はあるのか?
  自由だということです。制限した方が良いのでしょうか?

 >・割り切れなかったら余りを出すのか?
  恐らくそこまで高いレベルは求められていないと思いますので、商を整数値
  (四捨五入なり切り捨てるなどして)で出力できれば十分です。
0059超初心者NGNG
 >・引き算に「2の補数」を使ってもいいのか?
  先生いわく、使わなければダメだということです。

 >・配列を知ってるか? ・Mid関数を知っているか?
  どちらもチンプンカンプンですが、調べてみます。

 >・小学生の頃にやった筆算は覚えてるか?
  正にそれをプログラムさせたいようです。2進で。

 私のみならず先生もちょっとDQNっぽく、言っていることが良く分からないので、はっきり言って
 うんざりしてます。「時間がない」と言っているクセに、「授業アンケート」の結果が悪かった
 ことに対する言い訳をダラダラと1時間以上やってたこともありました。おまけに、「この授業は
 VBの授業ではありません。VBを知りたいならカルチャーセンターに逝ってください」と言い出す始末。
 授業ではif文とfor文に関する拙い説明を受けたのみ。(言い訳されるかもしれませんが、少なくとも
 私はそう解釈してます) なのに評価はこの課題で行うと。訳がわかりません。

>>57
 どうもありがとうございます。略された「配列」「変数宣言」の方が、
 どちらかというとわかりません。面倒でなければお教えいただけませんか?
0060超初心者・訂正NGNG
>>56

>Text1に「1011」、Text2に「11001」と別々に入力するんじゃないのか?
その通りです。
0061デフォルトの名無しさんNGNG
どうでもいいけどさ、VBの勉強が主でないのなら、
VBの部分はヒントぐらい出すべきじゃないのか?
本題以前の部分で悩ませてどうするんだ?
0062超初心者NGNG
>>61
やっぱり、そうですよね。
何が本題かもよくわからない授業なので、???だったのですが。
何も分からない羊は言われるがままやるしかないのです(泣)
今日授業だったんですが、やっと十進の普通の計算機のプログラムの
ソースがプリントで配られました。それに関する説明は、ほとんどなし。
でも、1週間後には提出です。

おっと、こんな時期に授業だなんて言うと、面が割れちゃいますね。
0063デフォルトの名無しさんNGNG
先生のひとりよがりだな
0064デフォルトの名無しさんNGNG
超初心者のふつつか者ですが質問させてください。

Dim rc as Long
rc = DB_Sub_Select(SQL)
If rc Then …

…以上のようにコードの一部がなっているのですが、
rcはLong型と定義されているので、If rc Then との記述の中では
Boolean 型に自動的に型の変換がされていると考えていいのでしょうか。
また、Ifのあとは条件式が普通ですが、これは、
rc=true の省略形なんでしょうか。
検索してみたんですが見つけられなかったんです(泣
0065デフォルトの名無しさんNGNG
>>64
それで合ってるよ。
値が 0 だったら False
!0 だったら True ね。
マンゾクした?
0066デフォルトの名無しさんNGNG
ユーザーに画像ファイルを選択させて、
その画像で15パズルが遊べるソフトを作ろうと思ったのですが、
画像を15分割する方法が、まったく見当も付きません。
ヒントだけでも良いので教えて下さい。よろしくお願いします。
0067デフォルトの名無しさんNGNG
ここって初心者が質問するスレだっけ?
0068デフォルトの名無しさんNGNG
課題を出したがる初心者じゃない人が、あまり居ないんだろう
まぁ、少し強引かもしれないけど、初心者の質問が初心者に対する課題とも取れる。
0069帳初心者問題NGNG
問題

テキストボックスに偶数を入力して、CommandButton1を押すと、「偶数です」のダイアログを返す。
奇数を入力しCommandButton1を押すと、「奇数です。」のダイアログを返し、入力した文字を
変数に代入し3をマイナスさせて、もう一度偶数テストさせ、奇数だった場合ダイアログは「奇数です。2回目の計算です。」
と返し、偶数になるまでこれを繰り返す。偶数だった場合は「偶数です。2回目の計算です。」と返す。

これできたら、ガッ
0070最凶VB厨房NGNG
奇数から奇数を引くと偶数
0071デフォルトの名無しさんNGNG
>>66まだいるか?
0072デフォルトの名無しさんNGNG
では問題を出すぞい。
オーソドックスだが、万年暦を作成するべし。
二つのテキストボックスに西暦年号(1〜9999)と月数(1〜12)を入れて
ボタンをぽちっと押すと、該当する月のカレンダーが表示される。
一行目は日〜土曜の表示の形式。
もちろんシステムから日付を取得するというのはなし。
うるう年についてのちょいとした知識がいるけれども、それは
ネットで調べればすぐわかります。
0073デフォルトの名無しさんNGNG
って、そういうの開発しててソース盗もうって腹か
0074デフォルトの名無しさんNGNG
>>72
作ったよ。でも作ったのはかならずUPって、
あぷろだにすればいいのか?
0075デフォルトの名無しさんNGNG
http://proxy.ymdb.yahoofs.jp/users/d866106d/bc/%ce%f1.lzh?bc.jWPBB6.8x9IqB
ブリーフケースにうぷしたよ ノシ
0076デフォルトの名無しさんNGNG
相互リンク

【初心者】課題をクリアしていくスレ【講習会】
http://pc5.2ch.net/test/read.cgi/gamedev/1086858349/
0077デフォルトの名無しさんNGNG
0078デフォルトの名無しさんNGNG
↑nullpon
0079デフォルトの名無しさんNGNG
0080デフォルトの名無しさんNGNG





















0081デフォルトの名無しさん05/02/05 04:26:27
【問題】

簡単な野球ゲームを作れ

(条件)

・打者は5回打席に立つ
・1打席ごとにW(敬遠)、H(ヒット)、O(アウト)を判定
・W,O,HはArrayから呼び込む
・ヒットの場合は1ポイント、アウトは0ポイント、敬遠はノーカウント
・打者のアベレージをだす
(例:5打席で2ヒット、2アウト、1敬遠の場合、2ヒット÷(5打席-敬遠の数)

ヒント:LoopとIf

0082デフォルトの名無しさん05/02/05 04:38:49
>>81
コンソールアプリケーションでもフォームでもOK
お好きなほうでどうぞ
0083山崎 渉05/02/06 22:20:20
山崎
0084デフォルトの名無しさん05/02/07 22:38:06
<<66
画像を読み込んでサイズを取得。
そして16個のマス目の座標を計算する。
するとそのマスに表示すべき画像の座標とサイズがわかる。
画像からBitbltで切り取って来て表示。

下手くそな日本語でスマソ。
わかった?
0085デフォルトの名無しさん2005/06/24(金) 17:30:24
Text1.Text = Null
0086デフォルトの名無しさん2005/06/24(金) 17:55:48
>>85
0087デフォルトの名無しさん2005/06/25(土) 11:20:59
【課題】
素数を列挙せよ。
そうだな60分でタイムアップとしようか?
どこまでイケルかな?

アドバイス:
アルゴリズムは問わない。CPUをこき使って構わない
その間はエロ動画鑑賞は控えるw
0088デフォルトの名無しさん2005/06/30(木) 03:31:55
スロットみたいにボタンを押したらランダムで柄がとまる・・・
そして3種類の絵柄が揃ったら おめでとう! って表示される

そんなプログラムをVBで書いて・・・
0089デフォルトの名無しさん2005/08/16(火) 18:21:07
str$()、str() chr$()、chr()

など

$の有り、なしの違いを教えてください。
$の意味ってなんですか?
0090デフォルトの名無しさん2005/10/27(木) 14:34:35
だれか頼むといてくれ。[ ]に入るやつ考えて。あたえられた文字を暗号化するプログラム。

Const Table = "QWERTYUIOPASDFGHJKLZXCVBNM?"

Private Sub Command1_Click()
ango = Text1.Text
decode = ""
n = Len(ango)
For i = 1 To n
p = Mid(ango, i, 1)
If [ ] Then
Index = [ ]
Else
Index = 26
End If
decode = decode + Mid(Table, Index + 1, 1)
Next i
Text2.Text = decode
End Sub

Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
End Sub

0091デフォルトの名無しさん2005/11/01(火) 00:33:05
if [i < 26] then

Index = [i]
0092デフォルトの名無しさん2005/11/01(火) 01:41:01
>>87
Private Sub Command1_Click()
  Dim n As Long
  Dim n2 As Long
  Dim lngtime As Long
  
  lngtime = Timer
  Debug.Print 1
  n = 1
  Do
    n = n + 1
    n2 = 1
    Do
      n2 = n2 + 1
      If n Mod n2 = 0 Then
        If n = n2 Then
          Debug.Print n
        End If
        Exit Do
      End If
      If Timer - lngtime >= 60 Then
        Exit Sub
      End If
    Loop
  Loop
End Sub

>>88
rnd関数とpictureboxコントロールのコントロール配列つかえば簡単にできる

>>89
$が付くとString型つかなければVariant型らしいけど実際にはしらべてない
■ このスレッドは過去ログ倉庫に格納されています