Понимание основ программирования: переменные, операторы, управляющие структуры

Понимание основ программирования: переменные, операторы, управляющие структуры

5 ноября 2022 г.

Пролог

По своему опыту я понял, что пропустить основы и сразу перейти к применению определенных технологий (например, языка программирования) для создания чего-то, что имело бы смысл, сложно.

Отсутствие основ также может привести к отсутствию фундамента, который является строительным блоком от промежуточных до продвинутых концепций. Конечно, некоторым людям полезно учиться на практике, но пропустить начальные понятия, чтобы начать что-то делать, тоже стоит обратить внимание.

В этой части я расскажу об основных понятиях программирования. Это переменные вместе с их типами данных, различные типы операторов в программировании, виды структур, необходимые для группировки нашего исходного кода, и другие основы.

Я расскажу об основных концепциях программирования, сделав их простыми и лаконичными, просто чтобы сделать их более удобными для мозга.

Это основные строительные блоки, на которые следует обращать внимание в первую очередь всем, кто только начинает изучать программирование. И без лишних слов, приступим.

Предисловие

Этот материал не является отдельной книгой для изучения основ программирования в целом. Это упрощенный блог, посвященный основам. Его можно использовать в качестве основного или дополнительного справочника для их изучения, но он не является самостоятельным.

Вы можете использовать это с другими способами обучения, такими как просмотр видео, чтение других статей и т. д. Хорошо, если вы дополните их сторонними ссылками. Вы также можете использовать это, чтобы быстро ознакомиться с концепциями в относительно упрощенном содержании.

Если вы только начинаете, нет смысла изучать все внутренние процессы, связанные с конкретными концепциями. Что действительно важно, так это то, что мы знаем варианты их использования и по крайней мере знаем, как они работают. Нет необходимости сразу изучать всю их работу в фоновом режиме.

Но если вы хотите, вы можете изучить их самостоятельно, так как в Интернете есть множество ссылок, чтобы испачкать руки, если вы хотите поиграть с ними. В конце концов, мы разные типы учащихся, и в этом нет ничего плохого.

Изучение основ программирования также не зависит от языка. На самом деле, это общая концепция, которая означает, что мы можем использовать другие языки программирования при его изучении. Я предлагаю вам выбрать те языки, которые очень популярны в технической индустрии, такие как Java, Python, JavaScipt, Rust, Go и т. д.

Эти языки хорошо зарекомендовали себя, и кроме того, у них большое будущее. Что касается их настройки и установки для начала работы на вашем компьютере, в Интернете полно руководств по ним. Не стесняйтесь искать их, чтобы быстро испачкать руки.

Переменные

Что это за переменные и почему они важны в программировании? Переменные в программировании и в математике похожи. По сути, они просто хранят значение, которое можно использовать для различных важных операций.

Но в отличие от математики, переменные могут хранить не только числа. Это могут быть символы, последовательности символов (или строки в программировании), логические значения (только true или false) и любые другие вещи, которые можно сохранить для дальнейших операций.

Переменные также могут хранить ссылки на определенную вещь или сущность в программировании. Такие ссылки означают, что переменные содержат информацию объекта, необходимую для доступа к ним. Значения также называются литералами или просто данными в некоторых контекстах.

Также важно отметить, что значения переменных хранятся в памяти компьютера, на котором они выполняются, точно так же, как и другие вещи в программировании.

Простые объявления переменных в Python

myFullName = "John Rommel Octaviano"  
myMiddleInitial = 'P';  
myAge = 20;  
isHuman = true;

Доступ или чтение значений, хранящихся в переменной, можно использовать для различных операций, таких как умножение и деление, если указанное значение является числом. То же самое касается строк.

Мы можем манипулировать строками (или просто модифицировать их), например преобразовывать их в верхний регистр. Хранение значений в переменной — одна из частых практик, которую мы должны использовать полностью и правильно. Хранение и извлечение значений также следует использовать умеренно.

