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

Учебное пособие 97

.pdf
Скачиваний:
2
Добавлен:
30.04.2022
Размер:
275.23 Кб
Скачать

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

Воронежский государственный архитектурно-строительный университет

Высокоуровневые методы информатики и технология программирования Часть 1

Методические указания к выполнению лабораторных работ

для студентов специальностей 230201 «Информационные системы и технологии»

и 080801 «Прикладная информатика в экономике» очной формы обучения

Воронеж 2010

УДК 32.973-018я7 ББК 007.42(07)

Составители Проскурин Д.К., Корелина Т.В.

Высокоуровневые методы информатики и технология програм-

мирования. Часть 1: методические указания к выполнению лабораторных работ по дисциплинам «Технология программирования» для студентов спец. 230201 и «Высокоуровневые методы программирования и информатики» для студентов спец. 080801 «Прикладная информатика в экономике» / Воронеж. гос. арх.-строит. ун-т; сост.: Д.К. Проскурин, Т.В. Корелина. – Воронеж, 2010. – 21 с.

Содержат четыре практических работы по курсам Высокоуровневые методы программирования и информатики и Технология программирования. Каждая работавключаетвсебякраткие теоретические сведения об особенностях программирования на языке С#, контрольные вопросы и задания для закрепления материала.

Предназначены для студентов специальности 230201 «Информационные системы и технологии» и 080801 «Прикладная информатика в экономике».

Библиогр.: 5 назв.

УДК 32.973-018я7 ББК 007.42(07)

Печатается по решениюредакционно-издательского совета Воронежского государственного архитектурно-строительного университета

Рецензент – зав. кафедрой Математического моделирования и вычислительной техники, к.т.н., проф. Авдеев В.П.

2

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

Тема: Основные понятия алгоритмического языка.

Цель: познакомиться с основными определениями и понятиями алгоритмического языка.

К основным понятиям алгоритмического языка (АЯ) относятся:

алгоритм;

команда;

служебный объект;

величина;

имя.

Алгоритмом на АЯ будем называть определенный текст, описывающий с использованием формальных правил условие и процесс решения некоторой задачи и состоящий из заголовка и основной части.

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

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

Команда алгоритма — это указание исполнителю на выполнение некоторых действий. Различают простые и структурные команды. Разные команды отличаются между собой правилом записи и правилом выполнения.

Последовательность нескольких команд алгоритма, начало и конец которой отмечены служебными словами, называют серией. Серию можно рассматривать как единую составную команду.

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

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

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

Все величины могут быть распределены на постоянные и переменные.

3

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

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

Среди переменных величин выделяют переменные (термин употребляется как имя существительное). Для переменных в алгоритме используют обозначения, которые называют именами переменных. Типы переменных в алгоритме указывают с помощью стандартных имен типов.

Выше упоминались некоторые объекты алгоритма, с которыми должны быть связаны определенные имена. Такие объекты алгоритма называются именованными. К ним относятся сами алгоритмы, а также типы, переменные и константы. Имена могут быть стандартными или выбранными произвольно.

1.2. Алфавит алгоритмического языка

Как и любой другой, алгоритмический язык имеет свой алфавит. Алфавит АЯ – это совокупность всех знаков, которые могут быть использованы для записи алгоритма.

На алфавит АЯ не накладывается никаких жестких ограничений, более того, он считается расширяемым. Следовательно, алфавит АЯ, в принципе, может содержать весьнабор знаков, традиционно используемых втой или инойобласти знаний. Требования, предъявляемыекалфавитуАЯ, состоятвследующем:

использование тех или иных знаков не должно приводить к неоднозначному толкованию смысла алгоритма;

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

Выбор имен в алгоритмах на АЯ будем подчинять следующим правилам:

в качестве имени может быть использована произвольная последовательность десятичных цифр и букв, начинающаяся с буквы;

использоваться могут как прописные, так и строчные буквы из латинского, славянского или греческого алфавитов;

имя записывается только в строку, то есть использование отдельных его составляющих в виде верхних или нижних индексов запрещено;

запрещается в качестве имен использовать служебные слова, а в составе имен — служебные знаки;

длина имени не ограничивается;

поскольку использование пробела в именах не предусмотрено, вместо него можно использовать знак подчеркивания "_".

Используйте "содержательные" имена, то есть такие, которые хотя бы частично раскрывают смысл или содержание именованного объекта. За счет этого ваш алгоритм станет понятнее и "читабельнее".

4

1.3. Служебные объекты и стандартные имена

Использование предопределенных служебных слов, знаков и стандартных имен делает форму представления разных алгоритмов единообразной. Это способствует лучшей читаемости, а также большей наглядности и понимаемости алгоритма. Говорят, что служебные объекты и стандартные имена являются одним из основных средств формализации записи алгоритма.

В записи алгоритма служебные слова и стандартные имена рекомендуется выделять тем или иным образом. Это можно делать преимущественным написанием их в сокращенном виде, выделением жирным шрифтом или курсивом в печатном тексте, а также выделением путем подчеркивания на письме.

