[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/05 20:54 / Filesize : 366 KB / Number-of Response : 964
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題を片付けます 116代目



1 名前:デフォルトの名無しさん [2008/10/01(水) 07:28:51 BE:151474728-PLT(18888)]
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
【過去ログ検索】        chomework.sakura.ne.jp/
【wiki】               www23.atwiki.jp/homework/

前スレ
C/C++の宿題を片付けます 115代目
pc11.2ch.net/test/read.cgi/tech/1217741118/

700 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 03:38:18 ]
>>694
> 1024個ごとに平均値と最大値を出力すればいいのか?
そう書いてある

701 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 03:43:30 ]
>>693は出題者だったか。
であれば、array[206][5]という2次元配列に読ませる必要があるのかどうかを知りたい。
別に1024個区切りで平均なり飛び出してる値なりが分かればいいんでしょ?

それと、「(平均値+5*ρ)以上の値を最大値(極大値)とするように変更」という課題があるけれど、
じゃあ最初の課題では極大値の判定はどうやってやればいい?

702 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 05:09:52 ]
>>611 >>688
簡易ボイヤームーア法で良ければこれで
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7853.txt

完全版はアルゴリズムが理解できん

703 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 05:18:45 ]
ja.wikipedia.org/wiki/%E3%83%9C%E3%82%A4%E3%83%A4%E3%83%BC-%E3%83%A0%E3%83%BC%E3%82%A2%E6%96%87%E5%AD%97%E5%88%97%E6%A4%9C%E7%B4%A2%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0
ボイヤームーア

704 名前:デフォルトの名無しさん [2008/10/26(日) 08:49:35 ]
友達からC++のプログラムもらって家でコンパイルしたら
strcpy_s()関数が使えません、という警告が出て、コンパイルが成功しませんでした。
調べてみたらstrcpy_sはstrcpyの拡張版らしくて、うちのコンパイラが若干古いので、strcpy_sは使えないみたいなんです。
それでプログラムのstrcpy_sをすべてstrcpyに置き換えたら、またエラーが出ました。
strcpy_sは引数の数が三個で、strcpyは二個なんで、その警告が出ました。
strcpy_sを、strcpyと同様の動作をさせる関数として定義すればうまくいくと思ったのですが、どのような関数を定義すればよいでしょうか。



705 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 08:53:42 ]
>>704
例えば
void strcpy_s(char *strDestination, size_t numberOfElements, const char *strSource) {
strcpy(strDestination, strSource);
}

マクロでもいいと思うけど、というか、他にもいろいろ問題出てこないの?って気がしなくもない。

706 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 08:55:15 ]
>>704
って糞マルチかよ。スレチだけどいいかと思って答えた俺のバカー

707 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 08:58:18 ]
>>706
マルチだからといって無碍に切り捨てるのも問題かと。

708 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 09:02:56 ]
マルチだと分かっていて回答するならふさわしいスレで回答できるじゃん。
今回はここかな。
pc11.2ch.net/test/read.cgi/tech/1224057986/499

宿題スレおよび以下はスレチでしょ
pc11.2ch.net/test/read.cgi/tech/1224000127/681



709 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 09:53:26 ]
>>708
御意

710 名前:デフォルトの名無しさん [2008/10/26(日) 11:48:59 ]
コンソールからファイルを引数として渡すと、そのファイルのパーミッションと
ディレクトリ種別などを取得するようにしたいです。→(例drwxr-xr-x)
以下のコードで、st_modeを8進数で表示してみたところ
#include <stdio.h>
#include <sys/stat.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
struct stat abc;
if(stat(argv[1], &abc)==-1){
perror("stat");
exit(EXIT_SUCCESS);
}
printf("%o\n", abc.st_mode);
}
パーミッション644のファイルが「100644」と表示されます。
これを100644の代わりに-rw-r--r--と表示するように実装するにはどのように
書けばよいか教えて下さい。宜しくお願いします。

711 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 12:07:41 ]
abc.st_mode | 0777
って文字列にすんのかよ。

printf("%c" (abc.st_mode & S_ISVTX) ? 's' : '-');
printf("%c" (abc.st_mode & S_IRUSR) ? 's' : 'r');
printf("%c" (abc.st_mode & S_IWUSR) ? 's' : 'r');
printf("%c" (abc.st_mode & S_IXUSR) ? 's' : 'r');
以下略

712 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 12:08:33 ]
なんかひどいコピペミスをしたようだ。。。

printf("%c" (abc.st_mode & S_ISVTX) ? 's' : '-');
printf("%c" (abc.st_mode & S_IRUSR) ? 'r' : '-');
printf("%c" (abc.st_mode & S_IWUSR) ? 'w' : '-');
printf("%c" (abc.st_mode & S_IXUSR) ? 'x' : '-');
以下略

713 名前:デフォルトの名無しさん [2008/10/26(日) 12:17:48 ]
printfよりもputcharがよくね?

714 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 12:31:30 ]
そだね。putcharの方がよかた。
っていうかカンマも抜けてるし何このグダグダ感orz

715 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 12:32:45 ]
('ー')

716 名前:デフォルトの名無しさん [2008/10/26(日) 12:41:28 ]
>>712
出来ました。ありがとうございます。
ちなみにディレクトリがdでなく-になってしまうのですがまだ他に
何か必要でしょうか?

717 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 12:52:23 ]
横から口だし失礼

ボイヤームーアってどのくらい速いんですか?
ソートの種類で例えるとどのソートに匹敵する実用的なアルゴリズムなんでしょうか?




718 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 12:54:30 ]
>>717
www.google.co.jp/



719 名前:デフォルトの名無しさん [2008/10/26(日) 12:59:00 ]
setuidbit, setgidbit, stickybitなどを考慮するともっとひどいコードに。

720 名前:デフォルトの名無しさん [2008/10/26(日) 13:10:37 ]
Visual Studio使ってる人ってVisual C++ Express Edition ?

721 名前:デフォルトの名無しさん [2008/10/26(日) 13:10:49 ]
>>719
なるほど。あんまし大変になりそうであればとりあえずこんな感じで十分
なのでいいです。ありがとうございました。

722 名前:デフォルトの名無しさん [2008/10/26(日) 14:02:41 ]
[1] 授業単元:構造体
[2] 問題文:1,名簿ファイルを読み込み、生年月日の順に並べる、苗字の順に並べる、名前の順に並べる、mail addressの順に並べるプログラムを作れ。ただし、文字列の大小を比較する関数として、strcmpを用いよ。
#include <string.h>
int strcmp(char str1, char str2);
------------------------
str1>str2 → 0より小さな整数 ,str1==str2 → 0 ,str1<str2 → 0より大きい整数
関数 void SortData1(struct person *person, int *index, int n); /* 生年月日の順番に並べる */
関数 void SortData2(struct person *person, int *index, int n); /* 名の順番に並べる */
関数 void SortData3(struct person *person, int *index, int n); /* 姓の順番に並べる */
関数 void SortData4(struct person *person, int *index, int n); /* mail-addressの順番に並べる */ をそれぞれ作り、 結果を表示せよ。
2,県の郵便番号のリスト(メンバーの数約5000個)を配列の大きさだけを変えて、これを郵便番号順、読み仮名順に並べ替えるプログラムを作れ。
[3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C
[4] 期限:2008年10月27日16:00まで
[5] その他の制限:1の関数の宣言は以下のようにする。
関数 void ReadData(struct person *person, int *index, int *n);
関数 void PrintData(struct person *person, int *index, int n);
関数ReadData、PrintDataでは、
while(scanf(“%d %s %s %s %s”,&person[i].birth, person[i].first_name,
person[i],last_name, person[i].mail_addr, person[i].thema)!=EOF){
index[i]=i;
i++; }
-------------------------------------------------------------
for(i=0;i<n;i++){
printf(“%d %s %s %s %s\n”,person[index[i]].birth, person[index[i]].first_name,
person[index[i]].last_name, person[index[i]].mail_addr,person[index[i]].thema); }
とりあえず、問題1の並び替えがうまく出来ませんorz
お願いします。


723 名前:デフォルトの名無しさん [2008/10/26(日) 14:09:02 ]
[1] 授業単元:プログラミング
[2] 問題文:
Newton--Raphson法を用いて
X*X*X-7X*X+16X-10=0
の解を求めよ。

[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C
[4] 期限:10/24
[5] その他の制限:初心者です。なるべく基本的な構造でお願いします。

>>474
以前お願いしたのですがうまくいきません。どなたか問題点を指摘
していただきたいです。また初歩的な30行程度のプログラムにしたいと
思っています。


724 名前: ◆1xFXRhO/iQ mailto:sage [2008/10/26(日) 14:26:39 ]
[1] 授業単元:離散数学
[2] 問題文(含コード&リンク):
重みつき無向グラフを隣接行列で表現し、縮約を行うプログラムを実装せよ。
[3] 環境
 [3.1] OS: (Linux)
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008年10月30日まで
[5] その他の制限: 期限が近めですが、なんとか、宜しくお願いします。

725 名前:デフォルトの名無しさん [2008/10/26(日) 14:29:14 ]
>>723
#include <stdio.h>
#include <math.h>

#define EPS0 1.0e-5

double fnc(double x);
double dfnc(double x);

main()
{
double x0, x1;
x0 = 0;
x1 = 10;
while(fabs(x1 - x0) > EPS0)
{
x0 = x1;
x1 = x0 - fnc(x0)/dfnc(x0);
}
printf("x = %lf\n", x1);
}

double fnc(double x)
{
return x*x*x - 7*x*x + 16*x - 10;
}

double dfnc(double x)
{
return 3*x*x - 14*x + 16;
}


726 名前:デフォルトの名無しさん [2008/10/26(日) 14:36:19 ]
>>725
ありがとうございます。ものすごく早い回答がいただけて
とてもうれしいです。早速じっこうしてみましたが「関数の
値を返すべき」という警告がでるのでぜひ解除して
いただきたいです。本当にお願いします。

727 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:38:31 ]
>>726
main()の最後に return 0; を付ければいい

728 名前:デフォルトの名無しさん [2008/10/26(日) 14:42:17 ]

CodeGear C++ 5.92 for Win32 Copyright (c) 1993, 2007 Code
kadai5z.c:
警告 W8070 kadai5z.c 20: 関数は値を返すべき(関数 main )
警告 W8066 kadai5z.c 30: 実行されないコード(関数 dfnc )
エラー E2378 kadai5z.c 31: Return文に ; がない(関数 dfnc
*** コンパイル中に 1 個のエラーが発生しました ***

このような表示になります。



729 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:49:47 ]
縮約のアルゴリズムってこんな感じ?面倒だから実装はしないけど


縮約関数:
 func(G, v, w)

意味:
  グラフGに於ける点(v,w)で結ばれる辺を縮約する

仕様:
 グラフGに於ける点wを削除し、点wに接続する全有向辺を点vに接続し直す(有向辺を追加する)
 ただし、重複している場合は追加しない


(点wを削除するためには、新規にグラフG’を作成?)

730 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:51:18 ]
辺v,wの削除も

731 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:51:36 ]
hairanai

732 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:52:48 ]
無向グラフだ

733 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 15:29:11 ]
[1] 授業単元:プログラミング
[2] 問題文:
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7855.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:10/27
[5] その他の制限:途中まで作成はしたのですが上手くいきません。
         よろしくお願いします。


734 名前:デフォルトの名無しさん [2008/10/26(日) 15:40:32 ]
>>733
#include<stdio.h>
#define N 100

main()
{
int t;
double a, x[N+1];

printf("成長パラメーターの入力");
scanf("%lf", &a);
x[0] = 0.5;
for (t=0;t<=N-1;t++)
{
x[t+1] = a * x[t] * (1.0 - x[t]);
}
for (t=0;t<=N;t++)
printf("t=%dのとき人口は%lgです。\n",t,x[t]);
return 0;
}


735 名前:724 ◆1xFXRhO/iQ mailto:sage [2008/10/26(日) 15:42:27 ]
>>729
はい、ただ重複している場合は追加しないのではなく、
重みを足す事になっています。
 
なんとか、実装して頂けると嬉しいです。。

736 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:07:21 ]
>>735
やってみる

737 名前:724 ◆1xFXRhO/iQ mailto:sage [2008/10/26(日) 16:21:56 ]
>>736
ありがとうございます!


738 名前:デフォルトの名無しさん [2008/10/26(日) 16:38:30 ]
[1] 授業単元:プログラミング
[2] 問題文: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7856.txt
[3] 環境
 [3.1] OS:MacOSX→Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:10/28