В некоторых случаях использование переменных вообще не требуется. На самом деле, мы все еще можем выполнять некоторые операции для выполнения поставленной задачи. Но переменные значительно упрощают эти операции, уменьшая повторения, такие как дублирование кода.

Переменные также имеют решающее значение в операциях, где значения должны быть сохранены, чтобы выполнить конкретную операцию для отслеживания чего-то, что затем является результатом, который хранится в этой переменной и также должен использоваться для дальнейших операций, и так далее.

Исходный код для решения корней квадратного уравнения, который показывает важность переменных для хранения значений в таких небольших случаях использования

double a;  
double b;  
double c;  
double determinant;  
double root1;  
double root2;  

a = 2.3;  
b = 4;  
c = 5.6;  
determinant = b * b - 4 * a * c;  

if (determinant > 0) {  
  root1 = (-b + Math.sqrt(determinant)) / (2 * a);  
  root2 = (-b - Math.sqrt(determinant)) / (2 * a);  
} else if (determinant == 0) {  
  root1 = root2 = -b / (2 * a);  
} else {  
  double real = -b / (2 * a);  
  double imaginary = Math.sqrt(-determinant) / (2 * a);  
}

Константы

Константы — это специальные типы переменных, которые нельзя обновить или запретить изменять после того, как мы их объявили. Поскольку эти переменные нельзя изменить, такие операторы, как присваивания и увеличение/уменьшение, не будут работать, а их использование с константами может привести к ошибкам.

Они доступны только для чтения или доступа к их значению для определенных целей. Это также просто программное представление абсолютных переменных в математике, таких как число Пи, золотое сечение, число Эйлера и многие другие.

Идентификаторы

Идентификаторы — это еще один термин для имени чего-то в нашем коде. В программировании большинство понятий, таких как переменные, функции, объекты, массивы и т. д., необходимо узнавать по именам.

Имена, которые мы создали, используются для ссылок и конкретных целей, когда нам нужно взаимодействовать с ними, например создавать, читать и обновлять их значения.

Обычно идентификаторы должны быть удобочитаемыми, например, краткое имя по отношению к их значению. Они также должны быть действительными, следуя официальному синтаксису определенного языка, как и не используя зарезервированное ключевое слово.

Я настоятельно рекомендую проверять синтаксис языка для создания идентификаторов при их создании, чтобы избежать ошибок. Такие соглашения, как PascalCase, camelCase и kebab-case, используются чаще всего.

Типы данных

Поскольку переменные могут хранить такие значения, как строки, числа и логические значения, эти переменные также можно регулировать в зависимости от того, какой тип данных или литерал они могут хранить. В статических языках, таких как Java & C#, указание типов данных в переменных строго применяется при объявлении. Если этого не сделать, могут возникнуть исключения.

Простые инструкции с использованием C#, которые объявляют переменные с типами данных

string myFullName = "John Rommel Octaviano";  
char myMiddleInitial = 'P';  
int myAge = 20;  
bool isHuman = true;

Что касается динамических языков, таких как JavaScript и Python, указывать типы данных не обязательно. Компилятор (или, по сути, просто приложение, которое преобразует наш код в последовательность нулей и единиц, которые понимает только наш ЦП для выполнения желаемых операций) не применяет такие объявления (или просто создает, но ничего не сохраняет).

Простые инструкции с использованием Python, которые объявляют переменные без типов данных

myFullName = "John Rommel Octaviano"  
myMiddleInitial = 'P'  
myAge = 28  
isHuman = true

Думайте о типах данных просто как о маркировке, указывающей, что конкретная переменная может принимать значение только в зависимости от указанного типа данных. Несоблюдение этих маркировок посредством отказа от сохранения числа в строке может привести к ошибкам. Необходимо соблюдать протокол.

int - для целых чисел

float — для чисел, имеющих значение с плавающей запятой

