次のプログラミングのやり方を教えてください
Posted: 2009年12月03日(木) 12:03
(管理人により記事が編集されました(編集した部分は灰色部分です))
(名無しのごんべいさんへ、質問の仕方が利用規約に沿っていないようです。例を書きましたので○○の部分を埋めるように編集し直してみてください。)
例:
皆さんこんにちは。私は今大学でプログラムを勉強しています。
以下のような課題が出たのですが、全く解らず困っているのでわからない所を教えて頂けると幸いです。
プログラム歴は○○で、使っているOSは○○、コンパイラは○○です。
問題1:
整数 n を入力とし,n 以下の整数のうち,2 の倍数でも 3 の倍数でもないものの和を出力する関数 int sum_n_23(int n) を作成せよ.次に main 関数内で整数 2 個をキーボードから入力させ,int 型変数 a, b にそれぞれ代入せよ.最後に,関数 int sum_n_23(int n) を用いて a 以上 b 未満の数のうち,2の倍数でも3の倍数でもないものの和を求めて出力させるプログラムを完成させよ.
補足1:
この問題については○○まで学校で勉強していて、自分としては○○まで理解しています。
しかし○○が解らないので、どうすれば解決出来るか教えてください。
問題2:
2つの int 型変数へのポインタを受け取り, 2 つの変数の値のうち小さい方を 1 番目のポインタの指す変数に, 大きい方を 2 番目のポインタの指す変数にセットする関数 void sort2(int*, int*) を作成せよ. 下のプログラムで動作を確認せよ.
#include <stdio.h>
void sort2(int *a, int *b)
{
}
int main(void)
{
int a, b;
printf("a = ");
scanf("%d", &a);
printf("b = ");
scanf("%d", &b);
printf("a=%d, b=%d → ", a, b);
sort2(&a,&b);
printf("a=%d, b=%d\n", a, b);
return 0;
}
補足2:
この問題については○○まで学校で勉強していて、自分としては○○まで理解しています。
しかし○○が解らないので、どうすれば解決出来るか教えてください。(以下略)
問題3:
2つの自然数 a, b に対し, a と b の最大公約数を求める関数 int gcd(int a, int b) を作成せよ.
2つの自然数 a, b に対し, その公約数をすべて表示する関数 void print_cd(int , int) を作成せよ.
※ 「a と b の公約数」は「a と b の最大公約数の約数」なので, gcd(a,b) を呼び出して 2 数の最大公約数 g を求めてその全約数を表示すればよい. i = 2, 3, …, g について i が g を割り切るかどうかテストし, 割り切ればそれを表示するようにする.
main から gcd と print_cd を呼び出し, キーボードから入力した自然数 a, b に対して, 最大公約数とすべての公約数とを表示するようにせよ (表示形式は任意).
問題4:
double 型の外部変数 dollar (1ドルが何円かを表す) と euro (1ユーロが何円かを表す) を宣言せよ.
円の金額を受け取り, それをドルに両替したとき何ドルになるかを返す関数 double yen2dollar(double) を作成せよ. ただし, 円をドルに両替するときのレートは, dollar+1.0 とする. (例えば, 1ドル110円のとき, 円をドルに両替すると1ドル111円で計算される.)
円の金額を受け取り, それをユーロに両替したとき何ユーロになるかを返す関数 double yen2euro(double) を作成せよ. ただし, 円をユーロに両替するときのレートは, euro+1.0 とする.
ドルの金額を受け取り, それを円に両替したとき何円になるかを返す関数 double dollar2yen(double) を作成せよ. ただし, ドルを円に両替するときのレートは, dollar-1.0 とする.
ユーロの金額を受け取り, それを円に両替したとき何円になるかを返す関数 double euro2yen(double) を作成せよ. ただし, ユーロを円に両替するときのレートは, euro-1.0 とする.
今日のドルのレート (dl) とユーロのレート (er) を受け取り, 次のように両替の金額の例を表示する関数 void kawase_example(double dl, double er) を作成せよ.
dollar に dl を, euro に er を代入する.
"今日のレートは 1 ドル xxx.xx 円, 1 ユーロ xxx.xx 円です." と表示する.
10,000円をドルに両替するといくらになるかを yen2dollar を用いて計算し, "10000 円をドルに両替すると xxx.xx ドルになります." 等と表示する.
同様に 10,000円をユーロに両替した結果を表示する.
100 ドルを円に両替した結果を表示する.
100 ユーロを円に両替した結果を表示する.
100 ユーロを円に両替し, それをドルに両替した結果を表示する.
同様に, 100 ドルを円を経由してユーロに両替した結果を表示する.
main 関数から
kawase_example(112.0, 135.0);
kawase_example(114.5, 139.5);
を呼び出すようにせよ
問題5:
2 次元座標上に k 個(k>0)の点 p0,...,pk-1 が与えられているものとする.キーボードから新しい点のデータ data が入力されたとき, p0,...,pk-1 の中で data との距離がもっとも近いものを求め,その点の識別番号(p0,...,pk-1)とそのときの距離を表示するプログラムを作成せよ.ただし,data からの距離が等しい点が複数ある場合はその中のいずれか一つの識別番号が求められればよいものとする.
問題6:
整数 a, b を入力とし,その最大公約数を計算して出力する関数 int gcd( int a, int b) を [リスト5.17]を参考にして定義せよ.これを利用して,main 関数内で互いに素な(最大公約数が1である)自然数の組 (x, y)を列挙して表示させるプログラムを作成せよ.ただし,x は10以上17未満の整数, y は30以上36以下の整数とする.
問題7:
文字列 s 中の数字の個数を返す関数 int str_num_count(char s[/url]) を作成せよ
問題8:
下のように初期化した文字列 sentence と, キーボードから入力した文字列 str に対し, sentence が str で始まっているかどうか (str が sentence の先頭から一致するかどうか) を判定して表示するプログラムを作成せよ. sentence の方が str より長いと仮定してよい.
char sentence[/url] = "This is a pen. That is an apple.";
(名無しのごんべいさんへ、質問の仕方が利用規約に沿っていないようです。例を書きましたので○○の部分を埋めるように編集し直してみてください。)
例:
皆さんこんにちは。私は今大学でプログラムを勉強しています。
以下のような課題が出たのですが、全く解らず困っているのでわからない所を教えて頂けると幸いです。
プログラム歴は○○で、使っているOSは○○、コンパイラは○○です。
問題1:
整数 n を入力とし,n 以下の整数のうち,2 の倍数でも 3 の倍数でもないものの和を出力する関数 int sum_n_23(int n) を作成せよ.次に main 関数内で整数 2 個をキーボードから入力させ,int 型変数 a, b にそれぞれ代入せよ.最後に,関数 int sum_n_23(int n) を用いて a 以上 b 未満の数のうち,2の倍数でも3の倍数でもないものの和を求めて出力させるプログラムを完成させよ.
補足1:
この問題については○○まで学校で勉強していて、自分としては○○まで理解しています。
しかし○○が解らないので、どうすれば解決出来るか教えてください。
問題2:
2つの int 型変数へのポインタを受け取り, 2 つの変数の値のうち小さい方を 1 番目のポインタの指す変数に, 大きい方を 2 番目のポインタの指す変数にセットする関数 void sort2(int*, int*) を作成せよ. 下のプログラムで動作を確認せよ.
#include <stdio.h>
void sort2(int *a, int *b)
{
}
int main(void)
{
int a, b;
printf("a = ");
scanf("%d", &a);
printf("b = ");
scanf("%d", &b);
printf("a=%d, b=%d → ", a, b);
sort2(&a,&b);
printf("a=%d, b=%d\n", a, b);
return 0;
}
補足2:
この問題については○○まで学校で勉強していて、自分としては○○まで理解しています。
しかし○○が解らないので、どうすれば解決出来るか教えてください。(以下略)
問題3:
2つの自然数 a, b に対し, a と b の最大公約数を求める関数 int gcd(int a, int b) を作成せよ.
2つの自然数 a, b に対し, その公約数をすべて表示する関数 void print_cd(int , int) を作成せよ.
※ 「a と b の公約数」は「a と b の最大公約数の約数」なので, gcd(a,b) を呼び出して 2 数の最大公約数 g を求めてその全約数を表示すればよい. i = 2, 3, …, g について i が g を割り切るかどうかテストし, 割り切ればそれを表示するようにする.
main から gcd と print_cd を呼び出し, キーボードから入力した自然数 a, b に対して, 最大公約数とすべての公約数とを表示するようにせよ (表示形式は任意).
問題4:
double 型の外部変数 dollar (1ドルが何円かを表す) と euro (1ユーロが何円かを表す) を宣言せよ.
円の金額を受け取り, それをドルに両替したとき何ドルになるかを返す関数 double yen2dollar(double) を作成せよ. ただし, 円をドルに両替するときのレートは, dollar+1.0 とする. (例えば, 1ドル110円のとき, 円をドルに両替すると1ドル111円で計算される.)
円の金額を受け取り, それをユーロに両替したとき何ユーロになるかを返す関数 double yen2euro(double) を作成せよ. ただし, 円をユーロに両替するときのレートは, euro+1.0 とする.
ドルの金額を受け取り, それを円に両替したとき何円になるかを返す関数 double dollar2yen(double) を作成せよ. ただし, ドルを円に両替するときのレートは, dollar-1.0 とする.
ユーロの金額を受け取り, それを円に両替したとき何円になるかを返す関数 double euro2yen(double) を作成せよ. ただし, ユーロを円に両替するときのレートは, euro-1.0 とする.
今日のドルのレート (dl) とユーロのレート (er) を受け取り, 次のように両替の金額の例を表示する関数 void kawase_example(double dl, double er) を作成せよ.
dollar に dl を, euro に er を代入する.
"今日のレートは 1 ドル xxx.xx 円, 1 ユーロ xxx.xx 円です." と表示する.
10,000円をドルに両替するといくらになるかを yen2dollar を用いて計算し, "10000 円をドルに両替すると xxx.xx ドルになります." 等と表示する.
同様に 10,000円をユーロに両替した結果を表示する.
100 ドルを円に両替した結果を表示する.
100 ユーロを円に両替した結果を表示する.
100 ユーロを円に両替し, それをドルに両替した結果を表示する.
同様に, 100 ドルを円を経由してユーロに両替した結果を表示する.
main 関数から
kawase_example(112.0, 135.0);
kawase_example(114.5, 139.5);
を呼び出すようにせよ
問題5:
2 次元座標上に k 個(k>0)の点 p0,...,pk-1 が与えられているものとする.キーボードから新しい点のデータ data が入力されたとき, p0,...,pk-1 の中で data との距離がもっとも近いものを求め,その点の識別番号(p0,...,pk-1)とそのときの距離を表示するプログラムを作成せよ.ただし,data からの距離が等しい点が複数ある場合はその中のいずれか一つの識別番号が求められればよいものとする.
問題6:
整数 a, b を入力とし,その最大公約数を計算して出力する関数 int gcd( int a, int b) を [リスト5.17]を参考にして定義せよ.これを利用して,main 関数内で互いに素な(最大公約数が1である)自然数の組 (x, y)を列挙して表示させるプログラムを作成せよ.ただし,x は10以上17未満の整数, y は30以上36以下の整数とする.
問題7:
文字列 s 中の数字の個数を返す関数 int str_num_count(char s[/url]) を作成せよ
問題8:
下のように初期化した文字列 sentence と, キーボードから入力した文字列 str に対し, sentence が str で始まっているかどうか (str が sentence の先頭から一致するかどうか) を判定して表示するプログラムを作成せよ. sentence の方が str より長いと仮定してよい.
char sentence[/url] = "This is a pen. That is an apple.";