2.2. 내용 ¶
2강. 그 뒷면에는..
- 우리는 CPU에 일을 시킨다
- 휘발성 메모리
- 프로그램과 프로세스
- 변수와 메모리
- 자료형의 개념
○ 자료형에 따른 해석 방식
○ 여러 가지 자료형
- 문자 리터럴, 문자열 리터럴
○ 문자와 문자열의 차이
○ 문자열 선언 방법
○ 이스케이프 시퀀스
- ASCII 코드
- 실수 리터럴 표현법
- 진법 표현
- 묵시적 형 변환과 명시적 형 변환
○ 묵시적 형 변환은 연산에 대해 일어난다
○ 캐스팅
- 함수란?
- 다시 보는 Hello world 프로그램
- scanf를 이용하여 콘솔 입력 받기
- printf와 scanf를 이용한 덧셈기 만들기
- printf와 scanf를 이용한 진법 변환기 만들기
3.1. 예제1 ¶
#include <stdio.h> int main(void) { char c = 97; printf("%c%c%c%c%c", c, c + 1, c + 2, c + 3, c + 4); return 0; }
3.2. 예제2 ¶
#include <stdio.h> int main(void) { printf("%c%c%c%c%c%c%c%c%c%c%c%c%c\n", 'C', ' ', 'P', 'r', 'o', 'g', 'r', 'a', 'm', 'm', 'i', 'n', 'g'); printf("C Programming\n"); printf("%s", "C Programming\n"); char* s = "C Programming"; printf("%s\n", s); return 0; }
3.3. 예제3 ¶
#include <stdio.h> int main(void) { int Integer = 100; char Character = '\''; char* String = "문자열"; float FloatingPointRealNumber = 12.7f; double DoubleRealNumber = 12.7; printf("%d, %c, %s, %f, %lf\n", Integer, Character, String, FloatingPointRealNumber, DoubleRealNumber); int Integer2 = 'A'; char Character2 = -36; float FloatingPointRealNumber2 = -3.14; double DoubleRealNumber2 = 100; printf("%d, %c, %f, %lf\n", Integer2, Character2, FloatingPointRealNumber2, DoubleRealNumber2); int Caster = (char)300; int Caster2 = (char)3.14; printf("%d, %d\n", Caster, Caster2); int Something = (3/4) * 4; int Something2 = (3.0/4) * 4; int Something3 = ((float)3 / 4) * 4; printf("%d, %d, %d", Something, Something2, Something3); return 0; }
4. 숙제 ¶
1. 이 페이지에 후기 작성하기!
2. 오늘 공부한 개념 수업 페이지에 정리하기!
3. 다음 프로그래밍 용어들의 뜻 조사하기. 다음 시간에 물어봄.
2. 오늘 공부한 개념 수업 페이지에 정리하기!
3. 다음 프로그래밍 용어들의 뜻 조사하기. 다음 시간에 물어봄.
○ IDE
○ Interpreter
○ Linker
○ Library
○ API
○ Framework
○ Interpreter
○ Linker
○ Library
○ API
○ Framework
5. 후기 ¶
- 후기 작성 요령 : 후기는 F4(ThreeFs + Future Action Plan)에 맞게 작성해주세요.
- Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
- Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
- 오늘 저는 졸았습니다... 정말 죄송했습니다 ㅠ 그래도 오늘 많은 것들을 배웠어요. 앞으로는 절대 졸지 않겠습니다 ㅠㅠㅠ - 천준현
- 점심을 못먹은 채 음료수로 배고픈 걸 참으며 수업을 들어서 굉장히 컨디션이 좋지 않았습니다. 프로그래밍 실습 때 한 사소한 실수들, 다시는 그러지 않도록 좀 더 하는 일에 집중해야겠다고 생각했습니다. - 최지혁
잠을 비롯한많은 것들이 쏟아진 날이었습니다... 배운 내용들을 적은 시간 속에서도 복습을 철저히 해야겠다고 생각하였고, 앞으로 배워야 될 것들이 훨씬 많기에졸지 않고열심히 공부해야겠다고 생각했습니다. - 박인서
6.1. 천준현 ¶
2번숙제) 시작은 데이터에 관한 것이었는데 int는 4byte, char는 1byte, float는 4byte(지표와 가수로 저장, 근사값으로 저장해서 연산할 시 제대로 나오지 않음), double은 8byte, bool은 1bit 의 용량을 가진다는 것을 배웠습니다. 그리고 여러 가지 부가적인 것들에 대해서도 배웠는데 표현 범위를 바꿔주는 unsigned, 문자열을 나타내는 char*, 이스케이프 문자를 뜻하는 문자 앞에 붙는 백슬래쉬 등과 같은 것들입니다. 진법에 대해서도 배웠는데 16진법을 나타내는 수 앞에는 0x를, 8진법 수 앞에는 0을 붙여야 된다는 것을 알았습니다. 뭐라고 표현해야 할지 모르겠지만 하여튼 printf 안에 16진법 %x, 8진법 %o, 실수 %f, double 자료형 %lf 가 있다는 것을 배웠습니다. 그리고 scanf 함수에 대해서 배웠는데 printf 함수와는 다르게 &(ampersand)를 꼭 넣어야 한다는 것을 배웠습니다. 그리고 scanf 쓸 때 #pragma warning (disable : 4996) 을 입력해야 하는 것도 배웠습니다. 거의 마지막으로 형변환에 대해 배웠는데 묵시적 형변환과 명시적 형변환이 있었습니다. 묵시적 형변환은 값의 손실(슬라이싱)이 일어나고 명시적 형변환은 캐스팅을 통해 표시한 다는 것을 알았습니다. 오늘 했던 수업 중 가장 중요했던 것이 무엇인가 생각해보니 '피연산자의 데이터 타입을 잘 보자!' 인 것 같습니다.
3번숙제)
○ IDE : 통합 개발 환경
○ Interpreter : 소스 프로그램을 한번에 기계어로 변환시키는 컴파일러와는 달리 프로그램을 한 단계씩 기계어로 해석하여 실행하는 언어처리 프로그램 (네이버 지식백과)
○ Linker : 부차적 프로그램과 주 프로그램을 연결해 주는 컴퓨터 시스템의 프로그램 (네이버 지식백과)
○ Library : 하나의 파일 속에 기억되어 있는 루틴의 집합 (네이버 지식백과)
○ API : 프로그램 또는 애플리케이션이 운영 체제에 어떤 처리를 위해서 호출할 수 있는 서브루틴 또는 함수의 집합 (네이버 지식백과)
○ Framework : Ashton-Tate 사에 의해 생산된 소프트웨어 패키지, 워드 프로세싱, 데이터 베이스 관리, 스프레드시트, 통신, 사무용 그래픽 등을 제공하는 것 (네이버 지식백과)
3번숙제)
○ IDE : 통합 개발 환경
○ Interpreter : 소스 프로그램을 한번에 기계어로 변환시키는 컴파일러와는 달리 프로그램을 한 단계씩 기계어로 해석하여 실행하는 언어처리 프로그램 (네이버 지식백과)
○ Linker : 부차적 프로그램과 주 프로그램을 연결해 주는 컴퓨터 시스템의 프로그램 (네이버 지식백과)
○ Library : 하나의 파일 속에 기억되어 있는 루틴의 집합 (네이버 지식백과)
○ API : 프로그램 또는 애플리케이션이 운영 체제에 어떤 처리를 위해서 호출할 수 있는 서브루틴 또는 함수의 집합 (네이버 지식백과)
○ Framework : Ashton-Tate 사에 의해 생산된 소프트웨어 패키지, 워드 프로세싱, 데이터 베이스 관리, 스프레드시트, 통신, 사무용 그래픽 등을 제공하는 것 (네이버 지식백과)
6.2. 최지혁 ¶
2.개념정리
먼저 여러가지 자료형들이 존재한다는 것을 배웠습니다. 정수를 저장할 때는 int, 문자를 저장할때는 char, float 과 double 은 실수를, boolean은 on/off, true/ false 같은 논리를 저장할 때 쓰입니다. 게다가, unsigned 를 자료형 앞에 쓰면 음수를 제외하고 대신 그만큼 양수를 더 저장할 수 있다는 것을 배웠습니다.
둘 째, 문자, 문자열의 저장법. 문자 저장법은 'char' '이름' = 아스키코드에 해당하는 수 또는 '알파벳'; 가 기본형태입니다. 문자열은 'char' * '이름' = "---";가 기본형태입니다.
셋 째, 문자 저장시 \의 의미는 '\뒤의 문자는 문법적인 문자로 보지 말라'라는 뜻입니다. 그리고 \0는 null문자로 인식됩니다.
넷 째, 16,8진법 표현을 배웠습니다. 16진법은 그 수 앞에 0x를, 8진법은 그 수 앞에 0을 붙이면 됩니다.
다섯 째, scanf는 출력함수입니다. 사용법은 scanf("%d", &변수이름)입니다.
여섯 쨰, 명시적, 묵시적 형변환입니다. 명시적 형변환은 형변환을 원하는 대상 앞에 (자료형)을 써주면 됩니다. 묵시적 형변환은 범위가 큰 값에서 작은 값으로 자동 변환되므로 값에 손실이 일어납니다.
3. 용어조사 둘 째, 문자, 문자열의 저장법. 문자 저장법은 'char' '이름' = 아스키코드에 해당하는 수 또는 '알파벳'; 가 기본형태입니다. 문자열은 'char' * '이름' = "---";가 기본형태입니다.
셋 째, 문자 저장시 \의 의미는 '\뒤의 문자는 문법적인 문자로 보지 말라'라는 뜻입니다. 그리고 \0는 null문자로 인식됩니다.
넷 째, 16,8진법 표현을 배웠습니다. 16진법은 그 수 앞에 0x를, 8진법은 그 수 앞에 0을 붙이면 됩니다.
다섯 째, scanf는 출력함수입니다. 사용법은 scanf("%d", &변수이름)입니다.
여섯 쨰, 명시적, 묵시적 형변환입니다. 명시적 형변환은 형변환을 원하는 대상 앞에 (자료형)을 써주면 됩니다. 묵시적 형변환은 범위가 큰 값에서 작은 값으로 자동 변환되므로 값에 손실이 일어납니다.
IDE: 통합 개발 환경 (Integrated development environment)
Interpreter: 운영 체제나 프로그래밍 언어의 환경에서 해석하는 입력된 명령어를 읽고 실행하는 컴퓨터 프로그램
Linker: 컴퓨터 과학에서 컴파일러가 만들어낸 하나 이상의 목적 파일을 가져와 이를 단일 실행 프로그램으로 병합하는 프로그램
Library: 소프트웨어 개발에 필요한 소스들을 모아둔 것
API: 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스, 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공함
Framework:소프트웨어프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다 (위키백과 참조)(...아무리 인터넷에서 찾아도 준현이와 인서가 쓴 것 외에는 다른 설명이 보이지 않네요...;;)
Interpreter: 운영 체제나 프로그래밍 언어의 환경에서 해석하는 입력된 명령어를 읽고 실행하는 컴퓨터 프로그램
Linker: 컴퓨터 과학에서 컴파일러가 만들어낸 하나 이상의 목적 파일을 가져와 이를 단일 실행 프로그램으로 병합하는 프로그램
Library: 소프트웨어 개발에 필요한 소스들을 모아둔 것
API: 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스, 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공함
Framework:소프트웨어프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다 (위키백과 참조)(...아무리 인터넷에서 찾아도 준현이와 인서가 쓴 것 외에는 다른 설명이 보이지 않네요...;;)
6.3. 박인서 ¶
- 수업 내용 정리
또, RAM은 휘발성 메모리로 HDD와는 다르게 전류가 없으면 정보가 사라진다.
자료형에는 여러가지가 있다. int는 정수형 데이터를, char는 문자 데이터를, float, double은 실수형 데이터를 저장한다. char의 경우에는 문자를 ASCII코드라는 것으로 저장을 하게 되고, float은 지표와 가수로 자료를 저장한다고 한다. 또 문자는 ''(작은따옴표)로 문자열은 ""(큰따옴표)로 정의한다는 것을 알았고 문자열은 char*로 나타낼수 있음을 알았다.
printf에서 변수를 출력할때 16진법은 %x, 8진법은 %o, float은 %f, double은 %lf 가 있다는 것을 배웠다. 그리고 scanf 함수에 대해서 배웠는데 변수를 입력받을 때 &를 꼭 넣어야 한다는 것을 배웠다.
또 형변환에 대해서 배웠는데 묵시적 형변환과 명시적 형변환이 있었다. 묵시적 형변환은 바꿀 자료형을 굳이 표시하지 않아도 알아서 바꿔주는 것이고, 명시적 형변환은 바꿀 자료형을 직접 표시하는 것이다.
이렇게 정리해보니 정말 많은 것을 배웠네요...
- 프로그래밍 용어조사
○ Interpreter : 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다.
○ Linker : 컴파일러가 만들어낸 하나 이상의 목적 파일을 가져와 이를 단일 실행 프로그램으로 병합하는 프로그램이다.
○ Library : 소프트웨어를 만들 때 쓰이는 클래스나 서브루틴들의 모임을 가리키는 말이다.
○ API : 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
○ Framework : 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다.
출처 : 위키백과