U E D R , A S I H C RSS

새싹교실/2012/AClass/1회차 (rev. 1.3)

새싹교실/2012/AClass/1회차

곽길문

복습과제

1. 컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요.
-컴파일 : 프로그래밍언어로 코딩한 것을 컴퓨터가 이해할 수 있는 기계어 코드로 변환하는 작업
빌드: 컴파일과 링크를 합쳐 빌드라 한다. 빌드를 해야 컴퓨터가 실행할수 있는 형태의 기계 링크: 프로그램마다의 라이브러리를 내가 만든 것과 연결해 주는 작업
2.상수형, 변수형에 관해서 쓰고, 그 예를 2개만 들어주세요.
-상수형 :상수는 변환 할 수 없는 고유의 수, 프로그램을 개발할 때 변경되어 발생 할 수 있는 버그등의 위험을 줄이기 위해 사용(#define,const)
변수형 (변수의 데이터 타입을 선언해 준다.int, float)
3.char형에 관해 써 주세요. ASCII코드를 통해 나타낸다는 것이 무엇을 의미하는지도 써 주세요.
-char형(문자를 저장할 때 써주는 데이터 타입)
ascii코드는 표준으로 선택해서 문자를 표현함. 알파벳과 일부 특수문자를 포함하여 128개의 문자로 이루어짐
4.#include, 전처리과정이 무엇인지 쓰고, include의 예를 들어주세요.
-전처리 과정이랑 컴퓨터가 코딩한 파일을 컴파일 하기 전에 여러 텍스트를 바꾸고 고치는 기능. include<stdio.h>

5.#define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
- 확장성이 큰 것으로 , 긴 프로그램을 설계할 때 #define으로 정의된 것을 사용할수 있어서 편리하다.
6.++, --, &&, ||, +,-, !=, ==, = 이 무엇을 의미하는지 간단간단히 써 주세요.
-++:하나씩 증가시키는 것
 --:하나씩 감소
 &&:and
 ||:or
 +: 더하는 함수
 -: 줄이는 함수
 !=:not
 ==:같다
 =:오른쪽의 값을 왼쪽에 할당

7.if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.

⁃ #include<stdio.h>
int main(void)
{
int num1;
int num2;
printf(“relationships they satisfy: ”);

scanf(“%d%d”,&num1,&num2);

if(num1==num2){
printf(“%d is equal to %d\n”, num1,num2);

}else if(num1 != num2){
printf(“%d is not equal to %d\n”, num1, num2);
}else if(num1 < num2){
printf(“%d is less than %d\n”, num1, num2);
}else if(num1> num2){
printf(“%d is greater than %d\n”, num1, num2);
}

return 0;

}



8.switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)
성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다.

#include <stdio.h>

int main()
{
int grade;

printf(“Enter the grades.\n”);
scanf(“%d”,&grade);


switch(grade/10){

case 10:
case 9:
printf(“A”);
break;

case 8:
printf(“B”);
break;

case 7:
printf(“C”);
break;

case 6:
printf(“D”);
break;

case 5:
case 4:
case 3:
case 2:
case 1:
printf(“F”);
break;
}

}

9.while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.

#include<stdio.h>
int main(){


int grade;
int counter=1;

while(counter <= 3){
printf(“Enter grade:”);
scanf(“%d”, &grade);
counter= counter +1;

}
}
10.위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요.


#include<stdio.h>
int main(){

int counter =1;
int grade;
do {
printf(“Enter grade:”);
scanf(“%d”,&grade);
counter = counter +1;
}while(counter<=3);

}
11.위 프로그램을 for문으로 바꿔 풀어보세요.

#include<stdio.h>

int main(){

int counter =1;
int grade;

for(counter<=3){

printf(“Enter grade:”);
scanf(“%d”,&grade);
counter = counter +1;
}
}
12.2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요.

파일 첨부

예습과제

예습을 위한 과제

1.함수가 무엇인지 쓰고, 예제 프로그램을 하나 만들어 주세요.
- 함수란 프로그램내에서 동일한 명령문들의 반복되는 부분을 모아놓은 집합체이다. 피연산자나 식과 같이, 함수는 데이터형과 값을 갖고 있다.

float addfun (para11,para2) // float 데이터형으로 정의된 함수 addfun 선언
float para1,para2; // 데이터형 선언
{
float a; // 함수 내부의 지역 변수 a 선언
a= para1 + para2;
return a; //반환값 선언
}

2.return이 무엇인지 써 주세요.

- return은 현재있는 함수에서 빠져나와 그 함수를 호출했던 곳으로 되돌아 가라는 뜻, 되돌아 가면서 그 함수를 호출했던 곳에 어떤 값을 반환하는 것,

return 0;은 0이라는 값을 반환하라는 의미

