C/C++の宿題を片付け ..
[2ch|▼Menu]
809:デフォルトの名無しさん
08/06/17 19:29:53
>>706
> まともに相手せず、「氏んだほうがいいよ」と白紙のレポートなりメールなり出すのが吉かと
> 「氏んだほうがいいよ」と
> 白紙のレポートなりメールなり出すのが吉かと

きっちっがっいって 分かりやすいよなぁ〜〜おいっw

810:デフォルトの名無しさん
08/06/17 19:32:12
行列式知らなきゃバカなのか?
言葉の端で判断するのには問題があるかもしれんが、
プログラマとしては全く信頼出来ない人間であるような気がしてならないな。
行列式知っていると、プログラマとしては信頼出来ないというものでは勿論ないが。

811:デフォルトの名無しさん
08/06/17 19:32:28
正方行列から話をそらしたいんですね、わかります

812:デフォルトの名無しさん
08/06/17 19:35:39
>>810
行列式は高校レベルの知識だってもはおいといても、
知らないことに対して適当なことを言うのはダメだろ。
わからないとこでもいい加減なコード書きそうでプログラマとして全く信頼できない。


813:デフォルトの名無しさん
08/06/17 19:36:24
別に行列式がどうとかどうでも良いし

やる気があるならソース中に、明記されて無かったけれど
このように解釈してやりました、とでもコメント入れてあげるか
条件をきっちりさせてくれなり言うかすれば良いし

その気がないなら放って置けば良いじゃない

814:デフォルトの名無しさん
08/06/17 19:40:14
あーもしかして今って高校で行列式とか教えてない?
それでも大学の一年生で習うと思うけど、どうなんだ?

815:デフォルトの名無しさん
08/06/17 19:40:22
行列式を計算する問題で行列式がどうでも良いってw

816:デフォルトの名無しさん
08/06/17 19:42:29
>>810
>>810
>>810
>>810


817:デフォルトの名無しさん
08/06/17 19:42:46
そうじゃなくて、知らないなら口を出さない
知ってて尚且つやってあげる気があるならそうすればいいって意味だよ
行列式一つとってどうこう言ってるんじゃない

一番性質が悪いのはただ馬鹿にすることだろ

818:デフォルトの名無しさん
08/06/17 19:44:20
知らないのに口を出したあげく引っ込みつかなくなってるのがお前だろw

819:デフォルトの名無しさん
08/06/17 19:45:08
とりあえず先生に謝れ。そうすれば丸く収まる。

820:デフォルトの名無しさん
08/06/17 19:46:02
枝葉の部分はスルーしてさっさとソース献上しやがれ。

821:デフォルトの名無しさん
08/06/17 19:46:20
証明する方法は無いけど別の人です
あと誰かを擁護する気とか一切ありません
流れを見ててあんまりいいと思わなかったので口を出しました

変なこと言ってすまんかった

822:デフォルトの名無しさん
08/06/17 19:52:21
毎回毎回、質問者が放置するから荒れるんだよなあ。

823:デフォルトの名無しさん
08/06/17 19:53:11
C言語は数学研究向けの言語じゃないからね。システム記述がメインストリームだよ。
数学の研究用の言語は、FORTRANとかだろ?
問題意識は別のところにおいたほうがいいよ。
行列式知らなくても、Cプログラマーとして信頼出来る人は幾らでもいるし。

824:デフォルトの名無しさん
08/06/17 19:55:35
いい具合に荒れてきました!とりあえずここでお決まりのレスを。
ソースでなくても良いから、もうお前らの長文発言にも うpロダ使えw

825:デフォルトの名無しさん
08/06/17 19:57:51
行列式知らない人間なんて人間として信用できん

826:デフォルトの名無しさん
08/06/17 19:58:40
>>823
知らないことと、知らないことに適当に口を挟んでくるのとでは全く違うんだが。

827:デフォルトの名無しさん
08/06/17 19:58:54
ああそう

828:デフォルトの名無しさん
08/06/17 19:59:58
825は明らかにCプログラマ=数学至上主義だという意識を植え付けようとするプロパガンダ

829:デフォルトの名無しさん
08/06/17 20:02:19
>>355お願いします

830:デフォルトの名無しさん
08/06/17 20:03:03
線形代数やらないで計算機って勉強できるの?

831:デフォルトの名無しさん
08/06/17 20:06:18
[1] 授業単元:グラフ理論
[2] 問題文(含コード&リンク):最短経路長の計算を全てのノード対でし、表にしなさい
[3] 環境
 [3.1] OS: 基本Windowsですが、Linuxでも大ジョブです
 [3.2] コンパイラ名とバージョン: Borland C++ 5.5.1
 [3.3] 言語: どちらでも可
[4] 期限: 今週中には出来て欲しいです
[5] その他の制限: 無制限です


ソースは掲示板に張るにはちょっと長いのでこちらに
URLリンク(kansai2channeler.hp.infoseek.co.jp)
ちなみに読み込むネットワークデータが必要なので、そちらも
URLリンク(kansai2channeler.hp.infoseek.co.jp)

単純に最短経路長の計算をループさせればいいのかと思ったんですが
エラーが出てしまって、なんともできない状況になってしまいました
最短経路長の計算を最初から最後までしてくれるようにしてくれるだけでも結構です
最短経路長の出力を利用して表にするくらいなら自分で出来そうですので・・・

宜しく御願いします。Orz

832:デフォルトの名無しさん
08/06/17 20:10:18
>>831 
ちなみに、このソースは自分でココとココ、と指定してその最短経路長を計算してくれます
それをノード0番から10番あるわけですので、
0-1、0-2、0-3、0-4・・・7-10、8-9、8-10、9-10みたいな感じにやってもらえると幸いです

833:790
08/06/17 20:10:20
>>795
ありがとうございますた!

