C/C++の宿題を片付けます 107代目
■ このスレッドは過去ログ倉庫に格納されています
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう.
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【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++の宿題を片付けます 106代目
http://pc11.2ch.net/test/read.cgi/tech/1209810861/
0232デフォルトの名無しさん
2008/05/20(火) 13:19:11// 「キーボードから入力」と「画面に出力」が標準入出力のことじゃないならしらね。
#include <iostream>
int main()
{
int height;
int weight;
std::cin >> height >> weight;
std::cout << weight / (height / 100.0 * height / 100.0);
return 0;
}
0233161
2008/05/20(火) 14:45:22えっと、ここにc++版があります。
http://www.cs.umd.edu/~mount/ANN/
力不足なことに、私はc++を全く理解することができません。理解は時間があればできそうですが、時間が足りません(汗
>今、最近傍探索を調べているのですが、意味がよくわからないところがありますので、教えていただけますでしょうか。
>1) k次元(ユークリッド)空間R^k 内にデータが n個散らばっている。
>2) ここに、点P がある。
>3) 点P にもっとも「近い」データを探し出したい。
>というのが最近傍探索で、問題のアルゴリズムは、
>4) , 3) でもっとも近いデータを探すのに「n 個のデータすべてについて距離を求め、一番距離が小さいものを求める」のは計算量が多くて大変!
>5) そこで、とりあえず適当なデータQ と P との距離dを求め、
>6) 辺の長さが 2d, 中心がP, 辺は座標軸に平行である k次元立方体 S を考え、
>7) 領域探索アルゴリズムにて S 内にあるデータをすべて列挙し、
>8) S 内のデータすべてと P との距離をそれぞれ求めて、一番距離小さいものを求める
>ということでしょうか。
最近傍探索の考えはあっています。
ですが
5)まずkd木を探索して、点Pがどの立方体に所属するかどうかをさがし、その立方体の中に入っている点Q と P との距離dを求め超球を書く
6)超球に接している立方体、超球の中にある立方体をすべてリストアップする
7) 領域探索アルゴリズムにて 立方体群内にあるデータをすべて列挙し、
8) 立方体群内のデータすべてと P との距離をそれぞれ求めて、一番距離小さいものを求める
のうち領域探索アルゴリズムがわかりません。
どのようなアルゴリズムを組めば計算量が少なくて済むのか知恵を御借りしたいと考えて質問させていただきました。
0234デフォルトの名無しさん
2008/05/20(火) 14:47:52[2] 以下の処理を順に行うプログラムを作成しなさい。
>232 ありがとうございました!
まだ問題があったのでまたよろしくお願いします!
1. キーボードから整数を入力する。
2. 入力された整数が3の倍数のとき,
画面に「3の倍数です」と表示する。
[3] 環境
[3.1]Windows
[3.2]VC
[3.3]C++
[4]5月27日 17時まで
[5]なし。
0235デフォルトの名無しさん
2008/05/20(火) 14:55:48if ( 入力 % 3 == 0 )
{
出力 3の倍数です
}
>>232 の内容と組み合わせて作りな
0236c言語素人 ◆K0sCe6ES.U
2008/05/20(火) 16:05:08[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):
各自で、カラー自然画像(出来れば画像中のオブジェクトが豊かな物)をみつけ、
kmeansによって画像中の要素を分類せよ。さらに、分類の数を変えながら、変化を観察せよ。(原文のまま)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限: 2008年5月23日 13:00まで
[5] その他の制限: 制限は特にありません。
ppmフォーマットの画像を読み込んで分類する(クラスター分析?)プログラムと言われたのですが、さっぱりわからないです・・・orz
どうかみなさんご協力おねがいしますm(_ _)m
0237161
2008/05/20(火) 16:05:14ちなみに、233で書いたやつがANNという手法です。
ちなみに
>4) , 3) でもっとも近いデータを探すのに「n 個のデータすべてについて距離を求め、一番距離が小さいものを求める」のは計算量が多くて大変!
>5) そこで、とりあえず適当なデータQ と P との距離dを求め、
>6) 辺の長さが 2d, 中心がP, 辺は座標軸に平行である k次元立方体 S を考え、
>7) 領域探索アルゴリズムにて S 内にあるデータをすべて列挙し、
>8) S 内のデータすべてと P との距離をそれぞれ求めて、一番距離小さいものを求める
にあるように、超球の中にある点すべてについて探索するというのでは、結局全点について距離を比較しないといけなくなるので、
結局n^2の話になってしまいます。
kd木のnlognをスポイルしたくないというのはここに絡んできます。
ANNのこの手法が理解できればいいのですが…
ちなみに期限が延びましてあと2日になりました。
最悪223に書いたサイトからソース引っ張ってきてcで書いた私のソースとc++で書かれているソースをドッキングして性能を確かめることを考えていますが…
0238デフォルトの名無しさん
2008/05/20(火) 17:45:01このtxtに追加して提出するように言われました。
助けてくれる方お願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6619.txt
0239デフォルトの名無しさん
2008/05/20(火) 17:54:20何その頭の悪そうな日本語もまともに書けていない問題。
おまけに、C++でお願いされる内容がC言語理解度確認って何さ。
挙句の果てに、「文字列変数」ってstd::stringじゃないのかよ。
0240デフォルトの名無しさん
2008/05/20(火) 17:55:250241デフォルトの名無しさん
2008/05/20(火) 17:59:180242デフォルトの名無しさん
2008/05/20(火) 18:23:060243デフォルトの名無しさん
2008/05/20(火) 19:16:37http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6621.c
これで間違いなく優だぜb
0244デフォルトの名無しさん
2008/05/20(火) 19:21:41you 要修正
0245デフォルトの名無しさん
2008/05/20(火) 19:36:23問10の回答って再起呼び出し? LISP?
0246デフォルトの名無しさん
2008/05/20(火) 19:37:08[2] 問題文int型変数x,yをキーボードから値を入力し、その大小を判定する関数funcを作成せよ
[3] 環境
[3.1] OS: xp
[3.2] コンパイラ名とバージョン: VC 6.0だと思います
[3.3] 言語: C
[4] 期限:今週中
[5] その他の制限: ポインタを使用する
お願いしますm(_ _)m
0247デフォルトの名無しさん
2008/05/20(火) 19:40:36包丁でたまねぎを半分に切るのはどうすれば?っていう、そんなかんじ。
0248デフォルトの名無しさん
2008/05/20(火) 19:52:50再帰
0249デフォルトの名無しさん
2008/05/20(火) 19:53:55int func(int* x, int* y){
if (*x > *y) {
return 1;
} else if (*x < *y) {
return -1;
}
return 0;
}
一応こんな感じで作ってみた。
まぁ>>247の言う通りこの位自分でやるべきだとは思ったけどもね
0250デフォルトの名無しさん
2008/05/20(火) 19:55:11#define MAX_VAL(x,y) return(x>y?x:y)
初めて引数付きマクロ書いた
動くか分からん
0251デフォルトの名無しさん
2008/05/20(火) 19:55:44if (*x > *y) {
return 1;
} else if (*x < *y) {
return -1;
}
return 0;
}
0252デフォルトの名無しさん
2008/05/20(火) 21:13:49[2] 問題文(含コード&リンク):
入力された数値を\とカンマ区切りに編集する関数YenConvertを作成せよ。
int YenConvert(int kingaku,int mode,char *buffer,int result);
引数1:編集用の数値(4桁以上でかつint型の範囲内の入力のみと仮定)
引数2:編集モード
1:引数1の先頭に\を付ける(1000→\1000)
2:引数1の先頭に\を付け、カンマを挿入(1000→\1,000)
引数3:数値編集の格納領域アドレス
引数4:引数3のアドレス先の領域サイズ
戻り値は正常:0 モード誤り:-1 編集用領域不足:-2
[3] 環境
[3.1] OS:XP(自宅) / Vista(実習室)
[3.2] コンパイラ名とバージョン:VC6.0
[3.3] 言語: C言語
[4] 期限:(0時を挟むので)明日 午前2時頃
[5] その他の制限:特にありません。
春季基本情報合格祝いという名目で、ポインタなんて名前しか知らないのに課題が出ました…。
無茶と失礼は承知の上で、寝るまでの期限でお願い致します。
0253デフォルトの名無しさん
2008/05/20(火) 21:16:49記述漏れとミスがあったので訂正します。
int YenConvert(int kingaku,int mode,char *buffer,int bufferlen)
[5] その他の制限:YenConvertでは編集のみ。mainで値から編集した文字列の出力も行なうこと。
0254デフォルトの名無しさん
2008/05/20(火) 22:23:17[2] 問題文(含コード&リンク):for文を使ってひし形の作成せよ。
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン: 通常使用のPCがないのでわからないです。
[3.3] 言語:C
[4] 期限: 金曜日まで
[5] その他の制限:配列使用不可
少し考えてみたソースです。
下半分がどうもできません。
#include <stdio.h>
void main(void) {
int dan,j,k;
for (dan=1; dan<=9; dan=dan+2){
for(j=1; j<=9-dan; j=j+2){
printf(" ");
}
for(k=1; k<=dan*2-1; k=k+2){
printf("*");
}
printf("\n");
}
}
0255デフォルトの名無しさん
2008/05/20(火) 22:25:29#include <stdio.h>
#include <stdlib.h>
#define min(x, y) (x<y)? x : y
int tmp;
#define list(n, s) for( tmp=n; tmp-- >0; ){ printf("%s",s); };
int main(void) {
const int dan=9;
int i;
for( i=0; i<9; i++ ){
list((abs(dan/2-i))," ");
list((min(i,dan-i-1))*2+1,"*");
puts("");
}
return 0;
}
0256デフォルトの名無しさん
2008/05/20(火) 22:27:01言動には注意した方が良いぞ。
0257デフォルトの名無しさん
2008/05/20(火) 22:49:38ありがとうございました。
自分の説明不足なのですが、254のレスに書いた感じのソースで下半分作りたいのでそれと同じようなソースでお願いしたいのですが…。
0258側近中の側近 ◆0351148456
2008/05/20(火) 22:54:35(っ´▽`)っ サンクス☆(抱
>>198
(っ´▽`)っ
partMatrix:部分行列
minorDeterminate:小行列式
getDeterminantの第1引数に行列のポインタ、第2引数にその行列の行数、第3引数に列数を設定する。
行列式を求めるわけだから、第2引数と第3引数は同じでなければならない。
4x+6y+2z=4000,2x+8y+6z=5000,6x+4y+4Z=4200の解は、クラメルの公式より、
x=({{4000, 6, 2}, {5000, 8, 6}, {4200, 4, 4}}の行列式)/({{4, 6, 2}, {2, 8, 6}, {6, 4, 4}}の行列式)
y=({{4, 4000, 2}, {2, 5000, 6}, {6, 4200, 4}}の行列式)/({{4, 6, 2}, {2, 8, 6}, {6, 4, 4}}の行列式)
z=({{4, 6, 4000}, {2, 8, 5000}, {6, 4, 4200}}の行列式)/({{4, 6, 2}, {2, 8, 6}, {6, 4, 4}}の行列式)
2w+1x+4y+3z=5,3w+2x+5y+0z=0,4w+3x+2y+1z=3,5w+0x+3y+2z=0の解は、クラメルの公式より、
w=({{5, 1, 4, 3}, {0, 2, 5, 0}, {3, 3, 2, 1}, {0, 0, 3, 2}}の行列式)/({{2, 1, 4, 3}, {3, 2, 5, 0}, {4, 3, 2, 1}, {5, 0, 3, 2}}の行列式)
x=({{2, 5, 4, 3}, {3, 0, 5, 0}, {4, 3, 2, 1}, {5, 0, 3, 2}}の行列式)/({{2, 1, 4, 3}, {3, 2, 5, 0}, {4, 3, 2, 1}, {5, 0, 3, 2}}の行列式)
y=({{2, 1, 5, 3}, {3, 2, 0, 0}, {4, 3, 3, 1}, {5, 0, 0, 2}}の行列式)/({{2, 1, 4, 3}, {3, 2, 5, 0}, {4, 3, 2, 1}, {5, 0, 3, 2}}の行列式)
z=({{2, 1, 4, 5}, {3, 2, 5, 0}, {4, 3, 2, 3}, {5, 0, 3, 0}}の行列式)/({{2, 1, 4, 3}, {3, 2, 5, 0}, {4, 3, 2, 1}, {5, 0, 3, 2}}の行列式)
0259側近中の側近 ◆0351148456
2008/05/20(火) 22:55:19(っ´▽`)っ
ほうほう・・・もっと勉強しよっと☆ありがと♥(抱
0260デフォルトの名無しさん
2008/05/20(火) 22:56:02*********
*********
*********
*********
*********
*********
*********
*********
*********
0261139
2008/05/20(火) 23:08:26自分の説明不足みたいでごめんなさい。
一般の連立1次方程式の解法プログラムを作成しなさい
って問題なので、最終的に
2w+1x+4y+3z=5,3w+2x+5y+0z=0,4w+3x+2y+1z=3,5w+0x+3y+2z=0の解は、クラメルの公式より、
w=({{5, 1, 4, 3}, {0, 2, 5, 0}, {3, 3, 2, 1}, {0, 0, 3, 2}}の行列式)/({{2, 1, 4, 3}, {3, 2, 5, 0}, {4, 3, 2, 1}, {5, 0, 3, 2}}の行列式)
x=({{2, 5, 4, 3}, {3, 0, 5, 0}, {4, 3, 2, 1}, {5, 0, 3, 2}}の行列式)/({{2, 1, 4, 3}, {3, 2, 5, 0}, {4, 3, 2, 1}, {5, 0, 3, 2}}の行列式)
y=({{2, 1, 5, 3}, {3, 2, 0, 0}, {4, 3, 3, 1}, {5, 0, 0, 2}}の行列式)/({{2, 1, 4, 3}, {3, 2, 5, 0}, {4, 3, 2, 1}, {5, 0, 3, 2}}の行列式)
z=({{2, 1, 4, 5}, {3, 2, 5, 0}, {4, 3, 2, 3}, {5, 0, 3, 0}}の行列式)/({{2, 1, 4, 3}, {3, 2, 5, 0}, {4, 3, 2, 1}, {5, 0, 3, 2}}の行列式)
のような行列式を出力を期待しているのではんく、w=1,x=100,y=1000,z=10000などのように出力するのではないでしょうか?
せっかく作ってもらったのに文句言ってすいません。
0262デフォルトの名無しさん
2008/05/20(火) 23:16:37http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6625.txt
0263デフォルトの名無しさん
2008/05/20(火) 23:43:36[2] 問題文(含コード&リンク):
"end"が入力されるまでキーボードから入力を受付け、入力されたらそれを入力の逆順に表示する。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2008年5月22日22:00まで
[5] その他の制限:charのポインタを対象としたスタックを使う
よろしくおねがいします。
0264デフォルトの名無しさん
2008/05/21(水) 00:04:45[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6626.txt
[3] 環境
[3.1] OS:(WindowsXP)
[3.2] コンパイラ名とバージョン:VC++2005
[3.3] 言語:C++
[4] 期限:5月23日
[5] その他の制限:問題文中に記載してあります。
よろしくお願いしますm(__)m 。
0265デフォルトの名無しさん
2008/05/21(水) 00:11:21問題がわからん
0266デフォルトの名無しさん
2008/05/21(水) 00:16:49#include<stdio.h>
#include<math.h>
#define PI 3.14159
int main(void){
int alpha, degree;
double theta;
printf("終了する角度を入力してください ");
scanf("%d", &alpha);
for(degree=0;degree<=alpha;degree+=5){
theta=PI*degree/180;
printf(" 角度θ= %d°sinθ= %.5f cosθ= %.5f\n", degree, sin(theta), cos(theta));
}
return 0;
}
0267266
2008/05/21(水) 00:17:290268デフォルトの名無しさん
2008/05/21(水) 00:39:00入力されたものをプッシュして、
endが入力されたらポップした順番に表示すればいいみたいです。
0269デフォルトの名無しさん
2008/05/21(水) 00:42:32文字単位、行単位?
0270デフォルトの名無しさん
2008/05/21(水) 00:43:31行単位です。何度もすみません。
0271デフォルトの名無しさん
2008/05/21(水) 00:49:40これで良いかな?
#include <stdio.h>
void main(void) {
int dan,j,k;
for (dan=1; dan<=9; dan=dan+2){
for(j=1; j<=9-dan; j=j+2){
printf(" ");
}
for(k=1; k<=dan*2-1; k=k+2){
printf("*");
}
printf("\n");
}
for (dan=7; dan>0; dan=dan-2){
for(j=1; j<=9-dan; j=j+2){
printf(" ");
}
for(k=1; k<=dan*2-1; k=k+2){
printf("*");
}
printf("\n");
}
}
0272デフォルトの名無しさん
2008/05/21(水) 00:52:16#include <iostream>
#include <iomanip>
#include <cmath>
#define PI 3.14159
using namespace std;
int main(){
double alpha, r=5.0;
cout << "終了する角度を入力してください " ; cin >> alpha;
cout << showpoint << setprecision(5);
for(double i=0; i <= alpha ; i += r)
cout << "角度θ= "<< (int)i << " sinθ= " << sin(i*PI/180) << " cosθ= " << cos(i*PI/180) <<endl;
}
0274デフォルトの名無しさん
2008/05/21(水) 01:14:35とりあえずカンマ入れるモードだけ作った。
int YenConvert(int kingaku, int mode, char *buffer, int result)
{
int min_buf_size, tmp, sign, digit;
char *p;
/* */
if (!buffer) return -3;
/* mode check */
if (mode != 1 && mode != 2) return -1;
/** calc required buf size by kingaku **/
/* get sign */
sign = kingaku < 0 ? -1: 1;
/* abs */
kingaku = kingaku < 0 ? -kingaku : kingaku;
/* digit */
tmp = kingaku / 10;
digit = 1;
while(tmp > 0) {
digit++;
tmp /= 10;
}
/* buf size */
min_buf_size = 1; /* nul terminator */
if (sign == -1) min_buf_size++;
min_buf_size += digit + (digit-1)/3;
0275デフォルトの名無しさん
2008/05/21(水) 01:15:18/* check buf size */
if (result < min_buf_size) return -1;
p = buffer + min_buf_size;
*(p--) = '\0';
tmp = 0;
while (1) {
*(p--) = (kingaku % 10) + '0';
kingaku /= 10;
digit--;
tmp++;
if (digit <= 0) break;
if ((tmp) % 3 == 0) (*p--) = ',';
};
*(p--) = '\\';
if (sign == -1) *(p--) = '-';
}
0276デフォルトの名無しさん
2008/05/21(水) 01:20:46#include <stdio.h>
#include <string.h>
#define TRUE 1
int main(void);
int main(){
char s[100][100];
int i=0;
while(TRUE){
fgets(s[i],100,stdin);
if(strcmp(s[i],"end\n")==0){break;}
i++;
}
for(;i>=0;i--){
printf("%s",s[i]);
}
return 0;
}
0277デフォルトの名無しさん
2008/05/21(水) 01:26:48スタックにつむならこうだろ常識的に考えて
#include <stdio.h>
int func()
{
char s[100];
fgets(s, 100, stdin);
if (strcmp(s, "end\n") == 0) return;
func();
printf("%s", s);
}
int main(void)
{
func();
}
0278デフォルトの名無しさん
2008/05/21(水) 01:35:03int YenConvert(int kingaku,int mode,char *buffer,int result)
{
char work[20], *p=work;
char *fmt[][2]={{NULL, NULL}, {"%d", "%03d"}, {"%d", ",%03d"}};
int div, kingaku_abs;
if(mode!=1 && mode!=2) return -1;
kingaku_abs=abs(kingaku);
*p++='\\';
for(div=1;kingaku_abs/div>=1000;div*=1000);
p+=sprintf(p, fmt_set[mode][0], kingaku/div);
for(div/=1000;div>0;div/=1000) p+=sprintf(p, fmt[mode][1], (kingaku_abs/div)%1000);
if(strlen(work)+1>result) return -2;
strcpy(buffer, work);
return 0;
}
0279デフォルトの名無しさん
2008/05/21(水) 01:39:40http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6627.txt
0280デフォルトの名無しさん
2008/05/21(水) 01:45:57その発想はなかったwww
0281デフォルトの名無しさん
2008/05/21(水) 01:51:29この時間まで足掻いても先頭に\付けるだけで精一杯…。
お答え頂いた>>262 >>274-275 >>278の方々に感謝します。
講師に何を言おうか考えつつ寝ます。遅くまでありがとうございました。
0282デフォルトの名無しさん
2008/05/21(水) 01:57:14うはwたしかにそうだわww
0283デフォルトの名無しさん
2008/05/21(水) 02:07:22おっと、時間切れか?
int YenConvert(int kingaku, int mode, char *buffer, int result)
{
char work[30], *p0 = work, *p;
if(mode != 1 && mode != 2 ) return -1;
*p0++ = '\\';
if(kingaku < 0) {
*p0++ = '-';
kingaku = -kingaku;
}
sprintf(p0, "%d", kingaku);
if(mode == 2) {
for(p=p0+strlen(p0); p>p0+3; p-=3) {
memmove(p-2, p-3, strlen(p-3)+1);
p[-3] = ',';
}
}
if(strlen(work)+1 >= result) return -2;
strcpy(buffer, work);
return 0;
}
0284デフォルトの名無しさん
2008/05/21(水) 02:16:02スタックアーキテクチャーにあんまし慣れすぎないほうがいいと思うぞ
特に10代からCとかやってた奴は。5年はプログラムから離れて
適当に忘れたほうがいい。
(本来は30・40代から始めても遅くないというか、むしろ相応しい
ものなんだけどね==>C言語)
0285デフォルトの名無しさん
2008/05/21(水) 02:38:48なぜそう思うのか教えていただきたいです。
0286デフォルトの名無しさん
2008/05/21(水) 02:50:090287デフォルトの名無しさん
2008/05/21(水) 02:55:52雰囲気だな。
0288デフォルトの名無しさん
2008/05/21(水) 02:57:08頭大丈夫?
0289デフォルトの名無しさん
2008/05/21(水) 05:23:100290デフォルトの名無しさん
2008/05/21(水) 05:28:43具体的にどういうことなのか?そんなのは扱ってみりゃ分かる
0291デフォルトの名無しさん
2008/05/21(水) 06:31:18それよりも他に気にすることはあるだろ。
0292デフォルトの名無しさん
2008/05/21(水) 06:35:44|::::::::::::|:::::/::::::::::;:::::::::/ /:::/ i::::::i:::::::::::::i たとえば『地球温暖化』だ。
|:::::::::::|:::::i:::::::/::::/ /:::/ |::::|:::::::::::/ CO2排出量増加による地球温暖化は常識だね?
∨:::::::|::::|:::::イ:::/ /:::/ |::::|:::::::::/ そう、常識だ。いや、常識だと多くの人々が思っている。
∨:::::|:::| ̄ナナ=、 /::Zz=='"T:T|:::::::/ だが、実はCO2が地球温暖化の原因だという証拠は無いんだよ。
∨:::|::|::ャ代戌ナ= // 弋戌テT:ァi::::::/ そもそも地球温暖化という現象は仮説に過ぎない。
∨:::i:i/ i/ / i/./:::::/,_,, そう主張する人も少なくない。
rヤ::::|i. ! / /i::::::ハ Y ふっ、どうも私は口下手で困るよ。
,,イrヤ::::|ゝ. i / ,イ::::< .〉 .ト、 つまり常識を疑えということだ。
rイ! レヤ:::|i .ゝ. _ _ .イ.|:::/ ソ ! ト‐、
>ー''フ/''| | ヤi::| i .|\ // |::/ / ト、 `ー、
/ i i ャヤi j > 、 //./ |:i / | Y
0293デフォルトの名無しさん
2008/05/21(水) 06:43:23速度は遅いが着実にそちらの方向に流れてるということだ。
0294デフォルトの名無しさん
2008/05/21(水) 06:53:180295デフォルトの名無しさん
2008/05/21(水) 07:19:50[2] 問題文ライフゲームを作成せよ
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: (
[4] 期限: 今週中(できるだけ早めでお願いします)
[5] その他の制限:特になし
0296デフォルトの名無しさん
2008/05/21(水) 07:20:510297デフォルトの名無しさん
2008/05/21(水) 07:23:47過去の気象データと比較して、平均気温が上がった場所、局地的に熱くなった
あるいは寒くなった場所、今まで冬を越さなかった生き物が長々と生息して
生態系が変わるとか、色々とありますからね・・・何が自然か?まぁ俺の戯言はこの辺でw
0298デフォルトの名無しさん
2008/05/21(水) 07:24:28ライフゲームって、人生ゲームみたいなテーブルゲームを文字ばかりで作れと?
0299デフォルトの名無しさん
2008/05/21(水) 07:26:420300デフォルトの名無しさん
2008/05/21(水) 07:30:150301デフォルトの名無しさん
2008/05/21(水) 08:30:53仕様があいまいすぎwww
もっと担当者と要求仕様詰めてから出直せwwww
0302デフォルトの名無しさん
2008/05/21(水) 09:16:47#define JUMYOU 82
int main(void){
int age=0;
char ch='\0';
printf("年齢%d歳:出生",age);
age++;
getchar(&ch);
while(age<JUMYOU){
printf("現在の年齢%d歳",age);
getchar(&ch);
age++;
}
printf("年齢%d歳:ご臨終",age);
puts("あなたは寿命を全うしました。");
return(0);
}
0303デフォルトの名無しさん
2008/05/21(水) 12:09:04[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6629.txt
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: CygnusVer.2.02.1
[3.3] 言語: C
[4] 期限: ([2008年5月22日17:00まで]
[5] その他の制限:for文使用。
よろしくお願いします!
0304デフォルトの名無しさん
2008/05/21(水) 12:13:59#include <stdio.h>
int main(void){
int i, j, n;
printf("段数を入力してください:");
scanf("%d", &n);
for(i=0;i<n;i++){
for(j=0;j<n-1-i;j++) printf(" ");
for(j=0;j<i*2+1;j++) printf("*");
printf("\n");
}
return 0;
}
0305デフォルトの名無しさん
2008/05/21(水) 12:24:06ありがとうございます!!
0306デフォルトの名無しさん
2008/05/21(水) 12:26:26左右が対象には見えないw
0307デフォルトの名無しさん
2008/05/21(水) 12:50:50携帯からなので後ほど途中まで自分でやったものアップします。
[1] 授業単元:ファイルの入出力
[2] 問題文:
in.txtに入力された文をout.txtに番号をつけて出力する
〜例〜
(in.txtの内容)
気になっていることがあるとなかなか眠れない
小さなことでイライラする
根に持つタイプだ
(out.txt)
0001:気になっていることがあるとなかなか眠れない
0002:小さなことでイライラする
0003:
0004:根に持つタイプだ
[3] 環境
[3.1] OS:WindowsVista
[3.2] コンパイラ名とバージョン:
[3.3] 言語:C++
[4] 期限:2008年5月21日23:00まで
[5] その他の制限:
0308デフォルトの名無しさん
2008/05/21(水) 12:58:01http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6630.c
0309デフォルトの名無しさん
2008/05/21(水) 13:08:305の倍数で激しくなる(ry
0310デフォルトの名無しさん
2008/05/21(水) 13:13:32#include <stdio.h>
int main(void)
{
FILE *in, *out;
char buff[256];
int i;
if((in=fopen("in.txt", "r"))==NULL) return 0;
if((out=fopen("out.txt", "w"))==NULL) return 0;
for(i=0; fgets(buff, sizeof buff, in); i++) fprintf(out, "%04d:%s", i, buff);
fclose(in);
fclose(out);
return 0;
}
0311デフォルトの名無しさん
2008/05/21(水) 14:04:28[2] 問題文:
ある文章を入力して、その中に含まれる「数字の個数」を求め、
戻り値で返す関数と、その関数を呼び出して下記のように表示する
プログラムを作成せよ。
例えば、
aiueo12kakikukeko34
と打ち込むと、「数字の数:4」と表示する。
関数は、 int count(char*s) とする。
[3] 環境
[3.1] OS:WindowsXP
[3.3] 言語:C++
[4] 期限:5月22日の午後4時まで
よろしくお願いします
0312311
2008/05/21(水) 14:06:01#include<cctype>
#include<iostream>
using namespace std;
int strch_cnt(const char* s,char c)
{
int i=0;
while (*s)
{
if(*s == c) i++;
s++;
}
return i;
}
int main()
{
char s[40];
char c;
cout << "文字列:";
cin >> s;
cout << "\n";
cout << "カウントする文字:";
cin >> c;
cout <<"\n";
cout << "文字数は:"<< strch_cnt(s,c) << "\n";
return 0;
}
↑のプログラムを参考に作ればいいとのことですが、
どうやって数字の個数のみを求め、表示させればいいのかが分かりません
0313デフォルトの名無しさん
2008/05/21(水) 14:07:05charよりもstringを使え
ポインタ渡しではなく参照渡しできないかどうかもう一度考えろ
って書いてあるのに
どうして学校の授業はchar*とか普通に使いたがるのだ。
0314デフォルトの名無しさん
2008/05/21(水) 14:36:27プログラミングの経験を積めば積む程そう感じるものなのだが....
0315デフォルトの名無しさん
2008/05/21(水) 14:41:37#include <cctype>
#include <iostream>
using namespace std;
int count(char *s)
{
int i = 0;
while(*s)
{
if(isdigit(*s)) i++;
s++;
}
return i;
}
int main()
{
char s[40];
cout << "文字列:";
cin >> s;
cout << "\n";
cout << "数字の数:" << count(s) << "\n";
return 0;
}
0316デフォルトの名無しさん
2008/05/21(水) 14:56:03・3・) エェー セックスとデートのハウツー本は役にたつよな?
0317デフォルトの名無しさん
2008/05/21(水) 14:56:42のところで1000文字くらい打ち込んでみようかな。
0318デフォルトの名無しさん
2008/05/21(水) 15:10:440319デフォルトの名無しさん
2008/05/21(水) 15:24:24[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6631.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語:C++
[4] 期限:2008/05/23
[5] その他の制限:適切な制御構造を用い,読み直した時に理解しやすいプログラムにする.
よろしくお願いします.
0320デフォルトの名無しさん
2008/05/21(水) 15:26:30std::cin.getline(s, sizeof(s));
0321デフォルトの名無しさん
2008/05/21(水) 15:35:02>>149のかた迅速な解答ありがとうございます。
実際に学校のPCで動作を確認したところ
セグメンテーション違反というエラーがでてしまいました。
どのようにすればよいでしょうか?
0322デフォルトの名無しさん
2008/05/21(水) 16:06:52a,b,cをint型変数としてscanfでコンソール等から取得
( (a>0)&&(b>0)&&(c>0) )をチェック 満たされてない場合は
再取得するか、プログラムを終了しろ
( (a+b>c)&&(a+c>b)&&(c+b>a) )
これを満たしてないと三角形にはならないので、その旨表示して終了
((a==b)&&(b==c))
これが真の場合は正三角形だから正三角形と表示
((a==b)||(c==b)||(a==c))
これが真の場合は二等辺三角形だから二等辺三角形と表示
(正三角形と判定された場合、この条件の判定はしない)
( (a*a+b*b==c*c)||(a*a+c*c=b*b)||(c*c+b*b==a*a) )
これが真の場合は直角三角形だから直角三角形と表示
(直角二等辺三角形と表示したい場合はあと一工夫いる)
( ( a*a+b*b>c*c ) && (a*a+c*c>b*b) &&(b*b+c*c>a*a) )
これが真の場合は、鋭角のみで構成された三角形だから鋭角三角形と表示
これが真でない場合は、鈍角を持った三角形と表示する。
これをヒントに後は自分で書け
0323デフォルトの名無しさん
2008/05/21(水) 16:16:23#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main(void){
int a[3], chk;
string s1, s2;
cin >> a[0] >> a[1] >> a[2];
sort(&a[0], &a[2+1]);
if(a[0]<=0 || a[2]>=a[0]+a[1]){
cout << "三角形として不可能な3辺の長さです" << endl;
return 0;
}
chk=a[2]*a[2]-(a[0]*a[0]+a[1]*a[1]);
if(chk==0) s1="直角";
else if(chk<0) s1="鋭角";
else s1="鈍角";
if(a[0]==a[2]) s2="正", s1="";
else if(a[0]==a[1] || a[1]==a[2]) s2="二等辺";
else s2="不等辺";
cout << s1 << s2 << "三角形" << endl;
return 0;
}
0324307
2008/05/21(水) 16:43:06ありがとうございます!!
ヒントで配られたプリントを参考にして作ってみましたのですが
ファイルを入力するところまでこれで合ってますか?
(10は行数で256は文字数です)
#include<fstream.h>
main()
{
char line[10][256];
ifstream fin("in.txt", ios::in);
if(!fin){
cerr << "error" << endl;
exit(1);
}
for(int i=0;i<10 ; i++){
while(!fin.eof()){
fin.getline(line[i], 256);
}
}
fin.close();
0325デフォルトの名無しさん
2008/05/21(水) 16:46:37ふざけすぎだろ?
0326デフォルトの名無しさん
2008/05/21(水) 16:53:43ヒントと回答をありがとうございました.
ヒントのおかげでだいたいの形は完成しました.
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6632.txt
しかし,直角二等辺三角形と表示するための一工夫だけがどうしてもわからないので,教えてはいただけないでしょうか?
お願いします!
>>323
また,回答ありがとうございました.
しかし,かなり難しくて理解ができません・・・・わざわざしてもらったのにすみません.
0327デフォルトの名無しさん
2008/05/21(水) 16:54:33Windows XP Pro Service Pack 2/OfficeProfessional 2007 4GB(1GBx4) 500GB DVD+/-RW ATI(R) RADEON(R) X1300 Pro 256MB DDR(DVI/TV-Out付) On Board Dell マウス(USB,オプティカル,2ボタン,ホイール付,ブラック)/19メディア対応カードリーダー/ライター
3YS2GBX エクスプレス \74,839 XPS Desktop 420 スタンダードシャーシ インテル(R) Core(TM) 2 Quad プロセッサー Q6600(8MB L2 キャッシュ 2.40GHz 1066MHz FSB)
Windows Vista Home Premium 2GB(1GBx2) 500GB DVD+/-RW NVIDIA(R) GeForce(R) 8600 GTS 256MB DDR(DVIx2/TV-out付) On Board Dell プレミアムマウス(USB,オプティカル,4ボタン,ホイール付)
5YS2GBX エクスプレス \122,995 XPS Desktop 420 スタンダードシャーシ インテル(R) Core(TM) 2 Quad プロセッサー Q6600(8MB L2 キャッシュ 2.40GHz 1066MHz FSB)
Windows Vista Home Premium/Office(Personal & PowerPoint) 2007 4GB(1GBx4) 500GB DVD+/-RW NVIDIA(R) GeForce(R) 8800 GT 512MB DDR(DVIx2/TV-out付) Sound Blaster(R) X-Fi Xtreme Music(D) PCIサウンドカード Dell プレミアムマウス(USB,オプティカル,4ボタン,ホイール付)
6VR2GBX エクスプレス \63,053 Vostro Desktop 200 スリムタワー インテル(R) Core(TM) 2 Duo プロセッサー E4500(2MB L2 キャッシュ 2.20GHz 800MHz FSB)
Windows Vista Business 32ビット/OfficePersonal 2007 2GB(1GBx2) 250GB DVD/CD-RWコンボドライブ ATI(R) RADEON(R) HD 2400 Pro 256MB HyperMemory(TM)(DVI/TV-out付) On Board Dell マウス(USB,オプティカル,2ボタン,ホイール付,ブラック)/19メディア対応カードリーダー/ライター
9NG4GBX エクスプレス \134,611 XPS Desktop 420 スタンダードシャーシ インテル(R) Core(TM) 2 Quad プロセッサー Q6600(8MB L2 キャッシュ 2.40GHz 1066MHz FSB)
Windows Vista Home Premium/OfficePersonal 2007 4GB(1GBx4) 500GB ブルーレイディスクドライブ NVIDIA(R) GeForce(R) 8800 GT 512MB DDR(DVIx2/TV-out付) On Board Dell プレミアムマウス(USB,オプティカル,4ボタン,ホイール付)
CD85GBX エクスプレス \83,532 Vostro Desktop 200 スリムタワー インテル(R) Core(TM) 2 Duo プロセッサー E6550(4MB L2 キャッシュ 2.33GHz 1333MHz FSB)
Windows Vista Ultimate 32ビット/OfficePersonal 2007 4GB(1GBx4) 160GB DVD+/-RW ATI(R) RADEON(R) XT 2400 256MB HyperMemory(TM)(DVI/TV-out付) On Board Dell マウス(USB,オプティカル,2ボタン,ホイール付,ブラック)
0328307
2008/05/21(水) 16:54:54やはり間違ってますか?
僕もこれで実行してみたけど出来ませんでした…。
プリントの変数など変えただけなんですが
0329デフォルトの名無しさん
2008/05/21(水) 17:13:52うぉぉぉ Q6600 が安いぜぇぇぇぇ!
って、すでにQ6600を持ってるけどさ・・・。
DELLエクスプレスは安いけど
めったにディスコティップのいいのはでないのと
あらかじめ現金用意しとかないといけないのが難点だな。
0330デフォルトの名無しさん
2008/05/21(水) 17:38:05#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
using namespace std;
int main(void){
ifstream in("in.txt");
ofstream out("out.txt");
string s;
int i;
for(i=1;;i++){
getline(in, s);
if(in.fail()) break;
out << setw(4) << setfill('0') << i << ":";
out << s << endl;
}
return 0;
}
0331デフォルトの名無しさん
2008/05/21(水) 17:58:02直角でかつ二等辺三角形が直角二等辺三角形だよね。
がんばれー
■ このスレッドは過去ログ倉庫に格納されています