Компьютерные навыки. Гостевой пост Алены Киселевой

Сегодня предлагаю вашему вниманию гостевой пост участницы «Клуба Пять специй» Алены Киселевой. Алена занимается программированием интерфейсов, основной рабочий язык C++. Знает Python и участвовала на нём в Russian AI Cup. C# использует для написания игр на Unity3d.

Алена решила поделиться с участниками клуба основами из своей рабочей сферы. Статья специально для тех, кто с компьютером на «вы» и хочет начать с обзора обо всем и по существу.

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

Некоторые элементы компьютера

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

Жесткий диск

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

Процессор

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

Оперативная память

Оперативная память — это просто быстрая память. В нее помещаются данные с которыми компьютер работает в текущий момент. Она работает быстрее по сравнению с жестким диском. В эту память перемещается код программы, которая работает в текущий момент.

Что такое код или программа?

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

Интерпретация данных

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

Языки программирования

; Чтение из ПЗУ BIOS даты его выпуска

; В программном сегменте
main proc
mov AX,0F000h       ; Занесем в DS
mov DS,AX           ; Сегментный адрес ПЗУ BIOS
mov SI,0FFF5h       ; Смещение к интересующему нас полю
mov AX,data         ; Настроим RS
mov RS,AX           ; на сегмент данных программы
mov DI,offset bios  ; Смещение к полю для хранения даты
mov CX,8            ; Перенести 8 байт
cld                 ; Движение по строке вперед
rep movsb           ; Перенос байтов

; Выведем полученную информацию на экран
mov AX,data         ; Теперь настроим DS
mov DS,AX           ; на сегмент данных программы
mov  AH,40h         ; Функция вывода
mov BX,1            ; Дескриптор экрана
mov CX,8            ; Вывести 0 байт
mov DX,offset bios  ; Смещение в строке
int 21h             ; Вызов DOS

; В сегменте данных
bios db 8 dup (')   ; Поле для хранения даты

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

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

Общие элементы кода

Комментарии

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

Данные в коде

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

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

Компьютер не различает, с какими именно данными он работает, для него все нули или единицы, но для удобства в языках программирования существуют типы переменных, которые определяют какого рода данные хранятся в «ящике» переменной. Базовыми типами во многих языках являются число, символ и логический тип. Логический тип имеет всего два значения: истина или ложь.

Операции

Присвоение

Присвоение это операция, в которой мы помещаем в «ящик» переменной какую-то вещь. Например, int count = 0; значит, что мы назвали ящик с числами count и поместили туда число 0. После присвоения переменную можно использовать в других операциях.

Пример на языке C++, символ ; в этом языке отделяет одну инструкцию от другой, а
int это сокращение от английского integer (целое число).

Арифметические операции

Арифметические операции это сложение, вычитание, умножение, и деление. В некоторых языках есть также операция остаток от деления нацело. Арифметические операции производятся над числовыми переменными и их результатом также является число. Например:

int a = 5;
int b = 6;
int c = a + b; // c = 11

В языке С++ всё что идёт после // и до конца строки является комментарием.

Логические операции

Логические операции это знаки сравнения равно, не равно, меньше, больше. Результатом логической операции является логический тип(истина или ложь).

Другие операции

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

Условный оператор

Условный оператор это конструкция языка программирования, которая выполняет один набор инструкций, либо другой в зависимости от того истинно или ложно условие. Пример, «ЕСЛИ на улице будет хорошая погода ТО я пойду гулять ИНАЧЕ останусь дома». Во многих языках эта конструкция выглядит, как if..then..else, поэтому я выделила указанные слова в примере.

Цикл

Цикл — это повторение инструкции или набора инструкций несколько раз. Пример, «Я буду складывать журавликов из бумаги ПОКА у меня не закончится бумага» или «Я сделаю 10 приседаний». В языках обычно используется 2 конструкции для циклов for и while. For используется для повторения определённого количества раз, while повторяет инструкцию пока не нарушится условие.

Функция

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

Программа «Как помыть посуду»

ПРОЙТИ НА кухню;
ВКЛЮЧИТЬ воду;
ПОКА в раковине есть грязная посуда
    ВЗЯТЬ тарелку
    ЕСЛИ тарелка грязная ТО
        ПОМЫТЬ тарелку;
    ИНАЧЕ
        ПОСТАВИТЬ тарелку в шкаф;
ВЫКЛЮЧИТЬ воду;

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

Составить алгоритм какого-то привычного действия, используя условные операторы и циклы.

Автор Алена Киселева.

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s