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


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

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



1 名前:デフォルトの名無しさん [2007/07/15(日) 22:31:51 ]
あなたが解けない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++の宿題を片付けます 92代目
pc11.2ch.net/test/read.cgi/tech/1183511364/

7 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:02:37 ]
>>6
ニュートン法になってないだろ

8 名前:デフォルトの名無しさん [2007/07/16(月) 01:06:00 ]
>>6
ありがとうございます。
とても初歩的な質問なんですが、
2行目のdouble sqr(double c);にはどんな意味があるんですか?
doubleが倍精度って…言葉だけは知ってるのですが。

9 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:08:47 ]
何を言っているんだ

10 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:10:17 ]
このスレで聞くより、まず参考書読んだほうが良い。
それでわからないことがあったらスレで聞く。

11 名前:6 mailto:sage [2007/07/16(月) 01:10:23 ]
>>7
えっそうなの?
ずっとこれがニュートン法だと・・・・

12 名前:デフォルトの名無しさん [2007/07/16(月) 01:12:36 ]
>>7
そうなんですか?
ニュートン法で√2を求める場合、
f(x)=x^2-2=0として解けばいいんですよね。
どうプログラムすればいいんですかね?

13 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:17:46 ]
7じゃないが、最後のforループはどういう意味?

14 名前:6 mailto:sage [2007/07/16(月) 01:29:38 ]
交点の座標を詳しく求めてる

俺工房だから間違えてるのかもしれない

15 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:43:43 ]
[1] 授業単元: プログラミング
[2] 問題文:
@標準入力から入力される文字列(英小文字のみ)をchar型の配列に格納し、各アルファベットの数を表示するプログラムを作れ。
ただし、0個のアルファベットについては表示させないものとする。
例:this is very nice book(入力後EOF)
b=1
c=1
e=2
h=1
(後略)
ヒント:要素が26個の配列を用意し、それぞれのアルファベットをカウントする。
文字コードを利用すれば、"a"-"a"=0であり、"b"-"a"=1である。
A数字によって構成される文字列をchar型配列へ読み込み、それをint型のデータに変換する関数toatoi()を作れ。
ただし、文字列中に数字以外の文字がある場合は戻り値を-1として返すように設定せよ。
さらに、toatoi()を利用して標準入力から与える文字列を数値とし、printfの%dを用いて表示するプログラムを作成せよ。
B最大10文字50行の文字列を読み込み、縦に変換して出力するプログラムを作成せよ。
例:
0001(改行)1100(改行)2222 と入力
102(改行)009(改行)012(改行)012 と出力
配列の項目なので、配列を使用した解法を伝授お願いします
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語:どちらでも可
[4] 期限:7/19
[5] その他の制限:無し
前スレ589の課題だったのですが、締め切りが延びたので再度質問しました
どうかお願いしますorz



16 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 02:00:27 ]
>>2 とりあえず関数だけ
#include <stdlib.h>
#include <string.h>
void arraycopy (int n, int *dst, int *src) {
memcpy (dst, src, sizeof(int)*n);
}
void mergesort (int n, int *a) {
int *b = calloc (n, sizeof(int)); /* temporal space */
int s = 1; /* segment size */
arraycopy (n, b, a);
while (s < n) {
int f; /* start of segments pair */
for (f = 0; f < n; f += 2*s) {
/* merge two segments b[f : f+s], b[f+s : f+2s] into a[f : f+2s] */
int i, i1, i2;
i = i1 = i2 = 0;
while (i1 != s || i2 != s) {
if (i2 == s || i1 != s && b[f+i1] <= b[f+s+i2]) {
a[f+i++] = b[f+i1++];
} else {
a[f+i++] = b[f+s+i2++];
}
}
}
arraycopy (n, b, a); /* copy a to b */
s *= 2;
}
free (b);
}

17 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 02:07:21 ]
>>15
@
これでいいかな?


#include<stdio.h>

int main(void)
{
char alpha[26] = {0};
char c;
int i;

printf(" Input: ");
do{
c = getchar();
if( 'a'<=c && c<='z' ){
alpha[c-'a']++;
}
}while( c!=EOF && c!='\n' );

for(i=0;i<26;i++){
if( alpha[i] ){
printf("%c = %d\n",i+'a',alpha[i]);
}
}

return 0;
}

