반응형

  별 그리기

파이썬의 print옵션 중 format과 % 옵션을 사용하여 역삼각형을 그리도록 하겠습니다.

역삼각형을 그리기전 print에 대한 이해와
format, % 문자열 포맷팅에 대해 간단히 이해하고 이 두개를 사용하여 별 그리기를 진행하도록 하겠습니다.

포맷팅이란?

bskyvision.com/820

 

[python] 문자열 포맷팅이란? 3가지 문자열 포맷팅 방법들

문자열 포맷팅(string formatting)은 문자열 속 특정한 위치에 특정한 값을 삽입해 주는 것을 의미합니다. 만약에 문자열 중에 일부가 변할 수 있는 가능성이 있는 경우 문자열 포맷팅을 통해 그 부분

bskyvision.com

1. format옵션의 사용 예

format이란 {}를 이용한 포매팅 방법입니다.

출력에 대해 서식을 지정하고 그 서식에 값을 대입하는 것으로 아래와 같이 사용할 수 있습니다.

print("실행결과: {0}, {1}".format("1번", "2번"))

실행결과: 1번, 2번 

2. %옵션의 사용 예

%옵션은 format옵션과 마찬가지로 문자열 포맷팅 기술입니다.
대입하려는 값의 타입과 길이를 지정할 수 있으며 아래와 같이 사용할 수 있습니다.

print("실행결과: %s, %s"%("1번", "2번"))


실행결과: 1번, 2번

 

3. 두 가지를 혼합하여 print하기

print("실행결과: %{0}s".format(5)%"ab")
실행결과:    ab

format을 통해 값이 들어간 후 %옵션이 실행되기 때문에 위와 같이 사용 가능 

 

  구현

replayCount = 0;
star = "*";
replayCount = int(input("몇 번 반복하시겠습니까? "));

for i in range(0,replayCount,1):
    print("%{0}s".format(replayCount)%star);
    star+="*";
반응형
반응형

자바스크립트란?

html문서에서 html이나 CSS만으로 표현하기 어렵거나 아예 불가능한 작업을 하기 위해 만들어진 언어

스크립트 언어란 메모장 등 간단한 텍스트 편집기 프로그램을 이용해서 쉽고 빠르게 프로그램을 작성 할 수 있다

html문서에 직접 작성하거나 외부 파일에 작성된 후 불러올 수 있다

html에서 작성시 아래처럼 사용

 

<script>

    스크립트 작성 부분

</script>

 

 

기본 문법

변수

- 선언 var 변수명 =초기값

- var 배열명 = new Array();

- 배열명.push(1);

- 배열명[0] = 1;

 

함수

Function add(num1, num2){

return (num1 + num2);

}

Document.write(add(3,4));



출력

<!-- 출력 하기 -->
<html>
	<head>
		<script language = "javascript">
		var firstName = "도현";
		try{
		document.write('내 이름은 ' + lastName + '입니다');
		}catch(ex){
		document.write(ex.message);
		}
		
		</script>
	</head>
	<body>
	</body>
</html>
 
반응형
반응형

파이썬의 출력문은 print를 사용하며 두 개의 옵션을 사용할 수 있습니다.

- sep=" " 

 이 옵션을 이용하게 되면 print문의 출력문들 사이에 해당하는 내용을 넣을 수 있습니다. 기본 값으로는 공백이 들어가 있으며 이를 사용해 원하는 문자를 입력할 수 있습니다.

- end=" "

 이 옵션의 경우 print 문을 이용해 출력을 완료한 뒤의 내용을 수정할 수 있습니다. 기본 값으로는 개행(\n)이 들어가 있으며 이를 사용해 개행을 없애거나 원하는 문자를 입력할 수 있습니다.

 

우선 기존의 print( ) 만 사용하여 출력을 할 경우입니다.

print("1-1칸","1-2칸","1-3칸")
print("2-1칸","2-2칸","2-3칸")

실행결과

 

앞서 말한 것과 같이 print안에 여러 개의 값을 출력할 경우 값들 사이에 공백이 들어가 있으며,

print문이 끝나게 될 경우 개행(\n)이 되는 것을 확인할 수 있습니다.

 

이제 띄어쓰기가 되는 것과 개행을 안되게 하기 위해 sepend를 사용해 보겠습니다.

 

print("1-1칸","1-2칸","1-3칸",end = "")
print("2-1칸","2-2칸","2-3칸",sep = "")

 

실행결과

 

end = "", sep = "" 안에 다른 값을 넣게 되면 해당하는 값이 들어가게 됩니다.

print("1-1칸","1-2칸","1-3칸",end = "**end 입니다** \n")
print("2-1칸","2-2칸","2-3칸",sep = "**sep입니다**")

실행결과

 

반응형
반응형

 

이번 시간에는 동영상 파일을 출력하는것을 알아보겠습니다.

 

필요한 준비물

- test용 mp4 파일

- 시간

 

activity_test.xml 파일에 VideoView 태그를 사용해 비디오가 들어갈 영역을 만들어 주겠습니다.

id를 testVideo로 해서 입력해주세요.

 

app - res안에 raw 폴더를 생성 후 준비물로 챙겨온 test.mp4 파일을 넣어주세요.

 

 

Test.java에 다음과 같이 작성해 주세요.

 

실행 화면입니다.

 

반응형
반응형

 

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxHeight="500dp"
android:maxWidth="500dp"
android:src="@drawable/ic_launcher_foreground"
android:background="@drawable/ic_launcher_background"
/>

 

android:maxHeight: 최대 높이

android:maxWidth: 최대 폭

android:src: 출력할 이미지