Например, в нашем учебнике служебные слова и стандартные имена мы будем выделять жирным шрифтом и одновременно подчеркиванием. Это позволит нам отличать их от имен, выбираемых произвольно, которые мы иногда, в случае необходимости, будем выделять только жирным шрифтом.

Примеры служебных слов:

для оформления алгоритма алг, нач. кон:

для указания операций или, не. mod:

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

Примеры стандартных имен:

для указания типов переменных нат, цел, лит:

для записи логических констант ДА. НЕТ.

Примеры служебных знаков:

знаки операций в выражениях "+", "*", "/", "А";

знаки препинания ",",";";

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

скобки "С , ")'\ "[","]"•.

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

1.4. Команды

Основным способом классификации команд является их распределение на простые и структурные.

Простая команда касается выполнения некоторой отдельной элементарной операции над данными, не содержит в своей записи каких-то других команд, а ее исполнение не связано, по крайне мере, в явной форме, с анализом тех или иных условий.

Структурная команда содержит в своем составе другие команды, а также условия, определяющие порядок их исполнения.

5

ВАЯ перечень простых команд невелик. К ним относятся команда присваивания, команда выхода из алгоритма и команда обращения к алго- ритму-процедуре. Все остальные команды АЯ (команды для построения ветвлений и повторений) являются структурными.

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

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

Аналогичное правило может быть сформулировано также и по отношению к командам, входящим в состав серии.

Существуют также и общие рекомендации и правила, касающиеся записи команд в алгоритме.

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

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

1.5.Величины

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

Рассмотрим пример одной и той же величины, представленной в разных формах. Вещественная константа 1.0, арифметическое выражение 25.0—15.0—9.0 вещественного типа, значение вещественной функции Cos(0) несут информацию об одном и том же числовом значении, равном вещественной единице.

1.6. Типы констант и переменных

Числовые константы целого типа — это обыкновенные целые числа со знаком или без. Например, 27, -18, 0, +27 и т. п. Значения целых чисел в АЯ не ограничиваются.

Числовые константы натурального типа — это числа натурального ряда 1, 2, 3 и т. д. Для нужд алгоритмизации в АЯ натуральный ряд чисел расширяют числом 0. Кроме всего прочего, это расширение приближает АЯ к языку программирования Паскаль, в число стандартных типов которого входят

6

неотрицательные целые числа разных диапазонов.

Числовые константы вещественного типа — это произвольные числа, имеющие вид десятичной дроби со знаком или без. Например, 0.5, -2.7, 1.0, +0.5 и т. п. При этом вместо запятой, отделяющей целую часть от дробной, следует использовать точку. Значения вещественных чисел и точность их представления (количество значащих цифр в записи) в АЯ не ограничиваются.

Важное значение в алгоритмизации имеют величины логического типа. С их помощью удобно описывать ситуации, в отношении которых приходится принимать решения альтернативного характера. Например, имеет или не имеет вещественные корни квадратное уравнение, существует или не существует треугольник с указанными длинами сторон, возможно или нет вычислить данное выражение и пр. Константы логического типа обозначаются стандартными именами ДА и НЕТ.

Значениями литерных (текстовых) величин являются последовательности произвольных знаков. Соответственно и литерные константы имеют вид строк произвольного текста. Чтобы отличить их в алгоритме, каждая строка с обеих сторон должна быть ограничена знаком препинания " (двойные кавычки). Например, "школа", "12345", "+*/-". Считается, что сам знак препинания " в состав литерной константы входить не может, то есть используется только для ее ограничения. Количество знаков в литерной константе АЯ не ограничивается. Существует также, так называемая, пустая литерная константа которая не содержит в себе ни одного знака и обозначается парой рядом стоящих двойных кавычек"".

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

1.7. Использование переменных в алгоритме

Переменные, использованные в алгоритме, могут быть его аргументами, результатам или промежуточными.

Переменные, значения которых являются исходными данными для алгоритма, называются аргументами. Значения аргументов необходимо указать перед исполнением алгоритма. Переменные, значения которых мы желаем получить после исполнения алгоритма, называются результатами. Совокупность переменных, включающая его аргументы результаты, называется параметрами алгоритма. Переменные, которые используются как вспомогательные при построении алгоритма, называются промежуточными. Назначение переменной в процессе исполнения алгоритма не является жестко фиксированным. Во многих случаях одна и та же переменная данного алгоритма может применяться по-разному.

7

Считается, что значения аргументами алгоритма получены некоторым произвольным образом непосредственно перед его исполнением. Понятно, что это может быть сделано только "вручную". Другие переменные алгоритма могут получить свои значения только вследствие исполнения его команд. В связи с этим используется следующая терминология:

начальное значение переменной — это то ее значение, которое она имеет непосредственно перед исполнением данного фрагмента алгоритма;