double — для чисел с плавающей запятой, в которых диапазон или предел этого типа данных, который может принимать переменная, намного выше, чем число с плавающей запятой

long - для целых чисел, в которых диапазон или предел этого типа данных, которые может принять переменная, намного выше, чем int

char — для одного символа

Строка — для последовательности символов

boolean — для значений true или false

Простые операторы с использованием Java, которые объявляют переменные с типами данных

String myFullName = "John Rommel Octaviano";
char myMiddleInitial = 'P';
int myAge = 20;
float myBatteryLevel = 90;
double myTemperature = 35.7;
long myCellCount = 30,000,000,000,000;
boolean isHuman = true;

и многое другое. Это общие и общие типы, которые представлены в большинстве языков программирования, особенно в строго определенных. Существуют также типы данных для определенных сущностей, таких как массивы (базовое хранилище для значений) и многие другие.

Фактически, мы могли бы также создавать собственные типы (в программировании это называется Generics, продвинутая концепция).

Простой (примитивный) и составной (эталонный)

Переменные также имеют собственные виды. Он может быть простым или составным. Переменная может считаться простой, если тип данных, который используется для ее создания или объявления, использует встроенные типы данных. Это типы, которые естественным образом предоставляются самим языком.

Простые типы также называются примитивами, которые используют примитивные типы данных определенного языка. По сути, они напрямую сохраняли фактическое значение. В котором простая или примитивная переменная буквально представляет сам фактический литерал.

В то же время составные — это, по сути, полная противоположность. Это переменные, которые использовали типы, созданные самим программистом. В большинстве языков мы можем создавать свои собственные типы. Их также называют ссылочными типами.

Переменные-ссылки обычно хранят не само фактическое значение напрямую, а ссылку или просто часть информации о расположении фактического значения в памяти.

Это своего рода промежуточная тема, но по мере продвижения вы узнаете о них больше и об их важности при написании кода.

Операторы

Хорошо хранить разные значения и литералы. Но нам нужно что-то с ними делать, чтобы потреблять или использовать их в зависимости от конкретного варианта использования, к которому мы стремимся. Хорошо, что, как и в математике, есть операторы.

Фундаментальные операторы в математике и некоторые операторы программирования имеют общие концепции.

Это общие операторы, которые, как правило, являются общими для разных ЯП (языков программирования). Некоторые операторы также могут иметь другое значение в синтаксисе других языков для уникальных операций. Они также являются частью их собственных уникальных особенностей.

Арифметика

Оператор сложения (+) добавить числовые типы. Его также можно использовать для конкатенации (или просто объединения) нестроковых типов со строковыми в большинстве языков.

Оператор вычитания (Subtract) (-) вычитание числовых типов. Его также можно использовать для обозначения отрицательных чисел.

Оператор умножения (*) умножение типов чисел.

Оператор деления (/) разделить типы чисел.

Оператор по модулю (%) он вычисляет остальные числовые типы.

Простые операторы, использующие JavaScript, которые выполняют различные базовые вычисления и сохраняют свои значения в разных переменных

let numOne = 23;  
let numTwo = 24;  
let sum;  
let difference;  
let product;  
let quotient;  
let remainder;  

sum = numOne + numTwo; // 47
difference = numOne - numTwo; // -1
product = numOne * numTwo; // 552
quotient = numOne / numTwo; // 0.95833333333
remainder = numOne % numTwo; // 0

Логический

И (&&) возвращает true, если оба условия слева и справа верны

ИЛИ (||) возвращает true, если хотя бы одно условие слева или справа истинно

НЕ (!) переворачивает логическое значение условия или значения

Простые операторы с использованием Java, которые выполняют различные базовые операции, используя логические операторы между двумя логическими значениями и выводя их результаты

boolean booleanOne = true;  
boolean booleanTwo = false;  

System.out.println(booleanOne && booleanTwo); // false  
System.out.println(booleanOne || booleanTwo); // true  
System.out.println(!booleanOne); // false  
System.out.println(!booleanTwo); // true

