| Candidates should be able to: | Notes and guidance |
|---|---|
| 1 Declare and use variables and constants | |
| 2 Understand and use basic data types | • Including: – integer – real – char – string – Boolean |
| 3 Understand and use input and output | |
| 4 (a) Understand and use the concept of sequence | |
| (b) Understand and use the concept of selection | • Including: – IF statements – CASE statements |
| (c) Understand and use the concept of iteration | • Including: – count-controlled loops – pre-condition loops – post-condition loops |
| (d) Understand and use the concepts of totalling and counting | |
| (e) Understand and use the concept of string handling | • Including: – length – substring – upper – lower • The first character of the string can be position zero or one |
| (f) Understand and use arithmetic, relational and logical operators | • Arithmetic, limited to: – + – – – / – * – ^ (raised to power of) – MOD – DIV • Relational, limited to: – = – < – <= – > – >= – <> (not equal to) • Logical, limited to: – AND – OR – NOT |
| 5 Understand and use nested statements | • Including nested selection and iteration • Candidates will not be required to write more than three levels of nested statements |
| 6 (a) Understand what is meant by procedures, functions and parameters (b) Define and use procedures and functions, with or without parameters (c) Understand and use local and global variables | • Procedures and functions may have up to three parameters |
| 7 Understand and use library routines | • Including: – MOD – DIV – ROUND – RANDOM |
| 8 Understand how to create a maintainable program | • Including appropriate use of: – meaningful identifiers – the commenting feature provided by the programming language – procedures and functions – relevant and appropriate commenting of syntax • Use meaningful identifiers for: – variables – constants – arrays – procedures and functions |
Программирование
Информатика IGCSE · Тема 8
13:16
Программирование
Вот короткая программа. Она считывает пять тестовых оценок и выводит их сумму. Пять оценок: восемь, девять, семь, шесть и десять, поэтому сумма должна быть сорок. Смотрите…
Английское озвучивание · Английский + китайские субтитры (встроенные)
8.1
Переменные и константы
Программа
Источник: Программа Cambridge International
Переменная — это именованный хранилище, которое содержит значение, которое может изменяться во время выполнения программы. Константа — это именованный хранилище, значение которого фиксировано и не изменяется.


Их следует объявить (указать имя и тип) перед использованием:
DECLARE Score : INTEGER
DECLARE Name : STRING
CONSTANT Pi ← 3.142

Используйте константу для значения, которое никогда не меняется (например, Пи), чтобы оно было задано в одном месте и легко читалось.
Переменные и присваивание
Пройдите по строкам кода и наблюдайте, как каждая переменная принимает своё новое значение.
| English | Русский |
|---|---|
| variable/ˈveərɪəbl/ | переменной |
| constant/ˈkɒnstənt/ | постоянно |
| declare/dɪˈkleə/ | объявить |
| integer/ˈɪntɪdʒə/ | integer |
| real/rɪəl/ | вещественный |
| char/tʃɑː/ | char |
| string/strɪŋ/ | строки |
8.1
Типы данных
Тип данных указывает, какое значение хранит переменная. Вы должны знать пять основных типов.

| Тип | Хранит | Пример |
|---|---|---|
| целочисленный | целое число | 42, -7 |
| вещественный | число с десятичной точкой | 3.14, -0.5 |
| символьный | один символ | 'A', '?' |
| строка | последовательность символов | "Hello" |
| Boolean (логический тип) | один из двух значений | TRUE или FALSE |
| English | Русский |
|---|---|
| data type/ˈdeɪtə taɪp/ | тип данных |
| Boolean/ˈbuːlɪən/ | Boolean |
8.1
Ввод и вывод
Ввод считывает значение от пользователя. Вывод отображает значение на экране.
OUTPUT "What is your name?"
INPUT Name
OUTPUT "Hello ", Name
| English | Русский |
|---|---|
| input/ˈɪnpʊt/ | входные данные |
| output/ˈaʊtpʊt/ | вывода |
| sequence/ˈsiːkwəns/ | последовательность |
| selection/sɪˈlekʃn/ | выбор |
| iteration/ˌɪtəˈreɪʃn/ | итерации |
8.1
Три основные структуры
Каждая программа строится из трёх управляющих структур.