834:デフォルトの名無しさん
08/06/17 20:15:42
オッス、オラおじゃる。大学は理系に進んだのに、行列なんてさっぱりでおじゃ〜
そんな麻呂でもクソースは書けるでおじゃるよ?

835:デフォルトの名無しさん
08/06/17 20:18:55
それはプログラマーではなくコーダー。

836:デフォルトの名無しさん
08/06/17 20:27:28
[1] 情報技術
[2] URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] XP:C++
[4] 08年06月22日
お願いします

837:デフォルトの名無しさん
08/06/17 20:32:03
だいたいさぁ、何のプログラムを作るかで必要な知識は違ってくる。
まず最低限必要なのは、当然言語の仕様。そして実装されている
コンピュータの基本的な部分、仕様、構造。メモリのアドレス、
32ビット、デジタルデータが0と1の組み合わせで、それを複雑に
オナペットしていることをまず知るべきだ。コードのみを見て
わぁ〜数値計算の結果が立った、結果が立ったって
ハイジみたいに喜んでも、なんだかなぁ〜ってなるぞw

838:デフォルトの名無しさん
08/06/17 20:33:58
[1] 授業単元:数値解析
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン:Visual Studio.NET 2003
 [3.3] 言語: C,C++どちらでも可
[4] 期限:今週の土曜まで
[5] その他の制限:問題文が意味がわからんすぎてぐぐっても全然理解できん・・
誰か助けて! これ出さないと判定Xになって単位落とす事になる\(^o^)/


839:デフォルトの名無しさん
08/06/17 20:47:32
数表の形式は?

840:デフォルトの名無しさん
08/06/17 20:50:17
>>838
すまん、底辺大学卒の俺でも、予備知識無しで普通に解けそうな感じだったんだが。


841:デフォルトの名無しさん
08/06/17 20:51:41
>>840
底辺とか、自分を低く見せてるだけやろぉ〜、ほんま、ぶっちゃけて、実は、
本当のところ、ランクCどころじゃない、BかAの大卒なんでしょ〜?またまたぁ〜
謙遜せんでもよかろうに。このこのっ、憎いねぇ〜。Fランク大学中退なめんなw

842:838
08/06/17 20:52:52
>>840
俺まったく、プログラミングやったことなぃんょ
そもそも学科が全然違ってて・・
選択であったからとってみたら意味わからんすぎたぜ
解けるなら教えてくれるとありがたい・・単位が危ないんだ。

843:デフォルトの名無しさん
08/06/17 20:54:29
んじゃ、問題文の意味は分かるけどどういうコードにしたらいいかが分からんのでないの?
問題文が意味が分からんすぎてって書いてるからこういうレスがつく。

844:デフォルトの名無しさん
08/06/17 20:55:32
プログラミングの課題としてこれが出題される事はなかろ。
この1個前の課題および回答をあげてみ?

845:デフォルトの名無しさん
08/06/17 21:03:43
>>838
数表は横並びにxとyが並んでるものと仮定
#include <stdio.h>
#define N 100
int main(void)
{
double xn[N], yn[N], x, y;
int i, cnt;
FILE *fp;

if((fp=fopen("data.txt", "r"))==NULL) return 0;

for(i=0; fscanf(fp, "%lf%lf", xn + i, yn + i)==2; i++);
cnt = i;

scanf("%lf", &x);

if(x < xn[0] || xn[cnt-1] <= x) return 0;

for(i=0; xn[i] < x; i++);

y = (yn[i+1] - yn[i]) * (x - xn[i]) / (xn[i+1] - xn[i]) + yn[i];

printf("y = %f\n", y);

return 0;
}

846:デフォルトの名無しさん
08/06/17 21:05:31
URLリンク(kansai2channeler.hp.infoseek.co.jp)

847:838
08/06/17 21:06:15
>>843
もう問題文から答えまでわかんねーょ
コードってなんだょ!

>>844
一個前のは答えがまだ教えられてないから
ちょっと前のだが、こんな感じ
URLリンク(kansai2channeler.hp.infoseek.co.jp)

ニュートン法の解き方とか二分法とかが課題だったな
それも答え教えられてないけどwww

848:デフォルトの名無しさん
08/06/17 21:06:30
>>841
すまん、嘘ついた。俺もFラン中退だ。

849:デフォルトの名無しさん
08/06/17 21:06:35
[1] 授業単元:システムソフトウェア
[2] 問題文

連結リストを用いてキュー(queue)を以下の仕様に従って実装しなさい.

連結リストの初期化(0~99のランダムな整数を入れる),表示を行う関数を,「list_init.c」に実装しなさい.
連結リストを初期化する関数をlist_create(), 連結リストに格納されている整数を表示する関数をlist_disp()としなさい.
連結リストのノードの総数はキーボードから入力されるものとする.
キュー(連結リスト)の値の格納をenqueue(),値の取り出しをdequeue(),値の検索をsearch()として,「list_op.c」に実装しなさい.
list_init.c, list_op.cから動的ライブラリ(共有ライブラリ)libdata_s.soを作成しなさい.
main関数を含むコードを「test_list.c」として作成し,libdata_s.soを用いてコンパイルしなさい.
実行形式のファイル名は「test_list」とする.
ただし,libdata_s.soの関数は,dlfcn.hに含まれている関数と,関数ポインタを用いて呼び出しを行うこと.
作成したプログラムは以下の動作を行う.
1:キーボードからキューのノードの総数を受け取る
2:初期化したキューの内容を表示する.
3:キーボードからのコマンド待ち状態になる.コマンドは,0を入力するとenqueue, 1を入力するとdequeue, 2を入力すると値のsearchを行い,それ以外の数字を入力するとプログラムが終了する.
4:2., 3.を繰り返す

[3] 環境
 [3.1] OS:linux
 [3.2] gcc
 [3.3] 言語:C
[4] 期限:明後日
おねがいします


850:デフォルトの名無しさん
08/06/17 21:07:40
              合計
  50 49 48 47 46 ***
  45 44 43 42 41 ***
  40 39 38 37 36 ***
  35 34 33 32 31 :
  30 29 28 27 26 :
  25 24 23 22 21 :
  20 19 18 17 16 :
  15 14 13 12 11 :
  10 9 8 7 6 :
   5 4 3 2 1
合計 *** *** *** *** ***

を表すプログラムってどの様に書けますか?一次元配列を使うということですが・・・

851:デフォルトの名無しさん
08/06/17 21:08:37
つ int i; for(i=1; i<=3; i++) putchar('*');

852:760
08/06/17 21:08:56
できればすぐお願いします
20から30回で宝8個みつかるようお願いします

853:デフォルトの名無しさん
08/06/17 21:13:25
>>847
ああ、つまり、ここに頼ったはいいけど自分の身についてないから
どんどん被害が大きくなってるってわけね。
いつかしっぺ返しくらう前にちょっとずつ理解しような。
ソースコードはでき次第うpする

854:838
08/06/17 21:14:52
>>845
FILE *fp;

if((fp=fopen("data.txt", "r"))==NULL) return 0;

がよくわからないんだが データテキストを呼び出すのか?
そのファイルを何処に置けばいいかもわからん・・

855:838
08/06/17 21:17:20
>>853
そうだ・・まったくもって勉強してない成果がここで発揮されたぜ
ぅん・・これ以降は自分で出来る様にがんばるょ。
頼む!今のところ出来そうにない!

856:デフォルトの名無しさん
08/06/17 21:24:55
>>831 たぶんできましたんでやらんでいいです

おさわがせしました

857:デフォルトの名無しさん
08/06/17 21:52:02
>>760
改良してやろうと思ったけど…

問題内容、問題コードどれを取っても、お前が言ってる条件に当てはまらないだろ
だいたいポインタ使って関数渡しの値代入してるのに、構造体習ってないから使うな?
しねよ



お前が知らないだけだろ、その問題

858:デフォルトの名無しさん
08/06/17 21:53:53
>>857
> しねよ
また使ってるよ、基地外

859:デフォルトの名無しさん
08/06/17 22:04:18
>>858
> 基地外
また使ってるよ、しねよ

860:766
08/06/17 22:06:50
>>773
ご助言ありがとうございます。

しかしうまくプログラムが組めないorz


861:デフォルトの名無しさん
08/06/17 22:15:31
プログラムは組み物じゃないな

編み物

彼氏にマフラー編んだげてるの

862:デフォルトの名無しさん
08/06/17 22:26:06
>>850
#include <stdio.h>
int main(){
int a,b,z,i=0,d=0;
int c=50;
//1行目から10行目
printf("\t\t\t\t\t\t合計\n");
for(a=0; a<10; a++){
for(b=0; b<5; b++){
i += c;
printf("\t%d",c);
c--;
}
printf("\t%d",i);
printf("\n");
i=0;
}
//11行目
printf("合計");
for(a=5; a>0; a--){
for(b=0; b<10; b++){
c += a+5*b;
}
printf("\t%d",c);
d += c;
c=0;

}
printf("\t%d",d);
}

863:デフォルトの名無しさん
08/06/17 22:26:58
>>857
まあ落ち着け。
>>590の回答に対して構造体とか#ifとか使うなって条件つけたんだよ。
条件の後出しがひどく迷惑であることを痛感する展開ではあるんだが。

864:デフォルトの名無しさん
08/06/17 22:46:31
>>862
ありがとうございます!!

ちなみに、これを関数で表せという問題も一緒に出されているのですが全く分かりません。。。

865:デフォルトの名無しさん
08/06/17 22:58:15
void disp(){
//>>862
}
int main(){
disp();
return 0;
}

866:デフォルトの名無しさん
08/06/17 23:01:50
>>865
ほんとGJ!!!

助かりました@@;

867:デフォルトの名無しさん
08/06/17 23:19:30
>>766,860
素人の俺ので良ければどうぞ
URLリンク(kansai2channeler.hp.infoseek.co.jp)

868:デフォルトの名無しさん
08/06/17 23:25:29
宝探しのやつ、takaraとかの盤面が周り1マス分大目に取ってあるとよかったのになあ。。。
とぼやきつつ、ぼちぼち。

869:デフォルトの名無しさん
08/06/17 23:34:10
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):()
文字列aから文字bを取り除く。下までできたのですが。。。


#include<stdio.h>
char a,b;
void main()
{
scanf("%d\n",a);
scanf("%d\n",b);
printf("%d",a,b);
return 0;
}

/* squeeze sからcをすべて取り除く */
void squeeze(char s[], int c)
{
int i,j;
for(i=j=0; s[i] !='\0'; i++)
if(s[i] !=c)
s[j++]=s[i];
s[j]='\n';
}

[3] 環境
 [3.1] OS:XP
 [3.2] よくわかりません。ボーランド?
 [3.3] 言語: C言語
[4] 期限:明日中に。


870:デフォルトの名無しさん
08/06/17 23:34:14
>>867
おお、ありがとうございmす。
これを元に勉強させてもらいます。

871:760
08/06/17 23:53:34
お願いできないでしょうか?問題変更で20から30回で
構造体使ってもいいのでおねがいします!

872:デフォルトの名無しさん
08/06/18 00:05:34
>>760
>>871
ちょっと待ってろw
しかし、人間がやっても20回くらいかかるぞ?
問題のレベルの割に、お前さんのレベルが低すぎる気が…

873:デフォルトの名無しさん
08/06/18 01:27:57
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
#include <stdio.h>

main()
{
int ch;

while(( ch=getchar()) != EOF) {
printf("%02x", ch);
}
}