текущее значение переменной — это значение переменной на данном этапе или шаге исполнения алгоритма;

неопределенная переменная — это та, которая на данном этапе или шаге исполнения алгоритма еще не получила никакого конкретного значения.

1.8. Общие представления о выражениях

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

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

Всостав выражения могут входить константы, переменные, обращения

кфункциям, служебные слова или знаки для указания операций, а также круглые скобки, регулирующие порядок выполнения операций.

Величины в составе выражения, в отношении которых применяется та или иная операция, часто называют операндами.

Как правило, величины в составе выражения должны быть однотипными. Но иногда допускается использование в составе выражения разнотипных величин, например, целых и вещественных чисел в арифметическом выражении. Из этого следует, что в первую очередь тип выражения зависит от типа величин (операндов), входящих в его состав. Тип выражения может также зависеть от операций, которые в нем использованы.

АЯ использует некоторые общие правила записи выражений, не зависящие от их типа:

выражения в алгоритме записывают только в строку, использование верхних и нижних индексов запрещено;

знаки операций пропускать запрещено;

к функциям можно обращаться только с помощью их имен;

аргументы функций обязательно указывают в круглых скобках.

ВАЯ существуют также определенные правила (правила приоритетов), определяющие порядок вычисления выражения при отсутствии регулирующих круглых скобок:

в первую очередь вычисляются значения функций;

во вторую очередь выполняются операции возведения в степень в

8

порядке их указания в выражении;

в третью очередь выполняются унарные операции также в порядке их указания в выражении;

в последнюю очередь выполняются бинарные операции в соответствии с их приоритетом.

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

Унарной называется операция, которая выполняется над одной величиной, называемой операндом. Обозначение унарной операции записывается перед операндом.

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

Контрольные вопросы

1.Перечислите основные понятия алгоритмического языка.

2.Что называется алгоритмом на алгоритмическом языке?

3.Что содержит заголовок алгоритма?

4.Что содержит основная часть алгоритма?

5.Что такое команда алгоритма?

6.Каковы основные признаки различия команд алгоритма?

7.Что такое серия?

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

9.Назовите основные особенности служебных объектов алгоритмического языка?

10.На какие две группы распределяют служебные объекты алгоритмического языка?

11.Что называется величиной?

12.Какие свойства величины определяют ее тип?

13.Что представляет собой величина простого типа?

14.Что представляет собой величина структурированного типа?

15.Что называется постоянной величиной?

16.Что называется переменной величиной?

17.Каким образом из постоянных величин выделяют константы?

18.Каким образом из переменных величин выделяют переменные? 19.Каким образом определяют типы констант и типы переменных? 20.Перечислите именованные объекты алгоритма.

21.На какие две группы распределяют используемые в алгоритмическом языке имена?

22.Что такое алфавит алгоритмического языка.

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

9

24.Сформулируйте правила записи имен, выбираемых произвольно.

25.Что такое "содержательные" имена?

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

27.Как выделяются служебные объекты и стандартные имена в записи алгоритма?

28.Назовите основные признаки простой команды.

29.Назовите основные признаки структурной команды.

30.Перечислите простые команды алгоритмического языка.

31.Перечислите структурные команды алгоритмического языка.

32.Из каких элементов выстраивается команда алгоритмического языка? 33.Перечислите общие правила исполнения команд алгоритма (серии). 34.Перечислите общие правила записи команд в алгоритме.

35.Чтопредставляетсобойзадачастеоретико-информационныхпозиций? 37.Что значит утверждение "исполнение алгоритма представляет собой целенаправленный процесс видоизменения величин"?

38.Приведите пример разных форм представления одной и той же величины.

39.Перечислите объекты алгоритма, которые могут быть отнесены к величинам.

40.Перечислите типы величин, используемые в алгоритмическом языке. 41.Назовите основные свойства констант.

Задания

Алгоритм L-1. "Вычисление функции". Для произвольных заданных значений переменных х и а построить алгоритм вычисления значения функции

y

sin(x) a2 2

Lg(2 sin(x) a2 ) .

(a2 2) *Tg(2)

 

 

Алгоритм L-2. "Равновеликий квадрат". Построить алгоритм вычисления стороны квадрата, имеющего ту же площадь, что и круг с заданной длиной окружности L.

Алгоритм L-3. "Прямоугольный треугольник". Заданы длины катетов прямоугольного треугольника. Построить алгоритм вычисления периметра и площади треугольника.

Алгоритм L-4. "Обмен значений". Заданы переменные А и В. Построить алгоритм обмена их значений.

Алгоритм L-5. "Длина отрезка". Заданы координаты концов отрезка прямой. Построить алгоритм вычисления длины отрезка.

Алгоритм L-6. "Площадь треугольника". Заданы стороны треугольника а, b, с. Построить алгоритм вычисления его площади.

Алгоритм L-7. "Косинус угла". Заданы стороны треугольника а, b, с. Построить алгоритм вычисления косинуса угла, лежащего против стороны а.

10