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

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2007/01/13(土) 00:01:21
>>938
とりあえずスキャンライン型の最近点対探索.
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3369.c

n x1 y1 x2 y2 ... xn yn

のようなファイルをプログラムの第一引数に渡す(区切り文字は改行でもいい).
第一引数を省略した場合,標準入力から同様の形式を読み込む.
953デフォルトの名無しさん:2007/01/13(土) 01:14:23
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):生まれてから今日までの日数の表示(閏年考慮)
   
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語: C
954869 ◆xkG5F/RZlA :2007/01/13(土) 01:15:14
869ですが、何とかならないでしょうか?
よろしくお願いします。
955デフォルトの名無しさん:2007/01/13(土) 01:47:18
数独の解答計算機なら、確か七行プログラミングスレにあったなあと
思って探したら出てきた
http://pc10.2ch.net/test/read.cgi/tech/1142467359/49
956デフォルトの名無しさん:2007/01/13(土) 02:22:54
伝達関数に量子化雑音を組み込むのってどうすればいいのかわかりません…。
量子化雑音の式をz変換しなきゃだめ?
957デフォルトの名無しさん:2007/01/13(土) 02:30:04
ここは愚痴スレじゃないんだよ
958デフォルトの名無しさん:2007/01/13(土) 02:35:54
>>956
z変換って線形成なかったっけ?
(もしあるなら)量子化雑音の伝達関数をN(x)とすれば単純に足し合わせるのがいいんじゃないかと

というか"量子化雑音を組み込む"って何


むしろ居た違い死ね
959デフォルトの名無しさん:2007/01/13(土) 02:36:31
伝達関数に量子化雑音を組み込むのってどうすればいいのかわかりません…。
量子化雑音の式をz変換しなきゃだめ?
960デフォルトの名無しさん:2007/01/13(土) 02:44:57
>>959
量子化雑音の式が定義されてるの?
なけりゃ話にならないよ?

というよりオレも消えて欲しいと思っているから
961デフォルトの名無しさん:2007/01/13(土) 02:47:44
>>953
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3370.txt
眠いからトンチンカンなことやってても許してくれ
962デフォルトの名無しさん:2007/01/13(土) 02:53:28
[1] 授業単元:プログラミング
[2] 問題文:CUI/GUI問わずウンコの絵が出てくるアプリを作成せよ
あらかじめ作成した画像を使用することはならず、アニメーション表示されるとなおよし
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC8
 [3.3] 言語:C++
[4] 期限:明後日
[5] その他の制限:なし
お願いします。
963デフォルトの名無しさん:2007/01/13(土) 03:00:00
>>962
つ カンニング竹山
964デフォルトの名無しさん:2007/01/13(土) 03:04:25
>>961 days-=bd;の下に
if(by==ty&&-days>=td)return 1;
を入れると未来の日付をはじけるかも・・・ 眠い・・・
965デフォルトの名無しさん:2007/01/13(土) 03:15:30
2つの座標が与えられた時、
その2つの座標が結ぶ直線の通る座標を出す方法を教えてください
座標の範囲は(0,0)(600,600)です
966デフォルトの名無しさん:2007/01/13(土) 03:25:16
>>965
単純に中等数学の問題なの?
そうでなく離散座標上の話なの?
967デフォルトの名無しさん:2007/01/13(土) 03:27:20
ユークリッド空間の話だとは思いたくないが。
968デフォルトの名無しさん:2007/01/13(土) 04:53:26
>965
直線上の座標は無限。
別の条件もないと特定はできない。
969デフォルトの名無しさん:2007/01/13(土) 06:29:45
>>944-945
だいたい正しい。その解法をキャリパー法という。
970デフォルトの名無しさん:2007/01/13(土) 10:17:56
>>848なんとかならないでしょうか?
よろしくお願いします!
971デフォルトの名無しさん:2007/01/13(土) 11:13:00
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
配列に格納されたデータをソートするプログラムを作成するにあたり、
以下の機能を持つ関数を作成しプログラムを完成させなさい。

乱数を生成し配列要素に格納する
 init_array(int *pa, int n)
配列要素を1行で画面に出力する
 output_array(int *pa, int n)
指定された2つアドレスのデータを交換する
 swap(int *x, int *y)

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio 2003
 [3.3] 言語: C
[4] 期限: 1月15日
よろしくお願いします。
972デフォルトの名無しさん:2007/01/13(土) 11:53:15
>>971

void swap(int *x, int *y)
{
*x = *x ^ *y;
*y = *x ^ *y;
*x = *x ^ *y;

retrun;
}

x = 0x01
y = 0x02

x = 0x01 xor 0x02 ... x = 0x03
y = 0x03 xor 0x02 ... y = 0x01
x = 0x03 xor 0x01 ... x = 0x02


973972:2007/01/13(土) 11:56:27
>>971
乱数を生成し配列要素に格納ってあるが
引数の意味は何?int *paは配列のアドレスでint nが要素数なわけか?

