U E D R , A S I H C RSS

허아영/Cpp연습

허아영의 C++ 기초 연습공간


코드를 컴퓨터에만 저장만 해 놓으면 다른 컴퓨터를 사용해서 코드를 작성할 때, 이 문제는 코딩 했었나?
어떻게 코딩했었더라? 얼마만큼? 나의 실력은 얼마나 늘었지? 를 잘 알 수 없기에, 잘 알 수 있는 "연습코드의 집합"을 또 하나 만들기로 했습니다.
이번에는 처음 접하는 C++을 cout부터 .. 등등 여러가지 기초적인 것을 코딩 할 것인데요.
C언어도 많이 부족하지만, C++는 저한테 더욱 새롭기 때문에 실수도 많이 범할 것 같아요.
그러므로 C++언어를 많이 접해 보신 선배님이나 동기. 많이 충고, 조언 부탁드립니다 ^^
조언은. 코드 바로 밑에 Advice 아래에 해주시면 됩니다.

8월 1일 부터 시작하는 대장정

1

05/7/12
숫자를 입력받아 그 숫자를 제곱하는 프로그램.
999입력시, 제곱 출력과 함께 프로그램이 끝남.

소스

~cpp 
#include <iostream.h>

int square(int);
void main()
{
	int number, result;
	do{
	cout<<"제곱할 숫자 입력 :";
	cin>>number;
	result = square(number);
	cout<<number<<"의 제곱 = "<<result<<"n";
	}while(number != 999);
}

int square(int number)
{
	int square_num = number * number;
	return square_num;
}

Advice

아직 C++을 C수준으로 사용하시는 것 같아 지금 이 시점에서 이런 말씀을 드리는게 좋을것 같습니다. C++을 공부하기 전에 다음과 같은 의문을 갖으시는게 좋을것 같습니다.
C랑 C++이랑 무엇이 다른가? 단순히 cout을 쓰면 C++인가?
이에 대한 나름대로의 생각을 키워가면서, 다시 말하면 그 C++에 깔려있는 철학(이라고 하면 너무 거창해질 소지가 있지만 마땅한 단어가 떠오르지 않으므로)을 이해하려는 시도와 더불어 C++, 아니 다른 언어를 공부하면 기존에 예상했던 것 이상의 것들을 얻을 수 있으리라 생각합니다. - 아무개
- C언어는 기초적 설명, 원리 등 철학?이 있는 책을 봤으나, C++는 아직 안봐서 잘 모르는데, 차차 공부해 나갈 생각입니다.
C언어에 젖어있는 제 상황에서는 아무래도, 비슷하지만 다른 C++언어로 코딩하는데에 C언어 모양이 날 것같군요. (지금은!)
앞으로 C언어와 C++언어의 차이점을 잘 생각하면서 코딩하겠습니다 ^^ - 허아영
음.. 내가 쓰기는 C++을 쓰면서 C/C++라고 적는이유가 거기에 있다는.. 내소스는 대부분 C++의 탈을쓴 C라지..ㅎㅎㅎ
아직 클래스도 안배워서 클래스를 써도 좀 C의 성격이 강하다는..
지금 만드는 지뢰파인더가 지금까지 만든 클래스중에서는 그나마 클래스를 닮았는데 아직 제대로 되려면 한참 멀었으..
아마 C를 먼저 배워서 몸에 배여서가 아닐까.^^
그런데 대부분 빨리 짜야하는 상황에서는 C의 형식을 많이 따르더라고..ㅎㅎ 역시 좀 편하고 빨리 짜여지는 느낌이..
반대로 C++의 형식은 소스를 재활용할 수 있는 가능성이 높고.. 버그가 적게 생기거나 디버깅이 쉽다는..ㅎㅎ
뭐.. 내생각이니 참조만 해두라고..^^ 맞을확률이 바닥을 기어다닌다는.ㅎㅎ
ㅎㅎㅎ 그럼 열심히 해~!^^ - 조현태

2

05/8/5
절차적 프로그래밍 기법을 통해 소프트웨어를 개발하다보면 개발시간도 너무 많이 소요되고 동일한 작업들이 중복된다는 문제점이 야기된다. 이러한 문제점을 해결하기 위해서 소프트웨어도 공장의 부품처럼 독립성을 갖는 객체들로 구성해 놓고 그들을 조립하여 완성한다는 개념이 객체지향 적인 프로그래밍 기법의 근간이다.
05/8/7
자료형 byte 크기를 알아보는 소스를 짜 보았다.

소스

~cpp 
#include <iostream.h>

void main()
{
	cout<<"int = "<<sizeof(int)<<"byte"<<endl;
	cout<<"short int = "<<sizeof(short)<<"byte"<<endl;
	cout<<"long int = "<< sizeof(long)<<"byte"<<endl;
	cout<<"float = "<<sizeof(float)<<"byte"<<endl;
	cout<<"double = "<<sizeof(double)<<"byte"<<endl;
}
~cpp 
int = 4byte
short int = 2byte
long int = 4byte
float = 4byte
double = 8byte
궁금한게 있는데,,
#include <iostream.h>

Advice


3

Lecture note에 있는 문제인데, C같이 풀었습니당.
~cpp
#include <iostream>
using namespace std;

int err(int subject);
double avg(int *subject_data);
int main () 
{	
	char subject_name[3][5];
	int subject_data[3];
	int true_val;
	int i;
	strcpy(subject_name[0], "국어");
	strcpy(subject_name[1], "수학");
	strcpy(subject_name[2], "영어");
	
	while(1)
	{
		for(i = 0; i < 3; i++)
		{
			cout << subject_name[i] << " : ";
			cin >> subject_data[i];
			true_val = err(subject_data[i]);
			if(true_val == 0)
				break;		
		}
		if(true_val == 1)
			break;
	}
	cout << "평균 : " << avg(subject_data) << endl;
	
	return 0;
}

int err(int subject)
{
	if(subject > 100 || subject < 0)
	{
		cerr << "err!! 다시입력!!";
		return 0;
	}else{
		return 1;
	}
}
double avg(int *subject_data)
{
	double result_avg = 0;
	for(int i = 0; i < 3; i++)
	{
		result_avg += (double)subject_data[i];
	}
	result_avg /= 3;
	
	return result_avg;
	
}
----
허아영 허아영/C코딩연습
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:32
Processing time 0.0156 sec