11/05/17 14:29:36.56
#include <stdio.h>
void addstr(char str1[], char str2[], char ans[])
{
while(*str1) *ans++ = *str1++;
while(*ans++ = *str2++);
}
int main(void)
{
char str1[128], str2[125], answer[256];
scanf("%s", str1);
scanf("%s", str2);
addstr(str1, str2, answer);
printf("answer = %s\n", answer);
return 0;
}
880:デフォルトの名無しさん
11/05/17 15:24:21.34
もう1問おねがいします。
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
キーボードから入力した文字列を逆向きの文字列に変換する関数
void reverse(char str[], char answer[])を作り、その動作を確認する
プログラムkadai5-2.cを作りなさい。
但し対象となる文字列はstr[]に。
答えはanswer []に代入されて返信されるものとする。
scanf("%s", str);
答えは以下で出力されるものとする。
printf("answer = %s\n", answer);
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: ([2011年5月19日18:00まで] または [無期限] のいずれか)
881:デフォルトの名無しさん
11/05/17 15:40:54.31
>>880
URLリンク(codepad.org)
882:デフォルトの名無しさん
11/05/17 16:15:11.50
[1]授業単元:プログラミング
[2]問題文
二次元配列に保存された10組の計測データ
x 23 34 45 21 34 56 68 78 89 45
y 22 28 55 17 42 56 60 87 91 39
に対して最小二乗法により直線近似した場合
の傾きと定数項を求めるプログラミングを作成しなさい。
※二つの変数の相関係数を求めて出力しなさい。
883:882の続きです。
11/05/17 16:17:13.47
[3]環境
[3,1] OS:恐らくWindows7
[3,2] コンパイラ名とバージョン:すいません、わかりません。
[3,3] 言語:C
[4]期限:2011年5月18日10時00分まで
コマンドプロンプトと秀丸を使っています。
よろしくお願いします。
884:デフォルトの名無しさん
11/05/17 16:30:32.40
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
URLリンク(www.dotup.org)
(上記URL先)のプログラムを機能別に分けたプログラムを作成しなさい。
また、どの点に着目して改良したかを述べなさい。
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: Visual C++ 2008 Express edition
[3.3] 言語: C++
[4] 期限: 2011年5月18日(水)22:00
[5] その他の制限: 配列の章までの範囲でお願いします。
何が何と同時に実行されているのかを明確にして頂きたいのです。
また、部分ごとにどういうプログラムを実行しているか(人数の入力など)分けて頂けると嬉しいです。
885:デフォルトの名無しさん
11/05/17 17:17:17.59
>>868
とりあえず暫定版
URLリンク(codepad.org)
・圧縮レベル0(BI_RGB)のみ対応
・画像データは1次元配列保持になっちゃった
・コード汚い
・画像サイズは128x128固定じゃない
試した画像
URLリンク(www1.axfc.net)
・test1bit.bmp ← エラー出る
・test4bit.bmp ← エラー出る
・test8bit.bmp
・test16bit.bmp
・test24bit.bmp
・test32bit.bmp
886:885
11/05/17 17:22:55.84
ちなみに参考にしたサイトは下記
URLリンク(www.ruche-home.net)
URLリンク(msdn.microsoft.com)(VS.85).aspx
887:デフォルトの名無しさん
11/05/17 17:56:31.42
>>882>>883
URLリンク(codepad.org)
このプログラムは直線近似だけでなく多項式近似も出来るようになっている
直線近似だけなら実はガウスジョルダン消去法は不要でたすき掛け演算で十分だが
分かりにくいのでこのようにしといた
888:デフォルトの名無しさん
11/05/17 18:05:48.63
>>880
#include <stdio.h>
#include <string.h>
#define MAX_LENGTH 128
void reverse( char str[] , char answer[] ) {
int index ;
char *pBuff ;
pBuff = str + strlen(str) -1 ;
for( index = 0 ; index < strlen(str) ; index++ ) {
answer[index] = *pBuff ;
pBuff-- ;
}
}
int main(int argc , char** argv ) {
char str[MAX_LENGTH] = {'\0'} ;
char answer[MAX_LENGTH] = {'\0'} ;
printf("input string:") ;
scanf("%s" , str ) ;
reverse( str , answer ) ;
printf("answer = %s\n" , answer ) ;
return 0 ;
}
889:デフォルトの名無しさん
11/05/17 18:11:49.67
あたま悪いな
890:デフォルトの名無しさん
11/05/17 18:19:09.06
>>887
ガウスジョルダン消去法は最小二乗法なのか?
891:デフォルトの名無しさん
11/05/17 18:33:41.51
>>890
当然違う。
892:デフォルトの名無しさん
11/05/17 18:40:20.50
>>890
曲線近似する時は連立一次方程式を解かなければならないだろ
いまはそれがxで終わっているからこんなおおげさな事はしなくていいのだが
つるかめ算をするとかえってプログラムが読みにくくなる
893:デフォルトの名無しさん
11/05/17 18:49:47.36
クラメルの公式を使えばガウスジョルダン消去法は必要ない
元のプログラムはそうなっている
894:882,883です。
11/05/17 20:00:25.71
>>882>>883です。
ホントにありがとうごさいます。
申し訳ないんですが、もう少し短くはなりませんか?
一応、学校で配られた二次元配列のプログラムを載せます。
895:894の続きです。
11/05/17 20:08:10.64
問題がわかりませんが、
#include<stdio.h>
#include < stdlib.h>
int main(void)
{
int a[2][2], i, j ;
a[0][0]=1 ; a[0][1]=2 ;
a[1][0]=3 ; a[1][1]=4 ;
for(i=0; i<2; i++){
for(j=0; j<2; j++;){
printf(" a[%d][%d]=%d", i, j, a[i][j]);
}
printf("¥n");
}
return(0);
}
896:デフォルトの名無しさん
11/05/17 20:42:19.72
>>895
回帰分析を回帰直線専用に簡略化したけどこれでも長いかな?
これ以上短くするのは難しいかも・・・
codepadが重いのでideoneに貼らせてもらいました
URLリンク(ideone.com)
897:895の続きです。
11/05/17 21:11:53.66
こんな感じです。
また別の例に
double型のデータを格納し、配列名をa、大きさを3×5とした場合
→double a[3][5]
と書いてあります。ド素人で全然わかりませんが、
よろしくお願いいたします。
898:デフォルトの名無しさん
11/05/17 21:18:10.73
わけがわからないよ
899:デフォルトの名無しさん
11/05/17 21:27:54.18
>>895>>897
課題と全然関係ないじゃん