トップページ⇒tech
982コメント315KB

宿題手伝いますYO!!

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
宿題とか手伝いますけど、以下の事項は守ってほしいです。
・マルチポストは厳禁です。
・キーワードが分かっているなら、http://www.google.co.jp を活用すること。
・質問内容がちゃんと日本語になっていること。
・言語名を入れること。
・自分の力で頑張ってみたことを伝えられる人。
・どこまでわかったのかを書くこと。
以上です。

前スレ http://pc3.2ch.net/test/read.cgi/tech/1029422194/

新
↑
│ http://pc3.2ch.net/test/read.cgi/tech/1027756023/
│ http://pc3.2ch.net/test/read.cgi/tech/1026138039/
│ http://pc.2ch.net/test/read.cgi/tech/1024592344/
│ http://pc.2ch.net/test/read.cgi/tech/1007902384/
│ http://pc.2ch.net/tech/kako/1003/10038/1003838158.html
│ http://pc.2ch.net/tech/kako/982/982853418.html
│ http://piza.2ch.net/tech/kako/972/972032579.html
↓
古

長いソースを張れるBBS
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433
0674デフォルトの名無しさんNGNG
VB初心者スレできいた方がいいんでない?
0675デフォルトの名無しさんNGNG
C言語について質問なんですが、下の回文かどうかをチェックするプログラムを
関数is_kaibunを使って書き換えたいのですが、どのように書き換えれば良いのでしょう?

#include <stdio.h>
void main()
{
char s[256], r[256];
int i, n, hantei;

printf("文字列を入力してください:");
scanf("%s", s);
0676デフォルトの名無しさんNGNG
for(i=0; s[i] != 0; i++);
n = i;

for(i=0; i<n; i++){
r[i] = s[n-1-i];
}

r[n] = 0;

hantei = 0;

for(i=0; i<n-1; i++){
if(s[i] != r[i])
{hantei++;}
}

if(hantei){
printf("FALSE\n");
}else{
printf("TRUE\n");
}
}
0677デフォルトの名無しさんNGNG
is_kaibun()を作れと言う事なのか…
それとも、この続きがあるのだろうか…
0678デフォルトの名無しさんNGNG
>>676
どう?
#include <stdio.h>
int is_kaibun(char* s)
{
char r[256];
int i, n, hantei;
for(i=0; s[i] != 0; i++);
n = i;
for(i=0; i<n; i++){
r[i] = s[n-1-i];
}
r[n] = 0;
hantei = 0;
for(i=0; i<n-1; i++){
if(s[i] != r[i])
{hantei++;}
}
return hantei;
}
int main()
{
char s[256];
printf("文字列を入力してください:");
scanf("%s", s);
if(is_kaibun(s)){
printf("FALSE\n");
}else{
printf("TRUE\n");
}
return 0;
}
0679デフォルトの名無しさんNGNG
>>678

返答有難うございます。だけど、改めて自分で見直して見たら出来たっぽいです。

#include <stdio.h>
int is_kaibun(char s[],char r[])
{
int i,n,hantei;

for(i=0; s[i] != 0; i++);
n = i;

for(i=0; i<n; i++){
r[i] = s[n-1-i];
}
r[n] = 0;

hantei = 0;
0680デフォルトの名無しさんNGNG
for(i=0; i<n-1; i++){
if(s[i] != r[i])
{hantei++;
}
}
return(hantei);
}

int main(void)
{
char s[256], r[256];
int i, n, hantei;

printf("文字列を入力してください:");
scanf("%s", s);

hantei=is_kaibun(s,r);
if(hantei){
printf("FALSE\n");
}else{
printf("TRUE\n");
}

}
こんな感じで良いんですかね?
0681デフォルトの名無しさんNGNG
for(i=0; s[i] != 0; i++);
n = i;
が無駄に見える(意味の無いコードを含んでる)のは俺だけだろうか?
0682デフォルトの名無しさんNGNG
>for(i=0; s[i] != 0; i++);
>n = i;

n = strlen(s);
の方がいいよ。

あと、 "." "?" " " 等を無視するように変えたほうがいいかも

