これは何?

初心者用の課題を集めて見ました。言語は問いません。入力出力は特に問いません。キー入力でもファイルでもソースにべた書きでもいいです。答えは誰かが書いてくれます。それまではスレで聞いてください。

課題一覧

ループ練習

Hello World![改行]を5回表示させてください。 print(或いはprintf,cout等)を5回コピーすれば当然可能ですが、ループ構文(for,while等)を利用して、print等は1回の使用にとどめてみてください。

素数

素数判定

入力された整数が素数であるか判定するプログラムを作りなさい。

素数を求める

1からnまでの範囲の整数から素数を見つけてすべて出力しなさい。

ヒント:エラトステネスの篩-wikipedia

うるう年測定

入力された整数がグレゴリオ暦(いつも使ってるやつ)でうるう年であるか判定せよ

閏年-wikipedia

ハノイの塔

与えられたn枚の円盤を用いたハノイの塔を再帰的アルゴリズムを用いて解くプログラムを作成せよ。出力は円盤の移動の記録及び手数とする。

ハノイの塔-wikipedia

行列関係

転置行列

入力された行列の転置行列を求めよ

転置行列-wikipedia

線形合同法

線形合同法を用いて0<=x<1の範囲の乱数を発生させるプログラムを作成せよ。M=65536(=2^16),A=997,B=1,Xの初期値を12345として100個の乱数を発生させ,その値と平均を出力しなさい。

線形合同法-wikipedia

※実際のプログラムにこの乱数を使ってはいけません。あくまで初心者用課題です。実際はメルセンヌツイスタでも使いましょう。

数当てゲーム

これは答えの数を探すゲームです。適当な数を入れると正解よりも大きいか小さいか,または正解であるか出力されます。それを繰り返すことで答えを探すことができます。このゲームを作成しなさい。答えの数は乱数を使って毎回別の答えを用意しましょう。

数当てゲーム その2(Hit&Blow)

これはn桁の数を探すゲームです。適当な数を入れると桁も数字もあっていれば「Hit」としその個数が、数字はあっているが桁が異なっていれば「Blow」としてその個数が出力されます。それを繰り返すことで答えを探すことができます。このゲームを作成しなさい。答えの数は乱数を使って毎回別の答えを用意しましょう。
具体的には
正解が1234だとして
4321 と入力 4blow
1245 と入力 2hit 1blow
なおルール上4422などのゾロ目の正解は出ないようにしましょう。
また、先頭が0だとn桁の数字じゃなくなるのでせっかくなので0は発生させないようにしましょう。

Fizz Buzz

1〜100までの数字を表示するプログラムを作成せよ。 ただし、3で割り切れる場合は「Fizz」、5で割り切れる場合は「Buzz」、3と5の両方で割り切れる場合は「FizzBuzz」を数字の代わりに表示すること。

FizzBuzz-wikipedia

カレンダー出力

年と月を入力してカレンダーを出力する。 画面フォーマットはCUI,GUI,WEB等自由とする

ポインタを使った構造体の加工

配列いじり

配列の先頭はそのままに、先頭以外の要素をすべて0に置き換える。 例:

Caesar暗号解読

Caesar暗号を解読するプログラムを作り,暗号を解読してください。 暗号鍵(何文字ずらすか)は不明ですが、文字列に"person"が含まれることがわかっています。ご利用ください。 Caesar暗号についてはシーザー暗号-wikipediaを参照してください。

フィボナッチ数列

フィボナッチ数列とは下記の数列のように今の項と前項の和が次の項となるような数列です。

1 1 2 3 5 8 13 21 34 55 89 144

課題1 フィボナッチ数列の第n項を求めるプログラムを再帰呼出しを用いて書いて下さい。ただしnはコマンドライン引数で得るものとします。

課題2 フィボナッチ数列の第n項を求めるプログラムを再帰呼出しを用いずに書いて下さい。ただしnはコマンドライン引数で得るものとします。

課題3 再帰呼出しを用いた場合と用いない場合、どちらがどのような点で優れているかを考えて下さい。

英単語しりとりゲーム

課題:しりとり

ファイル読み込んで標準出力に出す

課題:ファイル入力標準出力

Base64

入力されたデータをエンコード/デコードするプログラムを作成せよ。 データの入出力方法は自由とする。

Base64-wikipedia

累乗

aのn乗を返すような2引数の関数(メソッド)を下記の方法で作って下さい。ただしa, nは正整数とします。(0や負の数に関しては考慮しなくても結構です。)
課題1. aをn回かけるループ文を使って作って下さい。

課題2. 課題1で作った物より高速なものを作って下さい。(計算時間のオーダーがlg(n)となるように)。
計算時間のオーダーがlg(n)というのは平たく言えばnに対して計算の手間(例えばループ回数)がおおよそlg(n)回ということです。
ここではnが8程度ならば凡そ3回、1024程度ならば凡そ10回の手間で計算できる、というように解釈していただければ構いません。

プログラミング言語/Perl


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS