새싹교실/2015/과탑반 (rev. 1.13)
- c언어 프로그래밍
- 매주 화요일 17시 ~ 19시 208관 6층 PC 실
- 노트북 있으면 가져오시길
3.1. 3월 12일 목요일 ¶
- 참가 : 강민승, 김석준, 이대한, 이준석
- 오리엔테이션
- 튜티들의 수준이 어느정도인지 파악
- 시간 및 장소를 정하였습니다.
3.2. 3월 17일 화요일 ¶
- 참가 : 강민승, 김석준, 이대한, 이준석
- 첫 수업
- "Hello, world!"를 출력하는 소스코드를 분석
- #include<stdio.h>
- header과 return
- 위의 것을 설명하면서 function과 parameter에 대해서도 잠깐...
- printf와 scanf함수
- 변수형
- 그 외 튜티들이 수업을 들으며 이해되지 않았던 부분이나 궁금한 부분에 대한 설명을 했습니다!
- 과제 : 1. 숫자 두 개를 입력받아 덧셈, 뺄셈, 곱셈, 나눗셈을 한 뒤, 출력하기
- 문자(char) '한 글자'를 입력받아 그 대로 출력하기.
3.3. 3월 31일 화요일 ¶
- 참가 : 강민승, 김석준, 이대한, 이준석
- 수업 내용
- 질문 & 답변
- #은 무엇인가?
- putchar(), getchar()은 무엇인가?
- 연산자에 대한 부가설명
- 반복문
- for문
- (반복문 제어 변수 ; 반복 범위 ; 반복문 제어 변수의 연산 )
- while문
- 조건문
- if, else if 그리고 else
- if(조건 1)
- else if(조건 2)
- else (나머지 조건)
- switch - case
- if문과 달리 범위에 따른 조건은 불가능
- 나머지 조건들은 default 로 제어
- 각 case 끝 부분에 break; 필수
- 과제
- 국어, 수학, 영어 점수( 0점 ~ 100점 )을 입력받아서 rank를 출력하는 프로그램
- 90~100점 : A, 80~89점 : B, 70~79점 : C, 나머지 F
- EX)
과목 점수 입력 ( 국어 수학 영어 순 ) : 90 85 27
국어 : A
수학 : B
영어 : F
3.4. 4월 7일 화요일 ¶
- 참가 : 강민승, 김석준, 이준석
- 수업 내용
- 반복문 및 조건문 복습
- 별찍기
- 이중 반복문의 사용법, 그리고 do while 반복문의 사용법
- 반복문 탈출 조건과 탈출 제어
#include<stdio.h>
#pragma warning ( disable : 4996 )
int main(){
int num;
int i, j;
do {
printf("숫자 입력 ( 1 ~ 10 사이의 정수, 다른 수 입력시 종료. ) : ");
scanf("%d", &num);
if (num >= 1 && num <= 10) {
for (i = 1; i <= num; i++) {
for (j = 1; j <= i; j++) {
printf("*");
}
printf("\n");
}
}
else break;
} while (1);
return 0;
}
3.5. 4월 14일 화요일 ¶
- 참가 : 강민승, 김석준, 이준석
- 수업 내용
- 중간고사 대비 문제 풀이 및 배운 것 정리
- 전위 연산자와 후위 연산자를 응용한 문제
- Visual Studio를 통해 소스코드가 컴파일 후 실행되기까지의 과정에 대한 문제
- 2중 반복문 문제
- 문법 문제
3.6. 4월 28일 화요일 ¶
- 참가 : 강민승, 김석준, 이준석
- 수업 내용
- 함수
- 함수는 무엇일까요? 사실 메인도 함수라고...
- 반환형과 이름, 그리고 파라미터
- 두 수를 더하는 함수를 가르쳐주었습니다.
- 재귀
- 재귀는 무엇일까요? 자기 자신을 호출함
- 예시 : fibonacci, factorial 함수
#include <stdio.h>
int fibo(int num) ;
int main(void){
int num;
int i;
printf("\n피보나치 수 입력 : \n" );
scanf("%d" , &num) ;
for(i = 0 ; i < num ; i++ ){
printf("%d " , fibo(i));
}
printf("\n\n");
return 0;
}
int fibo(int num){
if(num == 0) return 0;
else if(num == 1) return 1;
else return fibo(num-1) + fibo(num-2);
}
#include <stdio.h>
int factorial(int n);
int factorial(int n)
{
if(n<=1) return 1;
return n*factorial(n-1);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",factorial(n));
return 0;
}
- 과제 : TowerOfHanoi 함수 만들어오기 (너무 어려운가...)
3.7. 5월 12일 화요일 ¶
- 참가 : 강민승, 김석준, 이준석
- 수업 내용
- 숙제!
- 역시 아무도 못풀어옴..
- 재귀를 어떤 방식으로 해야 할 지 감이 안잡힌다면 점화식을 세워보시길
- 배열
- 자료형을 나열 할 수 있는 구조
- 이름, [] <- 대괄호, 그리고 index로써 표현한다.
- 선언 시 크기를 숫자로써 설정
- 배열 값 더하기 예제
- 2차원 배열
#include<stdio.h>
int main() {
int i, j;
for(i = 0 ; i < 5 ; i++) {
for(j = 0 ; j <= i ; j++) {
printf("*");
}
printf("\n");
}
return 0;
}