Skip to content

Commit 3fd2fd1

Browse files
committed
Правки в урок 5, новая заметка 5.3 Процедурное программирование
1 parent b069e2c commit 3fd2fd1

File tree

13 files changed

+158
-32
lines changed

13 files changed

+158
-32
lines changed

lang_c/5/0__algorithm/article.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
# Алгоритм и исполнитель
22

3-
В этом уроке разберём некоторые теоретические понятия, которые формализуют понятие программирования. Заодно точнее сформулируем основную задачу вашего обучения.
4-
53
Для начала предлагаю вам немного поиграться со следующей [детской игрушкой](https://studio.code.org/s/20-hour/stage/2/puzzle/1). Пройдите первые пять заданий, возвращайтесь назад и продолжайте чтение урока.
64

7-
![Скриншот игры на code.org](./ispolnitel.png)
5+
![Скриншот игры на code.org](./ispolnitel.png "Рис.1 Интерфейс игрушки Лабиринт с Angry Bird")
86

97
Надеюсь, у вас всё получилось. Теперь на этом примере опишем несколько основных понятий:
108

@@ -14,19 +12,21 @@
1412

1513
В игрушке мы управляем красной птичкой. Задача каждого этапа: добраться птичкой до свиньи. Птичка умеет выполнять определённые команды, например: переместить вперёд, повернуть налево, повернуть направо и др.
1614

17-
Человек, машина или устройство, которые умеют выполнять некоторые команды, называется `исполнителем`. В этой игрушке, очевидно, исполнитель – птичка. Набор команд, которые понимает и умеет выполнять исполнитель, называют `системой команд исполнителя`.
15+
Человек, машина или устройство, которые умеют выполнять некоторые команды, называется =исполнителем=. В этой игрушке, очевидно, исполнитель – птичка. Набор команд, которые понимает и умеет выполнять исполнитель, называют =системой команд исполнителя=.
1816

19-
Последовательность команд, которую должен выполнить исполнитель для решения задачи, называется `алгоритмом`.
17+
Последовательность команд, которую должен выполнить исполнитель для решения задачи, называется =алгоритмом=.
2018

2119
Необходимо заострить внимание на нескольких моментах.
2220

23-
**Важно!** Исполнитель может выполнять только те команды, которые входят в его систему команд.
21+
% **Важно!**
22+
Исполнитель может выполнять только те команды, которые входят в его систему команд.
2423

2524
Это означает, например, что нельзя написать исполнителю-птичке: «Иди к свинье!». Точнее записать можно, но только ничего не произойдёт, т.к. исполнитель таких команд не знает.
2625

2726
Имеющиеся команды вы можете записывать в любом порядке, который посчитаете правильным. Ваша задача как программиста -- разделить большую сложную задачу на маленькие отдельные шаги, каждый из которых будет понятен исполнителю. Снова работает принцип «разделяй и властвуй».
2827

29-
**Важно!** Исполнитель выполняет точно то, что предписывает ему алгоритм.
28+
% **Важно!**
29+
Исполнитель выполняет в точности то, что предписывает ему алгоритм.
3030

3131
Исполнитель-птичка очень доверчивая. Она не подвергает сомнению то, что вы пишете в программе. Если, например, вы забудете развернуть птичку, то она врежется в стенку. Поэтому вы должны следить за всем самостоятельно.
3232

@@ -38,12 +38,12 @@
3838

3939
Итак, подытожим:
4040

41-
`Компьютерная программа` -- алгоритм решения какой-либо задачи, записанный на языке программирования.
41+
=Компьютерная программа= -- алгоритм решения какой-либо задачи, записанный на языке программирования.
4242

43-
`Алгоритм` -- точное описание порядка действий, которые должен выполнить исполнитель для того, чтобы решить задачу.
43+
=Алгоритм= -- точное описание порядка действий, которые должен выполнить исполнитель для того, чтобы решить задачу.
4444

45-
`Исполнитель` -- человек или некоторое устройство, которое может понимать и выполнять определённый набор команд.
45+
=Исполнитель= -- человек или некоторое устройство, которое может понимать и выполнять определённый набор команд.
4646

47-
`Система команд исполнителя` -- набор команд, которые понимает и умеет выполнять исполнитель.
47+
=Система команд исполнителя= -- набор команд, которые понимает и умеет выполнять исполнитель.
4848

49-
`Основная задача данного курса` -- научиться записывать решение различных задач в виде алгоритмов для компьютера.
49+
**Основная задача данного курса** -- научить вас записывать решение различных задач в виде алгоритмов для компьютера.

lang_c/5/0__algorithm/meta.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"title": "Алгоритм и исполнитель. Система команд исполнителя",
3-
"description": "В уроке разбираются основные теоретические понятия программирования: исполнитель, система команд исполнителя и алгоритм.",
3+
"description": "В уроке на простых и наглядных примерах даётся представление о базовых теоретических понятиях программирования: исполнитель, система команд исполнителя и алгоритм.",
44
"keywords": "Алгоритм, исполнитель, система команд исполнителя",
55
"canonical_link": "https://youngcoder.ru/lessons/5/algorithm"
66
}

lang_c/5/0__algorithm/practice.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,9 @@
22

33
- Решите [задачи с автоматической проверкой решения на Stepik](https://stepik.org/lesson/53872/step/1)
44

5+
<div class="lessonStepikBlock">
6+
<iframe src="https://stepik.org/lesson/53872/step/1"></iframe>
7+
</div>
8+
59
- Подборка задач из Единого государственного экзамена на тему [Анализ и построение алгоритмов для исполнителей (*.doc)](http://kpolyakov.spb.ru/download/ege6-2.doc) на сайте К.Ю. Полякова. И [ответы](http://kpolyakov.spb.ru/download/answers.doc) для самопроверки.
610
- Зеркала на этом сайте: [Задачи](./ege6-2.pdf) и [ответы](./answers_ege_polykov.pdf) (нужный столбец отмечен зелёным цветом)

lang_c/5/0__algorithm/reference.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
## Дополнительные материалы
22

3-
1. Определение алгоритма в этом уроке, конечно, совершенно неформальное. В теоретической информатике существуют строгие определения этого понятия. Для этого, например, вводится такое понятие как Машина Тьюринга. Подробнее об этом можно прочитать в [википедии](https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0), [викиучебнике](https://ru.wikibooks.org/wiki/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0) или посмотреть на степике [урок А. Шеня](https://stepik.org/lesson/11690/step/1). А на сайте К.Ю. Полякова можно [скачать тренажёр Машина Тьюринга](http://kpolyakov.spb.ru/prog/turing.htm).
3+
1. Определение алгоритма в этом уроке, конечно, совершенно неформальное. В теоретической информатике существуют строгие определения этого понятия. Для этого, например, вводится такое понятие как =Машина Тьюринга=. Подробнее об этом можно прочитать в [википедии](https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0), [викиучебнике](https://ru.wikibooks.org/wiki/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0) или посмотреть на степике [урок А. Шеня](https://stepik.org/lesson/11690/step/1). А на сайте К.Ю. Полякова можно [скачать тренажёр Машина Тьюринга](http://kpolyakov.spb.ru/prog/turing.htm).
44

5-
2. Тем, кто решает задачи на Stepikе посвящается:
5+
2. На самом деле, конечно, в нашем случае исполнителем является не сам компьютер, а компилятор языка Си. И уже он создаёт на основе нашего кода соответствующий алгоритм для микропроцессор компьютера (исполнителя) со своей системой инструкций (системой команд исполнителя).
6+
7+
3. Тем, кто решает задачи на Stepikе, посвящается:
68

79
> Как же в проге ошибку исправить? <br>
810
> Ведь бывает, не ровен же час. <br>

lang_c/5/1__strukturnoe_programmirovanie/article.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
# Парадигмы программирования. Структурное программирование
22

3-
Допустим, я хочу из точки А попасть в точку B. Какие есть для этого варианты? Например:
3+
Допустим, я хочу из точки `А` попасть в точку `B`. Какие есть для этого варианты? Например:
44

55
- дойти пешком;
6-
- доскакать на лошади (вряд ли конечно, но пусть будет для наглядности примера);
6+
- доскакать на лошади (вряд ли, конечно, но пусть будет для наглядности примера);
77
- домчаться на мотоцикле;
8-
- докатиться на электрическом самокате.
8+
- докатиться на электросамокате.
99

10-
Задача одна, а вариантов достижения много. Между этими вариантами есть существенные различия. Они заключаются в устройстве процесса передвижения. В первом случае, мы просто используем силу своих мышц, во втором -- силу мышц более сильного животного, в третьем -- энергию двигателя внутреннего сгорания, в четвёртом -- электрическую энергию. Минимум четыре различных подхода (парадигмы).
10+
Задача одна, а вариантов решения много. Между этими вариантами есть существенные различия. Они заключаются в устройстве процесса передвижения. В первом случае, мы просто используем силу своих мышц, во втором -- силу мышц более сильного животного, в третьем -- энергию двигателя внутреннего сгорания, в четвёртом -- электрическую энергию. Минимум четыре различных подхода (парадигмы).
1111

12-
В программировании тоже есть различные подходы к устройству программ. Эти подходы называются `парадигмами программирования`. Мы начнём с рассмотрения одного из таких подходов -- `структурного программирования`.
12+
В программировании тоже есть различные подходы к устройству программ. Эти подходы называются =парадигмами программирования=. Мы начнём с рассмотрения одного из таких подходов -- =структурного программирования=.
1313

1414
Идея в следующем. Любой алгоритм нужно представить в виде всего трёх возможных структур:
1515

@@ -32,7 +32,7 @@
3232
```
3333

3434
## Цикл
35-
Вспомните исполнителя-птичку. Что бы вы делали, если бы свинья находилась точно под птичкой, но на расстоянии 1000 клеток? Писать 1000 раз команду «Переместить вперёд» как-то не очень круто. Вот для подобных случаев и используется структура Цикл. Данная конструкция нужна для того, чтобы выполнять команды несколько раз.
35+
Вспомните исполнителя-птичку. Что бы вы делали, если бы свинья находилась точно под птичкой, но на расстоянии 1000 клеток? Писать 1000 раз команду «Переместить вперёд» как-то не очень приятно. Вот для подобных случаев и используется структура =Цикл=. Данная конструкция нужна для того, чтобы выполнять команды несколько раз.
3636

3737
Вернитесь к [игрушке](https://studio.code.org/s/20-hour/stage/2/puzzle/6) и пройдите задания с 6 по 9 включительно.
3838

@@ -41,7 +41,7 @@
4141
Команда 1;
4242
```
4343

44-
В самом простом случаем мы заранее задаём количество раз, которое должны выполнится команды. Но есть и более продвинутый вид цикла -- он выполняется пока не выполнится некоторое условие. [Задачи](https://studio.code.org/s/20-hour/stage/2/puzzle/10) с 10 по 13 включительно помогут тебе разобраться с этой конструкцией.
44+
В самом простом случае мы заранее задаём количество повторений для команды. Но есть и более продвинутый вид цикла -- он выполняется до тех пор, пока не выполнится некоторое условие. [Задачи](https://studio.code.org/s/20-hour/stage/2/puzzle/10) с 10 по 13 включительно помогут тебе разобраться с этой конструкцией.
4545

4646
```c
4747
ПОВТОРЯЙ
@@ -51,15 +51,15 @@
5151

5252
## Ветвление
5353

54-
Допустим мы хотим программу-секрет. После запуска она просит пользователя ввести пароль. Если пароль правильный, то она показывает секретную фразу, а если неправильный, то фразу «Вы ввели неправильный пароль». Понятно, что нам нужно взять готовый пароль и сравнить его с тем, который ввёл пользователь. Тут-то нам и придёт на помощь структура «ветвление».
54+
Допустим мы хотим создать программу-секрет. После запуска она просит пользователя ввести пароль. Если пароль правильный, то она показывает секретную фразу, а если неправильный, то фразу «Вы ввели неправильный пароль». Понятно, что нам нужно взять готовый пароль и сравнить его с тем, который ввёл пользователь. Тут-то нам и придёт на помощь структура «ветвление».
5555

5656
```c
57-
ЕСЛИ условие ТО
57+
ЕСЛИ Условие ТО
5858
Команда 1;
5959
ИНАЧЕ
6060
Команда 2;
6161
```
6262

63-
Если условие выполнено, то выполнится `Команда1`, иначе (если условие не выполнено) выполнится `Команда2`. Решите [оставшиеся задачи](https://studio.code.org/s/20-hour/stage/2/puzzle/14), чтобы потренироваться в использовании данных управляющих структур.
63+
Если условие выполнено, то выполняется `Команда1`, иначе (если условие не выполнено) выполняется `Команда2`. Решите [оставшиеся задачи](https://studio.code.org/s/20-hour/stage/2/puzzle/14), чтобы потренироваться в использовании данных управляющих структур.
6464

65-
Как вы наверное уже поняли, в следующих уроках вам предстоит разобраться с тем, как данные структуры управления реализованы в языке Си.
65+
В следующих уроках мы подробно разобрёмся с тем, как записывать ветвления и циклы на языке Си.

0 commit comments

Comments
 (0)