ぼるじょあがC/C++の ..
[2ch|▼Menu]
446: ◆UoNQqijD4I
07/07/23 20:26:11
>>444ですが、配列を使ってお願いします。
無理いってすみませんが…(;;)

447:デフォルトの名無しさん
07/07/24 15:28:06
あっちの宿題スレにレスあったで

448:デフォルトの名無しさん
07/07/24 16:03:21
[1] 授業単元:C言語 応用
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:YS2005
 [3.3] 言語:C
[4] 期限:2007/07/25 12:00
[5] その他の制限:なし

使用する関数(getstring)等も一緒に書いたため
見づらいかもしれませんがよろしくお願いいたします。

449:デフォルトの名無しさん
07/07/24 16:34:08
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):”rand1000.dat”というデータの個数nとその個数分の整数データが保存されているファイルがある
URLリンク(kansai2channeler.hp.infoseek.co.jp)


このデータをファイルから読み込み

挿入ソート
基数ソート
ヒープソート
クイックソート
マージソート

によってソートできるよう各プログラムを作成せよ

データ数が100,000個のときでも対応できるようメモリを確保しておいてください。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 7月28日
[5] その他の制限:出来る限り単純なアルゴリズムで作ってください。合計5つのプログラムを作成してください。

大変な問題で申し訳ありませんがどなたか詳しい方よろしくお願いいたします

450:デフォルトの名無しさん
07/07/24 18:40:39
>>449
挿入ソート
URLリンク(kansai2channeler.hp.infoseek.co.jp)

451:デフォルトの名無しさん
07/07/24 18:48:08
>>449 ちょい変更、挿入ソートのみ
URLリンク(kansai2channeler.hp.infoseek.co.jp)

452:デフォルトの名無しさん
07/07/24 19:32:23
>>450-451

ありがとうございます。助かります。

残りのもできればお願い致します


453:デフォルトの名無しさん
07/07/24 19:44:09
>>449 クイック
URLリンク(kansai2channeler.hp.infoseek.co.jp)

454:デフォルトの名無しさん
07/07/24 19:50:40
URLリンク(www1.cts.ne.jp)
このサイトからソースをパクッてw

455:デフォルトの名無しさん
07/07/24 20:04:37
>>449 
URLリンク(www1.cts.ne.jp)

基数ソート 、ヒープソート、マージソートはなんか面倒くさいから俺はパスw

456:デフォルトの名無しさん
07/07/24 20:18:36
>>449
いつもC++だからソートとか書かないしってことでリンクだけ
URLリンク(jyoken.net)
もしくは、URLリンク(oku.edu.mie-u.ac.jp) からZIP落とせ
(挿入ソートinssort.c 基数ソートradsort.c ヒープソートheapsort.c
マージソートmergsort.c クイックソートqsort1.c qsort2.c)


457:デフォルトの名無しさん
07/07/25 05:00:25
[1] 授業単元:演習
[2] 問題文(含コード&リンク): エレベーターの乗客の待ち時間をシミュレートするプログラムを書け
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: BCC5.5
 [3.3] 言語: C
[4] 期限:7/26まで
[5] その他の制限:とくになし

URLリンク(kansai2channeler.hp.infoseek.co.jp)
まで書いたんですが明らかに変な出力しかされず困ってます
どこがおかしいか教えてもらえないでしょうか?

458:ぼるじょあ ◆hZ8e4Wjqvw
07/07/28 11:49:47
>>457
(・3・) エェー 期限過ぎてるけどやったほうがいいのかNA?
          どんな入力に対してどんな出力が欲しいか書いてくれYO!

459:名無しさん@そうだ選挙に行こう
07/07/29 15:05:47
宿題スレで解決しなかったのでこっち来ました

お尋ねしたいのですが以下のプログラムに、
「rand100000.dat(ランダムに数値が100000個並んでいるデータ)」
から読み込んでソートするというのを追加したいのですがどうすればよいでしょうか?

void BubbleSort(int Data[], int n)
{
int BeginPlace, ComparePlace;
//比較を始める位置を最初からn-1まで変えていく
for(BeginPlace = 0;BeginPlace < n;BeginPlace++)
{
//n - BeginPlaceまで比較する
for(ComparePlace = 1;ComparePlace < n - BeginPlace;ComparePlace++)
{
//右のほうが小さかったら交換する
if(Data[ComparePlace - 1] > Data[ComparePlace])
{
Swap(&(Data[ComparePlace - 1]), &(Data[ComparePlace]));
}
}
}

return;
}


460:ぼるじょあ ◆yBEncckFOU
07/07/29 16:11:22
>>459
(・3・)エエー rand100000.datの書式が分からないと答えられないYO

461:名無しさん@そうだ選挙に行こう
07/07/29 16:14:37
>>460
URLリンク(kansai2channeler.hp.infoseek.co.jp)

これは1000個のデータですけど


462:名無しさん@そうだ選挙に行こう
07/07/29 16:44:23
データファイルの先頭レコードに、データ件数がある場合と、
データ件数が固定件数か分かっている、ファイルの中はデータだけでは
処理の仕方が違うと思うがな。
このデータファイルって、予め件数がわからないという条件でなかったか?

463:名無しさん@そうだ選挙に行こう
07/07/29 16:52:41
いや、件数は分かってるんでとりあえずファイルから読み込むというmain関数を作ってほしいです

464:名無しさん@そうだ選挙に行こう
07/07/29 17:07:59
>>463