このプログラムだけでは非常に長くなるので、'\n'を検出したら,出力にも改行文字を埋めたい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++

874:デフォルトの名無しさん
08/06/18 01:32:38
>>872
お願いします

875:デフォルトの名無しさん
08/06/18 01:54:20
#include <stdio.h>  printf("%02x", ch);
なのに C++ とは、どんな授業をしてるでおじゃるか?

876:デフォルトの名無しさん
08/06/18 02:01:16
>>873
if(ch='\n'){
    cout << endl;
}

877:デフォルトの名無しさん
08/06/18 03:09:31
>>657さんの問題を
main関数のみで作っていただけないでしょうか?

878:デフォルトの名無しさん
08/06/18 03:25:04
[1] 授業[1] 授業単元:オペレーティングシステム
[2] 問題文:mallocを用い、下記のプログラムを完成させて、次の仕様を満たすプログラムを作成せよ。
 ・キーボードから可変数の英数字の行を読み込む
 ・最初に行数を入力させる
 ・1行の長さは最大256文字
 ・全入力が終了したところで、全入力行をまとめて出力する
#include <stdio.h>
#define MAX_LINE 256
main(){
char *p;
int n, i;
scanf(“%d”, &n);
p = --------------------;
for (i = 0; i < n; i++) {
scanf(“%s”, p + MAX_LINE * i);}
------------------------;}
[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語:C
[4] 期限:明日まで
点線の部分の変更のみです。
よろしくお願いします。

879:760
08/06/18 03:25:40
20回から30回のプログラムを
今日朝9時までにお願いできないでしょうか
できそうにないんで…

880:デフォルトの名無しさん
08/06/18 03:35:52
>>878
p = malloc(MAX_LINE * n);

for(i = 0; i < n; i++) { printf("%s\n", p + MAX_LINE * i); }

881:414
08/06/18 06:02:08
>>451
亀ですいません。
作成いただきありがとうございました。

882:デフォルトの名無しさん
08/06/18 06:04:25
>>760
>>879

お前、ふざけてるのか?偽者の釣りか?
8/100の宝探し全てを20回から30回でって…人間がやってもなかなか出来ないぞ…

URLリンク(kansai2channeler.hp.infoseek.co.jp)

883:デフォルトの名無しさん
08/06/18 06:09:05
問題のレベルと依頼者のレベルが余りにもかけ離れてる場合
よく他人に頼んで、提出できるよなっていつも思う
あんまり無いのかも知れんが、内容に関して質問が来たらどうするつもりだろ?

884:デフォルトの名無しさん
08/06/18 06:12:30
まぁ〜〜〜た今さらなことを、独り言のようにてめぇが勝手に思っている疑問を
わざわざ書き込むか、一言居士め。どうでも良いだろ、そんなの。
このスレの趣旨がわかってない新入りだろ、しねだのほざくガキって?
もしそれで高卒以上の年齢だとしたら、かなり精神レベルが低いぞ、こいつ。

885:デフォルトの名無しさん
08/06/18 06:15:13
>>883
んなこと俺らが心配することでも何でもない。>>1読め。

886:デフォルトの名無しさん
08/06/18 08:56:25
>>879
何で今朝なんだ?期限とちがうじゃん。

887:デフォルトの名無しさん
08/06/18 09:03:42
>>885
つまりレベルがかけ離れていて気に入らない質問はスルーしとけばいいのか

888:デフォルトの名無しさん
08/06/18 09:13:30
>>866>>865なんかで本当に大丈夫なのだろうか

889:デフォルトの名無しさん
08/06/18 09:47:38
レベルなんぞ気にしているくらいなら、とことん初心者レベルに戻るべし。
本当にコードから○ンコのに臭いがぷんぷんと漂ってきそうな
麻呂のクソースを目指すでおじゃる!

890:デフォルトの名無しさん
08/06/18 09:58:47
初心者レベルの宿題しか解けないだけだろw

891:デフォルトの名無しさん
08/06/18 10:25:09
[1] 授業単元: 情報実験
[2] 問題文(含コード&リンク):
クイックソートでは、値が等しい要素の位置を入力された順に保つことができない。
この問題を解決するプログラムを作成せよ。
ただし、以下の解決方法を用いよ。
•配列をリストに変換
•三つのリストを作る
ー枢軸より大きい要素のリスト
ー枢軸より小さい要素のリスト
ー枢軸より等しい要素のリスト
•三つのリストを統合する

[3] 環境
 [3.1] OS: Mac OS X
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:できれば今日まで
よろしくお願いします

892:デフォルトの名無しさん
08/06/18 10:48:59
難し過ぎ

893:877
08/06/18 11:19:28
>>877出来る方いませんか?

894:デフォルトの名無しさん
08/06/18 11:51:35
在庫管理のプログラムを作りなさいっていう宿題なのですけれども
よろしくお願いします。

1.クラス設計
データ定義:100件分(とりあえずの値としておく)
商品コード int(0〜999)
在庫数   int
登録商品数 int(新規商品を入庫するたびに+1される)

商品マスター:予め数件分を定数として定義しておく(-1がストッパー)
(例) int master[ ]={1,3,5,10,11,12,100,200,900,-1};

メンバー関数:
・コンストラクタ:保持している商品数をクリアする。
・データ設定関数:int  add(int 商品コード、 int 入庫数)
  商品マスターチェックNGなら戻り値にエラーを設定する。
  チェックOKならデータ部に登録し、在庫数を加算、登録商品数を+1する

・在庫数取得関数:int get(int 商品コード)
  商品コードが登録されていれば現在の在庫数を戻り値に返す。
  登録されていない(入庫されていない)場合は-1を返す。

c++でお願いします。


895:デフォルトの名無しさん
08/06/18 13:11:58
>>894
本当にこれが全文ですか?

896:デフォルトの名無しさん
08/06/18 14:50:01
そうなんじゃない?
在庫管理プログラムとして十分ではないけれど、題意を満たすソースは書けるでしょ。
作成されるものはチープかもしれないけど、それが課題というものかと。

897:デフォルトの名無しさん
08/06/18 14:57:05
ここのおじゃぱ様なら楽勝だよw
スレリンク(prog板)

898: ◆DuoCt8/SKk
08/06/18 15:31:31
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C++ 6.0
 [3.3] 言語:C言語
[4] 期限:2008年6月20日
[5] その他の制限:構造体,ポインタまで
どなたかよろしくお願いします.

899:デフォルトの名無しさん
08/06/18 15:31:59
商品コード int(0〜999)とか商品マスターとかはいいとして
データ定義とか商品マスターチェックNGとか微妙に粒度と日本語がゴチャゴチャな気がする

>  商品コードが登録されていれば現在の在庫数を戻り値に返す。 
>  登録されていない(入庫されていない)場合は-1を返す。
商品コードの登録って実際はどういう動作なのかわからん.
どうも在庫数を増やすだけじゃなさそうだが.









まぁ作ったけど.

900:894
08/06/18 15:43:53
たしかにゴチャゴチャですよね;
知識ないのに余計よくわからなくて此処で聞いてみました。

>>899さん上げてもらえますか?




901:デフォルトの名無しさん
08/06/18 15:56:29
const int CODE_NOT_FOUND = -1;
const int MASTER_ERROR = -1;
const int MASTER_SUCCESS = 0;
static int master[] = {1, 2, 3, 4, 5, CODE_NOT_FOUND};
static int checkCode(int code){
  for(int i = 0; master[i] != CODE_NOT_FOUND; i++) if(code == master[i]) return code;
  return CODE_NOT_FOUND;
}
class Manager{
  private:
  int *merchandise;
  public:
  Manager(){
    merchandise = new int[100];
    for(int i=0; i<100; merchandise[i++] = 0);
  }
  virtual ~Manager(){
    delete[] merchandise;
  } 
  int add(int code, int n){
    if(checkCode(code) == CODE_NOT_FOUND) return MASTER_ERROR;
    else {merchandise[code] += n; return MASTER_SUCCESS; }
  }
  int get(int code){
    if(checkCode(code) == CODE_NOT_FOUND) return MASTER_ERROR;
    if(merchandise[code] == 0) return -1;
    else return merchandise[code];
  }
};
こんな感じ

902:894
08/06/18 16:10:57
すいません、、、
もっと分かりやすい簡単な漢字で書いてもらえないでしょうか、、?

903:894
08/06/18 16:12:33
すいません、、、
もっと分かりやすい簡単な感じで書いてもらえないでしょうか、、?

904:デフォルトの名無しさん
08/06/18 16:14:55
分かりやすさは他人に求めるものじゃなくて自分で感じるものじゃね?

905:デフォルトの名無しさん
08/06/18 16:34:43
こういう分野はC/C++向きじゃないな。完全にデータベース向けと考えられてるね一般的には。
やはりこういう問題出した教師は現場を知らん◎フォだとしておこう。

906:デフォルトの名無しさん
08/06/18 16:42:38
マスタのコードが0-999でmerchandiseのインデックスにコード使っちゃうとだめなんじゃない?

907:デフォルトの名無しさん
08/06/18 16:45:19
原理を勉強するのに、一から書いてみるというのは悪い方法じゃないだろう

908:デフォルトの名無しさん
08/06/18 16:46:34
>>906
なんか面倒になったから適当にしてみた

909:デフォルトの名無しさん
08/06/18 16:48:15
>>901
なんかそれだとcodeがmerchandiseのインデックスになるから
例題の
int master[ ]={1,3,5,10,11,12,100,200,900,-1};
のときmerchandise[200]とかになっておかしくないか?

910:デフォルトの名無しさん
08/06/18 16:55:32
[1] 情報プログラミング:
[2] 問題文(含コード&リンク):標準入力からのテキストデータ中に現れる単語の出現頻度数つき一覧を出力するプログラムを作成せよ。
[3] 環境
 [3.1] OS: linux
 [3.2] Vine Linux 3.2
 [3.3] 言語: C
[4] 期限:2008 6/24
[5] その他の制限:線形リストを使い、つくれとのことです。
どなたかよろしくお願いいたします

とりあえずここまで作成してあります(まだまだ未完成ですが。。。)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
よければ見て下さい

911:デフォルトの名無しさん
08/06/18 17:33:02
>>898
URLリンク(kansai2channeler.hp.infoseek.co.jp)
Otheloは登録商標なので0theloにしておいた

912:デフォルトの名無しさん
08/06/18 17:34:53
/* 0thello Game */


913:デフォルトの名無しさん
08/06/18 17:42:57
ShowAllって次の手1個につき1画面なのかな
書き直してみる

914:911
08/06/18 17:56:34
>>898
修正
URLリンク(kansai2channeler.hp.infoseek.co.jp)

915:デフォルトの名無しさん
08/06/18 18:12:53
>>908
まあ宿題だからそれぐらいアバウトなほうがいいのかもしれないね

916:デフォルトの名無しさん
08/06/18 18:25:35
>>850なんですがこの表示結果の合計を、前列の合計を次々に足していく風にしたいのですがどう書けますか?
よろしくお願いします。
合計
50 49 48 47 46 240
45 44 43 42 41 215
40 39 38 37 36 190
35 34 33 32 31 165
30 29 28 27 26 140
25 24 23 22 21 115
20 19 18 17 16 90
15 14 13 12 11 65
10 9 8 7 6 40
5 4 3 2 1 15
合計 275 265 255 245 235 1275


917:デフォルトの名無しさん
08/06/18 18:26:56
↑ずれて分かりにくくなってしまってすみません;;

918:878
08/06/18 18:27:41
>>880
エラーが出てきます。
コンパイラ通してみた結果です。
10:error:プログラムとして逸脱した文字 '/226'
10:error:プログラムとして逸脱した文字 '/128'
10:error:プログラムとして逸脱した文字 '/156'
10:error:文法エラーが'%'トークンの前にあります
10:error:プログラムとして逸脱した文字 '/226'
10:error:プログラムとして逸脱した文字 '/128'
10:error:プログラムとして逸脱した文字 '/157'
15:error:プログラムとして逸脱した文字 '/226'
15:error:プログラムとして逸脱した文字 '/128'
15:error:プログラムとして逸脱した文字 '/156'
15:error:文法エラーが'%'トークンの前にあります
15:error:プログラムとして逸脱した文字 '/226'
15:error:プログラムとして逸脱した文字 '/128'
15:error:プログラムとして逸脱した文字 '/157'

919:デフォルトの名無しさん
08/06/18 18:27:53
>>836
URLリンク(kansai2channeler.hp.infoseek.co.jp)

920:デフォルトの名無しさん
08/06/18 18:35:07
>>862を参考に、一次元配列を使うようにしたよ。

#include <stdio.h>
int main(){
int a,b,z,i=0,d=0;
int c=50;
int r[10];
//1行目から10行目
printf("\t\t\t\t\t\t合計\n");
for(a=0; a<10; a++){
for(b=0; b<5; b++){
i += c;
printf("\t%d",c);
c--;
}
printf("\t%d",i);
printf("\n");
i=0;
}
//11行目
printf("合計");
for(a=5; a>0; a--){
for(b=0; b<10; b++){
c += a+5*b;
}
printf("\t%d",c);
d += c;
c=0;

}
printf("\t%d",d);
}

921:デフォルトの名無しさん
08/06/18 18:39:58
>>920

ありがとうございます!
理解できました!

合計値についてなんですが前列の合計値も足してって次々に足して表示させたいんですがどうすればいいのですか?

922:デフォルトの名無しさん
08/06/18 18:43:09
>>921
理解できたか。それはよかった。次々にっていうのはこういうこと?
#include <stdio.h>
int main(){
int a,b,z,i=0,d=0;
int c=50;
int r[10];
//1行目から10行目
printf("\t\t\t\t\t\t合計\n");
for(a=0; a<10; a++){
for(b=0; b<5; b++){
i += c;
printf("\t%d",c);
c--;
}
printf("\t%d",i);
printf("\n");
// i=0;
}
//11行目
printf("合計");
for(a=5; a>0; a--){
for(b=0; b<10; b++){
c += a+5*b;
}
printf("\t%d",c);
d += c;
// c=0;

}
printf("\t%d",d);
}

923:デフォルトの名無しさん
08/06/18 18:45:48
>>922
そうです!
でも、どこをどういう風に考えたのか分かりません@@:

924:デフォルトの名無しさん
08/06/18 18:48:58
一行書くたびに合計をクリアしていたので、一行ごとの合計が右端に出てた。
これをクリアしないようにすることで、1行目の合計に2行目の数字が足されるようになって
1行目と2行目の合計が2行目に出るようになった。
列もおなじ。

925:デフォルトの名無しさん
08/06/18 18:53:20
>>924
初歩的な質問でごめんなさい。クリアを示す記号って何ですか?
どこも変わっていないような気がするのですが・・・

926:デフォルトの名無しさん
08/06/18 18:53:52
>>918
226=0xE2
128=0x80
156=0x9C
156=0x9D

E2 80 9C はUTF-8 で全角の “
E2 80 9D はUTF-8 で全角の ”


927:918
08/06/18 19:04:43
自己解決しました。
スレ汚し申し訳ありません。

928:デフォルトの名無しさん
08/06/18 19:05:19
自己解決w

929:デフォルトの名無しさん
08/06/18 19:05:33
[1] 授業単元:C++入門
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語:C++
[4] 期限:
[5] その他の制限:

よろしくお願いします

930:デフォルトの名無しさん
08/06/18 19:05:50
>>925
0を代入することでクリアしていた部分をコメントアウトすることでクリアしないようにした。
行、列の2箇所。

931:デフォルトの名無しさん
08/06/18 19:11:10
>>930
なるほど、そういう事だったんですね。ありがとうございました。

932:919
08/06/18 19:12:07
>>836
うpしてから思ったがABC#DEF#HIJをABC#FED#HIJではなくABC#FED#JIHにするっぽいな
後者ならフラグ要らんからrev_flagを含む行(5行)は削っとくれ

933:デフォルトの名無しさん
08/06/18 19:14:12
>>898
バッファオーバーフローのバグがあった
URLリンク(kansai2channeler.hp.infoseek.co.jp)


934:デフォルトの名無しさん
08/06/18 19:16:49
暇つぶしに 910 をといてみたぜ。
910の役にはたたないだろうがな。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

935:デフォルトの名無しさん
08/06/18 19:17:15
>>850
#include <stdio.h>
#define ROW 10
#define COL 5
int main(void){
int row[COL]={0},tr,tc[COL]={0},r,c;
for(c=0; c<=COL; c++) printf("\t");
printf("合計\n");
// 各行
for(r=ROW; r>0; r--) {
for(c=COL-1; c>=0; c--) {
row[c]=r*COL-c;
tc[c]+=row[c];
}
for(c=0,tr=0; c<COL; c++) {
tr+=row[c];
printf("\t%d",row[c]);
}
printf("\t%d\n",tr);
}
// 各列の合計
printf("合計");
for(c=0; c<COL; c++) printf("\t%d",tc[c]);
puts("");
return 0;
}


936:デフォルトの名無しさん
08/06/18 19:23:30
#include <stdio.h>
int count_bits(unsigned)
{
int count = 0;
while (x){
if (x & 1U) count++;
x>>1;
}
return (count);
}
int int_bits(void)
{
return (count_bits(~0U));
}
void print_bits(unsigned x)
{
int i;
for (i= int_bits() - 1; i >= 0; i++)
putchar(((x>>1) & 1U) ? '1' : '0');
}
int main(void)
{
unsigned nx;
printf("非負の整数を入力してください :");
scanf("%u", &nx);
putchar('\n');
return 0;
}

というプログラムにおいて、int count_bits(unsigned)を int count_bits(signed x)とするとどのような現象が置きますか?
理由も書けという問題なのですが。

937:デフォルトの名無しさん
08/06/18 19:24:07
>>898
orz
URLリンク(kansai2channeler.hp.infoseek.co.jp)


938:デフォルトの名無しさん
08/06/18 19:27:36
>>935

ありがとうございます!
合計値は、前列(行)の合計値を次々に足していく風にしなければならないのですが。。。
一次元配列に於いては次の列(行)にいく際どこでクリアされているのでしょうか。

939:デフォルトの名無しさん
08/06/18 19:36:33
>>938 >>850
#include <stdio.h>
#define ROW 10
#define COL 5
int main(void){
int row[COL]={0},tr,tc[COL]={0},tmp,r,c;
for(c=0; c<=COL; c++) printf("\t");
printf("合計\n");
// 各行
for(r=ROW,tr=0; r>0; r--) {
for(c=COL-1; c>=0; c--) {
row[c]=r*COL-c;
tc[c]+=row[c]; }
for(c=0; c<COL; c++) {
tr+=row[c];
printf("\t%-d",row[c]); }
printf("\t%-d\n",tr);}
// 各列の合計
printf("合計");
for(c=0,tmp=0,tr=0; c<COL; c++) {
tmp+=tc[c]; tr+=tmp;
printf("\t%-d",tmp);} printf("\t%d\n",tr);
return 0;
}


940: ◆DuoCt8/SKk
08/06/18 19:56:34
>>911-914
>>933
>>937
こんなにたくさん頑張って頂き本当にありがとうございます.
これが第一段階らしく,第二・三段階もあるみたいなので,もし良かったら
その時にも是非よろしくお願いします.

941:デフォルトの名無しさん
08/06/18 20:01:32
[1] 授業単元:コンピュータプログラミング
[2] 問題文(含コード&リンク):
標準入力(キーボード)から一つずつ数値(浮動小数点)を
読み込んで、データの数、平均値、標準偏差を出力するプロ
グラムを作成せよ。ただし、データ入力は、空行の入力で終
了するものとする。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年06月18日まで
[5] その他の制限:入力終了の判別方法は、このプログラムを参考にするとよいが、
今回の問題では、入力データを配列等に保存する必要がない
ことに注意。配列に保存することにすると、配列の大きさで
入力できるデータ数が制限されてるので、好ましくない。

よろしくお願いします。m(_ _)m

942:デフォルトの名無しさん
08/06/18 20:30:45
#include <stdio.h>
#include <math.h>

int main(void)
{
double s = 0, a = 0, temp, sigma2;
int cnt = 0;
char buff[256];

while(1) {
fgets(buff, sizeof buff, stdin);
if(buff[0]=='\n') break;
sscanf(buff, "%lf", &temp);
s += temp * temp;
a += temp;
cnt++;
}
a /= cnt;
s = sqrt(s / cnt - a * a);

printf("データ数:%d\n平均:%f\n標準偏差:%f", cnt, a, s);

return 0;
}

943:デフォルトの名無しさん
08/06/18 20:41:42
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語:C++
[4] 期限:
[5] その他の制限:

お願いします。。


944:デフォルトの名無しさん
08/06/18 20:44:39
::

945:デフォルトの名無しさん
08/06/18 20:48:00
>>942
適当に改造してたら使ってない変数残った。
sigma2は消しといて

946:デフォルトの名無しさん
08/06/18 20:50:21
サセクア

947:デフォルトの名無しさん
08/06/18 20:55:08
[1] C演習
[2] 入力する3以上の整数nに対して、2以上n以下の整数の組の最大公約数を
「ユークリッドの互除法」を用いて計算するプログラムを作れ。
(例:n=6の場合、2と3、2と4、2と5、2と6、3と4、3と5、3と6
4と5、4と6、5と6の10通り)
(表示例:n=6の場合)
   3  4  5  6
2: 1  2  1  2
3:    1  1  3
4:       1  2
5:          1
[3]
 [3.1] LINUX
 [3.3] C
[4]6月23日
[5]関数は習ってないので、if,while,forなどを使ってお願いします。
よろしくお願いします。

948:デフォルトの名無しさん
08/06/18 20:56:31
[1] C演習
[2] 入力する3以上の整数nに対して、2以上n以下の整数の組の最大公約数を
「ユークリッドの互除法」を用いて計算するプログラムを作れ。
(例:n=6の場合、2と3、2と4、2と5、2と6、3と4、3と5、3と6
4と5、4と6、5と6の10通り)
(表示例:n=6の場合)
   3  4  5  6
2: 1  2  1  2
3:    1  1  3
4:       1  2
5:          1
[3]
 [3.1] LINUX
 [3.3] C
[4]6月23日
[5]関数は習ってないので、if,while,forなどを使ってお願いします。
よろしくお願いします。

949:デフォルトの名無しさん
08/06/18 21:02:52
>>943
inventory(char *item, double cost, int on_hand)
{
strcpy_s(inventory::item, item);
inventory::cost = cost;
inventory::on_hand = on_hand;
}

inventoryだけを上記のように変更。
namespaceによるローカル変数とメンバ変数の明示を問う問題っぽいけど実務では使うなよ。

950:デフォルトの名無しさん
08/06/18 21:03:11
>>945ありがとうございます。


951:デフォルトの名無しさん
08/06/18 21:09:16
1] 情報プログラミング演習:
[2] 問題文(含コード&リンク):標準入力からのテキストデータ中に現れる単語の出現頻度数つき一覧を出力するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windous
 [3.2] VC 6.0
 [3.3] 言語: C++