0683デフォルトの名無しさんNGNG
>for(i=0; i<n; i++){
> r[i] = s[n-1-i];
>}

for(i=0; i<n/2; i++){
if(r[i] != s[n-1-i])
return 0;
}

return 1;

これで充分でしょ。または

>for(i=0; i<n-1; i++){
>if(s[i] != r[i])
>{hantei++;
>}
>}
>return(hantei);

return !strcmp(r, s);

0684デフォルトの名無しさんNGNG
文字入力にscanfじゃなくて、getsを使えばいいかも・・・
0685デフォルトの名無しさんNGNG
struct listの中のvoid *dataにstruct dataを指させ、output(list->p)でそのdataを見たいのですが上手くいきません。
(こんな妙なプログラムなのは、これをリンクドリストで使いたいのです)
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=48&fi=no

どうすれば上手くいくでしょうか。
よろしくお願いします。
0686デフォルトの名無しさんNGNG
>>675
質問とは違うけど、一応参考に・・・
#include <stdio.h>
#include <string.h>

int main(void)
{
char str[256];
gets(str);

char* f = str;
char* e = str + strlen(str) - 1;

while(f < e)
{
if(*f != *e)
break;
f++;
e--;
}

if(f >= e)
puts("回文です");
else
puts("回文じゃないよ");

return 0;
}
0687デフォルトの名無しさんNGNG
>>686
ポインタとポインタの比較は…
0688デフォルトの名無しさんNGNG
JAVAで質問です
Aというクラスでfor文を使って多次元配列で乱数を発生させた値を、
そのままの値を他のBというクラスで使いたいんだけど、
どうやってもできません
自分はまだJAVAをやり始めて2週間なんですけど、どなたか教えてください
0689 ◆F52DmOxJlc NGNG
>>688
B.useRnd(A.makeRnd());
でいいんじゃないの?
ソース見ないとよくわかんないけど。
0690デフォルトの名無しさんNGNG
>>685
struct data dがローカル変数であるために
input()から戻ってきたときには、破棄されてしまう。
struct dataもmalloc()で動的に確保すればいい。
0691685NGNG
キター!
皆さんありがとうございました!
0692デフォルトの名無しさんNGNG
>>675-683
なんでお前ら、わざわざ一度コピーしてるんですか?