int main()
{
FILE * fp = fopen("4151.txt", "r");
int lines;
if (fscanf(fp, "%d", & lines) < 1) return 1;
int * array = calloc(sizeof(* array), lines);
if (array == NULL) return 1;
for (int ic = 0; ic < lines; ++ic) {
if (fscanf(fp, "%d", & array[ic]) < 1) return 1;
}
fclose(fp);
#if 0
for (int ic = 0; ic < lines; ++ic) printf("%d\n", array[ic]);
#endif
free(array);
return 0;
}

465:名無しさん@そうだ選挙に行こう
07/07/29 17:08:24
>>463 dataに読み込んでいる。
#include <stdio.h>
#define DATAFILE "rand100000.dat"
#define DATASIZE 100000
int data[DATASIZE];
int main()
{
FILE *fp;
char buf[80];
int i=0,size;
fp=fopen(DATAFILE, "r");
if(fp==NULL){
fprintf(stderr,"Can't open %s",DATAFILE);
return 1;}
while(fgets(buf,sizeof(buf),fp)!=NULL){
data[i]=atoi(buf);
i++;}
size=i;
printf("data count=%d\n",size);
for(i=0;i<size;i++)
printf("%d ",data[i]);
printf("\n");
return 0;
}

466:465
07/07/29 17:12:40
いけない。fclose(fp)が抜けている。
return 0;する前に入れてくれ。

467:デフォルトの名無しさん
07/07/30 09:34:26
[1] 授業単元:数値計算
[2] 問題文(含コード&リンク):
ガウスの消去法(ピボット選択ありで、計算時間表示あり)をプログラミングせよ
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2007/7/31

よろしくお願いします。。

468:デフォルトの名無しさん
07/07/30 10:24:42
URLリンク(tonosiki.mbnsk.net)
この問題の(3)標準偏差と(4)相対係数が分かりません。
どうか教えて頂けないでしょうか・・・?
よろしくお願い致します。

469:デフォルトの名無しさん
07/07/30 10:34:13
大変失礼致しました。
もしお時間がございましたらよろしくお願いいたします。

[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):URLリンク(tonosiki.mbnsk.net)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語: C
[4] 期限: 07/8/1
[5] その他の制限: 特にありませんが、出来る限り単純なプログラムでお願いいたします。


470:デフォルトの名無しさん
07/07/30 10:38:00
>>468
相関係数や一時回帰はExcelでグラフを作れば計算してくれるからそれを参考に。
それ以外は判るのならそこまで自分で書いたものを寄越したまえ。

471:デフォルトの名無しさん
07/07/30 19:28:02
ぼるじょあって何?
昔麻原ショーコーのAAの三段活用をコピペしまくってた馬鹿がたしかそんなHN名乗ってたが。。

472:デフォルトの名無しさん
07/07/30 21:00:41
ぐぐれよ

473:デフォルトの名無しさん
07/07/30 21:15:12
>>469
> [2] 問題文(含コード&リンク):URLリンク(tonosiki.mbnsk.net)

404

474:デフォルトの名無しさん
07/07/31 11:06:46
>>473
マルチだ。ほっとけ。

475:デフォルトの名無しさん
07/08/01 21:05:38
[1] 授業単元:C言語
[2] 問題文:
指定された段数numの図形を画面に表示するプログラム部分である
□に適当なプログラムを書なさい。(プログラム中のi,jはint型変数)

for(i=1;□;i++){
for(j=1;j<=□;j++){
printf(□);
}
for(j=1;□;j++){
printf("%d",i);
}
putchar(□);
}

[3] 環境
 [3.1] OS:WINDOWS XP
 [3.2] コンパイラ名とバージョン: (VS 2005)
 [3.3] 言語: C
[4] 期限: 8月1日まで

実行結果
何段?num=5
1
22
333
4444
55555


よろしくお願いします

476:ぼるじょあ ◆yBEncckFOU
07/08/01 21:30:17
(・3・)アルェー? for文多くないかNA?

for(int i=1;i<=num;i++)
{
// for(j=1;j<=□;j++)
// {
// printf(□);
// }

 for(int j=1;j<=i;j++){
  printf("%d",i);
 }

 putchar('\n');
}

477:デフォルトの名無しさん
07/08/06 23:14:22
[1] 授業単元:応用ネットワークプログラミング2
[2] 問題文

TCPおよびUDPのチェックサムを計算するプログラムを作成せよ
なお、IPは以下のようにする。
src 200.199.198.197
dest 1.2.3.4

[3] 環境
 [3.1] OS: Linux
 [3.2] Gentoo
 [3.3] 言語:C言語
[4] 期限:6月9日の水曜日まで
[5] その他の制限:Cが苦手で困っています。

478:ぼるじょあ ◆hZ8e4Wjqvw
07/08/07 19:39:58
>>477
(・3・) エェー 2010年6月9日までまだまだあるから自分でやれYO!

ここを見ればスグだYO!
URLリンク(www.geekpage.jp)

479:デフォルトの名無しさん
07/08/07 22:17:29
[1] 授業単元:C
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:WINDOWS XP
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語: C
[4] 期限: 8月8日

480:デフォルトの名無しさん
07/08/07 22:21:35
>>479
スレリンク(tech板:681番)

481:デフォルトの名無しさん
07/08/07 22:50:58
>479
宿題スレと同じ?
向こうは少し条件足りてないけど。
int arr_min_pos(int arr[], int n)
{
int pos;
if(n==1) return arr[0] < 0 ? -1 : 0;
pos = arr_min_pos(arr, n-1);

return arr[n-1] < 0 || arr[n-1] > arr[pos] ? pos : n - 1;
}

482:デフォルトの名無しさん
07/08/29 12:59:49
言語:C
コンパイラ名とバージョン:ボーランド
OS:XP

