'프로그래밍기초'에 해당되는 글 23건
- 2020.04.16 :: [C#] C# 데이터 타입 배워보기 (종류) 1
- 2020.04.16 :: [C#] C#이란 무엇일까? 기초알아보기 (1)
- 2020.04.15 :: [C++] 로그인 프로그램 소스
- 2020.04.15 :: [VB] 인터넷창 띄우기 (소스)
- 2020.04.15 :: [VB] 랜덤숫자을 출력해보자
- 2020.04.15 :: [VB] 다음 로그인 소스
- 2020.04.15 :: [VB] 스마일파일 로그인 소스
- 2020.04.15 :: [델파이] 컴포넌트 스킨 다운로드
C# 데이타 타입
C#을 포함한 모든 .NET 프로그래밍 언어는 .NET의 Common Type System에 정의된 .NET 데이타 타입을 사용한다. C#은 int, double, string 과 같은 C# 키워드로 데이타 타입을 표현할 수 있으며, 또한 System.Int32, System.Double, System.String 과 같은 .NET 데이타 클래스로 데이타 타입을 표현할 수도 있다. 내부적으로는 C# 컴파일러는 C# 키워드로 된 데이타 타입을 컴파일 후 .NET 데이타 타입으로 변경하게 된다.
C# 데이타 타입.NET 데이타 타입설명
bool | System.Boolean | True or False |
byte | System.Byte | 8비트 unsigned integer |
sbyte | System.SByte | 8비트 signed integer |
short | System.Int16 | 16비트 signed integer |
int | System.Int32 | 32비트 signed integer |
long | System.Int64 | 64비트 signed integer |
ushort | System.UInt16 | 16비트 unsigned integer |
uint | System.UInt32 | 32비트 unsigned integer |
ulong | System.UInt64 | 64비트 unsigned integer |
float | System.Single | 32비트 single precision 부동소수점 숫자 |
double | System.Double | 64비트 double precision 부동소수점 숫자 |
decimal | System.Decimal | 128비트 Decimal |
char | System.Char | 16비트 유니코드 문자 |
string | System.String | 유니코드 문자열 |
System.DateTime | 날짜와 시간, 별도의 C# 키워드가 없음 | |
object | System.Object | 모든 타입의 기본 클래스로 모든 유형을 포함할 수 있음 |
C# 리터럴 데이타
C# 코드에서 123, true, "ABC"와 같이 값을 직접 써줄 수 있는데, 이를 리터럴(Literal)이라 한다. C#에서 리터럴 데이타를 사용할 때, 별도의 접미어 표시(Suffix)가 없는 경우 C# 컴파일러는 int, double, char, string, bool 데이타 타입에 기본적으로 그 값을 할당한다. 따라서, 특정 데이타 타입을 지정하고 싶으면, 리터럴 데이타 뒤에 1~2자의 타입 지정 접미어(Suffix)를 추가해야 한다. Suffix는 대소문자 구분이 없다. 즉 decimal을 나타내는 접미어 M은 1024M 이나 1024m처럼 사용가능하다. 아래는 디폴트 리터럴 타입과 각 데이타 타입별 Suffix에 대한 예제이다.
디폴트 리터럴 타입
123 // int 리터럴 12.3 // double 리터럴 "A" // string 리터럴 'a' // char 리터럴 true // bool 리터럴
C# 리터럴 데이타 타입 | Suffix (대소문자 모두 가능) | 예제 |
long | L | 1024L |
uint | U | 1024U |
ulong | UL | 1024UL |
float | F | 10.24F |
double | D | 10.24D 또는 10.24 |
decimal | M | 10.24M |
C# 데이타 타입 예제
예제
// Bool bool b = true; // Numeric short sh = -32768; int i = 2147483647; long l = 1234L; // L suffix float f = 123.45F; // F suffix double d1 = 123.45; double d2 = 123.45D; // D suffix decimal d = 123.45M; // M suffix // Char/String char c = 'A'; string s = "Hello"; // DateTime 2011-10-30 12:35 DateTime dt = new DateTime(2011, 10, 30, 12, 35, 0);
- float 데이타 타입은 숫자 뒤에 123.45F와 같이 F를 붙여 double이 아닌 float 타입임을 나타낸다.
- double 데이타 타입은 숫자 뒤에 123.45D과 같이 D를 붙이거나 혹은 아무것도 붙이지 않음으로 해서 double 타입임을 나타낸다.
- decimal 데이타 타입은 숫자 뒤에 123.45M과 같이 M를 붙여 decimal 타입임을 나타낸다.
- char 데이타 타입은 작은따옴표 ' (single quotation)을 사용하여 한 문자를 할당한다.
- string 데이타 타입은 큰따옴표 " (double quotation)을 사용하여 문자열을 할당한다.
최대값, 최소값?
숫자형 데이타 타입의 최대값 혹은 최소값을 알아내기 위해서는 .NET 데이타 타입 클래스들의 MaxValue, MinValue 프로퍼티를 사용한다. C# 데이타 타입 키워드 뒤에서도 이러한 프로퍼티를 직접 호출할 수 있다. 즉, int.MaxValue 혹은 Int32.MaxValue 처럼 사용할 수 있다.
NULL
어떤 변수가 메모리 상에 어떤 데이타도 가지고 있지 않다는 의미로서 NULL을 사용하는데, NULL을 표현하기 위하여 C# 에서는 소문자 null 이라는 키워드를 사용한다.
모든 데이타 타입이 NULL을 가질 수 있는 것은 아니며, 사실 데이타 타입은 NULL을 가질 수 있는 타입 (Reference 타입)과 가질 수 없는 타입 (Value 타입)으로 구분될 수 있다.
아래는 NULL을 가질 수 있는 문자열(string) 타입의 변수 s 에 null 을 할당하는 예이다.
Nullable Type
정수(int)나 날짜(DateTime)와 같은 Value Type은 일반적으로 NULL을 가질 수 없다. C# 2.0에서부터 이러한 타입들에 NULL을 가질 수 있게 하였는데, 이를 Nullable Type 이라 부른다.
C#에서 물음표(?)를 int나 DateTime 타입명 뒤에 붙이면 즉, int? 혹은 DateTime? 같이 하면 Nullable Type이 된다. 이는 컴파일하면 .NET의 Nullable<T> 타입으로 변환된다. Nullable Type (예: int?) 을 일반 Value Type (예: int)으로 변경하기 위해서는 Nullable의 .Value 속성을 사용한다.
예제
// Nullable 타입 int? i = null; i = 101; bool? b = null; //int? 를 int로 할당 Nullable<int> j = null; j = 10; int k = j.Value;
'C샵' 카테고리의 다른 글
[C#] C#의 버전 알아보자 (0) | 2020.04.16 |
---|---|
[C#] C#이란 무엇일까? 기초알아보기 (1) (0) | 2020.04.16 |
[C#] TXT 불러오기 소스 (0) | 2020.04.13 |
[C#] 네이버 카페 인증소스 (0) | 2020.04.13 |
C# 프로그래밍 언어
C#은 마이크로소프트에서 개발된 객체 지향 프로그래밍 언어로서 Java 나 C++와 비슷한 면들을 많이 가지고 있다. C#을 이야기 하면 자연스럽게 .NET Framework을 함께 이야기 해야할 정도로 C#은 .NET Framework을 이용하여 프로그래밍하는 대표적인 언어이다. C#은 윈도우 프로그래밍, 웹 프로그래밍, 게임 및 모바일 프로그래밍 등 모든 영역에서 사용되는 범용 프로그래밍 언어이다
C# 프로그램 소스코드
C# 프로그램은 .cs 라는 확장자를 사용한다.
예) test.cs, test.aspx.cs, test.xaml.cs
C++와 다르게 C#은 *.h과 같은 별도의 헤더 파일이 없다.
C# 프로그램으로부터 실행 파일을 만들기 위해서는 (1) Visual Studio를 사용하는 경우 C# 프로젝트를 빌드하여 실행파일을 생성하며 (2) Visual Studio 없이 .NET Framework에서 제공되는 C# 컴파일러인 csc.exe를 이용하여 실행파일을 생성할 수 있다.
아주 간단한 C# 프로그램
다음은 아주 간단한 C# 프로그램 예제로서 Hello World 라는 텍스트를 콘솔 화면에 출력하는 프로그램이다.
예제
namespace Intro_Ex1 { class Program { static void Main(string[] args) { System.Console.WriteLine("Hello World..."); } } }
- 모든 C# 프로그램은 Main()이라는 시작 함수(메서드)를 가져야 한다. Main() 메소드는 임의의 클래스 안에서 존재하며, 프로그램 상에 단 1개만 있어야 한다.
- Main()는 static으로 선언되며, 메소드 인자는 string[] 문자열이다.
- System.Console은 .NET Framework 클래스이며, WriteLine은 화면에 데이타를 Console클래스의 출력하는 메서드이다.
C# 코멘트
C# 에서 코멘트를 사용하기 위해서는 (1) 한 라인에 대해 코멘트할 경우 // 을 사용하고 (2) 복수 라인에 대해 코멘트를 할 경우는 /* */ 를 사용한다.
예제
namespace Intro_Ex2 { class Program { static void Main(string[] args) { // 코멘트: 한 라인 코멘트는 두개의 슬래시 사용함 int a = 1; int b = 1; // 코멘트: 하나의 문장 뒤에 코멘트를 달 수 있음 /* 복수 라인에 대한 코멘트 int c; int d; */ } } }
'C샵' 카테고리의 다른 글
[C#] C# 데이터 타입 배워보기 (종류) (1) | 2020.04.16 |
---|---|
[C#] C#의 버전 알아보자 (0) | 2020.04.16 |
[C#] TXT 불러오기 소스 (0) | 2020.04.13 |
[C#] 네이버 카페 인증소스 (0) | 2020.04.13 |
<stdio.h>#include <Windows.h>#include <conio.h> //로컬디스크 D 에 ID 라는 파일을 생성해주세요 (대문자)#include <string.h> //프로젝트 - 속성 - c/c++ - 전처리기 ;_CRT_SECURE_NO_WARNINGS 를 추가#include <stdlib.h>#include <ctype.h>
void menu(int*); //로그인프로그램메뉴void login(char*, char*); //로그인void singup(char*, char*); //회원가입
int main(void){ int cho; //선택화면에서 선택값을 저장하는곳 char loginid[15]; //로그인에서 아이디를 저장하는곳 char loginpassword[15]; //로그인에서 비밀번호를 저장하는곳 char singupid[15]; //회원가입에서 아이디를 저장하는곳 char singuppassword[15]; //회원가입에서 비밀번호를 저장하는곳
menu(&cho);
switch (cho) { case 1: login(loginid, loginpassword); break; case 2: singup(singupid, singuppassword); break; default: printf("잘못입력하셨습니다."); main(); break; }}
void menu(int *cho) //메인화면{ printf_s("제작자 : staff2303@gmail.com \n"); printf_s("==============================================. \n"); printf_s("1.login \n"); printf_s("2.sing up \n"); printf_s("주의! 문자입력시오류! (수정중)\n"); scanf_s("%d", cho); system("cls");
}
void login(char *loginid, char *loginpassword) //로그인화면
{ FILE *rfp; char file[50]; char loginpassword2[15]; int amo; printf_s("login. \n"); printf_s("==========================================. \n"); printf_s(" I D : "); scanf_s("%s", loginid, 15); sprintf_s(file, "D:\\ID\\%s.txt", loginid); // 아이디와 똑같은 파일을 오픈 fopen_s(&rfp, file, "r"); // 파일이없어서열수없을경우 rfp에는 NULL이들어온다.
if (rfp == NULL) { system("cls"); printf_s("아이디가없습니다. \n"); printf_s("==========================================. \n"); system("Pause"); system("cls"); main(); }
printf_s("PASSWORD : "); scanf_s("%s", loginpassword, 15); printf("암 호 키 : "); scanf_s("%d", &amo); FILE* fp = fopen(file, "r"); //파일오픈 fgets(loginpassword2, 15, fp); //메모장에서 password를 password2로 저장 fclose(fp); for (int i = 0; loginpassword2[i] != '\0'; i++) //password 복호화 { if (isalpha(loginpassword[i])) { if (loginpassword2[i] - amo < 'a') { int plus = 'a' + amo - 1 - loginpassword2[i]; loginpassword2[i] = 'z'; loginpassword2[i] -= plus; } else loginpassword2[i] -= amo; } else { if (loginpassword2[i] - amo < '0') { int plus = '0' + amo - 1 - loginpassword2[i]; loginpassword2[i] = '9'; loginpassword2[i] -= plus; } else loginpassword2[i] -= amo; } }
if (strcmp(loginpassword, loginpassword2) == 0) // 입력한 password와 복호화된 password를 비교 { printf_s("\n로그인완료\n"); system("Pause"); system("cls"); exit(1); } else { system("cls"); printf_s("비밀번호 혹은 암호키가 틀립니다.\n"); system("Pause"); system("cls"); main(); }}
void singup(char *singupid, char *singuppassword)
{ FILE *fp; char file[50]; int amo; printf_s("sing up. \n"); printf_s("==========================================. \n"); printf_s("아이디를입력하시오(15자이내). \n"); scanf_s("%s", singupid, 15); sprintf(file, "D:\\ID\\%s.txt", singupid); // 폴더의 이름과 경로를 file 에 저장 (아이디 = 폴더의 이름) fp = fopen(file, "w+"); fclose(fp); Sleep(1000); system("cls");
printf_s("sing up. \n"); printf_s("==========================================. \n"); printf_s("비밀번호를입력하세요(영문, 숫자 15자이내).\n"); scanf_s("%s", singuppassword, 15); printf_s("암호키를 입력하세요(1~5) \n"); scanf_s("%d", &amo);
for (int i = 0; singuppassword[i] != '\0'; i++) //password 암호화 { if (isalpha(singuppassword[i])) { if (singuppassword[i] + amo > 'z')
{ int less = singuppassword[i] - 'z';
singuppassword[i] = 'a' + amo - 1; singuppassword[i] += less; } else singuppassword[i] += amo; } else { if (singuppassword[i] + amo > '9')
{ int less = singuppassword[i] - '9';
singuppassword[i] = '0' + amo - 1; singuppassword[i] += less; } else singuppassword[i] += amo; } } fp = fopen(file, "w+"); fprintf(fp, "%s", singuppassword); fclose(fp); Sleep(1000); system("cls"); //완료창 printf_s("회원가입완료. \n"); printf_s("==========================================. \n"); Sleep(1000); system("cls"); main();}
'C++' 카테고리의 다른 글
[C++] 네이버 RSA 로그인 소스 (0) | 2020.04.14 |
---|
먼저 폼에 커맨드버튼 1개, 텍스트 박스 1개를 준비한후,
프로젝트▶구성 요소로 들어간다음 잘 찾아보시면
Microsoft Internet controls 가 있습니다. 그것을 체크하신후,
확인을 누르면 도구 탭에 지구(?)가 등록되는 대요,
그걸 클릭하고 폼에 추가 해 줍니다.
커맨드버튼에 무엇을 입력하냐면
Private sub CommandButton1_click()
WebBrowser1.Navigate (Text1)
End sub 가 되겠죠.
그리고 Text1에 주소를 입력하고 커맨드 버튼을 누르면 웹 브라우저에 인터넷이 표시됩니다.
만약 뒤로, 앞으로, 홈으로, 새로고침 을 추가 하고 싶다면,
뒤로는
Private sub CommandButton1_click()
WebBrowser1.GoBack
End sub 이고
앞으로는
Private sub CommandButton1_click()
WebBrowser1.GoForward
End sub 이고
홈으로는
Private sub CommandButton1_click()
WebBrowser1.GoHome
End sub 이고
새로고침은
Private sub CommandButton1_click()
WebBrowser1.Refresh 가 되겠죠.
만약 웹브라우저에서 새로운 창을 추가하면,
Internet Explorer 로 새 창이 나옵니다.
만약 만든 브라우저로 새 창을 열고 싶을때는,
이 코드를 폼에 추가 하면 됩니다.
Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)
Dim frm As Form1
Set frm = New Form1
Set ppDisp = frm.WebBrowser1.Object
frm.Show
End Sud
'VB' 카테고리의 다른 글
[VB] 랜덤숫자을 출력해보자 (0) | 2020.04.15 |
---|---|
[VB] 다음 로그인 소스 (0) | 2020.04.15 |
[VB] 스마일파일 로그인 소스 (0) | 2020.04.15 |
[VB] 한글판 패치하기 (0) | 2020.04.15 |
Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 1
End Sub
Private Sub Timer1_Timer()
Dim Notice As String
Notice = Int(Rnd * 100000) + 1
Form1.Caption = Notice
End Sub
'VB' 카테고리의 다른 글
[VB] 인터넷창 띄우기 (소스) (0) | 2020.04.15 |
---|---|
[VB] 다음 로그인 소스 (0) | 2020.04.15 |
[VB] 스마일파일 로그인 소스 (0) | 2020.04.15 |
[VB] 한글판 패치하기 (0) | 2020.04.15 |
Function DaumLogin(id As String, Pw As String) As Boolean
winhttp.Open "POST", "https://logins.daum.net/accounts/login.do?slogin=2", True
winhttp.SetRequestHeader "Host", "logins.daum.net"
winhttp.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0"
winhttp.SetRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
winhttp.SetRequestHeader "Referer", "https://logins.daum.net/accounts/loginform.do"
winhttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
winhttp.Send "id=" & id & "&pw=" & Pw
winhttp.WaitForResponse
If InStr(winhttp.ResponseText, "Daum 로그인 오류") = 0 Then
Login = True
Else
Login = False
End If
End Function
'VB' 카테고리의 다른 글
[VB] 인터넷창 띄우기 (소스) (0) | 2020.04.15 |
---|---|
[VB] 랜덤숫자을 출력해보자 (0) | 2020.04.15 |
[VB] 스마일파일 로그인 소스 (0) | 2020.04.15 |
[VB] 한글판 패치하기 (0) | 2020.04.15 |
Dim WinHttp As New WinHttp.WinHttpRequest
Private Sub Command1_Click()
WinHttp.Open "POST", "http://smartfile.co.kr/member/loginCheck.php"
WinHttp.SetRequestHeader "Referer", "http://smartfile.co.kr"
WinHttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
WinHttp.Send "Frame_login=Ok&keep=Y&m_id=" & Text1 & "&m_pwd=" & Text2 & "&idSave=0"
If InStr(StrConv(WinHttp.ResponseBody, vbUnicode), "등록된 회원이 아닙니다.") Then
MsgBox "등록된 회원이 아니당", 16, ""
ElseIf InStr(StrConv(WinHttp.ResponseBody, vbUnicode), "비밀번호") Then
MsgBox "비번이 정확하지않당", 16, ""
Else
MsgBox "로그인성공", 64, ""
End If
End Sub
'VB' 카테고리의 다른 글
[VB] 인터넷창 띄우기 (소스) (0) | 2020.04.15 |
---|---|
[VB] 랜덤숫자을 출력해보자 (0) | 2020.04.15 |
[VB] 다음 로그인 소스 (0) | 2020.04.15 |
[VB] 한글판 패치하기 (0) | 2020.04.15 |
'자료실' 카테고리의 다른 글
컴퓨터 하드변경 프로그램 (HWID_CHANGER) (0) | 2020.04.15 |
---|---|
자판기 추출 하는방법 (0) | 2020.04.15 |
넥플리스 크랙 Ver (1) | 2020.04.15 |
유튜브 봇뷰 프로그램 V3 (조회수 올리기) (Free) (1) | 2020.04.15 |
[싸이버정보지식방] 구글/유튜브 뚫기 프로그램 (0) | 2020.04.11 |