Относительный

Равно (==) возвращает true, если оба условия или значение равны

Не равно (!=) возвращает true, если оба условия или значение не равны

Больше, чем (>) возвращает true, если значение слева больше, чем справа

** Менее (<)** возвращает true, если значение слева меньше, чем справа

Больше или равно (>=) возвращает true, если значение слева больше или равно значению справа

Меньше или равно (<=) возвращает true, если значение слева меньше или равно значению справа

Простые операторы с использованием Python, которые выполняют различные базовые сравнения чисел, используя операторы отношения между целыми числами и выводя их результаты

numOne = 56
numTwo = 33

print(numOne > numTwo) # True
print(numOne != numTwo) # True
print(numOne > numTwo) # True
print(numOne < numTwo) # False
print(numOne >= numTwo) # True
print(numOne <= numTwo) # False

Назначение

Назначение (=) присваивает значение правой переменной левой переменной

Добавить и назначить (+=) увеличить, добавив значение левой переменной из правой переменной

Вычесть и присвоить (-=) уменьшить путем добавления значения левой переменной из правой переменной

Умножить и присвоить (*=) увеличить, умножив значение левой переменной на значение правой переменной

Разделить и присвоить (/=) уменьшить путем деления значения левой переменной от правой переменной

Простые операторы с использованием C++, которые выполняют различные базовые сравнения чисел с помощью операторов присваивания и выводят окончательный результат

int numOne = 28;

numOne += 5; // 33
numOne -= 4; // 29
numOne *= 7; // 203
numOne /= 2; // 101

cout << numOne; // 101

Увеличение/уменьшение

Постинкремент (x++) увеличить значение переменной на 1 после использования значения

Предварительное увеличение (++x) увеличьте значение переменной на 1 перед использованием значения

Постдекремент (x--) уменьшить значение переменной на 1 после использования значения

Предварительное увеличение (--x) уменьшите значение переменной на 1 перед использованием значения

Простые операторы с использованием Java, которые выполняют различные базовые модификации числа с помощью операторов увеличения/уменьшения и выводят конечный результат

int numOne = 28;

numOne++; // 28
++numOne; // 30
numOne--; // 30
--numOne; // 28

System.out.println(numOne); // 28

Структуры управления

Написание кода с операторами и переменными достаточно хорошо для некоторых операций. Но в большинстве случаев нам нужны дополнительные инструменты для выполнения определенных функций, необходимых нашему приложению. Нам нужно больше инструментов для выполнения задач, которые могут сделать за нас тяжелую работу по удовлетворению наших конкретных потребностей в коде.

И здесь на помощь приходят структуры управления в программировании. Они имеют решающее значение, а не просто дополнительные инструменты для рассмотрения. Так же, как и операторы, существуют структуры, которых нет в одном языке и которые являются частью изучения некоторых настроек при переходе с одного языка на другой.

Но хорошо, что есть общие структуры, характерные для большинства языков.

Выбор

Служит воротом для того, какой код будет выполняться. Так как это похоже на ворота, единственный способ открыть их — буквально иметь настоящий ключ. Или условие оценивается как TRUE.

Один вариант (если) Операторы будут выполнены или выполнены, когда условие выполнено, оценено или равно TRUE. В противном случае, то есть если условие станет равным ЛОЖЬ, то ничего не происходит.

Инструкция if проверяет, равно ли значение переменной чему-либо, с помощью условного оператора в JavaScript, в котором, если проверка верна, он что-то печатает, иначе ничего не происходит

let foo = "foo";  

if(foo === "foo") {  
  console.log("foo!"); // Prints this if true
}

Двойные альтернативы (if-else) Операторы будут выполнены или выполнены, когда условие выполнено, оценено или равно TRUE. В противном случае, то есть если условие станет равным FALSE, будут выполнены альтернативные операторы.