[4] 期限:2008 6月いっぱい
[5] ホントに困っていますのでどの問題でもかまいません
  教えてください

952:951
08/06/18 21:11:21
間違えました
1] 情報プログラミング演習:
[2] 問題1
三角形の底辺の幅、あるいは段数(どちらか一つ)を入力すると、逆三角形を表示する。例えば、底辺5あるいは段数3を入力すると
*****
***
*
となる。

10個以下の任意のn個(データ数は入力)のデータを入力し、逆順に出力する。
実行結果は奇数と偶数個の例を示すこと。


[3] 環境
 [3.1] OS: Windous
 [3.2] VC 6.0
 [3.3] 言語: C++
[4] 期限:2008 6月いっぱい
[5] ホントに困っていますのでどの問題でもかまいません
  教えてください


953:951
08/06/18 21:12:26
間違えました

1] 情報プログラミング演習:
[2] 問題1
三角形の底辺の幅、あるいは段数(どちらか一つ)を入力すると、逆三角形を表示する。例えば、底辺5あるいは段数3を入力すると
*****
***
*
となる。


[3] 環境
 [3.1] OS: Windous
 [3.2] VC 6.0
 [3.3] 言語: C++
[4] 期限:2008 6月いっぱい
[5] ホントに困っていますので教えてください


