본문 바로가기

분류 전체보기

(77)
두 정수의 몫과 나머지 출력 - 두 정수를 유저로부터 입력 받고, 몫과 나머지를 출력해보자- "나눗셈을 진행할 첫 번째 수를 입력하여 주세요: " 출력- 같은 줄에서 입력 받기- 그 다음줄로 와서 "두번째 나눌 수를 입력해주세요: " 출력- 위 출력과 같은 줄에서 입력을 받기- 그 다음 줄에서 "(첫째수)와 (둘째수)의 나눗셈 결과, 몫은 (몫) 나머지는 (나머지)" 출력 Console.Write("나눗셈을 진행할 첫 번째 수를 입력해 주세요 : "); int first = int.Parse(Console.ReadLine()); Console.Write("나눗셈을 진행할 두 번째 수를 입력해 주세요 : "); int secon = int.Parse(Con..
두 수의 합 출력 두 실수를 유저로부터 한줄씩 입력받아, 마지막 줄엔 둘의 합을 출력해보아요 "첫 번째 실수를 입력하여 주세요" 다음 줄에서 입력 받기 "두 번째 실수를 입력하여 주세요" 다음 줄에서 두번째 수 입력 받기 "두 수의 합은 ??? 입니다" 형식으로 출력 Console.WriteLine("첫 번째 실수를 입력해주세요"); double first = double.Parse(Console.ReadLine()); Console.WriteLine("두 번째 실수를 입력해주세요"); double second = double.Parse(Console.ReadLine()); double sum = first + second;..
이름 입력을 받아 출력하는 여러방법 이름 입력받아 출력이름을 입력받아, 반갑다고 출력하는 프로그램을 작성해주세요"당신의 이름을 입력해주세요" 출력다음줄에서 이름을 입력 받기"(방금입력받은이름)님, 반갑습니다" 출력하는 프로그램 string input;Console.WriteLine("당신의 이름을 입력해주세요 ");input = Console.ReadLine();Console.WriteLine(input + "님, 반갑습니다");Console.WriteLine($"{input}님, 반갑습니다");Console.WriteLine("{0}님, 반갑습니다", input); 흠 별거없구만! Console.WriteLine(input + "님, 반갑습니다"); 에서 숫자를 넣어도 문자로 인식해서그런지 잘들어간다.
readonly와 const의 차이 readonly readonly를 사용하여 생성된 변수는 읽기 전용 변수 라고 한다. exe 또는 dll을 사용할 때 변수의 값을 가져온다.상수와 달리 변수를 선언할 때 값을 초기화하는 것은 필수가 아니다. 생성자에서 읽기 전용 변수를 초기화할 수 있지만, 가장 중요한 점은 생성자 외부에서는 읽기 전용 변수의 값을 수정할 수 없다는 것이다.읽기 전용 변수는 비정적(non-static) 변수와 유사하게 동작한다.상수는 클래스에 대한 값이다. 반면 읽기 전용 변수는 객체(인스턴스)에 대한 값이다.메모리 할당 위치는 Heap Memory이다.모든 자료형에 사용 할 수 있으며, 생성과 동시에 초기화 할 필요는 없다. const const 를 사용하여 생성된 변수는 상수 라고 한다.상수 는 값이 변하지 않는 변수..
CLR(공용 언어 런타임) CLR이란?공용 언어 런타임(Common Language Runtime)의 약자로, 다른 프로그래밍 언어들 사이에서 공동으로 사용 할 수 있는 실행환경(Runtime)을 말한다. CLR의 핵심 기능은 메모리관리,어셈블리 로딩, 보안, 예외 처리, 스레드 동기화, 등이 있는데 이런 요소들을 CLR을 지원한다면 제약없이 자유롭게 사용할 수 있다. CLR을 지원하는 언어라면, 실행 시점에서 오류가 발생했을 시 예외 처리를 통하여 오류 발생 사실을 알 수 있다.CLR은 스레드 프로그래밍 기능을 제공하기 때문에 CLR을 지원하는 언어는 자유롭게 스레드를 만들수 있다. MS는 CLR과 호환되는 언어의 컴파일러를 다수 만들었는데, C++,C#,VB,F#, IL어셈블러 등이 있다.물론 다른 회사들도 CLR을 지원하는 ..
c++과 c#의 컴파일 과정 차이 컴파일C++은 즉시 머신 바이너리 코드로 컴파일 된다. 어플리케이션의 실행 파일을 운영체제가 바로 실행하므로 어셈블리어로 컴파일된다.C#은 바이트 코드(가상머신을 위한 기계어)로 컴파일 되며,나중에 가상 머신 실행 환경인 .NET에서 실행되므로 이에 적합한 중간수준 언어인 IL(Intermediate Language)로 컴파일 한다. 고수준 언어에서 저수준 언어로 컴파일하는 c++의 컴파일 시간이 고수준 언어에서 중간수준 언어로 컴파일하는 c#의 컴파일 시간보다 매우길다.다만 런타임 속도는 c++이 더 빠르다.C#은 컴파일 타임과 런타임에 엄격한 유형 검사를 시행하는 강력한 유형 언어인 반면,C++은 유연성은 높지만 OS를 실행하는 데 심각한 피해를 줄 수 있고 더 많은 오류가 발생할 수 있는 약한 유형..
DividedByZero ? 흠.. 처음에 DividedByZero란 것에 대해 조사하라 시길래 뭔가 했다.  조금 찾아보니 C#에서 정수나 decimal 값을 0으로 나누면 DivideByZeroException이 발생 하는 것에 대해 알아보라 하신거였다. 예를 들어, 다음 코드는 예외를 발생시킵니다:    이 예외를 방지하려면 나누기 연산을 수행하기 전에 분모가 0이 아닌지 확인해야 한다.  반면, 부동 소수점 값을 0으로 나누면 예외가 발생하지 않고, IEEE 754 산술규칙에 따라 양의 무한대, 음의 무한대 또는 NaN(Not a Number) 값을 반환한다. 이렇게 나오는 이유는 아마 수학적으로도 분모가 0일수가 없어서 연산 자체가 안되는 에러가 뜬것같았다.   이렇게 수학적 증명식을 가져와봤다. 어떤 수에 0을 곱하면 0이되기 ..
실수의 부정확함 코드를 짠다.   double a = 0.1f + 0.1f; double b = 0.2f; if (a == b) { Console.WriteLine("same"); } else { Console.WriteLine("different"); } a = 0.1f + 0.2f; b = 0.3f; if (a == b) { Console.WriteLine("same"); } else { Console.WriteLine("different"); } a = 0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f; //10번이다. b = 1.0f; if (a == b) { Console.WriteLine("same");..