[5] その他の制限: 初心者ながらいろんなところでヘルプを得ながら必死に
書き上げたのですが、実はMacOSX上でしか動作しないことがわかりました。
Linux上でコンパイルするとエラーになってしまいもはやデバッグのしようが
わかりません。Linux上での動作が条件なので書き直したいのですが、どなたか
助けてください。



739 名前:デフォルトの名無しさん [2008/10/26(日) 16:47:47 ]
>>738
NetBSDでも動作するよ。

740 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:48:10 ]
>>738
linuxでも動いた。
コンパイルするシステムのヘッダファイルとかそういうの次第。

741 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:56:58 ]
[1] 授業単元: アルゴリズムとデータ構造
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7857.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年10月27日10:00


742 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:59:28 ]
[1] 授業単元:C言語 「分野:ポインタ演習」

[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=7744
の7858.txtです。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:08年10月27日24:00まで
[5] その他の制限:お手数ですが、C言語の基本的な関数のみでお願いします。


743 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:59:33 ]
>>737
出来た。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7860.txt


744 名前:デフォルトの名無しさん [2008/10/26(日) 17:10:49 ]
>>742
#include <stdlib.h>
#include <stdio.h>
#include <memory.h>
double horner(double x, double *a, int n);
main()
{
int i, n;
double x, *a;
printf("Horner の方法で多項式を計算します!\n");
printf("次数n を入力して下さい:");
scanf("%d", &n);
a = (double*)malloc(sizeof(double) * (n + 1));
printf("実数係数を順に入力して下さい:\n");
for(i = n; i >= 0; i--){
printf("a[%d] = ", i);
scanf("%lf", &a[i]);
}
printf("x の値を入力して下さい:");
scanf("%lf", &x);
printf("多項式の値 = %lg\n", horner(x, a, n));
free(a);
return 0;
}
double horner(double x, double *a, int n)
{
if (n == 0) return a[0];
return x * horner(x, a + 1, n - 1) + a[0];
}


745 名前:724 ◆1xFXRhO/iQ mailto:sage [2008/10/26(日) 17:27:55 ]
>>743
こんなに早く出来るなんて、思ってませんでした。。
本当にありがとうございました!

746 名前:デフォルトの名無しさん [2008/10/26(日) 17:45:25 ]
>>739>>740
そうですか。確認有り難うございました。ある特定のLinuxの環境での実行が条件
なので、とにかくそこの環境でコンパイルしたいのですが、以下のエラーって
どう変えればいいかとかわかったりしますでしょうか?エラーになる環境がないと
難しいかも知れませんが。。(エラーになるLinuxの環境が何のディストリビューション
かもわからず、すみません。Linuxクラスタだとか聞きましたが)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7861.txt

747 名前:デフォルトの名無しさん [2008/10/26(日) 17:49:18 ]
>>746
#include <unistd.h>


748 名前:デフォルトの名無しさん [2008/10/26(日) 17:54:21 ]
鼻血が止まらん



749 名前:デフォルトの名無しさん [2008/10/26(日) 17:54:44 ]
すまん。誤爆だ。

750 名前:デフォルトの名無しさん [2008/10/26(日) 17:57:50 ]
>>747
ありがとうございます。追加しましたが、どうやらエラーは変わらないようです

751 名前:デフォルトの名無しさん [2008/10/26(日) 18:11:45 ]
>>750
ディストロがわからないのはつらいね。
#include <sys/types.h>
では?


752 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 18:15:28 ]
自分が今使ってるOSがなんだか分からんの?

753 名前:デフォルトの名無しさん [2008/10/26(日) 18:27:04 ]
>>751
有り難うございました。半分くらい減りました。残るエラーはこちらです↓
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7862.txt
>>752
すみません、自分の管理している環境じゃないもので、テルネットして実行しています。
uname -aは打てますが、これが有益な情報かどうか不明です。。
(ちなみに打ったところ最後がi686 GNU/Linuxとなってました。)

754 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 18:55:06 ]
>>753
その uname -a 結果ください。