android:background: 배경

 

반응형
반응형

6가지의 경우를 가진 별 그리기 예제입니다.

 

1번 경우

****
****
****

 

2번 경우 

*
**
***

 

3번 경우

--*
-**
***

 

4번 경우

--*  
-***
*****

 

5번 경우

 

--*  
-***
*****
-***
--*

 

6번 경우: 숫자를 입력받아 해당하는 층의 마름모 그리기

ex) 13 입력시

------*     
-----***     
----*****    
---*******   
--*********  
-*********** 
*************
-*********** 
--*********  
---*******   
----*****    
-----***     
------

 

 

코드

import java.util.Scanner;

public class StarExam {

	public static final String STAR = "*";

	// star-1번 과제
	void starOne() {
		for (int i = 1; i <= 12; i++) {
			System.out.print(STAR);
			if (i % 4 == 0)
				System.out.println(); // 4개씩 끊어서 출력
		}
	}

	// star-2번 과제
	void starTwo() {
		for (int i = 1; i < 4; i++) {// 행
			for (int j = 0; j < i; j++) { // i행일때 별 개수 i개 입력
				System.out.print(STAR);
			}
			System.out.println();
		}
	}

	// star-3번 과제
	void starThree() {
		int fr = 2;
		for (int i = 1; i < 4; i++) { // 행
			for (int j = 1; j <= 3; j++) {// 열
				if (j <= fr) { // 공백
					System.out.print(" ");
				} else { // 별
					System.out.print(STAR);
				}
			}
			fr--;
			System.out.println();
		}
	}

	// star-4번 과제
	void starFour() {
		int fr = 2, ba = 3;
		for (int i = 1; i <= 3; i++) {// 행
			for (int j = 1; j <= 6; j++) {// 열
				if (j <= fr) {// 공백 삽입
					System.out.print(" ");
				} else if (j > ba) {// 공백 삽입
					System.out.print(" ");
				} else { // 별 삽입
					System.out.print(STAR);
				}
			}
			fr--;
			ba++;
			System.out.println();
		}
	}

	// star-5번 과제
	void starFive() {

		int fr = 3, ba = 3; // 공백이 들어가는 조건 fr앞 공백, ba뒷 공백 조건으로 사용
		for (int i = 1; i <= 5; i++) { // 5번 반복
			for (int j = 1; j <= 5; j++) { // 5열 생성
				if (j < fr) { // 각 열을 fr과 비교해 공백이 들어갈 부분에 공백 삽입, 중간열을 기준으로 앞 공백
					System.out.print(" ");
				} else if (j > ba) { // 각 열을 ba와 비교해 공백 삽입, 중간열을 기준으로 뒷 공백
					System.out.print(" ");
				} else { // 별이 들어갈 곳
					System.out.print(STAR);
				}
			}
			if (i < 3) { // 중간층까지 별 개수를 늘리도록 조건을 증가 및 감소
				fr--;
				ba++;
			} else { // 중간층 이후 별 개수를 줄이도록 조건을 증가 및 감소
				fr++;
				ba--;
			}
			System.out.println();
		}
	}

	// star-6번 과제
	void starSix() {
		Scanner sc = new Scanner(System.in);

		System.out.print("몇층까지 하겠습니까? (홀수만 가능):");
		int re = sc.nextInt(); // 층 입력
		if (re % 2 == 0) {
			System.out.println("홀수를 입력해주세요.");
		} else {
			int fr = re / 2 + 1, ba = re / 2 + 1; // 공백이 들어가는 조건 fr앞 공백, ba뒷 공백 조건으로 사용
			for (int i = 1; i <= re; i++) { // i를 입력받은 re층 만큼 반복
				for (int j = 1; j <= re; j++) { // j는 입력받은 re의 열 만큼 반복
					if (j < fr) { // 앞부분이 공백이 들어가는 조건일 경우 공백 삽입
						System.out.print(" ");
					} else if (j > ba) { // 뒷 부분이 공백이 들어가는 조건일 경우 공백 삽입
						System.out.print(" ");
					} else {
						System.out.print(STAR);
					}
				}
				if (i < re / 2 + 1) { // 중간층까지 별 개수를 늘리도록 조건을 증가 및 감소
					fr--;
					ba++;
				} else { // 중간층 이후 별 개수를 줄이도록 조건을 증가 및 감소
					fr++;
					ba--;
				}
				System.out.println();
			}
		}
	}

	public static void main(String[] args) {
		StarExam starexam;
		starexam = new StarExam(); // static이 아닐 경우 new를 해야한다.
		// 클래스로 받아 오는것들은 static이다

		Scanner sc;
		sc = new Scanner(System.in);
		int num1;
		String replay;
		do {
			System.out.print("1~6 입력");
			num1 = sc.nextInt();

			switch (num1) { // 번호에 따라 case를 나눈다
			case 1:
				starexam.starOne();
				break;

			case 2:
				starexam.starTwo();
				break;

			case 3:
				starexam.starThree();
				break;

			case 4:
				starexam.starFour();
				break;

			case 5:
				starexam.starFive();
				break;

			case 6:
				starexam.starSix();
				break;

			default: // 다른 값이 들어올 경우
				System.out.println("잘못 입력했습니다.");
			}
			System.out.println("다시 하시겠습니까? (Y/N)");
			replay = sc.next(); // 비교할 값을 입력받음
		} while (replay.equals("y") || replay.equals("Y"));
		// replay가 "y"나 "Y"일 경우 true값으로 do를 반복

		System.out.println("끝났습니다."); // false일 경우 출력 후 종료
	}
}

실행 결과

반응형

+ Recent posts