954:デフォルトの名無しさん
08/06/18 21:12:33
[1] 授業単元:プログラミングT

[2] 問題: URLリンク(kansai2channeler.hp.infoseek.co.jp)
 [3.1] OS: WindowsXp
 [3.2] コンパイラ名とバージョン:visualstdio 2008
 [3.3] 言語:C
[4] 期限:6月21日
[5] その他の制限:なし。

   よろしくお願いします.

955:デフォルトの名無しさん
08/06/18 21:14:01
>>948
#include <stdio.h>
int main(void)
{
int i, j, n;
scanf("%d", &n);
printf("   ");
for(i=3; i<=n; i++) printf("%2d", i);
putchar('\n');
for(i=2; i<n; i++) {
printf("%2d:", i);
for(j=3; j<=i; j++) printf("  ");
for( ; j<=n; j++) {
int a = i, b = j;
while((a=a%b)!=0) {
b += a;
a = b - a;
b -= a;
}
printf("%2d", b);
}
putchar('\n');
}
return 0;
}

956:デフォルトの名無しさん
08/06/18 21:14:10
そういえば期末の時期だな。

957:デフォルトの名無しさん
08/06/18 21:18:54
>>954
#include <stdio.h>
int main(void)
{
char string[100];
char *p;

gets(string);

p=string;
while(*p!=' ') {
if(*p=='\0') return 0;
p++;
}
p++;
while(*p!='\0'){
putchar(*p);
p++;
}
putchar('\n');
return 0;
}