755 名前:デフォルトの名無しさん [2008/10/26(日) 19:04:56 ]
>>754
Linux XXXX 2.6.18-6-686-bigmem #1 SMP MM DD hh:mm:ss 2008 i686 GNU/Linux
と出ました。
それとぐぐって出て来たヘッダファイル(fcntl.hとか)を適当に追加しましたが駄目でした。
S_IFMT, S_IFBLKとかって何に定義されてるんでしょうか

756 名前:デフォルトの名無しさん [2008/10/26(日) 19:06:19 ]
すみません。Debian。ですかね。

757 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 19:09:50 ]
>>734
ありがとうございました!

758 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 19:17:16 ]
[1] 授業単元:プログラミング
[2] 問題文:
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7863.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:10/27
[5] その他の制限:式の部分が上手くいきません。
         よろしくお願いします。



759 名前:デフォルトの名無しさん [2008/10/26(日) 19:38:23 ]
こうやって見ると数式のプログラムばかりだね
理学部やならいいけど、工学部情報学科ならば実務とはかけ離れてるのも大概にしろと

760 名前:デフォルトの名無しさん [2008/10/26(日) 19:38:56 ]
プログラム演習は数式遊びの場じゃない

761 名前:デフォルトの名無しさん [2008/10/26(日) 19:40:09 ]
東大のプログラムの授業なんかは
ユニックスのパイプコマンドを作成しろとか
サーバー通信なんちゃらの実務的なのが多い


762 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 20:03:15 ]
>>761
東大じゃありませんが、1990年ごろの情報系学部演習ですでに、
ごく簡単なシェル/パイプを実装, (fork() +exec*()+pipe())
をやっていました。シグナルとかセマフォとかも。無論、当時の私には極悪・試行錯誤の連続で泊り込む勢いでした。
バークレーソケットは3年次後半でしました。

それはそうと、ロジスティック方程式を解いて(がんばれば高校数学でできます。)解析解に代入する、とかはどうでしょう。やっぱりだめですか。
ja.wikipedia.org/wiki/%E3%83%AD%E3%82%B8%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E6%96%B9%E7%A8%8B%E5%BC%8F
数値解析部門は、それはそれで習得しなければならないと思います。

763 名前:デフォルトの名無しさん [2008/10/26(日) 20:17:24 ]
MATLBAでやったら全部一発

764 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 20:34:52 ]
>>755
私の環境は WindowsXP/cygwin なんですが、エラーはでませんでした。(警告によるとキャストが必要なものはありましたが、まあ問題ない)
さて、S_* などは、私の環境では sys/stat.h にあるのですが、(実体は /usr/include/sys/stat.h) >>755さんの環境でも、
インクルードファイルをみつけているようですね。(インクルードパスがちがっておれば、みつけられない、ってでてくると思います。)
すると、暗黙の #define が unix(posix) 用になっていないのかもしれません。

gcc -v ソース.c 2> mes.txt

として、mes.txt の内容をください。
2>
がうまくいかないのであれば、その旨書き込んでください。

765 名前:デフォルトの名無しさん [2008/10/26(日) 20:56:37 ]
>>764
レス有り難うございます。mes.txtをアップ致しました。
thread modelというのはposixになっているようですが。。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7864.txt

766 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 21:27:10 ]
>>765
では、
gcc -Dunix -v ソース.c 2> mes2.txt
の結果をください。
/usr/include/sys/stat.h の内容もください。

そ れ と、

このソースファイルをコンパイルしたいな、と思った動機を教えてください。というか白状してください。(笑)
もし演習の課題ならば、コンパイルできない、という事態に陥らないよう、教官がいろいろ陰で配慮してくださるはず。
うまくいかないのは、課題を出した教官が怠慢だったのか、ということもあるかもしれませんが、
私の見るところ、自主的に今ある環境で自分のやりたいことをやってみた、という気がします。
その意気やよし!
最後まで付き合います。ただし今日は徹夜を覚悟してください。

767 名前:デフォルトの名無しさん [2008/10/26(日) 21:40:07 ]
[1] 授業単元:データ構造とアルゴリズム演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7865.txt
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 10月28日まで
[5] その他の制限: 特になし

よろしくお願いします

768 名前:デフォルトの名無しさん [2008/10/26(日) 21:50:29 ]
>>766
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7866.txt
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7867.txt
アップ致しました。本当に課題です。文系なのに間違って海外の理系の学校に
来てしまい毎日半端ない宿題に追われているところです。なので、自主的に、
といいたいところですが今はとにかくコンパイルすることしか頭にありません。。
助けばかり乞うのは自分のためによくないのですが最近はあまりに半端ない分量の
ため依存率が高くなってきました。