Последовательность
Последовательность означает, что шаги выполняются один за другим, в порядке сверху вниз.
INPUT Length
INPUT Width
Area ← Length * Width
OUTPUT Area
Выбор
Выбор определяет, какие шаги выполнять, исходя из условия. Используйте оператор IF или оператор CASE, когда вариантов выбора много.
IF Score >= 50
THEN
OUTPUT "Pass"
ELSE
OUTPUT "Fail"
ENDIF
CASE OF Grade
'A' : OUTPUT "Excellent"
'B' : OUTPUT "Good"
OTHERWISE OUTPUT "Keep trying"
ENDCASE
Итерация
Итерация (цикл) повторяет шаги. Существует три вида.
Цикл с подсчётом повторяется заданное количество раз:
FOR I ← 1 TO 5
OUTPUT "Hello"
NEXT I
Цикл с предварительным условием проверяет условие перед каждым повторением, поэтому он может не выполниться ни разу:
WHILE Answer <> "stop" DO
INPUT Answer
ENDWHILE
Цикл с постусловием проверяет условие после каждого повторения, поэтому он всегда выполняется как минимум один раз:
REPEAT
INPUT Password
UNTIL Password = "secret"

Как цепочка IF … ELSE IF принимает решения
Условия проверяются сверху вниз; первым выполняется условие, которое истинно, остальные пропускаются. Перемещайте баллы и следите, какая ветка активируется.
Выбор
Измените значение и посмотрите, какой блок кода выполнится — работа условного оператора в действии.
| English | Русский |
|---|---|
| loop/luːp/ | цикла |
| count-controlled loop/kaʊnt kənˈtrəʊld luːp/ | цикл с числовым управлением |
| pre-condition loop/priː kənˈdɪʃn luːp/ | цикл с предварительным условием |
| post-condition loop/pəʊst kənˈdɪʃn luːp/ | цикл с последующим условием |
| length/leŋθ/ | длина |
8.1
Подсуммирование и подсчёт
- подсуммирование — непрерывно прибавлять значения к общей сумме:
Total ← Total + Value. - подсчёт — прибавлять 1 к счётчику каждый раз:
Count ← Count + 1.


Total ← 0
FOR I ← 1 TO 10
INPUT Mark
Total ← Total + Mark
NEXT I
OUTPUT Total
Разобранный пример. Программа должна считать 5 оценок, затем вывести сумму и среднее значение.
Total ← 0
FOR I ← 1 TO 5
INPUT Mark
Total ← Total + Mark
NEXT I
Average ← Total / 5
OUTPUT Total, Average
Две строки содержат оценки. Total ← 0 должно находиться до цикла: если поместить его внутрь, сумма будет сбрасываться при каждой итерации, и программа выведет только последнюю оценку. А Average ← Total / 5 должно находиться после цикла, потому что сумма не будет полной, пока все оценки не будут сложены. Инициализация до, расчёт после — именно этот порядок на самом деле проверяет вопрос.
| English | Русский |
|---|---|
| totalling/ˈtəʊtəlɪŋ/ | суммирование |
| counting/ˈkaʊntɪŋ/ | подсчет |
| remainder/rɪˈmeɪndə/ | остаток |
| nested statement/ˈnestɪd ˈsteɪtmənt/ | вложенное утверждение |
8.1
Операторы
Арифметические операторы
| Оператор | Значение |
|---|---|
+ - * / |
сложение, вычитание, умножение, деление |
^ |
возведение в степень |
MOD |
остаток от деления |
DIV |
целая часть результата деления |
Например, 17 MOD 5 — это 2, а 17 DIV 5 — это 3.
Реляционные операторы
Они сравнивают два значения и дают логический результат: =, <, <=, >, >= и <> (не равно).
Логические операторы
Они объединяют условия: AND (оба должны быть истинными), OR (хотя бы одно должно быть истинным), NOT (инвертирует true/false).

