Javaで花文字を作って回転させてみた

Java自作サンプルに戻る
これからプログラミングを始める方へ
プログラミングと資格
息抜きに、写真で癒し(=^・^=)

基本情報技術者試験では、花文字を使った問題が
出題されました。

平成27年度秋 問6

*で作った文字を回転させる問題です。
この問題の考え方を使って、
90度、180度、270度に回転させるプログラミングを
Javaで作ってみました。

基本の形が「↑」で、それを90度回転で「→」、
180度回転で「↓」、270度回転で「←」と表示します。

5マス×5マスのドットをキャンパスにして、
それぞれの座標をi,jで表して、
配列の要素の値を0と1で表し、
「1」だったら「@」で、「0」だったら「空白」を使って、
ドット絵にしています。

こちらがフローチャートです。

では、プログラムを実行して見ます。
まず、基本の矢印が出て来ます。

90度回転させます。
回転前と、回転後の座標の関係は、
[i][j]が、[4-j][i]になります。

180度回転させます。
回転前と、回転後の座標の関係は、
[i][j]が、[4-i][j]になります。

270度回転させます。
回転前と、回転後の座標の関係は、
[i][j]が、[j][i]になります。

こちらがプログラムになります。

import java.util.Scanner;
public class HanaMoji{
public static void main(String[] args){

int i,j,angle;
int[][] flower={{0,0,1,0,0},
{0,1,1,1,0},
{1,0,1,0,1},
{0,0,1,0,0},
{0,0,1,0,0}};

//初期状態の花文字
for(i=0;i<5;i++){ for(j=0;j<5;j++){ if(flower[i][j]==1){ System.out.print(“@”); } else{ System.out.print(“ ”); } } System.out.println(“”); } //回転する角度を選ぶ System.out.println(“何度回転させますか?—–> 0:90度,1:180度,2:270度”);
Scanner scn= new Scanner(System.in);
angle=scn.nextInt();

//90度回転
if(angle==0){
System.out.println(“90度回転しました”);
for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(flower[4-j][i]==1){
System.out.print(“@”);
}
else{
System.out.print(“ ”);
}
}
System.out.println(“”);
}
}

//180度回転
if(angle==1){
System.out.println(“180度回転しました”);
for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(flower[4-i][j]==1){
System.out.print(“@”);
}
else{
System.out.print(“ ”);
}
}
System.out.println(“”);
}
}

//270度回転
if(angle==2){
System.out.println(“270度回転しました”);
for(i=0;i<5;i++){
for(j=0;j<5;j++){
if(flower[j][i]==1){
System.out.print(“@”);
}
else{
System.out.print(“ ”);
}
}
System.out.println(“”);
}
}
}
}

ここまで読んで下さって、誠にありがとうございました。
もしも、この記事がちょっとでもお役に立てていましたら、
お手数ですが、あなたのSNSやブログで広めて頂けたら嬉しいです。

このプログラムを作るにあたって、勉強になった本を紹介します。

Java自作サンプルに戻る
これからプログラミングを始める方へ
プログラミングと資格
息抜きに、写真で癒し(=^・^=)

投稿者: nekosiestr

プログラミング学習中のロスジェネ(就職氷河期世代)の発達障害者です。 宜しくお願いします。 趣味で写真を撮っています。 プログラミングは、GAS/HTML/CSS/JavaScript/jQuery/PHP、 発達障害は、自閉症スペクトラムASD/ADHD、その他双極性障害やHSP(5人に1人の繊細さん)などの生きづらさを抱えておりますが、それでも楽しく生きて行きたいです!! 写真は、以前はコンパクトデジカメ、現在は、OLYMPUSミラーレス一眼を使っています。