More actions
imported>talin0528 No edit summary |
imported>talin0528 No edit summary |
||
| Line 171: | Line 171: | ||
** Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획. | ** Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획. | ||
---- | ---- | ||
* [[박성국]] - | * [[박성국]] - 오늘은 전산처리기와 자료형에 대해서 배웠습니다. 자세히 몰랐던 #include<stdio.h> 등 이 어떤 역활을 하는지 | ||
알 수 있었어요.^^ 또 int, char 등의 의미와 역활에 대해 알 수 있었습니다. | |||
* [[이준영]] - | * [[이준영]] - | ||
* [[강소현]] - | * [[강소현]] - | ||
Revision as of 03:02, 30 March 2011
참여자 명단
| 이름 | 3/16 | 3/23 | 3/30 |
| 강소현 | O | O | |
| 박성국 | O | O | |
| 이준영 | O | O |
수업
1회차(3/16)
- 수업시간 - 10:00 ~ 12:00
수업내용
- C언어의 역사
- C언어의 장&단점
- 프로그램 완성과정
- 실습
/* Hello.c */
#include <stdio.h>
int main(void)
{
printf("Hello, World!\n");
return 0;
}
QnA
- 선형대수학을 배우는 이유?
- ||Application||DB||그래픽스||네트워크||
| 컴공 core | 자료구조 | 알고리즘 | |
| 수학 | 선형대수학 | 이산수학 | 수치해석 |
으로 위쪽으로 갈 수록 상위개념이라 합니다. 선형대수학 때 배운 내용의 일부가 수치해석(3-1학기)에 들어있습니다. 그리고 그래픽스(4-1학기) 수업에서 수치해석을 전제로 수업을 합니다. 수업시간에는 선형대수학을 포기하라했었는데, C라이브러리로 그래픽을 만드는 식의 컴퓨터 그래픽스 수업에 관심이 있으신 분은 절대 포기하지 마세요 ㅎㅎ
- 텅 빈 공간에 ; 를 해도 오류 없이 실행되는 이유?
- ; 는 문장의 끝을 나타내므로, printf("Hello World"); 처럼 어디까지 내용이 있다 나타내는 것처럼 빈 공간도 빈 공간 그대로 인식이 되지 않았나 싶어요.
- C언어의 단점 중 low-level적 특성으로 프로그래밍을 하는데 많은 주의를 요한다 했는데, 실제로 잘못 사용한 사례는?
- 나중에 포인터를 사용하는 실습을 하다 보면 많은 깨달음을 얻을 수 있지 않을까 싶습니다...
- printf를 왜 제일 처음 배우나요?
- 아무래도 성과가 바로바로 눈에 보이게 출력하여 확인할 수 있는 함수이다 보니, 초보자가 바로 이해하기 어려움에도 불구하고 처음에 배우게 되는 듯 합니다.
- C언어 전이 B언어 였는데 A언어도 있나요?
- A언어 : ALGOL을 말합니다. 고급 프로그래밍 언어(어셈블리나 기계어를 저급 프로그래밍 언어라고 합니다)로 각광받던 포트란ForTran에 대항하기 위해 유럽을 중심으로 개발된 프로그래밍 언어입니다. ALGOL은 Algorithm Language의 약자로서, 이름 그대로 알고리즘 연구개발을 위해 만들어졌습니다. 하지만 ALGOL은 특정한 프로그래밍 언어를 지칭하기 보다는 C언어나 파스칼과 같이 구조화된 프로그래밍 언어를 지칭하는 말(ALGOL-like programming language)로 쓰입니다. 출처 링크! 클릭하세요:)
- 기계어로 번역된 파일이 .obj 파일인데 왜 이상한 영어들로 되어있나요?
- 메모장으로 열어서 글이 깨졌어요 ㅠㅠ 연결프로그램을 Visual Studio로 하면 번역이 정상적으로 되어있을거에요. 숫자가 010100 하면 너무 길어서 16진수로 표현이 되어있는듯 합니다.
후기
- 이준영 - C언어의 기초적인 내용에 대해 다시 배울 수 있었습니다. 생각나는거로는 %d가 생각나네요.
아직 어렵지만 열심히 배우도록 하겠습니다. 소현누나 고마워요.
- 강소현 - 열성적으로 질문을 해주어서 좋았습니다. A언어도 있는지의 여부를 물었었는데 저는 몰랐었는데 실제로 존재하더라구요 ㅎㅎ 가벼운 내용이라도 의문이 드는 사항이라면 언제든지 위키나 문자로 질문해주면 최대한 답변을 달도록 노력하겠습니다. 다음 시간에는 이전에 실습했던 것의 복습과 scanf 이후로 나갈 예정입니다. PPT 준비에 디자인도 없이 급하게 만든 티가 났었는데, 다음 시간에는 조금 더 준비를 해가겠습니다:)
- 박성국 - 이 수업이 C프로그래밍 강의에서 이해 안되었던 부분을 이해 할 수 있게 도와졌어요^^ 앞으로도 모르는것 많이 알려주세요~.
2회차(3/23)
- 수업시간 : 10:00 ~ 12:00
수업내용
- 입, 출력 함수 - printf, scanf
- redirection
- 연산자
- 산술연산자 사용 예
#include <stdio.h> //printf 함수 사용
int main(void)
{
int val1 = 4;
int val2 = 2;
printf("두 수의 덧셈: %d\n", val1+val2);
printf("두 수의 뺄셈: %d\n", val1-val2);
return 0;
- 기타 대입 연산자 사용 예
#include <assert.h> //assert 함수 사용
int main(void)
{
int val1 = 4, val2 = 2;
val1 += 3;
val2 *= 2;
assert(val1 == 7); //val1이 7인 경우 정상 종료, 아닌 경우 오류 출력
assert(val2 == 4); //val2이 4인 경우 정상 종료, 아닌 경우 오류 출력
return 0;
}
- 증가, 감소 연산자 사용 예
#include <assert.h> //assert 함수 사용
int main(void)
{
int val = 10;
assert(val++ == 10); //val++한 값이 10과 같으면 정상작동. 아니면 오류 출력
assert(++val == 12); //++val한 값이 12과 같으면 정상작동. 아니면 오류 출력
return 0;
}
- 관계 연산자 사용 예
#include <assert.h> //assert 함수 사용
int main(void)
{
int val1 = 10;
int val2 = 12;
assert(val1 <= val2); //val2값이 val1값보다 크거나 같으면 정상작동. 아니면 오류 출력
return 0;
}
- 논리 연산자 사용 예
#include <assert.h> //assert 함수 사용
int main(void)
{
int val1 = 10;
int val2 = 12;
assert(val1 < val2 && val2 == 12); //val2값이 val1값보다 크고, val2값이 12와 같으면 정상작동. 아니면 오류 출력
assert(val1 > val2 || val2 != 11); //val2값이 val1값보다 크거나, val2값이 11이 아니면 정상작동. 아니면 오류 출력
return 0;
}
과제
- 산술 연산자 사용 예에서 val1과 val2를 곱셈, 나눗셈, 나머지를 구하는 것을 추가하여 출력해보자.
- 기타 대입 연산자 사용 예에서 assert(val1 == 7); 를 assert(val1 != 7); 로 바꾸어 실행해보기.
- 기타 대입 연산자 사용 예에서 -= , /= , %= 한 결과를 assert(val1 == 7); 와 같이 assert함수 안에 넣어 확인하시오.
- 증가 감소 연산자 사용 예에서 감소연산자를 사용한 예를 추가해보자.
- 관계 연산자 사용 예에서 >= , != 가 사용되는 사례를 만들어보자(변수 val3 만들어서).
- 실수(float)를 2개 입력받아(scanf), 앞서 받은 값이 뒤의 값보다 크면 정상작동, 아니면 오류를 출력하도록 해보자(assert)
QnA
- assert 문에서 오류가 난 이유?
#include <assert.h>
int main()
{
int val1 = 10, val2 = 8;
val1 -= 3;
val2 /= 2;
assert(val1 != 7);
assert(val2 != 4);
return 0;
}
- assert는 강하게 주장하다라는 의미로 위와 같은 경우 val1이 7이 아니다! val2가 4가 아니다! 라고 주장한다는 의미입니다. 하지만 val1값은 7이고, val2의 값은 4니까 에러창을 띄워 주장이 잘못됐다고 알려주는 거에요. 전체적으로 의문사항은 assert문보다는 !=의 의미를 잘 몰라서 그런 듯 합니다. == 는 같다, !=는 아니다라는 의미의 관계연산자입니다.
- int main(void) 안에 void를 넣든 안넣든 상관없는 이유?
- 원래는 원칙상으로 void라고 명시해서 매개변수를 사용하지 않고 비어있다!!고 알려야하지만, 아무것도 안 쓰는 것도 비어있다는 의미로 허용해서 그렇습니다.
후기
- 박성국 - 오늘 다양한 연산자에 대해 배우고 printf 와 scanf 에 대해 잘 이해 할 수 있었어요. 감사합니다.^^
- 이준영 - 수업시간에 이해가 잘안가던 printf랑 scanf를 배울 수 있어서 유익한 시간이었습니다. 기타 연산자도 배울 수 있었습니다.감사합니다.
- 강소현 - 4피에서 수업이 없는 줄 알고 괜히 이동했다가 다시 6피로 이동하는 번거로운 일을 했었는데, 앞으로는 얌전히 6피에서만 수업을 해야겠어요. 수요일 11시부터 12시까지 딱 새싹 시간에 다른 수업이 있는 줄 몰랐었어요 ㅠㅠ printf와 scanf에서 시간을 많이 투자해서, 급하게 연산자를 쭉쭉- 설명하고 끝내느라 기억에 남지 않을 것 같습니다. 따라서 연산자에 관한 간단한 과제를 내어 익히도록 하겠습니다.(?!) 준비를 잘 해와야하는데, 계속 부족한 강의라고만 하는 것은 겸손이 아니라 그냥 자기비하란 생각이 문득 들었습니다. 그 동안 푸념을 들어주어 미안했고, 앞으로는 그런 일이 없도록 할 것입니다.
3회차(3/30)
- 수업시간 - 11:00 ~ 12:00
수업내용
QnA
후기
- 후기 작성 요령 : 후기는 F4(ThreeFs + Future Action Plan)에 맞게 작성해주세요.
- 관련 페이지 : ThreeFs, ThreeFs(노스모크), FiveFs(노스모크)
- 링크를 눌러보기조차 귀찮은 당신을 위한 간단한 설명
- Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
- 박성국 - 오늘은 전산처리기와 자료형에 대해서 배웠습니다. 자세히 몰랐던 #include<stdio.h> 등 이 어떤 역활을 하는지
알 수 있었어요.^^ 또 int, char 등의 의미와 역활에 대해 알 수 있었습니다.
- 위키 정리가 매우 알차네요!! 그런데 한편으론 이렇게 정리하려면 위키에 적는 것이 새싹교실 선생님에게 너무 부담스럽지 않을까 싶은 걱정도 듭니다. 즐겁게 정리하고 있다면 정말 좋은 일이지만 혹시 너무 부담스럽다면 덜 꼼꼼히 적어도 괜찮을 것 같아요~ - 김수경