C#,C#の宿題片付けます。

■ このスレッドは過去ログ倉庫に格納されています
2007/12/14(金) 17:20:54
需要はないかもしれんが立ててみた。
2010/09/12(日) 00:34:56
>>639 が もうサッパリ理解できないんだけど
どのくらいの期間取り組めば、こんなのバリバリ書けるように上達するの?
それとも>>639さんは変態レベルなの?
2010/09/12(日) 00:40:56
>>639 は変態
2010/09/12(日) 01:25:59
>>643
http://ufcpp.net/study/csharp/da_about.html

個人的には、CとかC++、C# 1.0からの積み上げて覚えていくんじゃなくて、
こういうデータ処理の考え方を先に、最初から身に着けて欲しいんだけども。

バリバリ書ける人だから >>639 みたいなコード書くんじゃなくて、
「やりたいことを意図通りに書いたら普通 >>639 になるよね」ってなればいいんだけど。
ちょっとまだまだそのレベルではないよなぁ、プログラミング言語の進歩は。
2010/09/12(日) 01:27:36
>>642
それは SQL のむずかしさじゃなくて、DB 製品のチューニングのむずかしさな気が。
DB 専門家として生きるなら必須の知識だけど。
2010/09/12(日) 06:26:02
遅延評価で泣け
2010/09/12(日) 10:28:21
遅延評価も当たり前のことであって欲しいんだけど。
1行ずつ処理するのに、行数分の temporary なリスト作るとかおかしな話だし。
2010/09/12(日) 12:52:06
>>639 は変態。変態という名の紳士さんだよ?
2010/09/12(日) 22:16:52
逆にどういう場面なら >>639 みたいな実装方法が効いてくるか
汎用性と拡張性?
2010/09/12(日) 23:38:59
うまい具合にyield使ってるね。
問題が問題だから拡張性はないとおもう。
2010/09/12(日) 23:58:11
>>639の人気に嫉妬
2010/09/13(月) 00:34:07
>>650
意味の単位で切れてるってのがポイントかな。
コードの意図が読み取りやすくなるし、
切った部分単位でテストできるし。

今回、そんなに複雑な問題じゃないから一気にかけるけど、
もっと要件増えた時に、区切って書けてるって大事。

逆に、多分みなの想像通りだけど、パフォーマンスは2・3割落ちるんで不利だと思う。

>>651
連続したとこの重複削除とか、階差求める辺りは他でも使えそうな気がしなくもない。
条件によって Split するところは、ToLookup 辺りで代用できるやり方考えてもよかったと思う。
2010/09/13(月) 01:26:00
>>652
ヒント:自演
2010/09/13(月) 01:37:33
ttp://ideone.com/sGL9G

変態、もとい天才の俺が標準クエリだけで作ってやったぜ
とりあえず、アルゴリズムの提示が目的なので効率は無視

>>639
> Ideone 上で匿名型使うとエラーになってるのかな、これ。
匿名型は使用できているから、yieldが未対応なのかも
2010/09/13(月) 01:58:03
>連続したとこの重複削除とか
そこ、車輪の再発明してないかい?
2010/09/13(月) 02:27:11
>>659
{ 1, 2, 2, 3, 2, } みたいなのは、
{ 1, 2, 3, 2 } にしないといけないのよ?
{ 1, 2, 3 } にしていいなら標準の Distinct でいけるけど。
何かあったっけ?連続したところだけの重複削除。
2010/09/13(月) 02:32:03
>>655
それ、順序失ってない?
array を { 1, 2, 3, 10, 11, 100, 101, 102, 103 } から
{ 1, 3, 10, 11, 100, 101, 2, 102, 103 } に変えても同じ結果になっちゃうけども。

順序考えたら、
x.ZipWith(x.Skip(1)) とかを利用して普通に階差求めた方がいいと思うよ。
2010/09/13(月) 02:40:16
階差数列作るところは
array.Zip(array.Skip(1), (x, y) => new { Value = x, Difference = y - x })
で行けるし、
最後のグループ化のところは GroupBy なり ToLookup で行けそうだけど、
階差が1出ないところで切るって条件付けがやっぱりイテレーターブロック使いたいなぁ。

状態持たなきゃいけない部分はクエリ式だけじゃ書きにくい。
2010/09/13(月) 02:57:46
標準クエリ演算子だけで実装するならこんなとこだな

http://ideone.com/DBlMP

Ideone、.NET 4 が使えないんだな。Zip(4 で追加された拡張メソッド)ないって怒られる。

クエリ式の中で (count += x.Difference - 1) とかやっちゃってる辺りがあまりよろしくない。
ここだけはイテレーターブロックにした方がいいと思う。
(クエリ式で、周りのローカル変数捕まえて、状態書き換えちゃうのはあんまり美しくない。)

あと、連続した項しかグループ化しないことわかってるのに GroupBy 使うのは
あんまりおすすめしたくない。
この目的には GroupBy は過剰スペックでパフォーマンス落とすと思う。

という辺り考えた結果、>>639 みたいな実装に。
2010/09/13(月) 03:01:15
とうか、順序の扱いどうなんだろ。
順序保ちつつっての前提で書いちゃってるけど、実は Distinct でよかったのか?
あるいは、想定がソート済み整数列だったりするのかな。
2010/09/13(月) 03:21:15
それよりこんなに人が沸いたことに驚きを隠せない
2010/09/13(月) 03:39:08
いつもは過疎スレなのに意外と見てる人多いんだな
2010/09/13(月) 04:27:28
ヒント:自演
2010/09/13(月) 07:15:35
素直に実装した自分がバカみたいじゃないかorz
666637
垢版 |
2010/09/13(月) 22:01:12
( ゚д゚)ポカーン 今の正直な気持ちです。

ふらっとC#スレなら、適当に弄られて答え解らんまま放置だろうし
C#相談室なら馬鹿にされて放置だろうし
ここなら、過疎ってて返事そのもの無いかもと思いつつ、あんまり期待もせず質問してみた。
ところが、寝て起きて○○して帰ってきたら、超難度の解答がついてて驚愕。
さらに、親切丁寧な>>645ドキュメントが整備されてて、またまた驚愕。
さらにさらに、私の理解を超越した高尚な議論が交わされ始めて、もう( ゚д゚)ポカーン

>とうか、順序の扱いどうなんだろ。
最初はバラバラの値達です。
前処理で昇順に並べてあげようかな?と考えていました。
その後で>>637の処理をやろうと。

コントローラに入ってるバッファメモリのデータを、通信で読んで表示するプログラムが作れたらなぁ
というのが発想の原点です。(俗にスキャダとか言うそうですが)
バッファ1番地のデータください、バッファ2番地のデータください、もう一回バッファ2番地の・・・
と毎回送受信するよりも
1を先頭に3個ちょうだい、10を先頭に2個ちょうだい、100を先頭に4個ちょうだい
とブロックで転送すりゃ送受信のキャッチボールの回数減らせられるよね?という事柄に使ってみようかと。
ですから、ソート処理前の例えば{1,2,3,4,5,6,7,8,2,2,3,4,5,6,7,8}は「1を先頭に8個」って具合になります。
そのあとは、おいみんな、データとって来たら各自自分の値を参照しに来〜い。を作る予定です。
予定、つもり、できたらなーのオンパレードで形になるのはいつになるのか・・・ですが
千里の道もなんとやらで、一歩一歩進めて行こうと、そんなつもりで勉強してます。
2010/09/13(月) 22:33:54
ああ、それなら arraydata.OrderBy(x => x).Distinct() で OK。
2010/09/14(火) 01:04:37
>>666
PLCのデータ読むだけならソケット通信だけで十分
2010/09/14(火) 01:40:14
いやいや。十日ぐらいかかるんじゃね?
2010/09/16(木) 00:08:05
ヒント:>>637は算術師。 ラムザ式ってなんだよ!
2010/10/21(木) 09:55:16
過疎age
2010/11/24(水) 08:17:18
入力制限を掛けたいと思っているのですが

@ 英数字 
A . (ピリオド)
B _ (アンダースコア)
C バックスペース
D Delete

のみ入力可能にしたいのですがどの様な正規表現をかけばよいでしょうか?

※A〜Dの記述が分かりません。
次の正規表現にどの様に修正を加えればよいでしょうか?
Match result = Regex.Match(対象の文字列,"^[a-zA-Z0-9]+$");
2010/11/24(水) 14:04:42
ネットワーク通信プログラム例のコネクション型のプログラムを改造し、
任意のファイルをダウンロードできるように機能追加せよ。
クライアントプログラムをtcp_downloadc、サーバプログラムを
tcp_downloadsとし、サーバプログラムを192.168.1.2で
動作させているとする。ダウンロードするファイル名をfile1とした場合

tcp_downloadc 192.168.1.2 file1

とすることでfile1の内容を見られるようにするプログラムを作成すること。

ですがどうしたらいいですか。
2010/11/24(水) 14:31:11
>>673
まずは元のプログラムを出せ。話はそれからだ。
2010/11/24(水) 17:18:03
>>672
正規表現なら
^([a-z]|[0-9]|\.|_)+$
(↑行単位で検索、空文字列はマッチしない)
でいけるけど、BackspaceとDeleteはKey*****イベントで判定したほうがいい
2010/11/24(水) 18:58:39
>>673
そもそも
>file1の内容を見られるようにするプログラムを作成すること。
が仕様緩すぎで不可能。世界中のありとあらゆるデータのビュワー作れってか?
2010/11/24(水) 21:30:41
とかいっておまえらもう答えできてんだろ?
ほらせっかく作ったんなら出せよw
2010/11/24(水) 23:06:47
Process.Start("wget","http://"+args[0]+"/"+args[1]);
2010/11/24(水) 23:51:58
>>675
ありがとうございます。そうします。
2010/11/25(木) 01:34:07
>>676
宿題なんだから、曖昧なところは簡単に考えればいいのでは。

cp_downloadc 192.168.1.2 file1 > file1
とすると、サーバ側のカレントディレクトリのfile1と同じ物がローカルにできる。
ファイル名のサニタイズは不要。ファイルが存在しない場合はエラーでも0バイトのファイルでも。

くらいで課題としては通ると思うよ。
2010/11/25(木) 08:49:13
DataGridViewでHeader見出しの文字列を左右中央に配置するにはどの様に
設定をすれば良いでしょうか?

※VS2005 C#
2010/11/26(金) 19:18:26
>>674 すで忘れてました、すみません
>>673 のソースです。
ttp://www1.axfc.net/uploader/File/so/54760
2010/12/18(土) 20:08:25
>>682
なんでCなんだよw
ここはC#のスレッドだぞ
C/C++のスレッドがあるからそこ行って聞け
2010/12/18(土) 20:50:35
>>683
もうそういう突っ込みガン無視して、C# で宿題片づけて、そのC# 提出させようぜ。
2010/12/19(日) 10:52:35
>>684 優しいなぁw
2010/12/20(月) 23:27:54
どうしてもわからないので質問させていただきます。

■環境
・C#2008 Express Edition
・WindowsXP SP3
・メモリ 3072MB

■事象
コンソールアプリケーションで数十億回程度反復して計算処理を行う際に
Console.Write("\r進捗率 {0,1} [%]",hoge);といった感じで進捗率をひたすら
コンソール画面に表示させていたのですが、12時間程度動かしていると
System.Console.WriteLine(String Value)が原因で強制終了してしまいます。