3.함수형이 무엇인지 쓰고, void타입은 왜 return하지 않는지 써주세요.
- 함수형 프로그래밍은 프로그래밍의 주된 구조가 함수 호출에 기반을 둔 프로그래밍을 말한다. 기존 명령형 언어로 작성한 프로그램보다 간결하고 더 추상적이며 이해하기 쉽고 형식적인 분석과 조작이 용이하다는 특징이 있다.
void는 값을 반한하지 않는다는 뜻이므로 return하지 않는다.

4.재귀함수가 무엇인지 써 주세요.
- 함수내에서 자기자신을 다시 호출하는 함수

5.배열이 무엇인지 쓰고, 왜 배열이란 개념이 나타났는지(왜 쓰는지) 써 주세요.
-동일한 데이터형을 가진 자료구조로, 변수이름을 각각 다른 이름으로 사용해야 하는 번거러움을 줄이기 위해 사용한다.

6.배열을 사용한 간단한 프로그램을 하나 만들어보세요.

#include<stdio.h>

int main()
{

int x3;
sum =0;

x0 = 10;
x1 = 9;
x2 = 8;

for (i=0;i<3;i++)
sum+= xi;
printf("%d\n",sum);
}

한송이


1.컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요.
컴파일 : 작성된 *.c파일을 기계어로 변환하는 과정
빌드 : 실행파일을 만들어 내는 것
링크 : 기계어파일을 기타 라이브러리 파일과 묶어서 실행파일을 만드는 과정


2.상수형, 변수형에 관해서 쓰고, 그 예를 2개만 들어주세요.
상수형 : int, double.... ???

3.char형에 관해 써 주세요. ASCII코드를 통해 나타낸다는 것이 무엇을 의미하는지도 써 주세요.
문자형, 넓은 범위에서 보면 일종의 정수형으로 사용될수 있다.
4.#include, 전처리과정이 무엇인지 쓰고, include의 예를 들어주세요.
#include : 전처리 지시자,<stdio.h>같은 것을 찾아 지시자가 놓인 위치에 그 파일의
내용을 포함 시키도록 지시한다.
표준 입출력 라이브러리 함수를 사용하기 위해서 쓴다.
전처리 과정 : 컴파일러가 프로그램을 처리하기전에 특별한 일을 수행해주는 과정


5.#define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
#define : 특정 대상을 정의함으로써 전처리기가 이를 특별하게 다루도록 하고싶을때 사용한다.
이렇게 정의된 특정 대상을 매크로 라고 한다. 매크로는 전처리기 과정에서 정의된
내용으로 확장된다.

#include<stdio.h>
#define MASSAGE " have a nice day!"

int main(void)
{
puts(MASSAGE);
return 0;
}


6.++, --, &&, ||, +,-, !=, ==, = 이 무엇을 의미하는지 간단간단히 써 주세요.
++ : 증가연산자 예)a++는 a=a+1과 같다
: 감소연산자 예)a는 a=a-1과 같다
&& : 논리 AND 예) a&&b : a,b모두 참이면 1이고 그렇지 않으면 0이다
: 논리 OR 예)a

b : a,b중 적어도 한개가 참이면 1이고 그렇지 않으면 0이다

+ : 더하기
- : 빼기
!= : 같지 않다
== : 같다
= : 할당


7.if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.

#include int main(void)
{

int a=10;

if(a>0)
{
printf("a는 0보다 크다");
}

else if(a<0)
{
printf("a는 0보다 작다");
}

else if(a==0)
{
printf("a는 0이다");
}

return 0;

}

8.switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)

#include int main(void)
{

int a;
printf("1~4중 숫자를 선택하세요");
scanf("%d",&a);

switch(a)
{
case 1:
printf("1을 선택했다.");
break;

case 2:
printf("2을 선택했다.");
break;

case 3:
printf("3을 선택했다.");
break;

case 4:
printf("4을 선택했다.");
break;

default :
printf("잘못된 입력");
}
return 0;

}



9.while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.
#include int main(void)
{

int a=1;

while(a<5)
{
a++;
printf("%d\n",a);
}




return 0;

}


10.위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요.
#include int main(void)
{

int a=1;

do{
a++;
printf("%d\n",a);
}
while(a<5);


return 0;

}



11.위 프로그램을 for문으로 바꿔 풀어보세요.

#include int main(void)
{

int a;

for(a=2;a<5;a++)
{
printf("%d\n",a);
}
return 0;

}

12.2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요.

#include

int main (void)
{

int i,j;


printf("1\n") ;
for(i=1;i<=5;i++)
{

for(j=1;j<=i;j++)
{
printf(" ");
}

for(j=5;j>=i;j--)
printf("\n");

}

printf("2\n");

for(i=1;i<=5;i++)
{

for(j=1;j<=i;j++)
{
printf("*");
}

for(j=5;j>=i;j--)
printf("\n");

}

return 0;

}


삼각형
#include int main (void)
{

int i,j;


for(i=1;i<=5;i++)
{

for(j=0;j
{
printf(" ");
}

for(j=5;j>=i;j--)
for(j=4;j>=i;j--)


printf("\n");

}



return 0;

}

도상희

1. 컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요.

컴파일(Compile) : 컴퓨터가 이해할 수 있도록 기계어로 변환하는 과정
빌드(Build) : 소스파일이 다음 단계를 거쳐 실행파일이 생성되는 과정.
링크(Linking) : 컴파일된 코드를 라이브러리 파일과 연결시켜 주는 단계.

2. 상수형, 변수형에 관해서 쓰고, 그 예를 2개만 들어주세요.
변수형 : 값을 저장하기 위한 공간, 데이터를 저장할 수 있는 메모리 공간에 붙여진 이름을 의미
- int a; (int형 변수 a 선언), float b(실수형 변수 b 선언)
상수형 : 변할 수 없는 고유의 수

- const int max=100; (int형 상수 max를 100으로 선언), #define AA 35(형태를 지정하지 않는 상수명 AA에 정수형 값을 대입)

3. char형에 관해 써 주세요. ASCII코드를 통해 나타낸다는 것이 무엇을 의미하는지도 써 주세요.
Char 1바이트 크기의 정수형 변수
ASSCII코드를 통해 나타내는 것 : 숫자를 이용한 문자의 표현.

4. #include, 전처리과정이 무엇인지 쓰고, include의 예를 들어주세요.
표준 라이브러리 함수를 사용하기 위해서 해당 함수의 선언을 포함하는 헤더파일을 포함해야한다.
#include

5. #define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
매크로 상수를 정의할 때 사용.
01.c 첨부!

6. ++, --, &&,

, +,-, !=, ==, = 이 무엇을 의미하는지 간단간단히 써 주세요.
++ : 증가 연산자
-- : 감소 연산자
&& : 논리 연산자; 피연산자가 모두 참이면 true를 반환(and의 의미)

: 논리 연산자 ;피연산 중 하나라도 참이면 ture를 반환(or의 의미)
+ : 덧셈 연산자 / 단항 연산자(피 연산자 하나) 기능도 지님
- : 뺄셈 연산자 / “
!= : 같지 않은지 비교하는 관계 연산자
== : 같은지 비교하는 관계 연산자
= : 대입 연산자

7. if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.
02.c 첨부!

8. switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)
-성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다.
03.c 첨부!

9. while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.
04.c 첨부!

10. 위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요.
05.c 첨부!

11. 위 프로그램을 for문으로 바꿔 풀어보세요.
06.c 첨부!

12. 2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요.
07.c 첨부!




1. 형변환에 관하여
자동 형 변환
1)대입 연산시 발생 : 오른쪽에 존재하는 데이터가 왼쪽에 존재하는 데이터의 자료형으로 자동 형 변환된다. (값의 표현 범위가 넓은 데이터로의 형 변환은 아무런 문제가 발생하지 않는다.)
2)산술 연산 과정에서의 형 변환 : 산술 연산 과정에서 일어나는 형 변환은 데이터의 손실이 최소화되는 방향으로 진행된다.

강제 형 변환(명시적 형 변환)
변수 앞에 괄호를 열고 자료형의 이름을 넣어준다.

2. 삼항 연산자에 관하여
조건 ? 참 : 거짓
조건이 참이면 참문장 수행, 거짓이면 거짓 문장 수행

3. 혜림이누나, 상희누나 과제를 for문을 각각 3개, 4개만 써서 해보세요.(hint 2*n-1)
08.c첨부 – 힌트(2*n-1)이용해서 다이아몬드 윗부분은 찍었는데 밑에는 못하겠네영!

1. 함수가 무엇인지 쓰고, 예제 프로그램을 하나 만들어 주세요.
필요한 기능을 독립적으로 구현한 코드
09.c 첨부!

2. return이 무엇인지 써 주세요.
현재의 함수에서 빠져나가는 것.

3. 함수형이 무엇인지 쓰고, void타입은 왜 return하지 않는지 써주세요.
Void는 반환할 값이 없다고 선언한 것이므로 return 하지 않아도 된다.

4. 재귀함수가 무엇인지 써 주세요.
자신이 스스로를 호출하는 함수

5. 배열이 무엇인지 쓰고, 왜 배열이란 개념이 나타났는지(왜 쓰는지) 써 주세요.
사용자가 원하는 크기 만큼 변수를 선언할 수 있도록 해주는 변수 구조화 방법.
다수의 데이터를 저장하고 처리할 때 유용하게 사용되기 때문에

6. 배열을 사용한 간단한 프로그램을 하나 만들어보세요.
10.c 첨부!

1. 재귀함수를 이용한 프로그램을 하나 짜 보세요.(eg.1~n까지의 합, n!구하기등)
11.c 첨부!

2. 배열에 숫자를 넣고, 그 배열에 특정 값이 있는지 찾는 프로그램(Search)을 작성해 주세요.

황혜림

1)
1.컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요.
컴파일(Compile)
- 고급언어로 작성된 프로그램을 기계어로 번역하는 것
빌드(Build)
- 컴파일+링크
링크(Linking)
- 라이브러리나 다른 파일에 있는 함수들과 연결시키는 과정

2.상수형, 변수형에 관해서 쓰고, 그 예를 2개만 들어주세요.
- 상수는 프로그램이 실행되는 동안 값이 변하지 않는 데이터이고, 변수는 데이터를 저장하는 데 사용되는 기억 장소의 이름이다.

3.char형에 관해 써 주세요. ASCII코드를 통해 나타낸다는 것이 무엇을 의미하는지도 써 주세요.
- ASCII문자코드는 영문자, 숫자, 특수문자 등을 포함한 128개의 문자를 7비트를 사용하여 표현한다. 8진수로 표현된 가로와 16진수로 표현된 세로를 모으면 해당 문자의 코드가 된다. ‘A’는 10진수 65에 대응되고 ‘a’는 97에 대응된다.

4.#include, 전처리과정이 무엇인지 쓰고, include의 예를 들어주세요.

- 컴파일러가 프로그램을 번역하기 전에 소스프로그램을 처리하는 과정
#include

5.#define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
- 프로그램에서 여러 번 사용되는 상수 값을 매크로 상수로 정의해서 사용하는 것

6.++, --, &&,

, +,-, !=, ==, = 이 무엇을 의미하는지 간단간단히 써 주세요.

++ : 값을 1 증가
-- : 값을 1 감소
&& : AND 연산자

: OR 연산자

+ : 값을 더해준다.
- : 값을 빼준다.
!= : 같지 않으면 (비교)
== : 같으면 (비교)
= : 오른쪽의 값을 왼쪽에 넣어준다.


7.if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.

8.switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)

성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다.

9.while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.

10.위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요.

11.위 프로그램을 for문으로 바꿔 풀어보세요.

12.2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요
1.
*****

  • ***
    • **
      • *

2.
*
**
***
****
*****
13.혜림이누나, 상희누나만 푸는 과제: 다음 별찍기를 만들어주세요.
n으로 일반화하여 입력받은 만큼 별찍기를 하도록 만들면 더욱 좋습니다.
1.
*******

  • ****
    • **

2.

**

  • ****

*******

  • ****
    • **

2)

위 과제가 너무 쉬웠던 분들을 위한 추가 과제
1.형변환에 관하여

- 묵시적 형 변환은 한 자료형에서 이 자료형의 값을 저장하는 데 필요한 기억 장소의 크기가 같거나 큰 다른 자료형으로 자동적으로 변환되는 것이고, 명시적 형 변환은 임시적으로 다른 형으로 변환하는 것

2.삼항 연산자에 관하여

? : 는 C언어의 유일한 삼항연산자이다. 피연산자가 세개가 필요한 연산자이다.

3.혜림이누나, 상희누나 과제를 for문을 각각 3개, 4개만 써서 해보세요.(hint 2*n-1)
- 두 번째 별찍기 for문 4개만 사용해서 하는 것은 못했습니다.
3)
예습을 위한 과제

1.함수가 무엇인지 쓰고, 예제 프로그램을 하나 만들어 주세요.
- 작은 프로그램, 서브프로그램

2.return이 무엇인지 써 주세요.

- 함수의 결과 값으로 돌려주는 명령어

3.함수형이 무엇인지 쓰고, void타입은 왜 return하지 않는지 써주세요.

- void타입은 리턴 할 값이 없을 때 사용하기 때문이다.

4.재귀함수가 무엇인지 써 주세요.
- 함수 본체를 수행하는 도중에 자신을 다시 호출하는 함수
5.배열이 무엇인지 쓰고, 왜 배열이란 개념이 나타났는지(왜 쓰는지) 써 주세요.
- 배열이란 같은 자료형의 변수 여러 개를 하나로 묶을 것을 말한다. 프로그램의 길이를 줄이기 위해서(?)
6.배열을 사용한 간단한 프로그램을 하나 만들어보세요.

4)
위 과제가 너무 쉬웠던 분들을 위한 추가 과제

1.재귀함수를 이용한 프로그램을 하나 짜 보세요.(eg.1~n까지의 합, n!구하기등)

2.배열에 숫자를 넣고, 그 배열에 특정 값이 있는지 찾는 프로그램(Search)을 작성해 주세요.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:44
Processing time 0.0648 sec