769 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 22:06:22 ]
>>768
なんだか、教官が手抜きなんですねぇ。それは大変。

では、
gcc -v -D__USE_BSD -v ソース.c 2> mes3.txt
として mes3.txt の内容をください。
あと、コンパイルできたかどうか、コンパイルできたのなら実行結果
(おそらくは ./a.out . > mes4.txt
として mes4.txt に結果が入ると思います。)
を教えて下さい。

あるいは教官に「コンパイルできないよ!」と主張してください。(そちらは昼ですか?)
30分後にのぞきます。

770 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 22:11:05 ]
>>767
1-1:
struct cell *cell2 = cell1->next;
struct cell *cell3 = cell2->next;
printf("%d\n%d\n%d\n", cell1->element, cell2->element, cell3->element);

1-2:
struct cell *c;
for (c = cell1; c != NULL; c = c->next) {
printf("%d\n", c->element);
}

771 名前:デフォルトの名無しさん [2008/10/26(日) 22:18:55 ]
>>769
原因が判明しました。怒らないで下さい。いつもメイクファイルを使用しているのですが、
常にgccのオプションは-Wall -std=c99としています。先程たまたま-std=c99を取ったらコンパイル
出来てしまいました!(なんでMacの環境だと同じメイクファイルでエラーにならないんだろう。。)
なぜかの原因究明はもう辞めて寝ます。徹夜したところなので。。ちなみに教官にMac OSXの環境で
つくったからこれで勘弁して!って言ったら駄目だと言われました。厳しい世の中ですね。
色々とサポート有り難うございました。
以上

772 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 22:19:20 ]
2-1:
void append(struct cell **cell1, int e)
{
struct cell *cell2 = (*cell1)->next;
(*cell1)->next = malloc(sizeof(struct cell));
(*cell1)->next->element = e;
(*cell1)->next->next = cell2;
}

2-2:
void prepend(struct cell **cell1, int e)
{
struct cell *cell0 = malloc(sizeof(struct cell));
cell0->element = e;
cell0->next = *cell1;
*cell1 = cell0;
}

使い方:
append(&cell1, /* 新しい element */)
prepend(&cell1, /* 新しい element */)

773 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 22:45:12 ]
>>771
んー、それはそれで謎なんですが‥‥‥。
-std=c99
は、直近のCの規格でコンパイルする、ということでしかないので、今回は特に影響がないはず。
c99とすると、でインクルードするヘッダがかわるのでしょうか?c++ 風に <iostream> と.h がない書き方にしないといけないのでしょうか?よくわかりません。
このあたりは識者からのコメントをお待ちいたします。

実行結果を教えてくださるとありがたいです。ともあれ、おやすみなさい。

774 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:03:46 ]
gccの場合、-std使うとたしかそれに合わせて標準のヘッダの中身も
変化する(#ifdefなどを使って)から、その影響はあると思う。

775 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:06:18 ]
[1] 授業単元:Cプロギラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip
のmatrix2.datファイルを参照して、
その係数行列Aの逆行行列X=A^-1を求めるプログラムを作成してください。

AX=I(Iは単位行列)となることをしめしてください、

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip
に含まれるmat_auxに含まれる補助関数を使ってください。

[3] 環境
 [3.1] OS:inux
 [3.2] コンパイラ名とバージョン:gc
 [3.3] 言語:C
[4] 期限: ([2008年11月6日まで]

776 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:10:01 ]
>>666
遅れましたが、ありがとうございました。

777 名前: ◆ojvIN3PEqY [2008/10/26(日) 23:31:37 ]
[1] 授業単元:プログラミング
[2] 問題文:ビットマップディスプレイの原理を用いて、入力した整数(0〜1000000)を、ビットマップ式に表示するプログラムをつくれ。

357111
*** *** *** * * *
* * * * * *
*** *** * * * *
* * * * * *
*** *** * * * *

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年10月27日まで
[5] その他の制限:配列の基礎まで習いました。
お願いいたします


778 名前: ◆ojvIN3PEqY [2008/10/26(日) 23:33:36 ]
例がおかしくなってしまったので無視してください(*_*)