18 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 02:09:58 ]
>>15
@
間違えていた

#include<stdio.h>

int main(void)
{
int alpha[26] = {0};
char c;
int i;

printf(" Input: ");
do{
c = getchar();
if( 'a'<=c && c<='z' ){
alpha[c-'a']++;
}
}while( c!=EOF && c!='\n' );

for(i=0;i<26;i++){
if( alpha[i] ){
printf("%c = %d\n",i+'a',alpha[i]);
}
}

return 0;
}

19 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 02:23:11 ]
>>15
A
#include<stdio.h>
int toatoi(char *str)
{
int num = 0, sign = 1;
if( *str=='+' ){
str++;
}else if( *str=='-' ){
str++;
sign = -1;
}
do{
if( *str<'0' || '9'<*str )
return -1;
num *= 10; num += *str++ - '0';
}while( *str!='\0' && *str!='\n' );
return sign * num;
}

int main(void)
{
char line[100];
printf(" Input: ");
fgets( line, sizeof(line), stdin);
printf(" 数値: %d\n", toatoi(line));
return 0;
}

20 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 06:23:03 ]
>>6
x*x-c=0 限定なのは良いとしても,収束判定がまずい.
xn の初期値をそうとるなら sqr(100)とかは無駄に計算するし,sqr(1e-6)とかは精度が足りない.
double sqr(double c){
double x,xn=0,e = 1e-10;/* */
do {
xn += 1.0;
} while (xn * xn < c);
x = xn + 1.0;
while( fabs(xn - x) > e ) {
x = xn;
xn = (x + c / x ) / 2.0;
}
return xn;
}

21 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 08:54:14 ]
[1] 授業単元:OS
[2] 問題文(含コード&リンク):
セマフォを使い親子プロセス間でのメッセージ通信を実現させよ。
親プロセスでメッセージを入力すると子プロセスで表示され、
子プロセスでメッセージを入力すると親プロセスで表示されるものとする。

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 今日
[5] その他:前スレで助けてもらい、それにいろいろ付け加えたらコンパイルエラーはなくなり、
       以下のようなプログラムになりました
       kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4629.c
       しかし、これだと親プロセス内だけでの通信となってしまいます。
       どなたかお力を貸してください!
       よろしくお願いします

22 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 09:05:21 ]
名前:デフォルトの名無しさん[sage] 投稿日:2007/07/15(日) 09:55:51
[1] 授業単元: C言語 基礎&応用
[2] 問題文(含コード&リンク): 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4624.txt
ソース:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4625.txt

[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:Visual studio.2005
 [3.3] 言語:C言語
[4] 期限:問題1は2007/07/17/12:00まで。問題2.3は2007/07/19の12:00まで。
[5] その他の制限:特になし


前スレがすぐ1000になってしまったので、もう一度書きこまさせていただきます。

23 名前: ◆uaa3kJNAQA [2007/07/16(月) 10:01:22 ]
[1] 授業単元: C言語
[2] 問題文
入力として英数文字(アルファベット、句読点等)の
文字列を受け取り、(入力終了はEOF)
その文字列の中の英大文字を英小文字に変換した文字列を出力
する。文字セットはASCII方式を用いるものとし、
<ctype.h>の関数は使用しない。


[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 18日の23:00まで


よろしくおねがいます。

24 名前:デフォルトの名無しさん [2007/07/16(月) 10:55:39 ]
#include <stdio.h>

int main(void){
int i;
char str[31];

printf("文字列入力\n");
fgets(str, 30, stdin);
printf("入力文字列は %s です\n", str);

for(i=0; i<31; i++){
if(str[i]>'A' && str[i]<'Z'){
str[i] += 32;
}
}

printf("変換文字列は %s です\n", str);
return 0;
}

25 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 11:12:42 ]
>>22
課題と関係なしに趣味で組んでるが、駄目だよなw

つか、仕様だけ決めて課題出してくれればいいのに。
関数名とかロジックとか中途半端に決められてると萎える。

あと、このくらいのプログラムの規模になったらモジュール化しないと辛いんじゃね?

↓問題1のCPUのランダム対戦まで出来てる

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4631.zip



26 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 12:41:25 ]
>>24勝手に訂正