だとすると配列要素を1行で画面に出力もわかるんだが
974デフォルトの名無しさん:2007/01/13(土) 12:07:11
>>972
正しく動きません><
int x = 30;
swap(&x,&x);

975デフォルトの名無しさん:2007/01/13(土) 12:14:32
コンパイルしてない多分動く

#include <stdio.h>

#define MAX_ARRAY 10

void init_array(int *pa, int n);
void swap(int *x, int *y);
void output_array(int *pa, int n);

int main(void)
{
/* その他変数割愛 */
int nArray[MAX_ARRAY];

init_array(&nArray[0], MAX_ARRAY);

/********************************************************/
/* この辺でソートするんじゃね?勉強と思って自分で考えろ */
swap();

/********************************************************/

output_array(&nArray[0], MAX_ARRAY);

return;
}

976デフォルトの名無しさん:2007/01/13(土) 12:15:07
void init_array(int *pa, int n)
{
int i;

srand((unsigned)time(NULL));

for(i = 0;, i < n; i++)
{
*(pa + i) = rand();
}

return;
}

void swap(int *x, int *y)
{
*x = *x ^ *y;
*y = *x ^ *y;
*x = *x ^ *y;

return;
}

977デフォルトの名無しさん:2007/01/13(土) 12:15:42
void output_array(int *pa, int n)
{
int i;

for(i = 0; i < n; i++)
{
fprintf(stdout, "結果 = %d", *(pa + i));
}
fprintf(stdout, "\r\n");

return;
}
978972:2007/01/13(土) 12:16:35
あとヘッダに#include <stdlib.h>も必要だった
srand()
rand()

>>974
動くわけないだろう・・・・
979972:2007/01/13(土) 12:17:28
>>974
そういう意味で言うなら

int x = 30;
int y = 20;

swap(&x,&y);
980デフォルトの名無しさん:2007/01/13(土) 12:27:44
[1] 授業単元: データ構造とアルゴリズム
[2] 問題文(含コード&リンク):

配列を用いてリングバッファを実現せよ。ただし、データは整数型とする。
キーボードから入力された文字により以下のような動作をする。

i : 後に続いて入力されたデータをキューの末尾に挿入。
d: キューの先頭のデータを削除。キューが空ならその旨を出力。
p: キューのデータを先頭から順番に出力。
q: プログラムの終了。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: LSI C-86
 [3.3] 言語: C
[4] 期限: 1月16日
[5] その他の制限: 特になし

よろしくお願いします。
981デフォルトの名無しさん:2007/01/13(土) 12:46:33
>>980
LSI C-86は環境ないんでうまく動くかはわからん。
#include<stdio.h>
int main(){
    enum{QUEUE_SIZE = 10};
    int queue[QUEUE_SIZE],pos=0,size=0,i;
    char c;
    while(scanf(" %c",&c)==1)switch(c){
        default: printf("unknown operation '%c'\n",c);
        break;case 'i':
            if(scanf("%d",&i) != 1)continue;
            else if(size == QUEUE_SIZE)printf("queue is full\n");
            else queue[(pos+size++)%QUEUE_SIZE] = i;
        break;case 'd':
            if(size == 0) printf("queue is empty\n");
            else pos = (pos+1)%QUEUE_SIZE , --size;
        break;case 'p':
            for(i=0;i<size;++i)printf("%d ",queue[(pos+i)%QUEUE_SIZE]);
            printf("\n");
        break;case 'q':return 0;
    }
    return 0;
}
982RYO:2007/01/13(土) 12:58:39
 最近、プログラムの研修を参加して、どうしても解かなければいけない
問題がでてきました。誰か解いてもらえないでしょうか?
 自分はプログラマー超初心者で、CもC++の区別もつかないし、自分
がどの分野をやってるのかすら分かりません。

 問題はPseudocode(擬似コード)を取り扱ったもので、果たしてこの
スレに書いていい分野かすら分かりません。それでも、だれか優しい人
教えてちょ
 
 問題 擬似コードを使って一から十までのランダムで決められた
一つの数字をあてるプログラムを作る。もし、プレイヤーが数字を言い当てたら
”YOU WIN!!"とスクリーン上に表示させてプログラムが終了する。
 もし、プレイヤーが数字を引き当てなければ、プログラムは、プレイヤー
に数字を引き当てるまで新しい数字を入力するよう尋ねる。
 
(注意点)プログラムは、もしプレイヤーが数字をはずした場合
 その数字よりも大きいか小さいかをスクリーンに表示させ、もし
プレイヤーが、数字とイコール(引き当て)た場合、"YOU WIN!!"と
スクリーンに表示させる。
 なので、プレイヤーが数字を引き当てなかった
場合に、プログラムがずっとプレイヤーに大きいか小さいかを尋ねる
プログラムループを作成しなければいけない。
 
 このランダムで引き当てられた数字は、モジュールですでに書かれて
