Въведение в програмирането
Програмирането е процес на създаване на инструкции, които казват на компютъра как да извършва задача. Като се започне с основните концепции като променливи и типове данни, разработчиците могат да създават сложни програми, които решават реални проблеми. В C#, един от основните програмни езици, типовете данни и променливите са камъкът на основата, върху който се изграждат всички приложения.
Защо са Важни Типовете Данни и Променливите?
Когато програмираме, ние използваме променливи, за да съхраняваме информация. Типът на данните на променливата определя какъв вид информация може да се съхранява в нея и каква операция може да се извърши с тази информация. Например, не можем да използваме аритметични оператори със стрингове, тъй като те са предназначени за работа с числа.
Как да Изберем Правилния Тип Данни?
Изборът на тип данни зависи от това, каква информация искаме да обработваме. Ако работим с числа, които не изискват голяма точност, int
или float
могат да бъдат достатъчни. За финансови приложения, decimal
е по-подходящ избор заради високата си точност и намаления риск от грешки при изчисленията.
Типове данни и променливи
Въведение
В програмния език C#, типовете данни определят какъв вид информация може да бъде съхранявана в променливите. Типовете данни могат да бъдат примитивни, като числа и булеви стойности, или съставни, като масиви и обекти.
Примитивни Типове Данни
Числови Типове
Числовите типове данни се използват за съхранение на числа и се разделят на цели числа и числа с плаваща запетая.
Цели Числа
byte
: Съхранява цели числа с ограничен диапазон. Среща се и катоunsigned byte
. Неговата алтернатива еsbyte
, който също съхранява цели числа, но със знак.short
: Съхранява цели числа с по-малка големина. Среща се и катоunsigned short
. Неговата алтернатива еushort
, който също съхранява цели числа, но със знак.int
: Стандартен тип за цели числа, използван най-често. Среща се и катоunsigned int
. Неговата алтернатива еuint
, който също съхранява цели числа, но със знак.long
: Съхранява цели числа с по-голяма големина. Среща се и катоunsigned long
. Неговата алтернатива еulong
, който също съхранява цели числа, но със знак.
Числа с Плаваща Запетая
float
: Подходящ за научни изчисления с по-ниска точност.double
: Предпочитан за изчисления с висока точност.decimal
: Използва се за финансови и монетарни изчисления, където точността е от изключителна важност.
Булеви Типове
bool
: Представлява истина (true
) или лъжа (false
) и се използва за контрол на логически условия.
Символен Тип
char
: Съхранява единичен знак или символ.
Сравнение на Диапазоните на Числовите Типове
Изглежда, че в предоставената информация липсват някои от числовите типове данни, които се предлагат в C#. Можете да добавите следните типове към списъка, за да осигурите по-пълно покритие на темата за числовите типове данни:
Тип | Диапазон | Размер | Пример |
---|---|---|---|
short | -32,768 до 32,767 | 2 байта | short e = 1000; |
ushort | 0 до 65,535 | 2 байта | ushort f = 50000; |
int | -2,147,483,648 до 2,147,483,647 | 4 байта | int a = 1; |
uint | 0 до 4,294,967,295 | 4 байта | uint g = 100000u; |
long | -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 | 8 байта | long h = 1000000L; |
ulong | 0 до 18,446,744,073,709,551,615 | 8 байта | ulong i = 1000000uL; |
float | Прибл. ±3.4e±38 (7 цифри) | 4 байта | float b = 1.23f; |
double | Прибл. ±5.0e±324 до 1.7e±308 (15 цифри) | 8 байта | double c = 1.23456789012345d; |
decimal | ±1.0e-28 до ±7.9228e+28 (28-29 цифри) | 16 байта | decimal d = 1.2345678901234567890123456789m; |
Важно е да отбележите, че decimal
типът не се използва за представяне на научни числа, а по-скоро за финансови и счетоводни приложения, където е необходима много висока точност, особено при изчисления с пари.
Референтни Типове Данни и Dynamic в C#
Референтни Типове Данни
Референтните типове данни съхраняват референции към паметта, където е съхранена същинската стойност. Това са:
- Масиви (
array
): Съхраняват колекция от стойности от един и същи тип. - Стрингове (
string
): Представляват поредица от символи. - Класове (
class
): Дефинират типове данни, които съдържат данни и методи за работа с тези данни. - Интерфейси (
interface
): Дефинират само сигнатурите на методите без тяхната имплементация. - Делегати (
delegate
): Представляват референции към методи с определена сигнатура.
Dynamic Тип Данни
dynamic
: Тип данни, който отлага проверката на типовете за времето на изпълнение на програмата. Използва се, когато типът на данните не може да бъде определен по време на компилация.
// Референтен тип
string ime = "Ivan";
object obj = new object();
// Dynamic тип
dynamic dinamichnaPromenliva = 1;
dinamichnaPromenliva = "сега съм стринг";
dinamichnaPromenliva = new List<int>();
Таблица на Референтни Типове Данни
Тип | Описание | Пример |
---|---|---|
string | Поредица от символи | string ime = "Maria"; |
array | Колекция от елементи с един и същи тип | int[] chisla = new int[5]; |
class | Тип данни с данни и методи | class Kuche { public string Poroda; } |
interface | Дефинира сигнатурите на методите | interface IZhivotno { void Disha(); } |
delegate | Референция към метод | delegate int Operaciq(int x, int y); |
dynamic | Тип данни за отлагане на проверка на типовете | dynamic dinamichnaStoinost = "текст"; |
Референтните типове данни са мощен инструмент за управление на сложни данни и реализация на различни програмни модели. dynamic
типът е полезен в динамични и гъвкави среди, където не можем предварително да определим типа на данните.
Оператори
Операторите в C# се използват за извършване на различни операции с променливите. Те включват аритметични, сравнителни и логически оператори.
Аритметични Оператори
+
(събиране),-
(изваждане),*
(умножение),/
(деление),%
(модул)
Сравнителни Оператори
==
(равенство),!=
(неравенство),<
(по-малко),>
(по-голямо),<=
(по-малко или равно),>=
(по-голямо или равно)
Логически Оператори
&&
(логическо И),||
(логическо ИЛИ),!
(логическо НЕ)
Примери за Използване на Оператори
int x = 10;
int y = 5;
int sum = x + y; // 15
bool isEqual = (x == y); // false
bool isLess = (x < y); // false
Вход и Изход от Конзолата в C#
Конзолните приложения в C# комуникират с потребителя чрез стандартния вход и изход - това е конзолният прозорец, който се отваря, когато стартирате приложението.
Console.Read()
Console.Read()
чете следващия символ от стандартния вход и го връща като целочислено значение (int). Този метод е блокиращ, което означава, че програмата ще изчака, докато потребителят въведе символ и натисне Enter, преди да продължи.
int ch = Console.Read(); // Чете един символ и връща ASCII стойността
Console.ReadLine()
Console.ReadLine()
чете един ред текст от стандартния вход и го връща като стринг. Също така е блокиращ метод.
string line = Console.ReadLine(); // Чете цял ред до натискането на клавиша Enter
Console.Write()
Console.Write()
извежда данни на стандартния изход без да добавя нов ред в края на изхода.
Console.Write("Въведете име: "); // Извежда текста без нов ред в края
Console.WriteLine()
Console.WriteLine()
работи подобно на Console.Write()
, но добавя нов ред след извеждането на текста.
Console.WriteLine("Здравейте!"); // Извежда текста и добавя нов ред след него
Пример за използване на конзолните методи
Ето прост пример за програма, която използва тези методи за взаимодействие с потребителя:
Console.Write("Как се казвате? ");
string name = Console.ReadLine(); // Чака потребителя да въведе име и натисне Enter
Console.WriteLine($"Здравей, {name}!"); // Поздравява потребителя с името, което е въведено
Console.Write("Натиснете произволен клавиш за изход...");
Console.Read(); // Чака потребителя да натисне клавиш преди да затвори програмата
Този код демонстрира основния поток на вход и изход в конзолна програма на C# - искане на информация от потребителя, четене на входа, обработка и извеждане на резултата.
Можете да вмъкнете раздел за int.Parse()
и други подобни методи за парсване в лекцията ви веднага след раздела за вход и изход от конзолата. Така учениците ще разберат как да преобразуват текстов вход в числови стойности, което е често срещано действие в програмирането. Ето как би изглеждало:
След като научихме как да четем вход от конзолата, е важно да разберем как можем да преобразуваме този текстов вход в числа, за да извършим с тях математически операции.
Използване на int.Parse()
Когато искаме да преобразуваме стринг в цяло число, можем да използваме метода int.Parse()
:
string input = Console.ReadLine(); // Потребителят въвежда "123"
int number = int.Parse(input); // Преобразуваме стринга в цяло число
Този метод ще хвърли изключение, ако стрингът не може да бъде преобразуван в число.
TryParse()
за По-Безопасно Преобразуване
За да се справим с възможни грешки при преобразуването, можем да използваме int.TryParse()
, който връща bool
стойност, указваща дали преобразуването е успешно:
string input = Console.ReadLine();
int number;
if (int.TryParse(input, out number))
{
Console.WriteLine($"Успешно преобразуване: {number}");
}
else
{
Console.WriteLine("Въведен е невалиден номер!");
}
Други Типове за Преобразуване
Има подобни методи за други числови типове данни, като float.Parse()
, double.Parse()
, и decimal.Parse()
.
Пример: Изчисляване на Обем
Нека да видим как можем да използваме int.Parse()
в програма за изчисляване на обема на куб:
Console.Write("Въведете дължината на страната на куба: ");
int length = int.Parse(Console.ReadLine());
int volume = length * length * length;
Console.WriteLine($"Обемът на куба е: {volume}");
Това обяснение и примери ще помогнат на учениците да разберат как да преобразуват текстов вход в числови стойности и как да използват тези стойности в програмите си.
Тази лекция предоставя основна информация за типовете данни и променливите в C#. Винаги избирайте тип данни, който е подходящ за задачата, като имате предвид точността и големината на данните.