問題:ユーザー関数の作成
再帰関数を使って、xのn乗を求めるプログラムを作成しなさい
プロトタイプ宣言:int power(int x,int n);
実行画面
文字列入力==>2
文字列入力==>0
値:1

文字列入力==>2
文字列入力==>3
値:8

文字列入力==>6
文字列入力==>4
値:1296

483:デフォルトの名無しさん
07/08/29 13:29:55
int power(int x,int n)
{
return n <= 1 ? x : x * power(x, n-1);
}

484:デフォルトの名無しさん
07/08/30 04:55:24
日本オワタな

485:ぼるじょあ ◆hZ8e4Wjqvw
07/08/30 22:19:11
>>483
(・3・) エェー 惜しいYO!

x=2 n=0

486:homoじょあ ◆5OLf4yFnuM
07/08/31 00:20:34
(・3・) エェー 久々に来たけどもみあがってないNE

487: ◆uWJL1MSv.M
07/09/01 23:19:03
[1] 授業単元: データ構造とアルゴリズム
[2] 問題文: @Cell型のオブジェクトa,b,c,d,eを用意し、
        それぞれvalueに10,20,30,40,50を設定し、
       a→b→c→d→eと連結する。valueの値を順に出力しなさい。

       A @のプログラムに書き足し、オブジェクトcの次(オブジェクトd)を削除し、
         valueの値を順に出力しなさい。次にオブジェクトaを削除し、
         valueの値を順に出力しなさい。

       B Aのプログラムに書き足し、オブジェクトcの次にオブジェクトaを挿入し、
         valueの値を順に出力しなさい。次に先頭にオブジェクトdを挿入し、
         valueの値を順に出力しなさい。
      
       C @のプログラムを双方向リストにし、valueの値を逆順に出力しなさい。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VisualC++.net
 [3.3] 言語: C++
[4] 期限: 2007年9月3日まで

よろしくお願いします。


488:homoじょあ ◆5OLf4yFnuM
07/09/02 11:12:09
(・3・) エェー Cell型ってどんなんだYO

489:デフォルトの名無しさん
07/09/02 11:17:38
細胞に関するクラスじゃね?

490:homoじょあ ◆5OLf4yFnuM
07/09/02 11:23:08
(・3・) エェー そりは難しそうですNE

491:デフォルトの名無しさん
07/09/02 13:36:36
乾電池かも知れず。

492:デフォルトの名無しさん
07/09/02 14:02:41
直列に繋いで電圧を調べるのか

493:デフォルトの名無しさん
07/09/02 14:08:59
貨車かもしれんぞ

494: ◆uWJL1MSv.M
07/09/02 14:24:09
すいません。

セル

連結リストはセル (cell) というデータを繋げて作ります。
セルにはデータを格納する場所と、次のセルを指し示す場所から構成されます。
図でいうと、箱がひとつのセルを表していて、左側にデータを格納し、
右側に次のセルへの参照を格納します。

セルの型の定義
class Cell{
private:
Cell* next; //次のセルへのポインタ
int value; //値
public:
Cell(){next = NULL; value = 0;} //コンストラクタ
void setNext(const Cell* p){next = p;} //nextを設定する
void setValue(int a){value = a;} //valueを設定する
Cell* getNext(){return next;} //nextの値を得る
int getValue(){return value;} //valueの値を得る

   …
};

495:デフォルトの名無しさん
07/09/02 15:08:55
なんだ。もうできてんじゃん

496:homoじょあ ◆5OLf4yFnuM
07/09/02 18:29:36
>>487
(・3・) エェー @だけやってみたお
int main(){
Cell *list = new Cell();
Cell *header = list;

for(int i=1; i<=5; i++){
list->setNext(new Cell());
list->getNext()->setValue(i*10);
list = list->getNext();
}

while(header->getNext() != NULL){
header = header->getNext();
std::cout << header->getValue() << std::endl;
}

return 0;
}


497: ◆uWJL1MSv.M
07/09/02 20:58:11
ありがとうございます。
すいません、A、B、Cもお願いします。

498:homoじょあ ◆5OLf4yFnuM
07/09/02 21:30:19
(・3・) エェー つーか@間違ってたお

int main(){
Cell *a, *b, *c, *d, *e;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setNext(b);b->setNext(c);c->setNext(d);d->setNext(e);
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);

Cell *header = a;

while(header != NULL){
std::cout << header->getValue() << std::endl;
header = header->getNext();
}
return 0;
}


499:homoじょあ ◆5OLf4yFnuM
07/09/02 21:42:41
(・3・) エェー Aってこんなん?
int main(){
Cell *a, *b, *c, *d, *e, *header, *list;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setNext(b);b->setNext(c);c->setNext(d);d->setNext(e);
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
header = a;

c->setNext(c->getNext()->getNext());
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
std::cout << std::endl;
header = header->getNext();
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
return 0;
}


500:homoじょあ ◆5OLf4yFnuM
07/09/02 21:47:59
(・3・) エェー B・・なんか意図が違う気がしてきたお
int main(){
Cell *a, *b, *c, *d, *e, *header, *list;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setNext(b);b->setNext(c);c->setNext(d);d->setNext(e);
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
header = a;
//Aの処理
c->setNext(c->getNext()->getNext());
header = header->getNext();

//Bで追加
a->setNext(c->getNext());
c->setNext(a);
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
std::cout << std::endl;
d->setNext(header);
header = d;
list = header;
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getNext();
}
return 0;
}


501:homoじょあ ◆5OLf4yFnuM
07/09/02 21:52:53
(・3・) エェー そろそろ書き込みが規制される予感
Cのクラスの変更