いるものとする。             
            問題 終了

IF THEN ELSE や FOR を使って表示させるみたいなん
だけど、誰か教えて。たぶん、基本的なところだ思うんで。
983RYO:2007/01/13(土) 13:08:13
 ついでにこれも
ユーザーに入力された5つの数字の平均を計算するプログラムをつくる。
 最後に 数字の合計と平均をスクリーンに表示させる。ただし5つの
数字をいれるためのループを作ってくれぇいー
984デフォルトの名無しさん:2007/01/13(土) 13:11:28
>>982
擬似コードといっても、いろんなものが世の中にあふれすぎていて、
どう書いていいのかまったく想像もつかない。
その擬似コードの規格を具体的かつ厳密に述べよ。
985980:2007/01/13(土) 13:14:31
>>981
動作確認しました。こちらの意図したとおりに動いてくれました。
ありがとうございます。
986デフォルトの名無しさん:2007/01/13(土) 13:53:13
次スレ
C/C++の宿題を片付けます 81代目
http://pc10.2ch.net/test/read.cgi/tech/1168663908/
987972:2007/01/13(土) 14:38:02
>>983
スクリーンって言うのはコマンドプロンプトの事か?
それとも自分で作ったウィンドウ上に表示しろって事か?
988972:2007/01/13(土) 14:44:57
>>982
IF THENとかだとCOBOLとかBASIC関連だと思うんだがCで組んじゃっていいのか
擬似コードだから環境は選ばないって認識でいいのか
989972:2007/01/13(土) 14:48:06
因みに
>>このランダムで引き当てられた数字は、モジュールですでに書かれているものとする。
って言うのはモジュール内で生成すればいいんだな?

とりあえず飯
990デフォルトの名無しさん:2007/01/13(土) 14:49:43
>>971
これは前に見たなぁ
991972:2007/01/13(土) 14:57:55
>>983
とりあえずこれ

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

int main(void)
{
int i;
char useInput[256];
short total, ave;

total = 0;
ave = 0;

for(i = 0; i < 5; i++)
{
fgets(&useInput[0], sizeof(useInput), stdin);
total = total + (short)atoi(&useInput[0]);
}

ave = total / 5;

fprintf(stdout, "合計 = %d\r\n", total);
fprintf(stdout, "平均 = %d\r\n", ave);

return 0;
}
992デフォルトの名無しさん:2007/01/13(土) 15:00:20
>>982
擬似コードなら日本語でちゃちゃっと書いとけばいいんでは
993デフォルトの名無しさん:2007/01/13(土) 15:01:05
void swap(int *x, int *y)
{
if(x!=y){
*x = *x ^ *y;
*y = *x ^ *y;
*x = *x ^ *y;
}
retrun;
}
XORの場合って同じアドレスを排除しなきゃ駄目じゃなかったっけ?
994972:2007/01/13(土) 15:03:37
>>993
あー、なるほど
アドレス検知は考えてなかったなー

つか吉野家いってくるわ
995デフォルトの名無しさん:2007/01/13(土) 15:09:46
>>991
いいんだが初心者にfgetsやらfprintfでのI/O切り替えは酷だろうw
996デフォルトの名無しさん:2007/01/13(土) 15:09:47
void swap(int*x,int*y){if(x!=y)*x^=*y^=*x^=*y;}

こうすりゃいいってじっちゃんが言ってた
997972:2007/01/13(土) 16:07:31
>>982
多分動く
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
int ans, cmp;
char useInput[256];

srand((unsigned)time(NULL));
ans = rand() % 10 + 1;

while(1)
{
fgets(&useInput[0], sizeof(useInput), stdin);
cmp = atoi(&useInput[0]);
if(ans == cmp)
{
fprintf(stdout, "You Win!!\r\n");
break;
}
else
{
ans > cmp ? fprintf(stdout, "もっと大きい\r\n") : fprintf(stdout, "もっと小さい\r\n");
}
}

return 0;
}
998972:2007/01/13(土) 16:09:24
>>995
わかるんだが昔scanfばっか使ってて抜け出すまで苦しんだ経験があるから
いっそ最初からfgetsやら使ったほうが・・・と思ってる。

>>996
おお、そっちのほうがスマートだね
999デフォルトの名無しさん:2007/01/13(土) 16:12:26
素直にメモリ使ったらあかんの?
void swap(int*x,int*y)
{
    int wk;
    wk=*x;
    *x=*y;
    *y=wk;
}

そしたらこっちもメモリ・・・・・w
void init_array(int *pa, int n)
{
    srand((unsigned)time(NULL));
    while (n--)
      *pa++ = rand();
}
1000972:2007/01/13(土) 16:17:43
>>999
前者はテクニック使うか使わないかの問題だと思う

後者は人それぞれ組み方が違うねー
そのやり方は俺は思い浮かばなかったw
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。