958:デフォルトの名無しさん
08/06/18 21:19:48
またwindousか

959:デフォルトの名無しさん
08/06/18 21:20:13
>>951
#include<iostream>
#include<string>
#include<map>

int main()
{
std::string tango;
std::map<std::string,int> tango_count;

while(std::cin >> tango)
{
tango_count[tango]++;
}

for(std::map<std::string,int>::iterator n=tango_count.begin();n!=tango_count.end();++n)
{
std::cout << n->first << " : " << n->second << std::endl;
}

return 0;
}

960:951
08/06/18 21:24:50
>>959さん
ありがとうございます。


961:デフォルトの名無しさん
08/06/18 21:26:20
>>948
URLリンク(kansai2channeler.hp.infoseek.co.jp)

962:デフォルトの名無しさん
08/06/18 21:27:18
>>953
まちるだ

963:デフォルトの名無しさん
08/06/18 21:27:49
[1] 授業単元:プログラム演習
[2]
引数を2つの実数値とし,その2つのうち大きいほうの値を返す関数max()および小さいほうの値を返す関数min()を作成せよ。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年06月20日まで
[5]

コンパイルできたのですが、正しい値が帰ってきません。
どこがおかしいのか教えてください。
よろしくお願いします。




964:デフォルトの名無しさん
08/06/18 21:28:15