class Cell{
Cell *next;
Cell *front;
int value;
public:
Cell();
void setNext(Cell*);
void setFront(Cell*);
void setValue(int);
Cell* getNext();
Cell* getFront();
int getValue();
};

Cell::Cell(){next = NULL; front = NULL; value= 0;}
void Cell::setNext(Cell *next){this->next = next;}
void Cell::setFront(Cell *front){this->front = front;}
void Cell::setValue(int value){this->value = value;}
Cell* Cell::getNext(){return next;}
Cell* Cell::getFront(){return front;}
int Cell::getValue(){return value;}


502:homoじょあ ◆5OLf4yFnuM
07/09/02 22:00:00
(・3・) エェー C
int main(){
Cell *a, *b, *c, *d, *e, *header, *list;
a = new Cell();b = new Cell();c = new Cell();d = new Cell();e = new Cell();
a->setValue(10);b->setValue(20);c->setValue(30);d->setValue(40);e->setValue(50);
Cell *array[] = {NULL, a, b, c, d, e, NULL};
for(int i=1; i<=5; i++){
array[i]->setFront(array[i-1]);
array[i]->setNext(array[i+1]);
}
header = a;
list = header;
while(list->getNext() != NULL)list = list->getNext();
while(list != NULL){
std::cout << list->getValue() << std::endl;
list = list->getFront();
}
return 0;
}


503: ◆uWJL1MSv.M
07/09/03 01:35:15
助かりました。ありがとうございました。

504:デフォルトの名無しさん
07/09/08 20:37:58
この痛いやつのリアルアドレス求む

URLリンク(www.nicovideo.jp)

505:デフォルトの名無しさん
07/09/09 00:25:09
>>504
そんなもんTCP/IPバイブル読み尽くしたらすぐにわかるわ。
そんな努力もせんと、人に聞くな。何するつもりや。

506:homoじょあ ◆5OLf4yFnuM
07/09/09 02:18:05
(・3・) エェー 素晴らしい説明でしたお

507:デフォルトの名無しさん
07/09/13 09:15:37
授業単元:C言語
問題文(含コード&リンク):文字列を入力し、圧縮しながら他の文字列配列に格納しなさい
使用する主な標準関数:strlen()、sprintf()など

実行画面
入力文字列(m1)==>AAAAAAABBBCddEEEE####
圧縮(m2):@7A@3BC@2d@4E@5#
圧縮比:72.7%

環境
OS: Windows
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:



508:デフォルトの名無しさん
07/09/13 10:02:28
>>507
マルチすんな
C/C++ に今答えを書き込んだけど消したくなった

509:507
07/09/13 10:16:30
>>508
m9(^Д^)プギャー

510:ぼるじょあ ◆hZ8e4Wjqvw
07/09/26 21:19:21
>>507
(・3・) エェー 暇だYO!

#include<stdio.h>
#include<string.h>

int main(void){
char m1[100+1], m2[100*3+1], *ptr=m2;
int m1_len, i;

printf("入力文字列(m1)==>");
scanf("%100s", m1);
m1_len=strlen(m1);
for(i=0;i<m1_len;i++) ptr+=sprintf(ptr, "@1%c", m1[i]);
printf("圧縮(m2):%s\n", m2);
printf("圧縮比:%.1f%%\n", strlen(m2)*100./m1_len);
return 0;
}

511:デフォルトの名無しさん
07/09/28 00:16:11
短!って思ったら、、ちょwww

もうPerlでいいよw
s/(.)\1+/"@".length($&).$1/ge

512:デフォルトの名無しさん
07/09/28 02:30:25
ぼるじょあへ挑戦状

君に花札のプログラムを作れるかな?
ルールは花合わせだ
おっと、無理ならやらなくてもいいんだぜ?
それじゃ、goodluck!

513:ぼるじょあ ◆hZ8e4Wjqvw
07/09/28 03:27:19
>>512
(・3・) エェー 挑戦ってことはAI同士の対戦ってことかYO!

514:デフォルトの名無しさん
07/09/28 14:44:39
->
を使ったプログラムを作れ

515:デフォルトの名無しさん
07/09/28 20:52:12
>>514
#include <stdio.h>
int main(void) {
printf("->");
return 0;
}


516:デフォルトの名無しさん
07/09/28 21:21:57
#include <stdio.h>
int main(void) {
int n = 0;
printf("%d", n-->0);
return 0;
}

517:デフォルトの名無しさん
07/10/06 18:44:59
[1] 授業単元:C++プログラミング
[2] 問題文(含コード&リンク):
「年(西暦)」「月」を入力したら,その月のカレンダーを表示するプログラムを作成しなさい。ただし,下記の条件を満たすものとする。
【条件】
(1)カレンダークラスを作成し,main関数でカレンダークラスの実体を生成し,カレンダークラス内のメンバ関数(show関数)を呼び出してカレンダーを表示する。
(2)カレンダークラスはカプセル化されていること。
(3)カレンダー表示には,年,月および曜日,日を表示すること。
(4)「閏年」「祝日」「節句」「二十四節気」の表記を可能にする。
(5)上記以外については自由に作成してよい。

[3] 環境
 [3.1] OS: Windows VISTA or XP
 [3.2] visual studio 2005
 [3.3] 言語: C++
[4] 期限: 2007/10/7 23:00まで。
[5] その他の制限: 特になし

よろしくお願いします。

518:ぼるじょあ ◆hZ8e4Wjqvw
07/10/06 19:52:43
>>517
(・3・) エェー 太陽暦から旧暦に変換する数式はないのかYO!

