• 締切済み

つぎのプログラミングがわかりません。

つぎのプログラミングがわかりません。 (1)点数n(1~100)を引数にしたとき、その評価を返す関数とそれの使用例のプログラム。 但し、 0点~59点:不可 60点~69点:可 70点~79点:良 80点~89点:優 90点~100点:秀 とする。 関数名と引数は、Eval$(n)とする。 (2) 自然数nと素数pを入力したとき、nがpで何回割れるかと、割った商を返すプログラム。 それの使用例のプログラム。 但し、サブプログラム名と引数は、Getpexp(n,p,ep,q)とし、nに対して、pは素数、epはnをpで割れる回数、qはnをpで割れるだけ割った時の商を返す。 たとえば、Getpexp(693,3,ep,q)を呼ぶと、ep=2,q=77と返す。 よろしくお願いします。

みんなの回答

  • Gab_km
  • ベストアンサー率40% (20/50)
回答No.2

面白そうなので、指定言語もないことですし、Pythonで書いてみました。 (1)条件の通り、nは1~100しか入ってこないと仮定します。 def Eval$(n):   if n < 60:     return '不可'   elif n < 70:     return '可'   elif n < 80:     return '良'   elif n < 90:     return '優'   else:     return '秀' (2)引数を参照渡しするのがちょっと手間で、若干題意を満たしていないかもしれません。 def Getpexp(n,p,ep,q):   i,a,r = 0,1,0   while True:     a = n // p     r = n % p     if r != 0:       break     i, n = i + 1, a     if n = 1:       break   ep[0],q[0] = i,n 違っていたら、ご指摘くださいf^_^; もしこれが宿題だったら、身になると思うので自力で頑張ってみましょう。

回答No.1

指定言語とか書かれてないから、C++/CLIで作ってみました。 他の言語の場合は適当に翻訳してください。 (1) #include "stdafx.h" using namespace System; String^ Eval$(int n) { String^ str; switch (n / 10) { case 10: case 9: str = L"秀"; break; case 8: str = L"優"; break; case 7: str = L"良"; break; case 6: str = L"可"; break; default: str = L"不可"; } return(str); } int main(array<System::String ^> ^args) { Console::WriteLine(L"点数?"); String^ str_tensuu = Console::ReadLine(); String^ str_seiseki = Eval$(Int32::Parse(str_tensuu)); Console::WriteLine(str_seiseki); return 0; } (2) #include "stdafx.h" using namespace System; void Getpexp(int n, int p, int& ep, int& q) { int waru = n; int i; for (i = 0; ; i++) { if (waru % p != 0) { break; } waru /= p; } ep = i; q = waru; } int main(array<System::String ^> ^args) { Console::WriteLine(L"自然数?"); String^ str_shizensuu = Console::ReadLine(); Console::WriteLine(L"素数?"); String^ str_sosuu = Console::ReadLine(); int kaisuu, amari; Getpexp(Int32::Parse(str_shizensuu), Int32::Parse(str_sosuu), kaisuu, amari); String^ str_kekka = String::Format("割れた回数:{0:d}、割った残り:{1:d}", kaisuu, amari); Console::WriteLine(str_kekka); return 0; }

関連するQ&A