for(i=0; i<31; i++){
if(str[i]>='A' && str[i]<='Z'){
str[i] += 'a'-'A';
}
}


27 名前:デフォルトの名無しさん [2007/07/16(月) 15:34:01 ]
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):”rand1000.dat”というデータの個数nとその個数分の整数データが保存されているファイルがある
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4151.txt
次の手順で動作するプログラムmergesort.cを作成し,その動作を確認せよ.

まずファイルから保存されているデータ数nを読み込み,次にその数だけデータを読み込み格納する.
次に,保存されたデータについてマージソートを実行する関数mergesort()を呼び出し,データを整列する.
最後に,整列されたデータをディスプレイ上に表示しプログラムを終了する.

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
 [3.3] 言語: C
[4] 期限: 7月22日
[5] その他の制限:結果がソートされていることをそれぞれのデータについて毎回確認すること. プログラム中で保存するデータは「ポインタを用いた線形リスト」で実現せよ.

解いてください。お願いします。

28 名前:デフォルトの名無しさん [2007/07/16(月) 15:39:45 ]
[1] 授業単元: プログラミング技術U
[2] 問題文(含コード&リンク):
プログラム中でm×nの2次元の動的メモリ確保を行い、
その確保された変数の[i][j]の要素に、数値(i×n+j)を代入し、
結果を表示するプログラムを作成せよ。
(実行例)
mの値を入力せよ:2
nの値を入力せよ:3

a[0][0]=0
a[0][1]=1
a[0][2]=2
a[1][0]=3
a[1][1]=4
a[1][2]=5

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin gcc
 [3.3] 言語: C言語
[4] 期限: 7/19(木)
[5] その他の制限: なし

29 名前:デフォルトの名無しさん [2007/07/16(月) 15:48:38 ]
[1] 授業単元: C言語基礎演習
[2] 問題文(含コード&リンク):
n個の文字列を読み込み、読み込んだ文字列を縦に読む
プログラムを作成せよ。
(空白、スペースを含む場合は空白、スペースを飛ばして表示)
但し、”ポインタのポインタ”をどこかに用いてプログラムすること。
「プログラムの動作」
何個の文字列を読み込みますか?:3
1番目の文字列:World
2番目の文字列:Cup
3番目の文字列:Soccer

1列目:WCS
2列目:ouo
3列目:rpc
4列目:lc
5列目:de
6列目:r
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin gcc
 [3.3] 言語: C言語
[4] 期限: 7/17までにお願いします。

期限ぎりぎりですがよろしくお願いします。

30 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 15:56:31 ]
>>28
oshiete1.goo.ne.jp/qa3022605.html

31 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:05:03 ]
[1] 授業単元:プログラミングU演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4632.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2007年07月17日08:20まで
[5] その他の制限: 無し

よろしくお願いします。


32 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:21:27 ]
>>31
そんなんで分かる訳無いだろ

33 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:24:10 ]
C言語苦手だああああ


34 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:26:17 ]
>>31
こんな幹事会。ちなみに中身はtgz。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4633.zip

35 名前:デフォルトの名無しさん [2007/07/16(月) 16:26:54 ]
>>30
すいません、2次元配列さっぱり分からないもので、参考のページで
論議されている内容もさっぱり分かりません。



36 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:33:04 ]
遅れましたが、前スレの748です
前スレ750さん、ありがとうございました
ただ、使い方が良くわからないのでできればご指導願います

37 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:39:19 ]
>>34
queue.h の中の
static int qfirst = 0, qlast = 0, qcount = 0;
の行は queue.c に移動したほうがいいんじゃね?

38 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:42:35 ]
>>37
そういやそうだね。あとmakefileも微妙だったりゴミが混じってたりするけど気にしないでくれ。

39 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:47:16 ]
というか、このくらいの問題に手も足もでない、自力でできないくらいじゃ
単位やらなくてもいいんじゃない?と俺は思うよ。

40 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 16:52:34 ]
それには同意だが、そんなこと知ったことじゃないし、暇つぶしになるから問題なし。

