html 테이블(table ) 표 만들기와 테이블 속성들

 

 

 

 

 

 

기본적인 테이블 만들기

태그 역할
<table> 테이블을 만든다.
<tr> 테이블의 행(가로 한줄)을 만든다
<td> 테이블의 열을 만든다.
<th> 테이블(표)의 헤드 부분(자동으로 가운데 정렬,  굵게 적용)
<caption> 테이블 이름 표시
<thead> 테이블의 헤더 영역 지정
<hbody> 테이블의 바디 영역 지정

 

[ 코 드 ]

    <table
            border="1"
            width="50%"
            height="200"
            cellspacing="5">
            <caption>표 제목</caption>
            <thead>
                <tr align="center" bgcolor="white">
                    <td></td>
                    <th>김씨</th>
                    <th>이씨</th>
                    <th>박씨</th>
                </tr>
            </thead>

            <tbody>
                <tr align="center" bgcolor="white">
                    <th>월급</th>
                    <td>100원</td>
                    <td>200원</td>
                    <td>400원</td>
                </tr>
                <tr align="center" bgcolor="white">
                  <td>월급</td>
                  <td>100원</td>
                  <td>200원</td>
                  <td>400원</td>
                </tr>
            </tbody>
        </table>

 

 

[ 결 과 ]

 

- <table> 을 사용하여서 테이블을 만든다.

 

- <tr> 태그를 사용하여서 하나의 행을 만든다.

 

- <tr> 태그로 행을 만들었으면 그안에 <td>를 사용하여서 열을 나누어 준다.

 

- <td>의 개수는 모든 <tr>에서 동일한 것이 좋다. 만약 값을 비워야 한다면 <td>로 열을 만들지만 값을 넣지 않으면 된다.

 

 

 

 

 

 

 

 

 

테이블 속성들

[ 코 드 ]

    <table border ="1" width="50%" height=200 bgcolor=#11a9c1 bordercolor="white" cellspacing="5">
      <tr align="center" bgcolor="white">
        <td rowspan="2">rawspan 사용</td>
        <td>김씨</td>
        <td>이씨</td>
        <td>박씨</td>
      </tr>

      <tr align="center" bgcolor="white">
        <td>100원</td>
        <td>200원</td>
        <td>400원</td>
      </tr>
      <tr align="center" bgcolor="white">
        <td colspan="4">
          colspan 사용
        </td>
      </tr>
    </table>

 

 

[ 결 과 ] 

속성 설명
align 정렬을 지정한다. ( left, center, right )
border 테두리 선의 두께를 지정한다.
bgcolor 배경색을 지정한다. ( 색은 "red", "black" 처럼 기존의 정의되어있는 색을 사용할 수도 있으며 rgb형식의 #000000 으로도 색을 지정할 수 있다. )
bordercolor 테두리 선의 색을 지정한다. 색을 지정하는 방법은 bgcolor와 동일하다.
cellspacing 셀간의 간격을 지정한다.
width 가로길이를 지정한다. (상수값을 입력할 수도, % 단위로 입력할 수도 있다. %를 사용하였을 때는 웹브라우저 크기의 대한 %이다. )
height 세로길이를 지정한다.
rawspan 지정한 값만큼 행을 병합한다. (위아래로)
colspan 지정한 값만큼 열을 병합한다. (좌우로)

 

 

- 해당 예시에서는 테이블의 백그라운드 컬러를 준다음 행 <tr> 태그에서도 백그라운드 컬러를 주었다. 이렇게 하여bordercolor를 지정하여 색을 줄 때와는 유사하지만 다른 형태를 만들어낼 수도 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

Html 태그 - 시맨틱 태그 및 기타 태그

 

 

 

 

시맨틱 태그

 

- 시맨틱 태그는 웹페이지의 공간을 분리해 준다. 공간마다 각각의 역할이 있다.

 

- 사용하여도 레이아웃 적으로는 변하는 것이 없다. 하지만 컴퓨터(검색 엔진 ,등...)는 이 시맨틱 태그를 읽음으로써 공간을 구분 하여 처리할 수 있다.

( ex) 제목 부분을 읽어서 어느 내용의 글인지 판단 )

 

 

 

 

 

[ 코 드 ]