Инструкция if проверяет, равно ли значение переменной чему-либо, с помощью условного оператора в JavaScript, в котором, если проверка верна, будет напечатано что-то, в противном случае — что-то еще< /p>

let foo = "foo";  

if(foo === "foo") {  
  console.log("foo!"); // Prints this if true
} else {  
  console.log("bar!"); // Prints this if false instead
}

Несколько вариантов (if-elseif-else) Операторы будут выполнены или выполнены, когда условие выполнено, оценено или равно TRUE. Но если условие возвращает ЛОЖЬ, последующие условия будут проверяться до тех пор, пока условие не будет оценено как ИСТИНА, и операторы внутри этого будут выполняться. Наконец, если все эти последующие условия оцениваются как FALSE, то есть ни одно из них не выполняется, то будут выполнены операторы в последнем блоке.

Инструкция if проверяет, равно ли значение переменной чему-либо, с помощью условного оператора в JavaScript, в котором, если проверка первого условия верна, он что-то напечатает, в противном случае он проверит следующее условий и выведите что-то еще, если они истинны, но если все условия ложны, выведите последнее

if(foo === "bar") {  
  console.log("bar!"); // Prints this if true
} else if(foo === "foobar") {  
  console.log("foobar!"); // Prints this if false instead
} else {  
  console.log("foo!"); // Prints this if everything else is false
}

Повторение

Служит колесом, которое продолжает вращаться или многократно запускать наш код. Так как это похоже на колесо, единственный способ остановить их — буквально поставить ручной тормоз. Или пока условие не вернет FALSE.

Повторять во время Прежде чем операторы будут запущены, сначала оценивается условие, и если результат равен TRUE, код будет запущен. После выполнения он снова вернется к проверке условия и будет выполняться снова и снова, пока условие не станет ЛОЖНЫМ.

Простой цикл while в Java, выводящий все числа в пределах начального и конечного диапазона

int counter = 1;  

while (counter <= 10) {  
  System.out.println(counter);  
  counter++;  
}

Делать-повторять-пока

Инструкции будут выполняться перед проверкой условия. После проверки и результата TRUE он снова запустит код и снова вернется к проверке. Он будет выполняться снова и снова, пока условие не станет FALSE. В отличие от циклов while ожидается, что циклы do-while будут выполнены хотя бы один раз.

Основной цикл do-while в Java, выводящий все числа в пределах начального и конечного диапазона

do {  
  System.out.println(counter);  
  counter++;  
} while(counter <= 10);

Повторить для

Эта структура работает так же, как и цикл while, но у них есть существенное отличие. В цикле for количество итераций или количество запусков кода известно до выполнения, в то время как в цикле while количество итераций неизвестно.

Приведенный здесь код будет выполняться в известное время, а цикл while — нет. Другие различия чаще всего зависят от языка.

Основной цикл for в Java, выводящий все числа в пределах начального и конечного диапазона

for(int counter = 1; counter <= 10; counter++) {  
  System.out.println(counter);  
}

Эпилог

И вот оно. Это некоторые из различных концепций программирования, отнесенных к категории фундаментальных. Мы рассмотрели переменные вместе с тем, что такое константы и идентификаторы, а также типы данных и их подтипы, в основном просто для хранения переменных. Мы также узнали больше о различных операторах, от арифметических до приращений и декрементов, для решения, создания вычислений и выполнения важных задач. Наконец, мы также говорили о различных структурах управления, которые делают наши приложения намного умнее.

Надеюсь, вы больше узнаете об основах программирования. Теперь у вас есть хотя бы базовые представления о некоторых общих понятиях, связанных с программированием, хотя бы простыми словами. Концепции, которые принципиально важны для создания реальных приложений. Не стесняйтесь узнавать о них больше по мере роста вашего прогресса. Спасибо и увидимся на следующем.


Рецепты ничего вам не говорят. Ключевым моментом является обучение методам.

Том Коликкио

:::информация Также опубликовано здесь.

:::


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE