Skip to main content

Въведение в програмирането

Програмирането е процес на създаване на инструкции, които казват на компютъра как да извършва задача. Като се започне с основните концепции като променливи и типове данни, разработчиците могат да създават сложни програми, които решават реални проблеми. В 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,7672 байтаshort e = 1000;
ushort0 до 65,5352 байтаushort f = 50000;
int-2,147,483,648 до 2,147,483,6474 байтаint a = 1;
uint0 до 4,294,967,2954 байтаuint g = 100000u;
long-9,223,372,036,854,775,808 до 9,223,372,036,854,775,8078 байтаlong h = 1000000L;
ulong0 до 18,446,744,073,709,551,6158 байта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#. Винаги избирайте тип данни, който е подходящ за задачата, като имате предвид точността и големината на данните.