int is_kaibun(const char *s)
{
  const char *r = s + strlen(s);
  while (--r > s) if (*r != *s++) return 0;
  return 1;
}
0693デフォルトの名無しさんNGNG
C言語で一個のキーワードを検索する文字列照合のプログラムなんですけど
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433
の49  
というのを作りました。これをできるだけメモリを使わないようにしたいんです。
大きいテキストだと読み込めなくなってしまいます。textという配列で200万個
を超えて配列を確保しようとするとから実行しようとするとうまくいかなくなります。
300万個になるともう動きません。
それで考えたのが
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433
の50
なんですけど、これはうまく動いてくれないんですが
何かほかにうまいプログラムはないでしょうか?
まだプログラム始めたての素人ですいません。
よろしくお願いします。
0694デフォルトの名無しさんNGNG
int len = strlen( key );
char *buf;
buf = malloc( len+1 );
memset( buf, 0, len+1 );
fread( buf, 1, len, fp );
while(1){
 if( !strcmp( key, buf ) ){
  puts( "agree" );
 }
 memmove( buf, buf+1, len-1 );
 if( !fread( buf+len-1, 1, 1, fp ) ){
  break;
 }
}
free(buf);
0695693NGNG
>>694
ありがとうございます。
大変申し訳ないんですがstrcmpをつかうのではなく
naiveアルゴリズムのままでできないでしょうか?
0696デフォルトの名無しさんNGNG
すみません、JAVAの質問です。
整数nを与えるとn以下の素数を全て出力するプログラムを作らなければいけないんですが、
条件として、その数が素数かどうかはその数以下の整数全てで割って調べるっていうアルゴリズムを使わなければいけないんです。
マジでわからないので、どなたか教えてください。
よろしくお願いします_(._.)_
0697デフォルトの名無しさんNGNG
アルゴリズムまで与えられてるのに「マジでわからない」かよ
おめでてーな
0698デフォルトの名無しさんNGNG
初心者なもので・・・
ほんとにすみません
0699デフォルトの名無しさんNGNG
いや、Javaの入門書買って読めとしか言いようがないです、はい。
0700デフォルトの名無しさんNGNG
初心者か。
都合のいい免罪符だな。
氏ね。
0701デフォルトの名無しさんNGNG
読んでわからないから聞いているのです・・・
0702デフォルトの名無しさんNGNG
あ、そうかここ宿題スレだったな。しばし待てぃ
0703デフォルトの名無しさんNGNG
今日は、気の立っている奴等が多いような・・・
0704デフォルトの名無しさんNGNG
クリスマス・イヴだからな(ワラ
0705デフォルトの名無しさんNGNG
宿題を聞いただけなのに氏ねですか・・・
ヽ(`Д´)ノウワァァン
0706デフォルトの名無しさんNGNG
>>702
よろしくお願いします!!!
0707デフォルトの名無しさんNGNG
>>696
Javaでセキュリティ系だと、まず確実にBigInteger.isProbablePrime()を使うなあ。
そんなのじゃあだめだと言われたら一発殴ってやれ。

ちゃんとした回答は↓にまかせた。
0708デフォルトの名無しさんNGNG
JAVAの初心本見てわからないんだろ?
中学の数学教科書引っ張り出してこいYo!
0709デフォルトの名無しさんNGNG
中学ですか・・・
もうだいぶ前なのでないですよ、そんなの・・・
教科書として使ってる本に載ってないような課題を出されたのです(;_;)
0710デフォルトの名無しさんNGNG
>>709
Javaの経験はどれくらいなの?
0711デフォルトの名無しさんNGNG
ほいよ。Java なんて久しぶりに触ったよ。
相当無駄なことしてるけど、仕様の通りだから。
あ、コンパイルや実行の仕方まで聞かないでね。
// PrimeNumber.java
public class PrimeNumber {
private static boolean isPrime( int n ) {
for ( int i = 2; i < n; i++ )
if ( n % i == 0 ) return false;
return true;
}

public static void main( String[] args ) {
if ( args.length != 1 ) {
System.out.println( "Usage: java PrimeNumber <n>" );
System.exit( 1 );
}
int n = Integer.parseInt( args[0] );
for ( int i = 2; i <= n; i++ )
if ( isPrime(i) )
System.out.println( i );
}
}
0712デフォルトの名無しさんNGNG
学校の授業でやらなきゃいけなくて、最近始めたばっかりです。
0713デフォルトの名無しさんNGNG
自分に課した宿題ですが、彼女ができるプログラムお願いします。
クリスマスが終わ前に完成させたいのでみなさんのお力をお借りすることになりました。
0714デフォルトの名無しさんNGNG
>>713
どんな子が好み?
0715デフォルトの名無しさんNGNG
>>714
おしとやかだけど、おしゃべりが好きな子頼みます。
顔はきれいというより、かわいいという感じで。
0716デフォルトの名無しさんNGNG

   板  違  い
 
0717デフォルトの名無しさんNGNG
>>711
ありがとうございます!!
ですが、実行してみたら
Usage: java PrimeNumber <n>
ってしか出ないんですが・・・
0718デフォルトの名無しさんNGNG
>>717
えぇと、たとえば 100 以下の素数を表示したいときは
java PrimeNumber 100
って実行してね(トホホ
0719デフォルトの名無しさんNGNG
>>717
わざわざ使い方まで表示してくれてるってのに、ボケボケな>>696に乾杯。
0720デフォルトの名無しさんNGNG
変えるのはその一箇所だけでいいんですか・・・?
かえても、やっぱり
java PrimeNumber 100
しかでないんですが・・・
お手数かけてほんとにスミマセン
0721デフォルトの名無しさんNGNG
もう、オレやだ
0722デフォルトの名無しさんNGNG
>>719
笑って見過ごしてやってください(;_;)
0723デフォルトの名無しさんNGNG
>>721 負けるな。
>>720 教科書で「コマンドライン引数」とか、メイン関数の説明とか読んでみそ。
0724デフォルトの名無しさんNGNG
>>695
int i, len = strlen( key );
char *buf;
buf = malloc( len+1 );
memset( buf, 0, len+1 );
fread( buf, 1, len, fp );
while(1){
 for( i=0; i < len; i++ ){
  if( buf[i] != key[j] ) break;
 }
 if(i == len) puts( "agree" );

 memmove( buf, buf+1, len-1 );
 if( !fread( buf+len-1, 1, 1, fp ) ){
  break;
 }
}
free(buf);
0725デフォルトの名無しさんNGNG
>>721,>>723
やっとわかりました!!!!!実行するときに
java PrimeNumber 100
だったんですね!!!!
こんなやり方初めてだったんでわかりませんでした(^_^;)
学校では
import java.io.*;
みたいなのを使って標準出力をして、
java PrimeNumber で実行してから n=?
を入力する感じでしたんで。。
これは違うものなんですね。ありがとうございます。
0726デフォルトの名無しさんNGNG
cobolの宿題も受け付けてくれますか?
0727デフォルトの名無しさんNGNG
Identification Division;
0728デフォルトの名無しさんNGNG
>>725
お前は今まで、dirかlsのどちらも使ったことがないのか?
moreやtype、catとかでもいいが。
0729デフォルトの名無しさんNGNG
ren と mv は、どっちが強いですか?
0730693NGNG
>>724
本当にありがとうございました。助かります。
0731デフォルトの名無しさんNGNG
>>728 学校では"javac ファイル名.拡張子"でコンパイルし、"java ファイル名"で実行します、
位にしか教えないので、それ以外のコマンドを知る奴は一部のみ。コマンドオプションなぞ知る由もなし。
まずWindowsから入るし、初めから統合開発環境を使うところも多いので
コマンド自体を知らない奴が殆ど。何故かjavaは余りIDEを使ってないけど。
0732デフォルトの名無しさんNGNG
FORTRANをWindows Meで動かしたいのですが、googleで調べても見つかりませんでした。誰か教えてください。ちなみに、フリーで、90か95対応を希望で、物理の計算機実験で用います。
0733デフォルトの名無しさんNGNG
>>732
Vectorになかったかい
0734デフォルトの名無しさんNGNG
一覧のプログラミングやユーティリティを調べても有りませんでした。また、GNUと言うサイトで、一度落としたのですが、拡張子が.gzだったので開けませんでした。
0735デフォルトの名無しさんNGNG
プ
0736デフォルトの名無しさんNGNG
すみません。全くの初心者なので。
0737デフォルトの名無しさんNGNG
>>736
Linuxなどをインストールすると、簡単にFORTRAN環境もインストールできるよ。
0738DNGNG
cygwin+g77
0739デフォルトの名無しさんNGNG
FORTRAN COMPANYのF COMPILERはダウンロードは無料だが、使用する場合は有料と書いてあるのですが、個人使用目的でも金が掛かると言うことですか。素人ですみません。
0740デフォルトの名無しさんNGNG
>>739
cygwin+g77はダウンロードしたのですが、拡張子の具合で開けなかったものです。(734)
0741デフォルトの名無しさんNGNG
初心者板へどうぞ
0742デフォルトの名無しさんNGNG
>>740
最近のcygwinはsetup.exeでインストールできるはず。
ただし、gccはデフォルトではインストールされないので、チェックを入れる必要がある。
0743デフォルトの名無しさんNGNG
C言語で構造体のデータを一つファイルに
読み書き更新できるようにしたいんですが、
入出力をどうしたらよく分かりません。
ファイルへの書き込み、読み込みのための命令は何を使い、
何を引数とすれば、かっこよくなるでしょう?
0744デフォルトの名無しさんNGNG
かっこいいかどうかは知らんがfread()/fwrite()/ftell()/fseek()
0745デフォルトの名無しさんNGNG
もっと、分かりやすく!かっこよく!
0746デフォルトの名無しさんNGNG
言ってる意味が良く分からないが
取り敢えずファイルは"r+b"でオープンして
fread()とfwrite()を使うんじゃ駄目のか?
0747デフォルトの名無しさんNGNG
スマートな例文が欲しいってことじゃねーの?
0748デフォルトの名無しさんNGNG
全く意味の無い例文

FILE *fp = fopen( "TEST", "r+b" );
fwrite( fp, sizeof( FILE ), 1, fp );
fseek( fp, 0 - sizeof( FILE ), SEEK_CUR );
fread( fp, sizeof( FILE ), 1, fp );
fclose( fp );
0749デフォルトの名無しさんNGNG
↑だと、何が書き込まれるんだ?
0750デフォルトの名無しさんNGNG
ゴミ
0751デフォルトの名無しさんNGNG
>>749
fopen()で用意されたfpの実体の一部(環境によっては全部?)
正しく動くか分からないので実行しない方が無難
0752デフォルトの名無しさんNGNG
1.FILE *fp = fopen( "TEST", "r+b" );
2.fwrite( fp, sizeof( FILE ), 1, fp );
3.fseek( fp, 0 - sizeof( FILE ), SEEK_CUR );
4.fread( fp, sizeof( FILE ), 1, fp );
5.fclose( fp );

1〜5を並べ替えて、ファイルを更新するプログラムを作りなさい。
0753デフォルトの名無しさんNGNG
1、3,4,2、5
0754デフォルトの名無しさんNGNG
> fread( fp, sizeof( FILE ), 1, fp );

・・・何だって??
0755デフォルトの名無しさんNGNG
749 :デフォルトの名無しさん :02/12/25 04:49
  ↑だと、何が書き込まれるんだ?

750 :デフォルトの名無しさん :02/12/25 04:56
  ゴミ

751 :デフォルトの名無しさん :02/12/25 05:05
  >>749
  fopen()で用意されたfpの実体の一部(環境によっては全部?)


>>750-751
何か言った?
0756デフォルトの名無しさんNGNG
"r+b" ってロック&ビートですか?
0757デフォルトの名無しさんNGNG
>>696
正直、ただのバカなので勉強するかもっと自分に向いている道を探すべきだと思います。
0758デフォルトの名無しさんNGNG
>>756
それ言うならrythm & bluesじゃないのか?
0759デフォルトの名無しさんNGNG
すみません、教えてください。
文字列の、ある部分を抜き出すにはどうすればいいのでしょうか。
ファイル名の、拡張子だけを抜きたいのです。
よろしくお願いします。
0760デフォルトの名無しさんNGNG
環境書け。
0761デフォルトの名無しさんNGNG
strcmpでファイル名の最後のドットを探してそれ以降を抜き出せばOK
0762デフォルトの名無しさんNGNG
それを言うならstrrchr
0763デフォルトの名無しさんNGNG
>762
左様であった。訂正感謝いたす。
0764デフォルトの名無しさんNGNG
平均n単位時間、分散m単位時間の正規分布で動作する関数を
Cで作りたいんですが、確率とかが苦手でよくわかんないんです。
どなたかサンプルプログラム作ってください。
0765デフォルトの名無しさんNGNG
read binary
0766デフォルトの名無しさんNGNG
>>764
まず平均n分散mの出力を持つデータ列を(ビットの01がよい)Sなどで作成。
あとは、1を入力するたびに関数を呼び出せ!
0767デフォルトの名無しさんNGNG
Sってなんですか?
0768デフォルトの名無しさんNGNG
>>766
もっと、かしこいやりかたないの?っぷ
0769デフォルトの名無しさんNGNG
Sadist ⇔ Masochist
0770デフォルトの名無しさんNGNG
Sum?
0771764NGNG
お願いです、必死です。
やっぱり、random()が必要?
0772デフォルトの名無しさんNGNG
random()ってなんじゃらホイサッサ
0773デフォルトの名無しさんNGNG
>>772
gundomみたいなものです。
■ このスレッドは過去ログ倉庫に格納されています