■やったこと
表示されていたSystem.ArgumentException GetBytes()などで検索したところ
容量関係のエラーを疑いtry-catch文を使ってConsole.Clear();をしても同じところでコケてしまいます。
(StreamWriterなどは使用していません)

このエラーの対処方法を教えてください。よろしくお願いします。
2010/12/21(火) 00:52:49
スレタイ読め。
スタックトレースぐらい書け。
StreamWriterについて書いてるって事は途中まで調べてるんだろうけど、どこまで調べたかちゃんと書け。

Console.OutはTextWriter
writer = TextWriter.Synchronized(new StreamWriter(stream, encoding, 0x100, false);
後は分かるな。

対処法?.NET4にすればいい。
https://connect.microsoft.com/VisualStudioJapan/feedback/details/389622/streamwriter-encoding-2gb-argumentexception?wa=wsignin1.0
2010/12/21(火) 01:59:35
>>687
スレ違いや情報不足な書き込みで大変失礼いたしました。

これは.NETのバグが原因なんですね。.NET FrameWork4とC# 2010を導入したので、
こちらでもう一度試してみることにします。どうもありがとうございました。
689デフォルトの名無しさん
垢版 |
2011/01/24(月) 23:40:44
ほかのスレで尋ねたものですが、スルーされているんでどうか解答おねがいします。
http://ideone.com/GOymD
のプログラムを実行すると円が大量に描かれるものの、ウィンドウサイズ変更していると、
円が不自然な形になってしまいます。
それを以下の段階を踏んで修正しろというのですが、

@-1 プログラムから描写に必要な情報を考えて、円に対応するクラスMyCircleを作成せよ。
このクラスには適切なメンバ変数とコンストラクタを設定すること。

@-2 プログラムの中のDrawCircleをよく読み、MyCircle型のコレクションクラスに
円に格納する関数を作成せよ。このメソッドはフォームのコンストラクタから呼び出しておくこと。
(System.Collection.Generic名前空間にあるListクラスを使用)
*使用例
List<MyCircle> a = new List a<MyCircle>
a.Add(new MyCircle)(/*コンストラクタ引数*/));
a.Add(new MyCircle)(/*コンストラクタ引数*/));
MyCircle x = a[10];

@-3 プログラムの中のDrawCircleをよく読み、MyCircleクラスにグラフィックオブジェクトを引数にとって描写を行うメソッドDrawを追加。
また、Drawメソッドを呼び出してすべての円が描写できるようDrawCircleを書き直しなさい。

A 完成した@を改造し、三角形を描写できるようにする。

必要なのは@-3の終了段階で完成するプログラムと、Aのプログラムになります。
2011/01/24(月) 23:50:11
無視されてないじゃん
それなりの答えのソースあったけど見てないか自分の理解できるレベルじゃないので
見なかったことにしてるだけじゃないの?
2011/01/25(火) 00:14:07
出題者のてんてーに聞いたほうがいいよ
List<>で管理するなら旧プログラムにある再帰的に呼び出してる部分はどうするかって

出題がいろいろ糞過ぎなんだよな・・・

書き換えろって言ってる割に新仕様の要件定義があいまいというか

出題者が先生じゃなくててんてーなんだよなw
2011/01/25(火) 01:31:59
引かぬ!媚びぬ!省みぬ!

