Министерство образования Московской области

ФГОУ СПО ДМИТРОВСКИЙ ГОСУДАРСТВЕННЫЙ ПОЛИТЕХНИЧЕСКИЙ КОЛЛЕДЖ

Утверждено
цикловой комиссией
по специальности
230105 «Программное обеспечение
вычислительной техники
и автоматизированных систем»

Методические указания по дисциплине
«Основы алгоритмизации и программирования»
для студентов специальности 230105

Дмитров
2011

Методические указания к лабораторным работам ориентированы на изучение основ алгоритмического языка Паскаль версии ТурбоПаскаль 7.0, программирование на этом языке и получение навыков решения задач на ПЭВМ.

Лабораторная работа № 1П.

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

Краткие теоретические сведения

1. Элементы языка ТурбоПаскаль

Алфавит. Алфавит языка ТурбоПаскаль включает в себя буквы, цифры и специальные символы:

латинские буквы от А до Z (прописные) и от а до z (стро­чные);

цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;

шестнадцатеричные цифры 0, 1,2, 3, 4, 5, 6, 7, 8, 9, А, В, С, D, Е, F;

специальные символы +-*/ = <>[]. ,():;{}А@$#.

Следующие комбинации специальных символов являются еди­ными символами, которые нельзя разделять пробелами:

:= знак присваивания;

>= больше или равно;

<= меньше или равно;

о не равно;

(* *) ограничители комментариев (наряду с { });

(. .) эквивалент [ ].

Пробелы — это символ пробела (ASCII-32) и все управляющие символы кода ASCII (от 0 до 31).

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

НЕ нашли? Не то? Что вы ищете?

Служебные слова языка ТурбоПаскаль: absolute, and, array, begin, case, const, div, do, downto, else, end, external, file, for, forward, function, goto, if, implementation, in, inline, interface, interrupt, label, mod, nil, not, of, or, packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, xor.

Последние версии языка ТурбоПаскаль содержат также ряд слу­жебных слов, относящихся к работе с объектами и встроенным ассемблером.

Идентификаторы. Идентификатором называется символическое имя определенного программного объекта: константы, перемен­ные, типы данных, процедуры, функции, программы. иденти­фикатор — это любая последовательность букв и цифр, начинаю­щаяся с буквы. В ТурбоПаскале к буквам приравнивается также знак подчеркивания.

Строчные и прописные буквы в идентификаторах и служебных словах не различаются. Например: max, МАХ, МаХ, шАх — одно и то же имя.

В ТурбоПаскале длина идентификатора может быть произволь­ной, но значащими являются только первые 63 символа.

Комментарии. Конструкции следующего вида представляют со­бой комментарии и поэтому игнорируются компилятором:

{любой текст, не содержащий символ «}» }

(* любой текст, не содержащий символы «*)» *)

Буквы русского алфавита употребляются только в коммента­риях, литерных и текстовых константах.

