Skip to content

Commit 76a1fdd

Browse files
committed
second lesson updated
1 parent 88f1971 commit 76a1fdd

File tree

2 files changed

+72
-38
lines changed

2 files changed

+72
-38
lines changed

Basics_02.md

Lines changed: 69 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,66 @@
1-
# 2. Булева алгебра, множества, особенности сравнения объектов.
1+
# 2. Переменные, Булева алгебра, двоичная арифметика
22

3+
## Переменные и типы данных.
34

4-
На прошлом уроке мы уже знакомились с булевым типом данных.
5+
Результат работы программиста - программный код, текст. Код состоит из инструкций компьютеру, что, как и в какой последовательности выполнить. Все эти инструкции следуют определенной цели, которую видит программист. Начальные, промежуточные и конечные данные каждого действия или комплекса действий сохраняют в переменных, у которых есть определенный тип данных. Для того, чтобы понимать весь этот процесс, мы наше знакомство с программированием начнем с нескольких терминов:
6+
7+
**Переменная** - данные, которые хранятся в оперативной памяти и имеют имя и тип. Проще ассоциировать с подписанным контейнером, в котором что-то лежит.
8+
9+
**Тип данных** - характеристика набора данных, которая определяет возможные значения этого набора, ряд допустимых операций, которые можно предпринимать с этими данными, и способ хранения этих данных в памяти.
10+
11+
*Пример из реальной жизни:*
12+
>Коробки с фруктами, на которых написано "Фрукты". Они занимают определенное место, у нее есть название и все примерно ориентируются, что можно сделать с содержимым этой коробки. Коробки с фруктами содержат фрукты. Их можно открыть, фрукт можно съесть, можно разрезать, можно почистить, можно приготовить салат и так далее.
13+
>Ящик с надписью "Посуда" при переезде. Ясно, что внутри хрупкое и бьющееся, ясно, как это транспортировать и когда распаковывать.
14+
15+
В программировании типов данных много, и в различных языках они различаются. Тем не менее, рассмотрим их общие виды и характеристики. Разобравшись с этим, мы сможем классифицировать любой незнакомый нам тип данных.
16+
17+
![Не учи типы, дизайнер!](http://memesmix.net/media/created/1z591q.jpg)
18+
19+
20+
**Примитивами** называют типы данных, которые состоят из одного элемента. Синонимы к этому определению - **скалярные**.
21+
22+
**Структурными** можно назвать типы данных, которые состоят из элементов других типов данных. Название - синоним: нескалярные, аггрегатные.
23+
24+
Говоря проще, примитивы - простейшие типы данных, которые неделимы, тогда как структурные состоят из набора структурных или примитивных типов.
25+
26+
### Скалярные типы данных или примитивы.
27+
28+
Во многих, если не во всех языках программирования высокого уровня встречаются следующие примитивы:
29+
30+
- **Булевы или логические данные.** Переменная этого типа может иметь только два значения - Правда и Ложь (**True, False**). Часто эти параметры интерпретируются соответственно как 1 и 0. Используется повсеместно для получения ответов на различные вопросы и дальнейшего выбора варианта действий.
31+
- **Целые числа.** Переменные такого типа содержат целое число. В зависимости от языка программирования и выбранного подтипа целочисленных данных различаются диапазоном значений и воможностью работы с отрицательными числами.
32+
- **Числа с плавающей точкой** или вещественные числа. Сюда входят как целые числа, у которых дробная часть есть, но считается пустой, так и дробные. В программном виде чаще всего такие числа записываются как `x = a * 10^b`, т.е. через дробное десятичное число **a**, умноженное на 10 в степени **b**. В математике это выглядит как `1.2*10^3`, в программировании степень числа 10 пишется через экспоненту, т.е. `1.2e3`. Например, расстояние от Земли до Солнца составляет 1.496 · 10 11 , или 1.496e11.
33+
- **Комплексные числа** - числа вида `x + iy`, где `i` - корень из минус единицы. Необходимо для ряда математических действий и изысканий, обычному программисту может быть нужно довольно редко.
34+
- **Отсутствие значения и типа** - особый тип данных, который означает ничего, пустое место. Отличается от нуля, пустой строки или пустого массива. В разных языках называется по-разному, например **null, none, nan**.
35+
- **Строки** - Строки принято относить к примитивам, хотя они и состоят из символов.
36+
37+
### Структурные типы данных.
38+
39+
Структурные типы данных, которые можно встретить в различных языках:
40+
41+
- Массивы
42+
- Кортежи
43+
- Словари
44+
- Множества
45+
- Функциональные типы данных
46+
- Записи
47+
48+
Эти типы данных мы расмотрим позже более подробно.
49+
50+
### Мутабельность (mutable)
51+
52+
Так же типы данных могут быть изменяемыми или **мутабельными**, и неизменяемыми (**иммутабельными**). Знакомясь с новыми типами данных конкретного языка разумно было бы выяснять, можно ли его менять, или он иммутабелен, т.е. значение его останется тем же, каким было создано, и можно либо работать с тем значением, что есть, либо создавать новое значение для него.
53+
54+
Те же строки, к примеру, могут быть неизменяемыми. Это значит, что в переменную можно записать строку, но изменить ее после этого будет невозможно. Однако, будет возможность записать в эту переменную другую строку, в том числе и измененную исходную строку.
55+
56+
### Булевы переменные
557

658
Переменная типа `bool` может содержать только два значения: **True** или **False**, при чем это не строки, не числа, а именно понятия ложь и истина.
759

860
Для работы с булевыми переменными существует булева алгебра.
961

1062
![](https://upload.wikimedia.org/wikipedia/commons/thumb/6/6c/George_Boole.jpg/267px-George_Boole.jpg)
1163

12-
1364
### Булева алгебра (логические операторы)
1465

1566
Существуют следующие логические операторы:
@@ -23,14 +74,14 @@ not означает НЕ, и, будучи поставленным перед
2374

2475
Далее приведена таблица, демонстрирующая работу операторов:
2576

26-
| | 0 to 0| 0 to 1| 1 to 0 | 1 to 1|
27-
|------|:-----:|:-----:|:------:|:-----:|
28-
| and | 0 | 0 | 0 | 1 |
29-
| or | 0 | 1 | 1 | 1 |
30-
| xor | 0 | 1 | 1 | 0 |
77+
| Операторы | 0 to 0| 0 to 1| 1 to 0 | 1 to 1|
78+
|--------------|:-----:|:-----:|:------:|:-----:|
79+
| and или `&&` | 0 | 0 | 0 | 1 |
80+
| or или `||` | 0 | 1 | 1 | 1 |
81+
| xor | 0 | 1 | 1 | 0 |
3182

3283

33-
### Оператор условия если (if)
84+
### Оператор условия "если" (if)
3485

3586
Во многих, если не во всех языках программирования существуют условия вида **если - иначе, если - иначе**. Код выглядит примерно следующим образом:
3687

@@ -110,6 +161,7 @@ a = [1, 2, 3, 4, 5, 6, 5, 4, 3, 2]
110161
([2, 3, 4, 5, 6, 7, 8])
111162
```
112163

164+
113165
### Круги Эйлера
114166
![](https://media.lpgenerator.ru/uploads/2016/10/25/4.jpg)
115167

@@ -149,19 +201,24 @@ PHP программистов 200
149201
JS программистов 1100
150202
Java программистов 100
151203

204+
## Системы счисления
205+
206+
![Системы счисления](http://sc109.ru/content/distant/inform/6/6klass_kod_info/images/ss.png)
207+
208+
Для лучшего понимания программирования будет не лишним уметь читать числа разных систем счисления и переводить из одной в другую.
209+
210+
![](http://atkritka.com/upload/iblock/de4/atkritka_1521038238_454.jpg)
211+
152212
## Полезные ссылки
153213

154214
Доп. статьи:
155215

156216
[Математическая логика](http://ya-znau.ru/znaniya/zn/135)
157217

158-
159218
[Решания задач при помощи кругов Эйлера](https://sibac.info/shcoolconf/science/xvii/42485)
160219

161-
162220
[Тест на логическое мышление](http://testoteka.narod.ru/pozn/1/10-on.html)
163221

164-
165222
[Онлайн создание диаграмм](https://creately.com/ru/%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80-%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC-%D0%92%D0%B5%D0%BD%D0%BD%D0%B0-%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD)
166223

167224
## Домашка

hw2.md

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,12 @@
11
## Домашнее задание 2
22

33
**Уровень 1:**
4+
Задача исследовательская: найти и текстом описать преподавателю, какие есть операторы условия и дополнительные операторы сравнения в языке PHP.
45

5-
##### 1. Разместить в кругах:
6-
- Числа целые
7-
- Числа положительные
8-
- Числа отрицательные
9-
- Числа простые
10-
##### 2. Нарисовать круги для заварного кофе:
11-
• эспрессо
12-
• американо
13-
• каппучино
14-
• латте
15-
• доппио
166

177
**Уровень 2:**
8+
Задача исследовательская среднего уровня: дополнить результаты прошлой задачи исследованиями про другие языки: python, perl, еще один язык по вашему выбору.
189

19-
##### 3. Решить задачу:
20-
Все женщины - дочки, но не все женщины матери. Некоторые матери - бабушки. Нарисуйте внучек!
21-
##### 4. Разместить в кругах:
22-
Зайцы четвероногие, млекопитающие, хордовые, живородящие. Лебеди птицы, яцекладущие, хордовые. Утконосы четвероногие, яйцекладущие, млекопитающие.
2310

2411
**Уровень 3:**
25-
26-
##### 5. Разместить в кругах:
27-
Всего Студентов 2000
28-
Программистов 1500
29-
Дизайнеров 300
30-
Менеджеров 200
31-
Фронтендщиков 1000
32-
Бекендщиков 500
33-
PHP программистов 200
34-
JS программистов 1100
35-
Java программистов 100
12+
Выяснить, какие есть типы данных в PHP, какие из них мутабельные, какие нет, какие можно отнести к скалярным, и какие к составным, результат прислать ссылкой на google таблицу.

0 commit comments

Comments
 (0)