C言語の自由課題で、関数を使ったプログラムを作成する課題が出されました。
ただし数学関数や文字に関する関数は使わず独自の関数を使用する。というものです。課題の意味すらよく理解しておらず、1から教えて頂きたいです。丸投げで申し訳ありません。
例では、経過時間を計算するプログラムが出されていました。その例も難しいものではないと思うので、複雑でなく簡単なものでお願いしたいです。(初心者用?)
c言語自由課題
Re: c言語自由課題
要は,「自分で何か関数を作ってそれを使え」って話でしょう.きっと.
何か入力値を用いててきとーな計算を行うプログラムにおいて,入力値を1個入力する部分を関数にするとかしとけばよいのでは?
・数値を入力させる処理が実装されている関数であって,
・入力された値が特定の範囲に入ってない場合にはその旨を表示して入力をやり直させるという機能を有し(つまり,妥当な値が入力されるまでループする形になっている)
・戻り値として入力された値を返す.
みたいな.
何か入力値を用いててきとーな計算を行うプログラムにおいて,入力値を1個入力する部分を関数にするとかしとけばよいのでは?
・数値を入力させる処理が実装されている関数であって,
・入力された値が特定の範囲に入ってない場合にはその旨を表示して入力をやり直させるという機能を有し(つまり,妥当な値が入力されるまでループする形になっている)
・戻り値として入力された値を返す.
みたいな.
Re: c言語自由課題
「文字に関する関数」を使ってはいけないというのに注意したいですね。
例えば、
・書式指定文字列を扱うprintf系やscanf系の関数
・文字の入出力を行うgetchar関数、putchar関数、getc関数、fgetc関数、putc関数、fputc関数
・文字列の入出力を行うgets関数、puts関数、fgets関数、fputs関数
などは使えなそうですね。
となると、通常のパソコン環境であれば、入出力はfread関数やfwrite関数を使用するのがいいでしょう。
システムコールや、マイコン環境におけるメモリマップドI/Oを使うという選択肢もあるでしょう。
さらに、「数学関数や文字に関する関数」は標準関数に限られなそうであることにも注意したいです。
例えば、fread関数で1行読み込み、文字列として返す、
のような自作関数も「文字に関する関数」となり、使ってはいけないと考えられます。
あくまで文字として扱わず、この例なら「値0x0Aのバイトで区切られたバイト列を読み込んで返す」
という仕様にすることで回避できるかもしれません。
例えば、
・書式指定文字列を扱うprintf系やscanf系の関数
・文字の入出力を行うgetchar関数、putchar関数、getc関数、fgetc関数、putc関数、fputc関数
・文字列の入出力を行うgets関数、puts関数、fgets関数、fputs関数
などは使えなそうですね。
となると、通常のパソコン環境であれば、入出力はfread関数やfwrite関数を使用するのがいいでしょう。
システムコールや、マイコン環境におけるメモリマップドI/Oを使うという選択肢もあるでしょう。
さらに、「数学関数や文字に関する関数」は標準関数に限られなそうであることにも注意したいです。
例えば、fread関数で1行読み込み、文字列として返す、
のような自作関数も「文字に関する関数」となり、使ってはいけないと考えられます。
あくまで文字として扱わず、この例なら「値0x0Aのバイトで区切られたバイト列を読み込んで返す」
という仕様にすることで回避できるかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: c言語自由課題
東上☆海美☆「
『なんかの標準関数を自分で書け』っていう課題じゃないみみ ?
strcpy を自分で書けないなら、『strcpy 自作』で検索みみ。
」
『なんかの標準関数を自分で書け』っていう課題じゃないみみ ?
char*
strcpy( char* dst, char* src )
{
// 自分で書くみみ
}
int
main()
{
char dst[ 5+1 ];
char src[] = "12345";
strcpy( dst, src );
return 0;
}
」
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。
中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。
中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。