779 名前:デフォルトの名無しさん [2008/10/26(日) 23:40:11 ]
[1] 授業単元:ハードウェア設計
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7844.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C++
[4] 期限: 10月28日まで
[5] その他の制限: 特になし
よろしくお願いします。

780 名前:775 mailto:sage [2008/10/26(日) 23:43:32 ]
問題文に間違いがあったので修正します。

[1] 授業単元:Cプロギラミング
[2] 問題文(含コード&リンク):
LU分解法を用いて、
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip
のmatrix2.datファイルを参照して、
その係数行列Aの逆行行列X=A^-1を求めるプログラムを作成してください。

AX=I(Iは単位行列)となることをしめしてください、

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7868.zip
に含まれるmat_auxに含まれる補助関数を使ってください。

[3] 環境
 [3.1] OS:inux
 [3.2] コンパイラ名とバージョン:gc
 [3.3] 言語:C
[4] 期限: ([2008年11月6日まで]

781 名前:デフォルトの名無しさん [2008/10/26(日) 23:44:21 ]
>>777
#include <stdio.h>
#include <stdlib.h>

int
main()
{
char s[81];
int i = 357111;
sprintf(s, "banner %d", i);
return system(s);
}


782 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:48:42 ]
>>774
んー、では 64bit がらみですか?それとも <sys/stat.h> の内容が変わったのか?

ちょっと調べてみましたが、最近は stat(2) 返り値の st_mode の判別方法として、
if (S_ISBLK(infobuf.st_mode))
printf("block device.\n");
というマクロが定義されているようですね。
私は、
if ((infobuf.st_mode & S_IFMT) == S_IFBLK)
printf("block device.\n");
しかしらなかったのですが。

ひきつづき識者のコメントをいただけたら、と思います。

783 名前:デフォルトの名無しさん [2008/10/27(月) 00:09:30 ]
基本情報スレからきました

784 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:17:26 ]
>>777
#include<stdio.h>
#include<string.h> // memset
#define WIDTH (4*7)
#define HEIGHT (5)
void numset(char screen[HEIGHT][WIDTH], int x, int y, int num){
static const char font[][4*10+1]={ // 0123456789 の順に 3x5 で文字+数字間と末尾に一文字空白入れる
"*** * *** *** * * *** *** *** *** *** ",
"* * * * * * * * * * * * * * ",
"* * * *** *** *** *** *** * *** *** ",
"* * * * * * * * * * * * * ",
"*** * *** *** * *** *** * *** *** ",
};
int ix, iy;
for(iy=0;iy<5;iy++)
for(ix=0;ix<4;ix++) screen[y+iy][x+ix]=font[iy][num*4+ix];
}
void display_number(long value){
char screen[HEIGHT][WIDTH];
long div, x, y=0;
if(value<0 || value>1000000) return;
memset(screen, '\0', sizeof(screen));
for(div=1;value/div>=10;div*=10);
for(x=0;div>0;div/=10,x+=4) numset(screen, x, y, (value/div)%10);
for(y=0;y<HEIGHT;y++) printf("%s\n", screen[y]);
}
int main(int argc, char *argv[]){
int num=123456;
if(argc==2) sscanf(argv[1], "%d", &num);
display_number(num);
return 0;
}

785 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:37:21 ]
>>782
ヘッダ見ればいいんじゃ、とおもうんだけど。。。

786 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:50:25 ]
円周率3より悲惨な事実w

572 名前:名無し検定1級さん 投稿日:2008/10/27(月) 00:48:29
と思ったけど、今の大学3年以下のゆとり教育課程では
方程式を高校で初めて学ぶんだったねw
ありえんwww
複素数無くなったしw

787 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:53:46 ]
二次方程式 / 複素数平面 じゃないかね

788 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:54:39 ]
>>779
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7869.txt

問題2についてはなんか違う気もするけど仕様を満たせばいいかな。

gccでコンパイルできるかなぁ



789 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 00:58:40 ]
1,
1,2,
3,2,1,
1,2,3,4,
5,4,3,2,1,
.
.
.
これらの規則的な数字を配列のvd[1〜100]に順番に入れていきたいんですけどどうしたらいいでしょう。
あとその反対の
1,
2,1,
1,2,3,
4,3,2,1,
1,2,3,4,5,
.
.
.
をvm[1〜100]に順番に入れたいのですが、
ループさせてうまく配列に入れられないでしょうか。
わかるかた教えてください。
お願いします。

