関数を作ってみる課題の提出物

C言語

課題:数値以外の文字にも対応させよ!

入力した数値に対応させたデジタルフォントを

表示するプログラム。

これを改良して数値以外のも文字にも対応させる

課題を出した。

2人提出があったよ。

元のプログラム

/*
	xFont2.c : デジタルフォント
				xFont1.cを改良:複数文字入力に対応させた

	Created by dianxnao.com on 2018/10/16.
	Copyright 2018 Shuichi Takeda, All rights reserved.
*/
#include <stdio.h>

void showNumber(int);	/* 関数定義:指定した文字のデジタルフォントを表示する */

int main(void)
{
	int i, n;
	char moji[256];
	
	printf("数値をいれてね: ");
	scanf("%s", moji);
	
	/* 入力した文字数分ドット絵を表示する */
	for(i=0; moji[i] != '\0'; i++){
		n = moji[i] - '0';	/* 文字を数値化する */
		showNumber(n);	/* 数値のドット絵を表示する */
	}
	
	return 0;
}

/* 関数:指定した文字のデジタルフォントを表示する */
void showNumber(int n)
{
	printf("\n");
	
	switch(n){
		case 0:
			printf("■■■\n");
			printf("■ ■\n");
			printf("■ ■\n");
			printf("■ ■\n");
			printf("■■■\n");
			break;
		case 1:
			printf(" ■ \n");
			printf("■■ \n");
			printf(" ■ \n");
			printf(" ■ \n");
			printf("■■■\n");
			break;
		case 2:
			printf("■■■\n");
			printf("  ■\n");
			printf("■■■\n");
			printf("■  \n");
			printf("■■■\n");
			break;
		case 3:
			printf("■■■\n");
			printf("  ■\n");
			printf(" ■■\n");
			printf("  ■\n");
			printf("■■■\n");
			break;
		case 4:
			printf("■ ■\n");
			printf("■ ■\n");
			printf("■■■\n");
			printf("  ■\n");
			printf("  ■\n");
			break;
		case 5:
			printf("■■■\n");
			printf("■  \n");
			printf("■■■\n");
			printf("  ■\n");
			printf("■■■\n");
			break;
		case 6:
			printf("■■■\n");
			printf("■  \n");
			printf("■■■\n");
			printf("■ ■\n");
			printf("■■■\n");
			break;
		case 7:
			printf("■■■\n");
			printf("■ ■\n");
			printf("  ■\n");
			printf("  ■\n");
			printf("  ■\n");
			break;
		case 8:
			printf("■■■\n");
			printf("■ ■\n");
			printf("■■■\n");
			printf("■ ■\n");
			printf("■■■\n");
			break;
		case 9:
			printf("■■■\n");
			printf("■ ■\n");
			printf("■■■\n");
			printf("  ■\n");
			printf("■■■\n");
			break;
		default:	/* 0 ~ 9以外の文字が入力された場合の表示 */
			printf("   \n");
			printf("   \n");
			printf(" ■ \n");
			printf("   \n");
			printf("   \n");
	}
}

ishiFont.c

/*
    xFont1.c : デジタルフォント
                このプログラムを関数化してみる
                  (英字版に改良してみる)
*/
#include <stdio.h>

void showNumber(int);
void font_A(void);
void font_B(void);
void font_C(void);
void font_D(void);
void font_E(void);
void font_F(void);
void font_G(void);
void font_H(void);
void font_I(void);
void font_J(void);
void font_K(void);
void font_L(void);
void font_M(void);
void font_N(void);
void font_O(void);
void font_P(void);
void font_Q(void);
void font_R(void);
void font_S(void);
void font_T(void);
void font_U(void);
void font_V(void);
void font_W(void);
void font_X(void);
void font_Y(void);
void font_Z(void);
void font_error(void);

 
int main(void)
{
    int i, n;
    char moji[256];
     
    printf("英字をいれてね: ");
    scanf("%s", &moji);
     
    for(i=0; moji[i] != '\0'; i++){
		n = moji[i] - 'A';    /* 文字を数値化する */
    	showNumber(n);	/* 数値のドット絵を表示する */
    }

	return 0;
}

/* Aを表示 */
void font_A(void){
    printf(" ■■ \n");
    printf("■  ■\n");
    printf("■■■■\n");
    printf("■  ■\n");
    printf("■  ■\n");
}
 
