앞 포스팅과 다른점은 try-catch 위치 변경.
package Test03;


class MainClass {
	public static void main(String[] args) {
		// 객체 생성, 메서드 호출, for한번 허용
		MultiplicationTable play = new MultiplicationTable();
		for (int chk = 0; chk != 1;) {
			try {
				chk = play.inputValue(chk);
				play.outputResult();
			} catch (Exception e) {
				System.out.println(e.getMessage());
			}
		}
	}
}
package Test03;

import java.util.Scanner;

class MultiplicationTable {
	int input_first, input_last;

	int inputValue(int chk) throws Exception {
		// 입력
		Scanner in = new Scanner(System.in);
		System.out.print("구구단의 시작단을 입력하세요 ");
		this.input_first = in.nextInt();
		System.out.print("구구단의 마지막단을 입력하세요  ");
		this.input_last = in.nextInt();

		// 예외 발생시키기
		if (input_first > input_last) {
			throw new Exception("시작단은 마지막단보다 작아야합니다.");
		}
		if ((input_first < 2) || (input_last > 9)) {
			throw new Exception("구구단은 2~9단을 입력하세요.");
		}
		// 예외가 일어나지 않아야 밑으로 이동
		chk = 1;
		return chk;

	}

	void outputResult() {
		for (int dan = input_first; dan <= input_last; dan += 3) {
			for (int line = 1; line < 10; line++) {
				System.out.printf(dan > input_last ? " " : "%d x %d = %2d  ",
						dan, line, (dan * line));
				System.out.printf(dan + 1 > input_last ? " "
						: "%d x %d = %2d  ", dan + 1, line, ((dan + 1) * line));
				System.out.printf(dan + 2 > input_last ? "\n"
						: "%d x %d = %2d\n", dan + 2, line, ((dan + 2) * line));
			}
			System.out.println("");
		}
	}
}

인터넷에 검색하면 많이 나오는 코드이다.

하지만 컴퓨터가 너무 빠른이유인지 모르겠지만... 0초가 나온다.


#include <stdio.h>
#include <time.h>

int main(void) {
    clock_t start, end;
    double timechk;

    start = clock();

    int i;
    for(i = 0; i < 20000; i++) {
        //실행할 문장들
    }

    end = clock();
    timechk = (double)(end - start) / CLOCKS_PER_SEC;
    printf("time : %f\n", timechk);

    return 0;
}


다음은 결과값이 나온 코드이다. 정확한지는 모르겠지만 결과는 나온다... 우선 이걸로 측정해야겠다.
#include <stdio.h>
#include <sys/time.h>

int main(void) {
    struct timeval start, end;
    double timechk;

    // 현재시간
    gettimeofday(&start, NULL);

    int i;
    for(i = 0; i < 10000; i++) {}

    // 계산
    gettimeofday(&end, NULL);
    timechk = (double)(end.tv_sec) + (double)(end.tv_usec) / 1000000.0 -
        (double)(start.tv_sec) - (double)(start.tv_usec) / 1000000.0;
    printf("%f\n", timechk);

    return 0;
}


public class MainClass02 {
	public static void main(String[] args) {
		MultiplicationTable start = new MultiplicationTable();
		start.inputValue();
		start.outputResult();
//		start.outputResult2();
	}
}
import java.util.Scanner;

public class MultiplicationTable {
	int input1, input2;

	void inputValue() {
		// void inputValue() throws Exception{
		int chk = 0;
		while (chk != 1) {
			try {
				// 입력
				Scanner in = new Scanner(System.in);
				System.out.print("first value : ");
				this.input1 = in.nextInt();
				System.out.print("second value : ");
				this.input2 = in.nextInt();

				// 예외 발생시키기
				if ((input1 > input2)) {
					throw new Exception("\n첫번째 값은 뒷자리보다 작은 수를 입력하시오.\n");
				} else if ((input1 > 9) || (input2 > 9)) {
					throw new Exception("\n9 미만의 수를 입력하시오.\n");
				}

				// 예외가 일어나지 않아야 밑으로 이동
				chk = 1;
			} catch (Exception e) {
				System.err.println(e.getMessage());
				// System.err.println(e);
			}
		}
	}

	void outputResult() {
		for (int dan = input1; dan <= input2; dan += 3) {
			for (int line = 1; line < 10; line++) {
				System.out.printf(dan > input2 ? " " : "%d x %d = %2d  ", dan,
						line, (dan * line));
				System.out.printf(dan + 1 > input2 ? " " : "%d x %d = %2d  ",
						dan + 1, line, ((dan + 1) * line));
				System.out.printf(dan + 2 > input2 ? "\n" : "%d x %d = %2d\n",
						dan + 2, line, ((dan + 2) * line));
			}
			System.out.println("");
		}
	}
}

헤더 : string.h

기능 : 문자열을 구분자로 나누어준다.

char* strtok(char* strToken, const char* strDelimit);


strtok() 함수는 내부적으로 검색한 위치를 기억하고 있으므로, 다음번에 실행할 땐 다음 위치부터 검색한다.



#include <stdio.h>
#include <string.h>
#define TOKEN ","

int main(void) {
    char* temp;
    char str[] = "string,int";
    temp = strtok(str, TOKEN);

    printf("str : %s\n", str);
    printf("temp : %s\n", temp);

    temp = strtok(NULL, TOKEN);
    printf("str : %s\n", str);
    printf("temp : %s\n", temp);

    return 0;
}



참고, 참고

먼저 자신의 파일과 디렉토리의 상태를 확인

ls -l

파일, 디렉토리 권한 변경

chmod [권한] [파일, 디렉토리]


 파일타입

user 

group 

other 

rw- 

rwx 

rw- 


파일 타입(file type)

- : plain file. 일반 파일. 실행 파일도 포함한다.

d : directory. 디렉토리 형식.

l : link. 다른 파일을 가리키는 링크 파일.

p : pipe. 두 개의 프로그램을 연결하는 파이프 파일. 

b : block device. 블럭 단위로 하드웨어와 반응하는 파일.

c : character device. 스트림 단위로 하드웨어와 반응하는 파일.


권한

 -

없음, 0

read, 4

write, 2

execute, 1


ex) chmod 700 test

 4(r) + 2(w) + 1(x) = rwx------ 

사용자에게 모든권한 부여.




파일 소유자, 소유 그룹 변경

chown [사용자:그룹] [파일, 디렉토리]

ex) 

chown student file

-> file의 소유자를 student로 변경

chown student:school file         

-> file1 파일의 소유자를 student로, 그룹을 school로 변경

chown -cR student:school dir       

-> dir 폴더와 그안의 모든 파일,디렉토리의 소유자,소유그룹 변경

chown -R worker:webhost dir --from=student:school    

-> dir디렉토리 내의 파일중 소유자가 student이고 소유그룹이 school로 되어 있는 파일의 소유자를 worker로 변경하고 소유그룹을 company로 변경

'System > Linux, unix' 카테고리의 다른 글

[centOS] vsftpd passive 모드 설정  (0) 2014.01.20
[centOS] root 비밀번호 변경  (2) 2014.01.16
[Linux] 우분투 자바 설치하기  (1) 2013.10.02
[Linux] 우분투 FTP 설정하기  (0) 2013.09.29


원격제어_TeamViewer_Portable.exe


'낙서장' 카테고리의 다른 글

OS Command  (0) 2014.01.16
WEB Bookmark  (3) 2014.01.07
temp_page  (0) 2013.11.13
hash  (0) 2013.10.11


public class StarTest {

	public static void main(String args[]) {
		int input = 5;
		int st = 0;
		input = (input % 2 == 0) ? input - 1 : input;

		for (int line = 0; line < input; line++) { 
			for (int put = 0; put < (input - st); put++) {
				System.out.print((put >= st) ? "*" : " ");
			}
			st = line < (input / 2) ? st + 1 : st - 1;
			System.out.println();
		}
	}
}

설명




public class Star08 {
	public static void main(String args[]) {

		int in = 5;
		int st = 0;
		for (int line = 0; line < in; line++) {
			for (int put = 0; put < in; put++) {
				System.out.print((put > st) && (put<in-st-1) ? "  " : "* ");
			}
			if (line < in / 2) {
				st++;
			} else {
				st--;
			}
			System.out.println();
		}
	}
}


import java.util.Scanner;
public class Star06 {

	public static void main(String args[]) {

		Scanner scan = new Scanner(System.in);
		System.out.print("입력하세요 >> ");
		int in = scan.nextInt();
		int star = 1;

		for (int line = 1; line <= in; line++) {
			for (int k = 1; k <= in; k++) {
				System.out
						.print(((k >= star + 1) && (k <= in - star)) ? "  "
								: "* ");
			}
			if (line <= in / 2) {
				star++;
			} else {
				star--;
			}
			System.out.println();
		}
	}
}

대소문자를 구분하지 않고 문자열을 비교한다.

char* strcasecmp(const char *s1, const char *s2, size_t n);

헤더 : string.h

매개변수 : s1 -> 비교할 대상, s2 -> 대상과 비교할 문자열

리턴값 : 값 == 0    // s1 == s2

값 > 0    // s1 < s2

값 < 0    // s1 > s2

1. 먼저 JAVA를 설치하겠습니다. 따로 홈페이지에서 받는 것이 아니라 apt-get를 통해서 다운받도록 하겠습니다. 터미널에서 입력하시면 됩니다.

 sudo apt-get install openjdk-7-jdk


다운로드 중인 화면입니다.


2. 설치가 끝나시면 환경변수 설정을 하겠습니다.

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk [엔터]

ls -tl $JAVA_HOME [엔터]


3. 만약 위의 단계에서 ls 명령을 실행했는데 디렉터리가 없다고 나오면 아래와 같이 JAVA_HOME 환경변수를 설정한다.

JAVA_HOME=$readlink -f /usr/bin/javac | sed "s:bin/javac::") [엔터]

ls -tl $JAVA_HOME [엔터] 


아래와 같은 화면으로 실행됩니다. 마지막은 제대로 설치되었는지 확인하였습니다.


'System > Linux, unix' 카테고리의 다른 글

[centOS] root 비밀번호 변경  (2) 2014.01.16
[UNIX] 폴더, 파일 권한, 그룹권한 변경하기  (0) 2013.10.07
[Linux] 우분투 FTP 설정하기  (0) 2013.09.29
[UNIX] 시스템 명령어  (0) 2013.09.25


1. 먼저 터미널에서 vi로 /etc/vsftpd.conf 파일을 연다.


2. 다음을 변경한다. (대부분 첫번쨰는 값을 바꾸고, 두번째, 세번째는 앞에 #을 삭제해주면 된다.)

anonymous_enable=NO    // 익명사용자의 접속을 허용할 것인지 결정합니다.

local_enable=YES        // 로컬 계정 사용자들의 접속를 허용할 것인지 결정합니다.

write_enable=YES        // 쓰기가 가능한지 결정합니다.


3. ftp를 재시작해준다.



아래는 vsftpd 설정에 대해서 정리가 정말 잘되어있는 글입니다.

사이트바로가기(새창)


'System > Linux, unix' 카테고리의 다른 글

[UNIX] 폴더, 파일 권한, 그룹권한 변경하기  (0) 2013.10.07
[Linux] 우분투 자바 설치하기  (1) 2013.10.02
[UNIX] 시스템 명령어  (0) 2013.09.25
[Linux] 우분투 설치하기  (0) 2013.09.07
package SocialSecurityNumber_02;

import java.util.Scanner;

public class MainClass01 {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		System.out.print("주민등록번호 : ");
		String num = in.nextLine();

		CheckNum01 chk = new CheckNum01(num);
		chk.play();
		
	}
package SocialSecurityNumber_02;

import java.util.Calendar;
import java.util.Scanner;

class CheckNum01 {
	StringBuffer num;
	int select;
	int year, month, day, sex, local, age;

	// 생성자
	CheckNum01(String temp) {
		// StringBuffer을 사용하라고 할까봐 넘겨주었는데 그닥...
		this.num = new StringBuffer(temp);

		char firstNum = num.charAt(7);

		this.year = Integer.parseInt(num.substring(0, 2));
		this.month = Integer.parseInt(num.substring(2, 4));
		this.day = Integer.parseInt(num.substring(4, 6));

		switch (firstNum) {
		case '1':
			this.year += 1900;
			this.sex = 0;
			this.local = 0;
			break;
		case '2':
			this.year += 1900;
			this.sex = 1;
			this.local = 0;
			break;
		case '3':
			this.year += 2000;
			this.sex = 0;
			this.local = 0;
			break;
		case '4':
			this.year += 2000;
			this.sex = 1;
			this.local = 0;
			break;
		case '5':
			this.year += 1900;
			this.sex = 0;
			this.local = 1;
			break;
		case '6':
			this.year += 1900;
			this.sex = 1;
			this.local = 1;
			break;
		case '7':
			this.year += 2000;
			this.sex = 0;
			this.local = 1;
			break;
		case '8':
			this.year += 2000;
			this.sex = 1;
			this.local = 1;
			break;
		case '9':
			this.year += 1800;
			this.sex = 0;
			this.local = 0;
			break;
		case '0':
			this.year += 1800;
			this.sex = 1;
			this.local = 0;
			break;
		}
	}

	// 원하는 것을 출력할 수 있도록 물어보는 메서드
	void play() {
		// while(select != 0)
		outerLoop: while (true) {
			System.out
					.println("MENU > 1: 생년월일 / 2: 나이 / 3: 성별 / 4: 내/외국인 / 0: Quit");
			System.out.print("Select Number-> ");
			Scanner in = new Scanner(System.in);
			select = in.nextInt();

			switch (select) {
			case 1:
				brithday();
				break;
			case 2:
				ageChk();
				break;
			case 3:
				sexChk();
				break;
			case 4:
				localChk();
				break;
			case 0:
				break outerLoop;
			// return;
			}
			System.out.println();
		}
		System.out.println("Quit...");
	}

	void brithday() {
		System.out.println("사용자는 '" + year + "년 " + month + "월 " + day
				+ "일생'입니다.");
	}

	void ageChk() {
		Calendar date = Calendar.getInstance();
		age = (date.get(Calendar.YEAR)) - year + 1;
		System.out.println("사용자의 나이는 '" + age + "'살 입니다.");
	}

	void sexChk() {
		System.out.println("사용자의 성별은 '" + (sex != 1 ? "남자" : "여자") + "'입니다.");
	}
	
	void localChk() {
		System.out.println("사용자는 '" +  (local != 1 ? "내국인" : "외국인") + "'입니다.");
	}
}

제가 자주 사용하는 단축키만 정리해 보았습니다.

Ctrl + 1

퀵 픽스

Ctrl + D

한 줄 삭제

Ctrl + Alt + 방향키(↑, ↓)

줄 복사, 블록 복사(블록상태)

Alt + 방향키(↑, ↓)

블록 이동

Ctrl + Shift + F

코드 포맷팅(문법 템플릿에 맞게 들여쓰기)

Ctrl + F11

전에 실행했던 클래스 실행

F3

선언된 변수, 메소드 정의부로 이동

 

 

Ctrl + L

원하는 라인 이동

Ctrl + / or Ctrl + 7

주석 //

Ctrl + Shift + /

블록 주석 /*  */

Ctrl + Shift + \

블록 주석 해제

Alt + Shift + J

해당 메서드/클래스에 대한 주석생성

 

 

Ctrl + Shift + X

대문자로 변환

Ctrl + Shift + Y

소문자로 변환

Ctrl + O

메소드, 필드 확인

Alt + 방향키(←, →)

열려있는 탭 이동 

Ctrl + k

블록한 문자열의 다음번째 문자열 검색

Ctrl + J

단축키 사용 후 단어입력하면 찾기

Ctrl + Shift + T

클래스 찾기

Ctrl + , or .

다음 annotation 이동(에러, 워닝, 북마크)

Alt + Shift + R

선택된 이름 한꺼번에 바꾸기 

  

F11

디버깅 시작

F8

디버깅 계속

F6

디버깅 한줄씩 실행

F5

디버깅 한줄씩 실행 함수 내부로 들어감

 

 

Ctrl + Shift + L

모든 단축키 보기


public class CheckNum {
	private int year, month, day, age, sex, local;
	private String num;
	Calendar date = Calendar.getInstance();

	// 생성자
	CheckNum(String num) {
		this.num = num;
	}

	/**
	 * 910000-'1'234561 생년월일, 성별, 나이 출력하기 1 : 1900년대 내국인 남자, 2: 1900년대 내국인 여자 3
	 * : 2000년대 내국인 남자, 4: 2000년대 내국인 여자 5 : 1900년대 외국인 남자, 6: 1900년대 외국인 여자 7 :
	 * 2000년대 외국인 남자, 8: 2000년대 외국인 여자 9 : 1800년대 내국인 남자, 0: 1800년대 내국인 여자 생년월일
	 * 값을 받고 Calendar 클래스 사용해서 현재나이 구함.
	 */
	void infoPrint() {
		char gender = num.charAt(7);
		year = Integer.parseInt(num.substring(0, 2));
		month = Integer.parseInt(num.substring(2, 4));
		day = Integer.parseInt(num.substring(4, 6));

		// 7번째 숫자로 성별, 년도, 내/외국인 확인
		switch (gender) {
		case '1':
			year += 1900;
			sex = 0;
			local = 1;
			break;
		case '2':
			year += 1900;
			sex = 1;
			local = 1;
			break;
		case '3':
			year += 2000;
			sex = 0;
			local = 1;
			break;
		case '4':
			year += 2000;
			sex = 1;
			local = 1;
			break;
		case '5':
			year += 1900;
			sex = 0;
			local = 0;
			break;
		case '6':
			year += 1900;
			sex = 1;
			local = 0;
			break;
		case '7':
			year += 2000;
			sex = 0;
			local = 0;
			break;
		case '8':
			year += 2000;
			sex = 1;
			local = 0;
			break;
		case '9':
			year += 1800;
			sex = 0;
			local = 1;
			break;
		case '0':
			year += 1800;
			sex = 1;
			local = 1;
			break;
		}
		age = (date.get(Calendar.YEAR)) - year + 1;

		char sexchk = sex != 1 ? '남' : '여';
		System.out.println("성별 : " + sexchk);
		System.out.println("나이 : " + age);
		System.out.println("생년월일 : " + year + "/" + month + "/" + day);
		System.out.println("내국인 : " + (local == 1 ? "yes" : "no"));
	}
}

위 코드가 전체 코드가 아니라 일부이여서 각자 맞게 사용해야한다.


 명령어

기능 

uname -a 

OS hastname OS버전 OS버전식별자 머신모델넘버 머신식별자 OS라이센스레벨 

아래는 sun OS 일 경우만 해당

psrinfo -v

CPU 정보 

top

CPU 사용량

showrev -a

시스템 패치 넘버

ifconfig

아이피 확인

/var/adm/messages

로그

hostname

호스트이름


'System > Linux, unix' 카테고리의 다른 글

[Linux] 우분투 자바 설치하기  (1) 2013.10.02
[Linux] 우분투 FTP 설정하기  (0) 2013.09.29
[Linux] 우분투 설치하기  (0) 2013.09.07
Linux 명령어  (0) 2013.01.26


public class Star05 {
	public static void main(String[] args) {
		int in = 9;
		for (int line = in; in / 2 < line; line--) {
			for (int j = 0; j < line; j++) {
				System.out.print((in - line) <= j ? "*" : " ");
			}
			System.out.println("");
		}
	}
}

유용하게 바탕화면을 깔끔하게 정리할 수 있는 가젯 두 가지를 소개하겠습니다.

첫 번째 가젯은 시스템정보를 한번에 보여주는 가젯으로 CPU, RAM, 각 드라이버 용량, 네트워크, 배터리, 휴지통, 라디오와 날짜를 보여줍니다. 

두 번째 가젯은 각 프로그램을 넣어서 간단하게 정리할 수 있는 Quick Launch 가젯입니다. 


Computer Status(통합가젯)

Quick Launch


 

 


그 외 가젯 다운로드 사이트

http://win7gadgets.com/

http://addgadgets.com/all_cpu_meter/

http://www.softpedia.com/get/Windows-Widgets/

http://smcamp2.tistory.com/1


달력 가젯 Link




불량화소, 명암, 가독성, 색상 조절, 응답 속도, 감마값 모두 확인 할 수 있는 사이트입니다.

 www.monitor.co.kr


책마다 다른 내용인 argument 와 parameter. 왜 두 개의 단어로 나누어져 있는가?

대체 뭐가 뭔지 모르겠고 어떤 것을 어떻게 불러야할지 몰라서 찾아봤다. 


매개변수(媒介變數), 파라미터(parameter), 모수(母數)는 수학과 통계학에서 어떠한 시스템이나 함수의 특정한 성질을 나타내는 변수를 말한다. 일반적으로는 θ라고 표현되며, 다른 표시는 각각 독특한 뜻을 지닌다. 함수의 수치를 정해진 변역에서 구하거나 시스템의 반응을 결정할 때는 독립변수는 변하지만 매개변수는 일정하다. 다른 매개변수를 이용해 함수의 다른 수치를 다시 구하거나 시스템의 다른 반응을 볼 수도 있다.  - 위키백과


위키백과에서는 아예 통째로 같은 단어로 치는 것 같다. 네이버 지식백과(argument, parameter)를 찾아보아도 동의어로 나온다. 그럼 대체 무엇이 다른점일까?

ANSI C 표준문서에서는 서로 다른 뜻으로 있다.



구글 번역기와 모자란 영어능력으로 이 둘을 간단하게 설명하자면 다음과 같다.

argument : 인수

함수의 호출식 안에 콤마로 구분된 변수.

parameter : 매개 변수 

함수의 선언부나 구현부에 있는 변수.


코드를 보면 훨씬 이해가 쉬울 것이다.

void sample(int parameter){    //int parameter는 parameter, 매개변수이다.
    printf("%d", parameter);
}
void main(){
    sample(3);    //3은 argument, 인수이다.
}


어셈블리어(assembly)는 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 저급 언어이다. 

- 위키백과


어셈블러(assembler)는 어셈블리어를 기계어 형태의 오브젝트 코드로 해석해 주는 컴퓨터 프로그램(언어번역 프로그램)을 말한다. 어셈블러는 기본 컴퓨터 명령어들을, 컴퓨터 프로세서가 기본 연산을 수행하는데 사용할 수 있는 비트 패턴으로 변환시키는 프로그램이다. 

- 위키백과


초창기엔 기계어로 직접 프로그래밍을 하였다. 하지만 사람에겐 어렵기만한 언어였다. 결국 어셈블리 언어를 개발하였고 이는 0과 1로 된 기계 코드 명령어를 대신하는 기호화 코드(mnemonic)를 이용하여 만든 것이다. 니모닉 코드란 mnemonic, 기억을 돕는다는 의미로 기억하기 쉽도록 간략하게 만든 코드를 말한다.


어셈블러란 어셈블리어를 기계어로 번역해주는 프로그램으로 C로 작성된 코드를 실행하기 위해 C 컴파일러로 기계어로 번역해주는 역할과 같다.



public class Star04 {
	public static void main(String[] args) {
		int in = 5;
		for (int line = 0; line < in; line++) {
			for (int j = 0; j < in; j++) {
				System.out.print(line <= j ? "*" : " ");
			}
			System.out.println("");
		}
	}

}


public class Star03 {

	public static void main(String[] args) {
		int in = 5;
		for(int line = 0; line < in; line++) {
			for(int j = in; j > 0; j--) {
				System.out.print(j <= line + 1 ? "*" : " ");
			}
			System.out.println("");
		}
	}

}


public class Star02 {

	public static void main(String[] args) {
		int in = 5;
		for (int line = 0; line < in; line++) {
			for (int j = in; j > line; j--) {
				System.out.print("*");
			}
			System.out.println("");
		}
	}

}


public class Star01 {
	public static void main(String args[]) {
		int in = 5;
		for (int line = 0; line < in; line++) {
			for (int j = 0; j <= line; j++) {
				System.out.print("*");
			}
			System.out.println("");
		}
	}
}


+ Recent posts