InCode#A1: Переменные

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

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

Прежде чем начать

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

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

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

Переменные

Как мы уже определили, в ходе написания программы все задачи сводятся к трем типам задач: конвертация типов, математические и логические задачи. Все эти задачи имеют схожую конструкцию: набор исходных данных => некие действия => набор результирующих данных. Как вы могли заметить, мы должны изначально передать некоторый набор данных, а после получить уже результат.
Для этого используют переменные. Это некоторый блок (участок) памяти ЭВМ, в котором система хранит некоторое значение. Предлагаю сейчас не затрагивать способы реализации хранения, но мы обязательно это рассмотрим в дальнейшем.

Типы переменных

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

Начнём мы с самого простого типа: “булевский”. Ещё его можно назвать “бинарным” или “двоичным”. В С++ он называется “bool”, а в C# и Java “boolean”. Этот тип данных может использоваться в выражениях, где у нас результат будет “Правда” или “Ложь”. Если использовать термины языков программирования, то “True” или “False”. Этот тип данных используется только для реализации логики программы.

Для записи одного текстового символа, используют тип данных “Символ”. В Си подобных языках программирования, он называется “char”.
Обычно “Символ” используют вместе со “Строкой”. “Строка” в Си подобных называется “string”.
Текстовые типы данных имеют разное применение. Обычно их используют для работы с данными и для взаимодействия с пользователем.

Ну и последние рассмотренные типы будут принадлежать числам.
“Целочисленный” тип в Си подобных языках это: “int”, “Integral” и их модификации.
“Дробный” тип в Си подобных языках это: “float”, “double” и их модификации.
Числовые типы данных используются во всех трех классах задач. Без них немыслима большая часть задач, которые решают программисты.

Таблица типов:

ПсевдокодСи языкиПример
булевскийbool, booleantrue, false
символchar‘а’, ‘г’, ‘я’
строкаstring“Привет мир”
целочисленныйint, Integral6, 25, 1024, -7
дробныйfloat, double6.74, 10Е2, 0.15

Операции над переменными

Переменные есть, осталось научиться с ними работать. Но тут всё просто и интуитивно. Я сделаю сноску в виде таблиц:

Булевский тип:

ПримерОписание
Not True = FalseОтрицание переданного значения
True And True = TrueTrue And False = FalseFalse And True = False
True лишь когда оба переданных значения равны True
True Or True = TrueTrue Or False =TrueFalse Or True =  TrueFalse Or False = False
True тогда, когда хоть одно значение True

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

Числовые типы: Тут всё просто, этому вы должны были научиться в школе, но табличку я вставлю:

ПримерОписание
2 + 5 = 7Сложили два и семь
2 — 9 = -7Вычли из двух девять
3 * 6 = 18Умножили три на шесть
9 / 3 = 3Поделили девятку на три части
12 % 3 = 0,7 % 5 = 2Нашли остаток от деления. Если разделить двенадцать на три мы получим чистую четыре — без остатка.Если же мы поделим семь на пять, мы получим один. И у нас чуток останется — это и есть остаток от деления
6 ^ 2 = 36Возведение числа шесть во вторую степень

Объявление переменной

Для объявления переменной в нашем псевдокоде (как и в современном высокоуровневом языке программирования) есть удобная конструкция для объявления переменных.

Изначально мы должны на новой строке написать следующую конструкцию:

ТипПеременой ИмяПеременной [= её инициализация]

Выглядит достаточно сложно и непонятно, но не стоит переживать. Давайте разберём всё пошагово:

  • ТипПеременной — это один из типов данных, которые мы рассмотрели выше. Это нужно, дабы система поняла, как мы хотим использовать данную переменную и что от неё будем требовать в дальнейшем.
  • ИмяПеременной — необходимо для того, чтобы мы в дальнейшем смогли отличать одну переменную от другой. Согласитесь, использовать адрес вида “0x206” не так удобно, как переменную “CountObject”.
  • Инициализация нужна для того чтобы назначить переменной стартовое значение. По умолчанию система конечно даст свое значение, но для нас это не всегда хорошо.

Примеры объявления переменных:

ОбъявлениеОписание
Целочисленный Count = 10;Создаем целочисленную переменную “Count”, которая имеет стартовое значение “10”
Символ FirstLiterName;Создаем символьную переменную с именем “FirstLiterName”, которая не имеет начального значения.
Булевский FlagWork = true;Создаём булевскую переменную “FlagWork”, которая имеет состояние “true”

Работа с переменными

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

Сложение двух чисел:

Целочисленный А = 10;
Целочисленный Б = 4;

Целочисленный Результат = А + Б;

Возведение числа в квадрат:
Дробный А = 4;

Дробный Результат = А ^ 2;

Возведение числа в квадрат (другой вариант):

Дробный А = 4;

Дробный Результат = А * А;

Принцип работы должен быть понятен. Все остальное, как в обычной математике, только у вас ещё есть память и вы можете строить более сложные выражения.

Сложность вычислений

Представьте, что вам проще сделать: сложить два числа или перемножить их? Возвести в степень или найти корень? Так и с компьютерами, некоторые операции для них очень простые (сложение или вычитание), другие же очень сложные (возведение в степень или простое умножение).

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

Домашнее задание

В этот раз не будет много заданий, но постарайтесь отнестись к ним с максимальной ответственностью. А вот и задачи:

  • Рассмотрите некоторые математические алгоритмы и постарайтесь записать их по аналогии с рассмотренными мною алгоритмами в теме “Работа с переменными”.

Вы можете подумать над:

  • поиск расстояния между точками
  • площадь фигур
  • расчет заработной платы за год с вычетом процентов
  • и другие задачи, какие придумайте
  • Постарайтесь оптимизировать ваши алгоритмы, заменив сложные действия на более простые.
  • Используйте также знания, полученные из предыдущего урока.
InCode#A1: Переменные

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *