U E D R , A S I H C RSS

새싹교실/2017/꽃밭/0410

Difference between r1.11 and the current

@@ -1,63 +1,107 @@
[새싹교실/2017/꽃밭/0404|◀이전수업]▒▒▒▒▒[새싹교실/2017/꽃밭/0417|다음수업▶]
[[TableOfContents]]

= 수업 내용 =
== 조건문 ==
프로그램을 만들다보면 '옵션'을 주고 싶을 때가 있습니다.
예를 들어 계산기를 만들 때, 다음과 같이 만든다고 칩시다.
attachment:cond_1.png
별 문제 없는 프로그램이지만, 입력을 할 때마다 사칙 연산 결과를 전부 보여주는 것은 어쩐지 불필요해 보입니다.
사용자는 곱셈 결과만 원할 수도 있고, 덧셈 결과만 원할 수도 있지요.
그럴 때 조건문을 쓰면 사용자에게 어떤 연산을 할지 선택하도록 할 수 있습니다.
attachment:cond_2.png

조건문의 구조는 이렇습니다.
attachment:cond_3.png
else문에는 조건이 붙지 않습니다. 왜냐하면 if도, else if도 아닐 때 실행되는 부분이기 때문이죠.
그 어느 조건도 맞지 않을 때 실행됩니다.

3개를 써야하는 아니구요, if만 쓸수도, else if까지만 수도 있습니다.
그리고 else if문은 여러 개 추가해서 쓸 수 있습니다.
= 실습 : 새싹교실 광고 만들기 =
* 참고 코드
{{{
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

이것을 다이어그램으로 나타내 보았어요.
attachment:cond_diagram.png
void setColor(int color, int bgcolor);
void setFontColor(int color);
void setBgColor(int bgcolor);
void resetFontColor();
void resetBgColor();

그렇다면 괄호 안의 '''조건'''은 어떻게 쓸까요??
사용하는 것이 바로 {{{{color:red}'''연산자'''}}}입니다.
enum ConsolColor{
CC_BLACK, //0번
CC_DARKBLUE, //1번
CC_DARKGREEN, //2번
CC_DARKCYAN, //3번
CC_DARKRED, //4번
CC_DARKMAGENTA, //5번
CC_DARKYELLOW, //6번
CC_GRAY, //7번  
CC_DARKGRAY, //8번
CC_BLUE, //9번
CC_GREEN, //10번
CC_CYAN, //11번
CC_RED, //12번
CC_MAGENTA, //13번
CC_YELLOW, //14번
CC_WHITE, //15번
CC_LIGHTGRAY = 7,
CC_ORIGINAL = 7,
CC_ORIGINALFONT = 7,
CC_ORIGINALBG = 0
};
 
/* 문구 :
printf("\n ♨100%합법★새싹교실★§◐무료◑가입§§☞부담감NO☜♨\n ※누구나※§참여§가능§☆♠친절한선배♠♥상시대기중♥\n\n");
*/
int main(){
//색깔넣은 hello world 출력하기
setFontColor(9); //9번은 파란색. 파란색으로 글씨 설정
printf("Hello ");
Sleep(1000); //1초 쉬기
setFontColor(7); //7번은 회색. 회색으로 글씨 설정 바꾸기
printf("World\n");
setBgColor(15); //15번은 하얀색. 하얀색으로 배경색 설정하기
printf("WoW!!\n");
return 0;
}

//텍스트, 배경색 모두 변경하는 함수
void setColor(int color, int bgcolor){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), ((bgcolor & 0xf) << 4) | (color & 0xf));
}

== 연산자 ==
조건문을 작성하는 데 필요한 연산자들입니다.
'''관계, 비교''' 연산자이죠.
{{{
if( val <; 3 ) // val이 3보다 작으면
if( val &lt;= 3 ) // val이 3보다 작거나 같으면
if( val == 3 ) // val이 3이면(반드시 '=' 아닌 '=='를 써야한다!)
if( val != 3 ) // val이 3이 아니면
}}}
AND, OR, NOT 연산자도 있습니다.
'''논리''' 연산자라고 하죠.
{{{
if( 조건1 && 조건2 ) // 조건1과 조건2가 모두 참일 때
if( 조건1 || 조건2 ) // 조건1 혹은 조건2가 참일 때
if( !조건3 ) // 조건3가 거짓일 때
}}}
{{{
if( (val > 1) && ( val &lt; 3) ) // val가 1보다 크고 3보다 작을 때(1<val<3)
if( (val < 1) || ( val > 3) ) // val가 1보다 작거나 3보다 클 때
if( !(val == 2) ) // val가 2가 아닐 때; if( val != 2)와 동일한 의미
}}}
= 실습 =
//텍스트 색상 변경하는 함수
void setFontColor(int color){
CONSOLE_SCREEN_BUFFER_INFO info;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), (info.wAttributes & 0xf0) | (color & 0xf));
}
//배경 색상 변경하는 함수
void setBgColor(int bgcolor){
CONSOLE_SCREEN_BUFFER_INFO info;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), ((bgcolor & 0xf) << 4) | (info.wAttributes & 0xf));
}
 
//글씨 색깔 리셋하는 함수
void resetFontColor(){
setFontColor(7);
}

