既に回答済みの質問に回答するのは控え、できるだけ未回答のものを解きましょう。
4 :
デフォルトの名無しさん :2008/07/14(月) 07:49:24
5 :
前スレ505 :2008/07/14(月) 07:51:44
前スレ
>>929 さん、ありがとうございます!
あと、今日の夕方頃に今までのとは別のをやってみます。
それでまた今回みたいに見ていただくと嬉しいです。
基本的にスレ立て人がルールを作りますんで、最近話題の 回答テンプレはルール違反なんで遵守しないようお願いします。 以下の行為のいずれかを行った場合、回答テンプレ遵守行 為と見なされる場合がありますのでご注意下さい。 1)回答レスに回答の品質を書く事。 2)回答レスに外部サイト(アップローダー)に置かれたコードへのリンク を貼る際に、このレス(スレURL)とソースの間に相互関連づけを行 うこと。 3)コンパイル、コード作成に使用した環境を書く事 4)回答に余計なコメントを入れること。 (ソースに入れるコメントは本スレとの関連情報以外ならおKです)
>>3 異議あり。せっかく自分もやったのに、数分先に雑なソースを投稿した奴がいて
自分の方がマシだと判断したら容赦なく提出するんで、あしからず。
>>8 いいことです。
>>6 を遵守した上で是非そうして下さい。
ここは質問により先に答えるのを競うスレではありませんので、あしからず。 速さを競うなら、別の場所でやってくれ。それも同じ時間にスタートしてな。
長い夏休みが終わるのを気長に待つしか無いか
本人が初心者レベルに落としたクソースにも負けてくやしいのぅくやしいのぅ あと、このスレは課題に答えるべきであって、回答者同士で 出来を競うスレじゃありませんので、あしからず。
あと、何行だろうと一句だろうと、罵倒は良くないだろ。 何行以上でとか意味不明な指定も要らん。
17 :
デフォルトの名無しさん :2008/07/14(月) 12:23:36
[1] 授業単元: C言語プログラミング [2] 分数の四則演算を計算するプログラムを作成する[3] 環境 [3.1] OS: Windows [3.3] 言語・C++ [4] 期限: ([2008年7月15日14:00まで [5]条件 分数を、 1|3 のように、| (縦棒)という記号で分子・分母を区別する。/ (スラッシュ)だと除算記号と混同してしまうから。 計算規則 a|b + c|d = (a*d + b*c) | (b*d) a|b - c|d = (a*d - b*c) | (b*d) a|b * c|d = (a*c) | (b*d) a|b / c|d = (a*d) | (b*c) 計算結果については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。
18 :
デフォルトの名無しさん :2008/07/14(月) 12:28:56
19 :
◆nikSZog9tM :2008/07/14(月) 14:51:23
前々スレの
>>401 で二問聞いたのですが、一問回答が得られなかったのでもう一度聞かせて下さい。
[1] 授業単元:情報技術実験
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7172.txt バックトラック系の問題です。
リンク先は、正整数n を入力して、nを正整数の和の形に分割する方法が何通りあるか表示するプログラムです。
ただし、和の順番が異なるだけの分割は同じものとします。
それを、
n: 5
1 1 1 1 1
1 1 1 2
1 1 3
1 2 2
1 4
2 3
5
total number = 7
といったように途中経過を表示させるように修正する課題です。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: C Pad for Borlad
[3.3] 言語: Cのみ
[4] 期限: 2008年7月16日17:00
[5] その他の制限:授業ではポインタはやってないです。。
for if whileといった基礎的なものを使う感じです。
よろしくお願いします。
[1]C言語上級 [2]標準入力から入力されたタブもしくはスペースで区切られた単語 の出現回数を多いものの順に出力するプログラムを作りなさい。 単語の記憶方法は配列を使うこと。単語の検索は二分探索を 使うこと。 メモリが足りない場合はその時点で処理を中止するようにすること。 [3] linux/gcc 4/C [4] 7/20 12:00 stdio.h stdlib.h string.hのみインクルード可のことです。 自分もちょっとやってみましたが挫折しかかってます。 まだ時間は少しあるので、急ぎませんが、どうかよろしくお願いします。
トリップ入れ忘れましたので、設定しました。
>>19 バックトラックってなると多分再帰関数を使うことになると思うけど、大丈夫?
配列で二分探索ってうまいやりかたあるん?
>>22 再帰やってるんで大丈夫です!
「使え」とは言われてないんで書きませんでした、ごめんなさい。
25 :
デフォルトの名無しさん :2008/07/14(月) 16:05:00
再起使ったら重複の除去が困難な気
>>19 配列は使ってもいいんだよね?
#include <stdio.h>
#define N_MAX 1024
int ResultNum, Result[N_MAX];
int part(int,int,int);
int main(){
int n;
printf("n: ");
scanf("%d",&n);
if(n>N_MAX) return 1;
printf("total number = %d\n", part(n,1,0));
return 0;
}
int part(int total, int min, int result_num){
int i, sub;
int cnt = 0;
if(total == 0){
cnt = 1;
for(i=0;i<result_num;i++)
printf(" %d", Result[i]);
printf("\n");
}else{
for(sub = min; sub <= total; sub++){
Result[result_num]=sub;
cnt += part(total-sub,sub,result_num+1);
}
}
return cnt;
}
>>25 んーどうなんでしょう…正直よく分かりません。
この時は授業のタイトルが「バックトラック」で、課題は二つでした。
二問目がNクイーン問題で、これは一問目です。
プログラミングの知識に乏しい上に、授業が上記のようなものだったのでバックトラック系
と明記しましたが、場合によってはバックトラックとは関係ないのかもしれません。
>>26 配列大丈夫です!ありがとうございます!
配列苦手で勉強中なんで、まだ理解できませんが(^_^;)
ありがとうございました。
>>20 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct tag_word_t{ char *word; int count; } word_t;
typedef struct tag_wordlist_t{ word_t *word; int wordnum; } wordlist_t;
int countcmp(const word_t *a, const word_t *b){return b->count - a->count;}
int wordcmp(const word_t *a, const word_t *b){return strcmp(a->word, b->word);}
void word_add(wordlist_t *wordlist, char *word){
int s, e, m, ret;
for(s = 0, e = wordlist->wordnum - 1; s <= e;){
m = (s + e) / 2;
if((ret = strcmp(wordlist->word[m].word, word)) == 0){wordlist->word[m].count += 1;return;}
if(ret < 0) s = m + 1;
else e = m - 1;
}
if((wordlist->word = realloc(wordlist->word, sizeof(word_t) * (wordlist->wordnum + 1))) == NULL) exit(1);
if((wordlist->word[wordlist->wordnum].word = strdup(word)) == NULL) exit(1);
wordlist->word[wordlist->wordnum].count = 1;
wordlist->wordnum += 1;
qsort(wordlist->word, wordlist->wordnum, sizeof(word_t), wordcmp);
}
int main(void){
wordlist_t wordlist = { NULL, 0 };
char word[256];
int i;
while(scanf("%255s", word) == 1) word_add(&wordlist, word);
qsort(wordlist.word, wordlist.wordnum, sizeof(word_t), countcmp);
for(i = 0; i < wordlist.wordnum; i++) printf("%s : %d\n", wordlist.word[i].word, wordlist.word[i].count);
return 0;
}
>>28 1行のみの変更で回答終わり
17line:
// int calendar[rsize][csize];
int (*calendar)[csize] = new int[rsize][csize];
>>28 最後にやるdelete忘れた
84line:
delete[] calendar;
return 0;
>>9 助かりました
遅くなりましたが、ありがとうございました
>>29 非常に迅速なご回答
ありがとうございました。とりあえず動作を確認しました。
このコードを元にbsearch関数を使うように改造させて
頂いてよろしいでしょうか?
というか、実は、bsearch関数自身の使い方が
良くわからなかったので、ここに質問したんです。
bsearchで見つからなかった場合、配列を拡張し
新しいデータを詰め込むというアイデアは、何となく
わかってて、それらしきコードも書いてたんですが、
テストしてみると、何か良く動きませんでした。
qsort関数を使ってそれを切り抜けるってなんか裏技的で
凄い発想ですね。感心しました。
35 :
デフォルトの名無しさん :2008/07/14(月) 22:27:39
[1] 授業単元: プログラミング [2] 問題文(含コード&リンク):(1)まず、0が入力されるまで、正の偶数を繰り返しキーボード入力する。 (2)次に、(1)で入力した数から「大きい方から二番目の偶数」を表示する。 ただし、(1)の繰り返し処理で、奇数や負の数が入力されたときは、その入力を無視してよい。 入力した偶数が二つに満たなかった場合は、(2)において「0」を表示せよ。 [3] 環境 [3.1] OS;macos [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: (2008年7月13日17:00まで] [5] その他の制限: Cのソースでおねがいします。 何とぞよろしくお願いします。
36 :
デフォルトの名無しさん :2008/07/14(月) 22:28:59
期限間違えました 15日です
37 :
デフォルトの名無しさん :2008/07/14(月) 22:33:03
[1] 授業単元: プログラミング [2] 問題文(含コード&リンク):1から999までの整数を入力 その読み方をを表示するプログラムを書け 1から999でない場合エラーを表示せよ [3] 環境 [3.1] OS;macos [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: (2008年7月15日17:00まで] [5] その他の制限: Cのソースでおねがいします。 何とぞよろしくお願いします。 printfの所は略してもらって結構です。
>>37 #include<stdio.h>
int main(void){
char yomi[][10][13]={
{"", "いち", "に", "さん", "よん", "ご", "ろく", "なな", "はち", "きゅう"},
{"", "じゅう", "にじゅう", "さんじゅう", "よんじゅう", "ごじゅう", "ろくじゅう", "ななじゅう", "はちじゅう", "きゅうじゅう"},
{"", "ひゃく", "にひゃく", "さんびゃく", "よんひゃく", "ごひゃく", "ろっぴゃく", "ななひゃく", "はっぴゃく", "きゅうひゃく"}
};
int num=0, unit100, unit10, unit1;
printf("1 から 999 までの整数を入力してください : ");
scanf("%d", &num);
if(num<1 || num>999){
printf("エラー\n");
return 1;
}
unit100=num/100;
unit10=(num/10)%10;
unit1=num%10;
printf("%s%s%s\n", yomi[2][unit100], yomi[1][unit10], yomi[0][unit1]);
return 0;
}
>>37 #include <stdio.h>
int main(void)
{
int n, c, d;
char *num[] = {"", "いち","に","さん","よん","ご","ろく","なな","はち","きゅう"};
scanf("%d", &n);
if(n < 1 || 999 < n) return printf("error");
c = n / 100;
n %= 100;
switch(c) {
case 6:printf("ろっぴゃく"); break;
case 8:printf("はっぴゃく"); break;
case 3:printf("さんびゃく"); break;
case 2:case 5:case 4:case 7:case 9:
printf("%s", num[c]);
case 1:printf("ひゃく"); break;
}
d = n / 10;
n %= 10;
if(d) {
if(d > 1) printf("%s", num[d]);
printf("じゅう");
}
printf("%s", num[n]);
return 0;
}
41 :
デフォルトの名無しさん :2008/07/14(月) 22:54:35
>>37 #include <stdio.h>
void show(int n){
const char n[][10]={"ぜろ!","いち!","に!","さぁん","し!","ご!","ろぉく","しち!","はち!","きゅぅぅ"};
<print文なので省略しました>
}
int main(){
int n;
scanf("%d",&n);
show(n/100);show( (n - n / 100 * 100) / 10 ) ; show(n % 10);
return 0;
}
43 :
デフォルトの名無しさん :2008/07/14(月) 23:00:48
45 :
前スレ505 :2008/07/15(火) 00:27:17
[1]C [2]三値の中央値を求める以下の関数を作成せよ。 int med3(int a,int b,int c); [3]LINUX C [4]今週中でお願いします よろしくお願いします
>>46 void swap(int *a, int *b){
int c;
c=*a;
*a=*b;
*b=c;
}
int med3(int a, int b, int c){
if(a<b) swap(&a, &b);
if(a<c) swap(&a, &c);
if(b<c) swap(&b, &c);
return b;
}
ひどいな
int med3(int a, int b, int c) { return a>b ? a>c ? c>b ? c : b : a : b>c ? c>a ? c : a : b; }
[1] 授業単元:C++ [2] 問題文(含コード&リンク):基本交換法と挿入法の関数化 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VisualStudio2005 [3.3] 言語: C++ [4] 期限: 2008/7/15/12:00 ここでははじめての書き込みです よろしくお願いします。
>>51 ソートの話でしょうか。基本交換法とはなんでしょうか。(wikipedia をみましたがわかりませんでした。)
問題について、もう少し情報をいただけませんでしょうか。
53 :
デフォルトの名無しさん :2008/07/15(火) 03:17:33
バブルソート
54 :
デフォルトの名無しさん :2008/07/15(火) 03:19:45
バブルソートは、ソートのアルゴリズムの一つ。最悪計算時間がO(n2)と遅いが、アルゴリズムが単純で実装が容易なため、しばしば用いられる。安定な内部ソート。基本交換法、隣接交換法ともいう。 バブルソート - Wikipedia 挿入ソート(インサーションソート)は、ソートのアルゴリズムの一つ。平均計算時間・最悪計算時間がともにO(n2)と遅いが、アルゴリズムが単純で実装が容易なため、しばしば用いられる。安定な内部ソート。基本挿入法ともいう。 挿入ソート - Wikipedia
[1] 授業単元:プログラミング2 [2] 問題文(含コード&リンク): アルファベットと数字からなる文字列 str と文字 c を引数として受け取り,文字列 str から文字 c をすべて削除する返す関数 void del_chr(char *str, char c) を定義し,動作を確認するプログラム(kadai11_3.c)を作成せよ. strを別の配列にコピーして利用すればよい.配列の添え字アクセスを利用してもよい. 関数名:del_chr 引数 :char *str, char c 返却値:なし 機能 :文字列 str から文字 c をすべて削除 main関数のテンプレートを示す. int main(void) { char c; char str[100]; char *ptr; printf("変換前: "); gets(str); printf("削除文字: "); scanf("%c", &c); del_chr(str, c); printf("変換後: %s\n", str); return 0; } [3] 環境 [3.1] OS: Win Vista [3.2] コンパイラ名とバージョン: bcc [3.3] 言語: C [4] 期限: 2008/07/15 14時まで [5] その他の制限: ポインタまで
>>15 だれが決めたのですか?回答者同士で出来を競うのは問題ないと思いますが?
>>57 決めたんじゃなくてそんな決まりはないって話だろ・・・
どんだけ意味が理解できないゆとりだよ?w
>>読め。競いたければ勝手に個人でやってろ。
競争心むき出しで、パクリだろとか言われても、はぁ?
って思われているのは、分かりきった答えだからなんだよw
>>1 とスレタイ
C/C++の ”宿題を片付けます”
> 気に入らない質問やその他や発言はスルーの方向で。
どこにも回答者同士で出来を争うといった趣旨の内容はなく
質問者に答えるのが一番の目的だと思うんだが?
だから決めたんじゃなくてそんな決まりはない、ということだよ。
路上で勝手に他の車と競争しているくらい、恥ずかしい行為だよ。
何一人で他人に負けたとか思って悔しい思いをしているの?ってねw
マナーを守って運転できない、加速できるなら出来るだけする奴は
危険だし迷惑。そういうこと。適切なソースが出せないなら、それはそれで
他人から指摘される場合もあるってことだよ、ワトソン君。
>>35 は前スレで解決済みでは?
>>59 よりよい回答が発生するのであれば、競争は大いに結構。というのが現代流なのでは?
ゆとりなのは、競争をしらないあなたでしょう。
>>60 >どこにも回答者同士で出来を争うといった趣旨の内容はなく
どこにも回答者同士で出来を競うなといった趣旨の内容はありませんが。
結果としていい回答が発生するのであれば、競争してもかまわないと思いますが、いかが?
あと車のたとえは意味不明。
えぇ、どこにも回答者同士で競い合うというった趣旨のスレではありません。 勝手に自意識過剰厨が、俺の方が出来が良いぜ、後出しじゃんけんは 必ず負けにしたいんだろ?w 内容じゃなくて早く書けるかを競うにしても無駄。 過去の課題のコピペで済むものも普通に存在しているし。 一人で見えない敵と戦ってろ
自動スクリプト回してますね
先出し後出し中出しでもめるくらいなら、もう定石のある ありきたりなパターンのものはテンプレ化して、それを 提示するなり、必要に応じてそのスタイルの関数を用いて出すとか。 それを競い合っても無駄だがねw
>>66 中だしでもめるようなら手をつけなければいいのですが、(回答)初心者には難しいのでしょうね。
69 :
デフォルトの名無しさん :2008/07/15(火) 05:33:13
>>35 >>69 http://pc11.2ch.net/test/read.cgi/tech/1215439445/586 #include<iostream>
void swap(int *a, int *b){
int c;
c=*a; *a=*b; *b=c;
}
int main(void){
int max1=0, max2=0, num;
while(std::cin >> num){
if(num==0) break;
if(num<0 || num%2==1) continue;
if(num>max2) max2=num;
if(max1<max2) swap(&max1, &max2);
}
std::cout << max2 << std::endl;
return 0;
}
私自身はチェックしていません。
>>35 >>69 #include <stdio.h>
void swap(int *a, int *b) {
int c;
c=*a; *a=*b; *b=c;
}
int main() {
int max1 = 0, max2 = 0, num;
while(scanf("%d", &num) == 1){
if(num == 0) break;
if(num < 0 || num % 2 == 1) continue;
if(num > max2) max2 = num;
if(max1 < max2) swap(&max1, &max2);
}
printf("%d\n", max2);
return 0;
}
>>71 thanks.
宿題に答えられたら答える人が答える、出来ない人が出来なかったことに 気を落とすスレでもなければ、回答したことに自己満足したのを アピールするスレでもありませんので、お間違えのないようお願いします。
74 :
デフォルトの名無しさん :2008/07/15(火) 06:21:43
ありがとうございます
かまってちゃんが自己アピールするスレでもないんですけどね。
>>6 を参考に
回答に余計なコメントを入れず、簡潔にコードだけ。
出来ればアンカーも付けずに、うpローダーに
ノーリンクな形で著作権フリーな形で書き込んで
URLだけ本スレに貼って下さるようお願いします。
77 :
45 :2008/07/15(火) 07:39:23
誰か
>>45 やってくれませんか?
自機の移動までは出来たのですが、ずっと右に進んだりすると消えてしまうので、消えないように表示がしたいです。
敵の跳ね返りもコンパイルは出来るのに、何故か表示されない…。
>>77 つーか、Ex09から雑魚1匹だけ抜き出して動かせばいいんじゃないの?
参考までに。あのコードはC++分かってないと書けないようになってるんで、
(クラスの継承やらオーバーライドやら使ってるんで)ここで中途半端なコード出すと
「ああ、、、誰かのパクったんだな」ってばれるんでそこらへんよろしく♪
80 :
45 :2008/07/15(火) 07:48:52
>>78 期限は今日の12時までに変更するので、お願いします。
81 :
45 :2008/07/15(火) 07:55:45
>>78 Ex09だと敵雑魚が複数居るから、1匹だけ表示する方法が分かりません。
とりあえず自分なりにやったけど表示されず…。
82 :
45 :2008/07/15(火) 07:56:34
83 :
デフォルトの名無しさん :2008/07/15(火) 08:26:30
だれか
>>4 をやってくれませんか??
難しいかと思いますが、期限が13:00までなので、わかる人がいればよろしくお願いします。
なんか、最近のいざこざでやる気が失せた。自分がやっても 誰かがやってたら、先に出した方がいれば後出しに何か言われるわ そんなんでちょっと面倒で時間が掛かりそうだと、もうやる気が失せるわ。 ちょっと他人の回答について、黙ってて欲しい。まぁ、そんなんだから 最近は催促された後に、誰もやらないなら自分がやるかって 風潮になっているんだろうけどね。
>>85 質問テンプレで質問あげたら再度催促しない限り、回答を
貰えないといルールにすればいい。
催促は問題よっても異なるが、質問をあげてから最速で3時間以上は
してはならないことにする。
それまでに答えた回答者はフライングで、皆でバッシング
催促されたら、原則として最も早く回答した人が質問者との通信権を持ち
ソースの授与とソースに対する質問が終わるまで、他の回答者は
その質問者にアクセスすることが出来ないことにする。
その後、別の回答者、もしくは同じ回答者が質問者にアクセスす
る場合は、質問者を呼び出すこと。応答が無い限り、質問者宛という
形でソースコードを置き逃げするようなことをしない。
あと回答者同士で、ソースコードをやりとりするのはタブーかな。
やはり。
要するに、相手がオンライン状態であることを確認し、相手が自分の
コードを受け取る認識にあることを確認した上でソースを渡す方式すれ
ばいいだけ。
長文うぜー
>>50 数式が解けない
f'(t)=? //
f(0)=0
f''(t)=mg-kf(t)-aη/hf'(t)
f''(t)=mg-kf(t)-(aη/h)f'(t)
>>51 void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; }
void bubblesort(int *a, int size)
{
int i, j;
for(i=size-1; i>0; i--) for(j=0; j<i; j++) if(a[j] > a[j+1]) swap(a+j, a+j+1);
}
void insertionsort(int *a, int size)
{
int i, j;
for(i=1; i<size; i++) for(j=i; j>0 && a[j] < a[j-1];j--) swap(a+j, a+j-1);
}
>>88 短文しか書けない奴は実は単文は書けないな
>>88 大卒のための卒論にはありきたりな文章を真似るにしても
短文じゃ無理だから、お前みたいな大学も卒業していない
知能レベルの低い奴が何を言っても説得力がないよw
>>88 読む気がないんだろ?だったら読まなくて良いからw
どうせ読解力、国語力のないお前じゃそういった低レベルの短文での
罵倒レスしか出来ないんだろうけどさw
>>94 だからお前個人の感想なんて要らないってw
お前の存在そのものがうぜー、このスレには必要ない
どうせお前が汚いソースを先走って出している低脳だから
必死に抵抗してんだろ?w
>>87 高卒?。中卒か?
もしかしたら小卒かも知れねーな。
大卒とか院卒だとしても、この回答者の心理を無視した
ルールは何だよw
相手がネットに張り付いて待っていよが居まいがコードが
出来たらいち早く置き土産みたく貼付けて楽しんでるんだよ。
コンパイルすら通らなくてもいい。とにかく形さえ出来てれば
いいんだ。
もすこし、実態を知ってからカキコしろや
あぁ、なんだやっぱり 大卒未満 か、悪い。
98の自己反省文でした。
100 :
デフォルトの名無しさん :2008/07/15(火) 10:27:02
[1] 授業単元:プログラミング論 I [2] 問題文(含コード&リンク): fib(1) = fib(2) = 1 fib(i) = fib(i - 1) + fib(i - 2) i は3以上の整数時、 fib(i) を以下のプログラムで計算する時、fib(i) を計算するのに加算が何回行われるか、 fib(i) を使って示せ。 さらに、このプログラムより加算回数が少ないプログラムをCで実装せよ。 int fib(int i){ if(i <=2){ return 1;} int answer = fib(i-1) + fib(i-2); return answer; } [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc3.4 [3.3] 言語: C [4] 期限: 2008年7月17日 [5] その他の制限: 特にありません。 よろしくお願いします。
とりあえず100は12:00まで回答禁止ってどーだ? 12:00以降100が再度お願いしますと言って来たら その時点で回答 期限は明後日だし、明日中に回答が貰えれば十分な筈だ
ここでいちいち名指し、個人宛て、アンカーをつけてレスしてないのに 反発レスをする奴は、自分に見に覚えのある基地外ってことだろ? 分かりやすいな、簡単に餌のない釣り糸に食いつく野郎って。 お前がいなくなれば、このスレは安泰するんだが、分かるかね?
103 :
45 :2008/07/15(火) 10:47:03
>>79 一匹だけ抜き出す方法教えてくれませんか?
自機はできたので大丈夫そうです。
>>103 この間の君かw
void elCreate(void)
というところの
Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",3, 0, 0,5, 2,40,40);
Zako[1] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",2,200, 0,5, 2,40,40);
Zako[2] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",6, 0, 80,5, 2,40,40);
Zako[3] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",5,200, 80,5, 2,40,40);
というのが敵クラスを生成して画像を当てはめてるところ。
void MainScreen(void)
というところの
for(int i=0;i<4;i++){
Zako[i]->Draw();
}
というのが敵クラスのDrawを呼び出して移動処理+描画をさせてる。
やっぱりクラス部分ではまったか・・・
途中でやってた人がクラスで作ってきたがそれまでがそんなのできそうな気配が
なかったのでいいのかな〜?と心配はしてたんだがw
105 :
45 :2008/07/15(火) 11:04:59
>>103 つまり…
for(int i=0;i<4;i++){
Zako[i]->Draw();
}
を
for(int i=0;i<1;i++){
Zako[i]->Draw();
}
にすれば良いのですか?
>>105 それでもいいけど1個しか使わないなら
Zako[0]->Draw();
だけでいいかな
まあ本当は配列にする必要すらないんだけどね
107 :
45 :2008/07/15(火) 11:15:44
>>106 ありがとうございます。無事にできました!
あと、影は使わないので消す事できましたが、
下の 1,"bmp/kage2.bmp",3, 0, 0,5, 2,40,40の部分は使わないので消しても平気でしょうか?
Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",3, 0, 0,5, 2,40,40);
Zako[1] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",2,200, 0,5, 2,40,40);
Zako[2] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",6, 0, 80,5, 2,40,40);
Zako[3] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",5,200, 80,5, 2,40,40);
Bocty[0] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3, 0, 0,1,11,60,60);
Bocty[1] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3, 60, 0,1,11,60,60);
Bocty[2] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3,120, 0,1,11,60,60);
Bocty[3] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3,180, 0,1,11,60,60);
Bocty[4] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3, 60,360,1, 1,60,60);
>>107 新しい方のお題がさっぱりわからないんだけど
Ex09のお題でいうところの自分で操作するキャラクターと跳ね回ってる敵の両方で影を使わないので
あればクラスの
class Chara{
<中略>
Chara(int _w,int _h,char *imgname,int _draw_type,char *kagename,
int _show_cnt = 0,
int _start_x = 0, int _start_y = 0,
int _div_x = 1, int _div_y = 1,
int _div_h = 0, int _div_w = 0)
{
を
Chara(int _w,int _h,char *imgname,int _draw_type,
int _show_cnt = 0,
int _start_x = 0, int _start_y = 0,
int _div_x = 1, int _div_y = 1,
int _div_h = 0, int _div_w = 0)
{
として
続く
>>108 の続き
class PlayerChara : public Chara
{
public:
PlayerChara(int _w,int _h,char *imgname,int _draw_type,char *kagename,
int _show_cnt = 0,
int _start_x = 0, int _start_y = 0,
int _div_x = 1, int _div_y = 1,
int _div_h = 0, int _div_w = 0) :
Chara(_w,_h,imgname,_draw_type,kagename,_show_cnt,_start_x,_start_y,_div_x,_div_y,_div_h,_div_w)
{
setPos(px,py);
}
を
class PlayerChara : public Chara
{
public:
PlayerChara(int _w,int _h,char *imgname,int _draw_type,
int _show_cnt = 0,
int _start_x = 0, int _start_y = 0,
int _div_x = 1, int _div_y = 1,
int _div_h = 0, int _div_w = 0) :
Chara(_w,_h,imgname,_draw_type,_show_cnt,_start_x,_start_y,_div_x,_div_y,_div_h,_div_w)
{
setPos(px,py);
}
とすれば
続く
>>109 の続き
Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,"bmp/kage2.bmp",3, 0, 0,5, 2,40,40);
の"bmp/kage2.bmp"は指定しなくてOKだし
Bocty[0] = new PlayerChara(60,660,"bmp/bocty.BMP",2,"bmp/kage.bmp",3, 0, 0,1,11,60,60);
の"bmp/kage.bmp"は指定しなくてOK
でも自分で操作するほうだけ影を残す場合は継承?してるっぽいのでちょっといじりかた変わると思う。
C++あまり詳しくないのであれなんだけどさ・・・^^;
111 :
51 :2008/07/15(火) 11:31:07
ヒント:挿入ソートは比較対象となる値を記憶しておく変数を使い 比較中は押し出すだけで、最後に対象の位置へその値を入れるため スワップの必要が無い。
114 :
45 :2008/07/15(火) 11:52:55
>>108 >>109 これ全部やった後、
>>110 のようにやって。
これにしました。
Zako[0] = new Chara(200, 80,"bmp/teki.bmp",1,3,0,0,5,2,40,40);
Bocty[0] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,0,0,1,11,60,60);
Bocty[1] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,60,0,1,11,60,60);
Bocty[2] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,120,0,1,11,60,60);
Bocty[3] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,180,0,1,11,60,60);
Bocty[4] = new PlayerChara(60,660,"bmp/bocty.BMP",2,3,60,360,1,1,60,60);
そうしたら
cpp(73) : error C2065: 'kagename' : 定義されていない識別子です。
って出たんですけど、影関係全部消去した方が良いのですか?
>>114 >>109 のこれ忘れてる?
Chara(_w,_h,imgname,_draw_type,kagename,_show_cnt,_start_x,_start_y,_div_x,_div_y,_div_h,_div_w)
{
setPos(px,py);
}
↓
Chara(_w,_h,imgname,_draw_type,_show_cnt,_start_x,_start_y,_div_x,_div_y,_div_h,_div_w)
{
setPos(px,py);
}
117 :
45 :2008/07/15(火) 12:29:19
>>117 画像のサイズが同じならファイル名同じにして入れ替えるだけだろ
121 :
デフォルトの名無しさん :2008/07/15(火) 12:37:32
122 :
115 :2008/07/15(火) 12:40:04
>>119 いや違う
void Draw()
{
if(draw_type == 0){
cw = w;
cx = 0;
ch = h;
cy = 0;
}else{
cw = div_w;
cx = start_x + (cw * (img_id % (div_x)) );
ch = div_h;
cy = start_y + (ch * (img_id / div_x) );
}
この部分で与えられた画像が1画像1キャラか1画像の指定開始位置から縦方向にn個あるか
しか現在処理できないようになってるので横方向にn個並んでる際の処理がいる
123 :
115 :2008/07/15(火) 12:41:35
ってなんで他人が設計した得意でもないC++の解説をやってるんだ俺はorz
124 :
115 :2008/07/15(火) 12:43:25
あ、敵が横だな。 いけるのかな?
126 :
115 :2008/07/15(火) 13:01:30
Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,3, 0, 0,10, 1,40,40); 引数1,2 任意の座標にしてね。 引数3 今回表示したいbmpのファイル名称に 引数4 1でOKかな? 引数5 キャラクターのアニメーション用コマの切り替えタイミング?3だと1/60*3で切り替えかな? 引数6,7 画像の開始位置、今回の画像は1画像に1キャラの複数コマしかないので0,0で 引数7,8 横方向に10個、縦方向に1個分しかないので10,1で 引数9,10 1キャラの縦横サイズが40x40ドットなので40,40で
127 :
115 :2008/07/15(火) 13:03:12
>>126 の続き
サウンド系のお話
class Chara の
virtual void Move()
{
if( (x > 640-cw) || (x < 0) ) {
dx = -dx;
x = x + dx;
}
if( (y > 480-ch) || (y < 0) ) {
dy = -dy;
y = y + dy;
}
x = x + dx;
y = y + dy;
}
続く
128 :
115 :2008/07/15(火) 13:04:12
>>127 の続き
virtual void Move()
{
int soundflg = 0;
if( (x > 640-cw) || (x < 0) ) {
dx = -dx;
x = x + dx;
soundflg = 1;
}
if( (y > 480-ch) || (y < 0) ) {
dy = -dy;
y = y + dy;
soundflg = 1;
}
if (soundflg == 1)
{
//鳴らしたい音の処理
}
x = x + dx;
y = y + dy;
}
とでもすればOKかな?
elのサウンド系はよくわからん
130 :
115 :2008/07/15(火) 13:09:11
ああ、すまん
>>55 void del_chr(char *str, char c){
char *s,*d;
s = d = str;
do{
if(*s != c) *d++ = *s;
}while(*s++);
}
132 :
131 :2008/07/15(火) 13:17:07
かぶった。 リロードしてなかったorz
>>120 別の学校で同じ課題が出たのかな。
先生も課題考えるのめどいんだろうなー
134 :
115 :2008/07/15(火) 13:18:56
>>133 実は先生も課題用として動く物をこのすれの住人に作らせてると
俺は常々思ってる。
そんな先生がいたらちょっとした質問であたふたしそうだw
>>125 ,131
ありがとうございます
…そっか、do文か
>>134 う〜〜ん・・・同じ学校の別の生徒と思われるかもしれんが、もしかすると
講師が課題作りをしたは良いが、模範解答をどうしようか考えて
ここを利用している可能性もあるかもね・・・その構図を思い浮かべて、
ちょっとワラタw っつか、俺利用されたっ!?
学生臭いスレですね
>>131 うおっ、その手があったか。先にレスしたけど、それパクらせてもらうw
140 :
115 :2008/07/15(火) 13:31:37
現実にそれっぽいのがあったんだよ。 週末にここで質問された内容が週明けに再度復活とかさ・・・・
>>140 なるほど、確かに。講師が模範解答の依頼、それを次の授業の後に
ここで質問した人が、既出のソースをそのまま提出して
お前、あのスレを使ったな?っとバレて単位がもらえないなんて
ことが、どこかの学校であるかも・・・そんな構図を思い浮かべて
ますます吹いたw
>>141 のソースに、2 2 0 と入力した場合について指摘がされているが
それをどう解釈するか?確かにこの場合、2番目も1番目も同じと
解釈するなら、2でも問題なし。まぁ、同じでも偶数は2つ入力されている
わけだから、これでも問題の趣旨としては条件を満たしていると思われる。
学生だって土日は外で遊ぶこともあるべ
[1] 授業単元: C++ [2] 問題文(含コード&リンク): 次の説明を読んで、プログラムを作成しなさい。 小数で入力される気温のデータを5℃単位の整数に丸めたい。 キーボードからdouble型変数kに気温を入力し、 丸めた数値はint型変数gに求め、gを画面に出力する。 ただし入力データに負の気温はないものとする。 また必要なら、 計算途中の中間結果を格納するint型変数wなど、 適宜変数を用意すること。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C++ [4] 期限: [5] その他の制限: 繰り返しや分岐を使わず、簡単な計算で
[1] 授業単元: C++ [2] 問題文(含コード&リンク): キーボードから100点満点のテストの点数を入力し(-1で終了)、 10点ごとの人数を int型の配列 count[11]に数えるプログラムを 作成せよ。 テストは100点満点とし、それ以外の入力はエラーとし て無視する。ただし -1 はデータの終了を表すものとする。 点数 の入力が終了したら、度数分布を画面に出力して終了する。出力は 人数と,*(アスタリスク)によるグラフとする。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C++ [4] 期限: [5] その他の制限:
147 :
デフォルトの名無しさん :2008/07/15(火) 13:54:37
>>128 ありがとうございます!無事鳴りました。
自機も移動する時鳴らしたいのですが、同じようにやるんですか?
[1] 授業単元: C++ [2] 問題文(含コード&リンク): 次の処理を行うプログラムを作成し実行結果を確認しなさい。 int型の配列a[5]、int型へのポインタp1, p2を宣言する 配列名aで表示される値を画面に出力する 配列a[5]のすべての要素のアドレスを出力する ポインタp1にa[0]のアドレス、ポインタp2にa[4]のアドレスを格納する p1 - p2を計算し出力する [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C++ [4] 期限: [5] その他の制限: 3問」ありますが、よろしくお願いします。
149 :
115 :2008/07/15(火) 14:17:45
150 :
115 :2008/07/15(火) 14:18:16
151 :
115 :2008/07/15(火) 14:27:29
すまん、フラグを立てる際間違えてた if(key_lt == HOLD_KEY || key_rt == HOLD_KEY) { if( tx >= 0 && tx + cw <= 640){ px = tx; soundflg1 = 1; } else { soundflg2 = 1; } } if(key_up == HOLD_KEY || key_dn == HOLD_KEY) { if( ty >= 0 && ty + ch <= 480){ py = ty; soundflg1 = 1; } else { soundflg2 = 1; } }
152 :
デフォルトの名無しさん :2008/07/15(火) 14:33:36
[1] 授業単元: C言語プログラミング [2] 分数の四則演算を計算するプログラムを作成する [3] 環境 [3.1] OS: Windows [3.3] 言語・C++ [4] 期限: ([2008年7月21日14:00まで [5]条件 分数を、 1|3 のように、| (縦棒)という記号で分子・分母を区別する。/ (スラッシュ)だと除算記号と混同してしまうから。 計算規則 a|b + c|d = (a*d + b*c) | (b*d) a|b - c|d = (a*d - b*c) | (b*d) a|b * c|d = (a*c) | (b*d) a|b / c|d = (a*d) | (b*c) 計算結果については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。 1.分母がゼロの入力エラーに対しては、再入力するよう促す。 2.除算において、除数がゼロの入力エラーに対しては、再入力するように促す。 3.以下範囲の整数(分子、分母にかかわらず)に対して、正しく計算できるようにすること。 -2147483648 〜 2147483647
153 :
115 :2008/07/15(火) 14:42:15
>>154 こういう題材じゃなければぶっちしてるw
156 :
デフォルトの名無しさん :2008/07/15(火) 15:13:59
>>153 ありがとうございます!できました。
最後に今までのをユーザー関数群でまとめたいのですが、
どうすれば良いでしょう?
157 :
115 :2008/07/15(火) 15:18:03
うーん クラスになってるからユーザー関数にするような箇所がないかも? 大半の機能はelライブラリでやってるし・・・ C++得意な方よろしこorz
>>156 一度自分で完成させたソースを上げて、見てもらったほうがいいよ。
160 :
デフォルトの名無しさん :2008/07/15(火) 15:35:53
>>35 Thanks, Part112
>>760 #include <stdio.h>
int main(void) {
int m1=0, m2=0, n;
while( scanf("%d",&n) ) {
if(n == 0) break;
if(n%2 == 1) continue;
/*
* if(n==m1) continue;
* if(n >m2) m2=n;
* if(m1<m2) swap(&m1, &m2); */
if(n>m2) {
if(n>m1) { m2=m1; m1=n;}
else if(n==m1) ;
else m2=n;
}
}
printf("%d \n",m2);
return 0;
}
>>145 #include <iostream>
int main(void){
double k;
int g;
std::cout << "気温を入力:";
std::cin >> k;
g = k / 2.5;
g += g % 2;
g = g / 2 * 5;
std::cout << "気温は約" << g << "℃です。" << std::endl;
return 0;
}
163 :
115 :2008/07/15(火) 15:42:52
>>160 その敵のほうのさ、白いのっていまどきマスクパターンっていわないよねw
あくまで敵が何か発動中はその白塗りになると思っていいよね?
164 :
デフォルトの名無しさん :2008/07/15(火) 15:47:31
165 :
デフォルトの名無しさん :2008/07/15(火) 15:48:50
168 :
161 :2008/07/15(火) 16:01:52
scanf の戻り値はエラーなら0か-1
169 :
58 :2008/07/15(火) 16:04:08
すみません
どなたか
>>58 をお願いできませんか?
>>146 #include <iostream>
int main(void){
int count[11];
int n;
for(int i = 0;i < 11;i++) count[i] = 0;
while(1){
std::cout << "点数入力:";
std::cin >> n;
if(n == -1) break;
if(0 <= n && n <= 100) count[n/10]++;
}
for(int i = 0;i < 10;i++){
std::cout << std::endl << i * 10 << "〜" << i * 10 + 9 << "(" << count[i] << "名)\t|";
while(count[i]-- > 0) std::cout << "*";
}
std::cout << std::endl << "100(" << count[10] << "名)\t|";
while(count[10]-- > 0) std::cout << "*";
return 0;
}
>>148 #include <iostream>
int main(void){
int a[5],*p1,*p2;
std::cout << "a=" << a << std::endl;
for(int i = 0;i < 5;i++){
std::cout << "a[" << i << "]のアドレス:" << &a[i] << std::endl;
}
p1 = &a[0];
p2 = &a[4];
std::cout << "p1 - p2 (&a[0] - &a[4]) = " << p1 - p2 << std::endl;
return 0;
}
172 :
115 :2008/07/15(火) 17:04:35
173 :
115 :2008/07/15(火) 17:05:06
[1] 授業単元:プログラミング第一
[2] 問題文(含コード&リンク):
構造体bintree_nodeを次のように定義する。
typedef struct bintree_node{
int value;
struct bintree_node *lt,*rt;
} *bintree;
このとき、次の条件を満たす関数void delgraph(bintree t)を作成せよ。
・tからたどることのできる節点をすべてfreeによって消去する
・tに合流点・ループがあっても必ず停止し、かつどの節点にもfreeが2回以上適用されないようにする
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
7/16 12:00
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
以前、似たような問題をこちらで聞いた時のプログラム(木構造に合流点やループがないかどうか調べる)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7386.c に付け足していただけるとうれしいです。
PlayerChara(60,660 この数字がおかしいな
>>89 m(dz^2/dt^2)-an/h(dz/dt)-kz=0
>>100 ですが、
回答はご用意頂けたでしょうか?
>>174 その元のコードだとbintreeはmallocを使わず実装してるので
この課題には流用しずらい。
それに付け足すまでもなく自明に実装できる。
void delgraph(bintree tree){
static bintree_node dummy;
if(!tree || tree->lt == &dummy)return;
bintree lt = tree->lt,rt=tree->rt;
tree->lt = &dummy;
delgraph(lt);
delgraph(rt);
free(tree);
}
ようするに一度巡回したノードにはltにdummy突っ込んでおくだけ。
削除するんだから値を勝手に書き換えても問題ないだろう。
179 :
デフォルトの名無しさん :2008/07/15(火) 18:17:51
0の値が格納された整数変数 pos_area を使って bst_sorted_output(root,A,&pos_area)を実行することにより、 2分探索木に格納されている整数データを配列Aへ小さい順に整列して出力する関数bst_sorted_output(Node *node, int A, int *pos)をC言語を用いてコーティングせよ。 ただし、変数*pos(実体はpos_area)は配列Aにおける次の格納位置を示すのに使うものとする。
>>177 #include<stdio.h>
#include<stdlib.h>
int fib(int i){
static int count;
int answer;
if(i==0){ int ret=count;count=0;return ret; }
if(i <=2){ return 1;}
answer = fib(i-1) + fib(i-2); // 3回加算
count+=4; // 1回加算 計4回
return answer;
}
int fib2(int i){
static int count;
int n, fib_n_0=1, fib_n_1=1, fib_n_2=1;
if(i==0){ int ret=count;count=0;return ret; }
for(n=3;n<=i;n++){ // 1回加算
fib_n_2=fib_n_1+fib_n_0; // 1回加算
fib_n_0=fib_n_1;
fib_n_1=fib_n_2;
count+=3; // 1回加算 計3回
}
return fib_n_2;
}
int main(int argc, char *argv[]){
int fib_n=20;
printf("%d ", fib(fib_n));
printf(" %d\n", fib(0));
printf("%d ", fib2(fib_n));
printf(" %d\n", fib2(0));
return 0;
}
181 :
174 :2008/07/15(火) 18:52:33
>>181 削除は出来ている。
ただ、ローカル変数のta0とかの値は削除したからって自動でNULLにならない。
単にbintree 〜 is deleted.の部分のif文がおかしいだけ。
183 :
174 :2008/07/15(火) 19:10:38
>>181 調べてみたら、確かにfreeした後の領域はNULLではなくて、
何があるかわからないということが書いてありました。
そうすると、削除したかどうかってどうやって調べればいいんでしょう・・・。
184 :
デフォルトの名無しさん :2008/07/15(火) 19:13:47
>>35 なのですが、関数を使わずにか、
#include <stdio.h>
void swap(int *a, int *b) {
int c;
c=*a; *a=*b; *b=c;
}
int main() {
int max1 = 0, max2 = 0, num;
while(scanf("%d", &num) == 1){
if(num == 0) break;
if(num < 0 || num % 2 == 1) continue;
if(num > max2) max2 = num;
if(max1 < max2) swap(&max1, &max2);
}
printf("%d\n", max2);
return 0;
}
*aやcontinue、&max1を使わずに出来ないでしょうか?
何度も申し訳ありません。
空白文字の個数を保ったまま、文字列を単語単位で処理をしたいんですが どのように記述するのが良いのでしょうか 例えば次の文字列があり、単語の先頭にあるaだけ大文字にしたいです _aba__dea__aga__ (_は空白) _Aba__dea__Aga__ (こうなってほしい) stringstreamでパースして、後で結合する方法を思いつきましたが、この方法だと空白は消えてしまいました。 地道に1文字ずつみて、str[i]==0 || (str[i-1]==' ' && str[i]!=' ') こういった判定をする以外に良い方法ってありますか?
UDP:相手先のオンライン、着信確認をせずに送ること TCP:相手先がオンラインであること、着信確認を取った上で送ること という理解でいいでしょうか?
>>186 こういうことをしたいのかな?
それともaだけを大文字にするのかな?
#include<iostream>
#include<string>
#include<cctype>
int main(void){
std::string foo=" aba dea aga ";
std::cout << foo << std::endl;
for(int i=0,next_toupper_flag=1;i<foo.size();i++){
if(next_toupper_flag) foo[i]=toupper(foo[i]); // 書き換えてるけどこれっておk?
if(isspace(foo[i])) next_toupper_flag=1;
else next_toupper_flag=0;
}
std::cout << foo << std::endl;
}
>>186 while (*str)
{
while (*str == ' ') str++;
if (*str == 0) break;
else if (*str == 'a') *str = 'A';
while (*str && *str != ' ') str++;
}
うpローダー使おうよ
複数レスにならない限り過去ログに残るほうがうれしい 質問者側としては検索で出てくるのはまずいかもしれないが… 変数名変えれば多分大丈夫さw
すいませんがお願いします。 [1] 授業単元: Cプログラミング演習 [2] 問題文(含コード&リンク) 以下のようなdouble型配列がある。配列の全要素の合計と平均を求める プログラムをポインタを使用して作成しなさい。 [配列の定義] double date[5]={10.8,20.3,30.6,40.4,50.5} [実行結果] 配列の内容 date[]=10.800000,20.300000,30.600000,40.400000,50.500000 合計=152.600000 平均=30.520000 [3] 環境 [3.1] OS: (Windows vista) [3.2] コンパイラ名とバージョン: (visual studio 2005 ) [3.3] 言語: (C言語) [4] 期限:今週いっぱいまで [5] その他の制限: (シンプルにおねがいします)
>>194 #include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[]){
double date[5]={10.8,20.3,30.6,40.4,50.5}, *p=date, sum, ave;
int i;
printf("date[]=%.6f", sum=*p++);
for(i=1;i<5;i++,p++){
printf(",%.6f", *p);
sum+=*p;
}
ave=sum/5;
printf("\n合計=%.6f\n", sum);
printf("平均=%.6f\n", ave);
return 0;
}
197 :
デフォルトの名無しさん :2008/07/15(火) 20:36:13
199 :
194 :2008/07/15(火) 20:48:48
>>196 すごい、完璧に動きました。
ありがとうございます!
完璧に動く > 完動 > 感動した!
>>194 シンプル >
#include <stdio.h>
#define COUNT 5
double date[5]={10.8,20.3,30.6,40.4,50.5};
void main(void)
{
int i;
double *p=date, sum=0.0, ave;
printf(" 配列の内容\n date[]=");
for(i=0; i<COUNT; i++, p++) {
sum += *p;
printf("%f", *p);
if(i < COUNT-1) printf(",");
}
ave = sum / COUNT;
printf("\n 合計=%f\n 平均=%f\n", sum, ave);
}
動作は完璧かもしれないが、出題内容のdateはdataに変えるべきだと思った。
[1] 授業単元:数値計算 [2] 問題文(含コード&リンク): y' = x +y y(0) = 0 の厳密解を求めるプログラムを作って☆ [3] 環境 [3.1] OS:mac os x leopard [3.2] コンパイラ名とバージョン:gcc.4.0.1 [3.3] 言語: C [4] 期限: 至急 [5] その他の制限:printfもfprintfもしなくて結構です。ええ、そうです。私ができないのは積分なのです…orz すいませんすいませんすいませんすいませんすいません…。公式分かってるけど、計算ミスが多すぎて何が何だかなのです><
208 :
186 :2008/07/15(火) 21:26:37
>>188 ありがとうございます。
next_toupper_flagで単語の先頭(書き換えるべき箇所)を保持してるわけですね
書き換えもOKだったので助かりました。
>>189 ポインタ苦手なんですが、何とか理解できました。
最初、全てのaを置換しているのかと思いましたが
最後のwhileで先頭以外を読み飛ばしてるんですね
209 :
デフォルトの名無しさん :2008/07/15(火) 21:41:29
>>184 ですが
関数使わずにか* & continueを使わない方法ないですか?
図々しいとは思いますが、今日中なので頼みます
>>107 >>110 Zako[0] = new Chara(200, 80,"bmp/teki.bmp", 1,NULL,3, 0, 0,5, 2,40,40);
にすればいいだけなのに(´;ω;`)
>>126 引数4は
0-背景
1- パターン1 → パターン2 → …… → パターンN → パターン1→ ……
2- パターン1 → パターン2 → …… → パターンN → パターンN-1 → パターンN-2 → …… → パターン1 → ……
212 :
デフォルトの名無しさん :2008/07/15(火) 21:58:06
213 :
198 :2008/07/15(火) 22:02:15
>>205 ありがとうございます!
初めて見る単語の理解に努めます・・・
[1] 授業単元: Cプログラミング演習 [2] 問題文 20次元の2つのベクトル余弦cos(θ)を求めよ。 ベクトルの要素はそれぞれ、ユーザーが入力すること。ベクトル要素は double型とすること。 [3] 環境 [3.1] OS: (Windows vista) [3.2] コンパイラ名とバージョン: Linux [3.3] 言語: (C言語) [4] 期限:7/16 [5] その他の制限: 特になし
218 :
84 :2008/07/15(火) 22:45:01
>>86 ありがとうございます!
まさかこんなに早く答えていただけるとは・・・助かりました。
見たことある単語がいくつもあったので自分にも理解できそうです。
>>214 20次元の場合の計算方法はこれでいいのか?
#include<stdio.h>
#include<math.h>
#define EPS (1.0e-20)
typedef struct tag_vector20d_t{
double num[20];
}vector20d_t;
double vector20d_size(const vector20d_t *vector20d){
int i; double x2=0.0;
for(i=0;i<20;i++) x2+=vector20d->num[i]*vector20d->num[i];
return sqrt(x2);
}
double vector20d_inner_product(const vector20d_t *a, const vector20d_t *b){
int i; double ret=0.0;
for(i=0;i<20;i++) ret+=a->num[i]*b->num[i];
return ret;
}
double vector20d_cos(const vector20d_t *a, const vector20d_t *b){
double size_a, size_b;
size_a=vector20d_size(a);
size_b=vector20d_size(b);
if(size_a<EPS || size_b<EPS) return -10.0;
return vector20d_inner_product(a, b)/(size_a*size_b);
}
int main(void){
int i; vector20d_t a, b;
for(i=0;i<20;i++) scanf("%lf", &(a.num[i]));
for(i=0;i<20;i++) scanf("%lf", &(b.num[i]));
printf(" %f\n", vector20d_cos(&a, &b));
return 0;
}
>>201 ループの中に無駄な分岐を入れるのはバカ
223 :
174 :2008/07/15(火) 23:27:22
>>2 01
このばあいほとんど分岐が起こらないから、きにする必要なし。
分岐結果の分布がどうとかではなくて毎回判定処理が動作することを懸念してるんで無いの? 今回の場合は大差ないし、そういうのは必要に応じてやればいいと思うけど。
なんでもループにまとめたり、短く書くことがいいことだと思う時期があんだよな。
>>223 あーそれは俺のバグだなぁ。
たしかにfreeを実行するタイミングが早すぎた。
修正してみた。あんまり自明なアルゴリズムじゃなくなってしょんぼり。
void delgraph2(bintree tree,bintree*rest){
static bintree_node dummy;
if(tree && tree->lt != &dummy)
{
bintree lt = tree->lt , rt = tree->rt;
tree->lt = &dummy;
tree->rt = *rest;
*rest = tree;
delgraph2(lt,rest);
delgraph2(rt,rest);
}
}
void delgraph(bintree tree){
bintree rest = NULL;
delgraph2(tree,&rest);
while(rest){
bintree self=rest;
rest = rest->rt;
free(self);
}
}
[1] 授業単元: Cプログラミング演習 [2] 問題文 #include<stdio.h> #include<string.h> main() {char string[]= "I write the book about internet search engine."; printf("%s",string); } string内の配列内の文字列の順番を逆にせよ。ただし出力だけが逆文字 に表示されては駄目である。配列の中身自体を変えなければいけない [3] 環境 [3.1] OS: (Windows vista) [3.2] コンパイラ名とバージョン: Linux [3.3] 言語: (C言語) [4] 期限:7/16 [5] その他の制限: 特になし
#include <stdio.h> int main(void) { char string[] = "I write the book about internet search engine.", *p, *q, temp; printf("%s\n", string); for(p=string; *p; p++); q = string; while(p-- > q) { temp = *p; *p = *q; *q++ = temp; } printf("%s\n", string); return 0; }
>>231 すまないが、配列の配列は動的に確保できないんじゃよ。We apologize for your inconvenience...
[1] 授業単元:数値解析
[2] 問題文(含コード&リンク):減衰振動の運動方程式
m(d^2x/dt^2)=−kx−α(dx/dt) をルンゲクッタ法で解くやり方を教えてください
m k αはキーボードからの入力値です 初期条件はx(0)=0 , x'(0)=0です
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C
[4] 期限:
>>50 でしましたが、とりあえずこれだけわかればなんとかできそうなんで・・・
>>234 ルンゲクッタ法とか法がつくものは、やり方のことだよ。
明日朝以降にもう一度お願いすれば、もしかしたら
誰かが解いてくれてるかも
>>235 解くまでもなく
0しか答えがないので釣りとみなされました。
237 :
デフォルトの名無しさん :2008/07/16(水) 02:16:12
[1] 授業単元: [2] 問題文(含コード&リンク):ランダムに現れる#、$、%、&を同じ記号で3つ揃えるスロットゲームの作成 条件:スロットをするかどうかをy、nで判定 スロットを行う 実行結果通りの結果を出力させる [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 [4] 期限: 至急 [5] その他の制限:実行結果の例 スロットをを回しますか?(y/n)>>>y 幸運をお祈りします ### 大当たり スロットを回しますか?(y/n)>>>n ありがとうございました どうかよろしくお願いします
238 :
44 :2008/07/16(水) 02:31:44
>>44 ,238
1.1 [A] struct xyz [B] struct xyz [C] {0,0,0} [D] t
1.2 [A] struct xyz * [B] (*x).x [C] (*x).y[D] (*x).z
2.1 typedef struct tDate{ int y,m,d }Date;
2.2 void printDate(Date d) { fprintf( stdout, "%4d/%2d/%2d", d.y,d.m,d.d ); }
2.3
void printDateGen(Date d)
{
#define DD(Y,M,D) ((Y)*10000+(M)*100+(D))
char *Era[] = {"","明治","大正","昭和","平成"};
int y, e, dd = DD(d.y,d.m,d.d);
e = ( dd >= DD(1989,1,8) ) ? 4 : ( dd >= DD(1926,12,25) ) ? 3 : ( dd >= DD(1912,7,30) ) ? 2 : ( dd >= DD(1868,9,8) ) ? 1 : 0;
y = d.y - ( ( e == 1 ) ? 1867 : ( e == 2 ) ? 1911 : ( e == 3 ) ? 1925 : ( e == 4 ) ? 1988 : 0 );
if ( y == 1 ) { fprintf( stdout, "%s 元年 %2d月 %2d日", Era[e], d.m, d.d ); }
else { fprintf( stdout, "%s %2d年 %2d月 %2d日", Era[e], y, d.m, d.d ); }
}
240 :
237 :2008/07/16(水) 03:44:28
>>240 「至急」なんて書かれても、「その内やる」としか思わないんじゃね?
242 :
237 :2008/07/16(水) 04:24:04
あぁ、すまん、繰り返すかの y/n は自分で適当に組み込んでおいて
245 :
237 :2008/07/16(水) 04:59:02
>
>>244 ありがとうございます!
繰り返すのはfor文ですよね?
うむ。やっぱ、もう少し書き直してみるんでお待ちを
>>234 とりあえず解いてみてください
ちなみにこれであってる?
一般解の形は x(t)=a*e^(-b*t*i)+c 但し e をネイピア数、i を虚数単位とする
>>202 コンパイルエラーを取る問題。無理なのでネタと判断した。
[1] 授業単元: Cプログラミング演習 [2] 問題文 構造体配列struct tfield name[10];がありメンバにchar str1;があるとします 文字列を適当にabscedと標準入力したとして その文字列を1文字ずつ構造体配列name[i].str1にいれるように. 最終的にそのname[i].str1を表示するブログラムを [3] 環境 [3.1] OS: LINUX [3.3] 言語: (C言語) [4] 期限:7/16 [5] その他の制限: 特になし
251 :
248 :2008/07/16(水) 08:21:46
>>248 の一般解、定数 b が複素数かも
よーわからん
忘却の彼方なので数学部分は中学レベルまでにして
>>250 文字列の終端はどうするの?
#include<stdio.h>
struct tfield{
char str1;
};
int main(void){
struct tfield name[10];
char buf[10+1]="";
int i;
fgets(buf, sizeof(buf), stdin);
for(i=0;buf[i];i++) name[i].str1=buf[i];
// for(i=0;name[i].str1=buf[i];i++);
for(i=0;i<10;i++) printf("%c\n", name[i].str1);
return 0;
}
253 :
249 :2008/07/16(水) 08:51:07
void (*a)(const strtype) = show; void (*b)(const strtype&) = show; a(hello); b(hello);
キーボードから50人分の点数を入力し 90点以上の人の番号と点数を表示せよ。 っていうプログラムってどんな感じですか?
入力が大変です
256 :
デフォルトの名無しさん :2008/07/16(水) 10:19:34
[1] 授業単元: Cプログラミング演習 [2] 問題文 キーボードから50人分の点数を入力して、90点以上の人の番号と点数を表示せよ [3] 環境 [3.1] OS: vista [3.3] 言語: (C言語) [4] 期限: [5] その他の制限: 特になし
>>254 50人分の点数をテキストファイルにでも保存して
リダイレクトを使えば、プログラムを実行してから
毎回入力する手間は省けるが。
あとは、受け継いだ点数から90以上のものをカウントする
プログラムを作ればええがな。
あ、カウントじゃなくて番号と点数で良いのか。 まぁ、そういうことで、1行ずつ先頭から番号、点数、改行して 50人分の点数を記述するか、点数も乱数を使って発生させるのもありやな。 ってことで、誰かやってちょっ。自分はちと席を外すんで。
>>256 リダイレクト使った成績入力は自分でやってくれ
#include <stdio.h>
#define CLASSMAX (2) /* クラスの人数 */
#define MAXNAME (128) /* 名前の最大文字数 */
#define BOADER_POINT (90) /* 表示する最低点数 */
/* 生徒1分の成績 */
typedef struct tagRECORD {
char name[MAXNAME];
int point;
} RECORD;
void input_record(RECORD *r, int i)
{
const int MAXBUF = 128;
char buf[MAXBUF];
printf("Name[%d]?:", i);
scanf("%s", r->name);
printf("Point[%d]?:", i);
scanf("%d", &(r->point));
}
void print_record(RECORD *r)
{
printf("Name: %s, Point: %d\n", r->name, r->point);
}
>>259 続き
int main(int argc, char *argv[])
{
RECORD clsRecord[CLASSMAX];
int i;
/* クラスの成績を入力 */
for (i = 0; i < CLASSMAX; i++) {
input_record(&clsRecord[i], i);
}
/* BOADER_POINT以上の生徒の成績表示 */
printf("\n***** Over %d students *****\n", BOADER_POINT);
for (i = 0; i < CLASSMAX; i++) {
if (clsRecord[i].point >= BOADER_POINT) {
print_record(&clsRecord[i]);
}
}
return 0;
}
// 入力フォーマット: [番号],[得点] int main() { int i; int number; int score; for ( i = 0; i < 50; i++ ) { scanf( "%d,%d", &number, &score); if ( score >= 90 ) { printf("%d,%d", number, score); } } }
アンカー忘れてる、は回答プレ?
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): #include<stdio.h> main() { char ch; while(scanf("%c", &ch)==1){ ch-=0x20; printf("%c", ch); } } 上記のプログラムを改良し、アルファベットは大文字と小文字を逆転し、それ以外の文字はそのまま表示するようにしなさい。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:? [3.3] 言語:C [4] 期限:[本日16:30まで] 宜しくお願いします。
[1]C言語中上級 [2] 3つの65535以下の非負整数a,b,cを乱数で生成します。a,b,cから次のような文字列を作ります。 [a+b][b+c][c+a][a][b][c][|a-b|][|b-c|][|c-a|][ab][bc][ac] [m]はmを10進表示した文字列を表す |m|はmの絶対値を表す それを10進数表示し結合した文字列を作り、それらをdecomposite関数に引数渡しして、 元の3つの数を再現する処理をC言語プログラムで記述しなさい。 元の3数は、decompositeからはアクセスできない、呼び出し側のローカル変数領域の外側に公開しないで下さい。 ☆23,39,17が生成された場合文字列 62564023391716226897663391をdecompositeに渡す。 ☆生成された3つの数、渡す文字列共に出力してから、decomposite関数を呼び出して下さい。 (関数の中で、決定された3数を出力) ☆一意に元の数を決定できない場合はdecomposite関数の中で一意決定不能と表示し、すべての候補を 出力して下さい。 [3]linux/gcc/C [4]7/30 12:00 時間がまだあるので、急ぎません。 少なくとも本日はこのスレを覗きません(これからバイトに行きますので) 明日以降、どなたかよろしくお願いします。
>>239 ありがとうございます
マジで助かりました
問題文に誤りが見つかりました。 -それを10進数表示し結合した文字列を作り、それらをdecomposite関数に引数渡しして、 +それをdecomposite関数に引数渡しして、 として下さい。
>>263 ライブラリ使っていいなら以下。
#include<stdio.h>
#include<ctype.h>
main()
{
char ch;
while(scanf("%c", &ch)==1){
if(islower(ch)!=0)
ch=(char)toupper(ch);
else if(isupper(ch)!=0)
ch=(char)tolower(ch);
printf("%c", ch);
}
}
>>263 #include <stdio.h>
main()
{
char ch;
while(scanf("%c", &ch)==1){
if(ch >= 0x40){
if(ch >= 0x61) ch-=0x20;
else ch+=0x20;
}
printf("%c", ch);
}
}
>>263 >>269 ミスってた
#include <stdio.h>
main()
{
char ch;
while(scanf("%c", &ch)==1){
if(ch >= 0x41 && ch <= 0x5a) ch+=0x20;
else if(ch >= 0x61 && ch <= 0x7a) ch-=0x20;
printf("%c", ch);
}
}
>>263 せっかくだからキモイコードを張るぜ
#include<stdio.h>
main()
{
char ch;
while(scanf("%c", &ch)==1){
ch=(ch|32U)-'a'<26?ch^32:ch;
printf("%c", ch);
}
}
>>263 ならば、おいどんのキショースも出すでごわす
#include<stdio.h>
int main(void) {
char ch;
while(scanf("%c", &ch)==1){
if( ch>='a' && ch<='z') ch=ch-'a'+'A';
else if( ch>='A' && ch<='Z' ) ch=ch-'A'+'a';
printf("%c", ch);
}
}
悪法回答テンプレが一掃されて以来スレが清々しいなw でもまだコードと一緒にアンカーと、コメント書く奴が多いな。
どうでもいいけどな
>>276 (・∀・)ニヤニヤ (・´ω`・)ンダゴルァ (・`ω´・)ナッナンダッテー
280 :
263 :2008/07/16(水) 16:25:55
[3.2]のコンパイラ名とバージョンってのが良くわからないんですが、 コンパイラ名:Borland C++ バージョン:5.5.1 って感じでいいんですか?
>283 少なくても僕の脳みそでは分かりません。 たぶん上級問題なのかもしれません。
ほっとぞぬな問題
>>292 #include<stdio.h>
#define DATA_NUM_MAX 100
int main(void){
int data[DATA_NUM_MAX], datanum
int sum=0, i;
double average;
for(datanum=0;datanum<DATA_NUM_MAX;datanum++){
printf("%d件目の点数を入力してください.\n", datanum+1);
scanf("%d", &data[datanum]);
if(data[datanum]==999) break;
printf("%d件目の点数は%d点です.\n", datanum+1, data[datanum]);
sum+=data[datanum];
}
if(datanum==0) return 1;
average=(double)sum/datanum;
printf("\n合計点は%d点です.\n平均点は%.1f点です.\n", sum, average);
printf("\t点数\t平均からの差\n");
for(i=0;i<datanum;i++) printf("\t%d点\t%5.1f点\n", data[i], data[i]-average);
return 0;
}
>>290 #include<stdio.h>
#include<string.h>
int main(void){
char buf[10];
int i, count=0;
for(i=100;i<=600;i++){
sprintf(buf, "%d", i);
if(strchr(buf, '4') || strchr(buf, '9')) continue;
count++;
}
printf("このホテルの客室総数は%dです.\n", count);
return 0;
}
>>289 #include<stdio.h>
int main(void){
int a[5][5] = { { 1, 2, 3, 4, 5}, { 6, 7, 8, 9,10}, {11,12,13,14,15}, {16,17,18,19,20}, {21,22,23,24,25}, };
int b[5][5] = { { 3, 6, 9,12,15}, {18,21,24,27,30}, {33,36,39,42,45}, {48,51,54,57,60}, {63,66,69,72,75}, };
int c[5][5],*p_a,*p_b,*p_c, i;
p_a=a; // p_a=a[0] ?
p_b=b;
p_c=c;
for(i=0;i<5*5;i++){ // 問題1
printf("%d ", *(p_a+i));
if(i%5==4) printf("\n");
}
for(i=0;i<5*5;i++) *(p_c+i)=*(p_a+i); // 問題2
for(i=0;i<5*5;i++){
printf("%d ", *(p_c+i));
if(i%5==4) printf("\n");
}
for(i=0;i<5*5;i++) *(p_c+i)=*(p_a+i)+*(p_b+i); // 問題3
for(i=0;i<5*5;i++){
printf("%d ", *(p_c+i));
if(i%5==4) printf("\n");
}
return 0;
}
[1] 授業単元: Cプログラミング演習 [2] 問題文 20次元の2つのベクトル余弦cos(θ)を求めよ。 ベクトルの要素はそれぞれ、ユーザーが入力すること。ベクトル要素は double型とすること。 [3] 環境 [3.1] OS:Mac [3.2] コンパイラ名とバージョン: Linux [3.3] 言語: (C言語) [4] 期限:7/18 [5] その他の制限: お願いします><
過去ログ見ろと言われて実際に見る奴なんていないだろw
1]プログラミング [2] 2から1000までの素数を表示するプログラム [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 4.3.0 [3.3] 言語:C [4] 期限:7月18日17:00まで [5] その他の制限: ポインタ、構造体なんかは習って無いです 宜しくお願いします
>>300 #include<stdio.h>
int main(void){
int i, j;
for(i=2;i<1000;i++){
for(j=2;j<i;j++) if(i%j==0) break;
if(j>=i) printf(" %d", i);
}
return 0;
}
302 :
300 :2008/07/16(水) 23:33:22
すみません。
>>300 を関数を使ってお願いします。
>>291 それで良いんじゃないの。
オレ、ボーランド製品が全然わからないけど
>>302 #include<stdio.h>
int is_prime(int value){
int i;
if(value<2) return 0;
for(i=2;i<value;i++) if(value%i==0) return 0;
return 1;
}
int is_prime(int value){
int i;
if(value<2) return 0;
if(value%2==0) return value==2;
for(i=3;value/i>=i;i+=2) if(value%i==0) return 0;
return 1;
}
int is_prime(int value){
int i, chk;
double sqrt(double);
if(value<2) return 0;
if(value%2==0) return value==2;
chk=sqrt(value+0.1);
for(i=3;i<=chk;i+=2) if(value%i==0) return 0;
return 1;
}
int main(void){
int i;
for(i=2;i<1000;i++) if(is_prime(i)) printf(" %d", i);
return 0;
}
305 :
デフォルトの名無しさん :2008/07/16(水) 23:45:01
>>264 一意決定不能の例なんかあると助かるんだが。
>>264 スペースないからdecomposite関数だけ。
void decomposite(char *str)
{
int a, b, c, ab, bc, ca;
char *p, *q, *r, temp[256];
for(p=str,ab=0; ab<=65535*2; p++) {
ab = ab * 10 + *p - '0';
for(q=p+1,bc=0; bc<=65535*2; q++) {
bc = bc * 10 + *q - '0';
for(r=q+1,ca=0; ca<=ab + bc; r++) {
ca = ca * 10 + *r - '0';
a = (ab + ca - bc) / 2;
b = ab - a;
c = ca - a;
if(a<0||b<0||c<0||a+b!=ab||b+c!=bc||c+a!=ca) continue;
sprintf(temp, "%d%d%d%d%d%d%d%d%d",a,b,c,abs(a-b),abs(b-c),abs(c-a),a*b,b*c,c*a);
if(strcmp(r+1, temp)==0) printf("a=%d b=%d c=%d\n", a, b, c);
}
}
}
}
>>159 一つ目
#include<stdio.h>
#include<stdlib.h>
struct bunsuu{ int bunsi, bunbo; };
int gcd(int a, int b){
int c;
while((c=a%b)) a=b,b=c;
return b;
}
struct bunsuu bunsuu_set(int bunsi, int bunbo){
struct bunsuu ret={0, 1};
if(bunsi==0 || bunbo==0) return ret;
if(bunbo<0) bunsi=-bunsi, bunbo=-bunbo;
ret.bunsi=bunsi/gcd(abs(bunsi), bunbo);
ret.bunbo=bunbo/gcd(abs(bunsi), bunbo);
return ret;
}
struct bunsuu bunsuu_add(struct bunsuu a, struct bunsuu b){ return bunsuu_set(a.bunsi*b.bunbo+b.bunsi*a.bunbo, a.bunbo*b.bunbo); }
struct bunsuu bunsuu_sub(struct bunsuu a, struct bunsuu b){ return bunsuu_set(a.bunsi*b.bunbo-b.bunsi*a.bunbo, a.bunbo*b.bunbo); }
struct bunsuu bunsuu_mul(struct bunsuu a, struct bunsuu b){ return bunsuu_set(a.bunsi*b.bunsi, a.bunbo*b.bunbo); }
struct bunsuu bunsuu_div(struct bunsuu a, struct bunsuu b){ return bunsuu_set(a.bunsi*b.bunbo, a.bunbo*b.bunsi); }
void bunsuu_print(struct bunsuu x){ printf(x.bunbo==1?"%d\n":"%d / %d\n", x.bunsi, x.bunbo); }
int main(void){
struct bunsuu a={1,2}, b={2,3};
printf("input bunsuu ( ex. 1 / 2 ) :"); scanf("%d/%d", &a.bunsi, &a.bunbo);
printf("input bunsuu ( ex. 2 / 3 ) :"); scanf("%d/%d", &b.bunsi, &b.bunbo);
bunsuu_print(bunsuu_add(a, b));
bunsuu_print(bunsuu_sub(a, b));
bunsuu_print(bunsuu_mul(a, b));
bunsuu_print(bunsuu_div(a, b));
return 0;
}
311 :
45 :2008/07/17(木) 00:23:15
313 :
300 :2008/07/17(木) 00:28:05
>>304 うまく行きました
ありがとうございます
すみません。
>>273 をどなたがお願いできないでしょうか?
期限は明日までになりそうです。
[1] 授業単元: c言語演習 [2] 問題文(含コード&リンク): c言語を用いて制作すること ・入力は、整数n≥1 ・出力は、nのパリティ(偶パリティor奇パリティ) [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:bcc [3.3] 言語: c [4] 期限: 2008年7月19日 [5] その他の制限: よろしくお願いします。
>>312 そのうち>>231やるかも
line 18
// int calendar[rsize][csize];
int *calendar = new int[rsize * csize];
line 23
// calendar[i][j] = 0;
calendar[i*csize + j] = 0;
line 50
// calendar[i][j] = day;
calendar[i*csize + j] = day;
line 62:
// const int day = calendar[i][j];
const int day = calendar[i*csize + j];
>>231 >>319 delete[] calendar; retrun 0; 忘れてた。
line 17
// int calendar[rsize][csize];
int **calendar = new int*[rsize];
line 20
for (int i = 0; i < rsize; ++i) {
calendar[i] = new int[csize];
line 83
for (int i = 0; i < rsize; ++i)
delete[] calendar[i];
delete[] calendar;
return 0;
期限過ぎても提出しないと全部ボツになるんです
期限が過ぎていたからって、機嫌を悪くしないでね。
>>320 >以下の雛形プログラムの指定部分のみを変更すること.
<ctype.h>のインクルードは題意に反する。
327 :
デフォルトの名無しさん :2008/07/17(木) 09:48:43
>>318 //1
#include <stdio.h>
#define N 128
/* プロトタイプ宣言 */
void printCapitals(char *s);
int main(void){
char str[N];
fgets(str, N, stdin);
printCapitals(str);
return 0;
}
void printCapitals(char *s)
{
int i;
for(i=0;s[i];i++)
if('A' <= s[i] && s[i] <= 'Z')
putchar(s[i]);
}
for(i=0;s[i],i++)
if('A' <= s[i] &&
}
328 :
デフォルトの名無しさん :2008/07/17(木) 10:18:39
>>318 #include <stdio.h>
//2
unsigned CommaSeparatedValueSum(FILE *fp)
{
unsigned csv[5] = {0};
unsigned sum = 0;
unsigned i;
while(!feof(fp)){
fscanf(fp,"%u,%u,%u,%u,%u",&csv[0],&csv[1],&csv[2],&csv[3],&csv[4]);
for(i = 0; i < 5; i++)
sum += csv[i];
}
return sum;
}
int main()
{
FILE *fop = fopen("data3.csv","r");
unsigned sum = CommaSeparatedValueSum(fop);
printf("CSV DATA SUM %u \n",sum);
return 0;
}
>>281 private:
void strset(char *str){
p = new char[strlen(str)+1];
strcpy(p,str);
}
public:
strtype(char* str=""){
strset(str);
}
strtype(strtype &st){
strset(st.p);
}
330 :
デフォルトの名無しさん :2008/07/17(木) 10:40:34
[1] 授業単元: C言語プログラミング [2] 分数の四則演算を計算するプログラムを作成する [3] 環境 [3.1] OS: Windows [3.2]Microsoft Visual Studio [3.3] 言語・C++ [4] 期限: ([2008年7月21日14:00まで [5]条件 分数を、 1|3 のように、| (縦棒)という記号で分子・分母を区別する。/ (スラッシュ)だと除算記号と混同してしまうから。 計算規則 a|b + c|d = (a*d + b*c) | (b*d) a|b - c|d = (a*d - b*c) | (b*d) a|b * c|d = (a*c) | (b*d) a|b / c|d = (a*d) | (b*c) 計算結果については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。 1.分母がゼロの入力エラーに対しては、再入力するよう促す。 2.除算において、除数がゼロの入力エラーに対しては、再入力するように促す。 3.以下範囲の整数(分子、分母にかかわらず)に対して、正しく計算できるようにすること。 -2147483648 〜 2147483647 Visual Studioでお願いします
331 :
100 :2008/07/17(木) 10:40:56
332 :
デフォルトの名無しさん :2008/07/17(木) 10:53:02
>>310 問題文をもっと詳しく書かないと
意味がわからない
>>334 自分で微分方程式解いたら、それ持って又来て。
>>273 をどうかよろしくお願いします。
セマフォを用いたプロセス間通信をするプログラムです。
期限は明日の12:00までになりました。
どうか、よろしくお願いします。
340 :
デフォルトの名無しさん :2008/07/17(木) 12:49:47
343 :
デフォルトの名無しさん :2008/07/17(木) 15:17:20
>>339 何を送信するのかとか、終了条件とかわかんないし・・・
>>344 ご指摘ありがとうございます。
問題の情報が不足して申し訳ありませんでした。
>何を送信するのか
メッセージをやりとりするものだと思われます。
文字列を受け渡しあうものです。
問題もそのままコピッたのですが・・・。
どうやら、指定がないようですね・・・。
申し訳ありません。
>終了条件
終了条件も特に指定がありません。
ENDと打って終了ということでお願いいたします。
347 :
デフォルトの名無しさん :2008/07/17(木) 16:07:58
348 :
343 :2008/07/17(木) 16:12:17
>>347 ありがとうございました<m(__)m>
アップローダー使う場合は回答レスとソースに相互リンクつけてもらえないでしょうか?
複数の人が同じ問題やってくださった場合、どの人のソースか区別できなくなった
ことがあり、誤解によりご迷惑をおかけしたことがありました。
>>6 の法令違反かも知れませんが
350 :
デフォルトの名無しさん :2008/07/17(木) 16:27:35
351 :
273 :2008/07/17(木) 17:02:13
>>346 ありがとうございます。
文字列をコンソール入力させます。
文字列を入力させて、その文字列をやりとりするみたいです。
>>346 申し訳ありません。
少し仕様を変更させて頂きたいです。
コンソールを2つ開いて、
pts/1をparent(親プロセス)、pts/2をchild(子プロセス)として、
コンソールに入力した文字を、親と子でやりとりするプログラムです。
コンソール入力は、親プロセス、子プロセス、どちらでも可能にします。
例えば、親プロセスにコンソール入力(ここでは「aaa」と入力する)すると、
子プロセスがそれを読み込み、内容を出力する(「aaa」と出力する)プログラムにしたいです。
また、子プロセスでコンソール入力させたときでも同様に、
それを親プロセスで出力する、というプログラムです。
まことに勝手ながら、仕様を変更させてくださいとお願いしたりしまして、
本当に失礼いたしました。申し訳ございません。
もしよろしければ、仕様を変更していただいたプログラムをあげてくださると助かります。
やんのかてめえ
354 :
デフォルトの名無しさん :2008/07/17(木) 17:27:58
[1] 授業単元: C言語入門 [2] 「連結リストを用いた並び替え」 日本の総理大臣に関するデータ(csvファイル)をリダイレクトを用いて入力し、 就任時の年齢で並び替え、txtファイルで出力するプログラムを作成しなさい [3] 環境 [3.1] OS: Windows [3.2]Microsoft Visual Studio [3.3] 言語・C [4] 期限:2008年7月19日23:59まで [5] 条件 :csvファイルの1列目は何代目の総理大臣かを表し、2列目は就任時の年齢、 3列目は苗字、4列目は名前となっています。
>>352 その要件で、fork()はおかしんじゃね?
>>273 の書きかけのコードは、デタラメなの?
357 :
デフォルトの名無しさん :2008/07/17(木) 17:53:23
オレもほしいw
>>355 書きかけのコードが完成すると、
プログラムが仕様通り正常に動作するみたいなのですが・・・。
教授が適当すぎて、僕たちもものすごく苦労しています。
書きかけのコードのほうを優先させてもらいたいです。
>>359 仕様どおり、の仕様はもともとの仕様を指していて、
仕様変更が行われた
>>352 は満たさない、でおk?
>>349 アンカーつけてんじゃn
何の文句があるわけ?
362 :
デフォルトの名無しさん :2008/07/17(木) 18:44:39
[1] 授業単元:CG
[2] 問題文(含コード&リンク):
スキャンライン法で用いる走査平面と三角形ポリゴンとの交差線(スキャンセグメント)の始点、終点
ならびにそれらのスキャンライン上の位置を以下の条件で求めるプログラムを作れ。
・視点: 点(ex,ey,ez)
・走査平面: ax+by+cz+d=0で与えられる平面
(視点が走査平面上に必ずあるとみなしてよい)
・スキャンライン:走査平面上の点(x0,y0.z0)を始点とし、(vx,vy,vz)方向に長さwの線分
(点(x0,y0.z0)は必ず走査平面上にあるとみなしてよい
(方向ベクトル(vx,vy,vz)は長さ1であり必ず走査平面の法線ベクトルと垂直であるとみなしてよい
・3角形ポリゴン:3頂点(x1,y1,z1),(x2,y2,z2),(x3,y3,z3)をもつ3角形
(必ず3角形を構成するとみなしてよい。
3角形ポリゴンが走査平面に平行となる場合を考慮すること)
出力するもの
走査平面と3角形ポリゴンとの交差線(スキャンセグメント:図の緑の太線)の始点・終点(3次元座標で表すこと)
スキャンセグメントのスキャンライン上の始点・終点(図の赤の太線、点(x0,y0,z0)からの距離で表すこと)
参照図
http://koideai.com/up/src/up2708.png [3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: VS2005
[3.3] 言語:C
[4] 期限: 明日
[5] その他の制限:ありません お願いします!!!
>>330 -2147483648
この数値は鬼門
∵符号の反転に失敗する
>>360 はい。その通りです。
とりあえず書きかけのコードをプログラムとして完成させればいいらしいのですが・・・。
>>361 ソースに回答レスのURLがついてないこと
>>349 何が起こったのかよくわからないのですが‥‥‥。
>>349 保存するときにファイル名にスレ名とレス番号いれるとか
DLしてから自分で書き込むとか方法はあるよね?
>>349 みたいなことを強要するほうが「ご迷惑」でしょ
375 :
374 :2008/07/17(木) 19:49:33
376 :
310 :2008/07/17(木) 19:52:49
>>332 テキストの内容そのままなのですが、すいません。
>>333 あってると思いますちゃんと動きました。
ありがとうございます。
377 :
デフォルトの名無しさん :2008/07/17(木) 19:57:13
>>316 /*
と性奇偶の数のトッビるいてったの時たしわらあで数進2=ィテリパ
義定
*/
>h.oidts< edulcni#
{)diov(niam tni
;0=j,n tni
;)"=数整"(ftnirp
;)n&,"d%"(fnacs
{)n(elihw
;1=^j )1 & n(fi
;1=>>n
}
;)"偶":"奇"?)1 & j(,"n\s%=ィテリ゚ハ"(ftnirp
;0 nruter
}
379 :
350 :2008/07/17(木) 20:09:08
はさみうちを使うのはわかるのですが、自力で作成できないんですorz どなたか作って頂けないでしょうか?
>>365 プログラムを完成させると、
>>352 のような仕様になるということなのですが・・・。
何を送信するか、終了条件、などは、指定されていないのが現状です・・・。
どうか、書きかけのコードを完成させてください。
フォークしたやつにアタッチする方法てあるんかな?screenにアタッチするみたいに
[1] 授業単元:C言語 中級 [2] 問題文(含コード&リンク): ・特定のフォルダを指定し、その中にある"*.c"のファイルを対象とする。 対象ファイルの中でstatic変数を抜き出し、二重定義している箇所を出力させよ。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: [2008年07月18日6:30まで] [5] その他の制限: 特になし よろしくお願いします。
>>383 「二重定義」の正確な意味をおしえてください。手元のコンパイラでは以下のコードはエラーになりません。
#include <stdio.h>
static int x;
static int x;
int main() {
x = 1;
return 0;
}
数学の問題と違って、プログラミングの場合は、意味を考えたりとりまとめたり するのは重要な仕事だよ
>>384 フォルダの中に複数のソースファイルがあり、aという名前のソースに定義されているstatic変数が
他のソースにも定義されていた場合にファイル名、変数名を出力させる。
と言うことです。
分かりにくくてすみません
>>350 #include<stdio.h>
#include<math.h>
#define EPS (0.0000001)
#define IS_VALID_VALUE(x) ((x)>=-DBL_MAX && (x)<=DBL_MAX) // 標準じゃないみたいなので isinf とか finite とかの代わり
double f(double x){
return (x)*exp(x)-10;
}
int main(void){
double a=0.0, b=4.0, c, x;
int search;
if(f(a)*f(b)>0.0){ // 閉区間の自動探索
if(f(0.0)>=0.0) search=-1; // f(x)<0 となる x を探す
else search=1; // f(x)>0 となる x を探す
for(x=1.0;f(x)*search<0.0 && IS_VALID_VALUE(x) && IS_VALID_VALUE(f(x));x*=2);
if(!IS_VALID_VALUE(x) || !IS_VALID_VALUE(f(x))) for(x=-1.0;f(x)*search<0.0 && IS_VALID_VALUE(x) && IS_VALID_VALUE(f(x));x*=2);
if(!IS_VALID_VALUE(x) || !IS_VALID_VALUE(f(x))) return 1; // 探索失敗
if(x>0){ a=0.0; b=x; }
else{ a=x; b=0.0; }
}
while(1){
c=(a+b)/2;
if(fabs(f(c))<=EPS) break;
if(f(a)*f(c)>0) a=c;
else b=c;
}
printf("c=%e\n", c);
return 0;
}
>>386 当然、コメントやクォートの中に含まれる
static という文字と一般のstatic変数宣言を区別しなければ
ならないことになるが、それってひょっとして構文解析しろ
って話?
そうなると中級レベルを超えた出題だなw
>>378 ありがとうございます><
#include <stdio.h>
int main(void)
{
int n,j=0;
printf("整数=");
scanf("%d",&n);
while(n)
{
if(n & 1) j^=1;
n<<=1;
}
printf("パリティ=%s\n",(j & 1)?"奇":"偶");
return 0;
}
実行してみたのですが、うまく行きません……。
よろしければもう少しお力を貸してください><
>>389 それだと最下位ビットしか見てない
シフト方向が逆
ついでに n は unsigned の方がいい
いじわるの効果が出ている・・・
392 :
デフォルトの名無しさん :2008/07/17(木) 22:02:44
[1] 授業単元:C言語初級基礎講座
[2] 問題文(含コード&リンク):
2次元配列に二項演算「123 + 456」を入力して、結果を出すというソースをくみ上げているのですが、
以下のソースで、
http://m-pe.tv/u/page.php?uid=cccddd&id=1 @elementnumが3以上になったらerror1を、
A「123 + 4A6」と入力してしまったらerror2を表示する
というソースを組んでいる途中なんですが、うまくいきません。
作成途中で見苦しいですが、どなたか有識者いらっしゃいましたらよろしくお願いします。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [2008年7月18日14:00まで]
[5] その他の制限: できれば現状のソースの形をあまり変えずにお願いします。
>>392 isdigit について調べたほうがいいよ
394 :
デフォルトの名無しさん :2008/07/17(木) 22:09:34
>>393 書き忘れてしまいましたが標準関数のisdigitは一度ユーザー関数におとして使うようにと教授に指定されました。
>>395 isdigit() は
if (isdigit(c)) {
}
という感じで使うのがいいかと。あるいはゼロか非ゼロで判定するほうがいいでしょう。
「isdigit() の返り値が -1 のときは‥‥」というのは特定の環境でしか意味を持たないと思います。
>>381 混乱させてしまいまして、すみません。
何分、僕らもこういう問題出されて、何もわからなくて、
このプログラムの詳細な説明がなにもなく、途方にくれてるところです・・・。
教授のほうも、この書きかけのコードを完成させろみたいなことしか言ってません・・・。
273と352は気になさらないでください。
終了条件などは全く無視でかまいません。
こんなまともじゃないプログラム、僕らも理解不能です。
書きかけの部分を補完するだけでいいみたいです。
うpしたコードの完成をよろしくお願いします。
すみません
>>58 を本当にお願いします(;ω;)
399 :
354 :2008/07/17(木) 22:48:17
すみません。一つ条件を言い忘れていました。
static変数の変数名は頭がsとuの二種類に固定されてます。
>>394 そちらを参考に考えてみようと思います。
ありがとうございました
400 :
デフォルトの名無しさん :2008/07/17(木) 22:50:42
>>392 元のソースと全く違うけどアップする
#include <stdio.h>
#include <string.h>
int main()
{
char *crlf;
char calc[100];
char c;
int l,r;
int ans;
fgets(calc,sizeof(calc),stdin);
if(crlf = strrchr(calc,'\n'))
*crlf = '\0';
sscanf(calc,"%d%c%d",&l,&c,&r);
if( c == '+')
ans = l + r;
else
ans = 0;
printf("%d%c%d = %d\n",l,c,r,ans);
return 0;
}
>>397 その完成像と言うのが、全然見えない。
ちょっと、入出力例を書いてくれないか。
403 :
デフォルトの名無しさん :2008/07/17(木) 23:26:19
>>394 できました!ありがとうございます!
よろしかったら簡単でいいので
流れを教えていただけませんか!?
[1] 授業単元: Cプログラミング演習 [2] 問題文 20次元の2つのベクトル余弦cos(θ)を求めよ。 ベクトルの要素はユーザーが入力すること。ベクトル要素は double型とする。 [3] 環境 [3.1] OS:Mac [3.2] コンパイラ名とバージョン: Linux [3.3] 言語: (C言語) [4] 期限:7/19 [5] その他の制限: 特になし
405 :
デフォルトの名無しさん :2008/07/17(木) 23:58:59
>>403 まず線形リスト形式でファイル内容を読み込む、が読み込む際にfscanf使おうとしたが
%sのあたりが思うように読み込んでくれなかったのでstrtokを使って、文字列を
ぶち切りにして読み込ました。
で、リスト形式なので、リスト構造をソートすべきなのでしょうが、俺があんまり
わかってないので、リスト一つ一つの要素をmallocで確保した領域にぶち込んで
要素ごとで比較してソートした。
でそのソートした要素をファイルに書き込んで、mallocで確保した領域を
すべて解放した。
>>390 たびたびすみません……
シフト方向が逆とは、
n<<=1; を n>>=1; にすれば良いと言うことでしょうか……
これで実行しても「'j' に代入した値は使われていない(関数 main )」と出てやはりうまく行きません……
すみません、まだよく分からないです。
あと、出来れば単純に二進数変換したときの1の数を表示する方法も教えていただきたいです。
何度も申し訳ありませんが、どうかお願いします><
408 :
397 :2008/07/18(金) 00:12:05
>>401 コマンドライン端末を2つ開きます。
一方の端末を親プロセスとして、
その端末で「gcc semprog2.c」を入力、コンパイラをします。
「./a.out」を入力し、実行をします。
親プロセスで実行する前に、
もう一方の端末で、「./child」を入力し、子プロセスとします。
実行結果例としては、
子プロセスでirieと入力
親プロセスでirieと受け取り、出力。
親プロセスでHello!と入力
子プロセスでHello!と受け取り、出力。
子プロセスでhelloと入力
親プロセスでhelloと受け取り、出力。
前に似たようなプログラムを作ったので、
これと同じような入出力結果になればいいそうです。
画像をうpしました
↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7432.zip お手数ですが、解答してご覧ください。
よろしくお願いします。
>>397 > 教授のほうも、この書きかけのコードを完成させろみたいなことしか言ってません・・・。
> こんなまともじゃないプログラム、僕らも理解不能です。
えらく教授を見下した書き方だが、教授もしくはTAに分からないところの質問はした?
どれだけ質問してもいいからやれの一点張りならグチの一つも出てこようが。
>>409 わざと変なプログラム組ませたりしました。
今回もその類なのかな、と勝手に思ってしまいました。
努力はしました。
>>408 がその結果であります。
メール送りまくって、少し前にようやく帰ってきました。
普段は学校にいないので、なかなか質問もできず、
メールも送っては帰ってこなかったりもしました。
TAも出現率がメタルスライムです。
>>410 この実行例は友達が考えました。
412 :
デフォルトの名無しさん :2008/07/18(金) 00:52:51
>>405 助かりました。
本当にありがとうございました。
>>408 仮にこの通りの外観だとすると、
fork()した子プロセスは何処へ行くのか・・・
>>414 期限は日付で書けよ
しあさっては永遠に明々後日のままだぞ
問1
#include<stdio.h>
#include<string.h>
int main(void){
char filename[FILENAME_MAX], *p;
int moji, prev=0, linenum=0;
FILE *fp;
printf("ファイル名:");
fgets(filename, sizeof(filename), stdin);
if((p=strchr(filename, '\n'))!=NULL) *p='\0';
if((fp=fopen(filename, "r"))==NULL) return 1;
while((moji=fgetc(fp))!=EOF){
if(moji=='\n') linenum++;
prev=moji;
}
if(prev!='\n') linenum++;
fclose(fp);
printf("%d\n", linenum);
return 0;
}
<<407 手持ちのVC++ではコンパイル警告は出なかった
417 :
デフォルトの名無しさん :2008/07/18(金) 03:44:24
419 :
デフォルトの名無しさん :2008/07/18(金) 05:27:34
age
>>414 3つ目は外部のファイルを使用してもおk?
>>417 1行にbuffが1度に受ける文字数以上ある場合適切に行数をカウントしない
コピー 〜 + コピーするファイル名のファイルが既に存在していた場合
問答無用で上書き
昔このスレにも来てたな 金払うから宿題解いてってやつ
>>415 初期化は prev='\n' でないと 0 byte ファイルのときに 1 になるよ
>>424 今でもこのスレにも来てるんじゃないか?
金払うから宿題解かせてってやつ
金を払ってくれるなら喜んでお受けいたします!って奴も出るか?
コーディングの場合は、金を取ってやるのが美徳か、無償でやるのが美徳か 実に微妙で難しいな
429 :
417 :2008/07/18(金) 10:06:17
仲介が儲かりそうだな。 請け負って手配して、両者から金もらうw
>>428 所詮は子供の宿題と、
コードを更に商売に使う場合とでは、違うだろうな。
>>423 は一見、子供の宿題に見えるが、本人のつもりはどうなんだろう。
むかし、金を払うからオレの考えたサイコロバクチの予想法を実装してくれってスレがあったよな。
子供の宿題が商売に使われているのか、法的に強い監視と規制が必要な商手段が 子供の教育に使われているかいずれか解釈が分かれていると思われ
434 :
414 :2008/07/18(金) 11:10:43
日付の件は申し訳ございませんでした
435 :
デフォルトの名無しさん :2008/07/18(金) 11:31:21
>>174 講義のホームページにここを見ているようなことが書いてあるね。
439 :
デフォルトの名無しさん :2008/07/18(金) 15:58:09
>>438 やさしいなぁ
おれの 一日分の仕事量に相当する
440 :
デフォルトの名無しさん :2008/07/18(金) 16:55:43
[1] 授業単元: プログラミング [2] 問題文(含コード&リンク): 配列の要素を昇順にソートしたときの、添え字の順番を配列に記憶するプログラムを書け。 data = {2,6,3,1,2} なら, index = {3,0,4,2,1}である。 元の配列は書き換えてはならない。 qsortなどのライブラリを用いて構わない。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C C++ [4] 期限: 明日
441 :
438 :2008/07/18(金) 17:18:36
>>438 searchNode内のpNodeをNULLで初期化してくれ。
他にも抜けはだいぶあるから適当にやっといて。
444 :
362 :2008/07/18(金) 18:39:53
>>444 その絵で意味が分かるのは絵を書いた本人くらい
446 :
デフォルトの名無しさん :2008/07/18(金) 19:06:51
2:5≠3:8
>>448 斜辺のように見えるけれども実は一直線ではなかったのですか‥‥‥。
相変わらず後だしで猿真似かw
>>440 #include <stdio.h>
#include <stdlib.h>
struct element{ int d; int i; };
int compfn(const void *_a, const void *_b)
{
return (((struct element *)_a)->d - ((struct element *)_b)->d);
}
void my_sort(int n,int *data,int *index){
int i;
struct element *S = malloc(sizeof(struct element) * n);
for(i=0;i<n;i++){
S[i].d = data[i]; S[i].i = i;
}
qsort(S,n,sizeof(struct element),compfn);
for(i=0;i<n;i++){
index[i] = S[i].i;
}
free(S);
}
int main(){
int i, data [5] = {2,6,3,1,2}, index [5] = {0};
my_sort(5,data,index);
printf("data[] = {");for(i=0;i<5;i++){ printf("%d ",data[i]); } printf("};\n");
printf("index[] = {"); for(i=0;i<5;i++){ printf("%d ",index[i]);} printf("};\n");
}
>>414 問3
#include<stdio.h>
int main(){
FILE *fp;
int n;
fp = fopen("a.txt","r");
if( fp == NULL ){
n=0;
/* この場合、fpはNULLなのでfcloseする必要なし */
}else{
fscanf(fp,"%d",&n);
fclose(fp);
}
n++;
fp = fopen("a.txt","w");
if(fp == NULL){
printf("Error...\n");
return -1;
}
fprintf(fp,"%d",n);
printf("%d\n",n);
fclose(fp);
return 0;
}
[1] Cプログラミング [2] 問題文: 12+22+・・・+n2と1からnまでの平方和s(n)を計算します。整数k(≧10)を閾値(threshold)としてキー入力して、 初めてs(n)がkを超えるようなnとその時のs(n)を求めて表示するプログラムを作成しなさい。 最初に入力要求メッセージとして、「閾値(≧10)を入力:」と表示せよ。 加点オプションとして、与えられた閾値を越える直前のnとその時のs(n)も表示してみよ。 例えば、k=13と与えられた場合は、12+22+32=14(>13)なので、 閾値(≧10)を入力:13 n = 3, s(3) = 14 と表示すれば良い。下線部はキー入力。もし、オプションも達成するならば、 閾値(≧10)を入力:13 n = 2, s(2) = 5 n = 3, s(3) = 14 と表示すれば良いものとする。 以下にソースプログラムをテキスト(等幅フォント)で貼り付け、 k=1000を入力した時の実行結果をコマンドプロンプトをキャプチャして貼り付けよ。 [3] 環境 [3.1] Windows [3.2] gcc [3.3] C [4]あさって 問題が意味不明です。だれかお願いします。
>>454 追記
12+22+32=14(>13)
↓訂正
1*1+2*2+3*3=14(>13)
1の2乗+2の2乗+3の2乗=14です。
>>454 追記
12+22+・・・+n2と1からnまでの平方和s(n)を計算します。
↓
1*1+2*2+・・・+n*nです。
ワードからの貼り付けでイロイロずれがおき連続投稿になり申しわけありません
>>454 #include <stdio.h>
int main(){
int k,n,s;
printf("閾値(≧10)を入力:");
scanf("%d",&k);
for(n=1,s=0;s<k;n++){s=s+n*n;};n--;
printf("n= %d, s(%d) = %d\n",n-1,n-1,s-(n*n));
printf("n= %d, s(%d) = %d\n",n,n,s);
return 0;
}
>>458 すまん、ねむくてぼけてた。
#include <stdio.h>
int main(){
int k,n,s;
printf("閾値(≧10)を入力:");
scanf("%d",&k);
for(n=1,s=0;s<k;s=s+n*n){n++;}
printf("n= %d, s(%d) = %d\n",n-1,n-1,s-(n*n));
printf("n= %d, s(%d) = %d\n",n,n,s);
return 0;
}
[1]C [2]1から9までの9つの数字が順番に並んでいる。 数字の順番を変えずに全ての用いて、途中に+を1個、−を2個入れると、 例えば次のような式ができる。 123-45-67+89=100,1234+5-6-789=444 同様の方法で、450,500,666 を作る方法をすべて見つけなさい [3]LINUX C [4]来週の月曜 よろしくお願いします。
>>460 for GCCのみ。それが嫌ならcase '0' ...'9' を case '0': Case '1': って感じにしてくれ。
#include <stdio.h>
long A(char *str){
long ret=0,v=0;int s=1,s2=1,p=0;
do{ switch(*str){
case '0' ... '9': v = v * 10 + (*str - '0'); break;
case '+': s2 = +1; p=1;break;
case '-': s2 = -1; p=1;break;
case ' ': break;
case '=': p=1;break; }
if(p==1) {ret+= s*v;s=s2;v=0;p=0;}
}while(*(++str)!='\0'); return ret;
}
void fome(char *s){char buf[20],*b=s;strcpy(buf,s);
while(*b++){if(*b != ' '){*(++s) = *b;}}
}
void checknum(long m){
int n,s;
char buf [20]="1 2 3 4 5 6 7 8 9=",buf2[20];
for(n=0;n<8*8*8;n++){
char c0 = n & 0x07,c1 = (n
>>3 ) & 0x07,c2 = (n
>>6 ) & 0x07;
if(c0 == c1 || c1 == c2 || c0 == c2 || c1<c2) continue;
strcpy(buf2,buf); buf2[c0*2+1]='+'; buf2[c1*2+1]='-'; buf2[c2*2+1]='-';
fome(buf2);s=A(buf2);
if(s == m) { printf("%s%d\n",buf2,A(buf2));}
}
}
int main(){checknum(100);checknum(444);checknum(450);checknum(500);checknum(666);return 0;}
>>451 相変わらず後出しに負けているクズソースしか書けない
我先にと先走る低脳か・・・
>>451 ↑このキチガイ、やはり昼夜逆転の引きこもりだろ?マジうぜぇ。
誰もこんな低レベルな宿題スレで競争なんてしねーよ、馬鹿だろこいつ。
自意識過剰ってのはほんっと周りが見えてなくてKYだよな。
おいっ、クソガキ、いやオッサン、いい年こいて無職かよ?
鏡見ろや、m9(^д^ ) な面が拝めるだろ?それ誰の面だ?ん?
>>451 そうだな、お前が過去に学んだことを 猿真似 した程度なのに
可搬性を無視した麻呂のクソース未満のものしか書けないんだよな。
なぁ、あんた、もしかして嫌われて者の団子ちゃん?w
>>461 ふざけすぎ。それでいて後出しの奴を挑発か。レベル低すぎ
技能も知能も。このスレに向いてないよ、あっ低レベルな宿題だし
暇人のお前にはふ相応しいスレだったか、すまそ。
年金暮らしですか?大変ですね、色々と。
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク):○×ゲーム作りなさい。人対コンピュータのやつで先攻後攻も選べるやつ。 [3] 環境 [3.1] OS: windows [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 次の月曜まで よろしくお願いします
>>466 ○×ゲームの概要は?選択式のクイズゲーム?
それとも、n行n列の盤に○と×を置いて縦横斜めにn個並べたら勝ちとか?
>>467 すいませんでした
後者の方です
3×3マスのテーブルに○と×が交互に自分の印を置いていって
縦横斜めのどれか一列が自分の印で埋まったら勝ちです
>>466 ちゃんとふざけ過ぎてみる。
#include <stdio.h>
int bd[3][3];
void userSelect(int *x,int *y){ do{ scanf("%d %d",x,y); }while(bd[*y][*x]!=0); }
void comSelect(int *x,int *y){ do{ *x = rand() % 3; *y = rand() %3; }while(bd[*y][*x]!=0); }
int Showbd() {const char chara[3]=" OX";int x,y;printf("\n");
for(y=0;y<3;y++) for(x=0;x<3;x++) printf("%c%s",chara[bd[y][x]],(x==2)?"\n-+-+-\n":"|");}
int Clearbd(){int x,y;for(y=0;y<3;y++) for(x=0;x<3;x++) bd[y][x]=0;}
int isGameFinished(){int ret = 0, x,y;
for(x=0;x<3;x++) {if(bd[0][x] == 0) continue;
ret = 0; for(y=0;y<3;y++) if(bd[0][x] != bd[y][x] ) ret++; if(ret==0) return bd[0][x]; }
for(y=0;y<3;y++) {if(bd[y][0] == 0) continue;
ret = 0;for(x=0;x<3;x++) if(bd[y][0] != bd[y][x] ) ret++; if(ret==0) return bd[y][0]; }
if(bd[0][0] == bd[1][1] && bd[1][1] == bd[2][2] && bd[0][0] != 0) return bd[0][0];
if(bd[0][2] == bd[1][1] && bd[1][1] == bd[2][0] && bd[0][2] != 0) return bd[0][2];
ret=0; for(x=0;x<3;x++) for(y=0;y<3;y++) {if(bd[y][x] == 0) ret++;} if(ret == 0) return 0; return 3;}
int main(){
int n,m,w,x,y; int p[2]; void (*select[2])(int *,int*);
printf("1- 人間先行 2- COM先行"); scanf("%d",&m); if(m==1){
select[0] = userSelect;select[1] = comSelect;p[0]=1; p[1]=2; }
else { select[1] = userSelect;select[0] = comSelect;p[1]=1; p[0]=2; }
Clearbd(); n=0; do{ Showbd(); select[n % 2](&x,&y); bd[y][x]=p[n % 2]; n++; }
while((w=isGameFinished())==3); Showbd();
printf("%s",(w==1)?"ユーザーの勝ち":(w==2)?"COMの勝ち":"引き分け");
}
[1] 授業単元:プログラミングV [2] 問題文:シードフィルをスタックを使って表示しなさい [3] 環境 [3.1] OS: Windowsxp [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語:C [4] 期限:7月21日
>>470 #include <stdio.h>
static char stack[6][2];
int depth=0;
void push(char *s){ stack[depth][0]=*s;stack[depth][1]=*(s+1);depth++;}
static char *pop(){ depth--; printf("%c%c", stack[depth][0],stack[depth][1]);}
int main(){
push("ル");push("ィ");push("フ");push("ド");push("ー");push("シ");
while(depth>=0){pop();}
return 0;
}
なんか、コンパイルしてないよな?普通にヘッダ忘れとか コードの中の一部が不適切だとか・・・一応動作するにはするが コンパイラが都合よく解釈してくれる場合は
>>470 もうちょっと宿題内容を詳しく書くべきだな。
これじゃ
>>471 みたいなのを回答にされても仕方がない。
475 :
デフォルトの名無しさん :2008/07/19(土) 11:03:35
[1] 授業単元:数値解析 [2] 問題文: 関数uは、0<x<1,0<y<1の範囲のあらゆる点で方程式 ∂^2u/∂x^2+∂^2u/∂y^2 = 2(x^2+y^2) を満たし境界上でu(0,y)=u(x,0)=0, u(1,y)=y^2, u(x,1)=x^2である。 点(0.5, 0.5)の値と反復回数をヤコビ法により求め、画面表示せよ。 その際、きざみ幅n,mをいくつか変化させることで、反復回数がどのように変化するか確かめよ。 ヒント 1.(n+2)×(m+2)行列を2つ用意する。u1[n+2][m+2],u2[n+2][m+2] 2.上のu1に境界値を代入する。他は0でよい。 3.u2[[1][1],u2[1][2],・・・,u2[2][1],u2[2][2],・・・と反復計算する。 4.e=Σ|u1-u2|/Σ|u1|を計算する。 5.上記eが0.0001以下でなければ、u1←u2とした後、3へ戻る。 6.結果を表示。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C [4] 期限: 7月23日24:00まで
477 :
しんせつなおじさん :2008/07/19(土) 11:24:40
>>460 #include <stdio.h>
int check(int *a, int n){
int i, j, flag = 1, temp = 0, sum=0;
for(i=0,j=1; j<=9; i++, j++) {
temp = temp * 10 + j;
if(a[i] || i==9) {
sum += temp * flag;
temp = 0;
flag = a[i];}}
return sum == n;}
void show(int *a,int n){
int i, j;
for(i=0,j=1; j<=9; i++, j++) {
printf("%d", j);
if(a[i]==1) putchar('+');
else if(a[i]==-1) putchar('-');}
printf("=%d\n", n);}
void f(int n){
int i, j, k, a[8] = {0};
for(i=0; i<8; i++) { a[i] = 1;
for(j=0; j<8; j++) {
if(i==j) continue;
a[j] = -1;
for(k=j+1; k<8; k++) {
if(k==i) continue;
a[k] = -1;
if(check(a, n)) show(a,n);
a[k] = 0;} a[j] = 0;} a[i] = 0;}}
int main(void){f(100);f(444);f(450);f(500);f(666);}
おうおう、後出し結構。来週の月曜日まで時間があるし 質問者が適当なものを選べば良いしな。 昼夜逆転のキチガイは頭がイカレテるから放置な
せっかくコピペじゃ解けない問題ばっかりでおとなしくなったと思ったのにw
>>440 やっぱバブルソートだろw
#include <stdio.h>
void bubblesort(int *a, int *index, int size)
{
int i, j;
for(i=size-1; i>0; i--) {
for(j=0; j<i; j++) {
if(a[index[j]] > a[index[j+1]]) {
int temp = index[j];
index[j] = index[j+1];
index[j+1] = temp;
} } } }
int main(void)
{
int i, data[5] = {2, 6, 3, 1, 2}, index[5] = {0, 1, 2, 3, 4};
bubblesort(data, index, 5);
for(i=0; i<5; i++) printf("%d ", index[i]);
return 0;
}
そのソートな・・・行き当たりばったりで、いつ終わることやらw
>>480 子供の宿題なんだから、コピペレベルじゃなかったことは無いだろ。
当人の説明が下手な場合ばかり・・・
【質問テンプレ】
[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まで] または [無期限] のいずれか)
※回答期限について
既定では宿題提出期限前1時間前迄です。それ以降回答しても、見てもらえる確率は極端に減ります。
質問者へお願い
問題に誤りがあった場合、訂正をした場合は回答率は極度に下がりますが、やはり訂正して下さい。
他の酷似した問題が訂正と誤解されて質問出来なくなってしまいます。
回答者へお願い
質問があってから、質問者に訂正の余地を少しでも与えるため、2時間以内は回答しないで下さい。
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
487 :
デフォルトの名無しさん :2008/07/19(土) 12:59:58
Cgengo わかりません おしえてください
>>489 すいません。作成例の最後
void msort(int X[],int n,int Y[])
{
int n1 = n/2, n2 = n - n1, i;
int X1[n1], X1[n2], Y1[n1], Y1[n2];
は
int X1[n1], X2[n2], Y1[n1], Y2[n2];
の間違いでした
>>485 期限内で残ってるの、
>>406 だけだろ?
やだよ。なんかケイタイで撮った問題用紙みたいのは入ってたぞ。
>>490 お前のわけの分からん基準は要らない。何が 頭が悪い のか
はっきりしないし、それを口に出したお前こそ低脳の馬鹿低学歴だろ
あー他人のソース批判は要らないよ。口出しするくらいなら 回答となるソースを自分が出せば良いだけだから。 回答しない口先だけの奴ほどこのスレには無用
>>494 ひょっとして、この頭悪いスレを何か勘違いしてないか?
>488 >while(*num_end++); バカすぎw
int s2n(const char *num, const char*p) { int i = 0; while(*num!=*p) i = i * 10 + *num++ - '0'; return i; } とでもして直接数値返したほうが無駄がないだろ。
誰も第三者にソースの判定を依頼なんてしてないのに わざわざ自分の方から頭が悪い自分の発言をしている 構ってちゃんは何者だ?自分がこのスレの趣旨が理解できない 馬鹿だと気づいてくれ。頭の悪そうなレスだな、ってな。
>>498 このスレの主眼は、
他人の受ける教育を妨害しつつ、
自分以下のバカをあざけることだろ。JK
自分の方が頭の悪いレスをしていることに気づかない 頭の悪い関数 だと思った 本当に頭の悪い 奴が構ってちゃんなんだろ。
自分は人のソースを叩くくせに、自分のは叩いちゃダメってかw どんだけわがままなんだよ、お前w
まーたはじまった
批判されるのが嫌ならソース貼るなよ。
ここは他の回答者と競争したり、他の回答者のソース批判をするスレではありません まったく、スレタイ、日本語が読めない奴らは何人なんだYO!
お前が言うなYO!
506 :
デフォルトの名無しさん :2008/07/19(土) 13:57:27
int i; i++; 俺の知識フルにつかった
>>507 わざわざbuf[]に数字コピーしてからatoi()が無駄だと思えないヤツにまともな意見が通じるとでも?
>>486 >回答者へお願い
>質問があってから、質問者に訂正の余地を少しでも与えるため、
質問者の事情など知ったことではありません。こっちとしても訂正が入ったらそのつどなおせばいいだけです。
>2時間以内は回答しないで下さい。
よけいなお世話です。
>>486 >既定では宿題提出期限前1時間前迄です。それ以降回答しても、見てもらえる確率は極端に減ります。
回答するのは誰?見てもらえるのは誰に?主語はなんですか?既定ではってどういう意味ですか。
テンプレの文章を作れるまでには、まだまだ日本語のお勉強が必要と思われます。
もっとひどくなったw
>>504 「競争するな」ってどこに書いているのですか?創作はやめてね。
>>508 いや、それ・・・お前が概要を理解していないという、お前の頭の悪さを
露呈している気がするんだが?口を出す奴ほど、自分の勘違いや
思い違いを理解していないよなw だから笑われるんだよ、
よく言うだろ、思ったことを言う奴はよく誤解されると。
所詮お前も他人も、この世の一人に過ぎない。思想に関しても
十人十色。お前が理解できない=間違い、頭の悪いという解釈が
既に自分の主観や思想、他社を侮辱する気のあっての言動だと気づいた方が
身のためだよ。もっとも、こんなスレで馬鹿を露呈しているようじゃ
とっくに孤立して干されているようだがw
>>513 それ曲解。「するな」ではなく、そういう意図のあるスレとは
>>1 には書いてないんだが?w
自分勝手な思い込みや妄想はやめてね。
この程度の宿題なら問題ないけど、bufをfreeする習慣はつけとけw
>>513 いや、さすがにお前の理解力のなさには脱帽だよ・・・
>>504 が勝手に競争するなって言っているように解釈するなんて。
もう一度読み直せ。国語力なさ過ぎ。
そこに挙げられたことをするのが目的のスレではないよ。
宿題に答えるんであって、他の回答者のソースを批判したり
自分の方が出来ているだの、自分のをコピーしただろといった
探りを入れるスレではありませんので、キモイので他者を罵倒するのはやめて下さい。
あまりにも酷い侮辱、罵倒レスをしている場合は、しかるべき場所に通報しますので、
あしからずご了承下さい。
一番他人を罵倒してるのはお前w
>>489 ふるぼっこにされたから消したの?かわいそーす
さてここで問題です。
>>511 のソースで*num_endはいくつでしょう?
0だと思ったあなた。
C言語からはすっぱり足を洗いましょうw
>>519 オマエは何に向かって話しかけてるんだ?
>>517 これ、長文でヒイヒイ言ってるのは同一人物ってこと?
まさか、このスレの回答者が親切で回答してるとでも思ってるのか・・・?
>>508 んじゃ、お前は文字列をどのように演算するんだよ?
まさか、文字列同士の加算、減算?
>>516 言うと思ったが、それじゃどのように文字列をmainに返すの?
freeにしたら・・・ねぇ?retrun の前に free ですか?それとも後に?
それから、関数って呼び出しが終わったらどうなる?
だから、いちいち批判するのはやめとけっていっているんだよ。
批判があるくらいなら、何が正しいか、ソースで示してみろよ、な?
出来もしない奴ほど、発言すればするほどそいつ自身が
出来ないことを露呈するからこそこそ批判しか出来ないんだろ。
是正するならソースで示せよ、な?
>>510 回答者のコードが、質問者の質問者に提出されるわけですが、
要するにそれを見てもらえないということですね。
わかりまつ?
>>495 指摘無しでそれは卑怯。
>>496 意味不明。低俗なレスをしているあんたの方がどうかと。
>>523 >関数って呼び出しが終わったらどうなる?
関数抜けたらbufが開放されると思ってるんなら死んだほうがいいw
>>520 sizeof("123456789")は幾つよ?
おっ、釣り餌をつけておいたが、わざわざ突っ込む 釣り糸に食いついちゃう、自己主張の強い奴が釣れた?釣れた? キショースだから、その意味が分からない時点でダメだろw 麻呂叩きのような流れに飲み込まれたお前らワロスw
>>524 無理だろ。他人とコミュニケーション取れる奴の文章じゃねーよ。ありえねーよ。
2chじゃ後釣り宣言=敗北宣言なんだがw
>>511 ふるぼっこにされたから消したの?かわいそーす
>>529 敗北宣言ってことは、
ひょっとして、本当に文字列リテラルが何かも知らなかったのか?
>>530 その他人との間でのコミュニケーションを取るのに使用するは本質的に難しい
C言語のコードを、質問者は、その質問者(出題者)に提出するわけで
期限間際に出されても、恐らく提出出来ないし、それなりに理解して
通常のコミュニケーション可能な言語で、補足しなければ、出題者は
読んでくれないという意味だけど。わかるよね?
何だ何だおまいら、こうも簡単に餌に食いつかれちゃうと お夕飯を考える主婦のように、次の餌を考えるのに困ってしまうわ ってなってまうやろがっー!(やっくん風に) もちっと、クマーが釣り針をじぃ〜〜っと見ているAAのように おまいらも慎重になれよw
スレと関係ないんだけどさ、俺「釣り」とか「釣り師」っていうのは、 釣り師 ↓ /| ←竿 ○ / | . (Vヽ/ | <> | ゙'゙":"''"''':'';;':,':;.:.,.,__|_________ | 餌(疑似餌)→.§ >゚++< 〜 の組み合わせだと思ってたんだけど、 最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか 言ってるの多いよね。 これは、どっちかというと、 ,〜〜〜〜〜〜 、 |\ ( 釣れたよ〜・・・) | \ `〜〜〜v〜〜〜´ し \ ゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ト>゚++< ノ) かと思うんだけど、どうよ?
釣りってことにしないとプライド保てないかわいそうなヤツなんだから、あんまりいじめるなよw (彼にとっては)難しい問題がたくさんで、ようやくなんとか解ける問題をみつけておおはしゃぎなんだから。
>>539 オマエ、どれが誰だか分からなくなってね?
>>517 > 他の回答者のソースを批判したり自分の方が出来ているだの、自分のをコピーしただろといった探りを入れるスレではありませんので、
そんなスレでない、ってどこに書いてあるのですか?
批判される場であってこそ、いいソースが完成されていく可能性が生じると思います。世はは競争の時代、自ら批判対象になるくらいの甲斐性が必要でしょう?
そもそも、匿名の場ですら批判を恐れるなんて、昔の商用BBS や実名で投稿していた net.news の世代からみると、笑止というほかはないのですが。
批判があたっているか外れているかは、第三者が冷静に判断してくれますよ。
そろそろ「ゆとり思考」から卒業してくださいね。
>キモイので他者を罵倒するのはやめて下さい。
キモい?ってどういう意味ですか?
そろそろ「C/C++のソースを品評するスレ」でも建ててそっちでやれ
>>540 はしゃいでるのは麻呂=長文だろ、十分把握してるからw
どこが良くないのかを指摘するならいいけど、 馬鹿にするだけのレスってのもねえ まあそれだけで発狂されても困るけど
>>534 そういうことならば、宿題提出側は自分の能力と相談して自分で期限を決めてテンプレートに書けばいいのではないでしょうか。
宿題回答側が、記述された期限からさらにサバを読んで回答してあげる必要はまったくないと思います。
>>544 麻呂、って批判されるとすぐにソースを消しますね。
EOF から少しは成長してくれたかな?っと期待をしていたのですけれども。
>>545 自分のソースがバカなものだったらバカにされても当然と受け止めるけどな。
反省して次から気をつけりゃいいんだし。
>>547 前から見てるけど、成長はしてないなw
素直に他人の指摘を受け入れられないヤツは成長も遅いよ。
>>545 ばかにされたくらいで発狂しなくともいいでしょうに。
第三者を信頼することをそろそろ覚えてもいいと思います。
>>547 EOFから成長していないのはお前だろ・・・
あの議論で、何が論点が分かってなかったゆとりw
>>534 質問者が努力を怠ってグダグダになればそれでよい訳で、
別にそれで見透かされて減点されようが、
提出できなくて減点されようが、本質的な目的は達成されるワケじゃね?
お、話題をそらす格好の獲物を見つけてさっそく食いついたw
あぁEOFなんて話に持ち出したお前はあれか、捻くれものの屁理屈野郎w あの時の議論は、getchar()の部分で”EOFを入力した後の動作”が問題であって お前はあの後必死に、EOFが入力できないだの、別のライブラリの返す値がどうとか わけわからねー話を始めたズレた野郎w
>>554 おっ、なんかまたここに馬鹿発見w
いいよいいよー、一人相撲してなさい、
ここで見えない敵と一生戦ってなさい、ね?w
このスレにお前より馬鹿なのはいないからw 宿題丸投げするのにテンプレもろくに使えないやつら未満だよ、お前は
おいっ、EOF野郎、悔しかったらキーボードを使ってEOFを入力してみろやぁw ファイルの終わりを意味するのに使われているものもあるんで ファイルの入力でも良いよーんwwwww さぁ、EOF入力をやってみたまえ、気持ち良いから、な?
バカにエサを与えるなw
はいはい、まぁ、落ち着いて鏡を見ろや、な?なんかオモロー!な顔が映ってるやろ? 誰やそれ?ピッツァーにメガネなんてかけやがって、このっ! 鏡の前にまでピザを持ち込まなくて良いから、落ち着け、な?
さっきまで散々ボコボコにされた鬱憤がたまってるから激しいなw
>>557 自分が一番馬鹿だと気づいてくれ。スレタイも読めないお前が。
何でこうも構ってちゃんが多いんだよ、このスレは?
しかも目立ちたがり屋でうざってぇ。言いたいことがあるのは分かるが
ソースで示せ、な?結果が出せない奴が何を言っても無駄、それが
人間社会。引きこもってねーで、まともに社会で活動してみろよ。
こんな統率もとれてない場所で、自分以下の人間を探して何が楽しいんだ?
ツマンネー人生だな、お前。人間性も。
>>558 ^D (Linux)
^Z (MS-DOS)
MS-DOSの場合はcopy con file.txtで標準入力の内容をファイルに書き出せるが、
その終端を意味するのが^Zとなります。
>>561 いいじゃないですか、おもしろいし。
>>17 のような面白い宿題はないですかね。
【質問テンプレ】 [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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない、使用できる ヘッダファイルetc) ※ここで得られるのはコードだけです。理解してもいないコードをそのまま提出して発生した トラブルや損害に関しては一切質問者の責任とさせて頂きます。回答者の回答をうのみにせず、 自分でもコードをチェックすることを強くおすすめします。宿題提出期限を回答期限とはしな いで下さい。 ※回答者も質問者が問題を訂正する可能性を考慮し、性急な回答は謹んで下さい。質問者が再度 請求してから回答を上げても遅くはありません。 ※質問者は、質問をあげてから、再度請求して回答が得られなかった場合は、あきらめて下さい。
「ローダー」は無いだろ
単なる約分問題に面白いも何もないと思うが。
>>569 でもLL(1)文法解析・式評価がこっそり隠れているところがさりげなく高級じゃないでしょうか。
>>567 >※専門/上級/中級/初級かを自分たちの受けている講座の水準を考慮して書いて下さるとうれしいです)
あまり期待していませんので、特に書かなくともいいかと。
> ※ローダーへのリンクの場合でも問題内容を一言書いて下さい。
みればわかります。べつに一言書く必要は無いと思います。
> [3.1] OS: (Windows/Linux/等々)[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
ここは強化したいところです。
>[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
ここも必ず書いてほしいですよね。
>※ここで得られるのはコードだけです。理解してもいないコードをそのまま提出して発生したトラブルや損害に関しては〜(以下略)
不要です。
>※回答者も質問者が問題を訂正する可能性を考慮し、性急な回答は謹んで下さい。
嫌です。勝手にさせてもらいます。
>※質問者は、質問をあげてから、再度請求して回答が得られなかった場合は、あきらめて下さい。
なんでまあ、こうも手取り足取り、おせっかいな説明文を付け加えたがるのですかね?最近の学校の風潮ですか?
>>461 >>478 ↑こいつらだろ、キショース叩きを始めた暇人共は。
どちらが読みやすいか、一目瞭然だったもんな。
所詮そんなもん、ここでの批判は他の回答者の妬みと捉えて
まず間違いない。多少問題点があったとしても、直せば済むことだし
最初にあった批判は明らかに指摘した奴の勘違い。
atoi無しでどうやって四則演算に持ち込むつもりかね?
573 :
461 :2008/07/19(土) 16:23:56
>>572 その騒動の時いなかったんでなんのことか良く分からないんだが・・・・・・
顔真っ赤みたいだけど大丈夫?
>>572 >ここでの批判は他の回答者の妬みと捉えてまず間違いない。
この論法は共産党のそれですから、あまり真似しないほうがいいかと思います。
あのソースを妬むとかありえねーよw 憐れむのならありだけどな。
他人のソース批判をするくらいなら、自分がそれ以上のものを書いてみろ。 ただし、後出しだからコピペとか言われるのが怖いんだろ? 心のそこで燻っているものでも、対面しない相手も分からん場所だと 言いたい放題だもんな。釣り宣言=敗北とか言った奴こそ 釣られたことがくやしいのぅくやしいのうぅという動揺が露になってますよ。
批判が嫌なら消えろよチキン
【質問テンプレ】 [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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない、使用できる ヘッダファイルetc) ※ここで得られるのはコードだけです。理解してもいないコードをそのまま提出して発生した トラブルや損害に関しては一切質問者の責任とさせて頂きます。回答者の回答をうのみにせず、 自分でもコードをチェックすることを強くおすすめします。宿題提出期限を回答期限とはしな いで下さい。 ※回答者も質問者が問題を訂正する可能性を考慮し、性急な回答は謹んで下さい。質問者が再度 請求してから回答を上げても遅くはありません。 ※質問者は、質問をあげてから、再度請求して回答が得られなかった場合は、あきらめて下さい。
長文連投以上に必死さを示す方法は、寡聞にして知らんのだが。 何をもって彼は他人を必死だと決め付けてるんだろう?
581 :
461 :2008/07/19(土) 16:53:26
>>580 自分がこんなに必死なんだから、相手はもっと必死なんだろうという妄想じゃね?
>>577 批判するのに他のコードをだす必要性なんて無いだろ
他人のソースにケチをつけるだけで、一部だけそこはダメみたいな 四の五の言うくらいなら、自分が求める結果の出せるソースを提示しろよ。 口先だけの卑怯者ほど女々しいものはない。
教師でも親でもないのに、どこがダメなのか批判してくれるなんてありがたいことだと思うがなあ。 大抵の批判はちゃんとしたものだし、それを素直に受け入れれば自分のためになるのに。 根拠もなく自分が上だと思い込んじゃえば、それ以上の成長はないだろうに。
>>478 > if(k==i) continue;
あぁ、あいつか。お前好きだな、コンチニューw
見えない相手と戦い始めたw
ここで口うるさい批判厨は所詮口先だけで、自分こそまともな 結果を出すコードが書けない、過去に世話になった程度の傍観者。 口を出す前にソースで示せ、出来ないならROMってろ。
批判 → 多数
それ以上のコード →
>>461 ,478
ほら、ソースもあるよ。
>>461 ,478の粗探しでもして批判しなよ
クソース書いてふるぼっこにされたあげく涙目でソースを消すのは、ソースを示したことになりますか?
ここまでテンプレ、以下俺の自演
592 :
461 :2008/07/19(土) 17:06:39
いい加減、見えない敵と戦うのやめてほしーなー 回線切ってチラシの裏にでも書いてれば
ねぇねぇ、口先だけのあんたら、論より証拠って知ってる?知らない? 自分が出来もしないのに批判してて恥ずかしくない? 出来るならソースで示そうよ、ほらみんなでコード書こう♪
>>590 こんどソースをあげたら、魚拓をとっておきましょうか。たのしみですねえ。
>>593 多いとはいいませんが、結構かいたつもりです。(学校の先生方には恨まれているかもしれません。)
>>402 とか。(って書いたら、いろいろ批判していただけるでしょうね。お願いします。)
魚拓 `````{;0`nruter;(666)munkcehc;(005)munkcehc;(054)munkcehc;(444)munkcehc;(001)munkcehc}()niam`tni `````````````````````````````````````````````````````````````````````````````````````{ ```````````````````````````````````````````````````````````````````````````````````{ ``````````````````````````````````````````````````{;((2fub)A,2fub,"n¥d%s%")ftnirp`}`(m`==`s)fi ````````````````````````````````````````````````````````````````````;(2fub)A=s;(2fub)emof ``````````````````````````;'-'=[1+2*2c]2fub`;'-'=[1+2*1c]2fub`;'+'=[1+2*0c]2fub`;(fub,2fub)ypcrts ```````````````````````````````````;eunitnoc`(2c<1c`||`2c`==`0c`||`2c`==`1c`||`1c`==`0c)fi ``````````````````````````````;70x0`&`(6>>n)`=`2c,70x0`&`(3>>n)`=`1c,70x0`&`n`=`0c`rahc ``````````````````````````````````````````````````````````````````}(++n;8*8*8<n;0=n)rof ````````````````````````````````````````````;[02]2fub,"=9`8`7`6`5`4`3`2`1"=[02]`fub`rahc ``````````````````````````````````````````````````````````````````````````````;s,n`tni ```````````````````````````````````````````````````````````````}(m`gnol)munkcehc`diov ```````````````````````````````````````````````````````````````````````````````{ ````````````````````````````````````````````````````{{;b*`=`(s++)*}('`'`=!`b*)fi}(++b*)elihw ```````````````````````````````````````````;(s,fub)ypcrts;s=b*,[02]fub`rahc}(s*`rahc)emof`diov
597 :
461 :2008/07/19(土) 17:12:45
>>596 えーっと・・・魚拓もしらんのですか……
gdgd言ってねーで、誰か
>>362 をやってやれYO!
>>585 もっというと、※のついている行は全部いらないですよね。
601 :
461 :2008/07/19(土) 17:30:26
>>599 まあそれにこれ数学の宿題みたいなもんなんで、めんどくさい。
>>598 の解答に期待www
>>599 私にはできないので他の方に期待します。
(って素直に書けばすむ話だと思うのですが。)
私にはできないので他の方に期待します。
604 :
デフォルトの名無しさん :2008/07/19(土) 17:37:06
[1] 授業単元: ファイルの入出力 [2] 問題文(含コード&リンク): ファイル名をキーボードから入力して、ファイルを読み込む。 そのファイルには、任意の個数の数値(整数)がテキストで書かれており、それらの数値について以下の処理を行え、ファイルの最後には0が書かれいるので、 これにより読み込みを中断せよ。ただし、この0は計算や読み込んだ数値の個数には含めないものとする。 平均の結果は、浮動小数点表示とせよ (小数点以下1桁以上表示すること(つまり整数は不可)。小数点以下2桁目以下は、切り捨て、四捨五入、切り上げなど行ってもよい) 処理内容 1数値の個数を表示する 2すべての数値の合計と平均を計算し表示する 3奇数個目の数値について合計と平均を計算し表示する 4偶数個目の数値について合計と平均を計算し表示する 条件 ファイルからの数値の読み込みはfscanfをりようする 例 fscanf(fp,"%d",&data) データファイルはtxt形式 [3] 環境 [3.1] OS: Windows xp [3.2] すいませんよくわかりません。 [3.3] 言語: C++ [4] 期限: 2008年07月20日17:00まで [5] その他の制限: C言語の入門しか習っていないのでなるべく簡単でシンプルなものでお願いしたいです。 visual studio 2003を使っています。 よろしくおねがいします
605 :
362 :2008/07/19(土) 17:39:49
606 :
461 :2008/07/19(土) 17:42:16
>>605 私にはできないので他の方に期待しますwww
607 :
362 :2008/07/19(土) 17:45:19
CGっていってもグラフィカルに表示してくれってわけじゃなくて座標を出力してくれればいいみたいです
私にもできないので他の方に期待します。
609 :
461 :2008/07/19(土) 17:46:46
>>607 >>1 参考
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
610 :
362 :2008/07/19(土) 17:48:18
611 :
602 :2008/07/19(土) 17:48:39
>>606 そりゃ攻撃対象がちがうんじゃないでしょうか。かわいそうですよ。
612 :
461 :2008/07/19(土) 17:48:42
宿題を手伝うってことは、宿題もできないやつの単位取りを手伝うってことに通ずる。 そういうやつは、宿題もできないのに無事に卒業してきて、あとになって周りに迷惑を振りまく。 我々のやっていることは情報化社会全体に体する悪なのではないだろうか。 いや、そうではないと思いたい。
言いたいことは分かるが、まぁ落ち着いて、そんなことを疑問に思う前に
>>1 とスレタイ読め、な?
615 :
461 :2008/07/19(土) 18:02:24
>>611 ほいほい
>>610 入力
・走査平面を表わす(a,b,c)
・視点を表わす(ex,ey,ez)
・ポリゴン座標を表わす(x1,y1,z1),(x2,y2,z2),(x3,y3,z3)
出力
・スキャンラインセグメント上での交点
・スキャンライン上での距離
ってところか。
>>615 それだと、スキャンラインの始点終点が分からないのでは?
とりあえずお前ら全員邪魔 他所でやれ
このスレって for(i = 0; i < 1000; i++){/* レスは1000まで */ printf("クソースだしてんじゃねえよ"); printf("自分でソース出さずに文句ばかり言ってんじゃねえよ"); } いつもこんな感じなの? あほらし
>>620 クソソースをスルーしてもらえると、なにかありがたいのか?
流れが戻ったと思ったら変な奴がまた1人
みんな変だよ、自分では自分を変だと思いたくないだけであって 実は他人から見ると自分こそ変だと思われているんだが 現実世界ではそれを言うと、互いに罵倒の応酬になるから言わないだけであって 利益にもならん役立たずや、利害のある奴はとことん弾圧されているのが現状。 所詮この世は地位と財力こそすべて。プギャーな顔をしていても 金がありゃなんとかなるし、批判する奴は金持ちに対する妬みとしか思われないが 貧乏でもイケメソだと妬まれるのがなんとも。まぁ、落ち着いて鏡を見ようぜ? それがあんたが親から受け継いだ一番の財産、DNAだ。
>>613 私は、人のソースを読んでかなり衝撃をうけたことがあり、今も感動することが多々あります。
>>167 など。
いろいろな御託を並べられるより、ソースを見せていただくほうがどれだけ勉強になることか。
ここにお題を書く人の 1000 人に一人でもいいから、そのような経験をお持ちになったらいいなと思います。
いえ、べつに自分が楽しめればそれでいいんですけど。
>>596 (魚拓)
>>461 流れ無視して、、、
解答:`をSpaceに、上下反転、左右反転、(と)反転、[と]反転、{と}反転。
627 :
461 :2008/07/19(土) 18:21:42
>>620 1人のときは1週間くらいで消えるけど、
2人以上だと相乗効果で1ヶ月以上猛威をふるう
問題文が間違っているか、写し間違えているということもありえるという 前提には立ったほうがいいみたいだ
634 :
461 :2008/07/19(土) 18:55:38
>>610 めんどくなった。とりあえずポリゴンと走査平面の3次元空間上の交点算出のみ。
#include <stdio.h>
#define min(x,y) (x<y?x:y)
#define max(x,y) (x>y?x:y)
double a,b,c,d; /* 走査平面 */
double x[3],y[3],z[3]; /* ポリゴン */
double Qx,Qy,Qz; /* 交点 */
void C(int p1,int p2){
double vx,vy,vz, L, k, Ex,Ey,Ez;
int n = 0;
vx = x[p2]-x[p1]; vy = y[p2]-y[p1]; vz = z[p2]-z[p1];
L = sqrt(vx*vx+vy*vy+vz*vz);
Ex = vx/L; Ey = vy/L; Ez = vz/L;
k = -(a * x[p1] + b * y[p1] + c* z[p1] + d) /
(a * Ex + b * Ey + c * Ez);
Qx = x[p1] + k * Ex; Qy = y[p1] + k * Ey; Qz = z[p1] + k * Ez;
if(Qx <= min(x[p1],x[p2]) || Qx >= max(x[p1],x[p2]) ) n=1;
if(Qy <= min(y[p1],y[p2]) || Qy >= max(y[p1],y[p2]) ) n=1;
if(Qz <= min(z[p1],z[p2]) || Qz >= max(z[p1],z[p2]) ) n=1;
if(n==1) Qx = Qy = Qz = 100000.0; /* 交点なし*/
}
int main(){
a = 2.0; b = 4.0; c = -3.0; d=3.0;
x[0] = 1.0; y[0] = 2.0; z[0] = -2.0;
x[1] = 3.0; y[1] =-2.0; z[1] = 1.0;
x[2] = 5.0; y[2] = 3.0; z[2] = 3.0;
C(0,1); printf("0,1 - %6.3lf,%6.3lf,%6.3lf \n",Qx,Qy,Qz);
C(1,2); printf("1,2 - %6.3lf,%6.3lf,%6.3lf \n",Qx,Qy,Qz);
C(2,0); printf("2,0 - %6.3lf,%6.3lf,%6.3lf \n",Qx,Qy,Qz);
return 0;
}
なんか久々にここ覗いたけど昔と雰囲気変わってるな・・・悪い意味で。
質問者の実力を無視したコードを質問者が提出し、 出題者が影響を受けていったことのツケだな
637 :
461 :2008/07/19(土) 19:12:43
>>635 バカが湧くようになったんで(´;ω;`)
>>636 質問者の実力を無視した問題を出題者が提示し、質問者がここに書くことによって、出題者が勝手に影響を受けてしまったわけですね。
>>635 strdup() の返り値をfree() しなくてもいい、と主張する輩が湧きましたが、それよりはましだと思います。
>>638 > 質問者の実力を無視した問題を出題者が提示し、質問者がここに書くことによって、出題者が勝手に影響を受けてしまったわけですね。
訓練の為の課題だからな。
出来ないのに出来るフリすれば、ツケは自分に回ってくるさな。
>>639 といって、出来ない、といえばそれはそれで蹴落とされてしまい、なんのフォローもない、というありかたも問題でしょうね。
だから質問者の質問期限ぎりぎりに回答者は回答せず、即回答がデフォだな 質問跡1時間経過したら回答禁止 質問者が自分の実力に合ったコードに書き換える時間がなくなる。
>>641 それは質問者が自分と相談して自分で期限を決めて書き込めばいいだけのこと。
643 :
461 :2008/07/19(土) 19:34:28
>>641 こういうキモい規制とかルールとか押し付けるバカが湧いてくるようになったからなぁー……
>>640 蹴落とされない為の努力が不正ってなら、不正に応じた対応がなされるのは当たり前だろ。
>>644 はっきりいわせてもらうと、「問題が悪い」「出題者が馬鹿」ということですが、ご理解いただけましたでしょうか。
>>645 つまり質問者の質問には即答せず、問題が間違ってないか十分に検討してもらって
再請求されてから回答してあげればいいってことだな
↑のほうで、質問テンプレの改修版があげられてるし....
今となってはここは学校等の宿題が、「見かけは簡単だが実はとんでもない
難問」を出してないかチェックする機関みたいな役割してるからな
100%回答してやる必要は無いかもな
>>647 本当に問題が悪ければ、ここへ来て回答が付くわけ無い。
>>648 バカテンプレがどうだと言うんだ?
反対意見しか出てないだろ。
どこの参考サイトみてもポインタまでしか載ってねえな・・・ その先を知りたいんで誰かリンク張ってくれ
>>649 ん、問題の内容というよりは、フォロー体制に問題ないか?というお話です。たとえば
>>406 は、一部の意欲的な学習者に対しては極めて良問なのでしょうが、普通の学生に出題する内容としては疑問です。
(これが「授業単元:Cプログラミング」の内容でしょうか?)
つきつめて考えれば、今の「技術軽視・科学軽視」「人材育成軽視」「(主観)成果主義」な社会に問題があると思いますが、まあそれはそれ。
>>654 「問題が悪い」と言った舌の根も乾かないうちに「問題の内容でなく」か
バカはきりが無いな
657 :
461 :2008/07/19(土) 20:04:28
>>654 理論自身は情報系の基礎の基礎だと思うが?
実装するのは面倒だけどw
同情するなら〓をくれ。
>>654 このCプログラミングの単位だって、実習一コマに対して予習復習何時間ってのが決まってるだろ。
学生便覧か何かに規則が書いてあるよ。
普通の学生だって、ボンヤリ出席して単位を貰ってるわけじゃないだろ。
662 :
654 :2008/07/19(土) 20:50:58
まあ、専門にやるなら冒頭のシャノン・ファノくらいはしっておかなければならない、といわれればそれまでですね。
実装して身につくということもありますし。意欲的な人間には良問だとは思っています。
>>656 >>654 は
>>640 と矛盾していますでしょうか?
>>661 「2単位」のうち1単位分は自習分のカウントでしたっけ。
なんかもう宿題スレじゃないな
665 :
デフォルトの名無しさん :2008/07/19(土) 20:58:26
>>662 >>640 にしたって、「ゆとり教育」を履き違えたバカじゃないかぎり、無能だけど有能な人間とおなじ評価が受けられるなんて思わないだろ。
>>665 外部の人に最初に問題を発表するときは、問題文を書き換えてくれ
その問題をじかに解釈すると、あるファイルがUSBメモリにあるか否かまで
判定しなければならなくなってしまう。となると、とてもじゃないがここの
回答者の実力では無理。
質問テンプレでは、問題をそのまま書いてくれと書いているが
学校の教材を勝手にネットに公開することの是非に関しては実はグレーゾーン。
下手したら著作権法に引っかかるかも。社会通念上容認されているが、
その容認がいつ不寛容になるかは、不確定だぜ。
最終的には問題をすべてアップしてもらうことにはなるが、
最低限最初に質問する際には、自分なりに解釈したオリジナルな問題文を
アップしてくれ。どうもおかしいというのであれば、問題文をアップしてくれと
回答者が言ってくるだろう。そのときにアップしてやれ。
668 :
665 :2008/07/19(土) 21:19:53
<<667 これでも一応、もとの問題文に拡張する例題入れたりとか文章いじった方なんですが。。 まるきりコピペではないので、あとは自分が分かるように書けということでしょうか?
[1] Cプログラミング基礎 [2] 1. 半角英数字1文字を入力し、 英小文字はそのまま、英大文字は2回、数字なら3回連続して表示するプログラムを作成せよ。 2. 半角英文字列を入力し、 英大文字なら英小文字に変換し、それ以外の文字はそのまま表示するプログラムを作成せよ。 [3] 環境 [3.1] Windows XP [3.2] VC++ 2003 [3.3] C++ [4] 7月22日 [5] コマンドプロンプトで動作確認を行う よろしくお願いします。
665はこのスレの慣例に従っただけだが、その慣例はおかしいと 667が指摘するのに665はダシに使われたという見方が 正しいだろう。 けど、667の言ってることにも一理あるような気がする。
>>667 >学校の教材を勝手にネットに公開することの是非に関しては実はグレーゾーン
根拠を教えてください。
他者が作成した教材を、「教材として使用するために」勝手に引用することに対しては問題でしょうが、課題を単に引き写すことは著作権侵害に抵触するのでしょうか。
> あるファイルがUSBメモリにあるか否かまで判定しなければならなくなってしまう。
それは無理のある解釈かと。単に課題として meibo.txt がわたされている、という意味ではないのでしょうか。
>>665
>>646 頑張ったけど、求まりませんでした。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
long n = 0;
cin >> n;
n = (long)1000000;
double ans;
double i = 1;
while(i < n)
{
if ((i * i) > n)
{
ans = i;
break;
}
i+=0.00001;
}
cout << setprecision(5) << ans << "\t" << ans * ans;
return 0;
}
675 :
665 :2008/07/19(土) 21:48:36
<<672の言うとおり。 ファイルがUSBメモリにあるか否かまで判定はしなくともよいです。。 ただ単に問題文(プログラム中)のchar filename[]="C:\\temp\\sample.txt"; の部分をchar filename[]="C:\\temp\\meibo.txt";に変えるだけでいいと書くべきでしたね。。 すいません<m(__)m>
>>667 当人が理解できていないからここにまる投げしてるのに、問題文をいじられたらたまらんだろ。アホ。
まる受けするんだったら、質問者に再質問するのはやめれ それではまる受けとは言わない。 まる受けをするんだったら、665の問題を解くのにちゃんと ファイルがUSBメモリにあるかどうかを判定して、無い場合 には処理をしないものを書くのが筋というもんぢゃないかなw?
んだんだ。
>>646 long long が使える環境ならこれでGO!
#include <iostream>
using namespace std;
int main(){
long long n = 0,m = 0;
cin >> n;
n *= 100000000;
long long i = 1;
while(i < n){
if ((i * i) > n){
m = i - 1;
break;
}
i++;
}
float ans = (float)m / 10000;
cout << ans << "\t" << ans * ans;
return 0;
}
683 :
デフォルトの名無しさん :2008/07/19(土) 22:09:44
>>677 ん?だから
>>655 のリンク先をそのように解釈するのは、無理があるといっているのですが。
できないとはいいませんが。
どうしてそのように決め付けられるのかな?
>>683 問題文:「三角形に一点が内包される場合もある」?????
凹型の図形かどうかを判別する方法は存在するのでしょうか‥‥‥。
>>682 >100点満点で50点取ったんで、二単位中一単位くださいって言ってるようなもの。
いっていませんし、いっているようなものと、といわれても困りますが。
>>682 に「部分単位」を認めよ、というような趣旨が書かれていますか?
689 :
683 :2008/07/19(土) 22:39:12
>>686 そのような場合は一点を囲んでいる外側の三角形の面積を出せればよいと言われたのですが・・・
質問の答えになってないですかね??(汗
691 :
683 :2008/07/19(土) 22:59:33
偶然取った4点中3点の外側にある点がある場合でも、 4点全体が三角形を為す場合がある 従って外側にある==>四角形全体の面積を求めれば良い という問題のヒント?は短絡
凹四角形ならへこむ最後の一点を無視か
とりあえず方針だけ。 4点ABCDが凹多角形かを調べるには、 たとえばA点がBCDの内部にあるかどうかを判定する場合 三つの内積 BA・BC、CA・CD、DA・DB の正負が一致しているかを見る。 一致していればAは内部にある。これをB,C,Dにも同様にやれば凹多角形か判定できるはず。 ヘロンの公式をコーディングする場合 sqrt((s*(s-a)*(s-b)*(s-c))をsqrt(2αβ+2βγ+2γα-α^2-β^2-γ^2)/4 (ただしα=a^2 β=b^2 γ=c^2) とすれば αβγは普通にピタゴラスの定理で出るし 誤差とかも少ないかと
>>696 あんまり難しいことわからないが、
1.4点のうち3点を選んで面積を求める。
2.1を全パターン試す
3.全パターンの面積の和が求める面積の2倍になる
間違ってる?
すいません・・・ 何だか、騒動を起こしてしまっているようで 本当に申し訳ありません。 あの、どなたかお願いできませんでしょうか? どうか、宜しくお願いします。
あと30分でTopCoderも始まるし、 終わったら疲れて寝てしまうな。
>>700 へこんでいたら3角形の面積求めればいいんでしょ?
問題ない気がするんだけど
>>702 ああ、
>>694 見ると、「最後の」って言ってるのは質問者で、
与えられる順は関係無いのか...
705 :
683 :2008/07/20(日) 01:04:07
>>700 それですね!
>>703 すみません図の説明が紛らわしかったですかね.例のつもりだったのですが(汗
あとはプログラムなのですが、座標を構造体にして3辺の長さを出すというのはなんとなくわかるのですが,
3辺の長さと面積を構造体として扱うというのがどうやるのかがわからなくて……どなたか例示していただけませんか??
すみませんド素人な内容でm(_ _;)m
706 :
683 :2008/07/20(日) 01:06:10
>>704 今は9を出力する前に改行している。
9を出力した後に改行すれば良いだけ。
何言ってんだ、
>>698 じゃダメだぞ
大きな三角形二つを選ぶと、点abcdが以下のようにある場合、
a b
c d
三角形abcとabdの面積の和が返るぞ
この場合は四角形abcdの面積が必要だろ?
あと、
>>696 も違うぞ
内部にあるか判定するのは内積じゃなくて外積だ
712 :
683 :2008/07/20(日) 01:24:15
>>711 いや,698さんはたぶん
(abc+bcd+cda+dab)/2
のことを言っているんだと思います.
これならば1点が内側にある際は三角形,外側にある場合は四角形の面積が出せるかと.
>>711 ??
三角形acdとbcdも求めなきゃ。
4点から3点取るわけだから、4つの3角形の面積の和が、
求める面積の和の2倍になるんだよ。
714 :
704 :2008/07/20(日) 01:33:42
>>707 ありがとうございます
・・・つまりどうすればいいのでしょうか?
>>714 #include<stdio.h>
int main(void)
{
int i=0;
while(i<=99){
printf("%3d",i);
if( (i%10)==9 ) printf("\n");
i++;
}
return 0;
}
>>714 >>715 とこのコードどっちのほうが好き?
#include<stdio.h>
int main(void)
{
int i=0;
while(i<=99){
if( ((i+1)%10)==0 ) printf("¥n");
printf("%3d",i);
i++;
}
return 0;
}
>>713 OK,読み間違えてた
ダイビング土下座しながら吊ってくる
危うい発想だな
719 :
704 :2008/07/20(日) 01:49:59
>>440 >>452 を少しいじって
#include <stdio.h>
#include <stdlib.h>
int data [5] = {2,6,3,1,2};
int index[5] = {0,1,2,3,4};
int compfn(const void *_a, const void *_b)
{
return data[*((int *)_a)] - data[*((int *)_b)];
}
int main(){
int i;
qsort(index,5,sizeof(int),compfn);
printf("data[] = {");for(i=0;i<5;i++){ printf("%d ",data[i]); } printf("};\n");
printf("index[] = {"); for(i=0;i<5;i++){ printf("%d ",index[i]);} printf("};\n");
}
>>720 これがC言語的正解
コードの挿入は良いが、順序入れ替えはタブー
#include<stdio.h>
int main(void)
{
int i=1;
printf("%3d",0);
while(i<=100){
if( ( i%10==0) )printf("¥n");
if(i<=99)printf("%3d",i);
i++;
}
return 0;
}
>>489 void msort( int X[], int n, int Y[] ){
int n1 = n/2, n2 = n - n1;
if ( n == 1 ) {
Y[0] = X[0];return;
}
if ( n == 2 ) {
if ( X[0] > X[1] ) {
Y[1] = X[0];Y[0] = X[1];
} else {
Y[0] = X[0];Y[1] = X[1];
}
return;
}
msort( X, n1, Y );
msort( X + n1, n2, Y + n1 );
merge( Y, n1, Y + n1, n2, Y );
}
void merge( int Y1[], int n1, int Y2[], int n2, int Y[] ){
int i = j = 0;
int tmp[n1];
memcpy( tmp, Y1, n1 * sizeof ( int ) );
while ( i < n1 && j < n2 ) {
if ( tmp[i] <= Y2[j] ) {
Y[ i + j] = tmp[i];i++;
} else {
Y[i + j] = Y2[j];j++;
}
}
memcpy( Y + i + j, tmp + i, ( n1 - i ) * sizeof ( int ) );
}
724 :
646 :2008/07/20(日) 03:25:34
>>673 ありがとうございました。
>>679 long longでいけました。
ありがとうございました。
>>406 ?
>注意2 符号化方式は添付の課題 参考資料を参照
>>669 突っ込みどころ満載だけど。
#include <stdio.h>
int main() {
int b = 0;
int c = getc( stdin );
if ( '0' <= c && c <= '9' ) {
putc( c, stdout ); b++;
}
if ( b || ( 'A' <= c && c <= 'Z' ) ) {
putc( c, stdout ); b++;
}
if ( b || ( 'a' <= c && c <= 'z' ) ) {
putc( c, stdout );
}
return 0;
}
----
#include <stdio.h>
int main() {
int c = getc( stdin );
if ( '0' <= c && c <= '9' ) {
putc( c, stdout );
} else if ( 'A' <= c && c <= 'Z' ) {
putc( c - 'A' + 'a', stdout );
} else if ( 'a' <= c && c <= 'z' ) {
putc( c, stdout );
}
return 0;
}
727 :
604 :2008/07/20(日) 03:44:05
>>628 こちらでも正常に動きました。ありがとうございます。
>>632 鏡を見た?何が映ってた?まぁ、何が映っていようが、この世は所詮
金と権力が重要だから。政府与党の中核の方々や皇太子様を見てごらん。
406 です
>>725 様
レスが遅くなり申し訳ございませんでした。
シャノン・ファノ符号形式です。
すいません。ご迷惑おかけします。
どうか、よろしくお願いします。
>>714 遅くなったが、俺のを好きになれ、な?
#include<stdio.h>
int main(void) {
int i=0,ret=10;
while(i<=99){
printf("%3d",i);
if( i%ret==ret-1 ) printf("\n");
i++; }
return 0;
}
>>681 バカって言う奴がバカなんだー ってじっちゃんが言ってた
>>734 入力も出力も明確じゃないんでやらねーよwww
だから別にお前を指定して回答を依頼してるんじゃないから 自分がやるやらないの意思表示は要らないって言われてんだろ・・・ どこまで目立ちたがり屋なんだよ。回答しない奴の存在なんて いちいちアピールせんでよろしい、大人しくしとれ、構ってちゃんの暇人。
問題に不備があるならその指摘は良いとして、それ故に 自分はやりませんよなんて意思表示は確かに不要だ罠。
>>735 ん?ファイルがUSBメモリにあるかどうかの判定ルーチンできた?
ん?つまり
>>737 なんで問題なしってことだな。
問題として成立していない。
〜に問題があるからぁ、私はそれは嫌です あっそ、って言われるだろ。別にお前だけを相手に 何かをしているわけでもない人はいくらでもいるし。 しかし、自分の好みや主観とは別に、そこにある 何か問題点があるなら、客観的に誰でも納得するような 説明をしなきゃ、結局お前が単に問題視しているだけじゃん ってなる罠。口出しするだけ、周りから変に注目されんぞ、 あっ、目立ちたがり屋の構ってちゃんじゃそれくらいやるか、 あの大阪府知事に噛み付いた女みたくw
>>740 中身がないので3行でよろしく。
>>1 より
・問題文は、出題されたまま全文を書いてください。
シードフィルをスタックを使って表しなさい、としかないですが本当にこれが問題文全文なんですかねーw
皆、USBメモリにファイルがあるかないか判定できないから
やらないんだなw
サンプルプログラムが、正しい処理なのか、正しい処理だとして
それはスタックを使って行っているのか、スタックを使って
行っていないとすれば、これをスタックを使って行うように
書き換えられるか
こういうの、読み取れない?(俺はメンドイからやらんで
おまいらのコード読んでパクるだけだけどw)ちなみに
>>734 の名誉の為にいっておくが、俺は
>>734 ではない。
>>742 サンプルプログラムはスタックつかってるんだけどねw
USBメモリにファイルの件はしらんがなw
>>744 そりゃCの処理系出力コードでも今時スタック使ってないのは皆無だろ
>>438 ありがとうございます!!
心から感謝します
>>714 if(i%10==9)を、if(i%10==0)に変えれば直る。
後は最初の改行表示を消して、最後に改行表示を入れるだけ。
int main(void)
{
int i;
for(i=0; i<100; printf("%3d",i++))
if( i%10 == 0 )
if(i) printf("\n");
printf("\n");
}
意味合いが違ってくる。次が10で割り切れる値だったら改行するのか 9の後に改行するのかでは。まぁ、結果が出てりゃそれで良いがね。
>>731 は論外として
>>722 も正しい修正にはほど遠い。
#include<stdio.h>
int main(void){
int i=0;
while(i<=99){
if( (i!=1) && ((i-1)%10)==9 ) printf("¥n");// ' (i!=1) && (('と '-1)'を追加
printf("%3d",i);
i++;
}
printf("¥n");//�この行全体を追加
return 0;
}
文字削除だけで元に戻せることが重要
こういう気の狂った世界があるのが現実
>>754 お前基準がどうかと。論外の理由は?retの値を変えれば適当な場所で改行できるしw
>>754 >>731 の出来の良さに脱帽かw
分かりやすいな、ツンデレってのは。
可搬性を無視したコードこそ論外。
> 文字削除だけで元に戻せることが重要
意味不明。
> こういう気の狂った
お前の気が狂ってる
>>756 素人wwww ガキの宿題に対して玄人とか素人とかありえんwww
>>752 > 元に戻せる
こいつは何が言いたいんだ?戻すことに何か意味あるの?w
>>752 で批判されなかった
>>731 が一番出来が良いのか、なるほど。
後で指摘されて論外とか、自分が批判するをの見落としていたのを
逆手にとっても無駄だぞw
>>752 追加箇所を削除して元に戻せるということが基準になることの重要性って何?
指定した場所で改行できるようにするのが重要だし、なんでお前基準が
正しいみたいなことになってるの?あんたどこかの教授か?
もしそうなら名乗ってくれ。わけの分からん小物の雑魚が偉そうに
変な評価をしてんじゃねーって、他人から不満を持たれて当然だろ。
逆に、どこかの講師や教員だとしたら、どんな指導してんだお前のところは?
って思われるがな。
なんだよ、元に戻せるって。元がおかしかったら、おかしいものに戻すことは
むしろ重要でも何でもなくなるがな。
雑魚の教え
「レポートとかネットでコピペすればいいじゃんw」学生に急増「ネットでコピペ病」
http://namidame.2ch.net/test/read.cgi/news/1216524927/4 4 名前: 益力多(東京都)[] 投稿日:2008/07/20(日) 12:37:01.49 ID:Hn+XOctkP ?PLT(12038)
「大事なのは、学生への教育」
モラル低下が指摘される中で、コピペ発見ソフトの開発者も現れた。
金沢工大知的財産科学研究センター長の杉光一成教授は、このソフトを開発中で、2008年2月に特許を申請した。
学生のレポートを翻訳ソフトの技術で文節や単語に分解し、ネット検索で類似した文章があれば、そのURLを表示する仕組みだ。
ソフトでは、学生間のコピペも検出できるという。ソフトウエア会社から09年中に市販する予定。0
6年に学生2人のレポートがブログからのコピペと分かり、それを防ごうと開発を思いついた。
「教育現場では、困っていると言いづらかったので、ニーズが顕在化していませんでした。
しかし、2ちゃんねるで、ソフト開発に対し『日本全体の学生を敵に回した』とスレッドが次々に立ったように、それだけコピペが蔓延しているということです」
発見ソフトでは、米国最大手のアイパラダイムス社が開発した「turn it in」が、08年秋にも日本語サービスを始めるとも報じられている。
蔓延するコピペに、発見ソフトは決定打になるのか。
杉光教授は、「少なくとも安直にコピーする人がいなくなるのでは。それだけでも進歩」と話す。
ただ、「大事なのは、学生への教育」という。
前出の江頭教授は、コピペ発覚からレポートを止め、研究発表や討論、試験などに切り替えた。
また、学生を図書館に連れて行って、参考資料の調べ方などを教えたという。
「学生も自分で考えるようになり、卒論を書く研究手法を確立できるようになりました」。
発見ソフトは、「使わないかもしれません」としながらも、「学生を教育する一つの方法だと思います」と理解を示す。
金沢工大の杉光教授は、「専門家ならソフトがなくても見破るべきというのは、見当外れ。
他人の言葉を持ってくることを正当化できるわけもなく、コピペは悪いと教え、
自分で考えるように指導することも必要でしょう」と話している。
モラルの低下は家庭環境から正すべき
[1] Cプログラミング [2] 問題文: 2.以下の簡単版(nabea.c)を改良し、世界のナベアツプログラムを完成し、 ソースの下に40までの実行結果をキャプチャして貼り付けなさい。 /*世界のナベアツプログラム(nabea2.c)3の倍数か3が付くときアホになり、5の倍数のとき犬っぽくなる ただし、簡単版(nabea.c)では3の倍数のときだけアホになる*/ [3] 環境 [3.1] Windows [3.2] gcc [3.3] C [4]9日 /*ここを考える*/と/*簡単版では不要な関数*/に入る関数をお願いします。
>>767 問題文
#include <stdio.h>
#include <time.h>
void sleep( int millisec )
{
clock_t tick;
tick = (millisec * CLOCKS_PER_SEC) / 1000 + clock();
while( tick >= clock() );
}
int isAho( int n )
{
/* ここを考える */
}
int isInu( int n )
{
/* 簡単版では不要な関数 */
}
/*普通のとき :「 ○○ 」アホになるとき :「アホ!○○ 」犬っぽくなるとき:「 ○○ 犬」
アホで犬のとき :「アホ!○○ 犬」簡単版では、普通とアホのみ実現する*/
int main(int argc, char* argv[])
>>767 問題文の続き
{
int i, num;
printf("どこまで?");
scanf("%d", &num );
for( i = 1; i <= num; i++ )
{
sleep(1000);
if( isAho(i) )
printf("アホ!%3d \n", i );
else
printf(" %3d \n", i );
}
printf("おもろ〜い!\n");
return 0;
}
/* end of nabea.c */
771 :
デフォルトの名無しさん :2008/07/20(日) 15:58:28
[1] 授業単元: プログラミングT [2] 問題文(含コード&リンク): 年と月と日を数値でキーボードから入力し、それが一年のうちの何日目か(例1月1日なら1日目、2月1日なら32日目) を計算するプログラムを作れ ユーザーから終了の意図を入力をするまで何度でも計算できるようにせよ 終了の指示の仕方は計算後終了の意図をとい1なら続行0なら終了という形にせよ 以下に示すユーザー定義関数を作成してしようすること、また閏年の判定をし、適切に処理すること ただし 入力された月日が不適切ならばその箇所、例えば1)13月、2)32日や2月30日、うるう年以外の 2月29日などありえない月日の場合に1)なら月が2)なら日が間違っているということを指摘し再度入力を要求せよ 最低限実装しなければならないユーザー定義関数 閏年判定関数:年を引数として、閏年なら1、閏年でなければ0を戻り値として返す 標準的な月の日数を返す関数:月を引数としてその月の最大日数を整数で返す ただし この関数内部では配列により各月の日数を保持しておくこと 月日が適切かどうか判定する関数:月と日と閏年かどうかの3この入力から存在する月と日なら1 存在しなければ1以外をかえす 補足。閏年とは西暦年が4でわりきれる年のことだが例外があり400で割り切れる場合を除き 100で割り切れる場合は閏年ではない 2000年 4で割る○ 100で割る○ 400で割る○ うるう年○ 2008年 4で割る○ 100で割る× 400で割る× うるう年○ 2300年 4で割る○ 100で割る× 400で割る○ うるう年× [3] 環境 [3.1] OS: Windows xp [3.2] VC 6.0 [3.3] 言語: C++ [4] 期限: 2008年7月21日15:00まで [5] その他の制限: なるべくプログラミングTの内容でできる簡単なものでお願いします
おい!今TBS見てたら 番組タイトルが「Cの世界」だったぞ!!!
ぱくるなよは、誰に向けて? 少なくとも770はPAKUってないよ。
>>774 ぷっ、意味不明、自意識過剰w
誰もお前に言ってねーよw
777 :
771 :2008/07/20(日) 17:41:28
>>777 あっ、最低限定義する関数が足りなくて、再度入力を促す部分が
不十分だったから書き直したが・・・遅かったか、すまそ。
780 :
デフォルトの名無しさん :2008/07/20(日) 19:57:14
1] プログラミング演習 [2] 問題文: 実数を入力する。 その実数が整数値になるのに0.3以上±しなければいけない場合はnoを表示し そうでないときはyesを表示するプログラムを作りなさい。 例えば55.6が入力されたときはno 20.1が入力されたときはyesである。 [3] 環境 [3.1] Windows [3.2] VS2008 [3.3] C [4]明日 お願いします
#include <stdio.h> int main(){ double f; int n; scanf("%f",&f); n=(int)f; f=f-n; if( f<0.3 || f>0.7 ) printf("yes\n"); else printf("no\n"); return 0; }
782 :
デフォルトの名無しさん :2008/07/20(日) 22:13:00
783 :
683 :2008/07/20(日) 23:20:02
784 :
デフォルトの名無しさん :2008/07/20(日) 23:30:33
参照図が既にリンク切れ?
790 :
デフォルトの名無しさん :2008/07/21(月) 01:20:53
[1] 授業単元:プログラミング演習 [2] 問題文: 英文字の複数行から構成されるテキストファイルがあり、このファイルの中の行を、含まれる文字数が少ない順に上からソートした後、別の名前のファイルで出力するプログラムを作れ。 ただし、元のテキストファイルと出力先のファイルの名前はいずれもコマンドラインで指定するようにすること。 すなわち、このプログラムの実行形式をsortとし、元のテキストファイルをfile1.txt、出力後のテキストファイルをfile2.txtとするとき、コマンドプロンプトに続いて、 >sort file1.txt file2.txt とすることで実行する。 [3] 環境 [3.1] Windouws [3.2] gcc [3.3] C [4] 期限: 7月23日
よろしくお願いします。 [1] 授業単元:C言語入門 [2] 問題文:電卓プログラムを作成してください。 演算子は*/+-で入力してもらいましょう。入力は整数のみとして、 演算結果の小数点は切り捨ててください。整数型はintで宣言を行い、 入力時、演算後のオーバーフローは考慮しなくて良いこととします。 仕様は以下の例題から考察してください。 例) 整数入力…2 演算子入力…1 1は入力エラー 演算子入力…* 整数入力…5 処理結果…10(2×5) 演算子入力…/ 整数入力…2 処理結果…5(10÷2) 演算子入力…E 終了します [3] 環境 [3.1] OS: Windowsxp [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語:C [4] 期限:7月22日まで [5] 制限:標準関数は使用しない
793 :
777 :2008/07/21(月) 02:06:23
>>779 いま確認させてもらいました。後者のほうを使用させていただきます
ありがとうございました
794 :
774 :2008/07/21(月) 02:43:57
>>767 int isAho( int n )
{
/* ここを考える */
return (n%3 == 0);
}
int isInu( int n )
{
/* 簡単版では不要な関数 */
return (n%5 == 0);
}
>>4 07/15 13:00 線形リスト
>>50 07/17 00:00 減衰振動
>>179 --/-- --:-- 2文木->配列
>>207 --/-- --:-- 微分方程式の解析解
>>234 --/-- --:-- 微分方程式:ルンゲクッタ法
>>362 07/18 --:-- GC/立体幾何/空間上の三角形と平面とが作る線分
>>383 07/18 06:30 static変数の抽出
>>406 07/19 23:59 シャノンファノ符号
>>440 07/19 --:-- ソーティング亜種 :
>>452 ,
>>481 ,
>>721 >>476 07/23 24:00 偏微分方程式/ポテンシャル
>>782 07/22 --:-- ファイルロック
>>788 08/01? --:-- bmp形式/前景画像と背景画像を ratio : 1-ratio で合成する
>>790 07/23 --:-- このファイルの中の行を、含まれる文字数が少ない順に上からソートした後、別の名前のファイルで出力
>>791 07/21 24:00 固有値・固有ベクトル
>>792 07/22 --:-- 電卓
>>791 授業単元(専門/上級)、トリップ
C言語的には未初期化自動変数は内容が不定という感想だけ
#include <stdio.h> int main(){ int i, n; char c; while(1){ printf("整数入力 "); scanf("%d", &i); printf("演算子入力 "); scanf("%c", &c); if(c=='E') return 0; printf("整数入力 "); scanf("%d", &n); switch(c){ case '*': printf("%d(%d×%d)\n", i*n, i, n); break; case '/': printf("%d(%d÷%d)\n", i/n, i, n); break; case '+': printf("%d(%d+%d)\n", i+n, i, n); break; case '-': printf("%d(%d-%d)\n", i-n, i, n); break; default: printf("入力エラー\n"); } } }
>>782 #include <stdio.h>
#include <windows.h>
int main()
{
FILE *fp;
fp = fopen("_LOCK", "r");
if(fp == NULL)
{
fp = fopen("_LOCK", "w");
fwrite("LOCK FILE", 9, 1, fp);
fclose(fp);
Sleep(30*1000);
remove("_LOCK");
printf("終了しますた。");
}
else
{
printf("ロックファイルがあります。");
fclose(fp);
}
return 0;
}
っつかさ、何で俺ら現代に生きてるん?何で俺ら、ここで 単位取得がやばい奴らの手助けをしてるん?まぁ、中には どんな課題が出て、どんな回答が得られるか楽しみにしている人も おるんやろうけど。何で自分が自分って、何で自分がこの世に存在しているって 何でこの世の中が存在しているって気づいて、知ることが出来るん? 人の脳ほど分からないものはない。数値計算よりもある意味無限の可能性を秘めている。 0^0(0の0乗)が何なのか、過去にこのスレで議論したよりも奥深いなぞが・・・・
[1]C言語 [2] int型ではaをbで割った余りはa % bで求めることできるが,double型の場合は,剰余を求める演算子%が使えない。 そこで,double型の数値を2つ受け取り割り算を実行して商と余りを1度に計算する関数を1つ作成しなさい。 ただし商は整数とし,余りの絶対値は割る数の絶対値を超えないものとする。 この関数をテストできるよう数値の入力と計算結果を画面に出力する main関数も作成すること。 【実行例】 input a: 12.3 input b: 4.5 12.3000 ÷ 4.5000 = 2 あまり 3.3000 [3]環境 OS:windows 言語:C言語 [4]2008/07/24 よろしくお願いします
>>808 #include <stdio.h>
#include <math.h>
void
xx(double a, double b, double *q, double *r)
{
*r = fmod(a, b);
*q = (a - *r) / b;
}
int
main()
{
double a, b, q, r;
scanf("%lf", &a);
scanf("%lf", &b);
xx(a, b, &q, &r);
printf("%f / %f = %0.0f ... %f\n", a, b, q, r);
return 0;
}
誤爆った。すまんこ
>>804 バグ入ってると思うが直して
(他の回答者へクイズ:バグはどこか?)
#include <stdio.h>
#include <string.h>
int main(void){
char *ps,s[1024];
FILE *f;
int count=1;
char last='¥n';
f=fopen("fwrite.cpp","r");
if(f){
for(;;){
ps=fgets(s,1024,f);
if(ps==NULL)break;
if(ps[0]==0)continue;
if(last=='¥n')printf("%03d:",count++);
printf("%s",ps);
last=ps[strlen(ps)-1];
}
fclose(f);
}else fprintf(stderr,"ファイルが開けなかった¥n");
printf("¥n");
return 0;
}
コンマ演算子は分かりません。習っていないと思われます。
じゃあ、(1)からして解けないね。
(1)の答えは何なんですか?
6だよ。
なぜ6になるんですか?
Cには文字列という型は無いんですよね
特に必要がないからね。
いま、c言語でブロック崩しを作っているのですがブロックのあるなしを配列の0か1で表して あるならブロックを出力させようと思うのですがうまくいきません。 出力にはopenGLを使うつもりです。ブロック崩しのソースを 分かりやすく解説してあるホームページがあったら教えてください
1回でprintfせず、漢字の途中でprintfし、残りをprintfした場合、正しく表示される保証が無い処理系は 昔のホスト言語がCじゃない環境ではよくありましたし、今でもそうかもしれません。 printfがその特性上頻々とバッファをフラッシュすることが要求された仕様が原因でした。(以上ちら裏)
すいません。 どなたか、お願いします。 本当に、困っています。 どうか、宜しくお願いします。
>>827 MacOSXのプレビューでみるとクラッシュするんだけど、それでどうやって手伝えっていうの?
>>406 [1]C言語上級(25年位前は修士〜博士論文クラスの問題)
[2]圧縮プログラムの作成
☆ファイルの中の特定の文字をスキップして読み込み、符号化したものを出力(シャノン符号?)
☆出現文字頻度表も出力
☆ビットストリーム出力必要(暗黙のうちに要求されている?)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C C++
[4] 期限: 7/19 ?
でおk?
課題: テキストファイルの圧縮/解凍プログラムの作成 ---------------------------------------------------- 指定されたテキストファイルを指定の符号化により圧縮する、また、圧縮されたテキストファイルの 先頭に付加されている符号化表をベースにして解凍を行い もとのテキストファイルを再生する。 なお、Cプログラミング環境はC教材の Borland C++Compiler 5.5 をダウンロードして使用する。 注意1 ファイル名のxxxxは任意、拡張子は txt、enc とする。 注意2 符号化方式は添付の課題 参考資料を参照 注意3 符号化の対象となる記号は 0h00 〜 0h7F の JIS 7bit code とする。 もし、原本テキストファイルに 0h80 〜 0hFF のcode が存在した場合は破棄する事 留意1 0h00 〜 0h7F の記号の出現度数表は、大きい順序にソートし、オプション指定により 印刷可能とする事 なお、出現度数表が0回の記号は表に印字する、しないのオプションも指定可能とする事 (機能検証の為の配慮) 留意2 検証データ(テキストファイル)としてどういうモノ(テキストパターン)を用意すればよいか考えよ。 (短いテキスト〜長いテキスト)x(小種文字だけのテキスト〜多種文字を含むテキスト)x(発生頻度のバラツキ) 留意3 機能を実現する処理のコーディングだけでなく、プログラムの正しさを証明する(確認する)ためのコーディング の配慮も必要である。もし、プログラムが正しく動作しない場合の手掛かりを掴む仕掛けは配慮する。 留意4 fgets/fputs、fread/fwrite 等 ファイルアクセス関数(C標準関数)の違いについて確認する事
課題 参考資料 : 符号化アルゴリズム(shannon-fano encode) ------------------------------------------------------------ 1.指定された記号リストについて、それに対応した出現度数リストを作成する。 2.出現度数に従って記号リストをソートする、最頻出の記号をリストのトップに来るようソートする。 3.リストを2分割する、この時、上半分の記号sの出現度数と、下半分の記号sの出現度数の合計の 差が出来る限り小さくなるようにする。 4.リストの上半分を二進数の「0」に割当て、下半分を二進数の「1」に割当てる。これは、リストの上半分の 記号に対する符号は「0」から始まり、下半分については「1」から始まることを意味する。 5.再帰的に同じ手続きを、二つに分けたリストのそれぞれに適用し、各符号が木の葉(1個の記号)になって しまうまでリストを再分解し、ビットを付け加えてゆく。 注意 課題では、記号はASCIIコード(JIS7単位コード)の世界に限定する。
833 :
名無し :2008/07/21(月) 16:34:59
[1] 授業単元:システムソフトウェア
[2] 問題文(含コード&リンク):
/拡張した生産者と消費者の問題を実装
生産者、消費者がそれぞれ二人ずつ存在
生産者は新たに英小文字のみ格納する関数producer_Sを作成し、producer_S_threadとして動作
消費者は、関数consumerを使ってもよい
/バッファの長さをN
/クリティカルセクション
生産者、消費者は常に1つのスレッドしかクリティカルセクションに進入できない(mutex)
生産者間、消費者間での相互排除(mutex)も必要
ソース
http://www.cc.kyoto-su.ac.jp/~naohaya/lectures/syssoft08/producer_consumer.c [3] 環境
[3.1] OS: Linux
[3.2] gcc
[3.3] 言語: C
[4] 期限: ([2008年7月22日17:30まで]
[5] その他の制限: 特にないと思います。
>>829 恐らくデコーダーのほうも、暗黙のうちに作成を要求されているのではないかと
思われ。でなければ検証など殆ど不能じゃないかと。
自分で符号化した奴と突き合わせた検証方法じゃ、はっきしいって、あと一週間たっても
終わらないべ。あきらめるのが無難かと...
おっと、実際解凍も要求されてたみたいねw。てっきり圧縮だけかと思ったけど.
>>814 何、クイズしてるんですか。こたえはファイル名がこてい?
>>829 はい、その通りです。
わかり難くて、すいません。
>>830 おしゃる通り、エンコーダーとデコーダーです。
やはり諦めるしかないのでしょうか・・・
提出期限は、実は8月5日と迫ってまして・・・
作成頂いたプログラムを、自分で理解したうえで
提出しなければと思い期間を設けてました。
無理を承知でなんとかお願いできませんでしょうか?
どうか宜しくお願いします。
勝手で本当に、申し訳ありません。
>>837 じゃまだぜんぜん時間あるじゃん
あと一週間後に再請求して回答が無かったら諦めるのが吉かと...
>>838 あまり、自分が頭良くないの分かってますので
理解に時間かかりそうだと思ってます。
しかし、おっしゃる通り多少時間はありますので
どなたかに作成して頂けることを願って待ってみます。
すいません。駄文失礼しました。
>>791 xとvが逆になってるよ。
それを正しく直してもまだ固有値が3になるから
どっか間違っているみたい。
>>839 課題の前提として、Huffman符号化の実装が与えられてるんじゃないの?
そうであれば、ツリーの作り方を変更するだけでは?
あと、25年前と言えばC++が登場した頃で、シャノン符号化が修士クラスの課題にはとてもならない・・・
>>841 お前基準が当てにならないって何度言われたら気が済むんだ?
お前が決めているのか、そういうのを?自分が出来る出来ないとか
自分が思う、考える範囲内で物を言うから周りから知ったかっていわれるんだよw
大学に入学したことすらないだろ、お前。だからそうやって何か理由をつけて
見下そうとする態度をとるんだよな。お前がその課題を解く能力が無い以上
何言っても説得力なし。出来てもお前が何者か明かさない以上誰にも認めてもらえない。
>>841 > シャノン符号化が修士クラスの課題にはとてもならない・・・
根拠は?25年前に大学に通っていた人ですか?ってことは今40代半ば?
>>844 25年前に大学に通ってなくても、分かるよ。
60年代でなければ学部生の訓練用の課題だろ。
>>841 まずお前が自分の知識、能力を用いて解いてからモノを言えよ。
でなきゃ、お前の思い込みを述べたに過ぎないから。
しかし、事実関係としてそうであれば、お前が知らずに調べずに
勝手なことを言ったに過ぎない。
>>847 なにが不満なのか知らないが、オレを煽らなくても、オマエが自分で書いてやればいいだろ?
>>841 > 25年前と言えばC++が登場した頃
だから何?こういう奴ってさぁ、直接関係無いのに
何かと自分の持っている知識をひけらかそうとするよな。
性格がバレバレ。誰もそんなこと聞いてないって言われるタイプ。
要するに、自分が知っていることをやたらと言葉に出して、
さも知的に見せようとするタイプ。
>>849 > > 25年前と言えばC++が登場した頃
> だから何?こういう奴ってさぁ、直接関係無いのに
ここは、C,C++スレだろ。共通の時代認識の尺度じゃないか?
>>841 すいません。ハフマン符号は、多分このあとに出される課題と思われます。
そう言ってました・・・。
開発された年度の順序がどうとかで・・・
>>842 C++の課題です。
すいません。
本当にお騒がせしてしまって申し訳ありません。
どなたか、どうか宜しくお願いします。
854 :
628 :2008/07/21(月) 21:06:03
>>830-831 って、
>>406 と同じですか?
それならば、私が今取り組んでいます。
なにせ、このスレで最低最悪とこき下ろしてしまった以上、やらなければなりますまい。
取り掛かる前にある程度予想はしておりましたが、やはり実装には非常に時間がかかっています。まだゴールも見えない段階です。半ば絶望しています。
もうあと1週間おまちいただけないでしょうか。
>>852 てか
>>851 のやつじゃだめなん?
これでエンコード結果をstdoutじゃなく別ファイルに書き込むようにして
デコード結果をputcで書き込むように改良すればいいんじゃね?
圧縮ファイルに書き込んだ符号化表部に
余分な出現度数が0のやつも書き込んでるから
圧縮前のファイルが極端に短いと逆にファイルが大きくなっちゃう気がするけど
解答として十分なコードだと思う。
>>854 考え方はよく似ている。
出現確率の高い文字により短いビット列を割り当てるという
点では同じ
しかし符号の作り方が少し違うような
>>857 いや
>>830 にはどういう形式で圧縮するかまで考えろと書いてある。
だからハフマンとは限らない。逆に言えばハフマンでもシャノン・ファノ
でも算術圧縮でも何でも良い。
了解。C++ならstd::mapを使えば簡単に作れるような希ガス
どうせそれに関する資料を見て パクる んだろw
>>861 参考文献をあげておきます。
文書データ圧縮アルゴリズム入門/植松友彦/CQ出版株式会社 1994
ハフマン符号についてはソースが掲載されていましたが、シャノンファイについてはありません。
何これ リレーショナルデータベースでも自前で作れっていうのか
>>863 問1
せめて分散、できれば分布が判らなければ解なし。
可愛がってあげてください
870 :
855 :2008/07/21(月) 21:29:19
>>863 ネタ回答でもしておくか。
問1 サイズが一定でなく、その平均が100バイトであるレコードからなるデータがある。
このとき以下の件数を管理するための適切な方法を述べよ。
(1) 200,000件
(2) 500,000,000件
(3) 10,000,000,000件
(1) オンメモリでOK。データは配列で操作し、構造体のCRCコードをハッシュ値として使い探索することを前提とする。
100byte+管理するための領域を加えて0.2KBと見積もる。
200k件×0.2KB=40MB。
(2) 1ファイルに対するディスク上の最小サイズであるクラスタサイズを
4KBと仮定すると、平均40レコード格納できるが、実際には長い・短いがあるため
余裕を見て20レコードまでとする。
500M件/20レコード×4KB = 100GB なのでハードディスクで格納できる。
(3)既に(2)で1台のPCが管理できるれコード数は500M件と分かっているため、
このレコード数を管理するためには最低20台が必要である。
ただし、この場合複数台のPCのどれもが故障してはいけない状態となるため、
ミラーリングなどを施したりバックアップを容易にとれる構成としなければならない。
872 :
:2008/07/22(火) 00:26:02
>>872 chart型は聞いたことがありません。別の型にしてもらえれば助けるのですが・・・。
>>872 この課題の内容をやるだけなら、一行ずつ読み込んでって
最初のスペースまでの文字列を名前として保存しておいて
入力された文字列と比較ってやればできるんだけど
この商品データを格納できる構造体を作れとか、商品データはリスト構造で管理しろとか
そんな指定があっても良さそうなもんだけどな
>>4 07/15 13:00 線形リスト
>>50 07/17 00:00 減衰振動
>>179 --/-- --:-- 2文木->配列
>>207 --/-- --:-- 微分方程式の解析解
>>234 --/-- --:-- 微分方程式:ルンゲクッタ法
>>362 07/18 --:-- GC/立体幾何/空間上の三角形と平面とが作る線分
>>383 07/18 06:30 static変数の抽出
>>406 07/19 23:59 シャノンファノ符号 :
>>851 ?
>>476 07/23 24:00 偏微分方程式/ポテンシャル
>>665 07/23 --:-- ファイルの読み書きと表示
880 :
デフォルトの名無しさん :2008/07/22(火) 04:01:15
>>308 返事遅くなりました
ありがとうございました
期限が明日の13時まで伸びました
どなたか二つ目お願いします
>>873 慌てることではない、typedef chart型を定義してやれば良いじょのいこ?
>>881 その問題は解決するとして、char型で文字列を保持できるだろうか?
>>788 単純な回答はこれ。
int idx = y*width+x;
Rbuffer2[idx] = (BYTE)(Rbuffer_f[idx] * ratio + Rbuffer_b[idx] * (1.0 - ratio) );
Gbuffer2[idx] = (BYTE)(Gbuffer_f[idx] * ratio + Gbuffer_b[idx] * (1.0 - ratio) );
Bbuffer2[idx] = (BYTE)(Bbuffer_f[idx] * ratio + Bbuffer_b[idx] * (1.0 - ratio) );
ratioをかえながらやるには
int i; char filename[2048]; を変数宣言に追加して
for (i=0;i<=20;i++){
ratio = ((double)i / 20.0);
sprintf(filename,"result_%02d.bmp",i); // printfの出力結果をchar配列に保存する命令
画像処理
ファイル保存(filename);
}
"BMP、JPGファイルからAVI作成"でぐぐればD&Dで変換できるツールがでてくる。
じゃあの
>>882 おいおいおい、要素が3つでもまともにうごかないぜhahaha!!
>>882 以上、おれの自作自演なわけだが。
Table->n = 0の場合、low=0,high=-1となる。
while文は処理されないのでmidが不定。ためしにmid=0xffffで初期化すると確実にExcepる。
卑怯な逃げをやるとこんな感じだな。
/* 追加 */
int add_item(pTable table,Item item){
int low, mid=0xffff, high, i, place;
low=0; high=(table->n)-1;
if(table->n == 0) {
table->items[0] = item;
table->n++;
return 1;
}
ついでに。gcc xxx.c -g って-gオプションつけて
gdb a.out ってやるとExceptionおきたタイミングでパラメータ確認できるんで試してみてくれ。
あとはgdbでぐぐれ。
じゃあの。
>>887 おっとすまん、Nが0xF4240なんでmidの初期値はそれ以上にしてくれ。
もしくはN=1000に置き換えちまっても問題なし
すまんかったのぉ じゃあの。
>>790 ソート方法の提示がなかったんでバブルでお茶を濁しておくから、あとは自力でがんばれ!!
それから毎回strlenするタコ仕様なんでそこも多めに見ろよ!
#include <stdio.h>
int main(char argc,char **argv){
FILE *infp, *outfp;
int i,j, lm; char *buffer[1024];
infp = fopen(argv[1],"r"); outfp = fopen(argv[2],"w");
i=0;while(!feof(infp)){
char tmp[1024];
if( fgets(tmp,sizeof(tmp),infp) ){
buffer[i] = (char*)malloc(sizeof(char) * strlen(tmp)+1 );
strcpy(buffer[i],tmp);
i++;
}
}
lm = i;
for(i=0;i<lm;i++){
for(j=i+1;j<lm;j++){
if(strlen(buffer[i]) > strlen(buffer[j]) ){
char *tmp = buffer[i];
buffer[i] = buffer[j]; buffer[j] = tmp;
}
}
fprintf(outfp,"%s",buffer[i]);
free(buffer[i]);
}
fclose(infp);fclose(outfp);return 0;
}
じゃあの
>>883 そこらへんをわかってやるのが大人じゃないのか?
typedef char String
>>882 >>887 言い忘れ。TableはポインタなのにItemが変数なのがなんとなく嫌だったので
s/Table/pTable/g;
した。今は反省していない。
じゃあの。
>>859 ありがとうございます。どうか、よろしくお願いします。
レスが遅くなりすいませんでした。
このスレをよろしくお願いします >他の回答者
おまいら、たまには麻呂のクソースを超越したゲロの●ンコソースが見たいだろ?
[1] 授業単元: C++ [2] 問題文(含コード&リンク): int型の数値を2つ受け取りその最大公約数を計算して返す関数 int gcm(int a, int b)を作成しなさい。 同様に最小公倍数を計算して返す int lcm(int a, int b)も作成しなさい。 2つの関数の動作を確認する main関数も作成すること。キーボードから入力した2つの整数について,計算結果が画面に出力されるものとする [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: VC [3.3] 言語: C++ [4] 期限: [5] その他の制限: よろしくお願いします
899 :
デフォルトの名無しさん :2008/07/22(火) 14:01:12
900 :
デフォルトの名無しさん :2008/07/22(火) 14:37:55
[1] 授業単元: C言語プログラミング [2] 分数の四則演算を計算するプログラムを作成する [3] 環境 [3.1] OS: Windows [3.2]Microsoft Visual Studio [3.3] C言語 [4] 期限: ([2008年7月25日14:00まで [5]条件 分数を、 1|3 のように、| (縦棒)という記号で分子・分母を区別する。/ (スラッシュ)だと除算記号と混同してしまうから。 計算規則 a|b + c|d = (a*d + b*c) | (b*d) a|b - c|d = (a*d - b*c) | (b*d) a|b * c|d = (a*c) | (b*d) a|b / c|d = (a*d) | (b*c) 計算結果については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。 1.分母がゼロの入力エラーに対しては、再入力するよう促す。 2.除算において、除数がゼロの入力エラーに対しては、再入力するように促す。 3.以下範囲の整数(分子、分母にかかわらず)に対して、正しく計算できるようにすること。 -2147483648 〜 2147483647 Visual Studioでお願いします 以前書き込みをくれた方ありがとうございます。 でもエラーが出てデバックできませんでした。 #include<stdio.h>でお願いします
901 :
デフォルトの名無しさん :2008/07/22(火) 14:55:56
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
分数の四則演算を計算するプログラムを作成せよ。
キーボードから、2つの分数、および、それらの間の演算子を入力して、その計算結果を表示すること。
<要求事項>
1.分母がゼロの入力エラーに対しては、再入力するよう促す。
2.除算において、除数がゼロの入力エラーに対しては、再入力するように促す。
3.以下範囲の整数(分子、分母にかかわらず)に対して、正しく計算できるようにすること。
-2147483648 〜 2147483647
4.計算結果(画面表示)については,分母が1の時には分子のみの表示にする。分数が0(ゼロ)の時には 0(ゼロ)のみを表示する。また,最終の計算結果を既約分数にする。分数が負数の場合、負符号(-)を分数の前に表示する。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C++
[4] 期限: 2008年7月30日まで
[5] その他の制限:
条件分岐、繰り返し、配列ぐらいまでなら習ってます。
関数は使わないでください。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/7478.txt ↑3以外の要求事項を満たしたプログラムです。参考までに…
よろしくお願いします。
>>899 自分でやればいいじゃん
ググってもでてくるし
>>903 だからね、君は・・・何度も言われているようだが、そんなレスをするスレじゃないんだよw
しちゃダメ、禁止って意味じゃなくてね、
>>1 とスレタイを読むと分かると思うけど
そういう趣旨のスレじゃないのよ、分かる?分からない?日本語読める?読めない?
聖徳太子知ってる?知らない?そんなことを言うくらいなら、君が解いたソースを
うpしてやれば良いじゃん、ググって知った情報を使って パクって も良いんだしw
いや、ここは宿題が丸投げされる場所だからw 投稿する質問者に、自分でやれよ、なんてナンセンスでしょ? 思っていても言わなくてよろしい、そういうことぉ〜 あぁ〜いとぅいまてぇ〜ん
ハッシュできたけどあってるかわからんわ
いよっ!真打ち登場か?
[1] 授業単元:プログラニング言語 [2] 問題文(含コード&リンク):クライアントから送られた2つの数値の和をもとめ、 表示するサーバを作成しなさい。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:gcc 3.4 [3.3] 言語: C [4] 期限: 7月26日まで 作成するのはサーバだけです。接続、切断の部分は省略していただいてもかまいません。 よろしくお願いします。
>>906 オマエこそ、退屈なレスつけてないでコード書いたらどうだ?
すぐ消すことになるのか知らないけど。
>>912 暇人必死だな。とりあえず
>>1 とスレタイを読んだら無駄レスするな、夏厨
>>912 うわっ、出た出た出たよぉ〜、スレタイも
>>1 も読めない日本語でおkな奴が
C言語なんてまともに使えたもんじゃねーなぁ、こいつはぁ。
要するに口先だけってやつなw
>>912 (・∀・)ニヤニヤ
無駄口叩くくらいなら、ソースで課題に答えたらぁ?
916 :
:2008/07/22(火) 19:29:55
873>> すみません。char型です。
>>912 ぼくぅ、ぼくぅ、スレタイ読める?
>>1 も読める?
>>903 みたく、○投げした人に対して
自分でやれってレスはこのスレでは無用なの、ナンセンスなの、わかるぅ?分からないかにゃ〜
まだぼくぅ小学生1年ちぇいだもんねw 日本語が読めるようになってから
C言語を習いましょうね。あっ、別にコミュニケーションランゲージじゃないから
C言語を先に習っても良いけど、教本の日本語が読めないんじゃ〜やっぱダメでちゅよぉ〜
>>920 ググレばいくらでもコードが落ちてんだろ?
>>920 世界で始めてハッシュを実装するならともかく、
子供の宿題だぞ?
923 :
863 :2008/07/22(火) 19:44:14
すいません 誰か863の問2をお願いします
> あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。 > 気に入らない質問やその他や発言はスルーの方向で。 読めない、勘違い野郎が増えたな、今年の新学期からの新入り共はw お前ら他のスレの連中に笑われてんぞ、KYな奴が多いってw 集団社会の中で活動したことないだろ?余計なことを口に出すと 荒れるしゴタゴタになってトラブルになるだろ。だからその場に 沿わないことは、思ってても口に出さないんだよ、JK。 丸投げする奴に、○投げするなって言う前に、自分がやる気がないなら スルーするなり無駄レスをしなきゃ良いんだよ、な?w そんな単純なことも出来ないからお前らはいつになっても上達しないんだよ。
926 :
402 :2008/07/22(火) 20:09:46
>>900 >>17 (C++),
>>402 (C) はいかがでしょうか。
エラーがでるようでしたら、コンパイラエラーならその内容を貼り付けてください。実行してエラーがでるようでしたら、入力した式を教えてください。
927 :
デフォルトの名無しさん :2008/07/22(火) 20:15:51
>>790 補足です。お願いします
問題文:
英文字の複数行から構成されるテキストファイルがあるとき, このファイル中の行を,含まれる文字数が少ない順にソートした後,
別の名前のファイルで出力するプログラムを作りなさい.
ただし,元のテキストファイル,出力先のテキストファイルの名前はいずれもコマンドラインで指定するようにすること。
すなわち,このプログラムの実行形式ファイルをsortとし,元のテキストファイルをfile1.txt,出力後のテキストファイルをfile2.txt とするとき,コマンドプロンプトに続いて
>sort file1.txt file2.txt←
とすることで実行する. ただし,←は Enter キーを押すことを表している. 処理例を次に示す.
処理例:
元のファイル (file1.txt)
Do you have a pencil?
How was it?
I have a notebook.
I love you.
Please sit down.
Which flower do you like?
What is this?
abc
出力ファイル (file2.txt)
abc
I love you.
How was it?
What is this?
Please sit down.
I have a notebook.
Do you have a pencil?
Which flower do you like?
929 :
402 :2008/07/22(火) 20:38:55
>>926 訂正します。
>>900 >>167 (C++),
>>402 (C)はいかがでしょうか。
コンパイル時にエラーがでるようなら、その内容を貼り付けてください。
実行してエラーがでるようでしたら、入力した式を教えてください。
>>4 07/15 13:00 線形リスト
>>50 07/17 00:00 減衰振動
>>179 --/-- --:-- 2文木->配列
>>207 --/-- --:-- 微分方程式の解析解
>>234 --/-- --:-- 微分方程式:ルンゲクッタ法
>>362 07/18 --:-- GC/立体幾何/空間上の三角形と平面とが作る線分
>>383 07/18 06:30 static変数の抽出
>>406 07/19 23:59 シャノンファノ符号 :
>>851 ?,
>>908 >>476 07/23 24:00 偏微分方程式/ポテンシャル
>>665 07/23 --:-- ファイルの読み書きと表示 :
>>895
933 :
665 :2008/07/22(火) 21:00:19
>>895 ありがとうございました<m(__)m>
>>384 このような二重定義はエラーではないけれども気になるのでこれを検出したい、しかしコンパイラは検出してくれない。
935 :
◆prGJdss8WM :2008/07/22(火) 21:38:10
(1)C言語演習 (2)凸なn角形板の頂点の座標を与えると、その重心の座標を表示するプログラムを作成しなさい。 プログラムの説明まですること。 (3)Windows C言語 (4)2008年7月23日午後6時まで よろしくお願いします!!
936 :
◆prGJdss8WM :2008/07/22(火) 22:21:59
937 :
デフォルトの名無しさん :2008/07/22(火) 22:22:18
焦りすぎだカス
[1] 授業単元: C++ [2] 問題文(含コード&リンク): 数当てゲームを作りなさい。 <プログラムの流れ> ・変数no を用意し、これに乱数を入れます(no に格納されている整数値を当てます)。 ・変数x にキーボードから数値を読み込み、その値がno よりも小さければ「小さいです。もう一度入力して ください。」、大きければ「大きいです。もう一度入力してください。」とメッセージを表示して再入力を促し ます。等しい場合は、「正解です。」と表示します。 ※変数no には、以下のようにして乱数を入れます。 @#include<stdlib.h> ← 冒頭(#include<stdio.h>の前後)にこの2文を書く #include<time.h> Aint no; ← 変数宣言のところで、int 型で変数no を宣言する Bsrand( (unsigned)time( NULL ) ); no = 1 + (int)(rand()*(100.0)/(1.0+RAND_MAX)); ←乱数を発生させるところでこの2文を書く no に1 から100 までの乱数が格納される [3] 環境 [3.1] OS: WindowsXP [3.2] VC6.0 [3.3] 言語: C++ [4] 期限: 7月24日 よろしくお願いします。
>>938 なんで7月末に、こんなレベルの出題するかなぁ
どんな学校だ
1〜2年次の教養レベルならこんなんもありじゃね?
>>940 真面目に答えると
北海道工業大学2年ですね。
1年の今頃にはポインタやらされてたうちの大学は異端か? 電気科なのにww
>>398 だと、2〜3回目の授業の宿題で出てもおかしくないレベルでしょ
だから、4〜6月の間は何してたのかな、と
情報専門じゃなければそんなものなのかもしれないな
俺は確か二回目の授業の課題でメモリを動的に確保した記憶がある
944 :
デフォルトの名無しさん :2008/07/22(火) 22:36:29
1回目の授業はどんなんだったんだ? Hello worldじゃないの
>>935 Oで凸多角形の中央を求め、O-(i)-(i+1)からなる三角形の面積Sと重心Cを求め、Sを重みにした重み付き平均でCの中央をもとめるんじゃい!!
面積算出はヘロンの公式をつこてるので、gccなら-lmを付けてくれ。あとはまかせた。
#include <stdio.h>
#include <math.h>
struct point{ double x; double y;} Polygon[100];
typedef struct point point;
double Length(point A,point B){ return sqrt( (A.x - B.x) * (A.x - B.x) + (A.y - B.y) *(A.y - B.y) ); }
double TriArea(point A,point B,point C){ double a = Length(B,C) , b = Length(A,C), c = Length(A,B) , s = (a+b+c)/2.0; return sqrt(s*(s-a)*(s-b)*(s-c) );}
point TriCenter(point A,point B,point C){ point ret; ret.x = (A.x + B.x + C.x) / 3.0; ret.y = (A.y + B.y + C.y) / 3.0; return ret;}
int main(){
int i,n=5;double AreaTotal,area; point O,R,C;
Polygon[0].x = 3.0; Polygon[0].y = 9.0; Polygon[1].x = 3.0; Polygon[1].y = 16.0;
Polygon[2].x = 5.0; Polygon[2].y = 18.0;Polygon[3].x = 6.0; Polygon[3].y = 12.0;
Polygon[4].x = 5.0; Polygon[4].y = 6.0; Polygon[5].x = 3.0; Polygon[5].y = 9.0; // [0]
O.x = 0.0; O.y = 0.0; for(i=0;i<n;i++){ O.x += Polygon[i].x; O.y += Polygon[i].y;}
O.x /= (double)n; O.y /= (double)n;
R.x = 0.0; R.y = 0.0; for(i=0;i<n;i++){
C = TriCenter(O,Polygon[i],Polygon[i+1]);
AreaTotal += area = TriArea(O,Polygon[i],Polygon[i+1]);
R.x += Center.x * area; R.y += Center.y * area;
} R.x /= AreaTotal; R.y /= AreaTotal;
printf("%lf %lf\n",R.x,R.y);
return 0;
}
じゃあの。
>>945 すまん、AreaTotal初期化してないんで、=0を足してくれ。
じゃあの。
947 :
◆prGJdss8WM :2008/07/22(火) 23:00:15
>>945 ありがとうございます!!
すみません;
AreaTotal初期化とは、どこにつければよいのですか?
>>947 int i,n=5;double AreaTotal,area=0.0; point O,R,C;
949 :
◆prGJdss8WM :2008/07/22(火) 23:07:54
950 :
◆prGJdss8WM :2008/07/22(火) 23:13:51
何度もすみません。 コンパイルしたらエラーがでてしまいます(>_<) file format not recognized とでます…;
>>950 まず、なんのコンパイラをつこてるかはっきりせい!!
それからエラー文は一行残らず全部書き出せ!!
>>950 あと、これがコンパイルできんようなら出直せ!!
#include <stdio.h>
int main(){
printf("じゃあの");
return 0;
}
じゃあの。
953 :
354 :2008/07/22(火) 23:32:40
954 :
◆prGJdss8WM :2008/07/22(火) 23:35:29
>>951 UTF-8 Tera Term Pro
を使ってやってます。
エラー文なんですが…
12-13: file not recognized: File format not recognized
とでます。
955 :
◆prGJdss8WM :2008/07/22(火) 23:36:49
>>954 コンパイラは何を使っているのかと聞いている。
gcc xxx.c
か?
それからエラー文は全部かけ。エラー文は全部かけ。大切なことなので2回言いました。
>>954 一応、間違わないように念押しする。
コンパイルに使ったコマンドから、実際にでているエラー、コマンドを入力できるプロンプトまでを
全部残さず洗いざらい全て厳密に確実にまごうことなくすっきりはっきり全部書き出せ。
>>957 935じゃないけど、とりあえず、Center.xが通らない。
>>958 さんくす!とりあえずなおした。
#include <stdio.h>
#include <math.h>
struct point{ double x; double y;} Polygon[100];
typedef struct point point;
double Length(point A,point B){ return sqrt( (A.x - B.x) * (A.x - B.x) + (A.y - B.y) *(A.y - B.y) ); }
double TriArea(point A,point B,point C){ double a = Length(B,C) , b = Length(A,C), c = Length(A,B) , s = (a+b+c)/2.0; return sqrt(s*(s-a)*(s-b)*(s-c) );}
point TriCenter(point A,point B,point C){ point ret; ret.x = (A.x + B.x + C.x) / 3.0; ret.y = (A.y + B.y + C.y) / 3.0; return ret;}
int main(){
int i,n=5;double AreaTotal,area; point O,R,C;
Polygon[0].x = 3.0; Polygon[0].y = 9.0; Polygon[1].x = 3.0; Polygon[1].y = 16.0;
Polygon[2].x = 5.0; Polygon[2].y = 18.0;Polygon[3].x = 6.0; Polygon[3].y = 12.0;
Polygon[4].x = 5.0; Polygon[4].y = 6.0; Polygon[5].x = 3.0; Polygon[5].y = 9.0; // [0]
O.x = 0.0; O.y = 0.0; for(i=0;i<n;i++){ O.x += Polygon[i].x; O.y += Polygon[i].y;}O.x /= (double)n; O.y /= (double)n;
R.x = 0.0; R.y = 0.0;AreaTotal=0.0; for(i=0;i<n;i++){
C = TriCenter(O,Polygon[i],Polygon[i+1]);AreaTotal += area = TriArea(O,Polygon[i],Polygon[i+1]);
R.x += C.x * area; R.y += C.y * area;}
R.x /= AreaTotal; R.y /= AreaTotal; printf("%lf %lf\n",R.x,R.y);return 0;}
960 :
◆prGJdss8WM :2008/07/23(水) 00:03:11
すみません… コンパイラはxxx.cです コンパイルに使ったコマンドはccコマンドです エラー文はさっき書いたので全部です。 1行しかでてきません;
>>960 ファイルの拡張子を .c にしてからやり直してみて。
963 :
◆prGJdss8WM :2008/07/23(水) 00:08:49
ちょっとよくわからないので明日友達に聞いてみます… すみませんでした… とりあえず実行結果だけでも教えていただけませんか?
966 :
◆prGJdss8WM :2008/07/23(水) 00:14:30
拡張子を.cにしてみたら エラーの内容がかわりました。 /var/tmp//cc9r5EdA.o(.text+0x25): In function `Length': : undefined reference to `sqrt' /var/tmp//cc9r5EdA.o(.text+0xd7): In function `TriArea': : undefined reference to `sqrt' とでました!
>>963 エラーの行の一行前と、一行後ろを教えてほしいな。
一行前は、コマンドプロンプトとあなたが入力したコマンドかもしれないし、
一行後ろは、ただのコマンドプロンプトかも知れないけれども、
画面に表示されているそのままに。
968 :
◆prGJdss8WM :2008/07/23(水) 00:21:35
>>967 これです。
>はコマンドプロンプトです。
> cc 12-13.c
/var/tmp//cc9r5EdA.o(.text+0x25): In function `Length':
: undefined reference to `sqrt'
/var/tmp//cc9r5EdA.o(.text+0xd7): In function `TriArea':
: undefined reference to `sqrt'
>
>>911 コンパイルだけ通した。動作未確認。
#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
int servSock, clientSock, recvLen, totalLen, n1, n2;
struct sockaddr_in servAddr,clientAddr;
unsigned int clientLen;
char buf[8];
if ((servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) exit( 1 );
memset(&servAddr, 0, sizeof(servAddr));
servAddr.sin_family = AF_INET;
servAddr.sin_addr.s_addr = htonl(INADDR_ANY);
servAddr.sin_port = htons(12345);
if (bind(servSock, (struct sockaddr *) &servAddr, sizeof(servAddr)) < 0) exit( 2 );
if (listen(servSock, 1) < 0) exit( 3 );
while ( 1 ) {
clientLen = sizeof(clientAddr);
if ((clientSock = accept(servSock, (struct sockaddr *) &clientAddr, &clientLen)) < 0) exit ( 4 );
recvLen = totalLen = 0;
while ( recvLen < 8 ) {
if ((recvLen = recv(clientSock, buf + totalLen, 8, 0)) < 0) exit( 5 );
totalLen += recvLen;
}
n1 = ntohl(*(int*)buf);
n2 = ntohl(*(int*)(buf+4));
printf("%d+%d=%d\n", n1, n2, n1 + n2);
}
}
971 :
◆prGJdss8WM :2008/07/23(水) 00:30:15
>>969 できました!!
実行したら
> ./a.out
4.386667 12.173333
>
とでました!!
でも、scanfで頂点の座標を与えないんです…(>_<)
972 :
970 :2008/07/23(水) 00:31:18
しまった。WinSockかもしれないんだ。。
973 :
970 :2008/07/23(水) 00:33:26
>>970 を訂正。
×while ( recvLen < 8 )
○while ( totalLen < 8 )
>>970 せめてIPv6 readyなコードにしてほしかった。
975 :
◆prGJdss8WM :2008/07/23(水) 00:35:13
>>972 コンパイルしたらエラーがいっぱいでますです…
> cc 12-12.c -lm
12-12.c: In function `main':
12-12.c:8: error: storage size of 'servAddr' isn't known
12-12.c:8: error: storage size of 'clientAddr' isn't known
12-12.c:11: error: `IPPROTO_TCP' undeclared (first use in this function)
12-12.c:11: error: (Each undeclared identifier is reported only once
12-12.c:11: error: for each function it appears in.)
12-12.c:14: error: `INADDR_ANY' undeclared (first use in this function)
>
>>975 #include <netinet/in.h>
を追加
978 :
◆prGJdss8WM :2008/07/23(水) 00:38:20
>>971 間違えました;
scanfで頂点の座標を与えてあげないといけないんです(>_<)
>>968 見たいに、printf/scanfの出来上がりイメージを書いたら、誰かやってくれるかもよ。
> cc 12-13
12-13: file not recognized: File format not recognized
>
981 :
◆prGJdss8WM :2008/07/23(水) 00:59:21
>>979 ありがとうございます!!
でも、セグメントエラーってでます…;
あと、このプログラムの説明をしていただけませんか?
[1] 授業単元: プログラミング [2] 問題文:時計を表示するプログラムを作る (書きかけのソースは下に書きます。) [3] 環境 [3.1] OS: WindowsXP [3.2] Borland C++ ver5.0.0 [3.3] 言語:C [4] 期限:今日 [5] その他の制限:よくわからないですが、ポインタ辺りまでならいいと思います。 最上段の年月日と曜日がうまく表示されません。 どなたかお願いしますm(__)m
983 :
982 :2008/07/23(水) 01:00:40
#include <stdio.h>#include <time.h> #include <conio.h> void main() { static char *week[] = {"日", "月", "火", "水", "木", "金", "土"}; time_t now, prev; struct tm *tm_now; printf("\033[2J"); prev = now; tm_now = localtime(&prev); printf("\033[10;30H"); printf("%4d年%2d月%2d日 %s曜日\n", tm_now->tm_year+1900, tm_now->tm_mon+1, tm_now->tm_mday, week[tm_now->tm_wday]); for(;;){ if(kbhit()){ if(getch() == 0x1B) break; } prev = now; now = time(NULL); if(prev == now) continue; tm_now = localtime(&now); printf("\033[11;30H"); printf("%2d時%2d分%2d秒\n", tm_now->tm_hour, tm_now->tm_min, tm_now->tm_sec); } }
>>981 ソート方法を挿入ソートに変えただけ
エラーは出ないから分からん、どこで出るのかな
>>908 すいません。
せっかく作成して頂いたのですが、Borlandでは動作しないようです。
以下のようなエラーが出てしまいました。
C:\source>bcc32 7480.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland7480.cpp:
警告 W8012 7480.cpp 169: 符号付き値と符号なし値の比較(関数 CEncoder::create_enc(ifstream &,ofstream &) )
警告 W8012 7480.cpp 199: 符号付き値と符号なし値の比較(関数 CEncoder::create_enc(ifstream &,ofstream &) )
警告 W8012 7480.cpp 222: 符号付き値と符号なし値の比較(関数 CEncoder::create_enc(ifstream &,ofstream &) )
警告 W8012 7480.cpp 253: 符号付き値と符号なし値の比較(関数 CEncoder::create_enc(ifstream &,ofstream &) )
警告 W8008 7480.cpp 282: 条件が常に真(関数 CEncoder::create_enc(ifstream &,ofstream &) )
警告 W8012 7480.cpp 302: 符号付き値と符号なし値の比較(関数 CEncoder::create_enc(ifstream &,ofstream &) )
警告 W8008 7480.cpp 405: 条件が常に真(関数 CEncoder::encoding() )
警告 W8012 7480.cpp 440: 符号付き値と符号なし値の比較(関数 CEncoder::encoding())
警告 W8012 7480.cpp 446: 符号付き値と符号なし値の比較(関数 CEncoder::encoding())
警告 W8012 7480.cpp 759: 符号付き値と符号なし値の比較(関数 CDecoder::create_txt(ifstream &,ofstream &) )
警告 W8012 7480.cpp 842: 符号付き値と符号なし値の比較(関数 CDecoder::decoding())
警告 W8012 7480.cpp 848: 符号付き値と符号なし値の比較(関数 CDecoder::decoding())
警告 W8012 7480.cpp 925: 符号付き値と符号なし値の比較(関数 CPrintHeader::print_header(char *) )
警告 W8012 7480.cpp 931: 符号付き値と符号なし値の比較(関数 CPrintHeader::print_header(char *) )
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
指定が、Borland bcc32 のコンパイラということになってまして
せっかく作成頂いたのに、本当にすいません。
>>859 さんのを、待ちたいと思います。
すいません。
つーか違う人やん、まあよかた
>>985 警告が出てるだけなら、動くんじゃないの?
ラーメン イケメン 僕セグメン
>>987 実行すると、以下のようになってしまいます。
C:\source>7481
C:\source>7480
Usage:
encoding : C:\source\7480.exe -e[p[z]] ENC TXT
decoding : C:\source\7480.exe -d[p[z]]TXT ENC
header print : C:\source\7480.exe -p[z] ENC...
C:\source>
何も入力する前に、コマンドラインが出てしまいます。
>>982 全角スペース混じってんぞ
ほんとに実行できたのかよ…
>>989 使い方が間違っているからでしょ。
あと、usageを辞書で引いておいて
てか実に気の毒だが、コンピュータあんまり触った事がない人だと思うので 下手に丸投げしたコード出したりするとボロ出てきつい思いすると思う。 こういう無茶な(コンピュータ触って5年選手以上とかに出す問題)課題 を出す教師の単位なんて下手に貰っても得しないと思う。 昔は、理論屋、コード屋、検証屋、執筆屋とか分業が許され、論文も共同で 書くのが常だった。
>>993 警告とエラーの区別がつかないくらいだから、これまでまったくサボってきたんだろ。
課題自体は、子供の宿題レベルには違いないし、出来ないから単位がでないかどうかも知れない。
>>993 ほんとうに親切な人は問題について考えるんじゃなくて、解決策を考えてくれると思うんだ
>>995 要するにこのスレに来るな。自分でやれってか
身も蓋も無いな
カンニングするための最低限の技術すら足りないのはどうしようもないが
こんな馬鹿を卒業させたら、またなんちゃってSEが増えるだけだろ…
>>995 このスレの回答者は親切に親身になって問題を解いてくれるね。(その後のフォローは皆無だけど)
大学の卒業率が85%というから、学生の20人に3人が卒業しないまま大学を去るのだろう? 答えだけ聞いて済まそうという行動規範では・・・
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。