RIGHT:[[ProgI]]
*Report#5(文字コード変換) [#v40cdf88]

+ライブラリ関数 islower(), toupper()を使い、下記のtrlowupプログラムを書き換えて、新規にtrupperプログラムを作成せよ。
+trupperプログラムを書き換えて、rot13暗号化プログラム、rot13復号化プログラムを作成せよ。rot13とは、次のようにアルファベットを13文字ずらす暗号化の方法である。
     A --> N     a --> n
     B --> O     b --> o
     C --> P     c --> p
     ....        ....
     Z --> M     z --> m
+オリジナルの暗号化・復号化プログラムを作成せよ。


**サンプルプログラムと実行例 [#e394f124]
 pw010% cat trlowup.c
*Report#5 [#zd0df279]
 次のプログラムは外部変数に定義され、初期化された10個のint型データの平均を求め、各データと平均との差を表示するプログラムである。&br;
 このプログラムを以下のような関数の翻訳単位にファイルを分け、同様な動作をするプログラムを作成せよ。
|型|関数名|引数・パラメータ|機能|戻り値|
|float|get_ave|なし|平均値を求め表示|平均値|
|void|print_data|配列の添字、平均値|1つのデータと平均値との差を求め表示|なし|
+プログラム
 /*
   Program  : trlowup.c
   Comments : translate lower case characters into upper case ones.
   program   : average.c
   comments  : 結合(linkage)を用いて、平均・差を求める。
 */
 
 #include <stdio.h>
 
 char trlowup(char);
 int score[10]={3,5,8,9,10,6,7,9,8,3};
 
 int main(){
   char c;
   int   i;
   float ave = 0.0, dif;
 
   while( (c=getchar()) != EOF )
     putchar( trlowup(c) );
   for(i=0; i<10; i++) ave = ave + (float)score[i];
   ave = ave / 10.0;
   printf("ave = %3.1f\n",ave);
   
   for(i=0; i<10; i++){
     dif = score[i] - ave;
     printf("score[%02d]=%2d  Difference from average = %4.1f\n",i,score[i],dif);
   }
   
   return(0);
 }
 
 char trlowup( char c ){
   if ( 'a' <= c && c <= 'z' )
      return( c-'a'+'A' );
   else
      return( c );
 }
 
 pw010% cat data1
 abcdEFGhijKLmNoPqRstuVwXyZ
 
 pw010% cc trlowup.c -o trlowup
 
 pw010% trlowup
 abcDEF
 ABCDEF
 xyzXyYyZz
 XYZXYYYZZ
 ^C
 pw010%
 
 pw010% trlowup < data1
 ABCDEFGHIJKLMNOPQRSTUVWXYZ
 
 pw010%
+実行結果
 ave = 6.8
 score[00]= 3  Difference from average = -3.8
 score[01]= 5  Difference from average = -1.8
 score[02]= 8  Difference from average =  1.2
 score[03]= 9  Difference from average =  2.2
 score[04]=10  Difference from average =  3.2
 score[05]= 6  Difference from average = -0.8
 score[06]= 7  Difference from average =  0.2
 score[07]= 9  Difference from average =  2.2
 score[08]= 8  Difference from average =  1.2
 score[09]= 3  Difference from average = -3.8

**考察事項 [#mbd1f05d]
-変数のスコープと記憶域クラスについて考察せよ。
-コンパイルは先週のmakeコマンドを用い、Makefileとともに実行可能ファイルが作成されるまでの実行結果を示すこと。
-同様な動作をするオリジナルのプログラムを作成してまとめてもよい。例)平均からの差でA,B,C,F等の評価の表示等
----
CENTER:[[Report#4>ProgI/Report-No.4]]<==>[[Report#6>ProgI/Report-No.6]]



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