第10回:これまでの復習(12/2)

情報処理・演習2の授業では,これまでに「文字列」,「ポインタ変数」,「関数」,「ファイル入出力」,「グラフィックス」,「構造体」を扱いました.これで,ほぼC言語の文法はおしまいです.後半は,これまでに習ったことを利用して,実用的なプログラムを作成していきます.

今回は「文字列」,「ポインタ変数」,「関数」,「ファイル入出力」の復習です,内容を完璧に理解しましょう.わからないところがあったら,前回までの授業用ホームページを参照してください.

ちなみに,今回の課題は,昨年度の期末試験の問題(一部改変)です.これが,60分でできれば,「文字列」,「ポインタ変数」,「関数」,「ファイル入出力」は,理解できていると考えられます.


第9回演習の解答例


演習課題

(1)【関数】四角形の幅(整数)と高さ(整数)を渡すと,面積(整数)が戻り値として求まる関数の定義を示せ.

(2)【関数とポインタ】自由落下運動時の加速度(実数)と時間(実数)を渡すと,速度(実数)と移動距離(実数)が求まる関数の定義を示せ.

(3)【文字列,関数とポインタ】英小文字の文字列(文字数は,128文字以下であるが不明)を読み取り,abc順に並べ替えて画面に表示したい.下記のプログラムを完成させなさい.

#include <stdio.h>

/*文字の長さを数える関数*/
 _____ moji_nagasa(_____)	
{
	 ****** 
}

/*文字をabc順に並べる関数*/
 _____ moji_sort(_____)
{
	 ****** 
}

/*メイン関数*/
void main()
{
    int n;
    ______ 

	printf("文字列を入力してください:"); scanf(_____);
	printf("入力された文字列は,%sです.", str);

	n = moji_nagasa(_____);
	printf("文字数は,%dです.", n);
	
	moji_sort(_____);
	printf("並べ替えた文字列は,%sです.", str);
}

(4)【関数とポインタ】30件の数字データ(右クリック-->[対象をファイルに保存] )30data.txtを読み込み,値を大きい順に並び替え,別のファイル(30data_sorted.txt)に出力せよ.

授業終了時までに完成したプログラムをoh-meijiシステムを使って提出すること.
(提出期限を厳守し,提出用の回に提出しないと採点を行わない)