<!DOCTYPE html>
<html lang=kr>
  <head>
    <meta charset="utf-8">
    <title>제목</title>
  </head>
  <body>
    <header>
      <nav>
      </nav>
    </header>
      <section>
      </section>
      <article>
      </article>
      <div style="background:green">텍스트</div>
      <span style="background:green">텍스트</span>
    <aside>
    </aside>
    
    <footer>
    </footer>
  </body>
</html>

 

 

- header : 보통 웹 페이지에서 상단 부분의 배치된다. 주로 페이지 제목, 로고나 아이콘, 페이지의 관한 간단한 설명, 네비게이션을 포함한다.

 

- nav : 네비게이션 역할을 한다. 즉, 해당 페이지의 목차(index) 같은 역할을 한다. 네비게이션은 보통 링크들을 포함하는 리스트로 만들어 진다.

 

- section : 글 내용을 세부적인 내용에 따라 구분할 때 사용한다. 책으로 표현한다면 1장(Chapter, Part)를 나타낸다. 한 section은 시작으로 <h1>~<h6>헤딩 태그를 사용하여서 섹션의 주제를 표현하는 것이 좋으며 하나의 헤딩 태그만을 사용하여서 주제를 명확하게 해주어야 한다.

 

- article : section에서는 페이지의 본문을 나타냈었다면 article은 section의 내용을 보조해주는 내용들을 나타낸다.

 

- aside : 주로 페이지 본문 바깥 부분의 오른쪽이나 왼쪽의 배치된다. 페이지 본문과는 상관없는 내용이 담긴다.

 

- footer : 보통 웹 페이지의 하단 부분의 배치된다. 이곳에는 페이지의 저작권 정보나 저작자 정보, 관련된 문서 또는, 주소나 전화번호 등을 나타낸다. 

 

 


 

div vs. span

 

- div :  스타일을 지정하거나 이벤트를 수행하기 위한 컨테이너로 사용된다.

( 결과를 보면 div는 한줄을 끝까지 채운다. 이는 block 형식이라하며 가로(한줄)를 다 채운다.)

 

ㄴ 시맨틱 태그가 나오기 전에는 div의 id로 시맨틱 태그를 주어서 구분하였다.

 

 

- span : div와 마찬가지로 스타일을 지정하거나 이벤트를 수행하기 위한 컨테이너로 사용된다.

( 단, div와 달리 inline 형식으로 자신의 내용만큼 크기를 설정한다.)

 

 

 

 

 

 

[ 결 과 ]

 

 

 

 

 

 

기타 태그들

[ 코 드 ]

<!DOCTYPE html>
<html lang=kr>
  <head>
    <meta charset="utf-8">
    <title>제목</title>
  </head>
  <body>
    <a href="#" target="_blank">링크</a>
    <pre>
      aaaaaa
      bbbbb
      cccc
    </pre>
    <br>
    <img src="이미지 경로" alt="이미지 설명"/>
    <video src="비디오 경로">
      video 태그를 지원하지 않으면 출력됨
      속성 : width height controls autoplay loop poster
    </video>
    <audio>
      <source src="오디오 경로" type="audio/.mp3">
    </audio>
  </body>
</html>

 

 

- a : 하이퍼링크를 건다. href에 이동할 주소를 입력하고 #을 입력할 시 자신을 연다. target 속성으로 "_blank"를 주면 해 당 페이지를 새 창으로 연다.

 

- pre : 텍스트들을 나타내며 pre 태그 안 공백이나 개행들이 그대로 유지된다.

 

- img : 이미지를 보여준다. alt는 이미지 위에 포커스를 주었을 때 설명을 보여주거나 이미지를 보여주지 못할 때 대신할 설명을 작성한다.

 

- video : 비디오 형식의 파일을 보여준다. width 속성이나 height 속성이 있어서 크기를 지정하는 등 여러가지 속성을 사용할 수 있다.

 

- audio : 오디오 형식의 파일을 보여준다. type으로 해당 오디오 파일의 확장명을 지정해주어야 한다.

 

 

 

 

 

 

 

 

 

Html 기초 - 기본 틀, 텍스트 관련 태그들

 

 

 

 

 

 

[ 기본적인 구조 ]

<!DOCTYPE html>
<html lang=kr>
  <head>
    <meta charset="utf-8">
    <title>제목</title>
  </head>
  <body>
      본문
  </body>
</html>

 