IF Age >= 13 AND Age <= 19
THEN
OUTPUT "Teenager"
ENDIF
8.1
Обработка строк
Строка состоит из символов. Полезные операции:
- длина — количество символов в строке;
- подстрока — меньшая часть, извлечённая из строки;
- заглавные буквы — преобразовать буквы в верхний регистр;
- строчные буквы — преобразовать буквы в нижний регистр.
name ← "Computer"
OUTPUT LENGTH(name) // 8
OUTPUT SUBSTRING(name, 1, 4) // "Comp"
OUTPUT UCASE(name) // "COMPUTER"
OUTPUT LCASE(name) // "computer"
(Первый символ может нумероваться как позиция 0 или позиция 1 в зависимости от языка.)
SUBSTRING: взять часть строки
Первый символ имеет позицию 1. SUBSTRING(Word, Start, Length) берет Length символов, начиная со Start — перетащите две ручки и прочитайте вызов, который она формирует.
| English | Русский |
|---|---|
| substring/ˈsʌbstrɪŋ/ | подстрока |
| upper case/ˈʌpə keɪs/ | заглавные буквы |
| lower case/ˈləʊə keɪs/ | строчные буквы |
8.1
Вложенные инструкции
Вложенная инструкция — это одна управляющая структура, размещённая внутри другой. Можно вставлять выбор и итерацию друг в друга.
FOR I ← 1 TO 3
IF MOD(I, 2) = 0
THEN
OUTPUT I, " is even"
ELSE
OUTPUT I, " is odd"
ENDIF
NEXT I
Вам не придётся писать более трёх уровней вложения.
8.1
Процедуры и функции
Чтобы избежать дублирования кода, можно разбить программу на именованные блоки.
- Процедура — это именованный блок кода, который выполняет задачу. Вы запускаете её с помощью
CALL. - Функция похожа на процедуру, но она возвращает значение обратно туда, откуда была вызвана.
Параметр — это значение, передаваемое в процедуру или функцию (до трёх параметров).
PROCEDURE Greet(PersonName : STRING)
OUTPUT "Hello ", PersonName
ENDPROCEDURE
CALL Greet("Sam")
FUNCTION Square(N : INTEGER) RETURNS INTEGER
RETURN N * N
ENDFUNCTION
Answer ← Square(5) // answer is 25
Локальные и глобальные переменные
- Локальная переменная объявляется внутри процедуры или функции. Её можно использовать только там.
- Глобальная переменная объявляется в основной программе. Её можно использовать где угодно.
Локальные переменные безопаснее, так как их нельзя случайно изменить из другой части программы.
| English | Русский |
|---|---|
| procedure/prəˈsiːdʒə/ | процедура |
| function/ˈfʌŋkʃn/ | функцией |
| parameter/pəˈræmɪtə/ | параметром |
| local variable/ˈləʊkl ˈveərɪəbl/ | локальная переменная |
| global variable/ˈɡləʊbl ˈveərɪəbl/ | глобальная переменная |
| library routine/ˈlaɪbrəri ruːˈtiːn/ | библиотечная процедура |
| maintainable/meɪnˈteɪnəbl/ | поддерживаемость |
| meaningful identifiers/ˈmiːnɪŋfl aɪˈdentɪfaɪəz/ | осмысленные идентификаторы |
| comments/ˈkɒments/ | комментариев |
8.1
Библиотечные подпрограммы
Библиотечная подпрограмма — это готовый кусок кода, которым можно воспользоваться. Вы должны знать следующие:
| Подпрограмма | Что делает |
|---|---|
MOD |
даёт остаток от деления |
DIV |
даёт целую часть от деления |
ROUND |
округляет вещественное число до количества знаков после запятой |
RANDOM |
даёт случайное число |
8.1
Написание поддерживаемой программы
Поддерживаемая программа легко читается и изменяется другими людьми позже. Чтобы сделать одну такую:
- используйте осмысленные идентификаторы — понятные имена для переменных, констант, массивов, процедур и функций (
totalScore, а неx); - добавляйте комментарии, чтобы объяснить, что делают части кода;
- используйте процедуры и функции, чтобы разделить работу на маленькие блоки.
8.2
Массивы
Программа
| Кандидаты должны уметь: | Примечания и рекомендации |
|---|---|
| 1 Объявление и использование одномерных (1D) и двумерных (2D) массивов | |
| 2 Понимание использования массивов | • Включая использование переменных в качестве индексов в массивах |
| 3 Запись значений в массив и чтение из него с использованием итерации | • Первый индекс может быть равен нулю или единице • Включая вложенную итерацию |
Источник: Программа Cambridge International
Массив — это одна переменная, которая хранит множество значений одного типа, доступных по индексу (номеру позиции).
Одномерные массивы
Одномерный (1D) массив подобен одному списку.
DECLARE Scores : ARRAY[1:5] OF INTEGER
Scores[1] ← 90
Scores[2] ← 75
OUTPUT Scores[1]

