Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Начальный курс информатики. Часть 2. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
850 Кб
Скачать

Сколько клеток приведенных лабиринтов соответствуют требованию, что, выполнив предложенную ниже программу, РОБОТ остановится в той же клетке, с которой он начал движение?

 

 

 

 

 

 

 

 

 

 

6

a) НАЧАЛО

 

 

 

 

 

 

 

 

 

 

ПОКА <справа свободно>

 

 

 

 

 

 

 

 

 

 

5

вправо

 

 

 

 

 

 

 

 

 

 

4

ПОКА <сверху свободно>

 

 

 

 

 

 

 

 

 

 

вверх

 

 

 

 

 

 

 

 

 

 

3

ПОКА <слева свободно>

 

 

 

 

 

 

 

 

 

 

2

влево

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПОКА <снизу свободно>

 

 

 

 

 

 

 

 

 

 

1

вниз

 

 

 

 

 

 

 

 

 

 

 

КОНЕЦ

 

A

 

B

C

D

E

F

 

 

 

 

 

 

 

 

 

 

 

 

6

b) НАЧАЛО

 

 

 

 

 

 

 

 

 

ПОКА <слева свободно>

 

 

 

 

 

 

 

 

 

5

влево

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПОКА <снизу свободно>

 

 

 

 

 

 

 

 

 

4

вниз

 

 

 

 

 

 

 

 

 

3

ПОКА <справа свободно>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вправо

 

 

 

 

 

 

 

 

 

2

ПОКА <сверху свободно>

 

 

 

 

 

 

 

 

 

вверх

 

 

 

 

 

 

 

 

 

1

КОНЕЦ

 

A

 

B

C

D

E

F

 

 

 

 

 

 

Рис. 8.

Графическая форма описания (см. также с. 22)

21

6

5

4

3

2

1

6

5

4

3

2

1

A B C D E F

c) НАЧАЛО

ПОКА <сверху свободно> вправо

ПОКА <справа свободно> вниз

ПОКА <снизу свободно> влево

ПОКА <слева свободно> вверх

КОНЕЦ

d)

НАЧАЛО ПОКА <справа свободно> вниз

ПОКА <снизу свободно> влево ПОКА <слева свободно> вверх ПОКА <сверху свободно>

вправо

КОНЕЦ

 

 

Рис. 8. Окончание

 

 

 

21. По каналу навстречу друг другу движутся два корабля.

 

Канал узкий и кораблям в нем не разойтись. В канале есть бухта,

 

в которой помещается лишь один корабль. Описать команды

 

исполнителя

«автоматический

диспетчер»,

который

 

осуществляет

проводку кораблей через .каналПридумать

 

удобную символическую запись для каждой команды. Составить

 

программу действий диспетчера.

 

 

 

 

22. Описать команды

исполнителя«Диспетчер» для

 

решения старинной задачи о переправе козы, капусты и волка.

 

Придумать

удобную

символическую

запись

для

каждой

команды. Составить программу действий диспетчера.

 

 

22

1.3. Величины. Команда присваивания

Информация, обрабатываемая алгоритмом, программой называется данными.

Величина - способ представления данных в алгоритме, программе. Это - отдельный информационный объект, отдельная

единица

данных.

Команды

в

компьютерной

программе

определяют

действия, выполняемые

 

над

величинами. По

отношению

к

программе

данные

 

делятсяисходныена ,

результаты

(окончательные

данные)

и

промежуточные

данные, которые получаются в процессе вычислений (рис. 9).

 

Ввод

 

 

 

Программа

 

 

Вывод

 

 

Исходные данные

 

 

Промежуточные

 

Результирующие

 

 

 

 

 

 

данные

 

 

 

 

данные

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 9. Преобразование данных

 

 

 

Пример 6. При решении квадратного уравнения:

 

ах2 + bх + с = 0, исходными данными являются коэффициенты

 

а, b, с; результатами - корни уравнения x1 и х2; промежуточным

 

данным - дискриминант уравнения: D = b2 - 4ас.

 

 

 

Пример 7.

Нахождение

площади

треугольника

по

формуле

Герона S =

p( p - a)( p - b)( p - c) . Исходными

 

данными

являются

длины

сторон

треугольника: , b, с.

 

Результатом - значение

площади S. Промежуточным данным -

 

полупериметр р:

 

 

 

a + b + c

 

 

 

 

 

 

 

 

 

 

p =

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

Величины

бывают постоянными

и

переменными.

 

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

23

Переменная величина может изменять значение в ходе выполнения алгоритма. Переменная всегда обозначается символическим именем, идентификатором, например: (V, S, Count).

