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

ЗФТШ_2013-2014_полное / ЗФТШ_2013-2014_полное / ИНФОРМАТИКА_11 / in11_1_элементы_программирования

.pdf
Скачиваний:
387
Добавлен:
03.06.2015
Размер:
1.06 Mб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение дополнительного образования детей «Заочная физико-техническая школа

Московского физико-технического института (государственного университета)»

ИНФОРМАТИКА и ИКТ

Элементы программирования

Задание №1 для 11-х классов

(2013 – 2014 учебный год)

Долгопрудный, 2013

2013-2014 уч. год, №1, 11 кл. Информатика и ИКТ. Элементы программирования

Составитель: В.В. Мерзляков, ассистент кафедры информатики СУНЦ МГУ

Информатика: задание №1 для 11-х классов (2013 – 2014 учебный год). 2013, 28 с.

Дата отправления заданий по физике и математике - 20 октября 2013 г.

Составитель:

Мерзляков Василий Владимирович

Подписано 11.09.13. Формат 60×90 1/16. Бумага типографская. Печать офсетная. Усл. печ. л. 1,75.

Уч.-изд. л. 1,55. Тираж 550. Заказ №11-з.

Заочная физико-техническая школа Московского физико-технического института (государственного университета)

ООО «Печатный салон ШАНС»

Институтский пер., 9, г. Долгопрудный, Москов. обл., 141700. ЗФТШ, тел/факс (495) 408-51-45 – заочное отделение,

тел./факс (498)744-63-51 – очно-заочное отделение, тел. (499) 755-55-80 – очное отделение.

e-mail: zftsh@mail.mipt.ru

Наш сайт: www.school.mipt.ru

© ЗФТШ, 2013

2013, ЗФТШ МФТИ, Мерзляков Василий Владимирович

2

2013-2014 уч. год, №1, 11 кл. Информатика и ИКТ. Элементы программирования

§1. Алфавит языка Pascal

Изучение любого нового языка всегда начинается с алфавита. В алфавит языка Pascal входят следующие элементы:

1)Заглавные и строчные латинские буквы, символ подчѐркивания (по правилам грамматики грамматике языка символ подчѐркивания считается буквой): _, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z.

2)Цифры: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0.

3)Знаки операций: + (плюс), – (минус), * (умножить), / (разделить),

<(меньше), > (больше), <= (меньше или равно), > = (больше или равно), = (равно), <> (не равно). Последний знак состоит из знаков «меньше» и «больше», записанных без пробелов.

4)Знаки пунктуации, специальные символы:

{}или(* *)

Скобки комментариев

 

 

[]

Выделение индексов массивов, элементов множеств

 

 

' '

Выделение символа или строковой константы

 

 

( )

Выделение выражений, списков параметров

 

 

:=

Знак оператора присваивания

 

 

;

Разделение операторов и объявлений

 

 

:

Отделение переменной или константы от типа.

 

Отделение метки от оператора

 

 

=

Отделение имени типа от описания типа.

 

Отделение константы от еѐ значения

 

 

,

Запятая для разделения элементов в списке

 

 

..

Разделение границ диапазона

 

 

.

Конец программы, отделение целой части

 

от дробной

 

 

#

Обозначение символа по его коду

 

 

В таблице приведены не все знаки пунктуации, а лишь те, которые будут использоваться при дальнейшем изложении.

5)Служебные зарезервированные слова.

2013, ЗФТШ МФТИ, Мерзляков Василий Владимирович

3

2013-2014 уч. год, №1, 11 кл. Информатика и ИКТ. Элементы программирования

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

and, array, begin, case, const, div, do, downto, end, for, if, mod, not, of, or, program, repeat, string, then, to, type, until, var, while, xor.

§2. Структура программы

Рассмотрим общую структуру программы на языке Pascal. Программа состоит из 2 частей: разделов описаний и раздела действий (команд, операторов). Раздел операторов представляет собой некую последовательность команд (операторов), которые должен выполнить компьютер. Другими словами, раздел действий – это собственно программа. В разделах описаний программист сообщает компьютеру, какие объекты он будет использовать в своей программе, сколько памяти под них нужно выделить и т. д.

Из всего перечисленного выше обязательным для каждой программы является лишь раздел действий. Разделов описания в программе может и не быть (хотя в содержательных задачах они будут). Раздел действий начинается с ключевого слова begin, далее записывается список операторов (собственно программа) и в конце пишется ключевое слово end и ставится точка. Внутри списка все операторы отделяются друг от друга специальным символом – точкой с запятой. В этом задании мы познакомимся со следующими операторами:

1)пустой оператор;

2)составной оператор;

3)оператор присваивания;

4)условный оператор;

5)операторы цикла;

6)операторы вывода;

7)операторы ввода.

Начнѐм с пустого оператора. В языке Pascal пустой оператор – это просто ничего. Он не содержит никаких символов и не выполняет ни-

2013, ЗФТШ МФТИ, Мерзляков Василий Владимирович

4