Вы можете использовать цикл для заполнения или чтения массива:
FOR I ← 1 TO 5
INPUT Scores[I]
NEXT I
Двумерные массивы
Двумерный (2D) массив похож на таблицу со строками и столбцами. Он использует два индекса.
DECLARE Grid : ARRAY[1:3, 1:3] OF INTEGER
Grid[1, 1] ← 5
Grid[2, 3] ← 8

Вы читаете 2D-массив с помощью цикла внутри цикла (вложенная итерация).
Массивы
Выберите строку и столбец, чтобы прочитать одну ячейку. Массивы Cambridge нумеруются с 1, а элемент 2-D записывается с ОДНОЙ парой скобок — Grid[2, 3].
| English | Русский |
|---|---|
| array/əˈreɪ/ | массив (array) |
| index/ˈɪndeks/ | индекс |
| one-dimensional (1D) array/wʌn daɪˈmenʃənl əˈreɪ/ | одномерный массив (1D) |
| two-dimensional (2D) array/tuː daɪˈmenʃənl əˈreɪ/ | двумерный массив (2D) |
8.3
Обработка файлов
Программа
| Кандидаты должны уметь: | Примечания и рекомендации |
|---|---|
| 1 Понимание цели хранения данных в файле для последующего использования программой | |
| 2 Открытие, закрытие и использование файла для чтения и записи | • Включая: – чтение и запись отдельных элементов данных – чтение и запись строки текста |
Источник: Программа Cambridge International
Программа может хранить данные в файле, чтобы они сохранились после его завершения. Вы должны открыть файл, использовать его, а затем закрыть.
OPENFILE "data.txt" FOR WRITE
WRITEFILE "data.txt", "Hello"
CLOSEFILE "data.txt"
OPENFILE "data.txt" FOR READ
READFILE "data.txt", Line
CLOSEFILE "data.txt"
Можно читать и записывать отдельные элементы данных или целую строку текста. Всегда закрывайте файл, когда закончите с ним работать.
| English | Русский |
|---|---|
| file/faɪl/ | файл |
8.3
Советы для экзамена
- Переменная может изменяться во время работы программы; константа остается неизменной. Изучите пять типов данных: целочисленный, вещественный, символьный, строковый, логический.
- Каждая программа построена из трех структур: последовательность, выбор (IF / CASE) и итерация (циклы).
- Цикл WHILE проверяет условие до тела, поэтому он может не выполниться ни разу; цикл REPEAT … UNTIL проверяет после, поэтому он выполняется хотя бы один раз.
MODдает остаток, аDIV— целочисленную часть деления:17 MOD 5равно 2,17 DIV 5равно 3.- Функция возвращает значение; процедура нет. Локальная переменная работает только внутри своего блока; глобальная — везде.
Интерактивные уроки по этой теме
Пройдите его шаг за шагом с упражнениями мгновенной проверки.