И константам и переменным определяется место в памяти компьютера. У всякой величины имеются три основных характеристики: имя, значение, тип (рис. 10)

 

 

 

 

 

 

 

Начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Имя

 

 

 

Значение

 

 

Тип

 

 

 

 

 

 

Рис. 10. Характеристики величины

 

 

Имя

назначается

автором

алгоритма, программы

в

соответствии

с

правилами, соглашениями, принятыми

в

используемом языке изложения. С точки зрения синтаксических

 

правил языка переменная - идентификатор, который сопоставлен

 

ей в качестве ее имени. Это имя используется для ссылки на

 

значение переменной.

 

 

 

 

 

 

 

 

Тип

величины

определяет

множество

допустимых

значений,

 

которые

может принимать величина, множество

 

допустимых

действий, которые

можно выполнять

с

этой

величиной, а также форма внутреннего представления в памяти.

 

Типы констант определяются по контексту(т.е. по форме

 

записи

в

тексте),

а типы переменных устанавливаются в

описании переменных.

 

 

 

 

 

 

 

 

В любой язык входит минимально-необходимый набор

основных

 

типов

данных, к которому относятся следующие:

целый, вещественный, логический и символьный.

 

 

Действия над величинами, определяемые алгоритмом или

 

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

операция - выражение - команда или оператор - система команд.

 

Операция

простейшее

законченное действие

над

данными.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

24

Выражение – запись в алгоритме или программе, определяющая последовательность операций для вычисления некоторой величины.

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

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

Переменная получает определенное значение в результате присваивания. В основном в СКИ для этого есть команды ввода и команда присваивания.

Команда присваивания - команда исполнителя, в

результате которой переменная получает новое значение.

Формат команды присваивания:

<имя переменной>: = <выражение> Команда присваивания выполняется за 2 шага:

1)вычисляется значение выражения, стоящего справа от знака присваивания;

2)переменная, имя которой стоит слева от знака присваивания, получает это значение, то есть оно записывается в память по адресу расположения переменной.

Таким образом, команда присваивания выполняется справа налево и ее нельзя путать с математическим равенством.

Например:

1. А:= В + С. До выполнения этой команды содержимое ячеек памяти было:

A

5

B

8

C

10

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

25

A

18

B

8

C

10

2. Х:= Х + А. До выполнения команды содержимое ячеек памяти было:

X

10

A

-3

После выполнения команды присваивания содержимое ячеек станет:

X

7

A

-3

Пример 8. Определите значение переменной c после выполнения следующего фрагмента программы.

a := 5;

a := a + 6;

b:= a;

c:= a – 2 · b;

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

Таблица 2

Команда

a

b

c

a := 5;

5

 

 

a := a + 6;

11

 

 

b := – a;

 

–11

 

c := a – 2 · b;

 

 

33

Ответ: с = 33

Пример 9. В приведенном ниже фрагменте алгоритма, записанном на алгоритмическом языке, переменные a, b, c имеют тип «строка», а переменные i, k – тип «целое»:

i := Длина(a) k := 2

b := 'А'

пока i > 0

нц

c := Извлечь (a, i)

26

b := Склеить (b, c) i := i k

кц

b := Склеить (b, 'Т')

Используются следующие функции:

Длина (a) – возвращает количество символов в строке a. (Тип «целое»)

Извлечь (a, i) – возвращает i-й (слева) символ в строке a. (Тип «строка»)

Склеить (a, b) – возвращает строку, в которой записаны сначала все символы строкиa, а затем все символы строкиb. (Тип «строка»)

Значения строк записываются в одинарных кавычках (Например, a:='дом').

Какое значение будет у переменнойb после выполнения вышеприведенного фрагмента алгоритма, если значение переменной a было ‘ПОЕЗД’?

Решение: выполняем команды алгоритма и фиксируем значение величин в табл. 3.

 

 

 

 

 

Таблица 3

 

 

 

 

 

 

 

a

b

c

i

k

 

'ПОЕЗД'

 

 

 

 

i:= Длина (a)

 

 

 

5

 

k:= 2

 

 

 

 

2

b:= 'А'

 

'A'

 

 

 

i > 0?

 

 

да

 

 

c:= Извлечь (a, i)

 

 

‘Д’

 

 

b:= Cклеить (b, c)

 

‘АД’

 

 

 

i:= ik

 

 

 

3

 

Так как i = 5 и условие i > 0 выполняется, тело цикла выполняется еще раз (табл. 4).

27