#include <stdio.h>
#include <stdlib.h>
int main(void){
int m,n,i,j,**a;
char buf[256];
printf("mの値を入力せよ:");
fgets(buf,sizeof(buf),stdin);
sscanf(buf,"%d",&m);
printf("nの値を入力せよ:");
fgets(buf,sizeof(buf),stdin);
sscanf(buf,"%d",&n);
a=(int**)calloc(m,sizeof(int*));
if(a==NULL){printf("メモリ確保失敗。\n");exit(1);}
for(i=0;i<m;i++){
a[i]=(int*)calloc(n,sizeof(int));
if(a[i]==NULL){printf("メモリ確保失敗。\n");exit(1);}
}
for(i=0;i<m;i++)for(j=0;j<n;j++){
a[i][j]=i*n+j;
printf("a[%d][%d]=%d\n",i,j,a[i][j]);
}
for(i=0;i<m;i++)free(a[i]);
free(a);

return 0;
}

41 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:04:25 ]
このスレは宿題を淡々を片付けるスレだから
レベルが低かろうが高かろうがどうでもいいと思うぜ


42 名前:デフォルトの名無しさん [2007/07/16(月) 17:14:32 ]
[1] 授業単元:IT入門
[2] 問題文(含コード&リンク):
繰り返し複素数(実部,虚部はそれぞれ整数型とする)を入力し,ユーザが最後に1 
(1+i*0)を入れたら今まで入力した複素数の実部と虚部のペアをすべて出力し,さらに
入力した複素数すべての積を出力するプログラムを作成せよ.
なお,ユーザが入力する回数に制限はないものとする.
stdio.hの他にstdlib.hをインクルードしておく必要がある.

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 最新版
 [3.3] 言語: C
[4] 期限:2007年7月21日
[5] その他:参考プログラム(www-it.sci.waseda.ac.jp/ITB1/class1/list.c)を使ってください

43 名前:デフォルトの名無しさん [2007/07/16(月) 17:15:08 ]
>>40
ありがとうございます。
提出期限と同じ木曜日に出題されて今日まで連休中考えていたけど
配列はどうしても苦手で参考サイトを回ってみたけど、さっぱりでした。

>>39
それでも単位は欲しいのが大学生です。

44 名前:42 [2007/07/16(月) 17:15:52 ]
www-it.sci.waseda.ac.jp/ITB1/class1/list.c
もう一度リンクしておきます

45 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:32:14 ]
どうでもいいけど直リンだと2chでお願いしてるのがバレバレだよ。



46 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:33:19 ]
どうせ誰がコピッたかなんて分かるわけが…
ソース見りゃ分かるか。

47 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:39:27 ]
>>29
ソース自体は書いたんだが、ポインタのポインタを有効に使う方法が思いつかないなぁ・・・。

48 名前:47 mailto:sage [2007/07/16(月) 17:50:22 ]
>>29
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4634.txt
とりあえずupしといたんで、ポインタのポインタ使用版に改良できる人いたらお願い。

49 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:56:33 ]
gets使うなよ。

50 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:06:10 ]
そういう事は言ってやるなよ。
宿題丸投げする奴への餞別のつもりだろ。

51 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:12:33 ]
申し訳ありません。宜しくお願いします

【質問テンプレ】
[1] アプリ開発
[2] OS内にあるサウンド出力プログラム作成
[3.1] Windows
[3.2]eclipse バージョンは分かりません
[3.3] どちらでもイイらしいです
[4] 7/18(水)
[5] スタイルシートを自ら作りSQLで模擬エクセル作成、バックトラック法、動的計算法はやりました

52 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:16:04 ]
>>51 
接続部位のデバイス設定をやりたいのか
WAVとかmp3とかの出力ファイルを作りたいのか
メディアプレイヤーとかのアプリを作りたいのかはっきりしろw
意味が中途半端で分からんw

53 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:17:54 ]
ecliってCコンパイラあったのか?
ちょっとしか触った事ないけどJava用IDEってイメージだった

54 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:18:36 ]
>>51 eclipseならbccだろ?ちゃんと書いたほうがいいよ

55 名前:36 mailto:sage [2007/07/16(月) 18:18:48 ]
すいませんがどなたか使い方教えてください・・・