/* Bを表示 */
void font_B(void){
    printf("■■■ \n");
    printf("■  ■\n");
    printf("■■■ \n");
    printf("■  ■\n");
    printf("■■■ \n");
}
 
/* Cを表示 */
void font_C(void){
    printf(" ■■ \n");
    printf("■  ■\n");
    printf("■   \n");
    printf("■  ■\n");
    printf(" ■■ \n");
}
 
/* Dを表示 */
void font_D(void){
    printf("■■■ \n");
    printf("■  ■\n");
    printf("■  ■\n");
    printf("■  ■\n");
    printf("■■■ \n");
}
 
/* Eを表示 */
void font_E(void){
    printf("■■■■\n");
    printf("■   \n");
    printf("■■■ \n");
    printf("■   \n");
    printf("■■■■\n");
}
 
/* Fを表示 */
void font_F(void){
    printf("■■■■\n");
    printf("■   \n");
    printf("■■■ \n");
    printf("■   \n");
    printf("■   \n");
}
 
/* Gを表示 */
void font_G(void){
    printf(" ■■ \n");
    printf("■   \n");
    printf("■ ■■\n");
    printf("■  ■\n");
    printf(" ■■ \n");
}
 
/* Hを表示 */
void font_H(void){
    printf("■  ■\n");
    printf("■  ■\n");
    printf("■■■■\n");
    printf("■  ■\n");
    printf("■  ■\n");
}

/* Iを表示 */
void font_I(void){
    printf("■■■ \n");
    printf(" ■  \n");
    printf(" ■  \n");
    printf(" ■  \n");
    printf("■■■ \n");
}
 
/* Jを表示 */
void font_J(void){
    printf("■■■ \n");
    printf(" ■  \n");
    printf(" ■  \n");
    printf(" ■ ■\n");
    printf("  ■ \n");
}

/* Kを表示 */
void font_K(void){
    printf("■  ■\n");
    printf("■ ■ \n");
    printf("■■  \n");
    printf("■ ■ \n");
    printf("■  ■\n");
}

/* Lを表示 */
void font_L(void){
    printf("■   \n");
    printf("■   \n");
    printf("■   \n");
    printf("■   \n");
    printf("■■■■\n");
}

/* Mを表示 */
void font_M(void){
    printf("■   ■\n");
    printf("■■ ■■\n");
    printf("■ ■ ■\n");
    printf("■ ■ ■\n");
    printf("■   ■\n");
}

/* Nを表示 */
void font_N(void){
    printf("■   ■\n");
    printf("■■  ■\n");
    printf("■ ■ ■\n");
    printf("■  ■■\n");
    printf("■   ■\n");
}

/* Oを表示 */
void font_O(void){
    printf(" ■■ \n");
    printf("■  ■\n");
    printf("■  ■\n");
    printf("■  ■\n");
    printf(" ■■ \n");
}

/* Pを表示 */
void font_P(void){
    printf("■■■ \n");
    printf("■  ■\n");
    printf("■■■ \n");
    printf("■   \n");
    printf("■   \n");
}

/* Qを表示 */
void font_Q(void){
    printf(" ■■  \n");
    printf("■  ■ \n");
    printf("■  ■ \n");
    printf("■ ■■ \n");
    printf(" ■■■■\n");
}

/* Rを表示 */
void font_R(void){
    printf("■■■ \n");
    printf("■  ■\n");
    printf("■■■ \n");
    printf("■ ■ \n");
    printf("■  ■\n");
}

 /* Sを表示 */
void font_S(void){
    printf(" ■■■\n");
    printf("■   \n");
    printf(" ■■ \n");
    printf("   ■\n");
    printf("■■■ \n");
}

 /* Tを表示 */
void font_T(void){
    printf("■■■■■\n");
    printf("  ■  \n");
    printf("  ■  \n");
    printf("  ■  \n");
    printf("  ■  \n");
}

 /* Uを表示 */
void font_U(void){
    printf("■  ■\n");
    printf("■  ■\n");
    printf("■  ■\n");
    printf("■  ■\n");
    printf(" ■■ \n");
}

 /* Vを表示 */
void font_V(void){
    printf("■   ■\n");
    printf("■   ■\n");
    printf(" ■ ■ \n");
    printf(" ■ ■ \n");
    printf("  ■  \n");
}

 /* Wを表示 */