Таблица 4

 

a

b

c

i

k

...

'ПОЕЗД'

'АД'

3

2

i > 0?

 

да

 

 

 

c:= Извлечь (a, i)

 

 

'Е'

 

 

b:= Cклеить (b, c)

 

'АДЕ'

 

 

 

i:= ik

 

 

 

1

 

Условие i > 0 истинно, поэтому тело цикла выполняется еще один раз, к строке b добавляется 1-й символ строки a, то есть 'П' (табл. 5).

Таблица 5

 

a

b

c

i

k

...

'ПОЕЗД'

'АДЕ'

1

2

i > 0?

 

да

 

 

 

c:= Извлечь (a, i)

 

 

'П'

 

 

b:= Cклеить (b, c)

 

'АДЕП'

 

 

 

i:= ik

 

 

 

–1

 

Теперь i = -1, поэтому при очередной проверке условие

i > 0 в начале цикла оказывается ложным, выполнение цикла заканчивается, и исполнителю остается выполнить единственную строчку после цикла, которая дописывает в конец строки b букву

'Т' (табл. 6).

Таблица 6

 

a

b

c

i

k

...

'ПОЕЗД'

'АДЕП'

–1

2

i > 0?

 

нет

 

 

 

b:= Склеить (b, 'Т')

 

'АДЕПТ'

 

 

 

Ответ: 'АДЕПТ'.

Пример 10. Определите значение переменной c после выполнения следующего фрагмента программы:

a:= 40; b:= 10;

28

b:= - a / 2 · b;

если a < b

то c:= b - a

иначе c:= a - 2 · b;

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

 

 

 

 

 

 

 

 

 

 

 

Таблица 7

 

 

 

Команда

 

a

b

 

c

 

 

 

 

 

 

 

a := 40;

 

40

 

 

 

 

 

 

 

 

 

 

 

b := 10;

 

 

 

10

 

 

 

 

 

 

 

 

 

b := - a / 2 · b;

 

 

 

-200

 

 

 

 

 

 

 

 

 

a < b?

 

 

 

40 < -200? нет

 

 

 

 

 

 

 

c := a - 2 · b;

 

 

 

 

440

 

 

 

 

 

Ответ: c = 440.

 

 

 

 

 

 

 

 

 

 

 

Пример 11. Написать последовательность команд при-

 

сваивания, в результате выполнения которых переменныеа и b

 

поменяются значениями.

 

 

 

 

 

 

 

 

 

 

 

Решение. Для

решения

потребуется

еще

одна

дополнительная, промежуточная переменная с.

 

 

 

c:= a;

 

 

 

 

 

 

 

 

 

 

 

a:= b;

 

 

 

 

 

 

 

 

 

 

 

b:= c

 

 

 

 

 

 

 

 

 

 

 

Проверим правильность алгоритма, исполнив его для сле-

 

дующих значений переменных a и b: a = -5; b = 9. Результаты

 

исполнения алгоритма оформим в табл. 8.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 8

 

 

 

Команда

 

 

 

a

 

b

 

c

 

 

 

 

 

 

 

 

-5

 

9

 

 

 

 

 

 

 

c:= a

 

 

 

 

 

 

 

 

-5

 

 

 

 

a:= b

 

 

 

9

 

 

 

 

 

 

 

 

 

b:= c

 

 

 

 

 

-5

 

 

 

 

 

29

Коротко о главном

1.Компьютер-исполнитель работает с определенными данными по определенной программе. Данные – это множество величин.

2.Всякая обрабатываемая программой величина занимает свое место в памяти компьютера. Значение величины – это информация, хранимая в этом поле памяти.

3.Любой алгоритм работы с величинами может быть -со ставлен из следующих команд: присваивание; ввод; вывод.

4.Переменная величина получает значение в результате выполнения команды присваивания или команды ввода.

5.Ввод – это занесение данных с внешних устройств в оперативную память компьютера.

6.Результаты решения задачи выносятся на устройства вывода по команде вывода.

Вопросы и задания

1.Пусть переменная А имела значение 6. Какое значение получит переменная А после выполнения команды: А:= 3 + А - 2.

2.Определить конечные значения переменныхX и Y в результате выполнения следующих алгоритмов:

а)

б)

Х:= 2

Х:= 1,5

Х:= Х · Х

Х:= 2 · Х+1

Х:= Х · Х · Х

Y:= X/2

 

Y:= X + Y

 

Х:= X - Y

3. Записать алгоритм циклического перемещения влево значений между переменными А, В, С. Схема циклического перемещения:

A B C

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]