750 :デフォルトの名無しさん [sage] :2007/07/12(木) 13:00:15
>>748 ショボイですが
暗号
#include <stdio.h>
#include <ctype.h>

static char alpha[53] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
static char table[53] = "zNFeYMljvJXKicfrGyDEOwQpHkCLbxhqRAPsnouVTaWIZdUmBStg";

int getindex(char *str, int ch){
int i;
for(i = 0; i < 52 && str[i] != ch; i++) ;
return i;
}

int main(int argc, char *argv[]){
FILE *fpin, *fpout;
int ch, op;

if(argc < 3 || (fpin = fopen(argv[1], "r")) == NULL || (fpout = fopen(argv[2], "w")) == NULL) exit(1);

while((ch = fgetc(fpin)) != EOF)
if(isalpha(ch)) fputc(table[getindex(alpha, ch)], fpout);
else fputc(ch, fpout);

fclose(fpin), fclose(fpout);

return 0;
}



56 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:18:59 ]
>>27
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4635.txt

2重ポインタ版。
縦に表示なんて面倒な指定さえなければもっとメモリ節約できるけど。

57 名前:56 mailto:sage [2007/07/16(月) 18:19:44 ]
安価ミス
>>27×
>>29

58 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:23:31 ]
>>55
「main」関数に「引数」があるわけだな
ぐぐってみろ
ぐぐってまったく意味不明だったら答えてやる


59 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:24:45 ]
>>51 ちょwwwそれ宿題ってレベルじゃねーぞw どこの学校だよw

60 名前:56 mailto:sage [2007/07/16(月) 18:25:29 ]
訂正、下の方の
putchar(str[j][i]);
の行を
if(str[j][i]!='\0')putchar(str[j][i]);
にしといて。

61 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:25:54 ]
>>55
問題文もくれなきゃ何がしたいのかわからん。
ソース見る限り単一換字暗号?

62 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:27:31 ]
>>42
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4636.c

63 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:33:17 ]
>>51
多分これじゃダメなんだろうな

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

int main(int argc, char *argv[]){
char cmd[10+FILENAME_MAX];

if(argc==2){
sprintf(cmd, "start %s", argv[1]);
system(cmd);
}

return 0;
}

64 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:37:24 ]
>>61
任意の英文について、換字暗号表を用いて暗号化するプログラムと、
暗号化した文を同様の表を用いて解読するプログラムを作成せよ。
入力する文章と換字暗号表の形式は自由にしてよいものとする。(別に用意したテキストファイルから読み込む形のほうが好ましい)


abcd… という英文があったとき、換字暗号表がa→t b→y c→e d→k…だったなら、
tyek…と出力されるプログラム、またその逆操作するプログラム
という意味です。

という文章でお願いしたところ、>>55のような回答をいただきましたが、使い方がわかりませんでした
よろしくお願いします

65 名前:51 mailto:age [2007/07/16(月) 18:37:46 ]
すいません 組み込み系です。

>>52さんの言われている中では「接続部位のデバイス設定」になると思います

>>63すいません OS無しで作る方法を・・・・・



66 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:39:58 ]
OS無しとは、一気に難易度が上がったな。

67 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:40:10 ]
>>51
UNIX板行った方がいいと思うよ あっちは組み込み系だから・・・・・・

68 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:41:40 ]
その誘導のしかたもどうかと思う。

69 名前:デフォルトの名無しさん [2007/07/16(月) 18:41:54 ]
>>56
スベース文字のスキップがない

70 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:42:24 ]
>>51 ちょwwどこの学校だ・・・・・今後の参考に教えてくれないか?

71 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:46:30 ]
>>51 マジレス:卒業したら年収700万で雇うから来てくれ 
housurejiak2245589761045@hotmell〜

72 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:47:12 ]
>>51 の学校で他人のソースコピペ無しで卒業なら、めちゃめちゃ優秀なマだな

73 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:52:43 ]
>>51 君の学校は新しいOSを開発しているのか?

申し訳無いが、俺らはソフト屋だ。そっち側はまったく分からん
助けにならなくて申し訳ない



74 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 19:00:12 ]
CPUの演算がどのように行われているのかをまず覚えよ

底辺マは出力結果にしか興味を持たない だからバグがでる



