C/C++の宿題片付けます 145代目
レス数が1000を超えています。これ以上書き込みはできません。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
http://codepad.org/ ←遅い時間は重い事があります
http://ideone.com/
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題片付けます 144代目
http://hibari.2ch.net/test/read.cgi/tech/1291471791/
0002デフォルトの名無しさん
2011/01/04(火) 10:27:38そもそも正規化された値との交点ってどういうこと
正規化された値をx軸の値としてって書いてあるけど
・交点のx座標を解とすると「正規化された値」がそのまま解になるし
・交点のy座標を解とすると「正規化された値+ランダム値」が解になる
これふたつとも違うと言ってるんだよね?
じゃあ何を解とすればいいのか
今の問題の書き方だとこの辺理解して貰えないと思うよ
http://ideone.com/TL8nN
0003画像処理
2011/01/04(火) 10:47:33[1] 授業単元:画像処理学
[2] 問題文(含コード&リンク):
指定されたエクセルファイル(csv1)の中にあるデータを読み込み
各列ごとにそれぞれのデータに対し[0,1]区間に正規化し
別のエクセルファイル(csv2)として出力せよ.
正規化されたエクセルファイルの中にあるデータを読み込み
そのデータをそれぞれx軸の値として
y = x + a の式との交点であるy軸の値をそれぞれ
別のエクセルファイルとして出力(csv3)せよ.
a の値は -1〜1 までの値を0.5刻みでランダムにとり
同じ行では同じ関数を使うものとする.
その後そのプログラムに加え
各行に対し3つずつそれぞれランダムにaを決定した関数との接点を求め出力する.
また6列目に使用したaの値をa1,a2,a3という形で出力(csv4)せよ.
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語:C言語
[4] 期限:2011年1月4日
[5] その他の制限:以下のレスに補足があります
0004画像処理
2011/01/04(火) 10:49:20a の値は-1〜1 までの値を0.5刻みでランダムにとった値を
「関数y=x+a」に代入値を別の(csv3)として出力します
同じ横列では同じ関数を使って交点をとるものとする
それを縦列数分繰り返して出力するということです
データは横5データ縦250データのデータです
横列ごとに同一の関数と比較した交点の出力なので
結果としては正規化されただけのデータと比べて横列では同じ程度の数値の変化になります
(csv2) (csv3) (a)
0.5 0.6 0.3 0.4 0.1 → 1.0 1.1 0.8 0.9 0.6 0.5
0.7 0.2 0.7 0.3 0.5 → 0.2 -0.3 0.2 -0.2 0 -0.5
問3は問2の拡大版で
正規化された値とaの値を関数y=x+aに代入するのを各横列ごとに3回行うということです
セル1-1に対して「y=x+a1の場合」「y=x+a2の場合」「y=x+a3の場合」 の値を
出力するCSVのセル1-1の位置に a1との解 , a2との解 , a3との解
とコンマで刻んで出力します
また正規化されたCSVが横5縦250なので横6縦250のところに
使用したaの値を a1,a2,a3 と出力せよということです
結果的には
a1解,a2解,a3解 a1解,a2解,a3解 a1解,a2解,a3解 a1解,a2解,a3解 a1解,a2解,a3解 a1,a2,a3
となります
この横列が250行縦に続きます
0005画像処理
2011/01/04(火) 10:51:34すみませんそこはわたしの勘違いです
交点を求めるには代入することなので
解yを得るには正規化xにランダムaを加算で正しいです
すみませんでした
0006画像処理
2011/01/04(火) 10:57:48(csv2)ーーーーーーーー(csv3)ーーーーーーー(a)
0.5 0.6 0.3 0.4 0.1 → 1.0 1.1 0.8 0.9 0.6 と 0.5
0.7 0.2 0.7 0.3 0.5 → 0.2 -0.3 0.2 -0.2 0 と-0.5
です
0007デフォルトの名無しさん
2011/01/04(火) 12:28:45正規化が列単位だからやっぱメモリ上に展開してぐりぐりする必要あるね
>>956
http://ideone.com/f2jh2
>>965
http://ideone.com/whRW2
>>969
http://ideone.com/s26UG
0008画像処理
2011/01/04(火) 12:57:08拝見させていただきました
>>956はうまく動作させることができました
>>965のプログラムは
173行目
float* rnd[ANUM] = {NULL, NULL, NULL};
で初期化子の数が多すぎます というエラーが出ます
>>969のプログラムは
240行目
csv_write(ofname1, csv);
で定義されていない識別子です というエラーが出ます
0009デフォルトの名無しさん
2011/01/04(火) 13:04:36× float* rnd[ANUM] = {NULL, NULL, NULL};
○ float* rnd[ANUM] = {NULL};
↓これ削除して。消し忘れたー
// >>937 1列目に+1、2列目に+2
csv = csv_read(ifname);
if(csv != NULL){
coladd(csv);
csv_write(ofname1, csv);
csv_free(csv);
}
0010画像処理済
2011/01/04(火) 13:11:30>>937の部分をまとめてコメントアウトしたら走ってくれました
出力されたcsvを確認したいと思います
確認しました
>>969のプログラムから>>937のための記述を抜けば
求めていた出力をさせることができました
先生が厳しいというか正しい人なので途中までで提出していたら
やり直させられていたと思います
本当に助かりましたありがとうございました
0011デフォルトの名無しさん
2011/01/04(火) 16:15:460012デフォルトの名無しさん
2011/01/04(火) 16:48:27うちの大学の教員がいるんじゃないかという速度で回答がきて驚いた
題意がよくわからないものを除いて、
http://hibari.2ch.net/test/read.cgi/tech/1291471791/453
http://hibari.2ch.net/test/read.cgi/tech/1291471791/676
http://hibari.2ch.net/test/read.cgi/tech/1291471791/786 http://hibari.2ch.net/test/read.cgi/tech/1291471791/802
http://hibari.2ch.net/test/read.cgi/tech/1291471791/919
http://hibari.2ch.net/test/read.cgi/tech/1291471791/922
http://hibari.2ch.net/test/read.cgi/tech/1291471791/932
あたりが未解決です。
0014デフォルトの名無しさん
2011/01/04(火) 17:31:26[1] 授業単元: Cプログラミング入門2
[2] 問題文(含コード&リンク):
ファイル入出力関数を使って偶数個の値が入ったsample.csvから
偶数行の数値だけを取り出したeven.csvと
奇数行の数値だけとりだしたodd.csvを作成し
even.csvからodd.csvの値を引いたdiff.csvを作成しなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語: C
[4] 期限:2011年1月7日06:00まで
[5] その他の制限:
0015デフォルトの名無しさん
2011/01/04(火) 18:13:13わざわざCSVファイルとしているから、一行に複数の
数値がありそうだけれど、その場合、最後にでてくる
値の差の意味がわからない。ふつう、こういうファイル
の差分という場合、行の完全一致は一方を排除する
という意味だが、ここは、全体を通じて、同一数値を
取り除くの意味かな。それにしてもdiff.csvの出力形式
がわからない。
001614
2011/01/04(火) 18:34:14偶数行奇数行でわけると4行7列が2つできますよね
最後のdiff.csvはデータベース的な差分ではなく
偶数奇数2つのcsvの同じ位置に入力されている数値を
偶数引く奇数と計算したときの値が4行7列で入力されたものです
0017デフォルトの名無しさん
2011/01/04(火) 18:49:17了解
0018デフォルトの名無しさん
2011/01/05(水) 01:47:20#include <stdio.h>
void aisatsu(void);
int main(void){
aisatsu();
return 0;
}
void aisatsu(void){
printf("Good morning \n");
printf("Goog afternoon \n");
printf("Good night");
}
「main側で指定した飾り文字を 挨拶の末尾につけて表示する」ようにしなさい
例 Good morning ★
[3]
[3.1] OS: vista
[3.2] C言語を始めよう!
[3.3] 言語:C
[4] 期限: できるだけ早い方がいいです
[5] その他の制限:voidではなくcharを使うみたいです。
よろしくお願いします
0019デフォルトの名無しさん
2011/01/05(水) 02:05:49char*使ったけど問題があるようなら無視してくれ
#include <stdio.h>
void aisatsu(char*);
int main(void){
char decoration[]="★";
aisatsu(decoration);
return 0;
}
void aisatsu(char *decolation){
printf("Good morning %s\n", decolation);
printf("Goog afternoon %s\n", decolation);
printf("Good night %s", decolation);
}
0020デフォルトの名無しさん
2011/01/05(水) 02:35:32ありがとうございます
参考にします!
0021デフォルトの名無しさん
2011/01/05(水) 04:25:11[2] 問題文(含コード&リンク): http://www.dotup.org/uploda/www.dotup.org1340661.txt
[3] 環境
[3.1] OS: WindowsVista
[3.2] vidual studio2008
[3.3] 言語: C
[4] 期限: 1/6
よろしくお願いします。
0022デフォルトの名無しさん
2011/01/05(水) 05:02:001個め
#include <stdio.h>
double power(double a, int n);
int main(void) {
int n;
double a, ans;
printf("実数を入力してください :");
scanf("%lf", &a);
printf("整数を入力してください :");
scanf("%d", &n);
ans = power(a, n);
printf("%f", ans);
return 0;
}
double power(double a, int n) {
int i;
double ans=1;
for(i=0; i<n; i++){
ans *= a;
}
return ans;
}
0023デフォルトの名無しさん
2011/01/05(水) 05:08:172個め
#include <stdio.h>
double power(double a, int n);
int main(void) {
int n, i;
double a, ans;
printf("実数を入力してください :");
scanf("%lf", &a);
printf("整数を入力してください :");
scanf("%d", &n);
for(i=1;i<=n;i++){
ans += power(a, i);
}
printf("%f", ans);
return 0;
}
double power(double a, int n) {
int i;
double ans=1;
for(i=0; i<n; i++){
ans *= a;
}
return ans;
}
0024デフォルトの名無しさん
2011/01/05(水) 05:15:363個め
#include <stdio.h>
double max2(double m, double n);
int main(void) {
double m, n, ans;
printf("1個めの実数を入力してください :");
scanf("%lf", &m);
printf("2個めの実数を入力してください :");
scanf("%lf", &n);
ans = max2(m, n);
printf("%f", ans);
return 0;
}
double max2(double m, double n) {
if(m<n){
return n;
} else {
return m;
}
}
0025デフォルトの名無しさん
2011/01/05(水) 05:36:314個め
#include <stdio.h>
int avg(int num[], int n);
int main(void) {
int num[100];
int n=0;
int ans;
do{
printf("%d個めの整数を入力してください。(0入力で合計値出力)\n",n+1);
scanf("%d", &num[n]);
n++;
}while(num[n-1]!=0);
ans = sum(num, n);
printf("合計値は%dです。\n", ans);
return 0;
}
int sum(int num[], int n) {
int ans = 0, i;
for(i=0;i<n;i++){
ans += num[i];
}
return ans;
}
0026デフォルトの名無しさん
2011/01/05(水) 05:38:18誰か>>21の5番目〜7番目頼むね。すまそ。
0027デフォルトの名無しさん
2011/01/05(水) 06:01:01http://codepad.org/b57428tx
0028デフォルトの名無しさん
2011/01/05(水) 10:10:12ありがとうございます。
さっそく参考にさせてもらいますね!
0029デフォルトの名無しさん
2011/01/05(水) 10:29:21[1] 授業単元: 情報数学2
[2] 問題文(含コード&リンク):
3行5列の15人の学生の身長が記録されたheight.csvがあります。
それぞれの学生に対しランダムで0.1刻みで0.1から0.5までの値を付加します。
このポイントを基礎ポイントといいます。
\1行目の学生5人を取り出しそれぞれの学生に対し、
*ランダムで0.1刻みで0.1から0.5までの値を基礎ポイントに対し付加します。
5人の学生の中で与えられたポイントの合計が最も少ない学生を回の代表値とします。*
基礎ポイントに対しランダム値を付加し回の代表値を選出する作業(*〜*)を、
同じ1行目の5人の学生に対し5回行います。
5回分の代表値の中で最も多い値を行の代表値とします。\
1行分の行の代表者の選出(\〜\)を3行分繰り返します。
全てのステップを行い結果をresult.csvとして出力します。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語: C言語
[4] 期限:2011年1月7日まで
[5] その他の制限:
以下に出力result.csvの形式についての補足があります。
003029
2011/01/05(水) 10:30:403行71列の表になります。
1〜5列目まではheight.csvと同じ出力です。
6〜10列目まではそれぞれの学生にどんな基礎ポイントが付加されたかを示し、
11〜15列目は1回目のランダム付加でどのような値が付加されたかを示し、
16〜20列目は基礎ポイントと付加ポイントの合計を示し、
21列目は1回目の回の代表値を示し、
22列目は回の代表者の身長を示します。
23〜34列目は2回目、
35〜46列目は3回目、
47〜58列目は4回目、
59〜70列目は5回目を示します。
71列目は行の代表者の身長を示します。
元のheight.csvの3行5列の並び順と、
それ以降の処理での3行5列の部分の値の位置は対応するようにお願いします。
長くなって申し訳ありません。
よろしくお願いいたします。
0031デフォルトの名無しさん
2011/01/05(水) 13:13:34[2] 問題文(含コード&リンク): http://www.dotup.org/uploda/www.dotup.org1341084.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:1月7日
宜しく御願いします。
0032デフォルトの名無しさん
2011/01/05(水) 16:25:35[2] 問題文(含コード&リンク):
巡回セールスマン問題
いくつかの都市と都市間を結ぶ経路があります。全ての都市を一巡するのに最も短い経路を求めるプログラムを作成せよ。
TSPのデータファイルはgr17.txtで、数字の部分が都市数です。
ファイルの記述の仕方が以下のようになっています。
gr17.txtの例
17 最初の数値は都市数
0 第0都市と第0都市との距離が0
633 0 第1都市と第0都市との距離が633、第1都市と第1都市との距離が0
257 390 0 第2都市と第0、第1、第2都市との距離がそれぞれ257,390,0
91 661 228 0 以下同様
412 227 169 383 0
150 488 112 120 267 0
以下略
補足説明として
・同じ道を通ってもよい
・全ての都市を1回通ればよい(巡回しなくていい)
・全探索はなるべく使用しないで深さ優先探索、分子限定法を用いること
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 1月12日
不明な点があったら指摘してください。よろしくお願いします。
0033デフォルトの名無しさん
2011/01/05(水) 16:29:27gr17.txt をアップロードしてくれ
0034デフォルトの名無しさん
2011/01/05(水) 16:42:10http://www.dotup.org/uploda/www.dotup.org1341369.txt.html
パスはc2です
0035デフォルトの名無しさん
2011/01/05(水) 17:06:3210/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?1
0/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10
/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/
1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1
000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/10
00秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/100
0秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000
秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒
というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒と
いうのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒とい
うのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒という
のは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というの
は、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは
、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、
0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0
.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.01秒という解釈でよろしいでしょうか?10/1000秒というのは、0.
0036デフォルトの名無しさん
2011/01/05(水) 17:14:420037デフォルトの名無しさん
2011/01/05(水) 17:30:08めっちゃ歪んでる
0038デフォルトの名無しさん
2011/01/05(水) 17:49:140039デフォルトの名無しさん
2011/01/05(水) 17:55:35[2] 問題文:「90min = 1h30m」を関数を使って表せ 分から時間へは関数mtohをつかう。
[3] 環境
[3.1] OS: VISTA
[3.2] コンパイラ:C言語を始めよう!
[3.3] 言語: C
[5] その他の制限: 分から時間への計算をmtohでやるみたいです。
0040デフォルトの名無しさん
2011/01/05(水) 18:32:38軽い気持ちでやってみようとしたが面倒くさい問題だな
0041デフォルトの名無しさん
2011/01/05(水) 19:03:14#include<stdio.h>
void mtoh(int m){
int count_h=0;
while(m>=60){
m-=60;
count_h++;
}
printf("after-->%dh%dm\n",count_h,m);
}
int main(){
int min=0;
printf("input min-->");
scanf("%d",&min);
mtoh(min);
return 0;
}
適当に作ったからミスがあったらごめん
0042デフォルトの名無しさん
2011/01/05(水) 19:21:040043デフォルトの名無しさん
2011/01/05(水) 19:36:48入力受付はしなくて良いということだったので自分で作ってみたんですが、
エラーが起こってしまいました;;どうすればいいですか。
#include <stdio.h>
int mtoh(int b, int c);
int main(void){
int a=90;
int mtoh(b,c);
printf("%d min = %d h %d m\n",a,b,c);
}
int mtoh(int b,int c){
int b = a / 60;
int c = a % 60;
return 0;
}
0044デフォルトの名無しさん
2011/01/05(水) 19:45:10int mtoh(int a,int *b, int *c);
int main(void){
int a=90,b=0,c=0;
mtoh(a,&b,&c);
printf("%d min = %d h %d m\n",a,b,c);
}
int mtoh(int a,int *b,int *c){
*b = a / 60;
*c = a % 60;
return 0;
}
0045デフォルトの名無しさん
2011/01/05(水) 19:45:50#include <stdio.h>
/*int mtoh(int b, int c);*/
int mtoh(int a, int *b, int *c);
int main(void){
int a=90;
int b,c; /* 追加 */
/*int mtoh(b,c);*/
mtoh(a,&b,&c);
printf("%d min = %d h %d m\n",a,b,c);
}
int mtoh(int a,int *b,int *c){
/*
int b = a / 60;
int c = a % 60;
*/
*b = a / 60;
*c = a % 60;
return 0;
}
0046デフォルトの名無しさん
2011/01/05(水) 19:51:130047デフォルトの名無しさん
2011/01/05(水) 20:07:39関数内で表示までしてもいいのかな?
0048デフォルトの名無しさん
2011/01/05(水) 20:08:08ポインタだめなら
#include <stdio.h>
/*int mtoh(int b, int c);*/
int mtoh(int a, int *b, int *c);
int main(void){
int a=90;
mtoh(a);
}
int mtoh(int a){
int b = a / 60;
int c = a % 60;
printf("%d min = %d h %d m\n",a,b,c);
return 0;
}
0049デフォルトの名無しさん
2011/01/05(水) 20:14:450050デフォルトの名無しさん
2011/01/05(水) 20:47:580051デフォルトの名無しさん
2011/01/05(水) 20:53:320052デフォルトの名無しさん
2011/01/05(水) 21:17:19ポインタも外部変数も使わない方法も有るでぇ、と混乱させてみる
#include <stdio.h>
typedef struct {
int h;
int m;
}HM_TIME;
static HM_TIME mtoh( int m )
{
HM_TIME hm;
hm.h = m / 60;
hm.m = m % 60;
return hm;
}
int main( void )
{
int m = 90;
HM_TIME hm;
hm = mtoh( m );
printf( "%d:%d\n", hm.h, hm.m );
return 0;
}
0053デフォルトの名無しさん
2011/01/05(水) 21:49:42#include <stdio.h>
int mtoh(int a){
int b = a/60;
int c = a%60;
printf("%d min = %d h %d m\n",a,b,c);
return 0;
}
int main(){
int a = 90;
mtoh(a);
return 0;
}
0054デフォルトの名無しさん
2011/01/06(木) 00:06:58同じ道を通ってもよいってのがめんどうw
0055デフォルトの名無しさん
2011/01/06(木) 00:15:57[2] 問題文(含コード&リンク):値(x,y)をxarrとIarrに格納して3次スプライン補間
S_j(x) = a(x-xj)^3+b(x-xj)^2+b(x-xj)^c+dj
で近似値を求めるプログラムを作成せよ。条件は
u_j=S"(x)
hj=x_(j+1)-x_j, j = 0,1,2,・・・,N-1
v_j=6[(y_(j+1)-y_j)/h_j - y_j)-y_(j-1))/h_(j-1)]
a_j = (u_(j+1)-u_j)/{6(x_(j+1)-x_j)}
b_j = u_j/2
c_j = (y_(j+1)-y_j)/(x_(j+1)-x_j)-(x_(j+1)-x_j)(2u_j+u_(j+1))/6
d_j=y_j
です。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:visual studio 2005
[3.3] 言語: C/C++/どちらでも可
[4] 期限: 1月6日12:00
[5] その他の制限: 特に無し
該当部分のソースはこちらになります。
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/13.txt
どうも計算した時の誤差が大きいようなのでもう少し精度を良くしたいのですが、
どうすればいいのかわかりません。
どうかよろしくお願いします。
仮に題意を満たす次の経路(同じ道を重ねてたどる経路)をとおる経路C1があったとする。
S->...(経路X)...->A-(経路P)->B->...(経路Y)...->A-(経路P)->B->...(経路Z)...->G
この経路C1の長さL(C1)は、
L(C1)=L(X) + L(P) + L(Y) + L(P) + L(Z)
このとき次の経路C2を考える。
S->...(経路X)...->A->...(経路Yの逆コース)...->B->...(経路Z)...->G
この経路C2の長さは、
L(C2)->L(X)+L(Y)+L(Z)
すなわち L(C2)>L(C1)
ただしL(Y)=L(経路Yの逆経路)を仮定している。
しかし、これを仮定していい、というのは、>>32 のデータの与え方をみればわかる。
以上より、「同じ道をとおる」という場合を省いてもよい......ハズ。
005756
2011/01/06(木) 00:23:05L(C2)<L(C1)
に訂正します。
0058デフォルトの名無しさん
2011/01/06(木) 00:32:361564 が出た
しかしバグっているので、最短距離かどうかはまだ不明
0059デフォルトの名無しさん
2011/01/06(木) 00:45:08C→Aがコスト30
A→Bがコスト80
C→Bがコスト20
だとすると
C→A→B:コスト110
C→A→C→B:コスト80
ってことじゃないの??
006159
2011/01/06(木) 00:54:13ご丁寧にどうもです。
これのせいで面倒になってるのは確かですね
006258
2011/01/06(木) 01:04:17これで距離 1564
枝狩り部分にバグがありそうだけど、
枝狩りを外すと丸一日くらいかかりそうなので断念
3秒で答えが出るってのが超あやしいw
006758
2011/01/06(木) 01:32:41http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/14.txt
1.gr17.txt の内容から一旦↑の二点間の最小距離データAと経路データBを作成する
2.A を使って検索 (条件:すべての点を一回ずつ通る)
3.出力するときにBを使って元の経路を出力
以上
007058
2011/01/06(木) 01:52:47括弧の中は経路の数
1 なら直接移動
2 なら途中で1点経由
3 なら途中で2点経由 って具合
デバッグするときにチェックしやすいように出しただけ
007159
2011/01/06(木) 02:00:32あ、よく見たらgr17.txtの対角じゃなかったw
なるほどねー、サンクス。
A を使って検索ってのは、14.txtの中から検索してるんだよね?
0072デフォルトの名無しさん
2011/01/06(木) 02:07:59二点間の最小距離を求めるのって全探索でやった?
0073デフォルトの名無しさん
2011/01/06(木) 05:13:33#include <stdio.h>
static int trim_lsR_path(char *path, size_t size)
{
int i;
for (i = 0; i < size; i++)
if (path[i] == ':')
break;
return path[i] == ':' && i >= 1 ? path[i] = '\0', 0 : -1;
}
int main(void)
{
static char path[BUFSIZ], buf[BUFSIZ];
FILE *fp;
if ((fp = fopen("ls-R", "r")) == NULL)
return 1;
if (fgets(path, sizeof(path), fp) == NULL)
goto err;
if (trim_lsR_path(path, sizeof(path)) < 0)
goto err;
while (fgets(buf, sizeof(buf), fp) != NULL)
if (!strcmp(buf, "\n")) {
if (fgets(path, sizeof(path), fp) == NULL)
goto err;
if (trim_lsR_path(path, sizeof(path)) < 0)
goto err;
} else
printf("%s/%s", path, buf);
return fclose(fp), 0;
err:
return fclose(fp), 1;
}
0074デフォルトの名無しさん
2011/01/06(木) 09:26:46★前スレ
C言語なら俺に聞け(入門編)Part 75
http://hibari.2ch.net/test/read.cgi/tech/1292682816/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 145代目
http://hibari.2ch.net/test/read.cgi/tech/1294061094/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
# サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
007529
2011/01/06(木) 09:51:15期限が近いのでどなたかお力を貸していただけないでしょうか。
頼むばかりで申し訳ありませんが、
何卒宜しくお願いいたします。
>>29
>>30
0076デフォルトの名無しさん
2011/01/06(木) 10:20:16わかりにくい
問題文そのまま載せて欲しい
0077デフォルトの名無しさん
2011/01/06(木) 10:25:09適当で良いから、height.csvを例示してくれない?
初期値がある方が作る側は負担が少ないんだが
007829
2011/01/06(木) 10:55:46133.2 136.8 143.3 125.6 156.0
121.1 139.6 118.9 127.7 130.0
というheight.csvがあって
それぞれの学生に[1][1]から[3][5]までの仮番号を付けます
それぞれの番号に対しランダムで0.1刻みで0.1から0.5までの値を付加します。
このポイントを基礎ポイントといいます。
0.1 0.4 0.5 0.3 0.3
0.1 0.3 0.2 0.2 0.1 基礎ポイント
0.5 0.1 0.4 0.2 0.4
このポイントをもとに今後の計算をしていきます
1行目の学生を取り出し
0.1 0.4 0.5 0.3 0.3
*これにランダムで0.1刻みで0.1から0.5までの値の付加ポイントを付けます
以下ランダムで出てきた付加ポイント
0.2 0.2 0.1 0.3 0.5
この付加ポイントを基礎ポイントにあわせた合計が
0.3 0.6 0.6 0.6 0.8
5人の学生の中で与えられたポイントの合計が最も少ない学生を回の代表値とします
この場合は0.3です*
(*〜*)を5回繰り返し
それぞれの回の代表値
0.3 0.2 0.3 0.2 0.3
の中で一番大きかった者が行の代表です
行の代表になった者(0.3)の回の代表だった時の元の基礎ポイント
0.3 - 付加ポイント
の0.1 つまり 行の一番左の人の身長145.6を出力します
途中で同一の値が出た場合はもとのheight.csvでより左の人を出してください
(↑すみません書き忘れました。回の代表を選ぶ時もより左が優先です。)
007929
2011/01/06(木) 11:01:24中カッコでかかれていたもの(以下のようになってたもの)を
あああああ}
あああああ}繰り返し
あああああ}
(*〜*)や(\〜\)に書き直しただけです
出力されるcsvの形式は>>30のままです
代表の選出の際に左側優先ってのを書いてないと出力が長方形にならないですよね
そら意味わからないですよね申し訳ありませんでした
0080デフォルトの名無しさん
2011/01/06(木) 11:47:39こうか?
1-5: 元csvと同じ
6-10: 基礎値
11-15: 付加値
16-20: 基礎値+付加値
21: 16-20 内の最小値(a)
22: 21に対応する者の身長
23-34: 11-22 までと同じ処理
35-46: 同上
47-58: 同上
59-70: 同上
71: (a) の最大値に対応する者の身長
何故、基礎値が必要なのか全く理解できない
> の中で一番大きかった者が行の代表です
> 行の代表になった者(0.3)の回の代表だった時の元の基礎ポイント
> 0.3 - 付加ポイント
これも意味不明だな
0081デフォルトの名無しさん
2011/01/06(木) 12:16:01やっぱ問題文がよく分からないからエスパーした
合ってるかは自分で確かめてくれ
http://ideone.com/0l3ZN
008229
2011/01/06(木) 13:17:38実行して.csvを確認して20列目までは出ているんですが
21,22列が正しい値がでません
基礎値が必要なのは基礎値も最初にランダムで設定した以上出力すべきってことだとおもいます
私もそういう問題なのだとしか言えません
> の中で一番大きかった者が行の代表です
> 行の代表になった者(0.3)の回の代表だった時の元の基礎ポイント
> 0.3 - 付加ポイント
これは「対応する身長を出力」を言い方変えて言いたかっただけなので忘れてください
すみません
008329
2011/01/06(木) 13:19:461から20列及び22列と
21列目が対応していません
宜しくお願いします
0084デフォルトの名無しさん
2011/01/06(木) 15:48:5481ではないが解いてみた
http://codepad.org/Fs1wnLWh
008529
2011/01/06(木) 16:01:47実行しようとしたら
>>110行目でerror: Invalid data(!= %5)
と出ます
ここのエラーは何が合わなかったのでしょうか
008629
2011/01/06(木) 16:07:04111.1 111.2 111.3 111.4 111.5
222.1 222.2 222.3 222.4 222.5
333.1 333.2 333.3 333.4 333.5
で放り込んだのですがこれが良くなかったのでしょうか
0087デフォルトの名無しさん
2011/01/06(木) 16:07:35>>81 のコードは "," 区切りデータに対応していて >>84 のコードは " " 区切りデータに対応している
>>81 用のファイルを >>84 に喰わせたらダメだな
>>84 の
const char *delimiter = " "; を
const char *delimiter = ","; に直せば良いと思うよ
0088デフォルトの名無しさん
2011/01/06(木) 16:08:50[2] 問題文(含コード&リンク):http://www1.axfc.net/uploader/File/so/56644
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visual studio
[3.3] 言語:C
[4] 期限:2011年1月11日(火) 09:00まで
[5] その他の制限:制限なし、OpenCV使用可
期限が短いですが、よろしくお願いします。
0089デフォルトの名無しさん
2011/01/06(木) 16:09:20[2] 問題文(含コード&リンク):
複数の自然数に対する最小公倍数を求めるプログラムを作成せよ。
最小公倍数を求める関数を作成する必要あり
int型のオーバーフローは考慮しないで良い。
関数名はlcm
int lcm(int num0,int num1)
num1 num2は入力値
lcmの戻り値は最小公倍数
入力に関して:キーボードから入力する整数の個数を入力し(最大10)改行する次に指定した数の整数を入力するように作る
[3] 環境
[3.1] OS: Windows7
[3.3] 言語: C
[4] 期限: ([2011年1月6日23:00まで] または [無期限] のいずれか)
[5] その他の制限: ポインタまで習いました
0090デフォルトの名無しさん
2011/01/06(木) 16:12:06スペース区切りのファイルを喰わせてダメだったんなら
sp = strtok(line, delimiter);
for (i = 0; sp != NULL; i++)
{
student[i] = atof(sp);
sp = strtok(NULL, delimiter);
}
ここが怪しいな、i = 4 でループを抜けそうな気がする
009129
2011/01/06(木) 16:15:46スペースというか
エクセルでみた時のセルの区切り目を
スペースで表したものが
111.1 111.2 111.3 111.4 111.5
222.1 222.2 222.3 222.4 222.5
333.1 333.2 333.3 333.4 333.5
です
0092デフォルトの名無しさん
2011/01/06(木) 16:17:59気になったので動かしたらちゃんと動いたよ >>90 は俺の勘違いなので忘れてくれ
結局はカンマ区切りのデータを喰わしてたって事かい?
009329
2011/01/06(木) 16:19:01実行することができましたので中身を確認したいと思います
009429
2011/01/06(木) 16:27:27確認させていただきました
1-5: 元csvと同じ
6-10: 基礎値
11-15: 付加値
16-20: 基礎値+付加値
21: 16-20 内の最小値(a)
22: 21に対応する者の身長
23-34: 11-22 までと同じ処理
35-46: 同上
47-58: 同上
59-70: 同上
71: (a) の最大値に対応する者の身長
を実行させたいのですが
2回目3回目4回目5回目が毎回基準値のふりなおしからはじまってます
以下の流れになってしまっています
1-5: 元csvと同じ
6-10: 基礎値
11-15: 付加値
16-20: 基礎値+付加値
21: 16-20 内の最小値(a)
22: 21に対応する者の身長
23-34: 6-22 までと同じ処理 ←ここは11-22を繰り返しです
35-46: 同上
47-58: 同上
59-70: 同上
71: (a) の最大値に対応する者の身長
0095デフォルトの名無しさん
2011/01/06(木) 16:27:43業務?
0096デフォルトの名無しさん
2011/01/06(木) 16:41:42何これ怖い
0097デフォルトの名無しさん
2011/01/06(木) 17:05:48期限が近いのでお願いします
16に書いた分をまとめました
【質問テンプレ】
[1] 授業単元: Cプログラミング入門2
[2] 問題文(含コード&リンク):
ファイル入出力関数を使って偶数個の値が入ったsample.csvから
偶数行の数値だけを取り出したeven.csvと
奇数行の数値だけとりだしたodd.csvを作成し
even.csvからodd.csvの値を引いたdiff.csvを作成しなさい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語: C
[4] 期限:2011年1月7日06:00まで
[5] その他の制限:
例えば8行7列のsample.csvがあったとして
偶数行奇数行でわけると4行7列が2つできますよね
最後のdiff.csvはデータベース的な差分ではなく
偶数奇数2つのcsvの同じ位置に入力されている数値を
偶数引く奇数と計算したときの値が4行7列で入力されたものです
行数が偶数であることしか決まってないので
X行Y列と臨機応変に対応できるようお願いします。
009884
2011/01/06(木) 17:37:24基礎データの算出を1回、CSVの区切りを" "から","、回数の最大値をdefineで定義しました
http://codepad.org/WqMiFPsf
009929
2011/01/06(木) 17:52:30確認しました
1回目から5回目の各回で
16-20: 基礎値+付加値
の部分で基準値と付加値の和が合わない部分があります
これによって後の出力に影響がでています
0100デフォルトの名無しさん
2011/01/06(木) 18:00:10基礎ポイントというものは、5人の学生それぞれの専用の値ってことかな?
基礎ポイント1→1番目の学生に使用
基礎ポイント2→2番目の学生に使用
...
基礎ポイント5→5番目の学生に使用
010129
2011/01/06(木) 18:22:25その値にランダムで付加値の加算を5回してます。
010229
2011/01/06(木) 18:27:23基礎ポイントの表示を4回分出力しなければ完成です
数値の計算や代表の選出は正しかったので
2回目以降の「基礎ポイントの表示」を出力しないだけです
繰り返し工程からこの部分を外して
出力を最初の一回だけにしてほしいんです
お手数をかけて申し訳ありません。
0103デフォルトの名無しさん
2011/01/06(木) 18:35:58http://codepad.org/aKXPLInq
0104デフォルトの名無しさん
2011/01/06(木) 18:45:27遅くなりました。有難う御座います。
ファイルのパスだけを出力するのでディレクトリのパスは出力しないのでいいのですがその辺りを教えていただきたいです。
0106デフォルトの名無しさん
2011/01/06(木) 18:58:39stlの勉強を兼ねて書いてみた
あと、これは老婆心だが、人に頼ってばかりいないで自分で少しは考えて書け
人に頼ってばかりだとプログラマーになった時に困るぞ
http://codepad.org/SnOfwtdV
0107デフォルトの名無しさん
2011/01/06(木) 19:31:35>[3.3] 言語: C
0108デフォルトの名無しさん
2011/01/06(木) 21:11:18この1秒クロックでアキュムレータを駆動する。
このプログラムを教えてください。
0109デフォルトの名無しさん
2011/01/06(木) 22:16:31[2] 問題文
fork とexec 族のシステムコールを使い,簡単なコマンドインタープリタ(mysh)を作成せよ.
作成するコマンドインタープリタは下記の機能をサポートすること.
? 設定ファイル(.path)にコマンドサーチパスを指定することが出来る.なお,ファイル内
のパスの指定方法は,各自が考えて定義すること.(パスにないコマンドを入力した場
合には,見つからない旨のエラーメッセージを出力すること.)
? パイプを利用して複数(可変個)のコマンドの入出力を結合することができる.
? コマンド実行中に Ctrl-C を入力すると,現在のコマンドの実行を中断して, 次のコマン
ドを入力するためにプロンプトを出力する.
? リダイレクション(“<” と “>”)を使用してコマンドへの入力をファイルから得たり,ファ
イルへ出力したりすることが出来る.
? exit を入力すると,mysh を終了する.
[3] 環境
[3.1] OS:Windows 7
[3.2] コンパイラ名とバージョン:cygwin
[3.3] 言語: C
よろしくお願いします!!!
0110デフォルトの名無しさん
2011/01/06(木) 22:17:13$ ./mysh
myprompt>
myprompt> ←エンターキーのみの入力なら単なる改行
myprompt> ls -l ←単一コマンドの実行
・・・・・・・・・
myprompt> hoge
myprompt> hoge: Command Not Found ←コマンドパスにないコマンドを実行しようとした.
myprompt> ls -l | grep waseda ←パイプによる入出力の結合
・・・・・・・・・
myprompt> grep waseda < aaa > bbb ←リダイレクションによる入出力の変更
・・・・・・・・・
myprompt> ←実行中にCtrl-C
・・・・・・・・・
myprompt> exit ←exit を入力するとmysh を終了
0111デフォルトの名無しさん
2011/01/06(木) 22:18:02申し訳あえりませんこれで一つです
よろしくお願い致します
0112デフォルトの名無しさん
2011/01/06(木) 23:11:11http://codepad.org/LjyHuHHF
0113デフォルトの名無しさん
2011/01/07(金) 00:12:08#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
static int trim_lsR_path(char *path, size_t size, int ch){
int i;
for (i = 0; i < size && path[i] != ch; i++);
return path[i] == ch && i >= 1 ? path[i] = '\0', 0 : -1;
}
int main(void){
static char path1[BUFSIZ], path2[BUFSIZ], buf[BUFSIZ];
struct stat st;
FILE *fp;
if ((fp = fopen("ls-R", "r")) == NULL) return 1;
if (fgets(path1, sizeof(path1), fp) == NULL) goto err;
if (trim_lsR_path(path1, sizeof(path1), ':') < 0) goto err;
while (fgets(buf, sizeof(buf), fp) != NULL)
if (!strcmp(buf, "\n")) {
if (fgets(path1, sizeof(path1), fp) == NULL) goto err;
if (trim_lsR_path(path1, sizeof(path1), ':') < 0) goto err;
} else {
sprintf(path2, "%s/%s", path1, buf);
if (trim_lsR_path(path2, sizeof(path2), '\n') < 0 || stat(path2, &st) < 0) goto err;
if (S_ISDIR(st.st_mode)) continue;
printf("%s\n", path2);
}
return fclose(fp), 0;
err:
return fclose(fp), 1;
}
0114デフォルトの名無しさん
2011/01/07(金) 01:52:31リダイレクトとパイプの実装方法がよくわからんなぁ。教えてエロい人。
0115デフォルトの名無しさん
2011/01/07(金) 03:44:07[2] 問題文(含コード&リンク):
大量に数値が書き込まれているa.csvとb.csv(数値の数は同じ)をまず読み込み、中を参照していく
a.csvで100以上の数値が確認された場合,b.csvの同位置の数値を調べ、その値も100以上だった場合にはa.csvのその位置の値を0に書き換える
最終的に補正が完了したa.csvをc.csvとしてはきだす、というプログラムの作成
できれば実行前にプログラムの一部を書き換えることでa.csvのどの列を参照するのかを指定できるようにしてもらいたいです
[3] 環境
[3.1] OS: Windows
[3.3] 言語: C++
[4] 期限: 1月9日まで
ちょっと意味不明な課題かもしれませんが、できればどなたかお願いします
日本語がおかしいかもしれないので何言ってるのかわからない場合はつっこんでください
0116デフォルトの名無しさん
2011/01/07(金) 04:03:05ls -Rを実行したディレクトリじゃないと正常に動かないし、環境依存しそうだけど。
バグあるかも。
#include <stdio.h>
#include <dirent.h>
#include <string.h>
int main()
{
FILE* fp = NULL;
char buf[1024] = {0}, path[1024] = {0}, check[1024] = {0};
fp = fopen("ls-R", "r");
if (fp){
while (fgets(buf, sizeof(buf), fp) > 0){
if (path[0] == 0x00){
memcpy(path, buf, strlen(buf) - strlen(":\n"));
}else if (strcmp(buf, "\n") != 0){
buf[strlen(buf) - 1] = 0x00;
snprintf(check, sizeof(check), "%s/%s", path, buf);
DIR* dir = opendir(check);
if (dir){
closedir(dir);
}else{
printf("%s/%s\n", path, buf);
}
}else{
path[0] = 0x00;
}
}
fclose(fp);
}
return 0;
}
0117デフォルトの名無しさん
2011/01/07(金) 04:10:36csvのフォーマットは?,かタブかその他か。
a.csvとb.csvの例があればたぶんみんなやりやすい。
0118デフォルトの名無しさん
2011/01/07(金) 04:19:21最後の行がよく分からない
例えば#define START 2が定義されてると
a.csvの2行目から処理を始める、という解釈でいいのかい
011914
2011/01/07(金) 07:32:42odd.csvとeven.csvは出力されるのですが
diff.csvが出力されません
55行目でエラーが出てしまいます
ビルドは正常に完了するのですが
実行中にエラーがでて止まります
0120デフォルトの名無しさん
2011/01/07(金) 07:54:37自分の学習用に解いてみたやつ、コード汚いけど
ttp://ideone.com/kXSK0
0121デフォルトの名無しさん
2011/01/07(金) 10:38:43全部処理するのか特定の行だけするのか分からなかったから
マクロいじって調整しておくれ
http://ideone.com/YWxXE
fork() + pipe(), dup2() あたりで。close() を間違えないように。
0123デフォルトの名無しさん
2011/01/07(金) 17:35:38[2] 問題文(含コード&リンク):モンテカルロ法で円周率を求めるプログラムです。
http://codepad.org/P70BTW5pが正常に動作しません。
おねがいします。どこが悪いのでしょうか
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++
[3.3] 言語: C++
[4] 期限:2010年12月11日
[5] その他の制限:なし
0124デフォルトの名無しさん
2011/01/07(金) 18:00:0440: n+=det_arrow(yumiya[i]);
を
n+=det_arrow(&yumiya[i]);
にしてみては?
det_arrow(arrow2D* z)って引数がポインタだよね
0125デフォルトの名無しさん
2011/01/07(金) 18:01:44とりあえず、三平方の定理と40行目をn+=det_arrow(&yumiya[i]);こうしようか
0126デフォルトの名無しさん
2011/01/07(金) 18:05:110127デフォルトの名無しさん
2011/01/07(金) 18:08:09コメントありがとうございます。
言われたとおりに修正しました。
ただ、出力が下記のようになりました。
0.000000続行するには何かキーを押してください . . .
0128デフォルトの名無しさん
2011/01/07(金) 19:09:210129デフォルトの名無しさん
2011/01/07(金) 19:17:34どうすれば良いですか?
0130デフォルトの名無しさん
2011/01/07(金) 19:33:34↓
return (double)a/(a+b);
かもね〜
0131デフォルトの名無しさん
2011/01/07(金) 19:36:147c7
< }yumiya[1000];
---
> }yumiya[N];
15,18c15,16
< {
< if((z->x)*(z->x)+(z->y)*(z->y)<=1){
< return 0;
< }else{
---
> {
> if((z->x)*(z->x)+(z->y)*(z->y)<=1.){ // sqrt(x*x + y*y) <= 1 <=> x*x + y*y <= 1
19a18,19
> }else{
> return 0;
30c30
< return double(a/(a+b));
---
> return a/double(a+b);
40c40,41
< n+=det_arrow(yumiya[i]);
---
> set_arrow(&yumiya[i]);
> n+=det_arrow(&yumiya[i]);
45c46
< printf("%lf",probabi(n,h));
---
> printf("%f\n",4*probabi(n,h)); // quadrant sphere
0132デフォルトの名無しさん
2011/01/07(金) 19:56:170133デフォルトの名無しさん
2011/01/07(金) 20:02:36ありがとうございます
なるほど!set_arrow(&yumiya[i]); が必要だったのですね
本当にありがとうございます
ところで、// sqrt(x*x + y*y) <= 1 <=> x*x + y*y <= 1 はどういう意味ですか?
if((z->x)*(z->x)+(z->y)*(z->y)<=1でできましたが、、、
0134響 ◆YFwH4RE2h2
2011/01/07(金) 22:08:02[2] 問題文(含コード&リンク):
トランプゲームの作成。
カードの出力は問題1に従うこと。したがって1はa、11はjであらわす。
複数で行うゲームは、各ターンで手札が表示されても
(ほかのプレイヤーに見えても)構わないものとする。
ゲームはページワン,ジンラミー、フォックストロットの中から2つ選ぶこと。
問題1は次のような問題です。問題1の作成もお願いします。
トランプの山から指定した枚数のカードを引くプログラムを作成せよ。
例えば次のようなやり取りを行う。
枚数を入力してください(0で終了):5
あなたの手札は:2c 6s 5d as jh
ここで5dはダイヤの5、asはスペードのエースである。0が入力されるまでやり取りを繰り返す。
残り枚数が入力より少ない場合はすべてのカードをひいて終了する。
二次元配列をつかってすでに引いたカードを記録し、同じカードを2回以上引かないようにすること。
[3] 環境
[3.1] OS: Windows xp
[3.2] コンパイラ名とバージョン:visual studio 2005
[3.3] 言語: C/C++/どちらでも可
[4] 期限: 2010年01月11日15:00まで
[5] その他の制限:基本的な部分は習いました。参考書として使用し
ているものはソフトバンクの新c言語入門シニア編です。
期限が迫っていてすいませんがよろしくお願いします。
0135デフォルトの名無しさん
2011/01/07(金) 22:26:34fatal error C1083: include ファイルを開けません。'glut.h': No such file or directory
初心者なのでよくわかりません
助けてください
0136デフォルトの名無しさん
2011/01/07(金) 22:40:36glut.hっていうファイルが見つからないからインクルードできません
0137デフォルトの名無しさん
2011/01/07(金) 22:45:01glut.h というファイルが見つからないというメッセージ
0138デフォルトの名無しさん
2011/01/07(金) 22:48:38お返事ありがとうございます
解決策を教えてください
0139デフォルトの名無しさん
2011/01/07(金) 23:07:41インクルードパスを設定していないんだろ
コンパイル時に -I オプションで glut.h が有るディレクトリを指定すれば良い
OpenGL を使うんだと思うけど、リンク時に似たような問題(リンクライブラリパスの指定)が生じると思う
サンプルかなんかの makefile を参考にして makefile を作成した方が良いだろうな
0140デフォルトの名無しさん
2011/01/07(金) 23:14:34OSやコンパイラ名を書いた方が良いね
何か、開発環境の準備もしないで、
サンプルソースをコンパイルしようとしてる予感
0141デフォルトの名無しさん
2011/01/07(金) 23:20:55OSはwindows,コンパイラ名は Microsoft Visual C++ です
0142デフォルトの名無しさん
2011/01/07(金) 23:50:08もしかして、Microsoft Visual C++のインストールだけしてる環境で、
OpenGLのサンプルか何かをコンパイルしようとしてない?
この辺が参考になるかな
ttp://www.02.246.ne.jp/~torutk/cxx/opengl/openglOnWindowsVC.html
[2] 問題文(含コード&リンク):
8 桁までの整数を表わす文字列(例: "-3246") を整数値(例: ?3246) に変換する関数を作りたい。各問いに答えよ。
1. 整数を表わす文字列はつぎの条件を全て同時に満たすと考えられる。
(1) 文字列の先頭の文字は、符号を表わす’+’ または’-’ または、数字’0’〜’9’ である
(2) 文字列の2 文字目以降は’0’〜’9’ である
(3) 符号を除いた文字列の長さは1 以上8 以下である
文字列を引数とし、これらの条件を同時に満たす時に整数値1 を、一つでも満たさない時(整数と
して文字列にエラーがある場合) には0 を戻り値として返す関数check() を作れ。
2. 変換したい文字列を引数とし、正負を判断して値が正または0 の時には1 を、負の時には?1
を、整数として文字列にエラーがある場合には0 を返す関数sign() を作れ。
3. 問1, 2 を利用して、8 桁までの整数を表わす文字列を引数とし、整数値に変換して返す関数
myatoi() を作成せよ。
[3] 環境
[3.1] OS:Mac OS X
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 1月11日13:30まで
[5] その他の制限:
期限が近く、申し訳ないのですが何卒お願いします
0144デフォルトの名無しさん
2011/01/08(土) 02:17:240145デフォルトの名無しさん
2011/01/08(土) 03:09:15泣きそうになった
0146デフォルトの名無しさん
2011/01/08(土) 04:56:41int myatoi(char *s)
{
int r;
sscanf(s,"%d",&r);
return r;
}
char* sign(char *s)
{
int r,e;
e = sscanf(s,"%d",&r);
if(e == 0)
return "0";
else if(r < 0)
return "?1";
else
return "1";
}
int check(char *s)
{
int r,e;
e = sscanf(s,"%d",&r);
return e == 0 ? 0 : 1;
}
0147デフォルトの名無しさん
2011/01/08(土) 10:14:31酷い、まぁ問題も酷いけど
0148デフォルトの名無しさん
2011/01/08(土) 10:16:280149デフォルトの名無しさん
2011/01/08(土) 11:11:290150デフォルトの名無しさん
2011/01/08(土) 11:43:490151デフォルトの名無しさん
2011/01/08(土) 11:47:29あるんじゃない?
0152デフォルトの名無しさん
2011/01/08(土) 12:22:14>二次元配列をつかってすでに引いたカードを記録し、
(´・ω・`)
0153デフォルトの名無しさん
2011/01/08(土) 13:56:07専門でも使ってるPCがMacのとことかあるしね
まぁあまり多くはないと思うけど
0154デフォルトの名無しさん
2011/01/08(土) 14:18:580155デフォルトの名無しさん
2011/01/08(土) 15:11:27[2] 問題文(含コード&リンク):
char型の配列を適当に大きなサイズで宣言し、その中に1文字ずつ、改行が来るまで
格納しなさい(改行コードは格納しない。) 。その後で、入力された文字列を逆順で出力しなさい。
例えば、入力された文字がdogならばgodになる。
[3] 環境
[3.1] OS:Mac OS X
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2011年1月12日
[5] その他の制限:プリントに『改行コードの検出には¥nと比較すればよい(¥はバックスラッシュ)』と書いてあります
どなたかよろしくお願いします。
0156デフォルトの名無しさん
2011/01/08(土) 15:16:19int main(void)
{
char a[256];
int i, ch;
for(i = 0; (ch = getchar()) != '\n'; i++) a[i] = ch;
while(i--) putchar(a[i]);
return 0;
}
0158デフォルトの名無しさん
2011/01/08(土) 16:18:09macって改行コードは\rじゃなかったっけ
0159デフォルトの名無しさん
2011/01/08(土) 16:55:37テキストでは\n
0160デフォルトの名無しさん
2011/01/08(土) 20:14:37通常のプログラムだと、pipeで取得したファイルディスクリプタを親と子でdup2をそれぞれ使うみたいなんだけど、
シェルの場合はどうなるんだろ?
ls | hexdumpを実行する場合、下のような感じか?
親(シェル)--子--孫(lsを実行)
| `--孫(lsをwait)
`--子--孫(hexdumpを実行)
`--孫(hexdumpをwait)
0161デフォルトの名無しさん
2011/01/08(土) 20:25:070162デフォルトの名無しさん
2011/01/08(土) 20:46:23http://codepad.org/W2pbLKZp
こんな感じで、ループをまわして次々と fork() していく(69行目〜99行目)のが簡明でしょうか。
0163デフォルトの名無しさん
2011/01/08(土) 21:16:42thx
ちょい見てみる
0164デフォルトの名無しさん
2011/01/08(土) 21:38:36改行はCR読み飛ばしてLF目印に出来るのにmacのせいでめんどい事になって
糞Appleシネと思いながら夜な夜な釘を打つ。
プログラマの70%が経験する登竜門みたいなもんだぜ
0165デフォルトの名無しさん
2011/01/08(土) 22:58:17ありがとん。
argvの解放漏れが気になるが、pipeの使い方が何となく分かった気がした。
execv(path, argv)
を呼び出すために argv を malloc() していろいろ準備しているわけなんですが、execv() してしまうと、argv を free() しようがないわけですね。
このスレでこの点についてアドバイスを求めたところ、
「無視していい」
とのことでした。
0167デフォルトの名無しさん
2011/01/08(土) 23:37:04[2] 問題文(含コード&リンク):http://codepad.org/7N0GSgtiを完成させよ
また上記のプログラムを構造体で表現しなさい
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2008
[3.3] 言語: C++
[4] 期限:2010年 1月12日
[5] その他の制限:glutはインストール済です
出力しても写真が表示されません。初心者なのでよろしくおねがいします。
0168デフォルトの名無しさん
2011/01/09(日) 00:07:15exec実行でカーネルがヒープを解放・獲得するから問題ないってことかな。
逆にexecが失敗した場合にfreeするとダブルフリーでglibcがエラー出すみたい。
execから戻るときはヒープは真っ白なのだろうか。
確かにこちらの環境でも、exec()失敗後のfree() でチャイルドプロセスがコアをはきました。(親プロセスは続行しますが。)
man をみても、そのあたりのことは書いてないようですね。作法はなんでしょうね。
あと、一番トップのプロセスは自分がfork() したプロセスの終了しか wait() していないので、場合によってはプロンプトを出すタイミングが
速すぎる場合がありますね。fflush() をいろいろ入れてみたのですが改善しませんね。
なかなかむずかしい。
0170デフォルトの名無しさん
2011/01/09(日) 03:25:07別にfree()する必要ないんじゃない?
0171デフォルトの名無しさん
2011/01/09(日) 03:45:20一部原型がないけど。
http://codepad.org/LbA7xomp
読み込んだ画像を逆に表示していたから修正済み。
マウスクリック時の動作だけは問題ないはず。
honjoフィルターとやらはどう動くのか予想がつかないから知らん。
ただ領域外参照しそうな部分だけ修正済み。
変数名は使いやすいようにほとんどリネームした。
RGBの各種変数はまったく持って不必要だったから消した。
他にも不要な変数は削除済み。
0172デフォルトの名無しさん
2011/01/09(日) 09:20:04そうですね。最終的に exit() してチャイルドプロセスのメモリ領域はOSに返してしまいますものね。
0173デフォルトの名無しさん
2011/01/09(日) 16:45:330174デフォルトの名無しさん
2011/01/09(日) 19:06:13遅くなりました
ありがとうございます
コンパイルしたところ
fatal error C1083: include ファイルを開けません。'glut.h': No such file or directory
と出ました
0175デフォルトの名無しさん
2011/01/09(日) 19:37:56先生言わなかったのか
0176デフォルトの名無しさん
2011/01/09(日) 19:39:01>>171 は #include <glut.h>
0177デフォルトの名無しさん
2011/01/09(日) 19:45:010178デフォルトの名無しさん
2011/01/09(日) 20:33:24[1] 授業単元:C
[2] 問題文(含コード&リンク):
行の数が同数である(csv1)と(csv2)を横に連結し(csv3)を作成作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC
[3.3] 言語: C
[4] 期限: 2011年1月10日23:59まで
[5] その他の制限:
csv1及びcsv2のサイズは決まってないです
csv1及びcsv2は行数が同じです
csv1(20行8列)csv2(20行3列)のとき
csv3(20行11列)が出力されます
0179デフォルトの名無しさん
2011/01/09(日) 20:56:02018088
2011/01/09(日) 21:28:380181デフォルトの名無しさん
2011/01/09(日) 21:38:48画像処理 その12
http://hibari.2ch.net/test/read.cgi/tech/1247100724/
【Intel】OpenCV総合スレ 3画素目【画像処理】
http://hibari.2ch.net/test/read.cgi/tech/1271686856/
おすすめ
とりあえず、サンプル画像とかあったらうれしいかな
0182デフォルトの名無しさん
2011/01/09(日) 21:51:57018388
2011/01/09(日) 21:57:48ご丁寧にありがとうございます
サンプル画像は
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Chest.jpg
0184デフォルトの名無しさん
2011/01/09(日) 23:18:29問題1は、適当な閾値で二値化してfindContoursすればいいんじゃないかな
で、適当に処理して胸っぽいのをとってくればおk
0185デフォルトの名無しさん
2011/01/10(月) 00:17:35[2] 問題文(含コード&リンク): ランレングス圧縮をするプログラムを作成せよ。
5MBあるテキストファイルを圧縮してください。アルファベット小・大文字しかない。改行はない。
このプログラムをできるだけ簡単に作成せよ。
例:もしAAABBBCCCでしたらA3B3C3というふうに作成。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Microsoft VisualC++2010
[3.3] 言語:C言語
[4] 期限:2011年1月11日19:00まで
[5] その他の制限: 明解C言語入門まで習ってます。
皆さんのお力を借ります。よろしくお願いします。
0186デフォルトの名無しさん
2011/01/10(月) 00:30:45#include<stdio.h>
void output(int moji, int length)
{
if(length==1) printf("%c", moji);
if(length>1) printf("%c%d", moji, length);
}
int main(void)
{
int moji, moji_prev=0, length=0;
while((moji=getchar())!=EOF)
{
if(moji!=moji_prev)
{
output(moji_prev, length);
length=1;
}
else
{
length++;
}
moji_prev=moji;
}
output(moji_prev, length);
return 0;
}
0187デフォルトの名無しさん
2011/01/10(月) 00:59:36一行の長さ制限はあるけど
ttp://ideone.com/5ICTx
0188デフォルトの名無しさん
2011/01/10(月) 02:20:36>>187と比べて
・一行の長さはメモリの許す限り
・CSV1 の末尾カンマが足りなくても正常に結合
・CSV1 と CSV2 の行数が合わなくても正常に結合
http://codepad.org/w6nl4OV9
まともにやったら100行超えるとは
0189デフォルトの名無しさん
2011/01/10(月) 04:32:12[2] 問題文(含コード&リンク): http://www.dotup.org/uploda/www.dotup.org1351836.jpg
[3] 環境
[3.1] Linux
[3.2] gcc
[3.3] C言語
[4] 期限: 1/10
よろしくお願いします
0190デフォルトの名無しさん
2011/01/10(月) 05:18:54#include <math.h>
double distance(double x1, double y1, double x2, double y2)
{
return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
double circle(double x1, double y1, double x2, double y2)
{
double r = distance(x1, y1, x2, y2) / 2;
return r * r * M_PI;
}
int main(void)
{
double x1, y1, x2, y2;
scanf("%lf%lf%lf%lf", &x1, &y1, &x2, &y2);
printf("%f\n", circle(x1, y1, x2, y2));
return 0;
}
0191デフォルトの名無しさん
2011/01/10(月) 05:46:430192デフォルトの名無しさん
2011/01/10(月) 05:54:49アルゴリズムは…、
�@あるファイルのサイズをバイト数で入力
�Aline_int_sz=ファイルサイズ/4
ファイルサイズ%4!=0でline_int_sz++
�Bline_int_szだけint型の動的配列の確保
�Cファイルからfgetcでunsigned char型bufに入力
�D4つのunsigned char型bufができたら、(*(int)buf)こん感じで
順番に動的配列に値を入れていく感じです。
ソースコードを下に載せます。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int GetFileSize(char filename[FILENAME_MAX]);
int main(){
FILE *fp;
char filename[FILENAME_MAX];
int i;
int sz;
int line_int_sz;
int *data;
unsigned char buf[4];
int roop,q;
int buf_int;
printf("input the filename>>>\n");
scanf("%s",filename);
sz=GetFileSize(filename);
0193デフォルトの名無しさん
2011/01/10(月) 05:56:49roop=line_int_sz=(int)sz/4;
if(sz%4!=0){
line_int_sz++;
}
data=(int *)malloc(line_int_sz);
if((fp=fopen(filename,"rb"))==NULL){
printf("%s are fileopen errer...\n",filename);
exit(EXIT_FAILURE);
}
printf("data size is %d bytes.\n",sz);
for(i=0;i<roop;i++){
buf[3]=(unsigned char)fgetc(fp);printf("%x ",buf[3]);
buf[2]=(unsigned char)fgetc(fp);printf("%x ",buf[2]);
buf[1]=(unsigned char)fgetc(fp);printf("%x ",buf[1]);
buf[0]=(unsigned char)fgetc(fp);printf("%x ",buf[0]);
printf("\n");
buf_int=*(int *)buf;
data[i]=buf_int;
printf("data[%d]=%x\n",i,data[i]);
}
0194デフォルトの名無しさん
2011/01/10(月) 05:59:30//上の続きです
//あまりブロックの処理
q=sz%4;
if(q!=0){
for(i=0;i<q;i++){
buf[3-i]=(unsigned char)fgetc(fp);
}
for(i=q;i<4;i++){
buf[3-i]=NULL;
}
for(i=3;i>=0;i--){
printf("%x ",buf[i]);
}
printf("\n");
buf_int=(*(int *)buf);
data[line_int_sz-1]=buf_int;
printf("data[%d]=%x\n",line_int_sz-1,data[line_int_sz-1]);
}
// printf("End...\n");
fclose(fp);
free(data);
return 0;
}
//次がラストです
0195デフォルトの名無しさん
2011/01/10(月) 06:01:46int GetFileSize(char filename[FILENAME_MAX]){
fpos_t fsize = 0;
FILE *fp = fopen(filename,"rb");
/* ファイルサイズを調査 */
fseek(fp,0,SEEK_END);
fgetpos(fp,&fsize);
fclose(fp);
return (int)fsize;
}
ここまでなんですが、
コンパイルは一応通ります。
実行中にエラーがでて、
なぜかControl+cも使えません。
どなたか解決策を教えて頂ければと思います。
よろしくお願い致します。
0196デフォルトの名無しさん
2011/01/10(月) 06:31:19死ね
0197デフォルトの名無しさん
2011/01/10(月) 06:36:13ありがとうございます
まじで助かりました
0198デフォルトの名無しさん
2011/01/10(月) 06:40:330199デフォルトの名無しさん
2011/01/10(月) 10:35:22問題も解決してよかったの〜
0200デフォルトの名無しさん
2011/01/10(月) 10:36:500201デフォルトの名無しさん
2011/01/10(月) 11:04:54解答ありがとうございます。
助かりました。
この場合テキストファイルから読み出すにはどうすればいいのですか?
0202デフォルトの名無しさん
2011/01/10(月) 11:47:03foo < bar
0203デフォルトの名無しさん
2011/01/10(月) 17:15:56[2] 問題文(含コード&リンク):挟み将棋のプログラム
[3] 環境
[3.1] OS: (Windows/Linux/等々) WindowsXP
[3.2] コンパイラ名とバージョン: Microsoft VisualC++2010 Express
[3.3] 言語: c++
[4] 期限: 2011/1/12 23:59まで
[5] その他の制限: 特になし。
VC++初心者でうまくできません。
皆さんのお力を貸してください、よろしくお願いします。
0204デフォルトの名無しさん
2011/01/10(月) 17:23:57・人間 vs 人間
・マウスにて駒の移動を行う
・碁盤サイズ9×9
0205デフォルトの名無しさん
2011/01/10(月) 17:46:02コマの配置を自分でして両方のコマを自分で動かして詰んだかの判定も自己申告な感じでいいのか?
それとCLIでいいのかGUIがいいか?
ExpressについてるものでGUIでと言われたらおれはやらんが
0206デフォルトの名無しさん
2011/01/10(月) 17:46:440207デフォルトの名無しさん
2011/01/10(月) 17:47:150208デフォルトの名無しさん
2011/01/10(月) 17:51:420209デフォルトの名無しさん
2011/01/10(月) 18:24:020210デフォルトの名無しさん
2011/01/10(月) 18:31:26[2] 問題文(含コード&リンク)
問題1
5文字分の文字を、文字コードで入力した後、文字列として表示するプログラム
を作成しなさい。 要素数5 の整数型の配列num に,キーボードから入力された数値を順番に格納
します。5 文字の文字列が保存できる文字配列str に,num 内の数値を文字コードとして一つ
ずつ代入(コピー)します。最後にstr に保存されている文字列を画面に表示してください.
<実行例>
文字コード0:80
文字コード1:97
文字コード2:115
文字コード3:99
文字コード4:111
文字列 = Pasco
問題2
キーボードから文字列を入力し,その文字列を縦書きで表示するプログラムを作
成しなさい。このプログラムは「文字列が格納されている配列から,一文字だけ表示して改
行する」という処理を文字数分だけ繰り返すことで実現できます.
<実行例>
文字列:orz
o
r
z
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:1月11日
[5] その他の制限: なし
よろしくお願いします。
「無駄合い」(飛車で王手がかかっているところで合駒で受けてはみるがその合駒が取られるだけで結局最後には詰んでしまう)を除去するのにはどうすればいいんでしょうかね?これがネックでいい詰め将棋の解探索プログラムがいまだに完成させられないんです。
0212デフォルトの名無しさん
2011/01/10(月) 18:42:45[2] 問題文(含コード&リンク):
まず10列に分けて数字が大量に書き込まれている1.csvというファイルを読み込みます
この1.csvは書かれている数値の大半が0で100までの数値がランダムでたまに出てくるというようなファイルです
このcsv内を参照していき、数値を検出したところで新たに出力する2.csvの同一場所に検出したということを書き込んでいきます
検出された数値が50以下のときは小、50〜70のときは中、70〜100のときは大と書き込まれるようにします
[3] 環境
[3.1] OS: Windows
[3.3] 言語: C++
[4] 期限: 1月12日まで
つい最近もcsv関連で助けていただいて、そのときも日本語が不自由だったのですが今回は更に酷いかもしれません
意味不明なところがあったらつっこんでくれると幸いです。どなたかよろしくお願いします
0213デフォルトの名無しさん
2011/01/10(月) 19:12:57問題3
キーボードから入力した99文字以内の文字列を、下記の様に画面に表示するプロ
グラムを作成せよ。
【実行例】
文字列を入力してください:ABCDEFG
文字列 = ABCDEFG
問題4
キーボードから入力した文字列を、1文字毎に2回づつ表示するプログラムを作成
せよ。
【実行例】
文字列を入力してください:ABC
文字列 = AABBCC
お願いします
0214デフォルトの名無しさん
2011/01/10(月) 19:34:51問題1
http://ideone.com/vBPV6
問題2
http://ideone.com/nDWSt
0215デフォルトの名無しさん
2011/01/10(月) 19:44:04[2] 問題文(含コード&リンク):
(1)商品情報(商品コード、品名,価格,在庫量、入荷日)を、ファイルから線形リストに商品コードの昇順に読み込む。
(2)線形リストの全データを画面に出力する。
(3)指定した条件(品名)に合う商品情報を画面に出力する。
[3] 環境
[3.1] OS: Windows
[3.3] 言語: C/C++
[4] 期限: 1月11日15:00まで
[5] ・ファイルから線形リストに商品コードの昇順に読み込む。
・指定した条件(商品名)に合う商品情報を画面に出力する。
の2箇所が分かりませんでした。
途中経過は、http://codepad.org/wzzb8rBu です。
後者はstrcmp関数を使えば、とまでは考えたのですが…
入力ファイルの中身も下の方にコメント文で入れてあるので、ご指摘お願いします。
0216デフォルトの名無しさん
2011/01/10(月) 19:45:26問題3
http://ideone.com/ea9wl
問題4
http://ideone.com/91ktW
0217デフォルトの名無しさん
2011/01/10(月) 20:02:02GUIって何使えば良いのか明記
・Win32API
・ATL
・MFC
0218デフォルトの名無しさん
2011/01/10(月) 20:07:24線形リストを自分で作るのは面倒だからC++のSTLを使った方が早いと思うけど、途中経過がC言語だ
本当にC++も可なのか?
0219デフォルトの名無しさん
2011/01/10(月) 20:26:15STLとやらはまだ習っていないので、
おそらくC言語で書くべきのように思います…
お手数おかけしてすみません。
0220デフォルトの名無しさん
2011/01/10(月) 20:33:180221デフォルトの名無しさん
2011/01/10(月) 20:34:020222デフォルトの名無しさん
2011/01/10(月) 22:01:100223デフォルトの名無しさん
2011/01/10(月) 22:02:07どこにあるんだ?
0224デフォルトの名無しさん
2011/01/10(月) 22:05:33>>222
詰め将棋ってのは誰の問題なんだ?
0225デフォルトの名無しさん
2011/01/10(月) 22:16:09よろしくお願いいたします。
>>222 詰め将棋ではなく、挟み(はさみ)将棋です。
0226デフォルトの名無しさん
2011/01/10(月) 22:36:09間違えた
0227デフォルトの名無しさん
2011/01/10(月) 22:45:1332とは別人ではありますが、
自分の出されている課題とまったく同じなので
是非ソースを拝見させていただきたいです・・・
0228デフォルトの名無しさん
2011/01/10(月) 22:45:46〜プログラミング1みたいな講義の絞めの課題でよく出されるよね
0229デフォルトの名無しさん
2011/01/11(火) 02:13:57遅くなりました
GLUTをインストールしても同様のエラーが出るので、先生にしたところ
次のようなコメントが返ってきました。
実行時に,入力ファイルを指定する必要がある。
ファイルのパスがちがう、ファイル名が違う、等の理由でプログラムが画像ファイルを見つけることができないと、そのようなエラーがでる。
コンパイルしたプログラムと同じディレクトリに画像ファイルをおいて実行しなさい。
これは、ソースファイルに画像ファイルを置けということでしょうか?
0230デフォルトの名無しさん
2011/01/11(火) 06:12:57[2] 問題文(含コード&リンク):
y.txtというアルファベットしか含まれていない単純なテキストファイルを用意します。
それをC言語にて読み込んでランレングス圧縮します。
そしてそれを圧縮したz.txtを新たに作り出します。
作成した後、z.txtをもとのy.txtに戻す(復号化)プログラムを作成せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限:早急に
[5] その他の制限:C言語の基礎
#include <stdio.h>
#include <stdlib.h>
void func(FILE *fp1, FILE *fp2) {
int c1, c2, l = 0;
for(c1 = c2 = fgetc(fp2); c1 != EOF; c2 = fgetc(fp2)){
if(c1 != c2){
fprintf(fp1, "%c%d", c1, l);
l = 1;
c1 = c2; }
else ++ l; }}
int main(void) {
FILE *fp1 = fopen("z.txt", "w"), *fp2 = fopen("y.txt", "r");
if(!fp1 || !fp2) exit(EXIT_FAILURE);
func(fp1, fp2);
fclose(fp1);
fclose(fp2);
return 0;}
圧縮プログラムはこんな感じでできました。復号をよろしくお願いします。皆さんの力をお借りします。
0231デフォルトの名無しさん
2011/01/11(火) 06:56:54ttp://ideone.com/VDZJe
0232デフォルトの名無しさん
2011/01/11(火) 10:00:41ありがとうございます。助かりました。
0233デフォルトの名無しさん
2011/01/11(火) 14:30:30同様のエラーとはコンパイルエラーなんでしょ
だとすれば、君のコミュニケーション能力に問題が有るのか、講師が無能なのか...
コンパイル時に glut.h not found が出るならインクルードパスが通っていないって事だから少し調べれば答えは簡単に見つかるよ
0234デフォルトの名無しさん
2011/01/11(火) 17:41:17そもそも OpenGL が入ってなくて $(MSDevDir)\..\..\VC98\include\GL にパスも通ってない可能性
0235デフォルトの名無しさん
2011/01/11(火) 17:42:01[2] 問題文(含コード&リンク)
関数の定義と呼出しに慣れるために、下記の3つの関数を定義ならびにmain関数からその関数の呼出を行うプログラ
ムを作成しなさい。関数内で行う処理ならびにmain関数で行う処理はプログラム例を参考に、実行例と同じ結果が出
力されるように考えてください。
<定義する関数>
minof関数 ・・・引数として受け取った2つの整数n1とn2のうち、小さいほうの値を戻り値として返す。
print_hello関数 ・・・関数内で入力された名前xxxを用い、「こんにちは、xxxさん!」と表示する。
put_stars関数 ・・・引数として受け取った整数noを使用して、*をno個連続表示する。
<実行結果>
名前を教えて下さい:Taro
こんにちは、Taroさん
整数を2つ入力してください
(小さい方の値の数だけ * を表示します)
num1 = 20
num2 = 15
小さい方の値は15ですね。
それでは * を15個表示します。
***************
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:1月11日
[5] その他の制限: なし
よろしくお願いします。
0236デフォルトの名無しさん
2011/01/11(火) 18:49:16http://codepad.org/ed28NDls
0237デフォルトの名無しさん
2011/01/11(火) 18:55:010238デフォルトの名無しさん
2011/01/11(火) 19:13:20[2] 問題文(含コード&リンク)
問題1 キーボードから演算記号と2つの整数値を入力し、演算結果を終了の指示があるまで演算を繰返し行うプログラムを作成しなさい。
<作成条件>
�@演算は、整数2つと演算記号を引数とするcalc関数を定義して行い、演算結果を戻り値として返すこと。
�A演算記号として’e’が入力された場合はプログラムの繰返しを終了すること。
�B演算記号は、加減乗除(+、−、*、/)を使用し、それ以外の文字が入力された場合は、警告メッセージを表示し、再度演算記号の入力をすること。
<実行結果>
演算記号(+,-,*,/)を入力してください
op = +
整数を2つ入力してください
num1 = 5
num2 = 10
5 + 10 = 15
演算記号(+,-,*,/)を入力してください
op = /
整数を2つ入力してください
num1 = 8
num2 = 3
8 / 3 = 2
演算記号(+,-,*,/)を入力してください
op = e
終了します
問題2 キーボードから入力された3つの整数の合計を求めるプログラムを作成せよ。 ただし、 以下の条件を満してプログラムを作成すること。
キーボードからの入力はmain関数内で行う。3つの値の合計の計算はadd関数内で行う。main関数からadd関数を呼び出す。合計値を関数の戻り値として受け取り、main関数内で表示する。
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:1月11日
よろしくお願いします。
0239デフォルトの名無しさん
2011/01/11(火) 20:28:38[2] 問題文(含コード&リンク)
縦は無数、横が10列で数字が書き込まれているecxelファイルを読み込む(ファイル名は何でもいいです)
読み込む時は今後の処理を考えてなるべく配列で
その後各列を縦に参照していき、正の値が出たときは別の同じ型の配列の同じ位置に代入していく
負の値が出たときに、そのセルの列の前5個、後ろ5個を参照し以下の処理を行う
前にも後ろにも正の値が検出された場合 → 参照しているセルに一番近い前と後ろの値の2つの平均値を取得し別の配列に格納する
前あるいは後ろの片方にしか正の値が検出されなかった場合 → 一番近い値をそのまま別の配列に格納する
前にも後ろにも正の値が無い場合 → そのままの負の値で別の配列に格納する
最後に値の変更を終えた別の配列をそのままresult.csvとして出力する
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C++
[4] 期限:1月12日
[5] その他の制限: なし
問題は口頭で出されたため具体的にこのようにやらなければいけないという指定はないのですができれば配列でお願いしたいです
もっと良いやり方があるのに、と思った場合は結果が変わらないのであればどのような方法でもかまいません
よろしくお願いします
0240デフォルトの名無しさん
2011/01/11(火) 21:00:57無数・・・・
0241デフォルトの名無しさん
2011/01/11(火) 21:07:54大体1000くらい入るんですがもっと入る可能性もあったりしますので、確定できてないです
0242デフォルトの名無しさん
2011/01/11(火) 21:14:450243デフォルトの名無しさん
2011/01/11(火) 21:43:260244デフォルトの名無しさん
2011/01/11(火) 21:54:530245デフォルトの名無しさん
2011/01/11(火) 21:59:39配列の何が厳しいかとか良く分からずに質問して申し訳ありません。似た感じのものでも結構なので1000という指定でも良いです
>>243
〜.csvってファイルを読み込んでやりたいのですが、ActiveXという単語は初耳でした
もしかしてエクセルファイルって表現はまずかったでしょうか?数字しか入ってないcsvファイルです
0246デフォルトの名無しさん
2011/01/11(火) 22:14:36[2] 問題文(含コード&リンク): http://www.dotup.org/uploda/www.dotup.org1354869.txt.html
[3] 環境
[3.1] OS: WindowsXP
[3.2] Visual studio
[3.3] 言語: C
[4] 期限: 1/12
[5] その他の制限: 条件文 / 繰り返し文などを用いる
宜しくお願い致します。
0247デフォルトの名無しさん
2011/01/11(火) 22:20:57ライフゲームまんまやね
0248246
2011/01/11(火) 22:24:11http://www.dotup.org/uploda/www.dotup.org1354902.txt.html
問題文ですが、こちらでお願い致します。
0249デフォルトの名無しさん
2011/01/12(水) 00:01:03ありませんが
0250デフォルトの名無しさん
2011/01/12(水) 01:23:17[1] 授業単元: C言語基礎講座
[2] 問題文(含コード&リンク):
戦闘シュミレーターの制作(ドラクエのようなものです)
二人分の名前(文字列)を入力、入力された文字列から攻撃力、HPを制作↓
バトルをする(どちらかのHPが0になるまで)
試合結果表示
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Visual studio2008
[3.3] 言語: C++
[4] 期限:1月13日
[5] その他の制限:文字列から生成するパラメーターは法則を作る。
わかりにくい文章ですみません。知恵を貸してくれると助かります。
0251デフォルトの名無しさん
2011/01/12(水) 01:23:430252デフォルトの名無しさん
2011/01/12(水) 01:46:490253デフォルトの名無しさん
2011/01/12(水) 01:48:382人目名前8文字→攻撃力80 HP700
攻撃力やHPは+αでランダム補正値を付加して
戦わせるってことかね
名前のアルファベットで補正値作る方法もいいね。
作り手の思想が大きく影響する問題だなぁ
0254デフォルトの名無しさん
2011/01/12(水) 01:56:430255デフォルトの名無しさん
2011/01/12(水) 02:02:43>>253 アルファベットでパラメーターを作りたいのですが難しくてorz
>>254 まさにあのゲームと同じ考え方だと思います。
0256デフォルトの名無しさん
2011/01/12(水) 02:06:18int atk[2]={0},hp[2]={0};
char name0[32],name1[32];
scanf("%s",name0);
scanf("%s",name1);
for(i=0;i<32&&name0[i]!='\0';i++) {
atk[0]+=name0[i];
hp[0]+=name0[i]/(int)strlen(name0);
}
atk[0]/=(int)strlen(name0)*2;
for(i=0;i<32&&name1[i]!='\0';i++) {
atk[1]+=name1[i];
hp[1]+=name1[i]/(int)strlen(name1);
}
atk[1]/=(int)strlen(name1)*2;
こんな感じで?
0257デフォルトの名無しさん
2011/01/12(水) 02:54:29AAAが弱くてZZZが強いってすぐにバレちゃうからもっと捻らないとダメじゃない?
0258246
2011/01/12(水) 02:55:31[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): http://www.dotup.org/uploda/www.dotup.org1355480.txt.html
[3] 環境
[3.1] OS: WindowsXP
[3.2] Visual studio
[3.3] 言語: C
[4] 期限: 1/12
[5] その他の制限: 条件文 / 繰り返し文などを用いる
宜しくお願い致します。
0259109
2011/01/12(水) 02:59:27皆さん尽力していただきありがとうございます
最終的にはどうすればよいでしょうか
自分では全く手が出なくて・・・
本当に申し訳ないのですがよろしくお願い致します
0260デフォルトの名無しさん
2011/01/12(水) 03:42:32http://ideone.com/wq69t
0261デフォルトの名無しさん
2011/01/12(水) 03:54:07無数というと、普通は「数え切れないほど沢山」の意味になります。
ここでは、沢山を強調したいのではなく、要素数が不定であるの
ということですね。
0262デフォルトの名無しさん
2011/01/12(水) 03:55:430263デフォルトの名無しさん
2011/01/12(水) 03:59:29その通りです。日本語不自由で申し訳ないです。
おそらく500〜700くらいになるんですが最大1000くらいまで縦の要素数が増える可能性があります
0264デフォルトの名無しさん
2011/01/12(水) 04:01:02参考にして頑張ります。
0265デフォルトの名無しさん
2011/01/12(水) 08:26:38問題1 キーボードから4つの整数を入力し、その中の最大値を表示するプログラムを作成しなさい。 ただし、このプログラムは下記の2つの種類の処理を、1つのプログラム内で行うように作成してください。
<実行結果>
配列を使わない処理です
num1 = 25
num2 = 84
num3 = 12
num4 = 68
最大値は84です。
配列を使用した処理です
num1 = 25
num2 = 84
num3 = 12
num4 = 68
最大値は84です。
0266デフォルトの名無しさん
2011/01/12(水) 08:29:16ただし、このプログラムは問題3と同様下記の2つの種類の処理を、1つのプログラム内で行うように作成すること。
配列を使わないで、最大値を求める処理(入力用変数:num1,num2,num3,num4)
配列を使わない処理です
num1 = 34
num2 = 21
num3 = 98
num4 = 5
最大値は98です。
配列を使用した処理です
num1 = 34
num2 = 21
num3 = 98
num4 = 5
最大値は98です。
配列を使わない処理です
num1 = 3
num2 = 4
num3 = 5
num4 = 6
最大値は6です。
配列を使用した処理です
num1 = 7
num2 = 8
num3 = 6
num4 = 5
num5 = 4
num6 = 3
num7 = 2
num8 = 3
最大値は8です。
[3.1] OS: unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限:1月12日
0267デフォルトの名無しさん
2011/01/12(水) 10:22:32[2] 問題文(含コード&リンク):
・1からNまでの平均値を求める関数を作成せよ。
・ただし以下の3つの方法のうち、2つの方法でプログラムを作成せよ。
ー値を返す
ー値渡し
ー参照渡し(アドレス渡し)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: なるべく早急に
[5] その他の制限:
[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] その他の制限: なし
0268デフォルトの名無しさん
2011/01/12(水) 10:36:400269デフォルトの名無しさん
2011/01/12(水) 11:05:510270デフォルトの名無しさん
2011/01/12(水) 12:43:530271デフォルトの名無しさん
2011/01/12(水) 14:02:43>オンのます目の周りに2つ、3つのます目があれば、次の回でもオンになる
これってオンのマス目の周りにオフのマス目が2 or 3個有れば次もオンって事?
0272デフォルトの名無しさん
2011/01/12(水) 14:14:23マスの周りに3つON: OFF→ON
上記以外: ON→OFF
0273デフォルトの名無しさん
2011/01/12(水) 14:29:22>>272 の解釈が正しいのか?書いたのは周りに 2 or 3 のオンが有るオンはオンなんだが、
違うなら、oneCycle() を弄んでくれ
ttp://codepad.org/KbnM8A7m
なお、30x30 の csv を用意するのが面倒だったので 10x10 でしか動作を確認していない
X_MAX, Y_MAX を 30 に変更し、30x30 の life.csv を用意して動作確認してくれ
0275デフォルトの名無しさん
2011/01/12(水) 15:49:52C++でWin32API直叩きGUIは面倒
あんま期待しないほうがいい
0276デフォルトの名無しさん
2011/01/12(水) 16:07:47http://codepad.org/tt3sx0Ui
0277デフォルトの名無しさん
2011/01/12(水) 16:08:34[2] 問題文(含コード&リンク):
Cプログラミングの基礎[新訂版]発行:サイエンス社 著:蓑原隆より
P48 3.1 3.2 3.3 3.4 P55 4.1 P88 5.1 P104 6.1 6.2
http://upload.jpn.ph/upload/img/u72273.jpg
http://upload.jpn.ph/upload/img/u72276.jpg
http://upload.jpn.ph/upload/img/u72274.jpg
http://upload.jpn.ph/upload/img/u72275.jpg
[3] 環境
[3.1] OS:Windows
[3.2] Visual Studio 2010 Pro
[3.3] 言語: Cのみ
[4] 期限: [2011年01月21日08:00まで]
[5] その他の制限: 特に無し
0278デフォルトの名無しさん
2011/01/12(水) 16:44:24対人戦って事は通信対戦?初心者に出す宿題じゃねぇな
いろいろ面倒なので解いてくれる人は居ないと思うよ
.....500円でコード書いてくれる人はもう居ないのかな?
0279デフォルトの名無しさん
2011/01/12(水) 16:56:17さすがに PC1台で手番交代毎に操作プレイヤーを変える方式じゃない?
ネットワーク周辺の授業の課題で だったら 通信対戦も視野にいれなきゃいけないが…
0280デフォルトの名無しさん
2011/01/12(水) 17:12:38>>275 ご教授ありがとうございます。アルゴリズムだけでもいただけたらと思っております。
0281デフォルトの名無しさん
2011/01/12(水) 17:31:39[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: Windows
[3.2] gcc ver未確認
[3.3] 言語: C++
[4] 期限: 2011年1月17日24:00
6元連立非線形方程式をNewton法を用いたC++のプログラムで解く問題です。
空白部分を埋める形式の課題です。
txtは資料と課題のそれぞれのソース部分です。
参考資料
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/20.txt
http://iup.2ch-library.com/i/i0222049-1294819355.jpg (例題)
http://iup.2ch-library.com/i/i0222051-1294819355.jpg (実行結果)
こちらが課題です
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/21.txt
http://iup.2ch-library.com/i/i0222050-1294819355.jpg (問題)
私の頭だとかなり厳しいです。
数値計算法という単元なので専門的な知識が必要かもしれませんが、
どなたか解決できそうな方、よろしくお願いします。
0282デフォルトの名無しさん
2011/01/12(水) 17:39:20できれば今日中にどなたかお願いします。完全に完成しているものでなくてもおおまかなものでもいいので
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
縦は不定(500〜1000行)、横が10列で大量に数値が書かれているcsvファイルをまず読み込みます。仮にsuuchi.csvとして
読み込む時は今後の処理を考えてなるべく配列
その後各列を縦に参照していき、正の値が出たときは別の同じ型の配列の同じ位置に代入していく
負の値が出たときに、そのセルの列の前5個、後ろ5個を参照し以下の処理を行う
前にも後ろにも正の値が検出された場合 → 参照しているセルに一番近い前と後ろの値の2つの平均値を取得し別の配列に格納する
前あるいは後ろの片方にしか正の値が検出されなかった場合 → 一番近い値をそのまま別の配列に格納する
前にも後ろにも正の値が無い場合 → そのままの負の値で別の配列に格納する
最初の5つ、最後の5つは参照できる範囲まで参照できればOKです
最後に値の変更を終えた別の配列をそのままresult.csvとして出力する
基本的にもともと正の値だった部分はそのまま出力し、負の値を正の値に書き換えたいという処理です.前後5つずつが負の場合は書き換えを行わないままです
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C++
[4] 期限:1月12日
[5] その他の制限: なし
0283281
2011/01/12(水) 17:42:50専ブラだと開けないかも...IE等で開いて頂けると助かります。
参考資料
http://iup.2ch-library.com/i/i0222049-1294819355.jpg 例題
http://iup.2ch-library.com/i/i0222050-1294819355.jpg 実行結果
課題
http://iup.2ch-library.com/i/i0222051-1294819355.jpg 問題
0284デフォルトの名無しさん
2011/01/12(水) 18:03:30まとめてドン
ttp://codepad.org/RYCmX8fF
0285デフォルトの名無しさん
2011/01/12(水) 18:30:39なんで2次元配列を縦に参照していかなければならないのだ^^
後続の処理内容を鑑みるに横方向に捜査しても一緒だろがどってんばってん
(処理内容を同じ配列に上書きするわけじゃないからな)
0286デフォルトの名無しさん
2011/01/12(水) 18:37:49縦に参照、ってのにこだわりすぎですかね?そのセルの同じ列の上5つ、下5つのセルに対して処理をお子なればいいのですが
よく考えたら横方向に捜査してもいけそうですね・・
横に捜査していくほうが処理が楽になるようでしたら全く問題ないです
0287デフォルトの名無しさん
2011/01/12(水) 19:52:56[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org1356601.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 2011年1月13日 16:00まで
よろしくお願いします
0288デフォルトの名無しさん
2011/01/12(水) 20:25:230289デフォルトの名無しさん
2011/01/12(水) 20:30:59早いですね
あなたのおかげで1年早く卒業できそうです
ありがとうございました
0290デフォルトの名無しさん
2011/01/12(水) 22:08:29やってみる
超初心者ですがw
ちょっと自分の練習のためにも。
0291290
2011/01/12(水) 22:46:10みてみて
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/22.txt
0292290
2011/01/12(水) 22:47:44calc関数作るのね。
もう一度やる
0293290
2011/01/12(水) 22:57:29http://ideone.com/ZszRZ
0294デフォルトの名無しさん
2011/01/12(水) 23:12:08>>238 2つ目
http://ideone.com/zvaZM
0295デフォルトの名無しさん
2011/01/12(水) 23:16:00無理いって悪いですが、>>265と>266の問題もお願いできるでしょうか。
0296290
2011/01/12(水) 23:24:44http://ideone.com/ukHt2
0297290
2011/01/12(水) 23:49:39http://ideone.com/5DWJH
以上
0298デフォルトの名無しさん
2011/01/12(水) 23:55:300299デフォルトの名無しさん
2011/01/12(水) 23:56:50横やりだけど入力は1回で
配列使用時と未使用時の2つを出すんじゃない?
0300デフォルトの名無しさん
2011/01/12(水) 23:57:510301デフォルトの名無しさん
2011/01/12(水) 23:58:23問題あったら言ってくださいね。
0302デフォルトの名無しさん
2011/01/12(水) 23:59:11そういうことなんですかね。 あれま。
0303デフォルトの名無しさん
2011/01/13(木) 00:01:08途中
もうちょっと待ってくれれば作るよ
http://ideone.com/JKxHN
0304デフォルトの名無しさん
2011/01/13(木) 00:23:140305デフォルトの名無しさん
2011/01/13(木) 00:30:52[1] プログラミング基礎
[2] あるクラスの試験の点数を整数で繰り返し入力し、点数の合計と平均点を出力するプログラムを作成しなさい。
点数は、0点以上100点以下とし、この範囲外の点(0点未満または100点より大きい点)が入力されたときは、
入力を終了し、点数の合計と平均点を出力する(最後に入力された範囲外の点は集計の対象としない)。
また、平均は小数点以下2桁まで出力する。
繰り返しの命令は、何を使ってもよい。
※点数部分の数字は入力例ですので表示の必要はありません
実行例
点数:10
点数:100
点数:20
点数:35
点数:120
合計:165点
平均: 41.25点
[3] 環境
[3.1] OS: (WindowsXP)
[3.2] gcc
[3.3] 言語: (Cの方で
[4] 期限: ([2010年1月13日13:00まで]
[5] その他の制限: 配列やfscanfでは使ってはいけないがscanfはOKです。
0306デフォルトの名無しさん
2011/01/13(木) 00:42:50でけた
http://ideone.com/kFHTr
1.クリックして動かしたい駒を選択
2.移動できる場所がグレイ表示されるのでどれかをクリック
勝敗が決まったらWindowは閉じる
0307デフォルトの名無しさん
2011/01/13(木) 00:47:25とても助かりました!!ソースを見て1から勉強しようと思います!
0308デフォルトの名無しさん
2011/01/13(木) 01:00:57http://ideone.com/vCxby
0309デフォルトの名無しさん
2011/01/13(木) 01:14:04こんな夜遅くにありがとうございました
0310デフォルトの名無しさん
2011/01/13(木) 01:15:530311デフォルトの名無しさん
2011/01/13(木) 01:18:10問題文が意味不明すぎてみんなスルーしてる予感
0312デフォルトの名無しさん
2011/01/13(木) 01:30:28全体的に文章が滅茶苦茶なんですかね?それとも負の値の前後5つが〜ってところが意味不明なのでしょうか?
0313282
2011/01/13(木) 02:00:46ごちゃごちゃしてて読むのが苦痛かもしれないんですが、もしよければどなたかお願いします
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク)
縦は不定(500〜1000行)、横が10列で大量に数値が書かれているcsvファイルをまず読み込みます。仮にsuuchi.csvとして
読み込んだ値を配列suuchi[][10]のようなところに格納する
処理をした後の結果を書き込むresult[][]も同じサイズで用意する
その後suuchi[][]内のセルを順番に参照していき、正の値が出たときはresult[][]の同じ位置にその正の値をそのまま格納する
負の値が出たときに、そのセルの列の前5個、後ろ5個を参照
(例えばsuuchi[120][3]が負のとき、suuchi[115][3]〜suuchi[125][3]までを参照)し以下の処理を行う
前にも後ろにも正の値が検出された場合 → 参照しているセルに一番近い前と後ろの値の2つの平均値を取得しresulut[][]に格納する
(suuchi[118][3]が30でsuuchi[122][3]が40の場合、負の値であったsuuchi[120][3]を35に変更してresulut[120][3]のほうに代入
このときsuuchi[117][3]が正の値であったとしてもsuuchi[120][3]に位置が近いsuuchi[118][3]を対象とする)
前あるいは後ろの片方にしか正の値が検出されなかった場合 → 一番近い値をそのまま別の配列に格納する
(suuchi[118][3]が30でsuuchi[121][3]以降が全部負の値であった場合、suuchi[118][3]の30という値をそのままresulut[120][3]のほうに代入する
後ろにしか正の値がなかった場合も同様にそのままの値を代入する)
前にも後ろにも正の値が無い場合 → そのままの負の値で別の配列に格納する
(suuchi[120][3]が負で、suuchi[115][3]〜suuchi[125][3]を見ても全部負のときはsuuchi[120][3]の負の値をそのままresulut[120][3]に代入する)
最初の5行と最後の5行は参照できる範囲まで参照できればOKです
最後にresult[][]に入っているデータをresult.csvとして出力する
[3] 環境
[3.1] OS: Windows [3.2] コンパイラ名とバージョン: [3.3] 言語: C++
[4] 期限:できれば1月13日までに
[5] その他の制限: なし
if((a[i-5] > 0 || a[i-4] > 0 || a[i-3] > 0 || a[i-2] > 0 || a[i-1] > 0) &&
(a[i+5] > 0 || a[i+4] > 0 || a[i+3] > 0 || a[i+2] > 0 || a[i+1] > 0) )
/*前にも後ろにも正の値が有る*/
else
if(!(a[i-5] > 0 || a[i-4] > 0 || a[i-3] > 0 || a[i-2] > 0 || a[i-1] > 0) &&
!(a[i+5] > 0 || a[i+4] > 0 || a[i+3] > 0 || a[i+2] > 0 || a[i+1] > 0) )
/*前にも後ろにも正の値が無い*/
else
/*前あるいは後ろの片方にしか正の値が無い*/
0315デフォルトの名無しさん
2011/01/13(木) 02:25:51http://codepad.org/tOfPMQEq
ねむーいので、以下の制限あり。
CSVファイルは空白を区切り文字とする
0の扱いが書いていないので0の時は無視する
「一番近い」を「一番距離が近い」と解釈
これ、宿題じゃないだろ?^^
0316282
2011/01/13(木) 02:29:06わざわざ考えてくれてありがとうございます、助かります
宿題というか・・課題?というか。自分の考えでどうにかしろみたいな感じのものなんで問題文滅茶苦茶で申し訳ないです
0317315
2011/01/13(木) 02:39:29せっかく双方向リスト使ってるのに、不要になった要素をpopする処理を忘れていたよ^^
これでsuuchi.csvが10兆億万行あっても、OSが許す限り読めるよ^^
http://codepad.org/OMIRgn45
おやしみ^^
0318282
2011/01/13(木) 02:53:45空白を区切り文字というのは数値の間にそれぞれ空白が必要ということでしょうか?
ぎっしり詰まっているファイルは間を空けないと処理されないですか?
なんパターンか試してみたのですが一番最初の数値を処理して止まってしまいます
もし起きたときにこの質問を見ていたらでいいので教えてほしいです
0319デフォルトの名無しさん
2011/01/13(木) 03:04:02for( i=0; i<=10; i++)
というfor文でiを1msごとに1プラスされるようにしたいのですが、どうすればよいですか?
0320デフォルトの名無しさん
2011/01/13(木) 03:09:240321282
2011/01/13(木) 03:57:16というかcsvファイルについての知識が無さすぎました。すいません
カンマ区切りにできないかなと思っていろいろプログラムいじってみたのですが相当難しいですか?
0322デフォルトの名無しさん
2011/01/13(木) 04:45:26そのほうが手っ取り早い
0323デフォルトの名無しさん
2011/01/13(木) 07:31:08いろんな方法がある
環境(OSとか)や期待される精度で違ってくるので
一言で説明出来ない
質問自体が情報不足
っつーかマルチすんな
0324287
2011/01/13(木) 09:16:07[2] 問題文(含コード&リンク):
問題1
f(0)=f(1)=1. f(n)=f(n-2)+f(n-1) (n≧2)で定まる数列(Fibonacci数列)のf(n)の値と
f(n)までの合計を計算して、表示せよ f(20)まで
問題2
配列の各要素(20個)に、3桁の乱数を代入し、この配列データの大きい順に並べ替えよ
このとき、ソートの円形として、第2配列を用意してこれに移し変える処理を考えよ
(第1配列上で大きいデータを順に取り出し、第2配列に移し替える。第1配列データはそのまま残しておく)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2011年1月13日 16:00
どなたか>>287お願いできないでしょうか
アップロードしたファイルが消えると思ったのでまた書き込みました
よろしくお願いします
しつこくてすみません
0325デフォルトの名無しさん
2011/01/13(木) 09:38:12#include <stdio.h>
int f(int n)
{
return n < 2 ? 1 : f(n - 1) + f(n - 2);
}
int main(void)
{
int i, fn, sum;
for(i = sum = 0; i <= 20; i++) {
sum += (fn = f(i));
printf("f(%d) = %d sum = %d\n", i, fn, sum);
}
return 0;
}
0326デフォルトの名無しさん
2011/01/13(木) 10:25:47問題2
http://codepad.org/fxkCeflB
0327デフォルトの名無しさん
2011/01/13(木) 11:08:45お礼書くの遅くなってすいません
ありがとうございます
本当に助かりました
0328282
2011/01/13(木) 11:18:04ありがとうございます
ttp://www1.axfc.net/uploader/File/so/56965
パス suuchi
でアップロードさせてもらいました
このcsvは極端にマイナスの値の列とそうでない列が偏ってしまってるんですが
ばらばらに点在することもあります
0329デフォルトの名無しさん
2011/01/13(木) 12:08:10[1] 授業単元: Cプログラミン
[2] 問題文(含コード&リンク):
四則演算をコマンドラインから入力して答えを出せ。
例)keisan.exe 4 x 7 + 2 - 20 / 2
答え:20
[3] 環境
[3.1] OS: WindowsXP SP2
[3.2] コンパイラ名とバージョン:mingw
[3.3] 言語: C
[4] 期限:2011年1月末
[5] その他:
http://codepad.org/Mb4okOyv
こんな感じで作りました。
「やさしいC」という本は一通り学びました。
計算はできるのですが評価、手直し、アドバイスをお願いします。
方法1)コンマをスペースに置き換えればいい。
方法2)各行の最後にコンマをもう一つ追加する。
in>>e>>comma と、os<<result<<",";
の所を修正する。read()にchar comma;を追加する。
0331282
2011/01/13(木) 13:38:29アドバイスありがとうございます
ご指摘の通りプログラムを修正したところ1行目までは処理できて
2行目以降の処理に入ることなく処理がとまってしまうのですが
列を切り替える際のカンマの処理ってのも必要なんでしょうか?
0333デフォルトの名無しさん
2011/01/13(木) 15:09:27CSV形式は普通行末にカンマはないだろ
#include <stdio.h>
int main()
{
FILE *fp, *tp;
char buf[1024];
fp = fopen("suuchi.csv","r");
tp = fopen("temp.csv","w");
while(fgets(buf, sizeof(buf), fp)){
buf[strlen(buf)-1] = '\0';
fprintf(tp, "%s,\n", buf);
}
fclose(fp);
fclose(tp);
rename("temp.csv", "suuchi.csv");
}
0335デフォルトの名無しさん
2011/01/13(木) 16:32:39だからそれはやめろっつーんだろカス
0336デフォルトの名無しさん
2011/01/13(木) 16:59:11http://codepad.org/yOJELepN
眠いときに作るとひどいプログラムになっちゃうね・_・
0338デフォルトの名無しさん
2011/01/13(木) 18:10:58int a[LINEMAX+5+5][COLSPAN] = {0}, b[LINEMAX+5+5][COLSPAN] = {0};
while(fgets(buf, sizeof(buf), ff) && count <= LINEMAX+5){
sscanf(buf, "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
&a[count][0], &a[count][1], &a[count][2], &a[count][3], &a[count][4],
&a[count][5], &a[count][6], &a[count][7], &a[count][8], &a[count][9] );
count++;
}
for(i=5; i<count; i++){
for(k=0; k<COLSPAN; k++){
result = a[i][k];
if(result < 0){
fw = adept(a[i-1][k], a[i-2][k], a[i-3][k], a[i-4][k], a[i-5][k]);
bw = adept(a[i+1][k], a[i+2][k], a[i+3][k], a[i+4][k], a[i+5][k]);
if( fw != 0 && bw != 0) /*前にも後にも正の値が有る*/
result = (fw + bw)/2;
else if( fw != 0) /*前にしか正の値が無い*/
result = fw;
else if( bw != 0) /*後にしか正の値が無い*/
result = bw;
else ; /*前にも後にも正の値が無い*/
}
b[i][k] = result;
}
fprintf(of, "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
b[i][0], b[i][1], b[i][2], b[i][3], b[i][4],
b[i][5], b[i][6], b[i][7], b[i][8], b[i][9] );
}}
int adept(int d1, int d2, int d3, int d4, int d5){
if(d1 > 0) return d1; if(d2 > 0) return d2; if(d3 > 0) return d3; if(d4 > 0) return d4; if(d5 > 0) return d5; return 0;}
0340デフォルトの名無しさん
2011/01/13(木) 20:21:24早稲田大学基幹理工学部情報理工学科3年
オペレーティングシステム(後半)の課題だな
やっぱりね、そろそろ来ると思ってたよww
0341デフォルトの名無しさん
2011/01/13(木) 22:28:38[1] 授業単元:画像処理
[2] 問題文(含コード&リンク):指定したテキストファイルの中にあるデータを読み込み、-1と右端の1を取り除き(横に4つの列、縦に約50の行の数字が並んでいる)、指定した場所にファイルを保存するプログラムを作成する。
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語:C++
[4] 期限: できるだけ早くお願いします。
[5] その他の制限:
0342デフォルトの名無しさん
2011/01/13(木) 22:52:24-2とか-3は取り除かなくていい。 全ての行において4列目には1が入っているということ?
0343デフォルトの名無しさん
2011/01/13(木) 23:06:590344デフォルトの名無しさん
2011/01/13(木) 23:20:130345デフォルトの名無しさん
2011/01/13(木) 23:23:46わかりづらくてすいません。
例で書くと
123 345 567 1
234 456 678 1
987 564 356 1
-1 -1 -1 -1
って感じで数字が羅列してあります。
必ず右端に1があるんですが例外で-1だけの行が数か所あります。
その-1と右端にある1を取り除くものをお願いします。
0346デフォルトの名無しさん
2011/01/13(木) 23:26:17/{::|:\:::::::\.:.:.:\.:.:.ヽ::.::.ヽ:.:.ヽ::::::::::.:.`゛ー- ..,__
: 何 : /:|::',: ト、::::::ヽ、:.\:.:.:.\:.:.ヽ:.:.:\.:.:.:.:.:::.:.:.:.:::.::::_;:-'´ : : :
: が : //: /:::|::',|::'、:::::::::\:.:\.:.:.ヽ:.:.:\:.:..\::::::::::::\、::::\ : : :
: 何 : /!::|::l:::: /|:::l:ヽ:\::ヽ:.:\:.:\.:::ヽ:.:.:ヽ:.:.:.:\::::::::::::\ ̄ : : :
: だ : |/l::|::|::|: ト、:::::::::、、:ヽ、:.:.:.:::::::::::::::ヽ::::.:ヽ:.:.:.:.\:.:.:.ヽ:::\. : : :
: か : |::|::/l::|::|r‐ヽ:::::ヽ(ヽー,―\::::::、::::::::::ヽ::.:.::::::.:::::::ヾ. ̄ : : :
: : }//l::|:::|{(:::)ヾ、:::ヽ \!(:::) ヽ,:::ヽ:::::::::::::::::::::::::::::::::::ヾ、 : : :
: わ :. |/l::|::|:::|ヽ==''" \:ヽ、ヽ=='" |:::::::::::::::::::::::::::::::::::ヽ、::::\
か / ',|::|:::| / `゛ |!::::::::::::::::::::::::::::ト、::ト、_` ゛`
ら l::!::::ト、 '、 _ ||::::::::::::::::::::::::ト:ヽヾ| | ̄ ̄ ̄`ヽ、
な r'"´||',::::', |:::::/l:::::|\:::ト、ヾ | | / / \
い / ll ',::', 、 ーこニ=- /!::/ ヽ:::| ヾ、 ノ ノ / ,イ ヽ、
,' | '、:, \ -- ,. '´ |;' l ヾ、. // / | l: l
| |! ヽ; ヽ /.: i! / ゛// |l / | | |
0347デフォルトの名無しさん
2011/01/13(木) 23:28:20「1」は右端だと分かるための情報って感じか?
じゃあ「-1」は下端かというと、「数カ所」ってことはそうでもない?
よく分からない
0348デフォルトの名無しさん
2011/01/13(木) 23:32:540349デフォルトの名無しさん
2011/01/13(木) 23:33:12234 456 678 1
987 564 356 1
-1 -1 -1 -1
543 985 951 1
234 852 753 1
852 123 356 1
-1 -1 -1 -1
ってかんじになってるんだろうね。
それを
123 345 567
234 456 678
987 564 356
543 985 951
234 852 753
852 123 356
にすればいいんだな?
0350デフォルトの名無しさん
2011/01/13(木) 23:37:24そうです!そのようにお願いします。
わかりづらくて申し訳ないです。
0351デフォルトの名無しさん
2011/01/14(金) 01:44:14http://ideone.com/PCsf9
途中
眠くて以下の部分できてない
1.データの読み込み
2.読み込んだデータのチェックと書き込み
A) 4列が”1”なら書き込まない
B) -1が4個並んでいる行は書き込まない
申し訳ないが寝る。誰かあと任せた。
もし完成してないようなら明晩俺がやる。
0352デフォルトの名無しさん
2011/01/14(金) 05:28:50http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/24.txt
0353デフォルトの名無しさん
2011/01/14(金) 06:21:58#include <stdio.h>
int main( int ac, char** av )
{
char buf[128];
FILE* fpin;
FILE* fpout;
int a[3];
if( ac < 3 ) {
printf( "[Usage] hoge infile outfile\n" );
return 0;
}
fpin = fopen( av[1], "rt" );
fpout = fopen( av[2], "wt" );
if( ! fpin || ! fpout ) {
printf( "File open error!\n" );
return 0;
}
while( fgets( buf, 128, fpin ) ) {
sscanf( buf, "%d %d %d", a + 0, a + 1, a + 2 );
if( a[0] != -1 )
fprintf( fpout, "%d %d %d\n", a[0], a[1], a[2] );
}
fclose( fpin );
fclose( fpout );
return 0;
}
0354デフォルトの名無しさん
2011/01/14(金) 08:09:45コピペできない orz
0355デフォルトの名無しさん
2011/01/14(金) 09:14:31推薦合格
0356デフォルトの名無しさん
2011/01/14(金) 09:19:060357デフォルトの名無しさん
2011/01/14(金) 09:35:01は空白行にしないのか?
0358デフォルトの名無しさん
2011/01/14(金) 09:54:54[2] 問題文:問1・以下のクラスを作り、オブジェクトを生成して、全てのメンバ関数を実行せよ。ただし、体力は整数形の変則とする。
クラス名ねずみ メンバ変数 名前 種族 体力 メンバ関数 コンストラクタ 自己紹介 体力を上げる 体力を下げる 体力の値を返す
問2・問1で作ったクラスから、以下のような派生クラスを作り、そのオブジェクトを生成して、派生クラスが持つ全てのメンバ関数を実行せよ。
ただし、職業はコンストラクタにより、ディズニーキャラクターとせよ。また、自己紹介は名前の他に職業も紹介させよ。
それから、踊ったら体力が回復するようにせよ。体力の増減量は決めていい。
問3・上記の派生クラスおよび期底クラスにおいて、体力の上限を設け、その上限に達した場合、IF文を使ってそれ以上値が増加しないようにせよ。
また同様に、体力が負の値にならないようにせよ。そして体力がゼロならば踊れないようにせよ。
問4・問3で改良したオブジェクトに対して、WHILE文やFOR文を使って、体力がゼロになって踊れなくなるまで繰り返し躍らせよ。
問5・今までの問で作ってきたクラスのオブジェクトを、配列を使って2つ生成せよ。そして、それぞれに異なる名前を与え、全てのメンバ関数を実行せよ。
[3] 環境
[3.1] OS: WindowsVista
[3.2] コンパイラ名とバージョン:Visual Studio
[3.3] 言語: C++
[4] 期限: 2011年1月17日まで
期限ギリギリで申し訳ないです><
0359デフォルトの名無しさん
2011/01/14(金) 10:11:17すみません、どなたかお願いいたします!!!
#include <string>
using namespace std;
const int 体力上限 = 50;
class ねずみ {
string 名前;
string 種族;
int 体力;
ねずみ(string name) : 体力(10) { 名前 = name; };
void 自己紹介(){ cout << "名前:" << 名前 << endl; };
void 体力を上げる(){ 体力++; if(体力 > 体力上限) 体力 = 体力上限; };
void 体力を下げる(){ 体力--; if(体力 < 0) 体力 = 0; };
int 体力の値を返す(){ return 体力; };
}
class 働きねずみ : public ねずみ {
string 職業;
働きねずみ() { 職業 = "ディズニーキャラクター"; };
void 自己紹介(){
cout << "名前:" << 名前 << endl;
cout << "職業:" << 職業 << endl; };
void 踊る(){ if(体力 >= 5) { cout << "踊りました" << endl; 体力 -= 5; }
else { cout << "最後まで踊れません。体力がありません" << endl; 体力 = 0; } };
}
int main(){
働きねずみ a("ちゅー^2");
a.自己紹介();
a.体力を上げる();
cout << "現在の体力" << a.体力の値を返す() << endl;
a.体力を下げる();
while(体力の値を返す() > 0) a.踊る();
働きねずみ b[2] = {"ミッキー", "ミニー"};
}
0362デフォルトの名無しさん
2011/01/14(金) 14:04:45助かりました。みなさん本当にありがとうございました。
また何かありましたらよろしくお願いします。
0363デフォルトの名無しさん
2011/01/14(金) 14:12:40また新しいタイプのキチガイが現れたな
0365デフォルトの名無しさん
2011/01/14(金) 14:30:430366デフォルトの名無しさん
2011/01/14(金) 15:01:36依頼者以外のトリは僕、キチガイって自己紹介してるんだから絶対推奨ですよ
0367デフォルトの名無しさん
2011/01/14(金) 16:10:37無駄じゃない
基地外は駆逐しなければならないから当然の防衛行動である
0368デフォルトの名無しさん
2011/01/14(金) 16:31:330369デフォルトの名無しさん
2011/01/14(金) 16:51:18コンパイルできませんでした><
0371デフォルトの名無しさん
2011/01/14(金) 17:02:450372デフォルトの名無しさん
2011/01/14(金) 17:17:290373デフォルトの名無しさん
2011/01/14(金) 18:38:01それは読んではいけない行なのか?
>>357
するのか?
0374デフォルトの名無しさん
2011/01/14(金) 18:40:44http://qb5.2ch.net/test/read.cgi/saku/1098189517/320
GL3:固定ハンドル(2ch内)に関して
http://hibari.2ch.net/test/read.cgi/tech/1289715349/ >>315 (>>316>>317意見等)
どうやらコテハン占有スレと認めてもらえたみたい
>>372
動かないだろカス
0375デフォルトの名無しさん
2011/01/14(金) 18:43:06日本語をクラス名等に使えるコンパイラをお持ちなんですね
できれば何と言うコンパイラか教えて欲しいです
0376デフォルトの名無しさん
2011/01/14(金) 18:48:31踊ったら体力が回復するのに踊れなくなるまで踊らせるとはこれ如何に?
0377デフォルトの名無しさん
2011/01/14(金) 18:49:160378デフォルトの名無しさん
2011/01/14(金) 18:54:24右端に1がある行が出力するデータという仕様。
そうじゃないデータは仕様に書いてないから出力してはいけない。
左から三列出力でいいなら、右端の1を取り除くとは書かないだろ。
0379デフォルトの名無しさん
2011/01/14(金) 22:07:450380デフォルトの名無しさん
2011/01/14(金) 22:18:290381デフォルトの名無しさん
2011/01/14(金) 22:19:260382デフォルトの名無しさん
2011/01/14(金) 22:41:210383デフォルトの名無しさん
2011/01/14(金) 22:42:35virtual付けないの?
0384期待のほし
2011/01/14(金) 22:44:32アルファベット大文字 26字、アルファベット小文字 26字、数字 9字 の合計62文字からランダムに一文字取り出す式を教えて下さい。
今日 rand関数を習ったばかりで よくわかりません。{(>_<)}
基本的な使い方は大丈夫です。
0385デフォルトの名無しさん
2011/01/14(金) 22:45:43セールスマン問題とか早稲田とか
0386デフォルトの名無しさん
2011/01/14(金) 22:48:56char moji[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
printf("%c", moji[(int)(rand() / (RAND_MAX + 1.0) * 62)]);
0387期待のほし
2011/01/14(金) 22:51:10さすがですね;
0388デフォルトの名無しさん
2011/01/14(金) 22:52:01http://ideone.com/80elf
0389デフォルトの名無しさん
2011/01/14(金) 22:57:34'a'=97 〜 'z'=122
'0'=48 〜 '9'=57
計61文字だから rand % 61 でやるってどうよ?
0390389
2011/01/14(金) 22:58:320391デフォルトの名無しさん
2011/01/14(金) 23:03:33>printf("%c\n", tbl[rand() % sizeof(tbl)]);
>>389
>計61文字だから rand % 61 でやるってどうよ?
0392デフォルトの名無しさん
2011/01/14(金) 23:04:42範囲外アクセスするだろバカ
0393デフォルトの名無しさん
2011/01/14(金) 23:05:31はっきり言って1日やそこらでどうにかなるようなもんじゃない
俺はもう終わったから、>>359が詰んでるのを見るとメシがウマイわ
0394デフォルトの名無しさん
2011/01/14(金) 23:08:040395デフォルトの名無しさん
2011/01/14(金) 23:08:10ではちょっと範囲外参照してみて下さい。
0396デフォルトの名無しさん
2011/01/14(金) 23:10:360397デフォルトの名無しさん
2011/01/14(金) 23:11:49http://codepad.org/hbqyjyDg
52と95
0398デフォルトの名無しさん
2011/01/14(金) 23:13:370399デフォルトの名無しさん
2011/01/14(金) 23:14:030400デフォルトの名無しさん
2011/01/14(金) 23:16:04無理に言い訳しなくていいよ
0401デフォルトの名無しさん
2011/01/14(金) 23:17:25半端ねーな。俺無理。
0402デフォルトの名無しさん
2011/01/14(金) 23:18:200403デフォルトの名無しさん
2011/01/14(金) 23:19:370404デフォルトの名無しさん
2011/01/14(金) 23:29:460405デフォルトの名無しさん
2011/01/14(金) 23:30:44恥ずかしいのは分かる
0406デフォルトの名無しさん
2011/01/14(金) 23:33:44感謝した方がいいよ
0407デフォルトの名無しさん
2011/01/14(金) 23:36:460408デフォルトの名無しさん
2011/01/14(金) 23:38:24そういうのはありがちだから、あまり言わない方がいいよw
0409デフォルトの名無しさん
2011/01/14(金) 23:40:48すみません、問題文を間違っていました。貼りなおします><
[1] 授業単元:プログラミングC++入門
[2] 問題文:問1・以下のクラスを作り、オブジェクトを生成して、全てのメンバ関数を実行せよ。ただし、体力は整数形の変数とする。
クラス名ねずみ メンバ変数 名前 種族 体力 メンバ関数 コンストラクタ 自己紹介 体力を上げる 体力を下げる 体力の値を返す
問2・問1で作ったクラスから、以下のような派生クラスを作り、そのオブジェクトを生成して、派生クラスが持つ全てのメンバ関数を実行せよ。
ただし、職業はコンストラクタにより、ディズニーキャラクターとせよ。また、自己紹介は名前の他に職業も紹介させよ。
それから、踊ったら体力がするようにせよ減るように。食事をしたら体力が回復するようにせよ。体力の増減量は任意で決めていい。
クラス名 ミッキー メンバ変数 職業 メンバ関数 コンストラクタ 自己紹介 踊る 食事
問3・上記の派生クラスおよび期底クラスにおいて、体力の上限を設け、その上限に達した場合、IF文を使ってそれ以上値が増加しないようにせよ。
また同様に、体力が負の値にならないようにせよ。そして体力がゼロならば踊れないようにせよ。
問4・問3で改良したオブジェクトに対して、WHILE文やFOR文を使って、体力がゼロになって踊れなくなるまで繰り返し躍らせよ。
問5・今までの問で作ってきたクラスのオブジェクトを、配列を使って2つ生成せよ。そして、それぞれに異なる名前を与え、全てのメンバ関数を実行せよ。
[3] 環境
[3.1] OS: WindowsVista
[3.2] コンパイラ名とバージョン:Visual Studio
[3.3] 言語: C++
[4] 期限: 2011年1月17日まで
0410デフォルトの名無しさん
2011/01/14(金) 23:43:070411デフォルトの名無しさん
2011/01/14(金) 23:52:30ちょっとなに言ってるのかわからない
0412デフォルトの名無しさん
2011/01/14(金) 23:57:29タイプミスです^^; 「踊ったら体力が減るようにせよ。」です><
0413デフォルトの名無しさん
2011/01/15(土) 00:03:22体力以外の型は?
どうやれば踊ったという事になるの?
どこで出された課題か知らないけどひどい問題だよ
詐欺られてるんじゃないの?
0414デフォルトの名無しさん
2011/01/15(土) 00:03:47お食事のタイミングについては何も無いの?
0415デフォルトの名無しさん
2011/01/15(土) 00:04:200416デフォルトの名無しさん
2011/01/15(土) 00:09:02WHILE文
FOR文
WindowsVista
こういうの自分で書いてて気持ち悪くないのかな
0417デフォルトの名無しさん
2011/01/15(土) 00:10:31http://codepad.org/2n8cHnXB
こんなもんでどうでしょう
食事の頻度は適当にいじって
0418デフォルトの名無しさん
2011/01/15(土) 00:11:31確かにお前の顔は気持ち悪いな
0419デフォルトの名無しさん
2011/01/15(土) 00:13:09おいおい目の前のディスプレイに移ってるのはお前の顔だぞ?
0420デフォルトの名無しさん
2011/01/15(土) 00:14:53しっかりしろ、それはお前の顔だ
0421デフォルトの名無しさん
2011/01/15(土) 00:16:290422デフォルトの名無しさん
2011/01/15(土) 00:19:49餌は1日三回、6-7時、12-13時、19-20時に与えます
それらの時間になったら与えてください
0423デフォルトの名無しさん
2011/01/15(土) 00:29:150424デフォルトの名無しさん
2011/01/15(土) 00:32:42前項の「言葉の理解の遅れ」でも少し触れましたが、
自閉症児の多くは「オウム返し」をします。
言葉のとおり、オウムのように言ったことをそのまま反復するのです。
0425デフォルトの名無しさん
2011/01/15(土) 00:35:300426デフォルトの名無しさん
2011/01/15(土) 00:37:21スレ違い
0427359
2011/01/15(土) 00:43:38お前らホントに使えねーなwwwwwwwwwww
悔しかったら>>109-110を解いてみろよ!!!!!!!11
0428デフォルトの名無しさん
2011/01/15(土) 00:47:010429デフォルトの名無しさん
2011/01/15(土) 00:47:45まぁ落ちつけよ
0430デフォルトの名無しさん
2011/01/15(土) 00:55:11アウト
0431デフォルトの名無しさん
2011/01/15(土) 01:15:360432デフォルトの名無しさん
2011/01/15(土) 01:25:23その程度の問題自分で解いてみろよ。
0434デフォルトの名無しさん
2011/01/15(土) 01:31:45cygwin入れてないにょ。
0436359
2011/01/15(土) 01:38:150437デフォルトの名無しさん
2011/01/15(土) 01:52:100438デフォルトの名無しさん
2011/01/15(土) 01:55:380439デフォルトの名無しさん
2011/01/15(土) 02:02:570440デフォルトの名無しさん
2011/01/15(土) 02:06:260441デフォルトの名無しさん
2011/01/15(土) 02:07:21とりあえずやってみたから見てみてくれ
つ http://tinyurl.com/22ru7sr
0442デフォルトの名無しさん
2011/01/15(土) 02:12:43授業理解できてないお前が悪い。同じ授業受けてる俺はもう完成してるしね(笑)
せいぜい月曜の締め切りまでそうやってあがいてればいいよ。
あ、教授にはこのスレの存在は通達済みだから、ここでもしコードが上がってもそれを参考にはできないからよろしく。
0443デフォルトの名無しさん
2011/01/15(土) 02:13:560444デフォルトの名無しさん
2011/01/15(土) 02:16:43当の本人たちは「採点を見なおせ」と教授に文句言ったらしいが
0445デフォルトの名無しさん
2011/01/15(土) 02:29:33044632
2011/01/15(土) 02:50:21それをもとに検索していく方法がわからないので、もしまだいたら検索方法を教えていただけないでしょうか
0447デフォルトの名無しさん
2011/01/15(土) 02:56:07書き換え度の判定プログラムを作成せよ。宿題になるかな?
0448デフォルトの名無しさん
2011/01/15(土) 03:11:190449デフォルトの名無しさん
2011/01/15(土) 03:36:162.改行やスペースの書換えによるスタイルの書換え
3.for(;;)やwhile(1)等、同等文への置換え
4.処理が独立している、交換可能な行の入替え
1と2なら、機械処理で何とか出来ると思うが、
3以降は、ちょっと難しいかも
そこまで出来る奴なら、自分で解答書くかも。
0450デフォルトの名無しさん
2011/01/15(土) 08:53:21[2] 問題文(含コード&リンク): 問題10-2(関数ポインタを用いて2つの整数値を入力して、加算・減算・最大値・最小値の
いずれかを選択して求めるプログラムを作成せよ)において、関数ポインタを用いて、4つの関数の値のいずれかを求めるのではなく、
for-loopを用いて、4つの値とも出力するプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: StudyC というやつです
[3.3] 言語: C言語
[4] 期限: 2011年1月18日09:00まで]
[5] その他の制限:
入力に関して:キーボードから2つの整数をスペース1つあけて入力し、改行する。
出力に関して:加算・減算・最大値・最小値の値を、それぞれ値+改行のフォーマットで
4行にわけて出力する。指定した数値・改行以外の出力は一切行わないこと。
あと、出来たらリンク先で示さずに、直接ソースを書いてください;;
0451デフォルトの名無しさん
2011/01/15(土) 08:57:28問題10-2で作った自分の解答は、↓のソースです。
http://codepad.org/KIB6aUQm
どうかよろしくお願いします;;
0452デフォルトの名無しさん
2011/01/15(土) 09:41:03http://codepad.org/bWiSIXgm
0453デフォルトの名無しさん
2011/01/15(土) 09:43:55printf("1つ目の整数数値入力\n");
scanf("%d", &x);
printf("2つ目の整数数値入力\n");
scanf("%d", &y);
↓
printf("2つの整数数値をスペース区切りで入力\n");
scanf("%d %d", &x , &y);
0455デフォルトの名無しさん
2011/01/15(土) 11:38:35[2] 問題文(含コード&リンク): 2つ unsighned char型のポインタ変数を用意する。
キーボードから数値を入力し、 malloc を用いて、1つめのポインタに入力数値バイト分のメモリを確保する。
次に2つめのポインタに固定バイト数(いくつでも良いが、例えば16)分のメモリを確保する。
この時、2つのポインタが指すアドレスが連続しているかどうか確認するプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: StudyC というやつです
[3.3] 言語: C言語
[4] 期限: 2011年01月18日09:00まで
[5] その他の制限:
入力に関して:キーボードから、0ではない正の整数を1つ入力し、改行する。
この時、入力を促す文字は一切表示しないこと。
出力に関して:メモリ確保後の1つめのポインタと2つめのポインタの(アドレスの)差分値を出力する(+改行)
入力値と出力値が一致すれば、確保されたメモリは連続しており、一致しなければ間が空いていることになる。
0456デフォルトの名無しさん
2011/01/15(土) 11:40:270457デフォルトの名無しさん
2011/01/15(土) 11:50:50何も考える必要なく回答になるんだけどどうして出来ないの?
授業中寝てるの?
0458デフォルトの名無しさん
2011/01/15(土) 11:57:47#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned char* p1;
unsigned char* p2;
int n;
scanf("%d", &n); //どんまい
p1 = malloc(n);
p2 = malloc(16);
printf("%d\n", p2 - p1);
}
0459デフォルトの名無しさん
2011/01/15(土) 12:08:320460デフォルトの名無しさん
2011/01/15(土) 12:10:40本当に解いてもらいたくて出題してる人のほうが少ないでしょう。
0461デフォルトの名無しさん
2011/01/15(土) 12:20:360462デフォルトの名無しさん
2011/01/15(土) 14:56:380463デフォルトの名無しさん
2011/01/15(土) 16:04:50......そんな奴居るのか?
0464デフォルトの名無しさん
2011/01/15(土) 16:10:52いろんな言語で宿題 第五編
http://hibari.2ch.net/test/read.cgi/tech/1276873238/
このスレはそんな感じ
狂ってるよ
0465デフォルトの名無しさん
2011/01/15(土) 16:17:44私はその自作自演の本人だけど、あのスレはよその
宿題スレから問題をもらってきて、いろんな言語で回答
してみて、言語による表現の違いを楽しもうという趣旨
で始まった。第一番にPrologの回答を載せて続きを待
っているだけ。
0466デフォルトの名無しさん
2011/01/15(土) 16:57:47そういう趣旨だったのね
現行スレだけを見た新参者の感想として聞き流してくださいな
0467デフォルトの名無しさん
2011/01/15(土) 20:35:33[2] 問題文(含コード&リンク):-偏差値と標準偏差の計算-
入力ファイル motofile.dat を事前に用意し、出力ファイル result.dat を
生成するC言語ソースプログラム hensa.c を書け。
入力ファイルと出力ファイルは、コマンドライン引数から文字列として取得し、
プログラムでは必ず構造体を使用すること。プログラムの実行は qtotal.c(下に
貼り付けたプログラム)同様、以下の形式で実行する。数字ライブラリを利用
するには libm.a をリンクする。gcc 起動時に、スイッチ -lm を追加する。
$ gcc -o hensa -lm hensa.c
$ ./hensa motofile.dat result.dat
生成される result.dat の内容は以下の通りである。
http://codepad.org/8qupROUX
順位4位と順位9位に注意されたい。
[3] 環境
[3.1] OS:MacOS X
[3.2] コンパイラ名とバージョン:ターミナル
[3.3] 言語:C
[4] 期限:2011年01月16日 19:00まで
[5] その他の制限:このプログラムに書き加えて下さい。
http://codepad.org/xQ7jLJ15
平均・標準偏差・偏差値の計算式
Wikipedia -偏差値- 数式による解説にある計算式を使って下さい。
平方根の計算には、include <math.h>の sqrt 関数を使用して下さい。
0468デフォルトの名無しさん
2011/01/15(土) 20:55:490469デフォルトの名無しさん
2011/01/15(土) 21:29:500470デフォルトの名無しさん
2011/01/15(土) 21:33:200471デフォルトの名無しさん
2011/01/15(土) 22:06:150472デフォルトの名無しさん
2011/01/15(土) 22:09:27こんな感じかな
input() で scanf() を使うのが気に喰わないので直した
入力ファイルはスペース区切りとした
出力の桁調整はサンプルと同じにするのが面倒なので少しズレてるかも知れん
ttp://codepad.org/DtKh4cED
0473デフォルトの名無しさん
2011/01/15(土) 23:02:30しかもstrtokとかないわ
0474デフォルトの名無しさん
2011/01/15(土) 23:17:14そこから先は普通に組み合わせの列挙なので自力で調べてくれ
一応ソースコード
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/25.txt
0475デフォルトの名無しさん
2011/01/15(土) 23:17:35しかも大抵、それは悪化にしかなっていない
0476デフォルトの名無しさん
2011/01/15(土) 23:31:44fscanf() だとファイルが不正な場合、例えば一行に3項目や5項目有った場合に問題が生じるから
fgets() -> sscanf() なら良いけどね、strtok() を使うのは習慣か趣味か自分でも良く判らん
0477デフォルトの名無しさん
2011/01/15(土) 23:33:31>>476
元から出来てる部分をいじるのは良くない
特に大学の課題なんかでは、指定されている部分を下手に書き換えてもいいことないよ
0478デフォルトの名無しさん
2011/01/15(土) 23:45:550479デフォルトの名無しさん
2011/01/15(土) 23:52:080480デフォルトの名無しさん
2011/01/15(土) 23:53:50でも output() も書き直したからねぇ...
出題者が気に食わなければ元に戻せば良いだけの話だろ
>>478
スレッドセーフじゃないよ、スレッドセーフな strtok_r() ってのが有るけど
0481デフォルトの名無しさん
2011/01/15(土) 23:58:47まぁ何にせよ糞
0482デフォルトの名無しさん
2011/01/16(日) 01:31:430483デフォルトの名無しさん
2011/01/16(日) 01:37:37MMLでググる
0484デフォルトの名無しさん
2011/01/16(日) 01:43:35Windowsじゃ無理だと思うけど
0485デフォルトの名無しさん
2011/01/16(日) 01:46:20midiポートにアクセスするなら似た方法も使えるよ
0486デフォルトの名無しさん
2011/01/16(日) 01:54:100487デフォルトの名無しさん
2011/01/16(日) 02:09:220488デフォルトの名無しさん
2011/01/16(日) 02:11:56早く宿題のない平和な世界になるといいね。
0489デフォルトの名無しさん
2011/01/16(日) 02:19:210490デフォルトの名無しさん
2011/01/16(日) 02:40:080491デフォルトの名無しさん
2011/01/16(日) 05:24:13仕事レベルならともかく学校レベルだとそんな楽しい宿題ないっしょ。
0492デフォルトの名無しさん
2011/01/16(日) 07:11:04それだけ皆が成長したってことか。
0493デフォルトの名無しさん
2011/01/16(日) 08:50:54[2] 問題文(含コード&リンク):http://codepad.org/FD1Z6ZPV
・問題1
非終端記号TおよびFの解析ルーチンに付けるコメントを(Eに関するコメントを参考に)完成しなさい。
注意: printf(...)は、どの構文規則の適用されるか明示するためのものであるから、無視すること。
・問題2
このサンプルを拡張して1桁の数字からなる式の値を計算する簡単な電卓プログラムに改造しなさい。
・問題3
このサンプルを拡張して、代入文 <assign> ::= id '='<E> ';'を認識できるようにしなさい。
余計なプリント文を削除したソースプログラムと複雑な式を含む実行結果を提出すること。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C/C++
[4] 期限: 1月27日まで
[5] その他の制限: 特になし
0494デフォルトの名無しさん
2011/01/16(日) 10:07:57http://codepad.org/cFUhyKRa
こっちのPCでは普通にコンパイルできた。
0495デフォルトの名無しさん
2011/01/16(日) 10:25:35ありがとうございます。
404 Not Found
The resource could not be found.
404 Not Found
codepad自体に繋がり難くなってるのかな。
0496デフォルトの名無しさん
2011/01/16(日) 11:09:02private設定してね?
0497デフォルトの名無しさん
2011/01/16(日) 12:29:21[2] 問題文(含コード&リンク):
バス停Aからバスに乗り、B駅まで行きたい。
時刻(時・分)を入力し、その時刻までにB駅に着くためには、何時何分発のバスに乗ればいいかを表示するプログラムを作成しなさい。
バス停AからB駅までの乗車時間は22分とする。
バス停Aの時刻表は
6時(25分、37分、59分) 7時(9分、19分、29分、39分) 8時(56分)
9時から15時までそれぞれ36分と56分 16時(36分) 18時(21分)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:1月18日
[5] その他の制限: C言語の基本的なことは習っています。ギリギリまで考えてたので期限が近いです、申し訳ないです。
0498デフォルトの名無しさん
2011/01/16(日) 13:43:17[2] 問題文(含コード&リンク):9X9の二次元配列に九九を代入する関数を作りなさい。
配列はmain関数内で定義すること。また、配列の内容を表示する関数も作りなさい。
(一つのプログラムに九九計算関数と九九表示関数を作るということだと思います。)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:1月18日
よろしくお願いします。
0499デフォルトの名無しさん
2011/01/16(日) 13:44:31if文だけで作ってみた。
これが嫌ならリストなり配列なり構造体で作るが。
0501デフォルトの名無しさん
2011/01/16(日) 13:49:27ありがとうございます。
迷惑でなければ、配列で作っていただけると助かります。
先に言っておかず申し訳ございません。
0502デフォルトの名無しさん
2011/01/16(日) 13:55:52ttp://codepad.org/E1DiOSqJ
0503デフォルトの名無しさん
2011/01/16(日) 14:04:20http://codepad.org/Q7mEXZGm
0504デフォルトの名無しさん
2011/01/16(日) 14:10:54あれ開かないのか?
ちょっとPCみてくる。
PCからだと、規制かかっているせいで携帯からレスだけしてるんだな。
0505デフォルトの名無しさん
2011/01/16(日) 14:12:14そのプログラム見て
球の頂点を手打ちで設定してたプログラムを思い出した
0506デフォルトの名無しさん
2011/01/16(日) 14:33:46面白いとでも思ってんの?
0507デフォルトの名無しさん
2011/01/16(日) 14:44:43合計点(Total)が等しい時には、
http://codepad.org/8qupROUX
この上の出力ファイルの順位4位と順位9位のように
Gradeが等しくないといけないんですけど、
どのようにして比較して、順位を出力すればいいでしょうか?
どなたでも、よろしいので早めに教えて下さい。
プログラム http://codepad.org/DtKh4cED に書き加えて下さい。
0508デフォルトの名無しさん
2011/01/16(日) 14:58:40for( i = 0,j =0; i < number; i++ ) {
fprintf( outfile, "%6d %-16s%4d %4d %4d %4d %7.2lf %7.2lf\n",
i + 1, st[i].name, st[i].eng, st[i].math, st[i].sci, st[i].total, st[i].mean, st[i].hensa );
if((i != number) && (st[i]->total != st[i+1]->total)){
j=i; //順位更新
}
}
0509デフォルトの名無しさん
2011/01/16(日) 15:00:44あとfprintfのi+1をj+1に変え忘れた
0510デフォルトの名無しさん
2011/01/16(日) 15:02:330511デフォルトの名無しさん
2011/01/16(日) 15:14:16Grade 1と2の合計点(Total)が異なるのに、
2つとも、Grade 1になってしまうんですが
改善するには、どうしたらいいですか?
お手数ですが、書き加えて教えて下さい。
お願いします。
0512デフォルトの名無しさん
2011/01/16(日) 15:19:580513デフォルトの名無しさん
2011/01/16(日) 15:23:470514デフォルトの名無しさん
2011/01/16(日) 15:33:05よかったね〜
0515デフォルトの名無しさん
2011/01/16(日) 15:34:04さん。
度々、ありがとうございます。
無事に実行できました。
0516デフォルトの名無しさん
2011/01/16(日) 15:38:590517デフォルトの名無しさん
2011/01/16(日) 18:30:490518デフォルトの名無しさん
2011/01/16(日) 18:35:370519デフォルトの名無しさん
2011/01/16(日) 18:37:240520デフォルトの名無しさん
2011/01/16(日) 18:43:160521デフォルトの名無しさん
2011/01/16(日) 19:49:54クラス化じゃなく構造体にすんの?
0522デフォルトの名無しさん
2011/01/16(日) 20:11:150523デフォルトの名無しさん
2011/01/16(日) 20:11:54[1] 授業単元:
[2] 問題文(含コード&リンク):「お菓子などのおまけを全種集めるためには平均して何個お菓子を購入すればよいか」を調べるプログラムを作りなさい。また処理概要の説明をしなさい。
[3] 環境
[3.1] OS:Windows
[3.2]Visual C++ Experess Edition
[3.3] 言語: C
[4] 期限: ([2011年01月18日15:00まで]
[5] その他の制限: 配列まで習いました。
・数学的に解くのではなく実際にコンピュータに試行させなさい。
・おまけの総数とすでにもっているおまけの数はユーザに入力させなさい。
【自分の考え】
たとえば、全部で10種類おまけがあったとして、すでに所持2種類ならば、非所持は8種類。
⇒1から8の乱数を発生させて1から8が全部集まったら、集まるまでに何度乱数発生させたかを記憶。←これを1万回ほど繰り返して、平均して何度購入すればよいかを求める。
という流れで作ろうと思うのですが、この例で1から8まで集まったことをどうやって確認するのかわからず、お手上げ状態です。どなたかお力添えいただければ幸いです。
0524デフォルトの名無しさん
2011/01/16(日) 20:19:21集まったかどうかは
持ってるを1、持ってないを0として配列で管理するかな
0525デフォルトの名無しさん
2011/01/16(日) 20:22:150526デフォルトの名無しさん
2011/01/16(日) 21:22:380527デフォルトの名無しさん
2011/01/16(日) 21:40:24考え方としては、1万回繰り返すよりも、
例えば100セット揃えるまでに、
何個購入したかを数える方が楽だと思う。
0528デフォルトの名無しさん
2011/01/16(日) 21:46:30>全部集まったら、集まるまでに何度乱数発生させたかを記憶
0529デフォルトの名無しさん
2011/01/16(日) 22:13:22#include <stdio.h>
#include <stdlib.h>
#define N 10000
int check(int *p, int size)
{
int i;
for(i = 0; i < size; i++) if(p[i] == 0) return 0;
return 1;
}
int main(void)
{
int i, j, k, n, max, sum = 0, a[100];
scanf("%d", &max);
scanf("%d", &n);
srand(time(NULL));
for(i = 0; i < N; i++) {
int cnt = 0;
for(j = 0; j < n; j++) a[j] = 1;
for( ; j < max; j++) a[j] = 0;
while(check(a, max) == 0) {
k = rand() / (RAND_MAX + 1.0) * max;
a[k] = 1;
cnt++;
}
sum += cnt;
}
printf("%f\n", (double)sum / N);
return 0;
}
0530デフォルトの名無しさん
2011/01/16(日) 22:21:41そのやり方だと、実際の確率より少ない回数になるからダメ
0531デフォルトの名無しさん
2011/01/16(日) 22:26:4410000個購入しても、揃わなかった最後の端数部分は無駄になってない?
0532AQ
2011/01/16(日) 22:34:08[3] 環境
[3.1] OS:Windows
[3.2] Borand
[3.3] 言語: C++
[4] 期限: ([2011年01月17日12:00まで]
数学のkrawczyk法のプログラムはどのようにして作ればよいですか?
区間は自分で入力して計算したいのですが
0533デフォルトの名無しさん
2011/01/16(日) 22:36:080534AQ
2011/01/16(日) 22:36:17区間は自分で入力して計算したいのですが
[3] 環境
[3.1] OS:Windows
[3.2] Borand
[3.3] 言語: C++
[4] 期限: ([2011年01月17日12:00まで]
0535デフォルトの名無しさん
2011/01/16(日) 22:48:05一万回全種揃えるんだよ
0536デフォルトの名無しさん
2011/01/16(日) 22:56:31誤解してた、ごめんな
http://codepad.org/JompMCy6
シグナル周りはちょっと自信がありません。cygwin/Windows XP/gcc-4 では問題ないようです。
なお、>>110 では ls の実行を例としてあげていますが、ここでは ls などの内部コマンドは一切実装してませんので、>>110 のとおりには動きません。
0538デフォルトの名無しさん
2011/01/17(月) 00:37:27ls って /usr/bin/ls じゃないの?
そもそも Unix のシェルに内部コマンドなんて有ったっけ?
0539デフォルトの名無しさん
2011/01/17(月) 00:40:52ls は違うと思うけど
内部コマンドはあるよ
でなきゃシェルスクリプトなんて書けない
たしかに ls は外部コマンドでしたね。ご指摘感謝
>>109
関連して
ls -al | grep xxx
がうまくいかなかった点を修正しました。
http://codepad.org/uMZMBjRG
0541デフォルトの名無しさん
2011/01/17(月) 01:27:04どんな雑なものでも動けばいいのでお願いしますm(_ _)m
0542デフォルトの名無しさん
2011/01/17(月) 01:42:33欲をいえば、*とかを展開してほしい
履歴機能とか
リダイレクト(>)したときのパーミッションが0104になっている、これはあかん
0543デフォルトの名無しさん
2011/01/17(月) 01:50:17まぁ、そんなに長くこのシェルに入っておくことはないけど
268, 270行目のmain()内でファイルを開いて閉じてない
メモリリークチェックしたけど今のところこれだけ
ご指摘感謝です。
>欲をいえば、*とかを展開してほしい
確かにこれは次にとりかかるべき課題です。でも、これをするには、んー、今の組み方を根本的に変えなくていけないでしょうね。
>>542
>リダイレクト(>)したときのパーミッションが0104になっている、これはあかん
>>109
この点を修正しました。open() の第 3 引数を安直に 0666 としただけですが。
http://codepad.org/hBrx6VoE
0545デフォルトの名無しさん
2011/01/17(月) 01:53:21制御構造も内部コマンド扱いなんだね、意識した事はなかったけど
cd や pwd も内部コマンドなのは知らんかった
ご指摘感謝したします。
>>109
さらに修正しました。
http://codepad.org/tMayhQ7M
0547デフォルトの名無しさん
2011/01/17(月) 02:13:03UN*Xはそうなんだろうか
せんとくんではpwdは/bin/ある
cdは、内部らしい
で、内部コマンド使うと盛大にリークした
さすがに解析面倒だわ、たぶんforkした奴がコマンド見付かんねぇで戻ってきて(戻ってくるのか?)なにもしてないのが原因と思うけど
>546
直っている
>コマンド見付かんねぇで戻ってきて(戻ってくるのか?)
もどってくるというか‥‥‥。
>>546 ではコマンドを見つからないときは、そのプロセスは即座に何も考えずに exit() してプロセスの全領域を OS に返してしまいます。
0549デフォルトの名無しさん
2011/01/17(月) 02:33:09int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
とあるけど、なんでCで関数のオーバーロード出来るの?
0550デフォルトの名無しさん
2011/01/17(月) 02:59:020551デフォルトの名無しさん
2011/01/17(月) 03:06:01やっぱり子プロセスで成功しなかったときの処理のところでリークしていた
まぁ、exit()系でいいと思うけど気になったんで
117d116
< void release(struct list *root);
175,177d173
< release(env);
< free(argv);
< free(comline);
子プロセスでも開放しろと
http://okwave.jp/qa/q3511498.html
http://fixunix.com/unix/330910-fork-malloc.html
類似の部分は自分で直しといて
0552デフォルトの名無しさん
2011/01/17(月) 05:47:570553デフォルトの名無しさん
2011/01/17(月) 06:21:030554デフォルトの名無しさん
2011/01/17(月) 06:54:460555デフォルトの名無しさん
2011/01/17(月) 07:27:340556デフォルトの名無しさん
2011/01/17(月) 09:04:360557デフォルトの名無しさん
2011/01/17(月) 09:05:450558デフォルトの名無しさん
2011/01/17(月) 09:16:340559デフォルトの名無しさん
2011/01/17(月) 09:55:590560デフォルトの名無しさん
2011/01/17(月) 09:56:590561デフォルトの名無しさん
2011/01/17(月) 16:17:260562デフォルトの名無しさん
2011/01/17(月) 17:40:35>>493だけじゃないかな
0563デフォルトの名無しさん
2011/01/17(月) 17:40:47[2] 問題文(含コード&リンク):
(1)~(5)の穴埋め
test2の出力例
$ ./test2
*************
...........*
***********
.........*
*********
.......*
*******
.....*
*****
...*
***
..*
*
$
0564デフォルトの名無しさん
2011/01/17(月) 17:43:50int main (void) {
int (1) ;
for (i=0 ; (2) ; i++) {
for (j= (3) ; (4) ; j--) {
if ( (5) ) {
printf(".") ;
} else {
printf("*) ;
}
}
printf("\n") ;
}
return 0 ;
;
[3] 環境
[3.1] OS:windowsXP
[3.2] gcc
[3.3] 言語:C
[4] 期限: 出来れば本日中に
[5] その他の制限:
0565563-564
2011/01/17(月) 17:44:56最後の行「;」でなく「}」ですね
急いで書いたので間違いがあるかもしれませんが
脳内補完でお願いします・・・
0566デフォルトの名無しさん
2011/01/17(月) 17:52:25これはさすがに授業中寝てたとしか思えん
0567デフォルトの名無しさん
2011/01/17(月) 17:53:58法則性がちと面倒っぽいんだけど
************* 13
...........* 12
*********** 11
.........* 10
********* 9
.......* 8
******* 7
.....* 6
***** 5
...* 4
*** 3
..* 3
* 1
0568デフォルトの名無しさん
2011/01/17(月) 18:17:50http://codepad.org/B2LT2ME9
0569デフォルトの名無しさん
2011/01/17(月) 18:24:40(3) i !=11 ? (12-i) : 2
0570デフォルトの名無しさん
2011/01/17(月) 19:55:05http://livedoor.2.blogimg.jp/minkch/imgs/7/5/75fa5bd8.jpg
ご指摘感謝です。示していただいた URL の英語の記事では、ちょっと微妙なところがありましたが、
(fork() した後も、同じ物理メモリをポイントしている場合があるとかないとか)
free() しておくほうがいいでしょうね。
>>168
バッファオーバーランを起こしていたことが判明しました。失礼いたしました。
>>109-110
たびたびすみませんが、以下に修正した内容を示します。
http://codepad.org/S3ojhe0c
0572デフォルトの名無しさん
2011/01/17(月) 21:49:28[2] 問題文(含コード&リンク):http://codepad.org/LbA7xomp のプログラムを構造体で表現しなさい
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2008
[3.3] 言語: C++
[4] 期限:2010年 1月12日
[5] その他の制限:
>>520を再度まとめました。よろしくお願いします。
0573デフォルトの名無しさん
2011/01/17(月) 22:13:46これはどうやって作るのですか?
0574デフォルトの名無しさん
2011/01/18(火) 00:26:43ありがとうございます
指摘通りご入力です・・・
もう1つお願いします
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
(1)~(5)の穴埋め
$ ./test02
.*
**..
...***
****....
.....*****
******......
......******
$
0575デフォルトの名無しさん
2011/01/18(火) 00:28:24int main (void) {
int i,j ;
char C[2] = {'*' , '.'}
for (i=1; i<8; i++) {
if (i%2 == 0){
for (j=0; (1); j++) {
printf("(3)" , (4)) ;
}
for (; (2); j++) {
printf("(3)",(5) ;
}
} else {
for (j=0; (1); j++) {
printf("(3)" , (5)) ;
}
for (; (2); j++) {
printf("(3)" , (4)) ;
}
}
printf("\n");
}
return 0 ;
}
[3] 環境
[3.1] OS:windowsXP
[3.2] gcc
[3.3] 言語:C
[4] 期限: 出来れば本日中に
[5] その他の制限:
また誤入力と思われるところがありましたら脳内補完でお願いします
0576デフォルトの名無しさん
2011/01/18(火) 00:50:59http://codepad.org/ppqwgrP4
0577デフォルトの名無しさん
2011/01/18(火) 00:51:48即レスありがとうございます
助かりました
0578デフォルトの名無しさん
2011/01/18(火) 00:57:580579デフォルトの名無しさん
2011/01/18(火) 02:52:38無駄に printf() 使ってる(問題だから)くらいしか気にならないけど
0580デフォルトの名無しさん
2011/01/18(火) 10:09:29[2] 問題文(含コード&リンク)
[3] 環境
問題1 テキストファイルのコピーを作るプログラムを作れ
問題2 問題1について下記のようにコピー元とコピー先のファイル名を引数で指定できるようにプログラムを変更せよ
./a. out <コピー元ファイル名> <コピー先ファイル名>
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:1月19日
[5] その他の制限: なし
よろしくお願いします。
0581デフォルトの名無しさん
2011/01/18(火) 10:55:29int main(int argc, char *argv[]) {
FILE *fpRead;
FILE *fpWrite;
char ch;
if(argc != 3) {
printf("パラメータ正しく指定してください。\n");
return 1;
}
fpRead = fopen(argv[1], "r");
fpWrite = fopen(argv[2], "w");
if(fpRead == NULL || fpWrite == NULL) {
printf("ファイルをオープンできません。\n");
fclose(fpRead);
fclose(fpWrite);
return 1;
}
while((ch = fgetc(fpRead)) != EOF) {
fputc(ch,fpWrite);
}
fclose(fpRead);
fclose(fpWrite);
return 0;
}
0583デフォルトの名無しさん
2011/01/18(火) 10:59:37ttp://codepad.org/HCXw2hFT
0584デフォルトの名無しさん
2011/01/18(火) 11:05:10勉強になる。いいね。
0585493
2011/01/18(火) 11:16:48>>494,504 開けません。404 notfoundが表示されています。
>>562 やっぱトップダウン解析は遠慮され易いのかな。
0586デフォルトの名無しさん
2011/01/18(火) 13:06:21一応ゆあったけどロダにupできんね… codepad に3つ張る?
0587デフォルトの名無しさん
2011/01/18(火) 13:09:05問1. http://codepad.org/bJ6EoLbs
問2. http://codepad.org/yL3GPisT
問3. (問2. から拡張) http://codepad.org/x02bRXxM
0588デフォルトの名無しさん
2011/01/18(火) 14:36:27全く意味不明なのですが、別にヒントはないのですか?
0589588
2011/01/18(火) 14:40:09リバースエンジニアリング的な意味で、詳細仕様を
復元してみることくらいしか、やることを思いつき
ません。
0590デフォルトの名無しさん
2011/01/18(火) 15:01:450591デフォルトの名無しさん
2011/01/18(火) 17:18:260592デフォルトの名無しさん
2011/01/18(火) 19:12:15みたところ
>>581と>>583は問2
0593デフォルトの名無しさん
2011/01/18(火) 19:16:20嘘つかないでください。
0594デフォルトの名無しさん
2011/01/18(火) 19:22:59UNIXでテキストファイルって限定している意味が良く分からない
そうでないときはエラーにすれば良いのか?
0595デフォルトの名無しさん
2011/01/18(火) 19:27:460596デフォルトの名無しさん
2011/01/18(火) 19:40:41しねーのなら無視だ
0597デフォルトの名無しさん
2011/01/18(火) 19:58:08ふざけんな
0598デフォルトの名無しさん
2011/01/18(火) 20:21:16>>583 を書いた者だけど問2のつもりで書いたよ
でも問1を問2と差別化する方法が判らないよ
>>594 の説も有るかも知れないけど、問として難しすぎないか?
もし、講師が現場を知らない爺なら、fopen() → fgets() →fputs() の流れを期待してるのかもしれない
0599デフォルトの名無しさん
2011/01/18(火) 20:40:49標準関数の車輪作ったり、依存関数を使ったりと
移植性・可読性・生産性を下げて頑張っちゃう人っているよね
依存関数ってなんですか?
0601デフォルトの名無しさん
2011/01/18(火) 20:53:02システムに依存する関数
0602デフォルトの名無しさん
2011/01/18(火) 20:53:550603デフォルトの名無しさん
2011/01/18(火) 20:54:40宿題における、移植性・可読性・生産性って何ですか?
0604デフォルトの名無しさん
2011/01/18(火) 20:56:08説明不足でしたすいません
>>572のプログラムと同じ動作をする構造体を用いるプログラムを作りなさいという問題です
全く同じじゃなくても構いません
0605デフォルトの名無しさん
2011/01/18(火) 20:56:21strdup とか MS の 〜〜_s 系の関数とかじゃね
0606デフォルトの名無しさん
2011/01/18(火) 20:57:03ただの世間話ですけど、何か気に障りました?
0607デフォルトの名無しさん
2011/01/18(火) 20:57:55素朴な疑問なので気にしないでw
0608デフォルトの名無しさん
2011/01/18(火) 20:59:250609デフォルトの名無しさん
2011/01/18(火) 21:09:16void _read_image(const char *);
を
struct Name {
const char* filename;
};
void _read_image(struct Name);
こんなのでも通すの? 構造体使ってる
0610デフォルトの名無しさん
2011/01/18(火) 22:00:260611デフォルトの名無しさん
2011/01/18(火) 22:03:27車輪が作れないと、どっかのアホみたいに知ってるコードのコピペしかできなくなるぞw
0612デフォルトの名無しさん
2011/01/18(火) 22:28:16オレオレCコンパイラなんて、 結構な数が再生産されてるんじゃね?
# つか、 おれも作った記憶あるけど
0613デフォルトの名無しさん
2011/01/18(火) 22:36:270614デフォルトの名無しさん
2011/01/18(火) 22:39:28昔のおっさんの習慣だわ、
「先頭に#」 == 独り言 || 突っ込んでも返事しない || わかるやつだけわかりゃいい
0615デフォルトの名無しさん
2011/01/18(火) 22:44:190616デフォルトの名無しさん
2011/01/18(火) 23:00:400617デフォルトの名無しさん
2011/01/18(火) 23:01:52何が悔しかったの?w
0618デフォルトの名無しさん
2011/01/18(火) 23:05:37http://kmaebashi.com/programmer/hoge.html
0619デフォルトの名無しさん
2011/01/18(火) 23:06:42分かる人にとってはね
0620デフォルトの名無しさん
2011/01/18(火) 23:12:370621デフォルトの名無しさん
2011/01/18(火) 23:14:070622デフォルトの名無しさん
2011/01/18(火) 23:16:39いろんなものをパロってるから知らないと面白くないよ
知る必要もないけどね
0623デフォルトの名無しさん
2011/01/18(火) 23:20:37いや、だからパロとか含めて寒い
0624デフォルトの名無しさん
2011/01/18(火) 23:40:24Unicode文字のうち英数字以外のその他の国の字も許容しているので
(ただし、例外となる文字や先頭に来てはいけない文字は列挙されている)
>>361にある
const int 体力上限 = 50;
のような宣言はむしろ動かないほうが規格に合致しないコンパイラということなわけだ。
0625デフォルトの名無しさん
2011/01/18(火) 23:47:570626デフォルトの名無しさん
2011/01/19(水) 00:57:37[2] 問題文(含コード&リンク)
[3] 環境
問題1メイン関数でキーボードから二つの整数n1とn2を読み込み,それらをexponent関数を呼び出して,
n1のn2乗を計算し,結果をメイン関数で表示するプログラムを書きなさい.
<実行例>
二つの整数を入力してください.
n1 = 5
n2 = 2
5の2乗は25です.
問題2 5人の点数を読み込んでいき、その最高点を表示するプログラムを作成しなさい。
問題3 円の面積の一覧表を計算するプログラムを作成しなさい。
<実行結果>
半径 --- 面積
1.0 --- 3.14
1.1 --- 3.80
1.2 --- 4.52
1.3 --- 5.31
問題4 球の体積を計算するプログラムを作成しなさい。
実行例
体積 = 1766.25
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:1月19日
[5] その他の制限: なし
よろしくお願いします。
0627デフォルトの名無しさん
2011/01/19(水) 00:58:030628デフォルトの名無しさん
2011/01/19(水) 01:01:38ただ聞くだけじゃなく、ここまでやってみたけど思うように動かないからどうすればいい?とかできないかね?
いくらなんでも初歩の初歩聞くやつ多すぎ。
ちょっとでも考えないと脳みそ腐るぞ。
将来使う使わないにしても小学校の計算ドリルが解けないのと同じくらい恥ずかしいことだと理解すべき。
0629デフォルトの名無しさん
2011/01/19(水) 01:17:540630デフォルトの名無しさん
2011/01/19(水) 01:19:29そういうのいいです。
0631デフォルトの名無しさん
2011/01/19(水) 01:23:59http://codepad.org/n4d53XUJ
0632デフォルトの名無しさん
2011/01/19(水) 01:32:35http://codepad.org/IaJyDFI1
http://codepad.org/EkO9PwYi
http://codepad.org/llddbanF
問4は自分でやってみそ。
0635デフォルトの名無しさん
2011/01/19(水) 02:32:470636デフォルトの名無しさん
2011/01/19(水) 09:38:23[2] 問題文(含コード&リンク):http://ywata-lab.yz.yamagata-u.ac.jp/PDF/pro2-1-19.pdf
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: ユーザ関数
0637デフォルトの名無しさん
2011/01/19(水) 10:40:10あれ、何でだ。
見れん
0638636
2011/01/19(水) 10:41:58課題9:
コンピュータ(com)とあなた(you)がジャンケンをするプ
ログラムにおいて,以下の2つユーザ関数に作成して,
実行できるようにせよ
1.コンピュータ(com)の「手」を出力する
int Rival(void)
2.勝敗を判定し,出力する
void Judge(int you, int com)
問題文はこれです。
0639デフォルトの名無しさん
2011/01/19(水) 11:08:03enum { GU, CYOKI, PAA, NUM, };
int Rival(void) { return (rand() % NUM); }
void Judge(int your_te, int cpu_te){
printf("your_te: %s\n", (your_te==GU) ? "GU" : (your_te==CYOKI) ? "CYOKI" : "PAA");
printf("cpu_te : %s\n", (cpu_te==GU) ? "GU" : (cpu_te==CYOKI) ? "CYOKI" : "PAA");
if(your_te == GU){
if(cpu_te == GU){ puts("aiko"); }
if(cpu_te == CYOKI){ puts("kati"); }
if(cpu_te == PAA){ puts("make"); }
}
else if(your_te == CYOKI){
if(cpu_te == GU){ puts("make"); }
if(cpu_te == CYOKI){ puts("aiko"); }
if(cpu_te == PAA){ puts("kati"); }
}
else if(your_te == PAA){
if(cpu_te == GU){ puts("kati"); }
if(cpu_te == CYOKI){ puts("make"); }
if(cpu_te == PAA){ puts("aiko"); }
}
}
int main(void){
int your_te = -1;
do{
puts("input your_te :");
puts("(0 -> guu, 1 -> cyoki, 2 -> paa)");
scanf("%d", &your_te);
}while(your_te < GU || PAA < your_te);
Judge(your_te, Rival());
}
0640デフォルトの名無しさん
2011/01/19(水) 11:38:31問題文はこれです。
0641デフォルトの名無しさん
2011/01/19(水) 12:22:57関数名 sum_k2
書式 int sum_k2(int n)
機能 k^2の総和を漸化式により求める.
引数 範囲n
戻り値 総和Sn
[3] 環境
[3.1] OS: Windows
[3.2] gcc
[3.3] 言語:C
[4] 期限: [2011年1月22日(金)24:00まで]
[5] その他の制限:main関数で範囲nを入力し,総和を表示しなさい.
0642デフォルトの名無しさん
2011/01/19(水) 12:24:080643デフォルトの名無しさん
2011/01/19(水) 12:43:19if(n<0)n=-n;
if(n==0)return 0;
return n*n+sum_k2(n-1);
}
0644デフォルトの名無しさん
2011/01/19(水) 13:16:14[2] 問題文(含コード&リンク):
リスト構造をもつ成績処理のプログラム list.c に,引数として指定された得点のデー
タをリストから削除するdelete 関数を追加して,その動作が確認できるプログラムを
作成せよ.ただしこのdelete 関数では,削除したデータの領域はfree 関数を使って
解放せよ.またmain 関数では確認のため,データ削除前のリストと削除後のリストを
表示せよ.
(ヒント: void delete(struct record **listPointer, int scr); )
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [2011年1月24日(月)17:00まで]
0645デフォルトの名無しさん
2011/01/19(水) 13:17:59#include <stdlib.h>
#include <string.h>
struct record { /* 1人分のデータ */
char name[32]; /* 氏名 */
int score; /* 得点 */
struct record *next; /* 次のデータへのポインタ */
};
void printlist( struct record *list ) {
if ( list != NULL ) { /* リストが空でなければ */
printf( "%16s:%4d\n", list->name, list->score );
printlist( list->next ); /* 先頭の次からリストの表示 */
}
}
0646デフォルトの名無しさん
2011/01/19(水) 13:19:27struct record *newData ) {
if ( *listPointer == NULL ) { /* 旧リストが空 */
newData->next = NULL; /* 新データでリストは終わり */
*listPointer = newData; /* 新データがリストの先頭 */
}
else { /* 旧リストの先頭より低い得点 */
if ( (*listPointer)->score > newData->score ) {
newData->next = *listPointer; /* 新データの次に旧リスト */
*listPointer = newData; /* 新データがリストの先頭 */
}
else { /* 旧リストの先頭より高い得点 */
insert( &((*listPointer)->next), newData ); /* 再帰 */
}
}
}
0647デフォルトの名無しさん
2011/01/19(水) 13:20:17struct record *new, *list = NULL;
new = (struct record *)malloc( sizeof(struct record) );
printf( "name=" ); /* 氏名入力 */
scanf( "%s", new->name );
while ( strcmp( new->name, "END" ) != 0 ) { /* END でない間 */
printf( "%s's score = ", new->name ); /* 得点の入力 */
scanf( "%d", &(new->score) );
insert( &list, new ); /* リストへの追加 */
new = (struct record *)malloc( sizeof(struct record) );
printf( "name=" ); /* 氏名入力 */
scanf( "%s", new->name );
}
printlist( list ); /* リストの表示 */
}
0648デフォルトの名無しさん
2011/01/19(水) 13:27:40[2] 問題文(含コード&リンク) 球の体積を計算するプログラムを作成せよ。
関数の定義は以下の順序で行うこと。(プロトタイプ宣言が必要となります)
main()関数
下記の関数を組み合わせて呼び出し、直径15のときの球の体積を求め、その値を表示してください。
ただし、main()関数内では、変数を一切使うことなく関数の呼び出しを行ってください。
体積の計算用として、下記の2つの関数を定義してください。
1. radius関数:直径を引数として受け取り、半径を返却値として返す
2. volume関数:半径を引数として受け取り、球の体積を返却値として返す
ただし、引数及び返却値の型は、すべて double 型とします。
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:1月19日
[5] その他の制限: なし
よろしくお願いします。
0649デフォルトの名無しさん
2011/01/19(水) 13:38:16#include <stdio.h>
#define PI 3.141592
double radius(double phi){
return phi/2;
}
double volume(double r){
return 4.0/3.0*PI*r*r*r;
}
int main(){
printf("%f\n",volume(radius(15.0)));
return 0;
}
0650デフォルトの名無しさん
2011/01/19(水) 19:46:37[1] 授業単元:自学自習
[2] 問題文(含コード&リンク):CSVファイルのサイズで、malloc関数で領域を確保。
その領域に、CSVデータを収める方法。詳細は最下段。
[3] 環境
[3.1] OS:windows xp (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン:指定なし、borlandとbcc (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: なし
[5] その他の制限: なし
現在は定義を用いて、構造体配列の宣言→読込/格納というプログラムは完成しました。
この部分を↑の問題文のように改造することを思いつきました。
しかしSQLではなくCSV(項目の最大文字数は決まっているが、文字数自体は不定)のため、
ファイルサイズで領域確保して、構造体でキャストして格納しても、オーバーフローが
起きてしまうと予想しました。
そこで1トークンごとの文字数でrealloc関数を用いて、再定義→格納と考えたのですが、
全然美しくない&むしろ動作を重くなると予想されるため、他に方法がないか探しています。
何か慧聡がありましたら、御教授お願い致します。
0651デフォルトの名無しさん
2011/01/19(水) 19:49:05[3] 環境
[3.1] OS:windows xp (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン:指定なし、環境はborlandとcPad
[3.3] 言語:C (C/C++/どちらでも可 のいずれか)
0652デフォルトの名無しさん
2011/01/19(水) 20:21:04int main(void)
{
FILE* fp;
int size;
unsigned char* data=NULL;
if((fp = fopen("csv", "rb")) == NULL){ puts("fuck"); exit(1); }
fseek(fp, 0L, SEEK_END);
size = ftell(fp);
fseek(fp, 0L, SEEK_SET);
data = (unsigned char*)malloc(size);
fread(data, size, 1, fp);
fclose(fp);
return 0;
}
0653デフォルトの名無しさん
2011/01/19(水) 20:32:160654デフォルトの名無しさん
2011/01/19(水) 20:43:16ありがとうございます。
早速、試してみます。
0655デフォルトの名無しさん
2011/01/19(水) 20:56:390656デフォルトの名無しさん
2011/01/19(水) 21:32:30ありがとうございます。
やはりそうでしたか。上手いこといかず、どこで読み込んだ文字数分を
再定義しているか、四苦八苦しながら探しているところでした。
0657デフォルトの名無しさん
2011/01/19(水) 21:52:06格納したい構造体の定義を示さないと、回答不能じゃないかな?
0658デフォルトの名無しさん
2011/01/19(水) 22:00:22ありがとうございました
0659デフォルトの名無しさん
2011/01/19(水) 23:06:16エスパーするとL2なんか普通に乗ってる
てかいつの話してんだ15年前か
0660デフォルトの名無しさん
2011/01/19(水) 23:08:57項目の最大文字数が決まってるなら行数が判れば良いって事?
だったら1回 fgets() で読んで行数をカウントすれば?
普通は構造体配列を規定サイズで確保して、溢れる時に規定サイズ分増やして realloc() する様なコードを書くけどね
0661デフォルトの名無しさん
2011/01/19(水) 23:57:51糞
0662デフォルトの名無しさん
2011/01/20(木) 00:05:53罵倒するなら代替案を出したら
0663デフォルトの名無しさん
2011/01/20(木) 00:11:08ファイル全体を読み込むだけのメモリ確保できるなら、
一度全部メモリの読込み、そこで必要なサイズ、個数を数え、
あらためて、配列用にmallocしてみるのは?
0664デフォルトの名無しさん
2011/01/20(木) 00:15:370665デフォルトの名無しさん
2011/01/20(木) 00:17:2610年前の話なんですが・・・もしかして現在の話だと思いましたか
0666デフォルトの名無しさん
2011/01/20(木) 00:19:33[2] 問題文: http://ux.getuploader.com/sanada1678/download/17/%E3%82%B3%E3%83%94%E3%83%BC+%EF%BD%9E+%E8%AA%B2%E9%A1%8C.csv
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 平成23年1月20日まで
[5] その他の制限:無し
0667デフォルトの名無しさん
2011/01/20(木) 00:33:230668666
2011/01/20(木) 00:34:42よろしくお願い致します。
0669デフォルトの名無しさん
2011/01/20(木) 00:39:450670669
2011/01/20(木) 00:40:34はずかしい・・ orz
0671デフォルトの名無しさん
2011/01/20(木) 00:52:040672デフォルトの名無しさん
2011/01/20(木) 00:55:300673デフォルトの名無しさん
2011/01/20(木) 01:08:18ありがとうございます
そうすればいいのですね!
0674デフォルトの名無しさん
2011/01/20(木) 01:58:11http://tinyurl.com/22ru7sr
途中までやったけど眠いから微妙
起きてまだ誰もやってなかったら続きやります
0675666
2011/01/20(木) 02:05:17早速、試してみます!
0676デフォルトの名無しさん
2011/01/20(木) 03:01:32読むとこまで書いたけど、タバコが切れたの休憩
後は、開始日時と終了日時を算出して、入庫・出庫テーブル作って....結構面倒くさいな
ttp://codepad.org/Q3pUCJOB
0677デフォルトの名無しさん
2011/01/20(木) 04:06:01集計部分も付けた
在庫数の計算は 開始台数 + 入庫台数 + 出庫台数 で良いのかなぁ
結果は printf() してるだけだから好きなフォーマットにして出力する様に直しな、それくらいは出来るでしょ
ttp://codepad.org/ueIdT6vv
0678デフォルトの名無しさん
2011/01/20(木) 08:55:23なぜか問題文が読み取れない・・・
0679デフォルトの名無しさん
2011/01/20(木) 08:57:330680デフォルトの名無しさん
2011/01/20(木) 08:59:21まではオケ?>>666+12
0681デフォルトの名無しさん
2011/01/20(木) 09:03:52他にあるのですか?
0682680
2011/01/20(木) 09:10:33が正しいファイル名では?
0683デフォルトの名無しさん
2011/01/20(木) 09:34:22すみません。解決しました。
Sjisからの変換がうまくいかなくて、
全角文字が消えていました。
0684デフォルトの名無しさん
2011/01/20(木) 09:39:44[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C++
[4] 期限: ([2011年1月20日12:00まで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
0685684
2011/01/20(木) 09:42:54#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h> /*API利用*/
typedef struct
{
char type; /* 種類 */
int no; /* 数字 */
int omote; /* 表フラグ */
int atari; /* 当たりフラグ */
}CARD;
void init(CARD *); /* イニシャライズ関数 */
void disp(CARD *); /* ディスプレイ関数 */
void shuffle(CARD *);/*シャッフル関数*/
int cd_open(CARD *pt);
/* メイン処理 *
0686684
2011/01/20(木) 09:44:06{
CARD dt[52]; /*トランプ用配列*/
int op1,op2;/*オープンしたカード番号*/
srand((unsigned int)time(NULL));
init(&dt[0]);
shuffle(&dt[0]);
disp(&dt[0]);
printf("1枚目\n");
op1=cd_open(&dt[0]);
disp(&dt[0]);
printf("2m枚目\n");
op2=cd_open(&dt[0]);
disp(&dt[0]);
disp(&dt[0]);
if(dt[op1].no==dt[op2].no)/*当たり判定*/
{
printf("当たり!!\n");
dt[op1].atari=dt[op2].atari=1;/*当たりフラグセット*/
}
else
{
printf("はずれ!!\n");
dt[op1].omote=dt[op2].omote=0;/*おもてフラグリセット*/
}
}
0687684
2011/01/20(木) 09:45:42/*ハートの1からクローバーの13まで入れる*/
{
char c[4]={'H','S','D','C'};
/*2つのループで動かす*/
int i,j;
for(i=0;i<4;i++) /* 種類を変更 */
{
for(j=1;j<=13;j++)
{
pt->type = c[i];
pt->no = j;
pt->omote = 0;
pt->atari = 0;
pt++;
}
}
}
0688684
2011/01/20(木) 09:48:08{
int i;
system("CLS");
printf(" ");
for(i=1;i<=13;i++)
{
printf(" %2d ",i);
}
printf("\n");
/*1つのループで動かす*/
for(i=0;i<52;i++)
{
if(i%13==0) printf(" %2d ",i/13+1); /*行番号*/
if(pt->atari==1)
0689デフォルトの名無しさん
2011/01/20(木) 10:15:32えと >>1 にある
>【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
>http://codepad.org/ ←遅い時間は重い事があります
>http://ideone.com/
コードの記載はこのURLのどちらか使ってください。
URL開いてからの手順は1.コードを入れて 2.Cにチェック入れて 3.submitボタン押して
4.URLコピーして 5.そのURLをここに張り付けて。
0690デフォルトの名無しさん
2011/01/20(木) 10:17:12見守っていればいいということかな。
0691デフォルトの名無しさん
2011/01/20(木) 10:20:57ここのスレにレスできなくなってるなら
2ch内で”代行”と検索してレス代行をしてくれる人にお願いして。
レス代行スレには書き込めるはずなので。
0692デフォルトの名無しさん
2011/01/20(木) 12:04:370693デフォルトの名無しさん
2011/01/20(木) 15:30:10なんだよ。消えろよクズ。
0694デフォルトの名無しさん
2011/01/20(木) 21:04:08[2] 問題文(含コード&リンク): ファイルの出力のソート化
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: VC2008
[3.3] 言語: C
[4] 期限: 22日
[5] その他の制限: やさしいCがやっと読み終える程度の到達度です。
ファイルの入出力で、ファイルオープンした後に昇順のソートがしたいのですがよくわかりません。
スケジュール管理表のような感じのプログラムを作りたいので、配列を日程と内容の2つに分けました。
「日程」はint型の配列を使用し、1月20日ならば0120のように入力します。「内容」の配列はchar型を使用しました。
txtは「0120(日程) 2ch書き込み(内容)」のようにし、ここからファイルをオープン後txtに入力してある
データを日程の昇順でソートし、出力したいのですがよくわかりません・・・。
ファイルをオープンした後に日程の配列を読み込み、それをソート後、日程と内容の配列を関連づければいいのでしょうか?
0695デフォルトの名無しさん
2011/01/20(木) 21:15:13日程と内容を二つの配列にするのではなく、日程と内容を持った構造体の配列にすれば qsort() でソートして出力すれば良い
0696デフォルトの名無しさん
2011/01/20(木) 21:26:57int main(void)
{
system("sort txt > tmp");
system("mv tmp txt");
return 0;
}
0697デフォルトの名無しさん
2011/01/20(木) 21:37:06ttp://codepad.org/lwpXTjyT
0698デフォルトの名無しさん
2011/01/20(木) 23:14:00内容に空白が含まれてるとマズい事にならんか?
0700デフォルトの名無しさん
2011/01/21(金) 02:56:26死ね
0701デフォルトの名無しさん
2011/01/21(金) 06:09:26量産型メモリーリーク
0702696
2011/01/21(金) 09:17:000703デフォルトの名無しさん
2011/01/21(金) 09:38:02[2] 問題文(含コード&リンク)
[3] 環境
�@キーボードから学生番号と氏名の組をn個読み込み、ファイルに書き込む関数を作れ。ただし、nの値とファイル名は引数として取得するものとする。
�A引数で取得したファイル名のファイルから同じく引数で取得した個数の学生番号と氏名のデータを構造体変数に格納し、学生番号順に表示する関数を作れ。
�B以上で作成した関数を使用し、プログラムを完成せよ。ただし、nの値と使用するファイルの名前はプログラムの引数として与えられるものとする。
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:1月22日
[5] その他の制限: なし
よろしくお願いします。
int read_from_kb_to_file(char *, int );
int sort_from_file_to_ds(char *, int );
int main(int argc, char *argv[]){
num = atoi(argv[1]), filenm = argv[2];
read_from_kb_to_file(filenm, num);
sort_from_file_to_ds(filenm, num);
}
0705デフォルトの名無しさん
2011/01/21(金) 10:32:29レスから三日も経過した後ですが、ありがとうございました。
2年後くらいには質問者から回答者になれるくらいに頑張ります。
0706デフォルトの名無しさん
2011/01/21(金) 12:29:200707デフォルトの名無しさん
2011/01/21(金) 12:34:010708デフォルトの名無しさん
2011/01/21(金) 13:01:48n と ファイル名はコマンドラインで 番号氏名はキーボードからって書いてあるようにしか読めんが
0709デフォルトの名無しさん
2011/01/21(金) 13:01:50__|_ _l__|_ ┌‐┐
^ω^) /⌒ヽ \ / (^ω^) _l__|_
7 ⌒い _( ^ω^) X. /⌒ヽ / ヽ (^ω^)
| l /フ ̄⌒ヽ n/ \ (^ω^ )_ l / ヽ
\ \ (/l、__\__ソ (^Vヽ  ̄ 、 \ l |
\ /っ / ,(_\ ー' 人 ̄ )(つ
│/_/ /__ノ 〈__r‐\ \
___)─' └--' └-┘ (フ
│ | │
┤ ト-ヘ
0710 ◆IluCWboVho
2011/01/21(金) 13:29:20[2] http://www.dotup.org/uploda/www.dotup.org1373468.txt.html
[3] 環境
[3.1] Windows
[3.2] VC2008
[3.3] C、C++どちらでも可
[4] 期限:2011年1月25日
[5] その他の制限:一切なし
近似値を見つけ出し出力をする、という方法が全く分かりませんでした。
こんなこと可能なのでしょうか・・・?
お手数おかけしますがどなたか宜しくお願いします。
0711 ◆IluCWboVho
2011/01/21(金) 13:30:04忘れて申し訳ございませんでした
0712デフォルトの名無しさん
2011/01/21(金) 13:44:49r = sqrt((x2-x1)^2 + (y2-y1)^2 + (z2-z1)^2))
0713デフォルトの名無しさん
2011/01/21(金) 14:16:33PPをくれよ
n個の3次元ベクトルからなる集合Xが存在し、ベクトルNを規定ベクトルと定義する
集合X内の任意のベクトルVを選んでベクトルNから引きそのベクトルを新たにベクトルNとすることをl回繰り返す
その後、ベクトルNにもっとも近い(ユークリッドノルムでいいだろう)ベクトルを集合Xから見つける
X = {x_i in R^3 | i = 1, 2, 3, ..., n}
N = [n1, n2, n3]^T
for i in {1, 2, 3, ..., l}
j = rand(|X|)
V = x_j in X
N = N - V
search_nearest_neighbor(N, X)
こんな理解で大丈夫だろうか
最近傍探索はいろいろやりかたあるからここでは触れない
0714 ◆IluCWboVho
2011/01/21(金) 14:29:41>>713さんのおっしゃる内容が今の私には理解できないのですがとりあえず感覚としては
N[x=1000 y=1500 z=2000]というおおもとのものがあり
選択肢としてA[x=100 y=200 z=300]やB[x=50 y=60 z=70] C[x=10,y=20,z=30]などがあり
1回目にAを選択するとNがN[x=900 y=1300 z=1700]となり2回目にCを選択するとN[x=890 y=1280 z=1670]となり、
この時点で終了させるとNの中身のx,y,zの値がもっとも近いAなのでAと出力されれば成功、という事です。
別にNやABCの中身は3つでなくても1個でなければ何個でも構わないそうです。
Nが仮りにN[x=100 y=20 z=70]となった場合出力するのはAとCあるいは、それぞれより近い値を探しBと表示するかという感じでしょうか
0715 ◆IluCWboVho
2011/01/21(金) 15:02:35ttp://www.dotup.org/uploda/www.dotup.org1373555.ppt.html
pass:kadai
OpenOfficeしかもっていないので見れるかどうか確実ではありません、申し訳ないです
0716 ◆IluCWboVho
2011/01/21(金) 15:21:38あわてて差し替えさせてもらいました
ttp://www.dotup.org/uploda/www.dotup.org1373586.ppt.html
pass:kadai
です
0717デフォルトの名無しさん
2011/01/21(金) 15:50:340718デフォルトの名無しさん
2011/01/21(金) 19:54:410719デフォルトの名無しさん
2011/01/21(金) 20:03:55最近Pythonばかり使っているからなぁ
>716
(1)データの読み込む
(2)辞書を作成
(3)ユーザからの入力を辞書から引く
(4)新たなNを計算
(5)Nが入力されるまで(3)と(4)を繰り返す
(6)辞書(リストでもツリーでもいい)からもっともNに近いものを見つけて出力
面倒なので、結局Pythonでやりました
0720デフォルトの名無しさん
2011/01/21(金) 20:22:03C++可だからmapが使えるし
2008だからtr1でshared_ptrが使えるので
さほど変わらんような。
0721デフォルトの名無しさん
2011/01/21(金) 21:44:44malloc(), realloc(), free() のラッパを二重に重ねてチェックしましたが、メモリリークの兆候は見つけることはできませんでした。
もしメモリリークを検出するソフトをお使いでメモリリークを発見されたのなら、お手数ですが、以下のコードでもう一度チェックしていただけないでしょうか。
http://codepad.org/Gf8KBG6y
リークしているメモリの先頭4バイトの内容をお知らせいただければ幸いです。
>>694
しばしお待ちを。
0723デフォルトの名無しさん
2011/01/21(金) 22:25:15#include <glut.h>だと画像が表示されず、エラーが出ますが、
#include <GL/glut.h>だと画像が表示されます。
どうしてでしょうか?教えてください。
0724デフォルトの名無しさん
2011/01/21(金) 22:28:26パスが通っていない
環境による
Windows使っているのなら僕は解答できない
0725デフォルトの名無しさん
2011/01/21(金) 22:32:00ビルドが通り実行時に不具合が出るという事なら
glut.hとGL/glut.hをタグジャンプなどで開き比較してみてはいかがでしょうか?
おそらくリンクされるライブラリが異なるぐらいの事だろうけど。
0726デフォルトの名無しさん
2011/01/21(金) 23:03:42heap管理の関数を下請けに使ってるから、メモリリークっぽい動きになってるだけでしょ
一度に自前で処理するメモリを確保して、その中だけで動くようにしてみたら
0727デフォルトの名無しさん
2011/01/21(金) 23:05:22ゴメン、見直したら anaryze() で mygetline() で確保してる領域を開放してるんだな
>>701 は撤回するけど、良くない作りだな
0728デフォルトの名無しさん
2011/01/21(金) 23:14:06[2] 問題文(含コード&リンク):http://codepad.org/KKYds7DX
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: Cでお願いします
[4] 期限: 1月いっぱい
[5] その他の制限: 問題文中にある課題4というのは成分のわかってる行列の内積をもとめるものでした
ので面倒でしたらその部分は省いていただいても結構です
0729デフォルトの名無しさん
2011/01/21(金) 23:15:050730デフォルトの名無しさん
2011/01/21(金) 23:16:41matrix01.dataはどこにあるの?
それと課題4のソースはないの?
っていうかその部分を省いたらファイルの読み込みしかやることがないんだけど。
0731デフォルトの名無しさん
2011/01/21(金) 23:29:06同サイズの行列2つを読み込む様に書いてるから加算結果でも出力するんじゃね?
「malloc() したところで free() する」という作法があることは理解しています。win32api の一部の関数は、厳格にこれを守っています。
しかし、この作法に従うと「内側で malloc() した領域を返す関数」も避けたほうがいい、これは個人的にはなかなかしんどいと感じています。
メモリリークを検出する手段を手持ちにしているので、コーディングのなかでチェックを並行しつつ、階層を横断していても適宜 malloc(), free() を使うスタイルを私はとっています。
0733デフォルトの名無しさん
2011/01/21(金) 23:57:30内部で領域を確保する関数を作るなら、確保した領域を開放する関数もセットで作れば良いだけの話じゃないの?
当然、それらは同じ関数内からコールする、業務コードでは常識だよ
逆に困ってしまうのは anaryze と addlist の場合だね
anaryze で確保した領域を addlist 内でそのまま使っているからメモリ管理の責任所在が不明確になる
俺なら addlist 内で anaryze も行うかなぁ
そうすれば addlist 内で text の領域を確保して dellist 内で text の領域を開放する様な構造にできるだろう
厳格な作法に拘らないならば >>699 は冗長だ
myGetOneData( File*, int* char** ) みたいな関数を作れば malloc(), free() を一セット減らせるからね
>内部で領域を確保する関数を作るなら、確保した領域を開放する関数もセットで作れば良いだけの話じゃないの?
次の機会にそれで書いてみます。
>analyzeで確保した領域をaddlist内でそのまま使っているからメモリ管理の責任所在が不明確になる
malloc() が返すポインタが複数の関数やデータ構造を渡り歩く、というイメージで作りましたが、これも規模が大きくなると壁が待ち構えているのかもしれません。私はまだその域まで到達していませんが。
>myGetOneData(FILE*,int*,char**)みたいな関数を作れば
なるほど。
0735Rie
2011/01/22(土) 01:18:13[2]最後にまとめて記載します
[3] 環境
[3.1] Windows
[3.2] VC2005
[3.3] C#
[4] 期限:2011年1月24日
[5] その他の制限:一切なし
private void Form1_Paint_1(object sender, PaintEventArgs e)
{ DrawCircle(e.Graphics, 100, 100, 100, 7); }
private void DrawCircle(Graphics g, double x,double y, int radius, int num)
{ Random rnd = new Random();
int value = 126 * num / 6;
SolidBrush opaqueBrush = new SolidBrush(Color.FromArgb(value, 0, 0, 153));
g.FillEllipse(opaqueBrush, (int)x, (int)y, radius * 2, radius * 2);
if (num > 1)
{ int branches = rnd.Next(2, 6);
for (int j = 0; j < branches; j++)
{ double a = rnd.NextDouble() * 2.0 * Math.PI;
double newx = x + Math.Cos(a) * 6.0 * (num - 1);
double newy = y + Math.Sin(a) * 6.0 * (num - 1);
DrawCircle(g, newx, newy, radius / 2, (num - 1));
}}}}}
0736Rie
2011/01/22(土) 01:19:05上記のプログラムを実行すると円が大量に描かれるものの、ウィンドウサイズ変更していると、円が不自然な形になってしまう。
それを以下の段階を踏んで修正。
�@-1 プログラムから描写に必要な情報を考えて、円に対応するクラスMyCircleを作成せよ。
このクラスには適切なメンバ変数とコンストラクタを設定すること。
�@-2 プログラムの中のDrawCircleをよく読み、MyCircle型のコレクションクラスに
円に格納する関数を作成せよ。このメソッドはフォームのコンストラクタから呼び出しておくこと。
(System.Collection.Generic名前空間にあるListクラスを使用)
*使用例
List<MyCircle> a = new List a<MyCircle>
a.Add(new MyCircle)(/*コンストラクタ引数*/));
a.Add(new MyCircle)(/*コンストラクタ引数*/));
MyCircle x = a[10];
�@-3 プログラムの中のDrawCircleをよく読み、MyCircleクラスにグラフィックオブジェクトを引数にとって描写を行うメソッドDrawを追加。
また、Drawメソッドを呼び出してすべての円が描写できるようDrawCircleを書き直しなさい。
�A 完成した�@を改造し、三角形を描写できるようにする。
必要なのは�@-3の終了段階で完成するプログラムと、�Aのプログラムになります。
0737デフォルトの名無しさん
2011/01/22(土) 01:22:57> [3.2] VC2005
> [3.3] C#
0738デフォルトの名無しさん
2011/01/22(土) 01:31:59ふらっとC#,C♯,C#(初心者用) Part68
http://hibari.2ch.net/test/read.cgi/tech/1294921393/
C#, C♯, C#相談室 Part64
http://hibari.2ch.net/test/read.cgi/tech/1294734221/
C#,C#の宿題片付けます。
http://hibari.2ch.net/test/read.cgi/tech/1197620454/
0739デフォルトの名無しさん
2011/01/22(土) 01:38:01つcsc
0740デフォルトの名無しさん
2011/01/22(土) 02:22:40/ / / / / / | | ! | | !、 r┐ r┐ヾ>
/ / // ./ / / | | ヽ | | i. || lニ コ
| .| / ! / ! i. |.| `、 |! | | | レ! _| |.
| | / | / // i| ヽ. |ヽ | .| ヽ/(___メ>
.| | へ,L/ .|.! ! 丶/"i |. | ,、
| | / V`ヽ__ ! _/"ヽi ヽ.| | ((
| レ ,-",,=o,~` '",o~,`ヽヽ `| .| ))
.| | / /::::::::::::i i::::::::::`i ヽ | | ((
.| |、.' ヽrー-ノ ヽrー-ノ ! | | ))
| | }  ̄  ̄ | .| ((
| ト|::::::::::::::: ' __ ::::::::::::::/| | ))
.| : |:::i ::::::::::: ,. -ー ,,_,,- '" V`ヽ.::::::::::!1 .| _ ((
| ::: |_;>、 / } ,<;_i .:. | ヽヽ `
,.-"i.:.::::. | >,.,ヽ ノ,..=i| |.::::::∧ ).) / 7
,.="/ .:::i::::::::..| // i:i`- 、__ __ ,,. - T:| || .i.:::::::!、 ヽ,,,,,,.ノノ ┌‐' 'ー┐ト、
/ ..::/"|:::::i::::i .|:| |:{ }:| .|:|.i::::i::| `, ヽ`''''" 7 /_7 / 」__〉
.::/ |:::::i::::||:| !:! !:! |:/:::/:| ヽ. ヽ. 〈_/ヽ_/
0741デフォルトの名無しさん
2011/01/22(土) 05:29:360742デフォルトの名無しさん
2011/01/22(土) 06:46:160743デフォルトの名無しさん
2011/01/22(土) 11:05:44[2] 問題文(含コード&リンク):ランダムなキー(整数)列を生成して赤黒木
を構成した後、キーを昇順に書き出すプログラムを作れ。
必要なら以下のノードを使用せよ
struct node{
int key;
int info;
int red;
struct node *left;
struct node *right;
};
[3] 環境
[3.1] OS:Unix
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C/C++/どちらでも可
[4] 期限: 1月26日
[5] その他の制限: mainの部分もお願いします。
0744デフォルトの名無しさん
2011/01/22(土) 11:59:140745デフォルトの名無しさん
2011/01/22(土) 12:05:420746デフォルトの名無しさん
2011/01/22(土) 12:08:100747デフォルトの名無しさん
2011/01/22(土) 13:12:06問題2:脱童貞
問題3:今夜の食費
0748デフォルトの名無しさん
2011/01/22(土) 13:23:45解決2:ソープいけ
解決3:掘られろ
0749デフォルトの名無しさん
2011/01/22(土) 16:08:29[2] 問題文(含コード&リンク):�@自由に文字列を定義して、その文字列のn番目の文字を表示するプログラムを作れ。
�A自由に文字列を定義して、n番目以降の文字をすべて表示するプログラムを作れ。
�B自由に文字列を定義して、n番目からo番目(n<=o)の文字を表示するプログラムを作れ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:1月24日まで
よろしくお願いします。
0751デフォルトの名無しさん
2011/01/22(土) 16:56:24ありがとうございました
0752デフォルトの名無しさん
2011/01/22(土) 17:53:43#include <stdio.h>
int main(void){
char str[100];
int num1,num2;
int i, j;
printf("文字列 :");
scanf("%s", str);
printf("何番目 :");
scanf("%d", &num1);
printf("何番目まで :");
scanf("%d", &num2);
printf("%d番目の文字は%c\n",num1, str[num1-1]);
i=num1-1;
printf("%d番目以降の文字列は",num1);
while(str[i]!='\0') {
printf("%c", str[i]);
i++;
}
printf("\n%d番目から%d番目までの文字列は",num1,num2);
for(i=num1;i<=num2;i++) printf("%c", str[i-1]);
printf("\n");
return 0;
}
0753728
2011/01/22(土) 21:40:35matrix01.dataと、課題4の問題を入れたものをあげました。
http://hahu.sakura.ne.jp/up/uppiro/source/up1689.zip
課題4を自分で作ったのが
http://codepad.org/2R5eFJxH
になるので、まだやってやろうという方がいらっしゃったらお願いします
0754デフォルトの名無しさん
2011/01/22(土) 22:11:47>>710
>>728
>>743
かな?
0756デフォルトの名無しさん
2011/01/22(土) 22:52:55>>710
>>743
か
0757デフォルトの名無しさん
2011/01/23(日) 03:14:42codepadあたりに貼ってくれないか
0758デフォルトの名無しさん
2011/01/23(日) 03:42:410759デフォルトの名無しさん
2011/01/23(日) 04:47:190760デフォルトの名無しさん
2011/01/23(日) 05:01:33A「x=100,y=200,z=300」B「x=50,y=60,z=70」C「x=10,y=20,z=30」・・・・N「x=1000,y=1500,z=2000」
というデータがtext文に書かれていて、
要素名入力:A (ただしNが入力されたらプログラム終了)
内部動作:N=N−A
結果:1回繰り返したら(x=900 y=1300 z=1700となるから)近似値は Aとなる。
10回繰り返したら(x=0 y=-500 z=-1000となるから)近似値は Cとなる。
ということか?
0761760
2011/01/23(日) 05:09:27ちなみにこの課題はDOS窓でいいのか?
0762デフォルトの名無しさん
2011/01/23(日) 05:32:09はい、そのとおりです。
DOS窓で構いません、API等は自力で何とかしようと思います。
0764デフォルトの名無しさん
2011/01/23(日) 11:57:310765デフォルトの名無しさん
2011/01/23(日) 12:02:18拡張子がなんだろうがHTML+javascriptのテキストだったら
実行されてウイルス感染するの知らないのか
0766デフォルトの名無しさん
2011/01/23(日) 12:40:470767デフォルトの名無しさん
2011/01/23(日) 13:02:49[2] 問題文(含コード&リンク): http://www.dotup.org/uploda/www.dotup.org1377581.txt.html
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 1月25日
[5] その他の制限: 確率統計のプログラム問題です。よろしくお願いします。
0768749
2011/01/23(日) 13:21:08ありがとうございます。
0770デフォルトの名無しさん
2011/01/23(日) 16:34:520771デフォルトの名無しさん
2011/01/23(日) 16:54:55[2] 問題文(含コード&リンク):http://www1.axfc.net/uploader/File/so/57456.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 1月25日
[5] その他の制限: >>767と同じ問題です。dotうぷろだが一日で消えるので別途upしました
0772デフォルトの名無しさん
2011/01/23(日) 18:44:030773デフォルトの名無しさん
2011/01/23(日) 19:02:44ありがとうございました!
0774デフォルトの名無しさん
2011/01/23(日) 20:15:26まだ誰もやってないようだから晩飯食べたらやる。でも2時間かかる。
なんせ私も初心者の域を出てないからな。
ちなみにテキストデータの形式はCSVでいいのか?
A, 100, 200, 300
B, 50, 60, 80
C, 90, 30, 70
:
:
N, 20, 30, 40
こんな感じ? これを前提にやる。問題あればいってくり。
0776デフォルトの名無しさん
2011/01/23(日) 22:41:58[2] 問題文(含コード&リンク): データx(n)とy(n)の相互相関関数R
R(k)=1/N*Σ(n=0),(N-1-k) x(n)y(n+k)
を求めるプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語: どちらでも可
[4] 期限: 2011年1月24日9:00まで
[5] その他の制限: 特に無し
締切りまであまり時間が無いですが宜しくお願いします。
0777774
2011/01/23(日) 23:19:09まだ途中。
・構造体にしてない。これは本当に自分でも凹んでま。
・変数名がみずらい。すまそ。
N=N-要素名
まではできています。
残りは N=N-要素名 から近似値のデータを探す部分だけ。
ちょっと萎えてきた。
http://ideone.com/gsvL5
0778デフォルトの名無しさん
2011/01/23(日) 23:26:43[2] 問題文(含コード&リンク):
n本の棒がある。棒i(3<n<100)の長さはa_i(1<a_i<10^4)である。
あなたは、それらの棒から3本を選び、「できるだけ周長の長い三角形」と「できるだけ周長の短い三角形」
を作ろうと考えている。それぞれ最大・最短の周長と選択した棒の組を求めるプログラムを作成せよ。
ただし、どのような棒の組を選んでも三角形が作れない場合、0を答えとして返せ。
プログラムの要件として、以下の事項を定める。
・引数として棒の長さデータが収められたファイル名のみが与えられるものとする。
・結果として、標準出力に、最大周長と棒の組み合わせ、最短周長と棒の組み合わせが出力されること。
% cat length.dat
2 3 4 5 10
% ./a.out length.dat
最大周長=12 (3 4 5)
最短周長=9 (2 3 4)
%cat length.dat
4 5 10 20
% ./a.out length.dat
0
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2011年1月26日まで
よろしくお願いします。
0779デフォルトの名無しさん
2011/01/23(日) 23:29:160780デフォルトの名無しさん
2011/01/24(月) 00:13:30http://codepad.org/V9XmeXcN
0781デフォルトの名無しさん
2011/01/24(月) 00:14:57問題文間違ってないか
x R(k)=1/N*Σ(n=0),(N-1-k) x(n)y(n+k)
○ R(k)=1/N*Σ(n=0),(N-1-k) x(n)y(n-k)
あと、プログラムの正当性分からないからチェックして出すようにしてね
0782デフォルトの名無しさん
2011/01/24(月) 00:18:06[2] 問題文(含コード&リンク)
[3] 環境
キーボードから入力した整数を、2倍して表示するプ ログラムを作成しなさい。ただし以下の要件を満たすこと。
calcx2 関数の定義・・・ void calcx2(void) 引数ならびに戻り値はなし。 入力値を 2 倍する
main 関数の定義 キーボードから整数の入力 calx2 関数の呼出し 結果の表示
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:1月24日
[5] その他の制限: なし
よろしくお願いします。
0783デフォルトの名無しさん
2011/01/24(月) 00:21:31http://codepad.org/RzWxl5yR
0785デフォルトの名無しさん
2011/01/24(月) 01:12:05int x,y,z;
}player;
struct Mob{
char *name;
int x,y,z;
struct Mob *next;
};
struct Mob *Mobs;
struct Mob *top;
void Mob_insert(char *n,int x,int y,int z){
}
void Mob_clear(){
}
メンドクサイな
0786デフォルトの名無しさん
2011/01/24(月) 01:28:43[2] 問題文(含コード&リンク):
#define isnum(c) ('0' <= c && c <= '9')
#define isupc(c) ('A' <= c && c <= 'Z')
#define islwc(c) ('a' <= c && c <= 'z')
をインクルードし、数字か否かを判別するプログラムと
英大文字か英小文字を判別するプログラムの2つを1つのソースファイルとして作成せよ。
コンパイル時に数字用か英字用かを判別する条件付きコンパイルを組み込むこと。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 1月24日7:00
[5] その他の制限: 特に無し
お願いいたします。
0787デフォルトの名無しさん
2011/01/24(月) 01:49:04ttp://codepad.org/TwTOUhwo
0788デフォルトの名無しさん
2011/01/24(月) 02:15:03ありがとうございます。
0789777
2011/01/24(月) 03:47:26やばい行き詰った。
近似値計算がうまくいかねぇです。
おっかしいなぁ。全然近い値をとってこない。
なんか焦ってきた。
だがいったん寝る。 orz
近似値計算が残ってる状態。
http://codepad.org/ErXmDY36
0790777
2011/01/24(月) 04:14:32あれ? いま気が付いたが>>714みると
要素名の入力を何回かしてN入力で終了という事かな。
てっきり要素名は1回入力してその要素名を何回引き算するか
かと思って進めてた。
手直ししなくちゃ。 でも寝る。 ZZZzzz。。。。
0791デフォルトの名無しさん
2011/01/24(月) 05:07:32問題が消えててよく判らんのだけど >>777 とのやり取りから推測してみた
ttp://codepad.org/0ODPvcev
こんなんで良いの?
0792デフォルトの名無しさん
2011/01/24(月) 07:30:46# [2] 入力した要素名からその要素がもっている数値を規定値Nより引き、最終的に予めテキストに
# 保存した要素の中よりNにもっとも近い(近似値)要素名を探しだし出力せよ
# 例:規定値Nには「x=1000,y=1500,z=2000」
# 要素名A「x=100,y=200,z=300」B「x=50,y=60,z=70」C「x=10,y=20,z=30」という内容を持ったデータを
# 予め作成し保存
# 入力するのはx,y,zの数値ではなくA、B、Cといった要素名
#
# 動作例:
# 要素名入力:A
# 内部動作
# N=N‐A
# (x=1000-100 y=1500-200 z=2000-300)
# (= x=900 y=1300 z=1700)
# これを任意の回数繰り返し、Nを入力すると終了する等にてループを抜け
# 最終的にNの中の値とA,B,Cより値よち最も近い要素名を出力する(複数可)
# 例えばNの中身がx=200 y=300 z=300となった時に終了すると「近似要素名出力:A」
# と出力されるようにせよ
#
# /*追加評価
# APIを利用し、UIを作る
# よりわかりやすいインターフェースにする
# 等、その他、鋭意工夫を期待しています
# (と書いてありましたが、そこまでは必要ないと思います。)
# パワーポイントに長々と書いてあったのを要約したのですが、それでも長くなってすみません*/
0793デフォルトの名無しさん
2011/01/24(月) 07:46:18http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/33.pdf
元はPPだったが、PDFにした
0795デフォルトの名無しさん
2011/01/24(月) 10:14:53#include <stdio.h>
int num;
void calcx2(void);
int main(void){
printf("整数:");
scanf("%d",&num);
calcx2();
printf("答え:%d",num);
return 0;
}
void calcx2(void){
num=num*2;
}
0797デフォルトの名無しさん
2011/01/24(月) 10:28:500798デフォルトの名無しさん
2011/01/24(月) 10:55:33http://codepad.org/WJERh4UU
0799デフォルトの名無しさん
2011/01/24(月) 12:33:00平均と標準偏差は出したけど、問題のヒストグラムに関する記述が曖昧なのでそっちは書けない
ttp://codepad.org/svt2BVB1
[-5,5] を100分割と[2.5,5]を25分割で良いのか?
その場合、閾値は上下のどちらに含むのか?
0800デフォルトの名無しさん
2011/01/24(月) 14:14:22http://www.dotup.org/uploda/www.dotup.org1379712.png.htmlにもう一度上げなおします。
閾値については指定がありません。
0801デフォルトの名無しさん
2011/01/24(月) 16:35:16それともまだ>>777がんばってる?午後になったけど
0802デフォルトの名無しさん
2011/01/24(月) 16:47:43[2] 問題文:2×2の行列Aと要素2の列ベクトルBの
積を求めるプログラミングを作成せよ。
ただし、各ベクトルの要素はすべて整数とする。
この時積はmain関数以外の関数で計算するものとし,
計算結果をmain関数の中のprintf関数で表示すること。
main関数から積を計算するための
関数へは配列を引数として受け渡すようにする。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
お願いします
0803デフォルトの名無しさん
2011/01/24(月) 17:25:42実行してみたところ>>710は
>>791で終わってる。模様。
0804デフォルトの名無しさん
2011/01/24(月) 19:35:29[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org1380209.txt.html
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2011年01月25日10:00まで
[5] その他の制限:問題文に「細かい指定は無く、データ構造や関数は各自適切と考えるものを作成すればよい」
とありますが、高度なものではなく、なるべく簡単な(基本的な)ものを作成して頂けたらと思います
また、コメント文を付けて頂ければ有難いですが、こちらは面倒であれば構いません
よろしくお願いします
0805デフォルトの名無しさん
2011/01/24(月) 20:15:25このスレ見て勉強してるのですが
これtextのファイル名とか中身どう書けばいいんですか?
0806791
2011/01/24(月) 20:44:12>>777 が確定した csv フォーマットだよ、ファイル名はプログラムに引数として渡すので任意
A,1,2,3
B,2,3,4
....
N,10,10,10
みたいな感じで制約条件として
・第1項目はA〜N、第2〜4項目は整数
・Nの行は必須
・最低でも2行は必要
0807デフォルトの名無しさん
2011/01/24(月) 20:55:42問題だと元となる一様乱数は [0,1) となってるけど、wiki を見ると
ttp://ja.wikipedia.org/wiki/%E4%B9%B1%E6%95%B0%E5%88%97
ボックスミューラー法の場合 (0,1] を元とする
12個の乱数を加算して6引くやり方の場合は [0,1] を元とする
と書かれてる、どっちが正しいんだろ?
問題は指定通り [0,1) で書き、ヒストグラムの閾値についても [min, max) で考えるね
0808デフォルトの名無しさん
2011/01/24(月) 21:13:23exeと同じディレクトリに任意のファイル名のテキストファイルを置いて
中に
A,1,2,3
B,2,3,4
....
N,10,10,10
と同じ記述形式で書くだけで自動的に認識して動くってことだ
見てないからわからんけど多分
0809デフォルトの名無しさん
2011/01/24(月) 21:40:53出力が200行以上なのでリダイレクトしてね
ttp://codepad.org/uVdSGCWr
0810デフォルトの名無しさん
2011/01/24(月) 21:42:29自動的には認識しないよw
c:>プログラム名 ファイル名
って使う、Usage を付けとけば良かったな
0812デフォルトの名無しさん
2011/01/24(月) 21:51:44ちなみにリダイレクトするはどの何行目の箇所でしょうか?
0813デフォルトの名無しさん
2011/01/24(月) 22:02:35コマンドはどんなふうに記述すればいいか教えていただけませんか?
0814デフォルトの名無しさん
2011/01/24(月) 22:15:59http://codepad.org/Ddn9Ih36
0815デフォルトの名無しさん
2011/01/24(月) 22:29:31コマンドライン上で
実行ファイル > 出力ファイル[enter]
0816デフォルトの名無しさん
2011/01/24(月) 22:46:12問題2のボックスミュラーのヒストグラム[-5,5] を100分割と[2.5,5]を25分割のそれぞれはこのソースで求められるのでしょうか?
0817デフォルトの名無しさん
2011/01/24(月) 23:19:23>>800 で提示された問題には25分割は含まれて無いよ
100分割の方は出力している
0818デフォルトの名無しさん
2011/01/24(月) 23:58:260819デフォルトの名無しさん
2011/01/25(火) 00:12:43[2] 問題文(含コード&リンク)
[3] 環境
球の体積を計算するプログラムを作成しなさい。
<作成条件>
関数の定義は以下の順序で行うこと。(プロトタイプ宣言が必要となります)
main()関数
下記の関数を組み合わせて呼び出し、直径15のときの球の体積を求め、その値を表示してください。
ただし、main()関数内では、変数を一切使うことなく関数の呼び出しを行ってください。
体積の計算用として、下記の2つの関数を定義してください。
1. radius関数:直径を引数として受け取り、半径を返却値として返す
2. volume関数:半径を引数として受け取り、球の体積を返却値として返す
ただし、引数及び返却値の型は、すべて double 型とします。
<実行例>
体積 = 1766.25
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:1月25日
よろしくお願いします。
0820デフォルトの名無しさん
2011/01/25(火) 00:23:44>>648 で同じ問題が出てるし回答も直後に出てるよ
0821デフォルトの名無しさん
2011/01/25(火) 01:28:27ありがとうございます。
0822デフォルトの名無しさん
2011/01/25(火) 06:30:36>>743
>>804
かな。
0823デフォルトの名無しさん
2011/01/25(火) 15:31:16[2] 問題文(含コード&リンク):
ネットワーク対戦型ゲームを実装せよ
宛先ホスト,ポート番号をコマンドライン引数として扱う.
serverとclientの1対1通信でOK
getaddrinfo()を使用すること
localhost内で動作すればOK
ゲームに関して
じゃんけん
○×ゲーム
などなど・・・
提出物
サーバ側,クライアント側のプログラム
[3] 環境
[3.1] OS:Linux
[3.2] よくわからないです(emacsっていうのとGNOME端末っていうのを使ってます)
[3.3] 言語:C++
[4] 期限:2011年1月25日21:00まで
[5] その他の制限:特にありません。
client02.c,server02.c,getaddrinfo02.cという3つのプログラムが与えられていて、
client02.cとserver02.cの2つを書き加えて提出するように言われました。
ソースです
http://www.dotup.org/uploda/www.dotup.org1381588.txt.html
どうかよろしくお願いします。
0824デフォルトの名無しさん
2011/01/25(火) 15:33:03[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1381683.txt
[3] 環境
[3.1] OS:windows 7
[3.2] コンパイラ名とバージョン: vidual studio2008
[3.3] 言語:C
[4] 期限:1/25
[5] その他の制限: 多重ループまで(Bは関数でもOK)
よろしくおねがいします
0825デフォルトの名無しさん
2011/01/25(火) 18:48:14これはさすがにめんどくさ過ぎる。
0826デフォルトの名無しさん
2011/01/25(火) 19:29:12簡単なヒントだけでもいただけないでしょうか。
最後の課題なので何としても形にして提出しないといけないんです。
0827デフォルトの名無しさん
2011/01/25(火) 21:48:460828デフォルトの名無しさん
2011/01/25(火) 21:49:49[3]Ubuntu gcc
[4][2011年01月25日08:00まで]
#include<stdio.h>
#include<stdlib.h>
void straight_selection(char a[],int n)
{ int i,j,k,x;
for(i=0;i<n-1;i++){
for(x=i,x=a[i],j=i+1;j<n;j++){
if(a[j]<x){
k=j;x=a[j];}
}
a[k]=a[i];a[i]=x;}}
int main(int argc,char*argv[])
{ int i;
for(i=1;i<argc;i++){
printf("%s\n",argv[i]);}
printf("単純選択法によるソーティング結果\n");
straight_selection(*argv,(argc-1));
for( i=1;i<argc;i++) {
printf("%s\n",argv[i]);}
return(0);
}
どなたか、上のプログラムをどう修正すればいいか教えてください。
コンパイルは通るのですが、2つ以上の文字列を入れると「セグメンテーション違反です」と言われてしまうのです。
0829デフォルトの名無しさん
2011/01/25(火) 21:56:05staraignt_selection()
第2引数で要求しているのは 第1引数でわたした文字列の長さ
意図としては
staraignt_selection(argv[i], strlen(argv[i]));
じゃないか?
0830デフォルトの名無しさん
2011/01/25(火) 22:07:38ありがとうございます。
sort_8.c: In function ‘main’:
sort_8.c:17: warning: incompatible implicit declaration of built-in function ‘strlen’
/tmp/ccl3G9gQ.o: In function `main':
sortsample8.c:(.text+0xf9): undefined reference to `staraignt_selection'
collect2: ld returned 1 exit status
とコンパイラに言われてしまいました。
これってどういう意味なのでしょうか?
0831828
2011/01/25(火) 22:09:10すみません。こっちでした。
administrator@ubuntu:~$ gcc sortsample8.c
sortsample8.c: In function ‘main’:
sortsample8.c:17: warning: incompatible implicit declaration of built-in function ‘strlen’
/tmp/ccl3G9gQ.o: In function `main':
sortsample8.c:(.text+0xf9): undefined reference to `staraignt_selection'
collect2: ld returned 1 exit status
0832デフォルトの名無しさん
2011/01/25(火) 22:13:53または
size_t strlen(char cosnt*);
0833デフォルトの名無しさん
2011/01/25(火) 22:18:40よくよく見たら for の中に居ないのか <straight_selection
http://codepad.org/taLkNqDx
0834828
2011/01/25(火) 22:24:23ありがとうございます。
けど、なぜか「セグメンテーション違反です」と出てしまいます。
もしかして、OSなどの環境によっては違う結果になったりしますか?
0835デフォルトの名無しさん
2011/01/25(火) 22:27:34straight_selection そのものが怪しい気配
0837デフォルトの名無しさん
2011/01/25(火) 22:32:030838828
2011/01/25(火) 22:43:06そうですか。WindowsでもLinuxでもダメなら根本的な間違いですね。
間違っているところが分からない、いやなパタンになってしまいました。
ありがとうございました。充電してきます。m(_ _)m
0839デフォルトの名無しさん
2011/01/25(火) 22:44:15a.out bacdって打ったら
abcdってソートされてる感じがするんだけど
a.out bac abc cdeって打ったら
abc bac cdeって結果が欲しいんじゃないの?
0840デフォルトの名無しさん
2011/01/25(火) 22:44:51char* testdata[] = { "321", "6543" };
を渡すと codepad でもセグった
char testdata[][32] = { "321", "6543" };
を渡すと落ちなかった(が、正しくソートできてない)
0841デフォルトの名無しさん
2011/01/25(火) 22:45:04straight_selection(char const**foo, size_t elems);
でstrcmp()だろ
0842デフォルトの名無しさん
2011/01/25(火) 22:46:45こう直せバカ
0843デフォルトの名無しさん
2011/01/25(火) 23:00:17int puts(char const*);
int f(void const*p, void const*q) { return strcmp(*(char const**)p, *(char const**)q); }
int main(int c, char **v) { if ( c > 1 ) { int i; qsort(v+1, c-1, sizeof(char *), f); for ( i = 1; i < c; ++i ) { puts(v+i); } } else { puts("Usage : %s a [b c ...]"); } return 0; }
試してないのでうまくいくかわからん、後悔している
0844デフォルトの名無しさん
2011/01/25(火) 23:10:38qsort使っていいの?
0845デフォルトの名無しさん
2011/01/25(火) 23:15:51int strcmp(char const*, char const*);
void qsort(void *, size_t n, size_t, int (*)(void const*, void const*));
int puts(char const*);
int f(void const*p, void const*q) { return strcmp(*(char const**)p, *(char const**)q); }
int main(int c, char **v) { if ( c > 1 ) { int i; qsort(v+1, c-1, sizeof(char *), f); for ( i = 1; i < c; ++i ) { puts(*(v+i)); } } else { puts("Usage : %s a [b c ...]"); } return 0; }
こうだった、修行がたりない
0846デフォルトの名無しさん
2011/01/25(火) 23:24:19const char*
の方がいいと思うよ。
0847デフォルトの名無しさん
2011/01/25(火) 23:29:22const char *const*にすんの
まぁ、好みの問題だね
0848デフォルトの名無しさん
2011/01/25(火) 23:31:220849デフォルトの名無しさん
2011/01/25(火) 23:32:39動作確認した。
ただ、>>828が「宿題」に役立てられるとは思えん。
0850デフォルトの名無しさん
2011/01/25(火) 23:42:31ワロタw
好み以前問題だな
0851デフォルトの名無しさん
2011/01/25(火) 23:44:040852デフォルトの名無しさん
2011/01/25(火) 23:46:12> const char *const*にすんの
const char* constでしょ?
最近見ないけど
char const*と書くなら書くで
char const* constと書いて一貫性をもって欲しいところ
0853デフォルトの名無しさん
2011/01/26(水) 00:34:25ソース内の全角文字が化けて見えるのは chrome の俺だけ?
0854デフォルトの名無しさん
2011/01/26(水) 00:57:22すみません!もう一度ソースあげなおします!!
0855デフォルトの名無しさん
2011/01/26(水) 01:08:02http://codepad.org/LbEgIV3B
http://codepad.org/gXlRHDbE
0856デフォルトの名無しさん
2011/01/26(水) 01:08:20>>823のものです。
文字化けしているところを直したソースです。
ただ、getaddrinfo02.cのところだけは直せてません。
何度も厚かましいですが、どうか助けてください!
よろしくお願いします!
http://www.dotup.org/uploda/www.dotup.org1382944.txt.html
0857デフォルトの名無しさん
2011/01/26(水) 01:14:37指摘としては >>841 の通り
ttp://codepad.org/mGuXm6B6
0858デフォルトの名無しさん
2011/01/26(水) 01:23:59ありがとうございます。
申し訳ないのですが、4-B(下)の課題は「各桁の数字を合計した数字が7もしくは2で割り切れるか」どうかなので、
貼ってくださったプログラムは少々違っているのですが……(厳密に言えば7と2の両方で割り切れる数字(=14etc)はないですし)
0859デフォルトの名無しさん
2011/01/26(水) 01:42:40ありゃ、間違えたか?
ごめ、今見てみる。
0860デフォルトの名無しさん
2011/01/26(水) 01:48:26手元に linux 環境が無いからビルド・動作確認はしてない
問題があったらレスしてくれ
ttp://codepad.org/HhDluliV
0861デフォルトの名無しさん
2011/01/26(水) 01:48:44問題の意味が分かった。なるほど。
例えば 7x6=42 4+2=6 2で割り切れるから* って事か。
急いでやるけどちょっとカップめん食べる。
0862860
2011/01/26(水) 01:51:16ttp://codepad.org/Lsp0Yyza
0863デフォルトの名無しさん
2011/01/26(水) 01:53:01ひどいですね
気持ちはありがたいですが結構です
0864デフォルトの名無しさん
2011/01/26(水) 02:14:32http://codepad.org/juxVfsFP
手直しした。
0866デフォルトの名無しさん
2011/01/26(水) 02:28:110867デフォルトの名無しさん
2011/01/26(水) 02:28:12本当にありがとうございます!!
えっと、2つお聞きしたいことがあります。
server02.cからclient02.cにコピペしなくてはならない部分は、
mainの前にコピペすればいいんでしょうか?
それと、localhostとport番号が//になっているのですが、
この部分を有効にしてプログラムを組むことはできないでしょうか?
課題ではlocalhost内で動作するようにとあったのと、
ポート番号を割り当てるようにとあったので、
なくしてしまったらまずい部分のように思うのですが、大丈夫でしょうか?
0868デフォルトの名無しさん
2011/01/26(水) 02:28:32あってるだろ?何が酷いんだ?
それより7でも2でも割り切れるって事は14しか無いんだけど九九の中にそんな数字は無いって所に誰か突っ込まないの?
0869デフォルトの名無しさん
2011/01/26(水) 02:35:47コピペ位置は main() の前でなければならない
localhost, port 番号はプログラムの引数として与えるって問題に書いてなかったかい?
c;\>client localhost 1000 みたいに起動すれば良いって話だ
まぁ server.c に関してはホスト名は "localhost" に決まってるから埋め込みでも良いけどインターフェイスを合わせる意味で...
usgae() 関連で誤りが有るので訂正する
static void usage( char* name )
{
printf( "[Usage] %s hostname, port_no\n", name ); // name が抜けてた
exit( 0 );
}
と
if( ac < 3 )
usage( av[0] ); // 引数が抜けてた
を直してね
0870デフォルトの名無しさん
2011/01/26(水) 02:42:51引数として与えるっていうのはそういうことだったんですね!
わかってないのに変な質問してすみませんでした。
ありがとうございます!
引数は、serverとclientのどちらにも入れるんですよね?
0871デフォルトの名無しさん
2011/01/26(水) 02:49:13YES
0872デフォルトの名無しさん
2011/01/26(水) 02:59:34ありがとうございます。
すみません。もうひとつだけいいでしょうか?
このプログラムは人対人のやり取りのプログラムであってますよね?
できたら、server側はランダムでclient側に手を返すようにしたいのですが、
お願いできますか?
0873デフォルトの名無しさん
2011/01/26(水) 03:14:52字面でしょ
他にもたくさん人がいるのに
全角英数を混在するレベルの人から教わりたくはないわな
0874デフォルトの名無しさん
2011/01/26(水) 03:23:32>(厳密に言えば7と2の両方で割り切れる数字(=14etc)はないですし)
0875デフォルトの名無しさん
2011/01/26(水) 03:38:51>>743
>>804
>>824 2問目
0876デフォルトの名無しさん
2011/01/26(水) 03:46:04それならこれで良いと思う
ttp://codepad.org/SGa8UZe0
サーバー側での判定は無用なので judgeJyanken() は不要だね
>>873
字面ってw
>>874
突っ込んでる人居たのか、失礼した
0877デフォルトの名無しさん
2011/01/26(水) 03:59:06ずっと粘着してるキチガイなんだからスルーしとけよ
0878デフォルトの名無しさん
2011/01/26(水) 04:15:14ありがとうございます!
judgeJyanken()の部分を削除すれば後は大丈夫でしょうか?
0879デフォルトの名無しさん
2011/01/26(水) 04:28:23プログラミング以前のPC初心者か
昔々IBMなんちゃら0F,0Eなんちゃららという
還暦近くのおじいちゃんぐらいだろ
0880デフォルトの名無しさん
2011/01/26(水) 04:35:32面倒なだけで簡単なコード
ttp://codepad.org/NWpXwKn1
>>878
念の為に確認するけど、最初に張ったのと >>876 が違うって事は理解してるよね
そもそも動かして確認してる?言っておくけど俺はコンパイルもしてないからね
0881デフォルトの名無しさん
2011/01/26(水) 04:45:15最初のと>>876が違うものだというのはわかります。
動かすのは明日朝イチで学校に行って確かめてみようと思ってます。
0882デフォルトの名無しさん
2011/01/26(水) 05:05:19>>824 の2問目は >>864 で良いんじゃないの?
0883デフォルトの名無しさん
2011/01/26(水) 07:36:41遅くなってしまいましたが、ありがとうございました。
0885デフォルトの名無しさん
2011/01/27(木) 00:43:50[2] 問題文(含コード&リンク):
構造体により一つの三角形を表現する。
Triangle構造体の構成要素は、三つの頂点のx座標、y座標をメンバとして持つ構造体Pointである。
このTriangle構造体を用いて、以下の使用に従う関数を作成し、任意の三角形の面積、その三角形を適切な2×2行列で線形変換した結果の三角形の座標とその面積、および任意の二つの三角形が合同であるかどうかを表示するプログラムを実装しなさい。
・一つのTriangle構造体の変数を引数とし、その構造体が表す三角形の面積を返す関数。
・一つのTriangle構造体の変数と、double型の二次元配列(2×2行列Aとする)を引数とし、引数で与えた三角形を行列Aによって線形変換した後の三角形を返す関数。
・二つのTriangle構造体の変数を引数とし、その構造体が合同であれば1を、合同でなければ0を返す関数。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2011年2月10日まで
[5] その他の制限:特にありません。よろしくお願いします。
0886デフォルトの名無しさん
2011/01/27(木) 00:51:21なんで全角使っちゃダメなのか教えて
俺も半角使うけど
0887デフォルトの名無しさん
2011/01/27(木) 01:04:490888デフォルトの名無しさん
2011/01/27(木) 01:11:350889デフォルトの名無しさん
2011/01/27(木) 01:14:08なんでこんなつまんねえ問題しかないの
中学生の数学の問題だろ
0890デフォルトの名無しさん
2011/01/27(木) 01:52:03[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org1384922.txt.html
[3] 環境
[3.1] OS: Mac
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 1月27日
[5] その他の制限: 問題とエラーを提示いたしました。どうしたらエラーが消えるかわかりません。修正、どうぞよろしくお願いしますorz
0891デフォルトの名無しさん
2011/01/27(木) 02:05:0120-23行目の&演算子が不要なので削除
0892デフォルトの名無しさん
2011/01/27(木) 02:47:55[1] 授業単元:C言語初級講座
[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1384986.txt
[3] 環境
[3.1] OS:WindowsXPsp3
[3.2] コンパイラ名とバージョン: minGW
[3.3] 言語:C言語
[4] 期限:2011/01/28 17:00
[5] その他の制限: 教科書本は「やさしいC」一通り終了
どうかよろしくお願いいたします。
ファイル保存の部分は「…,仕入総数,120」「…,在庫数,2,1,1,2…,在庫総数,xxx」
という具合に追加されたファイルになればよいです。
「年度」は「年」なのですが細かい表現は気にするなと機嫌損ねちゃいましたが
【表示結果】通りになればいいとのことでした。
0893デフォルトの名無しさん
2011/01/27(木) 03:09:25ASCIIと0208を同時に使う場合で両方に含まれる文字があるときはASCIIの方の符号を、
0201カタカナと0208を同時に使う場合で両方に含まれる文字があるときは0208の方の符号を、
使うようにしてね☆って推奨されている。推奨されているだけなので従う義理はない。
0894892
2011/01/27(木) 03:15:55ファイルから漢字読み込みに難があるということでしょうか。
そうであれば明日先生に聞いてきますので>>892保留ということでお願いいたします。
改めてこちらにレスさせて頂きます。ありがとうございます。
0895デフォルトの名無しさん
2011/01/27(木) 03:19:32まぁまて。君の宿題に対するレスではないぞ。^^;
>>893は>>886に対してだ。
0896デフォルトの名無しさん
2011/01/27(木) 08:23:14入力ファイルの3行目(月)は変化する可能性は有るの?
例えば
9,10,11,12,1,2,3,4,5,6,7,8 とか 4,5,6,7,8,9 とか、後者の場合は2,4,5行目も変化するけど
0897デフォルトの名無しさん
2011/01/27(木) 12:00:48これってできてますか?
0898デフォルトの名無しさん
2011/01/27(木) 12:59:01さっさとそれ出してこいや
0899892
2011/01/27(木) 13:33:28[1] 授業単元:C言語初級講座
[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1385472.txt
[3] 環境
[3.1] OS:WindowsXPsp3
[3.2] コンパイラ名とバージョン: minGW
[3.3] 言語:C言語
[4] 期限:2011/01/28 17:00
[5] その他の制限: 教科書本は「やさしいC」一通り終了
>>892の訂正後の課題です。
改めまして、どうかよろしくお願い致します。
0900デフォルトの名無しさん
2011/01/27(木) 13:38:26PS. 課題内の表示結果「year」の数字は2010 2011で構いません。
0901デフォルトの名無しさん
2011/01/27(木) 13:45:14>>896 月は変化することありません。常に4〜3月までの表示になります。
ただ、ちゃんとファイルから読み込んで表示させることが求められています。
どうぞよろしくお願いいたします。
0902デフォルトの名無しさん
2011/01/27(木) 13:50:35>>892の時にかなり変な問題という印象だった。
普通この問題をだすとしたら、
【テキストファイル"a.txt"内容】は
order,ICE
year,2010,2011
month,4,5,6,7,8,9,10,11,12,1,2,3
in,3,3,13,22,30,15,11,5,5,3,5,5,in_sum,
out,1,2,12,20,30,15,8,4,2,3,3,2,out_sum,
ans,,,,,,,,,,,,,ans_sum,
とする。
0903899
2011/01/27(木) 13:58:28忘れてました。おっしゃることを別の人が先生に質問したのですが
1.「ans,ans_sum」は「ans,,,,,,,,,,,,,ans_sum」でもいいと言っておりました。
2.各行の最後にカンマ「,」はつけない
との返事でした。
すいません、その場で思いつきで問題を出す先生でして。
0904デフォルトの名無しさん
2011/01/27(木) 14:41:25いやもうなんつうかa.txtがレコードの体をなしていないし、
コマンド列とも読めないしで、単にa.txtを読んで整形すりゃイーノック?
って感じで作っちゃったのがあるんだけどどうしようかしらねw
(訂正前のバージョンだじぇ?^^)
http://codepad.org/OTjfDEBr
0905899
2011/01/27(木) 15:27:45ありがとうございました!
すごく助かりました。
このプログラムをもとに今後追加課題が出るようです。
その際また相談に乗っていただくことになるかもしれませんが
宜しくお願い致します。
本当にありがとうございました。
0906デフォルトの名無しさん
2011/01/27(木) 21:56:24喋り方が非常に残念だ
0907デフォルトの名無しさん
2011/01/27(木) 22:16:500908デフォルトの名無しさん
2011/01/27(木) 22:35:24ソースコードも残念だぉ
0909デフォルトの名無しさん
2011/01/28(金) 00:29:48おお。卑猥ヒワイ
0910デフォルトの名無しさん
2011/01/28(金) 00:37:37[2] 問題文(含コード&リンク):"a,B,C,d,E"という文字列がある。文字列中の大文字を小文字に、
小文字を大文字に変換させた文字列を表示するプログラムを作りなさい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語:C
[4] 期限: 1月30日まで
よろしくお願いします。
0911デフォルトの名無しさん
2011/01/28(金) 00:44:59printf("A,b,c,D,e");
でOK
0912デフォルトの名無しさん
2011/01/28(金) 00:51:34int main(void)
{
char str[] = "a,B,C,d,E";
int i;
for(i=0; str[i]!='\0'; i++){
printf("%c", isupper(str[i]) ? tolower(str[i]) : islower(str[i]) ? toupper(str[i]) : str[i]);
}
return 0;
}
0913デフォルトの名無しさん
2011/01/28(金) 01:08:22int main(void){
char str[]="a,B,C,d,E";
int i;
printf("変換元の文字列:%s\n",str);
printf("変換後の文字列:");
for(i=0;str[i]!='\0';i++){
if(str[i]>='a' && str[i]<='z') {
printf("%c",'A'+str[i]-'a');
} else if(str[i]>='A' && str[i]<='Z') {
printf("%c",'a'+str[i]-'A');
} else {
printf("%c",str[i]);
}
}
printf("\n");
return 0;
}
0914デフォルトの名無しさん
2011/01/28(金) 01:09:320915デフォルトの名無しさん
2011/01/28(金) 01:09:36解答出ていたのか。すまん。 >>913スルーしてくさい。
0916デフォルトの名無しさん
2011/01/28(金) 01:14:03まあ気づくか
0917デフォルトの名無しさん
2011/01/28(金) 01:20:06俺のgccでは無くても 動いた。
>>912
すげーシンプルだけどこの質問者のレベルを考えると
printf("%c", isupper(str[i]) ? tolower(str[i]) : islower(str[i]) ? toupper(str[i]) : str[i]);
はまだNGの段階じゃないかとおもた。
0918デフォルトの名無しさん
2011/01/28(金) 01:25:20char str[] = "a,B,C,d,E", *c;
for( c = str; *c; ++c){
printf("%c", isupper(*c) ? tolower(*c) : islower(*c) ? toupper(*c) : *c);
}
と書いてさえよいくらい質問者は高レベルだよ
0919デフォルトの名無しさん
2011/01/28(金) 01:26:080920デフォルトの名無しさん
2011/01/28(金) 01:28:07ポインタ、配列習ったばかりでこの課題が出ても不思議じゃないのは確かだけど。
0921デフォルトの名無しさん
2011/01/28(金) 01:52:40ちょっと考えてみた
int main() {
char s[256] = "a,B,C,d,E";
printf("%s", s);
for (char *p = s; *p; p++) {
*p = *p ^ (*p >> 1 & (*p & 31) + 37) & 32;
}
printf("%s", s);
}
全角スペース使ってるから気をつけてね
0922デフォルトの名無しさん
2011/01/28(金) 01:58:36美しさが感じられない
0923デフォルトの名無しさん
2011/01/28(金) 02:06:15あと短いのに分かりづらくて面白くないか?
0924921
2011/01/28(金) 02:16:30*p ^= *p >> 1 & (*p - 1 & 31) + 38 & 32;
が正しい
でもテーブルを使うのが一番速いか
0925デフォルトの名無しさん
2011/01/28(金) 02:22:230926デフォルトの名無しさん
2011/01/28(金) 03:16:10Cの規約によれば数字の0から9が順に並んでいることは約束されているが
各文字のビット表現やA-zが順に並んでいることなどは規定されていない。
あと for (char *p = s; *p; p++) { は C90では非標準じゃなかったっけ?
0927デフォルトの名無しさん
2011/01/28(金) 03:22:220928デフォルトの名無しさん
2011/01/28(金) 08:27:12しね
0929デフォルトの名無しさん
2011/01/28(金) 13:00:150930デフォルトの名無しさん
2011/01/28(金) 14:23:10・テトリス
・マインスイーパ
・リバーシ(オセロね)
他に何かあったら言ってくり。
0931デフォルトの名無しさん
2011/01/28(金) 14:35:25ローグライクゲーム
0932デフォルトの名無しさん
2011/01/28(金) 14:45:38ファイア
0934デフォルトの名無しさん
2011/01/28(金) 15:39:19けいおん!放課後ライブ!!
0935デフォルトの名無しさん
2011/01/28(金) 17:00:19#include <stdafx.h>
�B sho(�C) //関数sho の定義
{
return(�Dm/n);
}
void irekae(int �E,int �F) //関数irekae の定義(2つの引数をp,q とする、型に注意!)
{
int k;
k=�E;
�E=�F;
�F=k;
}
int _tmain(int argc, _TCHAR* argv[]) //関数_tmain の定義
{
int i,j;
double x;
printf("整数i,j?:");
scanf("%d%d",&i,&j);
�@; //整数i,j を引数として実数除算した商を返す関数sho を呼び出す。
printf("i/j=%f\n",x); //結果の確認
�A; //整数i,j の値を入れ換える関数irekae を呼び出す。
�@;
printf("i/j=%f\n",x);
}
おねがいします。。。
0936デフォルトの名無しさん
2011/01/28(金) 17:07:32下記のプログラム中の�@〜�Fには何が入るか?
#include <stdafx.h>
�B sho(�C) //関数sho の定義
{
return(�Dm/n);
}
void irekae(int �E,int �F) //関数irekae の定義(2つの引数をp,q とする、型に注意!)
{
int k;
k=�E;
�E=�F;
�F=k;
}
int _tmain(int argc, _TCHAR* argv[]) //関数_tmain の定義
{
int i,j;
double x;
printf("整数i,j?:");
scanf("%d%d",&i,&j);
�@; //整数i,j を引数として実数除算した商を返す関数sho を呼び出す。
printf("i/j=%f\n",x); //結果の確認
�A; //整数i,j の値を入れ換える関数irekae を呼び出す。
�@;
printf("i/j=%f\n",x);
}
0937デフォルトの名無しさん
2011/01/28(金) 17:13:14�Airekae(&i, &j);
�Bdouble
�Cint m, int n
�D(double)
�E*p
�F*q
0938デフォルトの名無しさん
2011/01/28(金) 17:16:23double sho(int m,int n) //関数sho の定義
{
return((double)m/n);
}
void irekae(int *p,int *q) //関数irekae の定義(2つの引数をp,q とする、型に注意!)
{
int k;
k=*p;
*p=*q;
*q=k;
}
int _tmain(int argc, _TCHAR* argv[]) //関数_tmain の定義
{
int i,j;
double x;
printf("整数i,j?:");
scanf("%d%d",&i,&j);
x=sho(i,j); //整数i,j を引数として実数除算した商を返す関数sho を呼び出す。
printf("i/j=%f\n",x); //結果の確認
irekae(&i,&j); //整数i,j の値を入れ換える関数irekae を呼び出す。
x=sho(i,j);;
printf("i/j=%f\n",x);
}
0939デフォルトの名無しさん
2011/01/28(金) 18:08:51特定した
0940デフォルトの名無しさん
2011/01/28(金) 18:40:25DOS窓だろ? 無理だろw
0941デフォルトの名無しさん
2011/01/28(金) 19:15:54AA
0942デフォルトの名無しさん
2011/01/28(金) 19:22:130943デフォルトの名無しさん
2011/01/28(金) 19:36:04てかそのころのゲームやってみたい
0944デフォルトの名無しさん
2011/01/28(金) 19:37:40win95/98 くらいまでじゃね
0945デフォルトの名無しさん
2011/01/28(金) 20:02:27先生には黙っててな
0946デフォルトの名無しさん
2011/01/28(金) 21:18:35http://codepad.org/vKPvHAkyを出力するとデバッグエラーが出ます。
ちゃんと、「test」テキストファイルをディレクトリに置きました。
0947デフォルトの名無しさん
2011/01/28(金) 21:26:37たぶんnumの間違いかと
0948デフォルトの名無しさん
2011/01/28(金) 22:19:39>>947は
data[i]がdata[num]
だと思うぜっ、て言ってます。
俺もそう思うし int i,num,… の i もいらないとおもう。
0949デフォルトの名無しさん
2011/01/28(金) 22:44:460950デフォルトの名無しさん
2011/01/29(土) 00:03:090951デフォルトの名無しさん
2011/01/29(土) 00:29:51ありがとうございます。お陰で出力されました。
ただ、testテキストには、
10
20
30と保存してあるのに、実行しても
続行するには何かキーを押してください . . .としか出力されません。
これはどうしてでしょうか?教えてください。
0952デフォルトの名無しさん
2011/01/29(土) 00:45:18[2] 問題文(含コード&リンク):
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1035220915
(バブルソートでやっていただけると助かります)
(資料)
http://www.geocities.jp/hagure874/kapu.html#1
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1337454033
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2月2日
よろしくお願いします!
0953デフォルトの名無しさん
2011/01/29(土) 00:48:55出力する処理がないから
0954デフォルトの名無しさん
2011/01/29(土) 01:12:00#define MAX 100
int main(void)
{
FILE *fp;
int data[MAX];
int num,status;
fp = fopen("test.txt","r");
if(fp==NULL){
fprintf(stderr,"File Open Error\n");
return 1;
}
for(num=0;num<MAX;num++){
status=fscanf(fp,"%d",&data[num]);
if(status==EOF){
break;
} else {
printf("%d\n",data[num]);
}
}
fclose(fp);
return 0;
}
表示したいなら表示用に } else { printf("%d\n",data[num]); } を付け加えようぜ。
0955デフォルトの名無しさん
2011/01/29(土) 01:57:27ありがとうございます!
0956デフォルトの名無しさん
2011/01/29(土) 02:04:13[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org1388859.txt.html
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C++
[4] 期限: 1月30日
[5] その他の制限: 特にありません。よろしくお願いします。
0957デフォルトの名無しさん
2011/01/29(土) 03:54:210958デフォルトの名無しさん
2011/01/29(土) 04:16:02課題2
array[n] = rand()%101;を
array[n] = -rand()%101;に修正
printf("%d\n", array[n]);を
printf("%d\n", -array[n]);に修正
0959デフォルトの名無しさん
2011/01/29(土) 05:20:56課題1
#include<stdio.h>
int main(int argc, char *argv[]){
int x1,x2,x3,y1,y2,y3,z1,z2,z3;
sscanf(argv[1], "%7d%7d%6d", &x1, &x2, &x3);
sscanf(argv[2], "%7d%7d%6d", &y1, &y2, &y3);
z3 = x3 + y3;
if (z3 > 1000000) {
z2 = z3 / 1000000;
}
z2 += x2 + y2;
if (z2 > 10000000) {
z1 = z2 / 10000000;
}
z1 += x1 + y1;
printf("%d%07d%06d\n", z1, z2, z3);
return 0;
}
0960デフォルトの名無しさん
2011/01/29(土) 07:35:40[2] 問題文(含コード&リンク):
行列行列積(AB=C)を考える。はじめに各プロセスは行列Aのブロック行と行列Bのブロック行を保持しているとする。ブロック行の行数は行列全体の行数/プロセス数である。
この時、行列Bをプロセス間で循環させ、計算結果であるCを更新させていくことにより行列積ABを計算せよ。行列は正方行列とし、1024×1024のサイズとする。プロセス数は行数の約数としてよく、値は0〜99までの乱数とする。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:本日(1/29)の20時30分まで
[5] その他の制限:なし
期限が近くてすみませんが、よろしくお願いします。
0961デフォルトの名無しさん
2011/01/29(土) 08:51:160962デフォルトの名無しさん
2011/01/29(土) 09:21:12並列計算やMPIはご存じでしょうか?
0963デフォルトの名無しさん
2011/01/29(土) 11:52:01なら問題文にもそう加えないと分からないような
0964デフォルトの名無しさん
2011/01/29(土) 12:40:300965デフォルトの名無しさん
2011/01/29(土) 14:49:39[2] 問題文(含コード&リンク):100点満点の試験の得点データが学生の人数分ある。これを「不定個数のデータの読み込み」の
どちらかの方法(最初にデータの個数を読み込むか、データの終わりを特別な値で知らせるか)
で読み込み、10点刻みでの度数分布表を作成しなさい。
[3] 環境
[3.1] OS: Mac OS X
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2月1日 13:00
[5] その他の制限: 10で割る整数型の割り算を用いる
よろしくお願いします。
0966デフォルトの名無しさん
2011/01/29(土) 16:03:23授業単元に並列計算(MPI)と書いたのでそれで大丈夫だと思ってました。分かりにくくてすみません。
0967デフォルトの名無しさん
2011/01/29(土) 16:05:08http://codepad.org/4gKoDGev
0968デフォルトの名無しさん
2011/01/29(土) 17:36:46相手は宿題丸投げのゆとり君なんだよ
重要なことは言っていないと思わないと
ゆとり君には脳弱と言う超難病持ち多いんだからね
それを理解して対応してね
0969デフォルトの名無しさん
2011/01/29(土) 17:43:41http://hibari.2ch.net/test/read.cgi/tech/1187922645/l50
0970デフォルトの名無しさん
2011/01/29(土) 17:50:15[2] 問題文(含コード&リンク): カオス時系列において、、
動径基底関数(RBF)と呼ばれる局在化された関数を用い、
それぞれの関数に重みをつけて加え、その値を予測するプログラムを作成せよ。
[3] 環境
[3.1] OS:Mac OSX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2011年2月10日まで
[5] その他の制限:カオス時系列のデータは配列で用意するつもりなので、
配列のデータを入力として使うプログラムでお願いします。
0971970
2011/01/29(土) 17:53:07その後任意の点からの予測が可能であるプログラムでお願いします。
0972デフォルトの名無しさん
2011/01/29(土) 18:37:52http://codepad.org/d9aSine6
0973デフォルトの名無しさん
2011/01/29(土) 18:55:09ありがとうございます、助かりました
0974デフォルトの名無しさん
2011/01/29(土) 20:56:460975デフォルトの名無しさん
2011/01/29(土) 22:21:020976970
2011/01/29(土) 23:58:450977デフォルトの名無しさん
2011/01/30(日) 01:08:540980デフォルトの名無しさん
2011/01/30(日) 03:18:48埋め込み次元と遅れ時間の推定も込みでの宿題?
だとしたらだいぶ面倒だな。
また、RBFを使う場合に分散の値はどうすればいいの?
実は970の問題を解くプログラムを作ったことがあるけど
流石にただでは教えられない。
0981デフォルトの名無しさん
2011/01/30(日) 05:01:160982デフォルトの名無しさん
2011/01/30(日) 06:51:55リンク名をよく見た方が良いな。
0984デフォルトの名無しさん
2011/01/30(日) 11:50:50[2] 問題文(含コード&リンク):以下のデータを配列に格納した後、小さい順に並べよ
データ:33,54,73,13,97,42,81,67,26,91
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: teraterm pro
[3.3] 言語: C
[4] 期限: [2011年2月2日まで]
[5] その他の制限: x[0]とx[1]を比較してx[1]<x[0]なら入れ替え、という作業を繰り返す、という手法をとる
よろしくお願いします
0985デフォルトの名無しさん
2011/01/30(日) 12:47:14> [3.2] コンパイラ名とバージョン: teraterm pro
ちょっと良く分からない
0986デフォルトの名無しさん
2011/01/30(日) 12:54:08へー、最近のteratermにはコンパイル機能あるのな
コンパイル通るかわかんないけど
http://ideone.com/YfwEw
0987デフォルトの名無しさん
2011/01/30(日) 13:17:32感謝します
0988フォルトの名無しさん
2011/01/30(日) 15:00:37[2] 問題文(含コード&リンク):http://codepad.org/FD1Z6ZPV
・問題1
非終端記号TおよびFの解析ルーチンに付けるコメントを(Eに関するコメントを参考に)完成しなさい。
注意: printf(...)は、どの構文規則の適用されるか明示するためのものであるから、無視すること。
・問題2
このサンプルを拡張して1桁の数字からなる式の値を計算する簡単な電卓プログラムに改造しなさい。
・問題3
このサンプルを拡張して、代入文 <assign> ::= id '='<E> ';'を認識できるようにしなさい。
余計なプリント文を削除したソースプログラムと複雑な式を含む実行結果を提出すること。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C/C++
[4] 期限: 2月3日まで
[5] その他の制限: 特になし
0989フォルトの名無しさん
2011/01/30(日) 15:02:31あまり日にちがないですがよろしくお願いします
0990デフォルトの名無しさん
2011/01/30(日) 15:12:22>>493 のコピペ >>587 で不備なの?
0993デフォルトの名無しさん
2011/01/30(日) 15:31:340995デフォルトの名無しさん
2011/01/30(日) 17:31:420996デフォルトの名無しさん
2011/01/30(日) 18:22:21カオス時系列をRBFネットワークで合成するのは
自分の1つ前の研究テーマだったわけだけど、
まず任意の時系列が与えられた場合に各RBFのセンターベクトルの決定の問題がある。
それと>>980で書いたように分散も埋め込み次元も遅れ時間も普通はわからないので
それを推定するアルゴリズムが必要。
で、実際にどうすれば上手く行くかは知ってるけど教えられないので諦めてくれ。
簡単な部分で一言だけ言うなら重みだけなら逐次学習でないなら線形最小二乗法で一発で解ける。
0997デフォルトの名無しさん
2011/01/30(日) 19:53:18とっととソースあげろやゴミが、と>>970は考えています。
0998デフォルトの名無しさん
2011/01/30(日) 20:32:44授業の課題で出るやつなんだから単純な最小二乗法に決まってんだろ
自慢はいいからやることやれ、と>>970 = >>997は考えています。
0999デフォルトの名無しさん
2011/01/30(日) 20:40:57http://hibari.2ch.net/test/read.cgi/tech/1296387672/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。