790 名前:デフォルトの名無しさん [2008/10/27(月) 01:07:17 ]
[1] 授業単元:構造体
[2] 問題文:1,名簿ファイルを読み込み、生年月日の順に並べる、苗字の順に並べる、名前の順に並べる、mail addressの順に並べるプログラムを作れ。ただし、文字列の大小を比較する関数として、strcmpを用いよ。
#include <string.h>
int strcmp(char str1, char str2);
------------------------
str1>str2 → 0より小さな整数 ,str1==str2 → 0 ,str1<str2 → 0より大きい整数
関数 void SortData1(struct person *person, int *index, int n); /* 生年月日の順番に並べる */
関数 void SortData2(struct person *person, int *index, int n); /* 名の順番に並べる */
関数 void SortData3(struct person *person, int *index, int n); /* 姓の順番に並べる */
関数 void SortData4(struct person *person, int *index, int n); /* mail-addressの順番に並べる */ をそれぞれ作り、 結果を表示せよ。
2,県の郵便番号のリスト(メンバーの数約5000個)を配列の大きさだけを変えて、これを郵便番号順、読み仮名順に並べ替えるプログラムを作れ。
[3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C
[4] 期限:2008年10月27日16:00まで
[5] その他の制限:1の関数の宣言は以下のようにする。
関数 void ReadData(struct person *person, int *index, int *n);
関数 void PrintData(struct person *person, int *index, int n);
関数ReadData、PrintDataでは、
while(scanf(“%d %s %s %s %s”,&person[i].birth, person[i].first_name,
person[i],last_name, person[i].mail_addr, person[i].thema)!=EOF){
index[i]=i;
i++; }
-------------------------------------------------------------
for(i=0;i<n;i++){
printf(“%d %s %s %s %s\n”,person[index[i]].birth, person[index[i]].first_name,
person[index[i]].last_name, person[index[i]].mail_addr,person[index[i]].thema); }
とりあえず、問題1の並び替えがうまく出来ませんorz
お願いします。


791 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 01:08:57 ]
>>787
もちろん一次のこと
さらに複素数も無限級数もやらなくなった


792 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 01:09:34 ]
IT業界だけじゃないけど、これから日本のエンジニアは大変なことになる
大量に採用するなら今年までにしとけ
再来年からはヤバイ奴らが入社してくるぞww

793 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 01:10:28 ]
>>790
名簿ファイル下さい

794 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 01:13:49 ]
>>791
んじゃ中学で何習うのorz

795 名前:デフォルトの名無しさん [2008/10/27(月) 01:24:26 ]
>>793
名簿ファイルはリアルに教授の名前載ってるから、あげるの無理なんです
すみません

796 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 01:25:49 ]
>>795
せめて構造体の中身教えてな
themaには何が入ってるんだ?
研究テーマか何かか?

797 名前:775 mailto:sage [2008/10/27(月) 01:26:48 ]
>>780をお願いします。

798 名前:デフォルトの名無しさん [2008/10/27(月) 01:37:20 ]
>>796
名簿はこんな感じ
19670712 namae a aaaaaa@xxx.aaaaaa.ac.jp Uchu
19790102 namae b bbbbbb@xxx.bbbbbb.ac.jp Kotaidenshi
19300303 namae c cccccc@xxx.cccccc.ac.jp Uchu
----------------------------------------------------
themaには研究テーマが入ってます

宜しくお願いします




799 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 02:27:33 ]
[1] 授業単元:プログラミング
[2] 問題文:
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7863.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:10/27
[5] その他の制限:何度もすいません・・・
         式がやはりネックです

800 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 02:38:23 ]
>>701
>別に1024個区切りで平均なり飛び出してる値なりが分かればいいんでしょ?
そういうことです。

>「(平均値+5*ρ)以上の値を最大値(極大値)とするように変更」という課題があるけれど、 じゃあ最初の課題では極大値の判定はどうやってやればいい?
平均値以上の値を最大値(極大値)としなきゃいけないんですOTL







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<366KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef