2017년 10월 31일 화요일

자바 실습 메소드 만들어서 수열의 합 구하기

// 실습) 아래 수열의 합 출력
// 조건) 반복문 안의 반복문이 필요 함 메소드를 만들어서 풀어보자
// 조건) 1~n까지 합 반환하는 메소드 정의
// 형식) static int sum(int n);
// 예) 1 + (1+2) + (1+2+3) + (1+2+3+4) + ... + (1+2+....10) = ?
public class Test001 {

public static void main(String[] args) {
int i;
int s=0;

for (i=1; i<=10; i++)
s += sum(i);

System.out.println("수열의 합= "+ s);
}

static int sum(int n) {
int i;
int s=0;

for (i=1; i<=n; i++)
s += i;

return s;
}

}

자바 실습 알파벳 출력

// 실습) 알파벳을 아래와 같이 출력
// 예) ABCDEFG ... XYZ
// 예) BCD ....    XYZA
// 예) CDE ....    YZAB
// 예) ...
// 예) ZAB ....      XY
// 힌트) 알파벳은 26개 26줄이 찍힌다. 이중루프를 조금만 이용하면 됨
// 힌트) printf("%C", 'A'+1); == B
public class Test002 {

public static void main(String[] args) {
int i, k;

for (i=0; i<26; i++) {
for (k='A'; k<='Z'; k++)
if (i+k <= 'Z')
System.out.printf("%C", k+i);
else
System.out.printf("%C", k+i-26);

System.out.println();
}

}

}

자바 실습 두 정수 입력받아 두 정수 사이의 소수 출력 및 합 출력

import java.util.Scanner;

// 실습) 두 정수 입력받아, 두 정수 사이의 소수 출력, 소수의 합 출력
// 힌트) isPrime() 메소드 활용
// 예) 두 정수 입력: 10 20
// 예) 10 ~ 20 소수: 11 13 17 19
// 에) 소수의 합 = _____
// 실습 문제는 이런식으로 나옴 실기 문제는 총 4문제
public class Test001 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x, y, sum=0;
int i;

System.out.print("두 정수 입력: ");
x = sc.nextInt();
y = sc.nextInt();

System.out.printf("%d ~ %d 소수: ", x, y);

for (i=x; i<=y; i++)
if(isPrime(i)) {
System.out.print(i+" ");
sum += i;
}

System.out.printf("\n소수의 합 = %d\n", sum);

}

static boolean isPrime(int n) {
int i;

if (n == 1)
return false;

for (i=2; i<n; i++)
if (n%i == 0)
return false;

return true;
}

}

2017년 10월 27일 금요일

실기 연습 문제 4번 100 ~ 900 사이의 홀수 합 출력

import java.util.Scanner;

// 실기 유사 문제들 4번
// 100 ~ 900 사이의 홀수 합 출력
// 조건) 메소드 작성 해결
// 형식) static int oddSum(int a, int b);

public class Test01 {

public static void main(String[] args) {
int sum;

sum = addSum(100, 900);

System.out.println(sum);
}

static int addSum (int a, int b) {
int sum=0;
int i;

for (i=a; i<=b; i++)
if (i%2 == 1)
sum += i;

return sum;
}
}

Java 실기 연습 문제 3번 오일러 수 계산

import java.util.Scanner;

// 실기 유사 문제들 3번
// 오일러 수 계산하는 수식 구현
// e = 1 + 1/1! + 1/2! + 1/3! ... 1/20! = 2.71828
// 팩토리얼 메소드 만들기
// 조건) long factorial(int n) 메소드 활용

public class Test01 {

public static void main(String[] args) {
double e = 1.0;
int i;

for (i=1; i<=20; i++)
e += 1.0/factorial(i);

System.out.println(e);

}

// 오버플로 체크하기 체크 안하면 70점
static long factorial(int n) {
long fact = 1;
int i;

for (i=1; i<=n; i++)
if (fact*i/i == fact)
fact *= i;
else
return -1;

return fact;
}
}

Java 실기 연습 문제 2번 메소드 만들고 소수 출력

import java.util.Scanner;

// 실기 유사 문제들 2번
// 1000 이하의 소수를 모두 출력 (한줄에 10개씩)
// 2 3 5 7 11 13 ....
// 조건) 소수 여부 체크 메소드 활용해서 해결
// 형식) static boolean isPrime(int n);
// 메소드를 만들어서 문제를 쉽게 풀자

public class Test01 {

public static void main(String[] args) {
int i, cnt=0;

for (i=1; i<=1000; i++)
if(isPrime(i)) {
System.out.printf("%3d ", i);
cnt++;
if (cnt%10 == 0)
System.out.println();
}

}



static boolean isPrime(int n) {
int i;

if (n==1) {
return false;
}

for (i=2; i<n; i++)
if (n%i == 0)
break;

if (i<n)
return false;
else
return true;
}
}

Java 실기 연습 문제 02번

import java.util.Scanner;

// 실기 유사 문제들 2번
// 1000 이하의 소수를 모두 출력 (한줄에 10개씩)
// 2 3 5 7 11 13 ....

// 선행 실습) 정수를 입력받아 소수 여부 출력
// 예) 정수 입력 : 2
// 예) 소수 : true
// 예) 정수 입력 : 9
// 예) 소수 : false

public class Test01 {

public static void main(String[] args) {
int n, i;
boolean isPn = true;

Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
n = sc.nextInt();

if (n==1) {
System.out.println("소수 : false");
return;
}

for (i=2; i<n; i++) {
isPn = true;
if (n%i == 0) {
isPn = false;
break;
}
}
System.out.println("소수 : "+ isPn);

/*
* if (i<n)
* false
* else
* true
*
*/

}

}

Java 실기 연습 문제 01번

import java.util.Scanner;

// 실기 유사 문제들 1번 쉬움
// 정수를 입력받아 각 자리수 합 출력
// 예) 정수 입력 : 12345
// 예) 각 자리수 합 = 15
// 방법 : 각 자리수를 골라내는 방법 %연산자 이용
// 예) n % 10 == n의 1의 자리
// 예) n/10 % 10 == n의 10의 자리
public class Test01 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
int n;
int sum = 0;

System.out.print("정수 입력: ");
n = sc.nextInt();

while (n > 0) {
sum += n%10; // 일의 자리 추출
n /= 10;
}

System.out.println("각 자리수 합 = "+ sum);


}

}

Java 실기 연습 문제 01번

import java.util.Scanner;

// 실기 유사 문제들 1번 쉬움
// 정수를 입력받아 각 자리수 합 출력
// 예) 정수 입력 : 12345
// 예) 각 자리수 합 = 15
// 방법 : 각 자리수를 골라내는 방법 %연산자 이용
// 예) n % 10 == n의 1의 자리
// 예) n/10 % 10 == n의 10의 자리
public class Test01 {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
int n;
int sum = 0;

System.out.print("정수 입력: ");
n = sc.nextInt();

while (n != 0) {
sum += n%10;
n = n/10;
}

System.out.println("각 자리수 합 = "+ sum);


}

}

Java 숫자 추측 게임

import java.util.Scanner;

// LAB 숫자 추측 게임
public class Test01 {

public static void main(String[] args) {
int answer = (int)(Math.random()*100)+1;
int guess;
int cnt = 0;

Scanner sc = new Scanner(System.in);

do {
System.out.print("정답을 추측하여 보시오: ");
guess = sc.nextInt();
cnt++;

if (guess > answer)
System.out.println("제시한 정수가 높습니다.");
if (guess < answer)
System.out.println("제시한 정수가 낮습니다.");

} while (guess != answer);

System.out.println("축하합니다. 시도횟수="+ cnt);

}

}

JAVA 중간고사 일정

1. 필기시험 : 11월 1일(수) 1시간 자습 1시간 시험

2. 실기시험 : 11월 3일(금) 2시간 오픈북

시험범위 3장까지

2017년 10월 23일 월요일

HTML CSS 글자 속성 예제

CSS3 Font Property
Lorem ipsum
2017.10.24
Lorem ipsum dolor sit amet, consectur adipiscing elit.
<!DOCTYPE html>
<html>
<head>
 <title>CSS3 Font Property</title>
 <style>
  .font_big { font-size: 2em; }
  .font_italic { font-style: italic; }
  .font_bold { font-weight: bold; }
  .font_center { text-align: center; }
  .font_right { text-align: right; }
 </style>
</head>
<body>
 <p class="font big font_italic font_bold font_center">Lorem ipsum</p>
 <p class="font_bold font_right">2017.10.24</p>
 <p>Lorem ipsum dolor sit amet, consectur adipiscing elit.</p>
</body>
</html>

HTML 4-2 마우스 커서

<!DOCTYPE html>
<html>
<head>
<title>마우스 커서</title>
<body>
<h3>마우스 커서</h3>
아래에 마우스를 올려 보세요. 커서가 변합니다.
<hr>
<p style="cursor: crosshair">십자 모양 커서</p>
<p style="cursor: help">도움말 모양 커서</p>
<p style="cursor: pointer">포인터 모양 커서</p>
<p style="cursor: progress">실행 중 모양 커서</p>
<p style="cursor: n-resize">상하 크기 조절 모양 커서</p>
</body>
</html> 마우스 커서

마우스 커서

아래에 마우스를 올려 보세요. 커서가 변합니다.
십자 모양 커서
도움말 모양 커서
포인터 모양 커서
실행 중 모양 커서
상하 크기 조절 모양 커서

HTML 4-2 박스 그림자 만들기

<!DOCTYPE html>
<html>
<head>
<title>div 박스에 그림자 만들기</title>
<style>
.redBox {
 box-shadow : 10px 10px red;
}
.blurBox {
 box-shadow : 10px 10px 5px skyBlue;
}
.multiEffect {
 box-shadow : 2px 2px 2px black, 0 0 25px blue, 0 0 5px darkblue;
}
.blackBox {
 box-shadow : 10px 10px 20px black ;
}
div {
 width : 150px;
 height : 70px;
 padding : 10px;
 border : 10px solid lightgray;
 background-image : url("media/spongebob.png");
 background-size : 150px 100px;
 background-repeat : no-repeat;
}
</style>
</head>
<body>
<h3> 박스 그림자 만들기 </h3>
<hr>
<div class="redBox">뚱이와 함께</div><br>
<div class="blurBox">뚱이와 함께</div><br>
<div class="multiEffect">뚱이와 함께</div><br>
<div class="blackBox">뚱이와 함께</div><br>
</body>
</html>

2017년 10월 20일 금요일

Java 3장 제어문 break문 예제, 컨티뉴문 예제

제어문
1) 선택문 : if-else문, switch문
2) 반복문 : while문, for문, do-while문
3) 분기문 : break문, continue문

break문은 선택문, 반복문을 벗어난다.

import java.util.Scanner;

// 예제) 평균 계산
public class Test001 {

public static void main(String[] args) {
int total = 0;
int count = 0;
int grade;
Scanner sc = new Scanner(System.in);

while (true) {
System.out.print("점수 입력: ");
grade = sc.nextInt();

if (grade < 0)
break;

total += grade;
count++;
}
System.out.println("평균은 "+ total / count);

}
}


// continue문 예제
public class Test001 {

public static void main(String[] args) {
String s = "no news is good news";
int n = 0;
int i;

for (i=1; i<=s.length(); i++) {
if(s.charAt(i) != 'n') // if(s.charAt(i) == 'n') 이게 훨신 효율적이다.
continue; // n++;

n++;
}
System.out.println("n의 개수: "+ n);
}
}

JAVA 3장 중첩 반복문 실습 구구단 출력

// 실습) 구구단 출력
public class Test001 {

public static void main(String[] args) {
int i, j;

for (i=2; i<=9; i++) {
for (j=1; j<=9; j++)
System.out.printf("%d*%d=%2d ", i, j, i*j);

System.out.println();
}

}
}

// 실습) 구구단 출력
public class Test001 {

public static void main(String[] args) {
int i, j;

for (i=1; i<=9; i++) {
for (j=2; j<=9; j++)
System.out.printf("%d*%d=%2d ", j, i, i*j);

System.out.println();
}

}
}

JAVA 3장 중첩 반목문 예제

// 중첩 반복문 예제
// 예제) 사각형 모양 출력하기
public class Test001 {

public static void main(String[] args) {
int i, k;

for (i=1; i<=5; i++) {
for (k=1; k<=10; k++)
System.out.print("*");

System.out.println("");
}
}

}

// 중첩 반복문 예제
// 예제) 직각삼각형 모양 출력하기
public class Test001 {

public static void main(String[] args) {
int i, k;

for (i=1; i<=5; i++) {
for (k=1; k<=i; k++)
System.out.print("* ");

System.out.println("");
}
}

}

// 중첩 반복문 예제
// 예제) 직각삼각형 모양 출력하기
public class Test001 {

public static void main(String[] args) {
int i, k;

for (i=1; i<=5; i++) {
for (k=1; k<=6-i; k++)
System.out.print("* ");

System.out.println("");
}
}

}


JAVA 3장 실습 원주율 구하기

// 실습) 원주율 구하기
public class Test001 {

public static void main(String[] args) {
int i;
double pi = 0;

for (i=1; i<=10000000; i++) {
if (i%2==1)
pi += 1.0/(2*i-1);
else
pi -= 1.0/(2*i-1);
}

System.out.println(pi*4);

}

}

JAVA 중간고사 문제

중간고사 시험범위 3장까지

필기

예제: n이 3이더라 그러면 결과 syso가 어떻게 나오느냐 이런 식으로 나온다.

교재에 있는 실습 예제 70%가 나옴

숙제에 있는 문제들도 나옴

2017년 10월 18일 수요일

10월 19일 네트워크 수업

네트워크 시험 4강까지

이더넷 10m
고속이더넷 100m
기가비트이더넷 1g 빽본에서 사용

광역통신망(WAN)
- 해저케이블로 깔았음
- 멀리가는게 중요함

회선 교환
- 패킷형식
- 안정적
- 딜레이 없음
- 독점이라 비효율적

메시지 교환
- 블락형식
- 저장했다가 전송함
- 스토어 할때 버퍼를 많이 씀(스풀링,버퍼)

패킷 교환
- 해당된 매체를 쉐어해서 감
- 기본적으로 이걸 사용
- 전화망은 서킷 교환이다

2계층 프레임
3계층 어쩌구
4계층 저쩌구

패킷의 최대 크기 1500바이트

ATM 교환 방식
- 비동기전송모드(ATM)
- 패킷이 아닌 셀의 방식으로 함



무선통신
-WLAN
-b, a, g, n, ac, ad

다이렉트 와이파이

매체 접근 방식
-CSMA/CD (유선)
-CSMA/CA (무선)
-멀티플 엑세스

데이터 암호화
-WEP 잘 안씀 보안 취약
-WPA2


-------- 4장

OSI (Open System Interconnection)
- 7계층
- PDNTSPA
- 2계층 이더넷
- 3계층 인터넷 프로토콜(IP)
- 4계층 TCP(아주 깐깐, 민감)와 UDP(굉장히 덜렁덜렁댐, 속도가 빠름)
- 6계층 코드 암호화
- 7계층 애플리케이션
- PDU 프로토콜 데이터 유닛
- 4 세그컨트 방화벽
- 3 패킷 라우터
- 2 프레임 스위치
- 2계층 트레일러(CRC가 있음 FCS)
OSI 참조 모델의 데이터 전송
- 캡슐화라고 한다 en캡슐레이션
- 역캡슐화(캡슐벗김)
- 계층장비 방화벽은 포트
- 웰론포트(다쓰는 알려져있는 포트)
표현계층 응용계층

인터넷 모델 계층 // 그리기 문제 나올지도 모름
- TCPIP 4레이어
- 네뜨웍 엑세스 계층
- 전송계층
- 어플리케이션 계층 등등

TCPIT 4레이더
- 니탓이다
ISO

2017년 10월 17일 화요일

10월 18일 네트워크 수업 -1

시험문제 좀 약하게 냄 2학년때는 객관식 50문제 영어로 주관식 20문제 서술 공부한 흔적 없으면 F

-----

블록 합 검사
- 2차원적으로 검사하는 방법
- 패리티 비트를 가로, 세로로 검사한다.

순환 중복 검사
- CRC는 통신에 지난번에 얘기해준 프레임에 요걸 체크한다 프레임이 몇계층에서 생산되는 데이터라 했죠? 2계층 패킷하면 3계층 IP는 3계층 프레임이 가장 마지막에 있는 꼬리를 트레일러라고 함 트레일러를 체크할때 들어가는 부분이 프레임 체크 (FCS) 여기 FCS안에 CRC가 들어간다. 다항식을 가지고 계산을 한다. 해당하는 값과 다항식을 연산 했을때 거이 대부분이 동일하지 않는 값이 나온다.

근거리 통신망
-근거리 LAN 대도시 MAN 광역 WAN
-LAN은 가까이 있으니 중요한건 스피드이다. 멀리 연결 해주는 것의 중요한 점은 얼마나 멀리가나가 중요하다.
-WLAN (와이레스, 무선랜)
-LAN, 이더넷만 공부하면 된다. 우리가 외국같은데 가면 카피좀 해와라 하면 제록스 카피 플리즈 한다. 상식적으로 제록스 알아두기.
-80년 2월 모여서 회의를 했다. 그 표준을 802.3 802.11 시험에 안나옴 상식만 알기
-LAN의 특징은 단일 기관의 소유로 수 km 범위 내 요즘은 (몇십 km 메트로 이더넷도 있음)
-LAN의 전송 방식 베이스밴드, 브로드밴드 두가지 있다. 브로드밴드 (아날로그, 전화는 070나오기 전에는 아날로그였다.)
-컴퓨터는 디지털 신호를 아날로그(전화선,모뎀)로 전환해서 보내고 모듈레이션(,디모듈레이션 두개를 묶어서 모뎀이라고 함)
-베이스밴드 이더넷이 대표적이다.

매체 접근 방식
- 매체(미디어) 네뜨웍에 미디어는 케이블이다. 무선같으면 공기, 신호가 전달 되는곳, 통로이다.
- 경쟁, 토큰 제어(독점) 방식이 있다.
- 경쟁이 지난번에 말해줬던 캐리를 보내서 센싱을 하는것. 자기신호를 보내서 센싱을 해서 누가 쓰지 않으면 지가 쓰는거(CSMA/CD(충돌방지를 했는데도 충돌이 일어나서 그걸 해결해주는거, 클리전 디텍트)) 클리전 어보이드는 무선랜에 사용하는건데 회피하는거다. 그건 경쟁방식이지만 독점이다. 그래서 클리전이 업따.
-토큰 방식 토큰 캡쳐 알고리즘을 사용한다. 그 해당하는 버스(링)에 일정한 패턴이 돌아다닌다(토큰) 그 토큰을 잡는 애가 통신을 사용한다. 내가 토큰을 잡았으면 사용못함. 예전에 예를 들어준 노래방, 마이크에 비교하면 알기 쉬움. 충돌이 없음
- CSMA/CD 방식에서 충돌이 일어나면 랜덤한 시간동안 대기하는데 왜 랜덤일까? 충돌은 두개이상의 놈들한테 일어나기 때문에 A도 랜덤 B도 랜덤 이렇게 가야 충돌이 발생할 확율이 줄어든다.
-

JAVA for 실습

import java.util.Scanner;
// 실습) 1/1 + 1/2 + 1/3 + ... 1/100 = ?
// 조건) 소수점 2째자리까지 출력
public class Test002 {

public static void main(String[] args) {
int i;
double sum = 0.0;

for(i=1; i<=100; i++)
sum += 1.0/i;

System.out.printf("%.2f",sum);
}

}


import java.util.Scanner;
// 실습) 1/1 + 1/3 + 1/5 ... 1/99 = ?
// 조건) 소수점 2째자리까지 출력
public class Test002 {

public static void main(String[] args) {
int i;
double sum = 0.0;

for(i=1; i<=100; i++)
if (i%2==1)
sum += 1.0/i;

System.out.printf("%.2f",sum);
}

}

JAVA 난수의 합 계산 및 메소드

난수 발생 함수(메소드)

Math.random() : [0.0, 1.0) 임의의 실수 // 0.0은 나올 수있는데 1.0은 절대 안나옴

==> 0~99사이의 난수 발생

Math.random()*100 : [0.0, 100.0)

(int)(Math.random()*100) : [0, 99] 임의의 정수

[1, 100]
(int)(Math.random()*100) + 1

[1, 6]
(int)(Math.random()*6) + 1


import java.util.Scanner;
// LAB: 난수의 합 계산하기
public class Test002 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

int i, n, sum = 0;

System.out.print("난수의 개수: ");
n = sc.nextInt();

for(i=1; i<=n; i++) {
sum += (int)(Math.random()*100);
}
System.out.println(sum);

}

}

JAVA for 루프 이용 약수 계산하기

import java.util.Scanner;
// LAB: 약수 계산하기
public class Test002 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

int i, n;

System.out.print("양의 정수를 입력: ");
n = sc.nextInt();

System.out.printf("%d의 약수는 다음과 같습니다.\n", n);
for(i=1; i<=n; i++) {
if (n%i==0)
System.out.print(i+" ");
}
}

}

JAVA 메소드 만드는법(팩토리얼)

import java.util.Scanner;

// 예제) 팩토리얼 계산하기
public class Test002 {

public static void main(String[] args) {
long f;

f = factorial(20);

System.out.println(f);


}
static long factorial(int n) {
int i;
long fact = 1;

for (i=1; n>=i; i++)
if(fact*i/i==fact)
fact *= i; // fact = fact * i
else
return 0; // 반환

return fact; // 반환
}

}

JAVA for 루프 이용해 팩토리얼 계산하기 및 오버플로 확인

import java.util.Scanner;

// 예제) 팩토리얼 계산하기
public class Test002 {

public static void main(String[] args) {
int n, i;
long fact = 1;

Scanner sc = new Scanner(System.in);
System.out.print("정수 입력: ");
n = sc.nextInt();

for (i=1; n>=i; i++)
if(fact*i/i==fact)
fact *= i; // fact = fact * i
else
fact=0;
System.out.printf("%d!은 %d입니다.", n, fact);

// 퀴즈) long 타입이 계산 가능한 최대 팩토리얼은? 답: 20
// 퀴즈) int 타입이 계산 가능한 최대 팩토리얼은? 답: 12
// 오버플로 확인법 if(fact*i/i==fact)
}

}

JAVA for 루프 조건식 작성 요령

정해진 횟수만큼 반복하는 구조


// 조건 변경식 작성 요령
for(i=1; i<=10; i++)
    액션;

for(i=1; 1<11; i++)
    액션;

전자, 후자 중에서 전자의 방법으로 작성하는게 반복횟수를 명확히 알 수있어서 좋다.

for ( i=0; i<=9; i++)
    액션;

for ( i=0; i<10; i++) // 이 방법이 더 좋다 보기편함
    액션;

JAVA 선택과 반복 for 실습

// 실습 1~100 정수를 한 줄에 10개씩 출력
// 예)  1  2  3 ... 10
// 예) 11 12 13 ... 20
public class Test002 {

public static void main(String[] args) {
int i, sum=0;

for(i=1; i<=100; i++) {
System.out.printf("%3d ", i);
if (i%10==0)
System.out.println();
sum += i;
}
System.out.println("\n1~100까지 합="+ sum);
}

}

JAVA 선택과 반복 for 예제

초기값;
while (조건식) {
     반복액션;
     변경문; // 무한 루프 방지
}

=>

for ( 초기값; 조건식; 변경문 ) // 반복 횟수를 바로 알 수있다.
     반복액션;


public class Test001 {

public static void main(String[] args) {
int i, sum=0;

for(i=1; i<=10; i++) {
System.out.print(i+" ");
sum += i;
}

System.out.println("\n1~10까지 합= " + sum);
}

}

운영체제 4주차 및 중간고사 내용

4주차 - 선점과 비선점 시험에 나옴 스케줄러 종류 선점 비선점 있는데 하여튼 나옴

스케줄링을 위한 데이터 베이스는 큐로 구성된다 (스택 X)


1주차 문제 6문제
2주차 문제 8문제
3주차 문제 7문제 - 3문제 주관식 (단답)
4주차 문제 3문제 냈음
- 1단계 2단계 3단계(?) 흐름을 읽어서 공부해라
- 선점과 비선점 1개
- 강의교안에서 중요하다 한거 스케줄링의 고려할 사항 1개


--- 점수 확인 바로 가능한건 객관식 21문제

--- 주관식 3문제는 1개당 3점 교수님이 직접 채점

--- 출석 20 중간 30 기말 30 나머지 가산점 상대평가

2017년 10월 13일 금요일

JAVA 실습) 최대공약수 찾기 중요

import java.util.Scanner;

public class Test001 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x, y, r;
System.out.print("두개의 정수를 입력하시오(큰수, 작은수):");
x = sc.nextInt();
y = sc.nextInt();


while (y > 0) {
r = x % y;
x = y;
y = r;
}


System.out.printf("최대 공약수는 %d", x);
}

}

Java do-while 설명 및 예제

Pre-Test Loop : while, for
Post-Test Loop : do-while // 한번은 무조건 반복한다.

import java.util.Scanner;

public class Test001 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int month;
do {
System.out.print("올바른 월 입력: ");
month = sc.nextInt();
} while (month < 1 || month > 12);

System.out.println(month);
}

}

JAVA while 실습) 1에서 100까지의 홀수의 합 구하기

import java.util.Scanner;

public class Test001 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = 1;
int sum = 0;

while (i <= 100) {
if (i%2 == 1)
sum += i;
i++;
}
System.out.printf("합계= %d",sum);

}

}

Java while 1~10 까지의 합계 구하기

import java.util.Scanner;

public class Test001 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = 1;
int sum = 0;

while (i <= 10) {
sum += i; // sum = sum + i;
i++;
}
System.out.printf("합계= %d",sum);

}

}

JAVA while 실습 1에서 100까지 출력하기

import java.util.Scanner;

public class Test001 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = 1;

while (i <= 100) {
System.out.printf("%3d", i);
if (i%10==0)
System.out.println();
i++;
}


}

}

JAVA while 실습 구구단 출력하기

import java.util.Scanner;

// 실습) n단을 입력받아, 구구단 출력
// 조건) printf() 메소드 사용
public class Test001 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
int i = 1;
System.out.print("구구단 입력: ");
n = sc.nextInt();

while (i <= 9) {
System.out.printf("%d*%d=%2d\n", n, i, n*i);
i++;
}


}

}

JAVA while 실습 홀수만 출력하기


public class Test001 {

public static void main(String[] args) {
int i=1;

while(i<=100) {
if(i%2==1)
System.out.print(i+" ");
i++;
}

}

}

JAVA 10/13 수업 내용 -1

if (조건식)
   액션;


while (조건식)  // while은 반복횟수가 명확하지가 않다. 조건이 거짓일때 반복이 해제
    반복액션;          // while은 구조적으론 쉬운데 문제는 어렵다. for가 쉽다.

초기값;
while (조건식) {   // 초기값이 조건식에 참이 되어야 반복을 시작한다. 변경문은 거짓을 유도해야 한다. 아니면 무한루프 발생
    반복액션;
    변경문;
}


for (expr1; expr2; expr3)
    반복액션;

2017년 10월 12일 목요일

IT영어 중간고사 예비문제 답, 풀이

중간고사 예비문제 답이라도 외우기 문제를 똑같이 냄

1. is 현재형이기 때문에 is
2. was 과거형이기 때문에 was
3. doesn't 조동사 부정문 (dose not도 맞는데 한칸이기 때문에 doesn't를 적자)
4. wrote write의 과거형은 wrote이다.
5. T should(can, will, must(should 보다 강제성 있음), should, may(1.해도좋다 2.일지도 모른다))라는 조동사뒤에 동사원형 be가 나온다.
6. F be동사 + ing가 되야한다 take를 taking으로 변경
7. Who는 기본적으로 단수
8. F pay-paid-paid 는 불규칙 동사이다.
9. T
10. F 숙어표현인데 on the way home(집으로 가는길)
11. F
12. taking be동사가 이미 나왔으므로 ing를 붙여서 형용사로 만든다.
13. worked when he was 가 나와서 과거임.
14. open 동사도 없고 복수형 뒤라서 원형으로 나온다.
15. goes she가 3인칭 단수라서 es 붙임
16. sends he뒤에 organizes(뒤에 보통 ze 같은게 붙으면 동사다) 라는 동사가 나왔다.
17. arrive announced ed가 붙었고 동사자리(주어 뒤에) 있으니 동사다. will 뒤엔 동사원형 would는 will의 과거형, at(전치사)이 있어서 reach를 사용 못한다 그러므로 arrive가 답.
18. locate are given(받는다) be able to 다음엔 동사원형이다.
19. admits participating in(참석하다) each은 각각이라는 뜻으로 단수이다. ance로 끝나면 명사 ly끝나면 부사 ness끝나면 명사 접속사 다음에 주어 동사라서 동사가 들어가야 한다.
20. Represent a number of(숙어로 많은 이라는 뜻) 동사가 들어가야 한다. ing ive는 동사가 아님 복수형이므로 동사원형이 들어감
21. desirable was가 혼자 완성된게 아니면 대부분 형용사가 들어가니 형용사를 찾아야 한다. 전치사 + 명사(of + negotiating) 전치사는 장소나 시간 방법 등을 나타냄 ble로 끝나면 대부분 형용사.

데이터베이스 10월 13일 - 1

9조 발표 AWS 조사
폭넓은 CMS, 리소스를 동적으로 확장 및 축소
CMS란 네이버 블로그같이 만드는것을 도와주는 것이라고 보면 된다. (워드프레스)

철수조 10조 발표 AWS 조사
하둡 아마존 EMR

이벽조 4조 발표
AWS 해킹 청구서 폭탄  Aurora
엑세스키 깃허브 프라이빗 오로라의 단점


2017년 10월 11일 수요일

10 12 네트워크 수업 - 1

통신방식에는 동기화 방식이 있고 비동기화 방식이 있다.

동기화 방식은 송신 측에서 전송한 데이터의 각 비트를 수신 측에서 정확하게 수신할 수 있도록 하는 작업이다. 비트를 딱 딱 딱 맞춰서 보내는게 동기화 방식. 직렬 전송은 한줄로 보냄. 병렬 전송은 여러줄로 보냄

FCS 오류검출필드 - CRC방식 사용

비동기화 방식은 하나의 문자의 단위로 보낸다.

대부분 직렬 전송 사용 버스 같은 경우에 병렬 사용

통신오류검출

오류체크는 정확하게 보냈는데 받는 쪽에서 정확하게 받는다는 보장이 없다.
통신하나하기 위해 오류통신을 또 하면 비효율적이니 이것을 한다.

단일-비트 오류는 오류 수정이 가능하다.(?) 아스키 코드가 보통 7비트로 되어있다. 에러 검출을 위한 비트를 하나 추가해서 8비트 (패리티 비트)  1의 갯수 홀수 짝수를 파악해 오류 체크를 한다. 단점은 2개의 비트가 오류나면 체크를 못한다(홀짝 으로만 체크하기 때문) 제일 왼쪽에 있는 비트 0,1을 전송하기 전에 홀,짝으로 수정해서 보낸다.
아스키 코드 2진수 패리티 비트 홀 짝 자기 이름 아스키 코드로 찾아서 패리티 비트 적용하기

집단 오류
다항식을 이용한 CRC(이더넷에 마지막에 드가있음)체크를 이용한다.(많은 부분이 오류남)

10 11 네트워크 수업 - 2

통신통식

유니캐스트는 1:1 통신이다. 유니캐스트는 컴퓨터 네뜨웍에서 통신이라 하면 내가 받느냐 안받느냐 차이 mac 주소로 확인한다. (주로 2계층에서 처리함)
(프레임 osi 7레이어에 나옴)

브로드캐스트는 모든 사람한테 통신한다 1대모두(1:모두)
브로드캐스트 주소는 ff-ff-ff-ff-ff-ff로 정해져이씀 (맥의 브로드캐스트 주소)


멀티캐스트 일대불특정다수(정해진그룹) 그룹주소를 할당받는다. 3계층에서 사용되는 ip주소를 a, b, c, d, e 그룹으로 나눈다 보통 인터넷은 a, b, c 클래스 d클래스는 멀티캐스트용 주소다. e는 예비용으로 두고 사용 안함
멀티캐스트용 맥 주소가 생긴다 그게 멀티캐스트
모든 사람들 중에서 특정한 그룹에 전송하는데 그룹주소가 필요하다.

브로드캐스트가 많으면 충돌이 생김
브로드캐스트를 나누는 것은 3계층 장비인 라우터
충돌영역을 나누는 장비가 브릿지
멀티포트를 가진 브릿지는 스위치 스위치는 충돌영역을 나눈다.

LAN에서 통신하는 방식

유니캐스트 브로드캐스트 멀티캐스트

스위치를 사용하면 해커가 접근하기 힘듬


단방향 심플렉스에는 방송이 있음 라디오, 텔레비전
양방향 듀플렉스- 반이중(하프 듀플렉스) 무전기, 워키토키 같이 양방향이지만 동시에는 안됨
-전이중(풀 듀플렉스) 동시에도 되는 양방향



통신방식

동기화 방식은 블럭 단위로 보낸다 서로의 컴푸터 속도가 다르니 맞춰야 하기 때문
비트지향방식이 블락단위

직렬 방식은 하나씩 하나씩 보내는 방식 보통 인터넷에서 직렬 방식 사용
(버스형태로 되어있는건 병렬)

병렬은 속도가 빠르고 케이블 길이가 짧다

비트 지향 동기화 방식은 다음수업때

10 11 네트워크 수업

10Base-5 두꺼운 케이블 최대길이 500m 지금은 사용 안함
10Base-2 얇은 케이블 최대 길이 200m(정확하게 185m)

쉴드 STP 케이블 호일로 싸고 있음 은박에 쌓여있으니 노이즈에 강함
UTP 보다 비쌈

UTP 케이블 노이즈에 강하진 못하지만 이 자체가 꼬아줌으로 인해서 전류가흐르면서 발생하는 자기장(크로스토크)를 최대한으로 줄임 그래서 꼬은거임 가성비가 좋음 순서대로 꼬았는데 그 순서를 외워야 함 T568B T568A 왼쪽이 1번임 주로 568b를 사용 (스트레이트 스루)
색깔 순서 외우기 4쌍 파란색 오렌지, 그린 갈색, 색깔하나에 화이트가 칠해져 있음 오렌지를 레드라고 함 갈색을 똥색이라 함 RGB로 외우면 편함 화이트가 먼저 내림 레이디 퍼스트
RGB 레이디 퍼스트 나쁜남자 파랑이 남자

오렌지 화이트 > 오렌지 > 그린 화이트 > 블루 > 블루 화이트 > 그린 > 갈색 화이트 > 갈색

T568A도 순서 기억하기 오렌지랑 그린이 바뀜
T568A와 T568B를 연결하면 크로스 오버 케이블



광섬유 케이블은 싱글모드와 멀티모드로 나뉨

싱글 - 한번에 하나의 시그널  택시
멀티 - 한번에 여러개의 시그널   버스

코어가 큰게 멀티 코어가 작은게 싱글
광원 - 삧을 싱글모드는 레이저를 사용 멀티모드는 LED 사용

싱글 모드가 멀리가고 속도도 빠름 비쌈

광섬유 장점 노이즈에 강함, 멀리감
단점 비쌈, 설치가 매우 힘듬









무선

801.11 계열이 와이파이
802.15 계열이 블루투스 팬 계열 퍼스날 네뜨웍

고주파는 정보를 많이 담는데 멀리 못간다.

보통 라디오파를 많이 사용
주파수와 주파수의 통신이다. 핸드오브
6각형 중계기를 셀이라고 한다 (셀폰)
주파수를 개인별로 나눠서 보낸다 옛날엔 야구장 같이 사람들이 많이 몰리면 전화가 안됬다.
전자렌지도 무선 방햄 ㅏㄶ이함





서비스를 제공한다 서버
클라이언트  고객

영원한 서버 영원한 물주는 서버 클라이언트 모델
Peer to Peer 1:1로 동등하게 통신 번갈아가면서 서버함

2017년 10월 10일 화요일

JAVA if else 실습

import java.util.Scanner;

// 실습) 실수를 입력받아 반올림한 정수 출력
// 예) 실수 입력 : 1.5 반올림 정수 = 2   실수 입력 : 1.49 반올림 정수 = 1
public class Test004 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double d;

System.out.print("실수 입력: ");
d = sc.nextDouble();

if (d>=0)
if(d-(int)d>=0.5)
System.out.printf("반올림 정수=%d\n", (int)d+1);
else
System.out.printf("반올림 정수=%d\n", (int)d);
}

}

JAVA if else 실습

import java.util.Scanner;

// 실습 2차원 좌표값(x,y)을 입력받아, 몇 사분면인지 출력하기
// 예) x, y 좌표 입력 : 1 3 1사분면  x, y 좌표 입력 : 1 -3 4사분면
public class Test003 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x,y;

System.out.print("2차원 좌표값을 입력 하시오 (x, y) :");
x = sc.nextInt();
y = sc.nextInt();

if (x>=0)
if (y>=0)
System.out.println("1사분면");
else
System.out.println("4사분면");
else
if (y>=0)
System.out.println("2사분면");
else
System.out.println("3사분면");


}

}

JAVA switch 예제

import java.util.Scanner;

// 예제 성적을 학점으로 변환하기 (switch 이용)
public class Test002 {

public static void main(String[] args) {
int score, num;
char grade;

Scanner sc = new Scanner(System.in);
System.out.print("성적을 입력하시오 : ");
score = sc.nextInt();
num = score / 10;

switch (num) {
case 10:
case 9:
grade = 'A';
break;
case 8:
grade = 'B';
break;
case 7:
grade = 'C';
break;
case 6:
grade = 'D';
break;
default:
grade = 'F';
}
System.out.println("학점: " + grade);

}

}

JAVA if else 이용해 근 출력하기

import java.util.Scanner;

// 실습 2차 방정식의 계수 입력받아, 근을 출력 Math.sqrt()
public class Test001 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a, b, c, D;

System.out.print("2차 방정식 계수(a, b, c) 입력 : ");
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();

D = b*b - 4*a*c; // 판별식

if (D<0)
System.out.println("근이 없음");
else if (D==0)
System.out.printf("중근 = %.1f\n", -b/(2.0*a) );
else
System.out.printf("두 실근 = %.1f, %.1f\n", (-b+Math.sqrt(D))/(2.0*a), (-b-Math.sqrt(D))/(2.0*a) );

}

}

2017년 10월 9일 월요일

HTML 4-1 CSS 색 활용

<!DOCTYPE html>
<html>
<head><title>CSS3 색 활용</title>
<style>
div {
margin-left : 30px;
margin-right : 30px;
margin-bottom : 20px;
color : white;
font-size : 20px;
}
</style>
</head>
<body>
<h3>CSS3 색 활용</h3>
<hr>
<div style="background-color:deepskyblue">deepskyblue(#00BFFF)</div>
<div style="background-color:brown">brown(#A52A2A)</div>
</body>
</html>

HTML 4-1 CSS 외부 스타일 시트 파일 불러오기



/* mystyle.css */
  body { background-color:linen; color:blueviolet; margin-  left:30px; margin-right:30px; }
  h3 { text-align:center; color:darkred; }




<style>
  @import url(mystyle.css);
  /* @import url(‘mystyle.css’); 로 해도 됨 */
  /* @import “mystyle.css”;로 해도 됨 */

</style>

<head>
  <link href="mystyle.css" type="text/css" rel="stylesheet">
</head>


HTML 4-1 CSS style 속성에 스타일 시트 만들기

<!DOCTYPE html>
<html>
<head><title>&lt;style&gt; 속성에 스타일 만들기</title>
<style>
p { color : red; font-size : 15px; }
</style>
</head>
<body>
<h3>손 흥 민</h3>
<hr>
<p>오페라를 좋아하고</p>
<p>엘비스 프레슬리를 좋아하고</p>
<p style="color:green">김치부침개를 좋아하고</p>
<p style="color:magenta; font-size:30px">축구를 좋아합니다</p>
</body>
</html>

시스템 보안

1. 내컴퓨터는 해킹이 당한적 있는가? 있다. 2. 컴퓨터를 하게되면 해킹을 당한다. 무엇을 이용해 해킹을 하는가? 인터넷이 가장 보편적. 사회적인 공격(주변인이 사전정보를 가지고 해킹) 3. 대응을 어떻게 해야하나? 보안프로...