2013-2014 уч. год, №1, 11 кл. Информатика и ИКТ. Элементы программирования

какого действия. Рассмотрим пример программы состоящей из одного пустого оператора:

Begin

End.

Эта программа начинается и сразу же заканчивается, не выполняя никаких содержательных действий. Рассмотрим другой пример:

Begin

; ; ;

End.

Эта программа состоит уже из четырѐх пустых операторов, отделѐнных друг от друга точками с запятой.

Для того чтобы познакомиться с разделами описаний, сначала нужно изучить объекты, которые мы можем использовать в программе.

§3. Константы и переменные

Познакомимся с двумя важнейшими в программировании понятиями.

Определение 1. Константой называется объект, который получает значение до начала выполнения программы и не может менять его в ходе выполнения.

Определение 2. Переменной называется объект, который может менять своё значение в ходе выполнения программы.

С каждой константой или переменной, используемой в программе, связывается область в оперативной памяти компьютера, размер которой зависит от типа объекта. Каждая константа и каждая переменная имеет своѐ имя (идентификатор), по которому мы и обращаемся к этим объектам, чтобы с ними работать. Каждое имя должно быть уникальным, чтобы не возникала ситуация неопределѐнности – какой объект выбирать. Если в программе две переменные имеют одно и то же имя, компьютер откажется выполнять данную программу.

Правила именования в языке Pascal следующие: именем может являться любая последовательность латинских букв и цифр, начинающаяся с буквы. При этом заглавные и строчные латинские буквы не различаются, то есть имена aBBA и AbBa на самом деле обозначают один и тот же объект. Ещѐ одна интересная особенность построения имѐн

2013, ЗФТШ МФТИ, Мерзляков Василий Владимирович

5

2013-2014 уч. год, №1, 11 кл. Информатика и ИКТ. Элементы программирования

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

Каждая переменная и каждая константа помимо имени ещѐ имеет свой тип. Тип определяет три вещи:

1)размер области оперативной памяти, отводимой под соответствующую константу или переменную;

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

3)набор операций, которые можно выполнять с соответствующей константой или переменной.

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

var x:integer;

означает, что в нашей программе будет использоваться переменная с именем x, имеющая тип integer (целое число). Если в программе будет несколько переменных одного типа, то можно до двоеточия перечислить их имена через запятую, а не выписывать отдельную строчку для

каждой переменной. Пример: var x,y:integer;

Для описания константы необходимо записать ключевое слово const, затем указать имя константы (отделив его как минимум одним пробелом от ключевого слова), поставить знак равенства и тут же задать еѐ значение, например:

const N=1000;

После окончания описания константы также ставится точка с запятой. В программе принято сначала описывать константы (если они есть), а уже затем переменные (а они есть практически в любой программе).

2013, ЗФТШ МФТИ, Мерзляков Василий Владимирович

6

2013-2014 уч. год, №1, 11 кл. Информатика и ИКТ. Элементы программирования

Замечание. Термином «константа» в программировании принято обозначать ещѐ одно понятие – если в программе встречается некоторое конкретное значение (например, число 1000), то оно также называется константой соответствующего типа.

§4. Числовые типы переменных. Оператор присваивания

Рассмотрим три основных числовых типа переменных.

1)INTEGER. Этот тип характеризует целые числа. Переменные этого типа занимают в оперативной памяти 2 байта и могут принимать значения из диапазона [–32768, 32767].

2)LONGINT. Этот тип также характеризует целые числа. Перемен-

ные этого типа занимают в памяти 4 байта и, соответственно, могут принимать значения из диапазона [ –2147483648, 2147483647]. Точное значение запоминать необязательно, главное помнить, что переменная этого типа может вмещать целые числа примерно до 2 миллиардов по модулю.

3) REAL. Этот тип предназначен для работы с вещественными (действительными) числами. Переменные этого типа занимают в оперативной памяти 6 байт. При записи констант этого типа целая часть числа отделяется от дробной точкой, а не запятой, как в математике, напри-

мер: 3.14.

Оператор присваивания позволяет изменить значение любой переменной программы (присвоить ей новое значение). Этот оператор выглядит следующим образом: записывается имя переменной, затем знак присваивания (:=), а потом значение, которое мы хотим присвоить переменной. Присвоить можно константу или выражение соответствующего типа.

Пример 1.

X:=5; {в переменную X присвоили число 5}

Y:=X; {в переменную Y присвоили текущее значение переменной

X}

Z:=X+Y; {в переменную Z присвоили сумму текущих значений переменных X и Y}

2013, ЗФТШ МФТИ, Мерзляков Василий Владимирович

7

2013-2014 уч. год, №1, 11 кл. Информатика и ИКТ. Элементы программирования

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

Пример 2.

X:=5;

Y:=X+4; {в переменную Y запишется число 9, так как текущее значение переменной X равно 5}