- 4라인 : 언어 설정을 utf-8로 함으로써 대부분의 언어를 깨지는 현상 없이 나타낼 수 있다.

 

 

 

 

 

 

 

 

[ 텍스트 관련 태그들 ] 

<!DOCTYPE html>
<html lang=kr>
  <head>
    <meta charset="utf-8">
    <title>제목</title>
  </head>
  <body>
      <p>텍스트</p>
      <u>텍스트</u>
      <i>텍스트</i>
      <b>텍스트</b>
      <br>
      <em>텍스트</em>
      <h1>텍스트</h1>
      <h6>텍스트</h6>
      <ruby>
        凸<rt>볼록할 철</rt>
        test<rt>연습</rt>
      </ruby>
  </body>
</html>

 

- p : 단락이라는 뜻을 가진 Paragraph를 뜻하며 개행을 포함한다.

 

- u : 밑줄을 그은다.

 

- i : 이탈릭체(약간 기울어진 모습)으로 나타낸다.

 

- b : 텍스트를 Bold(굵음)처리 한다.

 

- br : 단일 태그로서 개행을 할 때 사용한다.

 

- em : 겉보기에는 이탈릭체와 똑같지만 음성으로 읽어주는 경우 더욱 강조해서 읽어준다.

 

- h1 ~ h6 : Heading, 제목을 뜻하며 1이 가장 크며 6까지가면서 점점 작아진다.

 

-ruby : 결과에서 보이는 것처럼 한자와 음을 나타내며 사용할 수 있다.

 

 

 

 

[ 결 과 ] 

ruby에는 한자뿐만 아니라 영어, 한국어 등 다 사용할 수 있다.

 

 

 

 

 

 

 

 

C++ string to int, int to string 형변환 하기 , string 문자열에서 숫자만 선택해 형변환

 

 

 

int stoi (const string& str [, size_t* idx = 0, int base = 10]) : string to int

 

- string을 int로 바꾸어주기 위해서 stoi() 함수를 사용해 준다.

(stoi -> string to integer를 줄인 것이다. 그래서 이를 응용해 생각해보면, stoll은 string to long long으로 long long 형으로 형변환 할 수 있다.)

 

 

- stoi()을 사용하기 위해서는 #include <string> 을 해주어야 한다.

(※ #include <string.h>가 아닌 <string>을 해주어야 한다. )

 

 

- 3번 째 인수를 보면 디폴트 값으로 10이 주어져 있다. 이를 변경해주면 n진수의 문자열을 10진수의 수로 변경할 수 있다.

 

 

 

 

 

 

 

string to_string(int val) : int to string

 

- 함수명 그대로 string 형으로 바꾸어 줄수 있다.

 

- 인수로는 int 뿐만 아니라 double형 long long형 등등... 을 사용할 수 있다.

 

- to_string()을 사용하기 위해서는 #include <string> 을 해주어야 한다.

 

 

 

 

 

 

 

[ 코 드 ]

#include <iostream>
#include <string>
using namespace std;

int main() {
	string a = "1234", b = "1a2b3c";
	int num = 4321;

	// 1. string -> int
	cout << stoi(a) << "\n";
	// 8진수 1234를 -> 10진수로 변환
	cout << stoi(a,nullptr,8) << "\n";


	// 2. string 문자열에서 숫자만 구분하여 출력
	for (int i = 0; i < b.size(); i++) {
		if (b[i] >= '0' && b[i] <= '9') cout << b[i] - '0';
	}
	cout << "\n";


	// 3. int -> string
	string s = to_string(num);
	string r = "결과 = ";

	r += num;
	cout << r << "\n";

	r = "결과 = ";
	r += s;
	cout << r << "\n";

	return 0;
}

 

 

- 10라인 : 문자열의 숫자만 있을 경우 그냥 stoi를 사용해주면 숫자로 변경 할 수 있다.

 

만약 문자열의 숫자와 문자가 섞여 있다면, 앞에서부터 문자가 나올 때까지의 숫자만을 변환해 준다.

 

 

 

- 12라인 : 진수를 지정해주었다. 8진수인 "1234"를 10진수로 변환해준다. 결과는 668.

 

 

 

- 17라인 : string 문자열을 하나씩 접근할 때는 char형이다. 그래서 숫자일 경우 '0'(=48) 와 '9'(=57) 사이의 값을 가지면 숫자이다.

 

만약 숫자일 경우 '0'(=48)을 빼주면 숫자를 구할 수 있다.

 

ex) 문자가 '2'일 경우 아스키 코드 상 50이므로 여기에 '0'(=48)을 빼주면 숫자 2를 얻을 수 있다.

 

 

 

- 23라인 : to_string() 을 사용하여서 숫자를 문자열로 바꾸었다.

 

 

 

 

[ 결 과 ]

 

 

숫자를 문자열로 변경하지 않은 채 문자열과 더해 주었을 때는 아무것도 출력되지 않았다.

 

하지만 to_string으로 문자열로 변환한 후 더해준 문자열을 출력해주었을 때는 잘 출력되는 것으로 보아 무자열로 잘 변환 되었다는 것을 확인할 수 있다.

 

 

 

 

 

참조

http://www.cplusplus.com/reference/string/stoi/

 

stoi - C++ Reference

function template std::stoi int stoi (const string& str, size_t* idx = 0, int base = 10); int stoi (const wstring& str, size_t* idx = 0, int base = 10); Convert string to integer Parses str interpreting its content as an integral number of the spe

www.cplusplus.com

 

 

C++ 제곱근 구하기, n승 값 구하는 방법 : sqrt(), pow()

 

 

 

 

 

 

double sqrt (double x);

 

 

- 사용하기 위해서는 #include <math.h> 혹은 #include <cmath> 를 해주어야 한다.

 

- 리턴형은 double 형으로 인수로 준 값의 양의 제곱근을 리턴한다.

 

 

 

 

 

 

 

double pow (double a, double n);

 

 

- 사용하기 위해서는 #include <math.h> 혹은 #include <cmath> 를 해주어야 한다.

 

- 리턴형은 double으로서 a의 n제곱을 한 값을 리턴한다.

 

 

 

 

 

[ 코 드 ]

#include <iostream>
#include <cmath>
using namespace std;

int main() {
	int a = 3, n = 4, b = 144;

	cout << a << "의 " << n << "승 = " << pow(a, n) << "\n";

	cout << b << "의 " << "양의 제곱근 = " << sqrt(b) << "\n";

	return 0;
}

 

 

 

 

 

[ 결 과 ]

 

 

 

 

참조

http://www.cplusplus.com/reference/cmath/pow/

 

pow - C++ Reference

1234567891011 /* pow example */ #include /* printf */ #include /* pow */ int main () { printf ("7 ^ 3 = %f\n", pow (7.0, 3.0) ); printf ("4.73 ^ 12 = %f\n", pow (4.73, 12.0) ); printf ("32.01 ^ 1.54 = %f\n", pow (32.01, 1.54) ); return 0; }

www.cplusplus.com

 

 

C++ 소수 찾기, 검사하기 [에라토스테네스의 체] 하는 방법

 

 

 

 

소수 찾는 알고리즘 [에라토스테네스의 체]

 

 

- 2부터 지정한 수까지의 소수들을 찾을 수 있다.

 

-  i(=2)부터 ~ 지정한 수의 제곱근까지 수들의 배수들을 제외하는 과정을 반복하면서 소수를 판별한다. 

( 어느 수의 배수라는 것은 소수가 아니라는 의미)

 

 

 

 

 

->  참조

https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4

 

 

 

 

[ 코 드 ]

#include <iostream>
#include <math.h>
#define N 500
#define N2 199
using namespace std;

bool sosu(int n) {
	int k = (int)sqrt(n);
	for (int i = 2; i <= k; i++) {
		if (n % i == 0) return false;
	}
	return true;
}

int main() {
	bool* b = new bool[N + 1];	// 숫자 A을 배열의 A번에 저장하기 위하여 크기 N+1
	for (int i = 2; i < N+1; i++) b[i] = true;
	
	for (int i = 2; i * i < N+1; i++) {
		for (int k = i * i; k < N+1; k += i) {
			b[k] = false;
		}
	}

	// 결과
	cout << N << "까지의 소수들\n";
	for (int i = 2; i < N + 1; i++) if (b[i]) cout << i << ", ";

	cout << "\n\n" << N2 << "는 ";
	if (sosu(N2)) cout << "소수입니다.\n";
	else cout << "소수가 아닙니다.\n";

	return 0;
}

 

 

16~23 라인 : N+1만큼의 크기를 갖는 bool 배열을 선언하고 true로 초기화 해준다. 그리고 N까지 i의 배수들을 false로 바꾸는 과정을 반복한다.

 

 

 

7라인 : sosu함수는 인수로 받은 수가 소수인지 판별하여서 참이면 true를 거짓이면 false를 리턴한다.

 

8라인 : sqrt(n) 함수는 제곱근을 구하는 함수로서 #include <math.h> 를 해주어야 한다.

 

9라인 : for문을 보면 2부터 n의 제곱근인 k까지 검사한다. k까지만 검사해도 되는 이유는

 

ex) n = 16 일 때, k= 4

그러면  "4이전 i=2일 때 검사한 것 "  =  "4이후 i=8일 때 검사한 것"

즉, 2 x 8 = 8 x 2 이므로 제곱근인 k까지만 검사해주면 된다.

 

 

 

 

 

[ 결 과 ]

 

 

결과를 보면 2부터 500전까지의 소수들을 출력한다.

 

또한, 199가 소수인지 아닌지 판별한다.

 

 

 

 

 

 

 

 

 

C++ #include <bits/stdc++.h> 헤더 사용하기

 

 

 

 

 

 

<bits/stdc++.h> 헤더 파일

 

- #include <bits/stdc++.h> 로 사용한다.

 

- 표준 라이브러리가 아니므로 파일을 따로 추가해 주어야 사용할 수 있다.

 

- 자주 사용하는 라이브러리들(vector, algorithm, string, 등..)을 컴파일하도록 함으로써 라이브러리들을 일일이 추가해야하는 번거로움을 없앨 수 있다.

 

- 단, 자주 사용하는 라이브러리들을 전부 컴파일함으로써, 사용하지 않거나 불필요한 라이브러리들도 컴파일이 되므로 그만큼 시간이나 공간이 낭비된다.

 

 

 

 

 

[ 코 드 ]

#pragma once
#include <cctype>
#include <cerrno>
#include <cfloat>
#include <ciso646>
#include <climits>
#include <clocale>
#include <cmath>
#include <csetjmp>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>

#include <ccomplex>
#include <cfenv>
#include <cinttypes>
#include <cstdalign>
#include <cstdbool>
#include <cstdint>
#include <ctgmath>
#include <cwchar>
#include <cwctype>

// C++
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>
#include <array>
#include <atomic>
#include <chrono>
#include <condition_variable>
#include <forward_list>
#include <future>
#include <initializer_list>
#include <mutex>
#include <random>
#include <ratio>
#include <regex>
#include <scoped_allocator>
#include <system_error>
#include <thread>
#include <tuple>
#include <typeindex>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>

 

 코드를 보면 알 수 있듯이 그냥 헤더들을 이것저것 선언해 놓은 것이다.

 

 

 

 

 

 

 

헤더 파일 다운로드

stdc++.h
0.00MB

 

 

이 파일을

 

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include

 

경로에서 bits 폴더를 생성한다. ( 해당 경로는 Visual studio가 설치된 기본적인 곳으로 없다면 본인이 찾아야 한다.)

 

 

그리고 생성한 bits 폴더 안에 다운 받은 stdc++.h 헤더 파일을 넣어주면 된다.

 

 

이제 #include <bits/stdc++.h> 를 선언하면 사용할 수 있다.

 

 

 

C++ 유클리드 호제법을 이용하여 최대공약수/최소공배수 구하기.

 

 

 

[ 코 드 ]


#include <iostream>

using namespace std;

int gcd(int a, int b) {
	return b ? gcd(b, a % b) : a;
}

int main() {

	cout << gcd(25, 45) << "\n";
	cout << 15*45/gcd(15, 45) << "\n";

	return 0;
}

12라인 > gcd 함수는 회귀 함수로서 두 인수 a와 b를 주면 a와 b의 최대공약수를 리턴한다.

 

+) "b ? ㄱ : ㄴ" 은 삼항 연산자로 b가 참이면 ㄱ을 실행하고 거짓이면 ㄴ을 실행한다.

 

13라인 > 최소 공배수 = a*b / 최대공약수; 이다.

 

 

 

 

 

[ 결 과 ]

 

 

 

 

 

 

 

 

 

+ Recent posts