519:デフォルトの名無しさん
07/10/07 12:16:21
>>518
六曜でしょうか?
すみません、変換式わからないです


520:デフォルトの名無しさん
07/10/07 13:41:28
>>518
(4)でわからない数式の部分は省いてもらって良いです。
申し訳ないです

521:デフォルトの名無しさん
07/10/07 14:57:23
今日中は辛いな…
今日は研究が忙しい…


522:デフォルトの名無しさん
07/10/07 23:59:48
>>517です

>>521
期限は切れてしまってますが、待てます
研究のほうがんばってください


523:デフォルトの名無しさん
07/10/08 04:40:21
作るけどレイアウトとかは自分で調整してね

524:デフォルトの名無しさん
07/10/08 05:13:49
祝日設定が面倒だったので断念


525:デフォルトの名無しさん
07/10/08 13:42:01
ええ!?
突き落とされた気分です・・・

526:デフォルトの名無しさん
07/10/08 15:02:06
ためしにやってみてるけど面倒すぎるんだよな

527:デフォルトの名無しさん
07/10/08 16:58:08
途中まで。祝日とか二十四節気の表示は自分でやって。面倒すぎる。

#include "stdafx.h"
#include <iostream>
#include <string>
#include <map>
#include <cassert>

#define numof(a) (sizeof(a) / sizeof((a)[0]))

/** ある年ある月の日
 */
class CDay {
private:
int m_year;
int m_month;
int m_day;

public:
CDay(int year, int month, int day) : m_year(year), m_month(month), m_day(day)


528:デフォルトの名無しさん
07/10/08 16:59:26
{
assert(month >= 1 && month <= 12);
assert(year >= 0);
}

~CDay() {}

/** 曜日
*/
std::string GetDayOfWeek()
{
int nDayOfWeek = (5 * m_year / 4 - m_year / 100 + m_year / 400 + (26 * m_month + 16) / 10 + m_day) % 7;

static const char *szDayOfWeek[] = { "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat" };
return szDayOfWeek[nDayOfWeek];
}


529:デフォルトの名無しさん
07/10/08 17:01:04

/** 節句
*/
bool GetSeasonalFestival(std::string& name)
{
struct SeasonalFestival {
int month;
int day;
char *name;
} stSeasonalFestivals[] = {
{ 1, 7, "Jinjitsu"},
{ 3, 3, "Joushi"  },
{ 5, 5, "Tango"   },
{ 3, 9, "Chouyou" }
};

name = "";

for (int i = 0; i < numof(stSeasonalFestivals); ++i) {
if (stSeasonalFestivals[i].month == m_month && stSeasonalFestivals[i].day == m_day) {
name = stSeasonalFestivals[i].name;
return true;
}
}

return false;
}


530:デフォルトの名無しさん
07/10/08 17:01:50

private:
CDay(CDay&);
CDay& operator =(CDay&);
};

/** ある年ある月のカレンダー
 */
class CCalender {
private:
int m_year;
int m_month;

public:
CCalender(int year, int month) : m_year(year), m_month(month)
{
assert(month >= 1 && month <= 12);
assert(year >= 0);
}

~CCalender() {}

/** カレンダーをコンソールに表示
*/
void Show()
{
ShowTitle();
ShowBody();
}


531:デフォルトの名無しさん
07/10/08 17:02:37

private:
/** その月の日数

@ref URLリンク(bal4u.dip.jp)
*/
int NumOfDay() const
{
static int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

if (m_month == 2) {
return days[1] + (m_year % 4 == 0 && m_year % 100 != 0 || m_year % 400 == 0);
} else {
return days[m_month-1];
}
}


532:デフォルトの名無しさん
07/10/08 17:07:09

/** 閏年
*/
bool IsLeapYear() const
{
return (0 == (m_year % 400)) || ((0 != (m_year % 100)) && (0 == (m_year % 4)));
}

/** タイトルを表示
*/
void ShowTitle() const
{
std::cout << std::endl;
std::cout << '\t'
     << m_year << '/' << m_month
     << (IsLeapYear() ? " (Leap Year)" : "") << std::endl;
std::cout << std::endl;
}


533:デフォルトの名無しさん
07/10/08 17:07:48

/** 日を表示
*/
void ShowBody() const
{
int nNumOfDay = NumOfDay();
for (int i = 1; i <= nNumOfDay; ++i) {
CDay day(m_year, m_month, i);

std::string strSeasonalFestival;
day.GetSeasonalFestival(strSeasonalFestival);

std::cout << i << "\t(" << day.GetDayOfWeek() << ")"
     << "\t" << strSeasonalFestival << std::endl;
}
}

private:
CCalender(CCalender&);
CCalender& operator =(CCalender&);
};

int _tmain(int argc, _TCHAR* argv[])
{
CCalender calender(2000, 1);
calender.Show();
return 0;
}



534:デフォルトの名無しさん
07/10/08 17:12:53
終わり。

ちなみに >>526 じゃないです。

535:ぼるじょあ ◆yBEncckFOU
07/10/08 19:14:44
(・3・) 一応できたけど我ながらひどい出来
     エラー処理とか表示の整形は自分でやってNE!
URLリンク(kansai2channeler.hp.infoseek.co.jp)

536:デフォルトの名無しさん
07/10/08 19:58:50
>>534
>>535
ありがとうございました。
お二人のプログラム使わさせていただきます^^

537:デフォルトの名無しさん
07/10/08 21:12:48
つかこんなもんをわざわざ作らせるなんて面倒な授業だな…。


538:デフォルトの名無しさん
07/10/08 21:49:07
ええ、この教授のだす課題はいつもこんな感じで
毎週地獄です

539:デフォルトの名無しさん
07/10/18 17:17:40
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: XP VISTA
 [3.2] visual studio 2005
 [3.3] 言語: C++
[4] 期限: 10/20 〜10:00
[5] その他の制限: 特になし

濃い内容ですが
よろしくお願いします。

540:デフォルトの名無しさん
07/10/22 13:41:11
1] 授業単元: c++プログラミング
[2] 問題文(含コード&リンク):
10個の製品の在庫管理のプログラムを作成しなさい。
全ての製品は初期在庫として、1000個の在庫を持っている。毎日80〜120個ランダムに減っていく。
また、製品によって減っていく量は異なるものとする。
在庫量が300個(発注点)以下になった製品は発注をかけ、その三日後に500個納品される。
終了条件:1000日
単位時間: 日
出力の例:
製品A
 前日在庫量 需要量 当日在庫量
  320    120   200
  200    100   100
  100    110    0
○日に10個欠品しました!!
500個納品されました!!
  490    90   400

各製品ごとに上記のように表示されるようにしなさい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ: bcc
 [3.3] 言語: C++
[4] 期限:22日19時
[5] その他の制限: できれば、後から簡単に、初期在庫量・発注点・製品数などを変更できるようにしてください。

よろしくお願いします。


541:デフォルトの名無しさん
07/10/22 22:14:49
いくらなんでも期限ギリギリすぎるだろ

542:さとみ
07/10/23 20:22:42
#include <stdio.h>
#include <stdlib.h>
struct node{ int data;
struct node *next;
};
struct node *head;
void add_head(int x)
{ struct node *p;
p = (struct node *)malloc(sizeof(struct node));
p->data = x;
p->next = head;
head = p;}
void print_list(struct node *q)
{ struct node *p;
printf("list\n");
for(p = q;p != NULL;p = p->next){
printf("%d\n"p->data);}}
main(int argc, char *argv[])
{ int i, val, n;
head = NULL;
n = atoi(argv[1]);
for(i = 0;i < n; i++){
scanf("%d",&val);
add_head(val);}
print_list(head);
return(0);}
コンパイルしてみた結果二箇所にエラーが発生しました
間違えたどころどうか直してもらえないでしょうか
お願いします

543:デフォルトの名無しさん
07/10/23 21:40:46
>>542

宿題スレに回答あげたぞ

544:デフォルトの名無しさん
07/11/05 18:40:58
保守

545:00ち
07/11/08 16:19:05
[1] 授業単元:
[2] 問題文(含コード&リンク):0〜99までランダムで得た値の平均と総計を求めるプログラムですが
      currentを使い、書き直したいですが教えてください。
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main(void)
{   int rints[30];
int i, sum=0;
int j = 0;
float avrg;
srand((unsigned)time(NULL));
for(j=0; j<1; j++){
printf("\n");
for(i=0; i<30; i++)
{    rints[i] = rand()%100;
printf( " %d ", rints[i] );
sum += rints[i];}
printf("\n");
avrg = sum / 10.f;
printf( " 総計: %d , 平均: %.2f\n", sum, avrg );
sum = 0; }
return 0;}
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限:本日
[5] その他の制限:なし

546:デフォルトの名無しさん
07/11/08 16:22:06
[1] 授業単元:
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11月9日10:00まで]
[5] その他の制限: 特にありません
どうぞよろしくお願いします

547:デフォルトの名無しさん
07/11/08 16:23:36
>>546
マルチ乙
スレリンク(tech板:120番)

548:デフォルトの名無しさん
07/11/08 18:27:33
>>545
currentってなんでつか?

549:デフォルトの名無しさん
07/11/08 20:09:20
任意の自然数をキーボードから入力し、
素因数分解を行った結果を画面に出力するプログラムを作成すること

この問題をお願いします(^^)

550:デフォルトの名無しさん
07/11/08 20:35:22
>>549
任意と言うことは、グーゴルプレックスも入力できないとダメかしら。
む、難しいなぁ。

551:デフォルトの名無しさん
07/11/08 20:50:11
数字を入力して因数分解するだけでいいです

552:デフォルトの名無しさん
07/11/08 21:13:54
>>549
ヒント: テンプレ

553:デフォルトの名無しさん
07/11/08 21:16:26
#include <stdio.h>

int main(void)
{
int i, n;
scanf("%d", &n);

for(i=2; i<n; ) {
if(n%i==0) {
printf("%d * ", i);
n /= i;
}
else i++;
}
printf("%d\n", n);

return 0;
}


554:デフォルトの名無しさん
07/11/09 00:19:57
11月10日までなので急いでください。お願いします。ちなみに、
for文とif文だけでお願いします(^_^)


555:デフォルトの名無しさん
07/11/09 00:30:39
ありがとうございました。o(^o^)o
本当に助かります。o(^ヮ^)o

556:グーゴルプレックスは10の(10の10乗)乗だっけ?
07/11/09 10:28:31
>>551
だから、どんな数字?
単に「任意」では巨大な数字も入力できないといけないのか、
それとも1000程度の数字まで出いいのか判らないでしょ。

557:デフォルトの名無しさん
07/11/09 15:47:42
>>556
じゃあ巨大な数のほうで

558:デフォルトの名無しさん
07/11/11 06:29:06
JavaでいうところのBigIntegerを作れというのか
アホか

559:デフォルトの名無しさん
07/11/16 11:56:40
da

560:デフォルトの名無しさん
07/11/16 12:02:00
[1]C言語上級
[2]
入力ファイルフォーマット:
source-node destination-node packet-loss-rate
a b 0.3
a c 0.1
.
z w 0.9


Step1: 二行目からデータを読み込みます.例えば,node a から node bまで
のパケット損失率0.3から最後までに読むこと.ノードペア毎のパケット損失率
を記録する.
※ 下記変数が必要
char *node_pair_name[1000]; //ノードペア名を記録する,行ごとは一記録と
します.何行があるならば,何個の記録がある.後で使う.
double packet_loss_rate[1000];//ノードペア毎に記録する,
Step2: 読み込んだデータpacket_loss_rateをJI(double *x, int n)に
渡して,JIを計算します.
Step3: JI出力

以上のプログラムを作りなさい
[3]C言語
[4]11月18日

このプログラムがわかりません.よろしくお願いします.



561:デフォルトの名無しさん
07/11/16 14:39:57
[1] 授業単元: C
[2] 問題文:????を埋めよ
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: (C
[4] 期限:2007 11.16

562:デフォルトの名無しさん
07/11/16 14:43:32
#include <stdio.h>
#include <stdlib.h>
#define NMAX 20

/* リストの構成要素となる構造体 node_tag */
struct node_tag {
int num;
char name[NMAX];
??????? /* 自己参照:次のデータへのポインタ next */
};


int main(void)
{
/* 12の要素をもつ構造体配列の定義 */
struct node_tag Month[12] = { {1, "January", NULL},
{2, "February", NULL},
{3, "March", NULL} };
struct node_tag *p; /* ポインタ p */


???????
    p=&Month[0];
while (p!=NULL){
printf("%d %s\n", ???????, ???????); /* p の num と p の name を表示する */
p=??????? /* p を p の next とする */
}
return 0;
}



563:デフォルトの名無しさん
07/11/16 14:44:58
#include <stdio.h>
#include <stdlib.h>
#define MAX 20
#define MMAX 100
struct node_tag {
int num;
char name[NMAX];
??????? /* 自己参照:次のデータへのポインタ */
};
int main(void)
{
struct node_tag Meibo[MMAX]; /* 構造体配列の定義 */
int n=0; /* 配列の番号を格納する整数 n,初期値は 0 */
struct node_tag *head, *p; /* リストの先頭を指すポインタ head,新しく追加するノードを指すポインタ p */
head=NULL;
while ( scanf("%s", ???????) != EOF ){
Meibo[n].next=???????; /* 新しく追加するノード(Meibo[n]) の next が指すものは? */
head=???????;
???????=n++; /* Meibo[n] の num に配列番号を格納する整数を入れる */
}
     p=head;
while (p!=NULL){
printf("%d %s\n", ???????, ???????); /* p の num と p の name を表示する */
p=???????; /* p を p の next とする */
}
return 0;
}
以上の二つです
見づらいですが解答おねがいします

564:デフォルトの名無しさん
07/11/16 19:05:15
????なんて無くね?

565:デフォルトの名無しさん
07/11/16 19:47:55
?の個数が違うのはスルーで^^;

566:デフォルトの名無しさん
07/11/16 20:10:01
s/\?/梅/g

567:デフォルトの名無しさん
07/11/16 21:21:42
[1] 授業単元:プログラミング、関数基礎
[2] 問題文(含コード&リンク):
メイン関数において、2つの放物線
 y=ax2+bx+c
 y=px2+qx+r
の係数a、b、c、p、q、rをキーボードから入力し、その数値を関数に引数として渡す。
関数はその数値を用いて2曲線の交点の有無を調べ、その交点の個数を戻り値とし
てメイン関数に渡す(交点が無い場合は0、交点が1つの場合は1、交点が2つの場
合は2、交点が無限に存在する場合はー1を戻り値にする)。また関数は、もし交点が
有限個存在するならばそれらの交点の座標値をメイン関数に渡す。メイン関数は関数
から得たこれらの情報を得て、交点の個数を画面に表示し、さらにもし交点が有限個
存在するならばそれらの座標値を画面に表示する。そのようなプログラムを作成せよ。

[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C
[4] 期限: 2007年11月19日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
C言語の基礎しか習っていません。
どなたかよろしくお願いします。


568:デフォルトの名無しさん
07/11/17 02:24:01
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
@ 3×10の2次元配列を用意する。
A キーボードから任意の文字列を3つ入力し、配列に入れる。
B その入力データーから文字tがあるかどうかを判定し、見つけた場合、下図のように
   その2次元配列の場所をすべて画面に表示し、見つけた個数も表示する。
  入力データ;Computer、Data、Internet
  
  図 [0]行目の文字列を入力_>Computer
[1]行目の文字列を入力_>Data
[2]行目の文字列を入力_>Internet

[0]行目[5]列目に文字tを発見
    [1]行目[2]列目に文字tを発見
    [2]行目[2]列目に文字tを発見
    [2]行目[7]列目に文字tを発見
    
    文字tを全部で4文字見つけました  
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: 指定なし
[3.3] 言語: C
[4] 期限: 2007年11月19日
[5] その他の制限: 特にありません。お手数ですがよろしくお願いします。

                            


569:デフォルトの名無しさん
07/11/17 02:25:23
1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
@ 3×10の2次元配列を用意する。
A キーボードから任意の文字列を3つ入力し、配列に入れる。
B その入力データーから文字tがあるかどうかを判定し、見つけた場合、下図のように
   その2次元配列の場所をすべて画面に表示し、見つけた個数も表示する。
  入力データ;Computer、Data、Internet
  
[0]行目の文字列を入力_>Computer
[1]行目の文字列を入力_>Data
[2]行目の文字列を入力_>Internet

[0]行目[5]列目に文字tを発見
[1]行目[2]列目に文字tを発見
[2]行目[2]列目に文字tを発見
[2]行目[7]列目に文字tを発見
    
文字tを全部で4文字見つけました  
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: 指定なし
[3.3] 言語: C
[4] 期限: 2007年11月19日
[5] その他の制限: 特にありません。お手数ですがよろしくお願いします。

                            


570:デフォルトの名無しさん
07/11/17 02:44:53
>>569
static char inputbuf[REPEAT][BUFSIZE];

int
main(void)
{
char *p = NULL;
int nfound = 0, i;

for (i = 0; i < REPEAT; i++) {
printf("[%d]行目の文字列を入力_>", i);
if (fgets(inputbuf[i], BUFSIZE, stdin) == NULL) {
perror("fgets");
exit(1);
}
}
for (i = 0; i < REPEAT; i++) {
p = inputbuf[i];
while ((p = strchr(p, CHAR)) != NULL) {
printf("[%d]行目[%d]列目に文字%cを発見\n", i+1, p-inputbuf[i]+1, CHAR);
nfound++;
p++;
}
}

printf("文字%cを全部で%d文字見つけました\n", CHAR, nfound);

return 0;
}

571:デフォルトの名無しさん
07/11/17 03:02:59
>>569
>>570がコンパイルできなかったら、ソースの先頭に以下の行を追加シル。
それと多重投稿は、ヤメレ。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#define REPEAT 3
#define BUFSIZE 10
#define CHAR 't'

572:デフォルトの名無しさん
07/11/17 03:25:36
多重投稿すみません。図のところのずれが少し気になりましたので。

573:デフォルトの名無しさん
07/11/17 03:26:38
あと助けてもらってありがとうございます。

574:デフォルトの名無しさん
07/11/17 03:49:02
ここのスレってもうひとつの宿題のスレとどうちがうの?

575:デフォルトの名無しさん
07/11/17 10:49:16
[1] 授業単元:統計学
[2] 問題文:
対数の足し算をするプログラムをつくれ。ただし計算
で用いるのはlog(x)=-1.966113,log(y)=-103.23,log(z)=-80.98,log(w)=0を用いよ。
(1)log(X+Y)
(2)log(X+Y+Z)
(3)log(W+X+Y+Z)

x=0.14 x=0.000000000000000000422
y=0.000000000000000023134 w=1ですが、w,x,y,z,を足してlogかけた値が
(4)になります。
しかしこの問題ではlogの値をexpかけずに計算せよ。
対数の足し算は以下を用いよ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: LINUX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11月17日24時
[5] その他の制限:
お願いします。
それぞれ分けてつくってほしいんですが。

576:デフォルトの名無しさん
07/11/17 19:16:23
神経衰弱を行うゲームを作成すること。
ただし、カードは52枚全て使用し、絵柄の
区別は無いものとする。

このプログラムをお願いします。(^o^)
期限は、11月18日までです。

577:デフォルトの名無しさん
07/11/17 23:14:10
ぼるじょあいないのかーい?

578:homoじょあ ◆5OLf4yFnuM
07/11/18 01:42:53
(・3・) エェー 忙しいか酔っ払ってるかだお

579:デフォルトの名無しさん
07/11/18 03:17:08
575
ですけどもうOKです。
小数点とlogの関係をみてみたら
logの2くらいの差でもかなり大小ありました。

580:デフォルトの名無しさん
07/11/18 16:06:09
C言語ではなく、Fortranなんですが宿題教えてくれませんか。

・xとyの2つの数値の約数と最小公倍数、最大公約数を求めなさい。

581:デフォルトの名無しさん
07/11/18 16:09:52
>>580
C でやればいいんじゃないかな?

582:デフォルトの名無しさん
07/11/18 19:41:58
>>574
投稿が少ないから比較的スルーされにくいが、
能力が低いので難しい問題は解けない

583:デフォルトの名無しさん
07/11/18 19:47:17
>>580
Fortranつっても77と90じゃ違いすぎるんでどのFortranかハッキリしてもらえますか?
あと期限と、xとyはキーボードから入力するのか、コードに直接書き込むのかその辺の所も
ハッキリ書いて貰えますかね?

584:デフォルトの名無しさん
07/11/18 21:01:50
576ですけど、カードは54枚です。
期限は、明日までです。

585:デフォルトの名無しさん
07/11/18 21:16:06
詳細な説明が全く無いし、テンプレに従ってないからできません

586:デフォルトの名無しさん
07/11/18 21:16:11
>>584
おお、期限が迫ってきて、じょじょに小出しの情報が揃ってきたな。
もう少し待てば、重要な情報が得られるかもな。

587:デフォルトの名無しさん
07/11/18 21:17:49
580ですが、f77でコンパイルしているので、たぶん77だと思います。
unix環境で、端末エミュレータからmuleを起動して、xとyをキーボードから
入力していますが、参考になりますでしょうか・・・

588:デフォルトの名無しさん
07/11/18 22:20:40
>>580
Fortranはほとんど使わないんで酷いコードだが取りあえず動くはず(Salford FTN77で作動確認)
URLリンク(kansai2channeler.hp.infoseek.co.jp)

589:ぼるじょあ ◆hZ8e4Wjqvw
07/11/18 22:58:20
>>576
(・3・) エェー カード枚数間違えちゃったYO!
          直しておいてくれYO!
URLリンク(kansai2channeler.hp.infoseek.co.jp)

#define CARD_NUM 14

#define CARD_NUM 54


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

4351日前に更新/401 KB
担当:undef