#include<stdio.h>

double max(double a,double b);
double min(double a,double b);

main(){

double x,y,MAX,MIN;
printf("実数を二つ入力してください\n");
scanf("%f",&x);
scanf("%f",&y);
MAX=max(x,y);
MIN=min(x,y);
printf("max=%f\n",MAX);
printf("min=%f\n",MIN);


}

double max(double a,double b){
double z;
if(a<b){z=b;}else{z=a;}
return(z);}

double min(double a,double b){
double z;
if(a<b){z=a;}else{z=b;}
return(z);}



965:デフォルトの名無しさん
08/06/18 21:28:17
>>954
> ただし,文字列の入力には関数 gets を用いること.
ダウト!!!!講師にやめれと抗議すべき

966:デフォルトの名無しさん
08/06/18 21:28:53
[1] 授業単元:暇潰し
[2] 問題文(含コード&リンク):
平面上にn個の点について、それぞれ他の全ての点に対し2点を結ぶ辺を作り、その重みをユークリッドノルムとして計算し、昇順にソートする。
nは10万以上のため、全ての重みをメモリ上で保持してソートするのは現実的でない。現実の計算機上で高速に計算しソートする方法を示せ

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: g++
 [3.3] 言語: C++
[4] 期限: (無期限]
[5] その他の制限: なし


967:デフォルトの名無しさん
08/06/18 21:33:01
>>966
(n-1)! 個の重みを昇順にソートするって事?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5023日前に更新/317 KB
担当:undef