При использовании операторов присваивания необходимо соблюдать правило совместимости типов. Это правило заключается в том, что тип присваемого значения должен соответствовать типу переменной, которой мы хотим это значение присвоить. Есть исключения из этого правила: переменной типа real можно присвоить целое значение. Так же переменной типа longint можно присвоить значение типа integer. А вот переменной типа integer можно присвоить значение типа longint только в случае, если оно укладывается в диапазон типа integer.

§5. Арифметические выражения

Арифметические выражения состоят из операций и операндов. В языке программирования Pascal существует шесть операций: сложение (обозначается знаком «+»), вычитание (обозначается знаком «-»), умножение (обозначается знаком «*»), деление (обозначается знаком «/»), деление нацело (обозначается словом «div») и взятие остатка от деления нацело (обозначается словом «mod»). Слова div и mod являются служебными зарезервированными.

Важным понятием в арифметике является понятие операнда. Операндами называются те объекты, над которыми выполняется арифметическая операция. В математике различные операции могут иметь разное количество операндов, но все арифметические имеют два операнда. Операндом для операции может являться как одиночное число или имя переменной, так и целое арифметическое выражение. Рассмотрим выражение (2+2)*2. У операции сложения операндами являются два числа 2, а у операции умножения правый операнд – это число 2, а

2013, ЗФТШ МФТИ, Мерзляков Василий Владимирович

8

2013-2014 уч. год, №1, 11 кл. Информатика и ИКТ. Элементы программирования

левый – это выражение в скобках (2+2). Прежде чем выполнять операцию, необходимо вычислить оба еѐ операнда.

Приоритет операций в Паскале точно такой же, как и в математике. Сначала выполняются операции умножения, деления, div и mod (это тоже операции деления), а потом операции сложения и вычитания. Операции одного приоритета выполняются слева направо. Для изменения порядка действий можно использовать круглые скобки. Операции в скобках имеют более высокий приоритет, чем операции вне скобок. Так при вычислении выражения 2+2*2 получается число 6, потому что операция умножения имеет более высокий приоритет, чем сложение, и, следовательно, выполняется первой. Если же записать выражение (2+2)*2, то при вычислении получается число 8, потому что сложение в скобках выполняется раньше умножения.

Рассмотрим, как определить тип результата при вычислении арифметического выражения. Операции сложения, вычитания и умножения выдают целый результат, если оба их операнда целые, и вещественный, если хотя бы один из операндов – вещественный. Операция деления «/» всегда выдаѐт вещественный результат. Даже если мы 4 делили на 2, всѐ равно в итоге получается нецелое число. На первый взгляд это кажется странным, но в отличие от математики в программировании каждое число кроме значения ещѐ имеет тип, и если типы у чисел не совпадают, то они НЕ считаются равными. Нужно уяснить, что 1 ≠ 1.0. Операции div и mod всегда выдают целый результат и, в отличие от всех остальных арифметических операций, могут иметь только целые операнды. Попытка применить данные операции к вещественным числам приведѐт к тому, что программа просто не будет работать.

Давайте подробнее познакомимся с двумя последними операциями. Операция a div b выдаѐт целую часть от деления числа a на число b. То есть 5 div 2 = 2, а 3 div 7 = 0. Операция a mod b выда-

ѐт остаток от деления a на b по следующему закону a mod b = a – ((a div b) * b)

Приведѐм примеры выполнения этих их операций для всех возможных знаков операндов:

5 div 3 = 1; 5 mod 3 = 2;

2013, ЗФТШ МФТИ, Мерзляков Василий Владимирович

9

2013-2014 уч. год, №1, 11 кл. Информатика и ИКТ. Элементы программирования

-5

div

3

= -1;

-5

mod

3

= -2;

5

div

-3

= -1;

5

mod

-3

=

2;

-5

div

-3

= 1;

-5

mod

-3

=

-2;

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

Функция

 

 

Комментарий

Тип

Тип

 

 

 

 

аргумента

Результата

 

 

 

 

integer,

совпадает с

abs(x)

 

 

x— модуль x

longint,

типом ар-

 

 

 

 

real

гумента

 

 

 

 

integer,

совпадает с

sqr(x)

 

 

x2

longint,

типом ар-

 

 

 

 

real

гумента

 

 

 

 

integer,

 

 

— корень квадратный

 

sqrt(x)

longint,

real

 

 

из x

 

 

 

real

 

 

 

 

 

 

Pi

3.14159265358979323

нет

real

85

 

 

 

 

 

 

 

 

 

 

 

 

 

integer,

 

sin(x)

 

 

sin x

longint,

real

 

 

 

 

real

 

 

 

 

 

 

 

 

 

 

 

integer,

 

cos(x)

 

 

cos x

longint,

real

 

 

 

 

real

 

 

 

 

 

integer,

 

arctan(x)

 

 

arctg x

longint,

real

 

 

 

 

real

 

trunc(x)

отсекание дробной части x

real

longint

 

округление x до ближай-

 

 

 

шего целого. Половины

 

 

round(x)

округляются в сторону

real

longint

 

 

 

увеличения

 

 

 

 

 

модуля.

 

 

2013, ЗФТШ МФТИ, Мерзляков Василий Владимирович

10