도상희 ¶
1.동적할당하는 방법
int* a = (int*)malloc(sizeof(int));
2.Swap 짜보기
#include <stdio.h>
void swap(int*,int*);
int main(){
int a, b;
a=3;
b=5;
printf("swap전-> a: %d, b: %d\n",a,b);
swap(&a,&b);
printf("swap후-> a: %d, b: %d\n",a,b);
return 0;
}
void swap(int* a, int*b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}
3.call by value, call by reference에 관해 설명하고, 그것이 정확히 어떤 것인지, 어떤 문제가 생기는지 서술.
Call by Value
-값에 의한 호출, 값을 복사해서 넘겨준다.
-변수에 변화가 없어야 하는 경우 사용한다.
Call by Reference
-참조에 의한 호출, 주소값을 넘겨준다.
-변수에 변화를 원할 경우 사용한다.
4.Linked List 삽입, 탐색을 짜고, 함수화해보세요.
-오늘중으로 수정할게요!
5.Struct란?
하나 이상의 변수를 그룹 지어서 새로운 자료형을 정의하는 것이다.
C++에서 struct의 기본 접근자가 public, 클래스는 private이다.
6.Object Oriented Programming에 관해서 설명해보세요.
프로그램을 단순한 명령어와 함수라는 개념에서 벗어나 여러 개의 독립 단위를 생성, 객체들의 모임으로 프로그래밍 하는 기법, 각각의 객체들은 메시지를 주고 받을 수 있으며, 데이터를 유연하게 처리 할 수 있게 된다.
7.객체지향의 특성에 관해서 찾아보고, 서술해보세요.
객체지향 프로그래밍의 주요 특성들로 캡슐화, 상속 및 다형성을 들 수 있다. 캡슐화는 정보 은닉 또는 추상화 개념으로 해석될 수 있으며, 상속은 코드 재사용과 연관이 있다. 다형성은 상속의 개념 속에서 하나의 이름으로 여러 가지로 해석되는 것을 의미한다.
8.Class란?(책참조)
문법적으로 보았을 때 클래스는 구조체와 거의 같은 개념이다. 다만 클래스를 사용할 때는 함수까지도 멤버로 넣어서 사용한다는 점이 다르다. 관련된 변수와 함수들을 하나의 가방에 모아놓은 것이 클래스다. 구조체와 마찬가지로 클래스도 사용자 정의 타입을 만들 수 있다. 다시 말해서 우리가 어떤 클래스를 만들어서 정의하면, 그 클래스는 새로운 타입이 되는 것이다.
9.Overloading이란?
C++은 같은 함수 이름으로 두 가지 이상의 정의를 가질 수 있다. 이것은 다양한 상황에서 직관적으로 호감이 가는 이름을 재사용할 수 있는 것을 의미한다. 같은 함수 이름으로 두 가지 이상의 함수정의가 주어지는 것을 함수 이름 오버로딩(overloading)이라 부른다.
10.public과 private에 관해서 알아봅시다.
public : 모든 곳으로부터의 접근을 허용한다.
private : 자신의 멤버 함수 외에는 접근할 수 없다.
11. Koistudy 126~130번, 146번, 148번, 149번
126
#include <iostream>
using namespace std;
int main(){
int n, i, min, min_n=0, max, max_n=0;
int arr[10000];
cin>>n;
for(i=0 ; i<n ; i++){
cin>>arr[i];
}
min=arr[0];
max=arr[0];
for(i=0 ; i<n ; i++){
if(min>arr[i]){
min=arr[i];
min_n=i;
}
if(max<arr[i]){
max=arr[i];
max_n=i;
}
}
cout<<max_n+1<<" : "<<max<<endl;
cout<<min_n+1<<" : "<<min<<endl;
return 0;
}
127
#include <iostream>
using namespace std;
int main(){
int a,b;
int n1,n2,n3;
cin>>a>>b;
n1=a, n2=b, n3=0;
while(1){
if(n1%2==1){
n3 = n3 + n2;
}
n1=n1>>1;
n2=n2<<1;
if(n1==0){
break;
}
}
cout<<n3<<endl;
return 0;
}
128
#include <iostream>
using namespace std;
int main(){
int num;
cin>>num;
do{
cout<<num%10;
num=num/10;
}while(num!=0);
return 0;
}
129
130
146
#include <iostream>
using namespace std;
int sum(int);
int main(){
int num;
cin>>num;
cout<<sum(num);
return 0;
}
int sum(int n){
if(n<=1){
return 1;
}else{
return n + sum(n-1);
}
}
148
#include <iostream>
using namespace std;
void star(int);
int main(){
int num, sum=0;
cin>>num;
sum=2*num-1;
star(sum);
return 0;
}
void star(int n){
cout<<"*";
if(n<=1){
return;
}else{
return star(n-1);
}
}
149