//배경 색상 리셋하는 함수
void resetBgColor(){
setBgColor(0);
}

}}}
= 후기 =
== [이지수|물주는사람] ==
오늘도 예쁜 멘티들은 수업에 열심히 참여해주었습니다.
실습도 척척 잘 해냅니다.
너무너무 예뻐요!
== 유진 ==
오늘은 사정이 있어서 불참했습니다 ㅠㅠ
== 현지 ==

광고판을 만드는 것이 재미있었다. 비록 언니가 코드는 제공해 주었지만 색깔이 계속해서 바뀌는 것이 신기했다.
그리고 버블 소트를 빨리 배워서 숫자를 크기 순서대로 출력하는 법을 배우고 싶다.
== 혜민 ==


오늘은 광고판처럼 글자의 색, 배경색을 입혀보고 바꿀 수 있는 코드를 이용해서 새싹교실 광고를 해보았다. 일상에서 많이 볼 수 있던 것들이 이렇게 만들어진다는 것이 신기했다. 앞으로 하게 될 버블 소트가 어떤 식으로 이루어지는 것인지 동영상도 시청했다. 다음 시간도 재미있게 배울 수 있을 것 같다.
------------
[새싹교실/2017/꽃밭/0404|◀이전수업]▒▒▒▒▒[새싹교실/2017/꽃밭/0417|다음수업▶]
[새싹교실/2017] [새싹교실/2017/꽃밭]


◀이전수업▒▒▒▒▒다음수업▶


1. 수업 내용



2. 실습 : 새싹교실 광고 만들기

  • 참고 코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

void setColor(int color, int bgcolor);
void setFontColor(int color);
void setBgColor(int bgcolor);
void resetFontColor();
void resetBgColor();

enum ConsolColor{
	CC_BLACK,       //0번
	CC_DARKBLUE,    //1번
	CC_DARKGREEN,   //2번
	CC_DARKCYAN,    //3번
	CC_DARKRED,     //4번
	CC_DARKMAGENTA, //5번
	CC_DARKYELLOW,  //6번
	CC_GRAY,        //7번 
	CC_DARKGRAY,    //8번
	CC_BLUE,        //9번
	CC_GREEN,       //10번
	CC_CYAN,        //11번
	CC_RED,         //12번
	CC_MAGENTA,     //13번
	CC_YELLOW,      //14번
	CC_WHITE,       //15번
	CC_LIGHTGRAY = 7,
	CC_ORIGINAL = 7,
	CC_ORIGINALFONT = 7,
	CC_ORIGINALBG = 0
};

/* 문구 : 		
printf("\n ♨100%합법★새싹교실★§◐무료◑가입§§☞부담감NO☜♨\n ※누구나※§참여§가능§☆♠친절한선배♠♥상시대기중♥\n\n");
*/
int main(){
	//색깔넣은 hello world 출력하기
	setFontColor(9); //9번은 파란색. 파란색으로 글씨 설정
	printf("Hello ");
        Sleep(1000);     //1초 쉬기
	setFontColor(7); //7번은 회색. 회색으로 글씨 설정 바꾸기
	printf("World\n");
	setBgColor(15); //15번은 하얀색. 하얀색으로 배경색 설정하기
	printf("WoW!!\n");
	return 0;
}

//텍스트, 배경색 모두 변경하는 함수
void setColor(int color, int bgcolor){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), ((bgcolor & 0xf) << 4) | (color & 0xf));
}

//텍스트 색상 변경하는 함수
void setFontColor(int color){
	CONSOLE_SCREEN_BUFFER_INFO info;
	GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), (info.wAttributes & 0xf0) | (color & 0xf));
}

//배경 색상 변경하는 함수
void setBgColor(int bgcolor){
	CONSOLE_SCREEN_BUFFER_INFO info;
	GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), ((bgcolor & 0xf) << 4) | (info.wAttributes & 0xf));
}

//글씨 색깔 리셋하는 함수
void resetFontColor(){
	setFontColor(7);
}

//배경 색상 리셋하는 함수
void resetBgColor(){
	setBgColor(0);
}

3. 후기

3.1. 물주는사람

오늘도 예쁜 멘티들은 수업에 열심히 참여해주었습니다.
실습도 척척 잘 해냅니다.
너무너무 예뻐요!

3.2. 유진

오늘은 사정이 있어서 불참했습니다 ㅠㅠ

3.3. 현지


광고판을 만드는 것이 재미있었다. 비록 언니가 코드는 제공해 주었지만 색깔이 계속해서 바뀌는 것이 신기했다.
그리고 버블 소트를 빨리 배워서 숫자를 크기 순서대로 출력하는 법을 배우고 싶다.

3.4. 혜민



오늘은 광고판처럼 글자의 색, 배경색을 입혀보고 바꿀 수 있는 코드를 이용해서 새싹교실 광고를 해보았다. 일상에서 많이 볼 수 있던 것들이 이렇게 만들어진다는 것이 신기했다. 앞으로 하게 될 버블 소트가 어떤 식으로 이루어지는 것인지 동영상도 시청했다. 다음 시간도 재미있게 배울 수 있을 것 같다.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:05
Processing time 0.0420 sec