は聖帝か。
てんてーはリンの姉なんだっけ?
693デフォルトの名無しさん
垢版 |
2011/01/26(水) 00:22:00
>>689
すいません。 本当にc++しかできなくてc#に関しては無能なんです。
切実に助けてください。
2011/01/26(水) 01:09:35
以下の手順を踏んだところでその問題は解決しないと思うんだが、どういうこと?
695デフォルトの名無しさん
垢版 |
2011/01/26(水) 01:12:50
まじめに要件聞いて来いって言われてるのにそんな確認作業すらできないのか?
>>689じゃあ変更後の仕様がはっきりしないので確認してこいって言われてるのに・・・
2011/01/26(水) 03:31:01
C++ならどう作るのかを書いてもらって、それをC#にコンバートするほうがよほどらくだと思う。
2011/01/26(水) 19:45:13
C++で作れるならできそうなものですけどねー
698デフォルトの名無しさん
垢版 |
2011/01/27(木) 00:09:11
>>689
自力で解決しました。
2011/01/29(土) 22:01:47
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):
1.acをabbに置き換える最小のレーヴェンシュタイン距離を求めよ
2.1をもとにdiffツールを作成せよ。なお、出力時の形式は以下のとおりとする
ac
^

abb
||
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VisualStudio2010
 [3.3] 言語: C#
[4] 期限: 2月10日まで
[5] その他の制限:なし

http://codepad.org/AwwMGCx0

1は解けたのですが、2を解く方法がわかりませんでした
2を解く方法を教えてほしいです
2011/01/29(土) 23:31:27
形式が意味不明
2011/01/29(土) 23:53:22
マークなしが一致、|が追加で、^が削除ってこと?

http://codepad.org/AwwMGCx0 のコードで既に
最短距離の場合のグラフ上の移動方向も分かっている。
そこからゴールからスタートにつながる経路を判定できる。
その経路上で、下に移動=削除、左に移動=追加、斜めに移動=一致と読み替えれば2は出せる。
2011/01/30(日) 00:34:35
>>701
すんません。スペースが削除されておかしくなってました
ABB
 ||
ACー
 ^

(^は追加 |は削除 −は)
要はWinDiff風の表示をしろということのようです
703デフォルトの名無しさん
垢版 |
2011/02/01(火) 00:45:26
へえ
704699
垢版 |
2011/02/04(金) 15:58:56
>>701
すまん。
レーベンシュタインを求めるのに使った表をどのようにたどっていけばいいかさっぱりわからん
ACがあるほうは左にたどっていてそれを表示し、
ABBがあるほうは下にたどって行ってそれを表示すればいいのか?
705デフォルトの名無しさん
垢版 |
2011/05/10(火) 16:06:55.28
地球から木星までの平均距離は約483737473マイルである
この時の光が18600マイル進む事に注意して秒、分、時間に直して時間を求めよって問題が出た・・・
706688
垢版 |
2011/05/10(火) 16:19:36.97
2x2の行列A,Bの差を求める関数void func2(int A[][], int B[][], int C[][])を定義してその動作を確かめるプログラムkadai4-2.cを作りなさい。演算結果はC[][]に代入されて返されるものとする。
ただしAとBはキーボードから次で入力するものとする。
scanf("%d %d %d %d %d %d %d %d", &a[0][0], &a[0][1], &a[1][0],&a[1][1], &b[0][0],&b[0][1],&b[1][0], &b[1][1]);
答えは以下で出力されるものとする。
printf("answer = %d %d %d %d\n", c[0][0], c[0][1], c[1][0], c[1][1]);

よろしくおねがいします
2011/05/10(火) 17:29:35.97
>>705
日本語でおk

>>706
スレチ
2011/06/05(日) 12:05:28.10
>>706
C#にはscanfなんてないからな
2011/07/06(水) 09:09:42.34
>>703