Строка, начинающаяся с символов «{$» или «(*$», является директивой компилятора. За этими символами следует мнемоника команды компилятора.

2.Концепция типов данных

Концепция типов данных является одной из центральных в любом языке программирования. С типом величины связаны три ее свойства: форма внутреннего представления, множество при­нимаемых значений и множество допустимых операций. В стандартном Паскале отсутствует строковый тип данных. Кроме того, в ТурбоПаскале целые и вещественные — это группы типов данных. В более поздних версиях ТурбоПаскаля существуют про­цедурный тип данных и тип данных «объект».

Каждый тип данных имеет свой идентификатор.

Тип данных называется порядковым, если состоит из счетного числа значений, которые можно пронумеровать. Отсюда следует, что для этого множества значений существуют понятия «следу­ющий» и «предыдущий».

Описание переменных. Для всех переменных величин, исполь­зуемых в программе, должны быть указаны их типы в разделе пере­менных. Пример раздела переменных программы:

Var m, n, k : Integer; x, у, z : Real;

Symbol : Char;

Константы. Тип константы определяется по контексту, т. е. по форме ее записи в программе.

Целые десятинные константы записывают в обычной форме целого числа со знаком или без знака. Например: 25, -24712, 376.

Целые шестнадцатеричные константы записывают с префиксом «$». Они должны находиться в диапазоне от $ до $FFFFFFFF.

Вещественные константы с фиксированной точкой записывают в обычной форме десятичного числа с дробной частью. Разделите­лем целой и дробной частей является точка. Например: 56.346, 0. -345678.0.

Вещественные константы с плавающей точкой имеют следую­щую форму:

<мантисса>Е<порядок>

Здесь <мантисса> — целое или вещественное число с фиксиро­ванной точкой, <порядок> — целое число со знаком или без знака. Например: 7Е-2"2), 12.25Е6 (12,2, 1Е"25).

Символьная константа — это любой символ алфавита, заклю­ченный в апострофы. Например: 'W', ‘Т’, '9'.

Логическая константа — это слова: True, False.

Строковая константа — это строка символов, заключенная в апострофы. Например: `TurboPascal', 'Ответ:`, ''. Макси­мальная длина строковой константы 255 символов.

Константе может быть поставлено в соответствие определен­ное имя, назначение которого производится в разделе констант программы. Например:

Const Мах= 1000;

G = 9.81;

Cod=’Ошибка’;

Структура раздела констант показана на рис. 2.4. В ТурбоПаска - ле допустимо также употребление типизированных констант. Ти­пизированная константа аналогична переменной, которой зада­ется начальное значение. Причем происходит это на этапе компи­ляции. Например:

Const NumberCard : Integer = 12 67;

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

Таблица 1

Зарезервированные константы ТурбоПаскаля

Идентификатор

Тип

Значение

True

Boolean

ИСТИНА

False

Boolean

ЛОЖЬ

Maxlnt

Integer

32767

Типы данных пользователя. Один из принципиальных момен­тов языка Паскаль состоит в том, что пользователю разрешается определять свои типы данных. Причем типы данных пользователя всегда базируются на стандартных типах данных Паскаля.

Для описания типов данных пользователя в Паскале существу­ет раздел типов. Данные перечисляемого типа задаются непосредственно перечислением всех значений, которые может принимать пере­менная данного типа.

Определенное имя типа данных затем используется для описа­ния переменных. Например:

Type Gaz = (С, О, N, F) ;

Metal = (Fe, Со, Na, Си, Zn) ;

Var Gl, G2, G3: Gaz;

Metl, Met2: Metal;

Day: (Sun, Mon, Tue, Wed, Thu, Fri, Sat);

Здесь Gaz и Metal — имена перечисляемых типов данных, ко­торые ставятся в соответствие переменным Gl, G2, G3 и Metl, Met2. Переменной Day назначается перечисляемый тип данных, которому не присвоено имени.

Значения, входящие в перечисляемый тип данных, являются константами. Действия над ними подчиняются правилам, применяемым к константам. Каждое значение в перечисляемом типе за­нимает в памяти 2 байт, поэтому число элементов не должно пре­вышать

Перечисляемый тип данных — упорядоченное множество. Его элементы пронумерованы, начиная от 0 в порядке следования в описании.

В программе, в которой имеется приведенное ранее описание, возможено наличие следующего фрагмента:

If Day = Sun Then WriteLn (‘ Ура! Сегодня выходной! ');

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

Порядковый номер первой константы не должен быть больше номера второй константы в данных соответствующего базового типа.

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

Type Numbers = 1. .31;

Alf = ‘А’..’Z’;

Var Data: Numbers;

Bukva: Alf;

3. Арифметические операции, функции, выражения. Оператор присваивания

К арифметическим типам данных относятся группы веществен­ных и целых типов данных. К ним применимы арифметические операции и операции отношений.

Различают операции над данными унарные (применимые к од­ному операнду) и бинарные (применимые к двум операндам).

Унарная арифметическая операция одна — это операция изме­нения знака следующего формата:

— <величина>.

Бинарные арифметические операции стандартного языка Па­скаль описаны в Приложении, где I — данные целого типа, a R — вещественного.

К арифметическим величинам могут быть применены стандарт­ные функции языка Паскаль.

Функция в выражении выступает как операнд. Например, в операторе присваивания

X := 2 * sin(А)/1п(3.5) + cos(С - D)

операндами являются три функции: sin, In, cos, записываемые так же, как в математике. Аргументы называются фактическими параметрами, являются в общем случае выражениями арифмети­ческого типа и записываются в круглых скобках. Результатом вы­числения функции является величина соответствующего типа.

В приложении имеются описания стандартных математических функ­ций ТурбоПаскаля.

Арифметическое выражение задает порядок выполнения дей­ствий над числовыми величинами. Арифметические выражения содержат арифметические операции, функции, операнды, круг­лые скобки. Одна константа или одна переменная — это простей­шая форма арифметического выражения. Например, математическое выражение

2 а + О,5 sin(x + у) 0,2с - 1п(х - у)

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

(2 * А + sqrt (0.5 * sin (X + Y) ) ) / (0.2 * С - In (X - Y) ) .

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

1. Все символы писать в строку, т. е. на одном уровне. Простав­лять все знаки операций, не пропуская знак «*».

2. Не допускать записи двух знаков операций подряд, т. е. нельзя писать А + - В, следует писать А + (-В).

3. Операции с более высоким приоритетом выполняют раньше операций с меньшим приоритетом. Порядок убывания приорите­тов операций следующий:

· вычисление функции;

· унарная операция смены знака (-);

· *, /, div, mod;

· +,-

4. Несколько записанных подряд операций с одинаковым при­оритетом выполняют последовательно слева направо.

5. Часть выражения, заключенная в скобки, вычисляется в пер­вую очередь. (Например, в выражении (А + В) * (С - D) умноже­ние производится после сложения и вычитания.)

6. Не следует записывать выражения, не имеющие математи­ческого смысла, например: деление на нуль, логарифм отрица­тельного числа и т. п.

В Паскале нет операции или стандартной функции возведения числа в произвольную степень. Для вычисления xy рекомендуется поступать следующим образом:

если у — целое значение, следует использовать умножение, например: х3 = х * х * х. Для больших степеней следует использо­вать умножение в цикле;

если у — вещественное значение, используется следующая математическая формула:

ху = еуln(х) запись которой на Паскале имеет вид

ехр(Y*In(х))

Очевидно, что при вещественном типе у недопустимо нулевое или отрицательное значение х. Для у целого типа такого ограниче­ния нет.

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

Арифметический оператор присваивания может иметь вид

Y := (F * N - 4.5)/cos(X).

Порядок выполнения оператора присваивания рассматривался ранее. Следует только обратить внимание на следующее правило: типы переменной и выражения должны быть одинаковыми. Ис­ключением является случай, когда выражение имеет целый тип, а переменная — вещественный.

4. Ввод данных с клавиатуры и вывод на экран

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

Вывод данных — это передача данных из оперативной памяти на внешние носители (печать, дисплей, магнитные устройства и т. д.). Результаты решения любой задачи должны быть выведены.

Основными устройствами ввода-вывода персонального компь­ютера являются клавиатура и дисплей (экран монитора). Именно через эти устройства, главным образом, осуществляется диалог между человеком и ПК.

Процедура ввода с клавиатуры имеет следующий формат:

Read(<список ввода>)

Здесь <список ввода> — это последовательность имен перемен­ных, разделенных запятыми, a Read (читать) — оператор обра­щения к стандартной процедуре ввода. Например:

Read(a, b, с, d)

При выполнении этого оператора работа компьютера преры­вается, после чего пользователь набирает на клавиатуре значения переменных а, Ь, с, d, отделяя их друг от друга пробелами. При этом вводимые значения высвечиваются на экране. В конце набо­ра нажимают клавишу <Enter>: Ввод значений должен выпол­няться в строгом соответствии с синтаксисом языка Паскаль. На­пример, при выполнении ввода в программе

Var T : Real; J : Integer; K. : Char;

Begin

Read(T, J, K);

на клавиатуре следует набрать

253G [Enter].

Если в программе имеется несколько операторов Read, то дан­ные для них вводятся потоком, т. е. после считывания значений переменных для одного оператора Read данные для следующего оператора до окончания строки считываются из той же строки на экране, что и для предыдущего затем происходит переход на следующую строку. Например, при выполнении ввода в про­грамме

Var А, В : Integer;

С, D : Real;

Begin

Read(А, В); Read(С, D);

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8