Difference between r1.100 and the current
@@ -561,19 +561,22 @@
=== 과제 ===
* 과제 올리는 곳: [새싹교실/2012/AClass/2-2회차]
* 과제는 월요일 밤까지입니다. 늦어도 화요일 아침까진 올려주세요.
1. Swap 짜보기
1. call by value, call by reference에 관해 설명하고, 그것이 정확히 어떤 것인지, 어떤 문제가 생기는지 서술.
1. Linked List 삽입, 탐색을 짜고, 함수화해보세요.
1. Struct란?
1. Object Oriented Programming에 관해서 설명해보세요.
1. 객체지향의 특성에 관해서 찾아보고, 서술해보세요.
1. Class란?(책참조)
1. Overloading이란?
1. public과 private에 관해서 알아봅시다.
1.
=== 수업 내용 ===
* [황혜림]
pointer, swap, malloc, struct 문법을 다시 배웠고 c++의 기초를 배웠다. iostream헤더의 사용법도 배우고
* 과제 올리는 곳: [새싹교실/2012/AClass/2-2회차]
* 과제는 월요일 밤까지입니다. 늦어도 화요일 아침까진 올려주세요.
1. 동적할당하는 방법
1.동적할당하는 방법
2.Swap 짜보기
3.call by value, call by reference에 관해 설명하고, 그것이 정확히 어떤 것인지, 어떤 문제가 생기는지 서술.
4.Linked List 삽입, 탐색을 짜고, 함수화해보세요.
5.Struct란?
6.Object Oriented Programming에 관해서 설명해보세요.
7.객체지향의 특성에 관해서 찾아보고, 서술해보세요.
8.Class란?(책참조)
9.Overloading이란?
10.public과 private에 관해서 알아봅시다.
11.[http://koistudy.net Koistudy] 126~130번, 146번, 148번, 149번
* C++ 문법을 활용하여 짜봅니다.(cin cout등)
* 소스도 함께 올려주세요.
* Overview, 포인터
* 동적할당, Swap, OOP, Class, Struct, call by value/reference
=== 후기 ===* [황혜림]
pointer, swap, malloc, struct 문법을 다시 배웠고 c++의 기초를 배웠다. iostream헤더의 사용법도 배우고
@@ -623,8 +626,103 @@
* c언어와 c++의 다른 문법과 cin,cout class,std없애는 using namespace std를 배웠다
== 2-3회차(9/12) ==
=== 내용 ===
----
[2012년활동지도],[새싹교실/2012]
== 2-3회차(9/12) ==
=== 내용 ===
* cmd창, main parameter사용법
* cmd창, main parameter사용법, static, const
=== 과제 ===
1.[http://koistudy.net Koistudy] 126~130번, 146번, 148번, 149번 - 못푼것
=== 후기 ===
* [황혜림]
class의 개념에 대해서 배웠다.
private와 public의 차이점을 배웠다.
private를 선언하면 남이 접근을 할 수 없다.
public은 아무나 접근하여 사용 할 수 있다.
* [도상희]
swap, malloc test
private과 public의 차이점
왜 private를 사용하는지
* [한송이]
링크리스트 복습,public과 private
== 2-4회차(9/19) ==
=== 내용 ===
=== 과제 ===
* static, const 이란??
=== 후기 ===
* [한송이]
클래스를 사용한 코딩
* [도상희]
LargeInt 덧셈! 자리수 고정, overflow 발생하지 않는 상황에서 코딩
클래스를 사용한 최초의 코딩 차암 뿌듯하네
숙제로 뺄셈!
* [황혜림]
클래스와 private, public사용해서 각각의 자릿수 덧셈하는 함수를 만들었다.
각 자리수가 9보다 크면 그 다음 자리수에 1을 더하는 코딩을 만들었다.
디버깅하는 법도 배웠다.
== 2-5회차(9/26) ==
=== 내용 ===
* 클래스, 생성자, 캡슐화, default 생성자, this, overloading 등등.
* struct vs class
=== 과제 ===
* 이번 시간에 했던 Person클래스를 생각해서 Bird 클래스를 작성해야합니다.
* 새는 처음에 지상에서(0m)에서 시작할 수도 있고, 다른 높이에서 시작할 수도 있습니다.
* 땅에서부터 새까지의 거리를 저장할 수 있어야 합니다.(distance)
* Bird는 날 수 있습니다. (도망칠때를 대비해) 빨리 날 수도 있어야합니다.
* 새는 A,B가 있는데, A새는 객체를 만들 때 기본 생성자를 사용해도 되고, B새는 객체 생성시에 처음 높이를 다르게 해볼 수 있습니다.
=== 후기 ===
* [황혜림] - 처음부터, 클래스의 특징에는 캡슐화가 있다. 캡슐화는 왜쓰는가.... 잘못된 접근을 막아야 한다는데. 아,,ㅂㄱㅍ 아 오버로딩이 새로 생각났다. 생성자 - 클래스명과 항상 같게 사용하여야 한다.
* [한송이] - 나는 빽스페이스 클래스에는 퍼블릭/프리베이스 없으면 자동 private 구조체는 자동 public . 다음주에도 시작할 때 복습 + bigInt 다시n개로.
* [도상희] - 완전 많이써야지. this의 용법. 그리고 어......... 디폴트 생성자 그리고 오늘 배운게 끝인거 같은데...
== 2-6회차(10/10) ==
=== 내용 ===
* 오버라이딩, static, 상속, protected, return형태와 오버로딩의 관련
=== 과제 ===
* 송이누나 swap 시험 다시
* Animal 객체를 발전시킨 Bird 클래스 만들기.
* [새싹교실/2012/AClass/2-6회차]
=== 후기 ===
* [황혜림] - 상속배웠습니다. protected가 무엇인지 배웠고 오버로딩, 오버라이딩이 무엇인지도 배웠습니다. static과 const도 배웠습니다.
* [한송이] -
* [도상희] - 상속, 디폴트 생성자, 오버로딩과 오버라이딩의 차이점, static를 배웠다
== 2-7회차(10/17) ==
=== 내용 ===
* 1~7회차 복습 및 쪽지 시험
* 과제물 (코딩 능력 향상을 위한 미로찾기, 혹은 Airline Ticketing)
=== 과제 ===
* 미로찾기, 혹은 Airline Ticketing 택 1
=== 후기 ===
*
== 2-7회차(10/17) ==
=== 내용 ===
* 1~7회차 복습 및 쪽지 시험
* 과제물 (코딩 능력 향상을 위한 미로찾기, 혹은 Airline Ticketing)
* 23일 시험, 30일 강사 대회 준비로 휴강
=== 과제 === * 미로찾기, 혹은 Airline Ticketing 택 1
=== 후기 ===
== 2-8회차(10/31) ==
=== 내용 ===
* 과제물 점검 및 실습
* virtual, 추상함수, 객체지향
=== 과제 ===
* 앞 7주차 내용 정리
=== 후기 ===
== 2-9회차(11/7) ==
=== 내용 ===
*
=== 과제 ===
*
=== 후기 ===
== 2-10회차(11/14) ==
=== 내용 ===
*
=== 과제 ===
*
=== 후기 ===----
[2012년활동지도],[새싹교실/2012]
Contents
- 1. AClass
1.1. 소개 ¶
- 목표 : C부터 시작하여 자료구조까지 정ㅋ복ㅋ
- 시간 : 매주 수요일 오후 3시~4시반.
- 과제 : 과제는 월요일까지 jereneal20@네이버.컴으로 보내주세요.
- 구성원 :
- 멘토 : 김태진
- 멘티 : 곽길문, 도상희, 한송이, 황혜림
- 멘토 : 김태진
- 수업 계획 :
- 1주차(5/9) - 실력 점검 및 별찍기(for문)
- 2주차(5/16) - 함수, 배열 + Search
- 3주차(5/23) - 다차원배열, 포인터 + Search, Sort
- 4주차(5/30) - 구조체, 2중포인터 + Stack, Queue
- 5주차(6/6) - C++ 기초, String + Linked list (쉬는 날도 진행)
- 6주차(6/13) - 1~5주차를 소화하지 못 할 경우를 위한 한 주.
- 방학 중에 스터디를 할 경우 - Class, Object + Tree, Graph
- 일반적으론 거의 불가능한 진도입니다.. 어디까지 나가느냐는 얼마나 해오시냐의 열의에 달려있습니다.
- 제가 하는 부분보다 스스로 해야하는 부분이 절대적으로 많습니다.
- 일반적으론 거의 불가능한 진도입니다.. 어디까지 나가느냐는 얼마나 해오시냐의 열의에 달려있습니다.
- 1주차(5/9) - 실력 점검 및 별찍기(for문)
- 과제방
- 새싹교실/2012/AClass/1회차
- 새싹교실/2012/AClass/2-2회차
- 새싹교실/2012/AClass/2-6회차
- 새싹교실/2012/AClass/2회차
- 새싹교실/2012/AClass/3회차
- 새싹교실/2012/AClass/4회차
1.2.2. 과제 ¶
- 코딩과제는 완전한 프로그램으로 써 주시고(에러나지 않도록), 서술하는 문제는 간단하게(1~3줄) 써 주세요.^^
- 코딩한 것은 그냥 파일에 복사붙여넣어도 되고, .c파일을 보내주셔도 됩니다.
- 완성하지 못해도 좋습니다. 꼭 자기 힘으로 해 주세요.(의견 교환은 가능)
- 완성하지 못한 (코딩)문제는 어떤부분이 막혔는지 간단하게 써봐요~
- 완성하지 못한 (코딩)문제는 어떤부분이 막혔는지 간단하게 써봐요~
- 제가 과제 내면서 서술문제는 책에 있는걸 냈으니 꼭 C책 빌려서 읽어봐요~
- 복습 및 생략한 기초 내용
- 컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요.
- 상수형, 변수형에 관해서 쓰고, 그 예를 2개만 들어주세요.
- char형에 관해 써 주세요. ASCII코드를 통해 나타낸다는 것이 무엇을 의미하는지도 써 주세요.
- #include, 전처리과정이 무엇인지 쓰고, include의 예를 들어주세요.
- #define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
- ++, --, &&, ||, +,-, !=, ==, = 이 무엇을 의미하는지 간단간단히 써 주세요.
- if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.
- switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)
- 성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다.
- 성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다.
- while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.
- 위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요.
- 위 프로그램을 for문으로 바꿔 풀어보세요.
- 2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요.
- 컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요.
1. ***** **** *** ** * 2. * ** *** **** *****
- 혜림이누나, 상희누나만 푸는 과제: 다음 별찍기를 만들어주세요.
- n으로 일반화하여 입력받은 만큼 별찍기를 하도록 만들면 더욱 좋습니다.
- n으로 일반화하여 입력받은 만큼 별찍기를 하도록 만들면 더욱 좋습니다.
1. ******* ***** *** * 2. * *** ***** ******* ***** *** *
- 위 과제가 너무 쉬웠던 분들을 위한 추가 과제
- 형변환에 관하여
- 삼항 연산자에 관하여
- 혜림이누나, 상희누나 과제를 for문을 각각 3개, 4개만 써서 해보세요.(hint 2*n-1)
- 형변환에 관하여
- 예습을 위한 과제
- 함수가 무엇인지 쓰고, 예제 프로그램을 하나 만들어 주세요.
- return이 무엇인지 써 주세요.
- 함수형이 무엇인지 쓰고, void타입은 왜 return하지 않는지 써주세요.
- 재귀함수가 무엇인지 써 주세요.
- 배열이 무엇인지 쓰고, 왜 배열이란 개념이 나타났는지(왜 쓰는지) 써 주세요.
- 배열을 사용한 간단한 프로그램을 하나 만들어보세요.
- 함수가 무엇인지 쓰고, 예제 프로그램을 하나 만들어 주세요.
- 위 과제가 너무 쉬웠던 분들을 위한 추가 과제
- 재귀함수를 이용한 프로그램을 하나 짜 보세요.(eg.1~n까지의 합, n!구하기등)
- 배열에 숫자를 넣고, 그 배열에 특정 값이 있는지 찾는 프로그램(Search)을 작성해 주세요.
- 재귀함수를 이용한 프로그램을 하나 짜 보세요.(eg.1~n까지의 합, n!구하기등)
1.2.3.1. 황혜림 ¶
- 1.컴파일러란?
--> 프로그래밍 언어를 어셈블리어로 변환하고 그 어셈블리언어를 기계가 읽을 수 있는 언어로 변환 시켜주는 것
2.#include란?--> 라이브러리에서 우리가 사용하는 함수를 불러오기 위해써주는 것
3.return 0?--> 프로그램의 종료를 위해
4.정수하나를 입력 받아서 10보다 크면 입력받은 정수의 제곱 출력, 10보다 작으면 입력받은 정수의 두배를 출력
-->
#include <stdio.h> int main(){ int a; scanf("%d",&a); if(a>10) printf("%d",a*a); else if(a<10) printf("%d",2*a); return 0; }
- 별 출력
#include <stdio.h> int main(void) { int i; int j; int n; int k; scanf("%d",&n); for(i=n;i>=1;i--) { for(j=1;j<n+1-i;j++) { printf(" "); } for(j=1;j<=2*i-1;j++) { printf("*"); } printf("\n"); } return 0; }
1.2.3.3. 곽길문 ¶
- 오늘 처음 시작한 새싹교실수업날이었습니다. 에공 ....-L-
열심히 하겠습니다. ..ㅋㅋㅋ오늘 공백을 넣는 부분 여러번 설명해줘서 고마워요~
과제 열심히 해서 매수업마다 실력쌓을게요.. 반성문되어가네요 ..ㅋㅋㅋ
다음에는 반성문말고 씬나서 쓸게욤
1.3.1. 과제 ¶
- 일요일 저녁까지 해 주시면 됩니다. 조금 어려울 수 있으니 못 풀겠다는 문제는 미리 말해주세요.
- 출력해오실 과제는 코딩 과제 중 풀지 못한 과제의 코드와 글쓰는 과제만 출력해 오시면 됩니다.
- 출력해오실 과제는 코딩 과제 중 풀지 못한 과제의 코드와 글쓰는 과제만 출력해 오시면 됩니다.
- 복습과제
1.0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜 주세요.
- /10, %10 등을 이용해서 해 보세요.
3.다음 모양을 출력하는 프로그램을 작성해 주세요.
- 한자리 숫자이다가 2자리 숫자이면서 깨지는 것은 예외처리해주셔도 되고 하지 않으셔도 됩니다.
- 방법은 if(10>x) printf(" ");입니다.
- /10, %10 등을 이용해서 해 보세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
4.다음 모양을 출력하는 프로그램을 작성해 주세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
5.위 두 프로그램을 일반화 시켜 입력받은 숫자만큼 출력해주는 프로그램을 작성해주세요.(위 프로그램은 21을 입력)
6.위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 피라미드 형태로 작성해 주세요.
7.위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 다이아몬드 형태로 작성해 주세요.
8.아래 프로그램을 참고하여 60점 이하는 F, 61~70점 D, 71~80 C, 81~90 B, 90~ A인 프로그램을 작성해주세요.
6.위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 피라미드 형태로 작성해 주세요.
7.위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 다이아몬드 형태로 작성해 주세요.
8.아래 프로그램을 참고하여 60점 이하는 F, 61~70점 D, 71~80 C, 81~90 B, 90~ A인 프로그램을 작성해주세요.
#include <stdio.h> int main(){ int num; printf("성적 입력 : "); scanf("%d", &num); switch(num/10){ case 10 : case 9 : printf("A\n"); break; case 8 : printf("B\n"); break; default : printf("???\n"); break; } }
9.101부터200까지의 모든 정수를 더해서 반환하는 '함수'를 작성해주세요.(main문에는 sum=Sum(); printf("%d",sum);이 있도록해주세요)
10.재귀함수를 이용해 n!을 출력하는 프로그램을 작성해 주세요.
11.n!을 출력하는 프로그램을 for문으로 작성해주세요.
12.재귀함수를 이용해 1부터10까지를 더하는 프로그램을 작성해 주세요.
13.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 3이 있는지 없는지를 찾아서 출력해주는 프로그램을 작성해주세요.
14.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 1이 몇번째에 있는지를 찾아서 출력해주는 프로그램을 작성해주세요. (단, 7은 첫번째입니다)
15.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 2가 있는지 없는지를 검사하고, 있다면 어디에 있는지 전부 출력해주는 프로그램을 작성해주세요.
16.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열을 정렬(오름차순으로)하고, 출력하는 프로그램을 작성해주세요.
10.재귀함수를 이용해 n!을 출력하는 프로그램을 작성해 주세요.
11.n!을 출력하는 프로그램을 for문으로 작성해주세요.
12.재귀함수를 이용해 1부터10까지를 더하는 프로그램을 작성해 주세요.
13.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 3이 있는지 없는지를 찾아서 출력해주는 프로그램을 작성해주세요.
14.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 1이 몇번째에 있는지를 찾아서 출력해주는 프로그램을 작성해주세요. (단, 7은 첫번째입니다)
15.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 2가 있는지 없는지를 검사하고, 있다면 어디에 있는지 전부 출력해주는 프로그램을 작성해주세요.
16.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열을 정렬(오름차순으로)하고, 출력하는 프로그램을 작성해주세요.
- 예습과제
- 2차원 배열이 무엇인지 쓰고, 어떻게 선언하는지도 작성한 뒤, 이를 이용한 간단한 프로그램을 작성해주세요.
- srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요.
- 포인터가 무엇인지 쓰고, 포인터를 선언하는 방법을 쓰세요.
- 배열과 포인터의 공통점과 차이점을 찾아보고, 써보도록 하세요.
- 2차원 배열이 무엇인지 쓰고, 어떻게 선언하는지도 작성한 뒤, 이를 이용한 간단한 프로그램을 작성해주세요.
1.3.2.3. 황혜림 ¶
- 재귀함수 : 자기 자신함수를 다시 불러서 사용하는 함수
#include <stdio.h> int fact(int n) { int sum; if(n==1) return 1; else sum=fact(n-1)*n; return sum; } int main() { int n; scanf("%d",&n); printf("%d\n",fact(n)); return 0;}
swap : 두 개의 숫자를 바꾸기 위해서
배열 : 변수를 여러개 사용하지 않기 위해 사용
느낀 점 : 전에 배웠던 내용이라서 아직 까지는 이해하기 쉬웠다. 코딩을 많이 해봤으면 좋겠다:-@
- 제가 그 부탁을 드려드렸습니다.. 과제의 80%가 코딩인 현실! -김태진
1.3.2.4. 한송이 ¶
- 함수, 배열을 배웠는데 수업시간에 배웠던것 같은데 아직은 헷갈린다
미리 예습을 해오니 수업듣기 훨씬 편했다.앞으로는 예습 복습을 철저히 해야겠다.
- 제가 다음시간에 설명할 부분이 많을때는 예습을 해오는게 중요하거든요. 안그러면 시간내에 할당량을 소화하지 못하겠더라는.. -김태진
- 제가 다음시간에 설명할 부분이 많을때는 예습을 해오는게 중요하거든요. 안그러면 시간내에 할당량을 소화하지 못하겠더라는.. -김태진
1.4.1.1. 복습 ¶
1~5.www.koistudy.net 코이스터디 100번~104번까지 Accept받기(등업이 안되어 있으면 그 문제의 소스를 저한테 보내주세요)
6.포인터를 이용해 함수 swap 짜보기(대부분의 책 예제에 있습니다. 따라 써보고 코드를 이해해 보세요)
7.2차원 배열(4x4) 두개의 곱을 구하는 프로그램 작성.
8.다음 형태로 출력되는 프로그램을 짜 보세요.
6.포인터를 이용해 함수 swap 짜보기(대부분의 책 예제에 있습니다. 따라 써보고 코드를 이해해 보세요)
7.2차원 배열(4x4) 두개의 곱을 구하는 프로그램 작성.
8.다음 형태로 출력되는 프로그램을 짜 보세요.
1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 20 19 18 17 16 21 22 23 24 25
9.포인터를 이용한 예제코드 하나를 짜 보세요.
10.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
(rand()%1000을 한다면 1에서 1000까지의 숫자가 나올 것입니다.)10.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
11.Sort를 하나 구현해보세요. 11번과 같은 방법으로 숫자를 랜덤으로 넣은 후, 정렬하고, 정렬된 것을 출력하면 됩니다.
12.이번시간에 배웠던 내용을 바탕으로, int* a; int b;로 선언했을때 &a,a,*a,&b,b에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.(예제 코드를 작성한 후에 테스트해보고 써보는 것도 좋은 방법일 것입니다.)
12.이번시간에 배웠던 내용을 바탕으로, int* a; int b;로 선언했을때 &a,a,*a,&b,b에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.(예제 코드를 작성한 후에 테스트해보고 써보는 것도 좋은 방법일 것입니다.)
1.4.1.2. 예습 ¶
1.구조체가 무엇인지 알아보고, 간단한 구조체 하나를 만들어보세요.
2.동적할당이 무엇인지 알아보고, 동적할당을 하는 방법을 써 보세요.
3.이중포인터가 무엇인지 알아보고, 이중 포인터를 이용해 2차원 배열형태로 만들어보세요.
4.스택, 큐가 무엇인지 설명하고, 이를 이용한 간단한 예제를 만들어보세요.
2.동적할당이 무엇인지 알아보고, 동적할당을 하는 방법을 써 보세요.
3.이중포인터가 무엇인지 알아보고, 이중 포인터를 이용해 2차원 배열형태로 만들어보세요.
4.스택, 큐가 무엇인지 설명하고, 이를 이용한 간단한 예제를 만들어보세요.
1.4.2.3. 한송이 ¶
- 피라미드 모양 별찍기 쪽지셤, 2차원 배열, 포인터 를 배웠다.
과제할 때 항상 디버기하고 고치고 했는데 앞으로는 머리로 생각 하고 해야겠다는것을 쪽지셤 보면서 느꼈다ㅜㅜ
그리고 과제 빨리 올려주세요!!
1.5.1. 과제 ¶
- 과제 올리는 곳: 새싹교실/2012/AClass/4회차
- 과제는 일요일 밤까지입니다. 늦어도 월요일 저녁까진 올려주세요.
- 후기 안쓰신 분들은 써주세요
1.5.1.1. 복습 ¶
1~6.Koistudy.net 106~111번
7.Koistudy.net 125, 152번(둘다 하기 힘들면 하나만) 3n+1
7.Koistudy.net 125, 152번(둘다 하기 힘들면 하나만) 3n+1
- accept받은 걸 스샷으로 찍어도 좋아요 저번주에 accept받는데 실패하신 분들은 저나 다른분들에게 물어봐서 한번 해보도록 합시다^^
- 저번주 과제 8번에 실패하신 분들은 해당 문제를 푸셔도 됩니다. 아직 이해가 잘 안가시면 저나 다른분들에게 물어봐요
1 3 2 4 5 6 10 9 8 7 11 12 13 14 15 21 20 19 18 17 16
9.2중포인터를 이용하여 3x3행렬을 두개 만들고, 두 배열의 합을 출력하는 프로그램을 짜보세요.
11.이번시간에 배웠던 내용을 바탕으로, int* a; int b; int **c;로 선언했을때 &c,c,*c,&a,a에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.
12.예제 코드가 어떤 행동을 수행하고, 왜 그런 값이 나오는지 설명해 봅시다.
- hint) Dp = (int**)malloc(sizeof(int*));
11.이번시간에 배웠던 내용을 바탕으로, int* a; int b; int **c;로 선언했을때 &c,c,*c,&a,a에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.
12.예제 코드가 어떤 행동을 수행하고, 왜 그런 값이 나오는지 설명해 봅시다.
int* a; int b=5; int** c; c=&a; a=&b; **c=9; printf("%d %d",*c,**c);
1.5.1.2. 예습 ¶
- LinkedList의 node를 선언하는 방법을 찾아보고, 왜 그런 형태인지 이해한만큼 써보자.
- Circular Queue가 무엇인지 찾아보자.
- typedef가 무엇인지 알아보고, 간단한 예제를 써보자.
- 구조체를 사용하여 student 구조체를 하나 만들고, student 구조체 배열을 만들어 0~3번째 배열에 AClass반 학생들의 정보를 적당히 넣고, 그것을 출력해보자.
- 구조체 내부에 char 배열을 사용해서 이름을 넣어도 좋고, 학번을 int형으로 넣어도 좋다.
- 이 과제가 무슨 말인지 이해가 안되는 경우 반드시 저에게 물어보고, 과제를 해야합니다.
- 구조체 내부에 char 배열을 사용해서 이름을 넣어도 좋고, 학번을 int형으로 넣어도 좋다.
1.5.2.2. 곽길문 ¶
- 수업할때 100% 전부 흡수한다고 말할수는 없지만 그래도 많은 것들을 배우고 있어서 너무나 뿌듯하고 좋습니다.
복습 예습해서 새싹 교실 의미를 많이 깨닫고 싶습니다.
이중포인터 동적할당 첫시간이었고 과제 잘 해서 낼게요
1.5.2.4. 황혜림 ¶
- 이중 포인터와 이차원 배열에 관하여 배웠습니
아직 개념이 잘 이해되지 않았기 때문에 과제를 하면서 복습하고 이중포인터와 이차원배열에 관하여 이해해봐야 겠습니다.
동적할당에 대해서도 배웠습니다.sizeof라는 함수를 사용하여 할당 할 크기를 정해주고 malloc을 사용하여 방을 만들어 줍니다.
int* p; p = (int *)malloc(SIZEOF(int)*n);
1.6.1. 과제 ¶
- 과제 올리는 곳: 새싹교실/2012/AClass/5회차
- 과제는 일요일 밤까지입니다. 늦어도 월요일 저녁까진 올려주세요.
1.6.1.1. 복습과제 ¶
1.KoiStudy 112~113,115~122 - 문제 많은데 별찍기같은건 한거라서 몇개 할거 없을거에요.
2.Swap함수 작성
3.3,4,6,7,9,3,2를 입력으로 넣은 후 2,3,9,7,6,4,3순서로 출력하는 프로그램을 작성해보세요.(스택)
4.BinarySearch가 무엇인지 찾아보고, 가능하면 한번 구현해보도록 합시다.(가능하면!)
2.Swap함수 작성
3.3,4,6,7,9,3,2를 입력으로 넣은 후 2,3,9,7,6,4,3순서로 출력하는 프로그램을 작성해보세요.(스택)
4.BinarySearch가 무엇인지 찾아보고, 가능하면 한번 구현해보도록 합시다.(가능하면!)
- 아래와 같은 출력이 나오는 프로그램을 어떻게하면 짤 수 있는지 생각해서 써보도록 합시다. 그 방법이 확실하다고 생각되면 짜보아도 좋아요
1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9
6.LinkedList를 구현할 수 있는 구조체를 하나 만들고, 그 구조체를 이용해 linkedlist하나를 만들어봅시다.
7.동적할당을 이용해 list가 몇개 연결되어있는 구조를 만들어봅시다. list->next->next = 동적할당;
8.LinkedList를 만들고, 리스트 data에 4,5,3,7,12,24,2,9가 들어가도록 해봅시다.
7.동적할당을 이용해 list가 몇개 연결되어있는 구조를 만들어봅시다. list->next->next = 동적할당;
8.LinkedList를 만들고, 리스트 data에 4,5,3,7,12,24,2,9가 들어가도록 해봅시다.
1.6.1.2. 예습과제 ¶
1.Koistudy163
2.163번 문제를 풀고, 그 문제를 어떻게 접근하였는지 말해봅시다.
3.문자열이 대칭인경우 Palindrome, 아닌경우 Not Palindrome을 출력하는 프로그램을 작성해봅시다.
2.163번 문제를 풀고, 그 문제를 어떻게 접근하였는지 말해봅시다.
3.문자열이 대칭인경우 Palindrome, 아닌경우 Not Palindrome을 출력하는 프로그램을 작성해봅시다.
- level, racecar, deed는 palindrome, sadfds는 not Palindrome
1.6.2.1. 황혜림 ¶
- 포인터를 사용하여 swap함수 만드는 것을 배웠다.
- 동적할당과 포인터를 사용하여 링크드 리스트 만드는 법을 배웠다.
- 이해는 했지만 코딩을 할수는 없을 것 같다.
- swap함수에서 &a와 &b를 받아서 a와 b를 바꾸는 코딩을 다시한번 해봐야 겠다.!
1.7.2.1. 도상희 ¶
#include <stdio.h> #include <stdlib.h> typedef struct node node; struct node{ int data; struct node* next; }; int main(){ int i; node* head=(node*)malloc(sizeof(node)); node* tmp = NULL; tmp=head; for(i=0 ; i<10 ; i++){ tmp->data=i+1; tmp->next = (node*)malloc(sizeof(node)); //printf("%d\n",tmp->data); tmp=tmp->next; } tmp=head; for(i=0 ; i<10; i++){ printf("%d\n",tmp->data); tmp=tmp->next; } return 0; }
아주아주 친해지기 어려울 것 같은데 그래도 노력은 해봐야겠지.....
1.7.2.2. 황혜림 ¶
- 링크드리스트 삽입과 삭제하는 방법을 배웠다.
- 이해했음
#include <stdio.h> struct node{ int data; struct node *next; }; int main() { struct node *head=(struct node*)malloc(sizeof(struct node)); struct node *tmp = NULL; int i; int n; tmp=head; for(i=0;i<10;i++) { tmp->next=(struct node*)malloc(sizeof(struct node)); tmp->data=i+1; tmp=tmp->next; tmp->next=NULL; } scanf("%d",&n); for(tmp=head;tmp->next!=NULL;tmp=tmp->next) { if(tmp->next->data==n) tmp->next=tmp->next->next; printf("%d ",tmp->data); } return 0; }
1.7.2.3. 한송이 ¶
- 링크드리스트ㅎㅎㅎㅎㅎㅎ
#include<stdio.h> #include<stdlib.h> typedef struct node node; struct node{ int data; struct node *next; }; int main(void){ int i; node *head = (node *)malloc(sizeof(node)); node *tmp = NULL; tmp = head; for(i=0;i<10;i++){ tmp->data = i; tmp->next = (node *)malloc(sizeof(node)); tmp = tmp->next; } tmp = head; for(i=0;i<10;i++){ printf("%d\n",tmp->data); tmp = tmp->next; } return 0; }
1.9.1. 과제 ¶
- 과제 올리는 곳: 새싹교실/2012/AClass/2-2회차
- 과제는 월요일 밤까지입니다. 늦어도 화요일 아침까진 올려주세요.
1.동적할당하는 방법
2.Swap 짜보기
3.call by value, call by reference에 관해 설명하고, 그것이 정확히 어떤 것인지, 어떤 문제가 생기는지 서술.
4.Linked List 삽입, 탐색을 짜고, 함수화해보세요.
5.Struct란?
6.Object Oriented Programming에 관해서 설명해보세요.
7.객체지향의 특성에 관해서 찾아보고, 서술해보세요.
8.Class란?(책참조)
9.Overloading이란?
10.public과 private에 관해서 알아봅시다.
11.Koistudy 126~130번, 146번, 148번, 149번
- C++ 문법을 활용하여 짜봅니다.(cin cout등)
- 소스도 함께 올려주세요.
- C++ 문법을 활용하여 짜봅니다.(cin cout등)
1.9.3. 후기 ¶
- 황혜림
pointer, swap, malloc, struct 문법을 다시 배웠고 c++의 기초를 배웠다. iostream헤더의 사용법도 배우고
using namespace std도 배웠다. using namespace std는 cin, cout을 사용할 때 앞에 붙는 'std::'를 생략하기 위해 써준다.
c언어에서 배웠다 '\n'는 c++에서는 endl로 쓴다는 것도 배웠다.
- 도상희
-#include <iostream> 과 using namespace std; 의 사용법
#include <iostream> using namespace std; int main(){ int a; cin>>a; cout<<a<<endl; }
- swap 복습
#include <stdio.h> #include <iostream> int swap(int*, int*); int main(){ int a,b; a=10; b=20; swap(&a,&b); printf("%d %d\n",a,b); return 0; } int swap(int *a, int *b) { int temp; temp=*a; *a=*b; *b=temp; return 0; }
-오버로딩은 별로다
- 한송이
- c언어와 c++의 다른 문법과 cin,cout class,std없애는 using namespace std를 배웠다
- c언어와 c++의 다른 문법과 cin,cout class,std없애는 using namespace std를 배웠다
1.12.2. 과제 ¶
- 이번 시간에 했던 Person클래스를 생각해서 Bird 클래스를 작성해야합니다.
- 새는 처음에 지상에서(0m)에서 시작할 수도 있고, 다른 높이에서 시작할 수도 있습니다.
- 땅에서부터 새까지의 거리를 저장할 수 있어야 합니다.(distance)
- Bird는 날 수 있습니다. (도망칠때를 대비해) 빨리 날 수도 있어야합니다.
- 새는 A,B가 있는데, A새는 객체를 만들 때 기본 생성자를 사용해도 되고, B새는 객체 생성시에 처음 높이를 다르게 해볼 수 있습니다.
- 새는 처음에 지상에서(0m)에서 시작할 수도 있고, 다른 높이에서 시작할 수도 있습니다.