ゴミグラマきもちわる
2011/07/06(水) 09:31:50.19
>>708
だから、そういうときは、何も言わずC#で回答書いて、
「これで提出しなよ」って差し出すんだよ。
2011/07/20(水) 02:55:13.06
>>709
http://hibari.2ch.net/test/read.cgi/tech/1311089619/
712デフォルトの名無しさん
垢版 |
2011/07/27(水) 20:55:46.04
やってくれるかたいますかー?
2011/07/27(水) 21:02:51.99
知らん
2011/07/27(水) 21:35:56.16
暇だからやってやるよ
問題見せろ
2011/07/27(水) 21:41:04.52
>>714の難読化力に期待
2011/07/27(水) 22:01:13.79
[1] 授業単元:C#
[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org1836205.pdf.html パス2313
[3] 環境OS: WIN7 言語: C#
[4] 期限:今月中
よろしくお願いします
2011/07/27(水) 22:06:53.54
>>716
追加です。パスも同じ2313です
http://www.dotup.org/uploda/www.dotup.org1836224.exe.html
2011/07/27(水) 22:11:25.69
>>717
http://www.dotup.org/uploda/www.dotup.org1836245.zip.html
すいませんミスしました
こっちです2313です
2011/07/27(水) 22:31:53.86
飽きた
2011/07/27(水) 23:08:51.97
>>719
がんばって!
2011/07/27(水) 23:13:35.36
これ、reflector通したらいいんじゃないか?w
簡単すぎてやるき出ないw
2011/07/27(水) 23:48:18.45
メソッドの頭を小文字にするのと、_でつなぐの直せって先生に言っておいてね。
2011/07/28(木) 00:27:33.29
5000円でやってやるよ
724デフォルトの名無しさん
垢版 |
2011/08/15(月) 21:57:34.89
C#でアウトプロセスサーバーと同じことするにはRegistrationServices.RegisterTypeForComClientsしか無いの?
コレってCOMじゃん。.netらしい方法はないの?
2011/08/15(月) 22:43:09.72
WCFでも使えば
2011/08/15(月) 22:59:49.05
>>725
プロセスが停止状態でも、どっかに登録してリクエストがあれば再起動できる?
あと、オブジェクトのインスタンスを全てのプロセスで共有できる?
GetObjectと同じように。
2011/08/16(火) 00:18:07.83
目の前の箱使え。
2011/08/17(水) 20:08:53.24
なんだそれ?
2011/08/17(水) 20:11:33.77
これはエロを満たすための箱であって
そういうんじゃないから
2011/08/18(木) 12:07:15.29
なるほど、そういえばそうだ
731デフォルトの名無しさん
垢版 |
2011/11/29(火) 11:04:31.87
音声入力やりたいんですがピュアマネージドなライブラリありますか?
2011/11/29(火) 16:45:25.99
Win32API呼んでるのもダメ?
733デフォルトの名無しさん
垢版 |
2011/11/29(火) 17:08:47.26
ラッパーでもいいです
2011/11/29(火) 17:59:00.14
今あんのかな、WaveIO2 とか使ったっけな
2011/11/29(火) 18:00:51.67
声のほうか、ごめん。
OpenCVかなんかを使ったような、、
2011/11/29(火) 22:02:29.24
ひょっとして音声認識?
2011/11/30(水) 00:46:18.10
はい?
738デフォルトの名無しさん
垢版 |
2011/11/30(水) 12:13:13.80
ピュアマネージドコードだけでGPGPUを使う方法ありますか?
2011/11/30(水) 13:42:51.71
>>738
アンマネージドな方法で書かれたDXラッパーがあれば
それをC#からマネージドに使えるよ。

たしか、DX11のラッパーライブラリが公式から出てたはずだから
それでDirectCompute/ComputeShaderが使えると思う。
従来のPixcelShaderをPSとして使って計算するならxnaでもいけるかもしれない。確証はないが
2011/11/30(水) 13:47:27.16
その手のC#ラッパーからでも、GPU上実行部分はHLSLで書くものだから、
「マネージコードでGPGPU」かと言われると違う気も。

まあ、C#の式ツリー使って、HLSLを動的生成するライブラリもあるけど。
2011/11/30(水) 14:04:04.56
>>740
いや流石に、ビューポートとか、共有メモリの初期化とか、そういう話だろw
ところでATI StreamやCUDAの場合もHLSLで記述するの?
2012/01/03(火) 22:57:26.17
明日の10:00までの宿題なんだけど、誰かやってくんね?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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