void font_W(void){
    printf("■   ■\n");
    printf("■   ■\n");
    printf("■ ■ ■\n");
    printf("■ ■ ■\n");
    printf(" ■ ■ \n");
}

 /* Xを表示 */
void font_X(void){
    printf("■  ■\n");
    printf("■  ■\n");
    printf(" ■■ \n");
    printf("■  ■\n");
    printf("■  ■\n");
}

 /* Yを表示 */
void font_Y(void){
    printf("■   ■\n");
    printf(" ■ ■ \n");
    printf("  ■  \n");
    printf("  ■  \n");
    printf("  ■  \n");
}

 /* Zを表示 */
void font_Z(void){
    printf("■■■■■\n");
    printf("   ■ \n");
    printf("  ■  \n");
    printf(" ■   \n");
    printf("■■■■■\n");
}

/* A~Z以外が入力されたときの表示 */
void font_error(void){
    printf("   \n");
    printf("   \n");
    printf(" ■ \n");
    printf("   \n");
    printf("   \n");
}


/* 数値のドット絵を表示する関数 */
void showNumber(int n)
{
	printf("\n");
	     
    switch(n){
        case 0:
			font_A(); break;
        case 1:
			font_B(); break;
        case 2:
			font_C(); break;
        case 3:
			font_D(); break;
        case 4:
			font_E(); break;
        case 5:
			font_F(); break;
        case 6:
			font_G(); break;
		case 7:
			font_H(); break;
		case 8:
			font_I(); break;
		case 9:
			font_J(); break;
		case 10:
			font_K(); break;
		case 11:
			font_L(); break;
		case 12:
			font_M(); break;
		case 13:
			font_N(); break;
		case 14:
			font_O(); break;
		case 15:
			font_P(); break;
		case 16:
			font_Q(); break;
		case 17:
			font_R(); break;
		case 18:
			font_S(); break;
		case 19:
			font_T(); break;
		case 20:
			font_U(); break;
		case 21:
			font_V(); break;
		case 22:
			font_W(); break;
		case 23:
			font_X(); break;
		case 24:
			font_Y(); break;
		case 25:
			font_Z(); break;
        default:    /* A ~ Z以外の文字が入力された場合の表示 */
			font_error(); break;
    }
 
}

kaneFont.c

/*
    xFont4.c : デジタルフォント
             
    Created by dianxnao.com on 2018/10/16.
*/
#include <stdio.h>
#include <ctype.h>
 
void showNumber(int);
void showAlpha(int);

void font_0(void);
void font_1(void);
void font_2(void);
void font_3(void);
void font_4(void);
void font_5(void);
void font_6(void);
void font_7(void);
void font_8(void);
void font_9(void);

void font_A(void);
void font_B(void);
void font_C(void);
void font_D(void);
void font_E(void);
void font_F(void);
void font_G(void);
void font_H(void);
void font_I(void);
void font_J(void);
void font_K(void);
void font_L(void);
void font_M(void);
void font_N(void);
void font_O(void);
void font_P(void);
void font_Q(void);
void font_R(void);
void font_S(void);
void font_T(void);
void font_U(void);
void font_V(void);
void font_W(void);
void font_X(void);
void font_Y(void);
void font_Z(void);

void font_error(void);
 
int main(void)
{
    int i, n;
    char moji[256];
     
    printf("数値か文字をいれてね: ");
    scanf("%s", moji);
     
    /* 入力した文字数分ドット絵を表示する */
    for(i=0; moji[i] != '\0'; i++){
		if( isdigit(moji[i]) ){
        	n = moji[i] - '0';    /* 文字を数値化する */
        	showNumber(n);    /* 数値のドット絵を表示する */
        }
        else if( isalpha(moji[i]) ){
			if( islower(moji[i] )){
				n = moji[i] - 87;	/* 文字を数値化する */
				showAlpha(n);	/* 数値のドット絵を表示する */
			}
			else if( isupper(moji[i]) ){
				n = moji[i] - 55;	/* 文字を数値化する */
				showAlpha(n);	/* 数値のドット絵を表示する */
			}
		}
		else{
			font_error();
		}
    }
     
    return 0;
}
 
/* 0を表示 */
void font_0(void){
    printf("■■■\n");
    printf("■ ■\n");
    printf("■ ■\n");
    printf("■ ■\n");
    printf("■■■\n");
}
 