75 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:02:39 ]
>>51
サウンドデバイスの IO の定義が無いとどうにもならない
最低限でも
1.音量設定の方法
2.周波数設定の方法
3.サウンドバッファへの書き込み&失敗検出の方法
くらいは必要だと思うよ



76 名前:55 mailto:sage [2007/07/16(月) 19:05:29 ]
>>58
ぐぐってみましたが意味不明でした…
すいません、教えていただけますか?

77 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:06:56 ]
>>63 が駄目ならこれも駄目ってことか
OS無しって難しすぎだろ
PlaySound("c:\\windows\\media\\chimes.wav", NULL, SND_SYNC | SND_FILENAME);

78 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:08:20 ]
>>76
./a.out 変換元ファイル 変換後ファイル名

79 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:10:28 ]
>>64
出てきたバイナリのコマンドラインに対象テキストファイル名と出力先ファイル名を追記。
例えばコンパイルして出てきたプログラムがa.exe、暗号化するテキストがbefore.txt、
出力先をafter.txtとするなら
a.exe before.txt after.txt
でafter.txtに暗号化済みのファイルが出力される。
逆操作は不可。そういう意味では>>55は要件を満たしていないね。

こんなとこに丸投げする人にいう事じゃないと思うけど
こんくらいのソース読めないでこれからやっていけると思ってる?

80 名前:51 mailto:age [2007/07/16(月) 19:12:04 ]
すいません
やっぱり 自分でやってみます

自分で考えて解決しなきゃ成長しませんもんね・・・・・

色々ありがとうございました。

>>71さん、心使いは嬉しいのですが学校で研究を続けるつもりなので・・・・

それと学校名は出せません。ごめんなさい






81 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:15:45 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4638.txt

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限: 出来る限り単純な方法で回答して下さると助かります。
よろしくお願いします。




82 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:16:44 ]
擁護するわけじゃないけど、コマンドライン引数の実際の使い方は教本によっちゃ物凄い投げやりだからな。
こんなんで分かればエスパーだろってぐらい。
で、分からんから後まわしにして課題出てくると四苦八苦するんだよな。

83 名前:デフォルトの名無しさん [2007/07/16(月) 19:16:53 ]
>>80
ここの方達が手上げてるのを完成させるの難しくない?
>>67の行ってるUNIX板行った方がよくない?

84 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:18:28 ]
>>81
前スレに同じのがあったから見てくるといいと思うよ。

85 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:20:27 ]
LL構文解析懐かしすぎる



86 名前:デフォルトの名無しさん [2007/07/16(月) 19:27:12 ]
>>29
だれかお願いします。
>>47,48ががんばってくれたけど「ポインタのポインタ」使用版でないと
駄目な課題なので分かる方お願いします。

>>47,48
ありがとうございます。

87 名前:56=57=60 mailto:sage [2007/07/16(月) 19:29:07 ]
orz

88 名前:51 mailto:age [2007/07/16(月) 19:32:53 ]

自分も投げ出してたから人のこと言えないけど
時間かかってでも自分で考えて解決した方がいいと思う

89 名前:デフォルトの名無しさん mailto:unko [2007/07/16(月) 19:34:51 ]
>>88
秀同って事でスレ終了 乙です

90 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:45:35 ]
>>78
その通りやっても出来ない・・・なぜでしょうか

91 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:57:19 ]
>>90
次の一連のコマンドを打ち込んだ結果を晒してみて
echo hello>a.txt
./a.out a.txt b.txt
echo $?
cat b.txt

92 名前:91 mailto:sage [2007/07/16(月) 19:59:42 ]
最後に追加
ls -l a.out a.txt b.txt

93 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 20:00:57 ]
C:\Documents and Settings\******>echo hello>a.txt

C:\Documents and Settings\******>./a.out a.txt b.txt
'.' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\Documents and Settings\******>echo $?
$?

C:\Documents and Settings\******>cat b.txt
cat: b.txt: No such file or directory

こうなりました

94 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 20:02:44 ]
C:\Documents and Settings\******>ls -l a.out a.txt b.txt
ls: a.out: No such file or directory
ls: b.txt: No such file or directory
-rw-rw-rw- 1 user group 7 Jul 16 19:59 a.txt

追加の分はこうなりました
コマンドプロンプトで実行しました

95 名前:91 mailto:sage [2007/07/16(月) 20:05:31 ]
>>93
linux じゃなかったのかよ!

echo hello>a.txt
.\a.exe a.txt b.txt
type b.txt
dir



96 名前:デフォルトの名無しさん [2007/07/16(月) 20:08:41 ]
笑った。
どうみてもコマンドプロンプトかcygwinとかだね。

97 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 20:21:17 ]
>>86
皆さんの回答を参考にして作ってみた。これでどうかな。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4639.txt


98 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 20:31:46 ]
よく見てないけど。
if(buf[strlen(buf)-1] == '\n')
buf[strlen(buf)-1] = 0;
↑ifで判定する必要ない。

99 名前:デフォルトの名無しさん [2007/07/16(月) 20:41:55 ]
>>42
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4641.txt
参考コードは一部使用していない

100 名前:99 mailto:sage [2007/07/16(月) 20:52:38 ]
>>42
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4642.txt
一部訂正

101 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:00:34 ]
>>42
コンパイルしていない
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _{ int r, i; } img;
static img *ary=NULL;
static int arysize;
static int arylen;
void putimg(img img){
if(arysize<=arylen){
arysize+=10;
ary=realloc(ary, sizeof(img)*arysize);
}
ary[arylen++]=img;
}
int main(void){
img m;
int i;
for(;;){
scanf("%d,%d", &m.r, &m.i);
if(m.r==1&&m.i==0) break;
putimg(m);
}
for(m.r=1, m.i=i=0;i<arylen;i++){
printf("%d+%d*i\n", ary[i].r, ary[i],i);
m.r=m.r*ary[i].r-m.i*ary[i].i;
m.i=m.r*ary[i].i+m.i*ary[i].r;
}
printf("%d+%di\n", m.r, m.i);
}

102 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:04:13 ]
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
• 区間[ a, b ]において連続なる関数f ( x) について,定積分の計算を行う
• 適用する公式は,シンプソンの公式
S=h/3{y(0)+y(2n)+4{y(1)+y(2)+....+y(2n-1)}+y(2)+y(4)+.....+y(2n-2)}
• f ( x)=1/(1+x2)
• a=0, b=10, e=0.0000001の場合の積分値とnの値を表示する
• 各変数(nを除く)の型はdoubleとする

[3] 環境
 [3.1] OS:windows xp
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:次の木曜まで
[5] その他の制限: これといって無し
リンク先に手順の例とかがあります
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4644.txt

とりあえず自分でやってみたけど無理でした。この雑魚にどなたかご教授をorz

あと最後らへんのprintf文の、&nの&は無かったことに(´;ω;`)

103 名前:デフォルトの名無しさん [2007/07/16(月) 21:05:06 ]
>>97
ぜんぜん良いと思います。
ありがとうございます。
ポインタのポインタを使っていてちゃんと動作するものなら問題ないので。

104 名前:デフォルトの名無しさん [2007/07/16(月) 21:09:42 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4645.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin
 [3.3] 言語: C
[4] 期限: 7/17午前中
[5] その他の制限: なし

105 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:19:06 ]
>>103
ベースは>>56さんのなので、よろ



106 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:34:45 ]
>>102
#include <stdio.h>

double f(double x){
    return 1.0/(1.0+x*x);
}

int main(void){
    double a=0.0, b=10.0, h, sum;
    long n=10000000, i;

    h=(b-a)/n;

    sum=f(a)+f(b);
    for(i=1;i<n;i+=2) sum+=2*f(a+h*i);
    for(i=2;i<n;i+=2) sum+=4*f(a+h*i);
    sum*=h/3;

    printf("Answer: %f\n", sum);

    return 0;
}

107 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:14:38 ]
>>106さん、ありがとうございます。工夫すればかなり短くなるんですね・・・

それと、問題文に抜けてしまったんですが
• s2は最新の計算結果,s1は一つ前の計算結果
• |s2-s1|<eとなるまで,nを1増やしながら,以下の
処理を繰り返す
- s1←s2
- s2を新しいnで計算する

というのはどうすれば出来るでしょうか?よろしければご教授お願いします






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

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

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