麻野 なぎ(@AsanoNagi) の回答履歴
- C言語でヘッダファイルにグローバル変数を宣言する
main.hに static int a; と記述し、main.cで #include "main.h" [省略] a=10; のように使用して、-Wallをつけてコンパイルすると、main.cで使用しているにも関わらず、 'a' defined but not used という警告が表示されます。 同様に、関数においても、ヘッダファイルでstaticをつけると ‘~’ declared ‘static’ but never defined と警告されます。 静的グローバル変数などは、ソースファイル内で宣言しなければいけないのでしょうか?ヘッダファイル内で宣言しても警告が出ないような方法はありますか?
- HEWでのビルド
HEWのプロジェクトをビルドしようとすると L3430 (F) The total section size exceeded the limit というエラーがでます これはどういう意味でどうすれば解決するのでしょうか.
- 締切済み
- その他(プログラミング・開発)
- tkong
- 回答数1
- 年賀状ソフト 現在故「筆自慢14」を利用中。
ご存知だと思いますが「筆自慢14」は、メーカーが倒産致しましてバージョンアップも出来ない状態です、しかし 古いソフトですが内容が素晴らしく、年賀 封書 ラベル 普通紙(A3迄)と多彩で、一番優れてるのが 住所録の 友人や親類の分類分けが簡単に出来自動で整理されます 一覧コピーが行閲覧出来100件でもA4紙に4枚位で可能です。同一人物だと自宅、会社も同一欄に記載されます。古くなりトラブルが起きた時対応が出来ませんので変わりに「筆王」の体験版(最新版では有りません)を手に入れ試したのですが、全く劣ります(操作に慣れてないせいも考えられます)、一番困るのが 分類分けが出来ませんし 勿論 住所録の一覧コピーもランダムで多量の枚数に成り 整理が大変です。何方か故「筆自慢14」と同等以上の年賀状ソフトをご存知有りませんか。普通紙に対応して居るとベストです。住所録が簡単に写せれば尚嬉しい限りです。宜しくアドバイス願います。
- ベストアンサー
- その他(生活・暮らし)
- 209100
- 回答数3
- C言語でヘッダファイルにグローバル変数を宣言する
main.hに static int a; と記述し、main.cで #include "main.h" [省略] a=10; のように使用して、-Wallをつけてコンパイルすると、main.cで使用しているにも関わらず、 'a' defined but not used という警告が表示されます。 同様に、関数においても、ヘッダファイルでstaticをつけると ‘~’ declared ‘static’ but never defined と警告されます。 静的グローバル変数などは、ソースファイル内で宣言しなければいけないのでしょうか?ヘッダファイル内で宣言しても警告が出ないような方法はありますか?
- 文字の表示なのですが
int i; int len = length[n]; for( i = 0; i <= len; i++ ){ printf("%c ", path[n][i] + 'A' ); } printf("%c\n", goal + 'A' ); } このままだと、 ABCDEFGHIJ・・・の順に表示されてしまいます。 SABCDEFGHI・・・と表示したいのですがどのようにすればいいのでしょうか。
- (汎用的に)行列の積を求めるプログラム
L*M実行列A , M*N実行列B , M*N実行列C を引数として、A*BをCに代入するプログラムを作りたいと思っています。 具体的には、エラーがでるのはわかっていますがイメージとして void multiply(int L,int M,int N,double A[L][M],double B[M][N],double C[L][N]) { for(int l=0;l<L;l++) for(int n=0;n<N;n++) C[l][n]=0; for(int l=0;l<L;l++){ for(int m=0;m<M;m++){ for(int n=0;n<N;n++) C[l][n]+=A[l][m]*B[m][n]; } } } という感じです。Cを自分なりに学習したところ、「2次元配列を渡すには行or列数が少なくとも既知でないといけない」のは知識として得ているのですが、ではこの問題を回避して所望のプログラムを書け、と言われると行き詰ってしまいました。 卒論をするにあたり、種々のサイズの行列演算が必要なので、できるだけ効率的な関数を書いておきたいのですが、どうすれば一般の行列の積の演算が可能になるのでしょうか?
- H8 3052 のプログラムで、少数のべき乗計算
H8 3052 のプログラムで、少数のべき乗計算がしたいです。 y=4610.6x^(-1.156) という計算を入れたいです。 H8 3052 ヘッダファイル 3052f.h stdio.h math.h メイン関数で 1 x2=ad1_val; 2 y2=4610.6*pow(x2,-1.156); 3 if(y2>20){s2_flag = CW;} 4 if(y2<20){s2_flag = CCW;} このプログラムだと動作しません。 1 x2=ad1_val; 2 y2=x2/2; 3 if(y2>150){s2_flag = CW;} 4 if(y2<150){s2_flag = CCW;} このプログラムだと動作しました。 2行目のpowの式のせいで動作エラーするみたいなんですけど、 pow関数はH8 3052 では使えないのですか? それとも他に書き足すことがあるのですか? pow関数が使えないのなら他に方法はないですか? コンパイラは CC38H.exe です。 お願いします。
- 締切済み
- C・C++・C#
- dfsdfesfs7
- 回答数3
- H8 3052 のプログラムで、少数のべき乗計算
H8 3052 のプログラムで、少数のべき乗計算がしたいです。 y=4610.6x^(-1.156) という計算を入れたいです。 H8 3052 ヘッダファイル 3052f.h stdio.h math.h メイン関数で 1 x2=ad1_val; 2 y2=4610.6*pow(x2,-1.156); 3 if(y2>20){s2_flag = CW;} 4 if(y2<20){s2_flag = CCW;} このプログラムだと動作しません。 1 x2=ad1_val; 2 y2=x2/2; 3 if(y2>150){s2_flag = CW;} 4 if(y2<150){s2_flag = CCW;} このプログラムだと動作しました。 2行目のpowの式のせいで動作エラーするみたいなんですけど、 pow関数はH8 3052 では使えないのですか? それとも他に書き足すことがあるのですか? pow関数が使えないのなら他に方法はないですか? コンパイラは CC38H.exe です。 お願いします。
- 締切済み
- C・C++・C#
- dfsdfesfs7
- 回答数3
- YellowIDE6でのコンパイルについて
マイコンのソフトウェアとしてYellowIDE6を使用しています。 マイコンの割り込みのポートを変更しようと思いCのソースを変更したのですが下記のメッセージが出てコンパイルできません。対策を教えてください。 《ファイル(..\..\..\STARTUP\CSGH848.ASM)内で未定義の外部シンボル(_nmi)を参照しました。》 また、参考になるサイトがあれば紹介お願いします。
- クラスの設計について
例えば、システムAPIのパラメータを保持しているクラスは、カプセル化という点でAPIの呼び出しまで行ったほうが良いのでしょうか?(処理を任せる) getParam()などでパラメータを取得する形にしてしまうと戻り値が具体的な型になってしまい、 抽象化しづらくなってしまいます。 もちろんケースバイケースなのかもしれないですが。
- ベストアンサー
- C・C++・C#
- 110110110110
- 回答数6
- YellowIDE6でのコンパイルについて
マイコンのソフトウェアとしてYellowIDE6を使用しています。 マイコンの割り込みのポートを変更しようと思いCのソースを変更したのですが下記のメッセージが出てコンパイルできません。対策を教えてください。 《ファイル(..\..\..\STARTUP\CSGH848.ASM)内で未定義の外部シンボル(_nmi)を参照しました。》 また、参考になるサイトがあれば紹介お願いします。
- クラスの設計について
例えば、システムAPIのパラメータを保持しているクラスは、カプセル化という点でAPIの呼び出しまで行ったほうが良いのでしょうか?(処理を任せる) getParam()などでパラメータを取得する形にしてしまうと戻り値が具体的な型になってしまい、 抽象化しづらくなってしまいます。 もちろんケースバイケースなのかもしれないですが。
- ベストアンサー
- C・C++・C#
- 110110110110
- 回答数6
- 二分法で関数の最小値を求める
題名通りのプログラムを組んだのですが、どうしてもうまくいきません。どこが間違っているのでしょうか?教えてください。 以下プログラム #include< stdio.h > #include< stdlib.h > double minfx( double (*func)(double x), double a, double b ) { if( b-a < 0.0001 ) { if(func(a)>func(b)) { return func(b); } else { return func(a); } } else { if(func(a)>func(b)) { a = (a+b)/2; } else { b = (a+b)/2; } minfx(func,a,b); } } double f1(double x) { return (x-1.0)*(x-1.0); } double f2(double x) { return 3.0*x*x*x*x-4.0*x*x*x-12.0*x*x+10.0; } void main() { double ans1,ans2; ans1 = minfx( f1, 0.0, 5.0 ); ans2 = minfx( f2, 0.0, 5.0 ); printf("関数f1の最小値:%lf \n", ans1); printf("関数f2の最小値:%lf \n", ans2); system("PAUSE"); } これを実行するとf1とf2の値が0.000000といった感じで値が代入できていないと返されます。流れ的には合っていると思うのですが…なお、プログラムの形はできるだけそのままで、関数minfx内のみ変更する形でお願いします。自分としてはそこ以外に原因が考え付かないので…。
- 計算式の文字列を解析して自分で計算する方法
VC++2005で開発しております。 標記についてですが、例えば 文字列「1+2+3」を解析して、結果「6」を算出する方法って、 自分で文字列を解析していくしか無いでしょうか? 例えば「このサイトに参考になりそうなのあるよー」ですとか、 「こういう関数あるよー」ですとか、 「こういう風にするといいんじゃない?」といったアドバイスを いただけたらとても助かりますm(__)m ちなみに使用するのは 「()」 「+」 「-」 「/」 「*」 です。 ご教授お願いいたしますm(__)m
- 方程式の解について
f(x)=x^4+x^3+(1/2)x^2+(1/6)x+1/24 g(x)=x^5+x^4+(1/2)x^3+(1/6)x^2+(1/24)x+1/120 (1) すべての実数xについて、f(x)>0を示せ。 これは式を変形することで分かりました。 (2) g(x)=0 はただ1つの実数解αをもち、-1<α<0を示せ。 (1)を利用すると思うが、利用の仕方が分かりません。 しかたないので、微分してグラフで考えようとしましたが、 3回微分してg'''(x)>0、だからg''(x)は単調増加で-1と0の間でx軸と交わる この解をβとして、・・・・・とやりましたが挫折、たぶんこれは本質の解法 ではないと感じました。それでやっぱり、(1)を利用するのだろうが、見当が つきません。よろしくお願いします。
- 方程式の解について
f(x)=x^4+x^3+(1/2)x^2+(1/6)x+1/24 g(x)=x^5+x^4+(1/2)x^3+(1/6)x^2+(1/24)x+1/120 (1) すべての実数xについて、f(x)>0を示せ。 これは式を変形することで分かりました。 (2) g(x)=0 はただ1つの実数解αをもち、-1<α<0を示せ。 (1)を利用すると思うが、利用の仕方が分かりません。 しかたないので、微分してグラフで考えようとしましたが、 3回微分してg'''(x)>0、だからg''(x)は単調増加で-1と0の間でx軸と交わる この解をβとして、・・・・・とやりましたが挫折、たぶんこれは本質の解法 ではないと感じました。それでやっぱり、(1)を利用するのだろうが、見当が つきません。よろしくお願いします。
- 残業代の計算式
基本給 10万円 所定勤務日数 20日 ●残業単価の計算方法 基本給÷(所定勤務日数×所定時間)×1.25 所定時間7.5時間の場合 10万÷(20×7.5)×1.25=834円 所定時間7時間の場合 10万÷(20×7)×1.25=893円 ●例えば、残業時間が10時間あった場合・・・ 所定時間7.5時間の場合 834円×10時間=8340円 所定時間7時間の場合 893円×10時間=8930円 差額8930円-8340円=590円 ●ご質問したいことは、 834円の単価(所定時間7.5時間)で 残業代8930円を算出出来るように、 残業時間を調整するためには どのように計算すればいいのかを知りたいのです。 この例だと 8930円÷834円=10.7時間となる訳ですが これですと今まで計算を全部しないと 計算できません。 出来れば、残業時間10時間と 834円の単価(所定時間7.5時間)の情報だけで 10.7時間を算出したいのですが そのようなことは出来ますか?
- 残業代の計算式
基本給 10万円 所定勤務日数 20日 ●残業単価の計算方法 基本給÷(所定勤務日数×所定時間)×1.25 所定時間7.5時間の場合 10万÷(20×7.5)×1.25=834円 所定時間7時間の場合 10万÷(20×7)×1.25=893円 ●例えば、残業時間が10時間あった場合・・・ 所定時間7.5時間の場合 834円×10時間=8340円 所定時間7時間の場合 893円×10時間=8930円 差額8930円-8340円=590円 ●ご質問したいことは、 834円の単価(所定時間7.5時間)で 残業代8930円を算出出来るように、 残業時間を調整するためには どのように計算すればいいのかを知りたいのです。 この例だと 8930円÷834円=10.7時間となる訳ですが これですと今まで計算を全部しないと 計算できません。 出来れば、残業時間10時間と 834円の単価(所定時間7.5時間)の情報だけで 10.7時間を算出したいのですが そのようなことは出来ますか?
- マイコンのソースについて
マイコンのC言語プログラムのソースについての質問です。 マイコンを使い自由落下の時間差を測定しようと考えています。使用するマイコンはH8SX/1655です。ソフトウェアとしてHEWを使用しています。 システムとしてはマイコンのクロックを使い 、マイコンに2箇所から光の信号を入力して、物体を自由落下させ、物体が光を遮ったときを参考にして、その差分から時間を計測するというシステムを考えています。 具体的には (1)フリーランタイマーを走らせるプログラム (2)オペアンプからの入力を一定間隔でA/D変換するプログラム (3)A/D値が定常状態から動いていたら、「レーザーが遮られた」ということなのでそのタイミングでフリーランタイマーのカウンタを取得するプログラムを 作ればいいということを教えていただいたのですが、プログラムの書き方がわかりませんでした。 この3つのプログラムのソースの書き方について解答・解説・指摘お願いします。 また、参考になるサイトがあれば紹介お願いします。