/* 1を表示 */
void font_1(void){
    printf(" ■ \n");
    printf("■■ \n");
    printf(" ■ \n");
    printf(" ■ \n");
    printf("■■■\n");
}
 
/* 2を表示 */
void font_2(void){
    printf("■■■\n");
    printf("  ■\n");
    printf("■■■\n");
    printf("■  \n");
    printf("■■■\n");
}
 
/* 3を表示 */
void font_3(void){
    printf("■■■\n");
    printf("  ■\n");
    printf(" ■■\n");
    printf("  ■\n");
    printf("■■■\n");
}
 
/* 4を表示 */
void font_4(void){
    printf("■ ■\n");
    printf("■ ■\n");
    printf("■■■\n");
    printf("  ■\n");
    printf("  ■\n");
}
 
/* 5を表示 */
void font_5(void){
    printf("■■■\n");
    printf("■  \n");
    printf("■■■\n");
    printf("  ■\n");
    printf("■■■\n");
}
 
/* 6を表示 */
void font_6(void){
    printf("■■■\n");
    printf("■  \n");
    printf("■■■\n");
    printf("■ ■\n");
    printf("■■■\n");
}
 
/* 7を表示 */
void font_7(void){
    printf("■■■\n");
    printf("■ ■\n");
    printf("  ■\n");
    printf("  ■\n");
    printf("  ■\n");
}
 
/* 8を表示 */
void font_8(void){
    printf("■■■\n");
    printf("■ ■\n");
    printf("■■■\n");
    printf("■ ■\n");
    printf("■■■\n");
}
 
/* 9を表示 */
void font_9(void){
    printf("■■■\n");
    printf("■ ■\n");
    printf("■■■\n");
    printf("  ■\n");
    printf("■■■\n");
}

/* アルファベットを表示 */
void font_A(void){
	printf("  ■  \n");
	printf(" ■ ■ \n");
	printf(" ■■■ \n");
	printf(" ■ ■ \n");
	printf(" ■ ■ \n");
}

void font_B(void){
	printf("■■■  \n");
	printf("■  ■ \n");
	printf("■■■  \n");
	printf("■  ■ \n");
	printf("■■■  \n");
}

void font_C(void){
	printf("  ■■ \n");
	printf(" ■  ■\n");
	printf(" ■   \n");
	printf(" ■  ■\n");
	printf("  ■■ \n");
}

void font_D(void){
	printf(" ■■  \n");
	printf(" ■ ■ \n");
	printf(" ■ ■ \n");
	printf(" ■ ■ \n");
	printf(" ■■  \n");
}

void font_E(void){
	printf(" ■■■ \n");
	printf(" ■   \n");
	printf(" ■■■ \n");
	printf(" ■   \n");
	printf(" ■■■ \n");
}

void font_F(void){
	printf(" ■■■ \n");
	printf(" ■   \n");
	printf(" ■■■ \n");
	printf(" ■   \n");
	printf(" ■   \n");
}

void font_G(void){
	printf(" ■■  \n");
	printf("■  ■ \n");
	printf("■    \n");
	printf("■  ■■\n");
	printf(" ■■ ■\n");
}

void font_H(void){
	printf("■   ■\n");
	printf("■   ■\n");
	printf("■■■■■\n");
	printf("■   ■\n");
	printf("■   ■\n");
}

void font_I(void){
	printf(" ■■■ \n");
	printf("  ■  \n");
	printf("  ■  \n");
	printf("  ■  \n");
	printf(" ■■■ \n");
}

void font_J(void){
	printf(" ■■■ \n");
	printf("  ■  \n");
	printf("  ■  \n");
	printf("■ ■  \n");
	printf(" ■■  \n");
}

void font_K(void){
	printf(" ■ ■ \n");
	printf(" ■■  \n");
	printf(" ■■  \n");
	printf(" ■ ■ \n");
	printf(" ■  ■\n");
}

void font_L(void){
	printf(" ■   \n");
	printf(" ■   \n");
	printf(" ■   \n");
	printf(" ■   \n");
	printf(" ■■■■\n");
}

void font_M(void){
	printf("■■ ■■\n");
	printf("■■ ■■\n");
	printf("■ ■ ■\n");
	printf("■ ■ ■\n");
	printf("■   ■\n");
}

void font_N(void){
	printf("■■  ■\n");
	printf("■■  ■\n");
	printf("■ ■ ■\n");
	printf("■  ■■\n");
	printf("■  ■■\n");
}

void font_O(void){
	printf(" ■■■ \n");
	printf("■   ■\n");
	printf("■   ■\n");
	printf("■   ■\n");
	printf(" ■■■ \n");
}

void font_P(void){
	printf(" ■■■ \n");
	printf(" ■  ■\n");
	printf(" ■■■ \n");
	printf(" ■   \n");
	printf(" ■   \n");
}

void font_Q(void){
	printf(" ■■■ \n");
	printf("■   ■\n");
	printf("■ ■ ■\n");
	printf("■  ■ \n");
	printf(" ■■ ■\n");
}

void font_R(void){
	printf("■■■  \n");
	printf("■  ■ \n");
	printf("■■■  \n");
	printf("■ ■  \n");
	printf("■  ■ \n");
}

void font_S(void){
	printf(" ■■  \n");
	printf("■  ■ \n");
	printf(" ■   \n");
	printf("■ ■■ \n");
	printf(" ■■  \n");
}

void font_T(void){
	printf("■■■■■\n");
	printf("  ■  \n");
	printf("  ■  \n");
	printf("  ■  \n");
	printf("  ■  \n");
}

void font_U(void){
	printf("■  ■ \n");
	printf("■  ■ \n");
	printf("■  ■ \n");
	printf("■  ■ \n");
	printf(" ■■  \n");
}

void font_V(void){
	printf("■   ■\n");
	printf("■   ■\n");
	printf(" ■ ■ \n");
	printf(" ■ ■ \n");
	printf("  ■  \n");
}

void font_W(void){
	printf("■ ■ ■\n");
	printf("■ ■ ■\n");
	printf("■ ■ ■\n");
	printf(" ■ ■ \n");
	printf(" ■ ■ \n");
}

void font_X(void){
	printf("■   ■\n");
	printf(" ■ ■ \n");
	printf("  ■  \n");
	printf(" ■ ■ \n");
	printf("■   ■\n");
}

void font_Y(void){
	printf("■   ■\n");
	printf(" ■ ■ \n");
	printf("  ■  \n");
	printf("  ■  \n");
	printf("  ■  \n");
}

void font_Z(void){
	printf("■■■■■\n");
	printf("   ■ \n");
	printf("  ■  \n");
	printf(" ■   \n");
	printf("■■■■■\n");
}

void font_error(void){
    printf("   \n");
    printf("   \n");
    printf(" ■ \n");
    printf("   \n");
    printf("   \n");
}
 
/* (数字のとき)数値のドット絵を表示する関数 */
void showNumber(int n){
    printf("\n");
     
    switch(n){
        case 0:
            font_0(); break;
        case 1:
            font_1(); break;
        case 2:
            font_2(); break;
        case 3:
            font_3(); break;
        case 4:
            font_4(); break;
        case 5:
            font_5(); break;
        case 6:
            font_6(); break;
        case 7:
            font_7(); break;
        case 8:
            font_8(); break;
        case 9:
            font_9(); break;
    }
}

/* (アルファベットのとき)数値のドット絵を表示する関数 */
void showAlpha(int m){
	printf("\n");
	
	switch(m){
		case 10:
			font_A(); break;
		case 11:
			font_B(); break;
		case 12:
			font_C(); break;
		case 13:
			font_D(); break;
		case 14:
			font_E(); break;
		case 15:
			font_F(); break;
		case 16:
			font_G(); break;
		case 17:
			font_H(); break;
		case 18:
			font_I(); break;
		case 19:
			font_J(); break;
		case 20:
			font_K(); break;
		case 21:
			font_L(); break;
		case 22:
			font_M(); break;
		case 23:
			font_N(); break;
		case 24:
			font_O(); break;
		case 25:
			font_P(); break;
		case 26:
			font_Q(); break;
		case 27:
			font_R(); break;
		case 28:
			font_S(); break;
		case 29:
			font_T(); break;
		case 30:
			font_U(); break;
		case 31:
			font_V(); break;
		case 32:
			font_W(); break;
		case 33:
			font_X(); break;
		case 34:
			font_Y(); break;
		case 35:
			font_Z(); break;
	}
}

コメント