1Алгоритмы линейных структур


Скачать 3.1 Mb.
Название 1Алгоритмы линейных структур
страница 1/24
Тип Документы
rykovodstvo.ru > Руководство эксплуатация > Документы
  1   2   3   4   5   6   7   8   9   ...   24
Содержание

1Алгоритмы линейных структур

1.1 Этапы разработки программы……………………….…….……………....6

1.2 Основные понятия………………………………………………..…….......7

1.3 Основная структура программы……………………………..…………....7

1.4 Алфавит языка…………………………………………………..…….........8

1.5 Идентификаторы…………………………………………..……………...10

1.6 Константы…………………………………………………..……………..10

1.7 Понятие переменной. Типы…………………………….………...………11

1.8 Операции присваивания. Арифметические выражения…..........…........12

1.9 Оператор ввода и вывода информации…………………………...…......14

1.10 Практические задачи………………………………………………........15

1.11 Примеры решения задач…………………………….…………..………22

2 Циклы

2.1 Циклы с предусловием………………………………..…………..………25

с постусловием………………………………………..………….27

со счетчиком.……………………....…………………….………28

2.2 Задачи……………………………………………………………..…….. 29

2.3 Примеры………………………………………….……………….……...47

3 Немного об алгоритмах

  • алгоритм Кнута-Морриса-Пратта……………………………….………..50

  • алгоритм Бойера-Мура………………….……………………..……..…...52

  • алгоритм Рабина………………………………………………..…..……...54

3.1 Разветвляющиеся алгоритмы………………………...…………………..57

3.2 Задачи……………………………………………………………...……....58

  • свойства и виды треугольников……………………………………..……58

  • свойства и виды четырехугольников…………………......…………...…58

  • Задачи………………………………………………………………………63

4 Массивы

4.1 Объявление массива…………………………………………….………...87

4.2 Действия над массивами……………………………….…………………88

4.3 Вывод массива…………………………………………………………….88

4.4 Ввод массива………………………………………………………….…...88

4.5 Сортировка массива……………………………………………………....89

4.6 Поиск в массиве…………………………………………………………..90

4.7 Поиск минимального ( максимального ) элемента массива…………...91

4.8 Многомерные массивы…………………………………………………...92

4.9 Ошибки при использовании массивов…………………………………..93

4.10 Задачи…………………………………………………………………….93

5 Множества

5.1 Описание типа множество………………………………………...…….102

5.2 Операции над множествами……………………………………...……..104

5.3 Группы операций……………………………………………..….………107

5.4 Упражнения………………………………………….……………..…….110

5.5 Задачи…………………………………………………….………….…...116

6 Записи

6.1 Понятие записи……………………………………………….….………124

6.2 Оператор присоединения with...do……………………………….….….126

6.3 Вариантные записи…………………………………………………..…..131

6.4 Работа с файлами записей…………………………………………..…...135

6.5 Задачи…………………………………………………………….………135

7 Файлы

7.1 Работа с файлами………………………………………….……….…….145

7.2 Текстовые файлы………………………………………………….……..145

7.3 Типизированные файлы………………………………………….……...150

7.4 Нетипизированные файлы……………………………………….……...152

7.5 Задачи…………………………………………………………….………154

8 Графика

8.1 Графика в Турбо паскале………………………………………………..165

8.2 Базовые процедуры и функции……………………………….….……..166

8.3 Экран и окно в графическом режиме ……………………….….….......168

8.4 Вывод простейших фигур………………………………………..……...170

8.5 Графические процедуры……………………………………………..….172

8.6 Построение прямоугольников……………………………………..…....174

8.7 Построение многоугольников……………………………….….………174

8.8 Построение дуг и окружностей……………………………..….…….176

8.9 Работа с текстом……………………………………………….….……..178

8.10 Построение графиков функций………………………………….….....180

8.11 Циклы в графике. Построение случайных процессов…………..…...184

8.12 Создание иллюзий……………………………………………...……....185

Задания…………………………………………………………..……….…..190

Контрольные тесты……………………………………………………..…...196

Ответы………………………………………………………………….…….208
Введение
Сборник содержит подробную теорию и задания по следующим темам:

  • Программирование алгоритмов линейной структуры

  • Программирование алгоритмов циклической структуры

  • Записи

  • Регулярные типы (массивы)

  • Множества

  • Файлы

  • Графика

К каждой теме представлены практические задачи, а также тестовые вопросы. Сборник может быть применен в курсах программирования ПРЗ на ЭВМ.

К каждой теме представлены упражнения и задания с их решением и блок-схемой, практические задачи для решения на Turbo Pascal для школьников и студентов, а также тестовые вопросы для проверки усвоенных знаний. Сборник может быть применен в курсах программирования ПРЗ на ЭВМ как в общеобразовательных так и в высших учебных заведениях.

1 Алгоритмы линейных структур
Прежде всего, следует напомнить, что изучение языка программирования представляет собой знакомство с формальными правилами записи алгоритмов для их последующего выполнения компьютером. Формальность сия проистекает из самих принципов, заложенных в архитектуру вычислительных устройств, и жесткости математической логики. Поэтому, постарайтесь воспринять все довольно строгие правила как неизбежность, настроить себя на серьезную, скрупулезную, порой сложную работу. Однако не стоит бояться, расстраиваться и сетовать на судьбу: немного аккуратности, внимания, знания предыдущего материала - и вы уже программист.

В этом разделе рассматриваются базовые понятия программирования, необходимые для начала работы в Turbo Pascal.

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

- определение требований к программе

- разработка алгоритма решения поставленной задачи

- написание команд

- отладка

- тестирование.

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

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

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

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

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

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

Program <�Имя программы>;

<�Раздел описаний>

Begin

<�Тело программы>

End.

Здесь слова Program, Begin и End являются служебными. Правильное и уместное употребление этих слов является обязательным.

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

Имя программы выбирается программистом самостоятельно в соответствии с правилами построения идентификаторов.

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

1. Описание меток (Label).

2. Описание типов (Type).

3. Описание констант (Const).

4. Описание переменных (Var).

5. Описание процедур и функций (Procedure, Function).

При отсутствии необходимости в каком-либо виде объектов, соответствующий подраздел может быть опущен.
1.4 Алфавит языка
Основу любого языка составляет алфавит, то есть конечный, фиксированный набор символов, используемых для составления текстов на данном языке (в нашем случае - программ). Конечно, стройность картины немного портит наличие диалектов, создающихся стихийно и очень часто включающих в себя апокрифические (неканонические) буквы и знаки. В программировании эта проблема решается введением понятия "стандарт языка". Оно практически неприменимо к языкам человеческим, вечно развивающимся и изменяющимся. Мы с вами в основном будем говорить о той самодостаточной части языка Паскаль, которая входит в различные его компьютерные реализации в неизменном виде. В плане изучения, я не вижу большого смысла излагать вам строгие правила стандарта, хотя такие существуют. Ограничимся некоторыми замечаниями, раскрывающими все же формальности употребления символов в языке Паскаль.

Итак, алфавит языка Паскаль составляют:

1) буквы латинского алфавита;

2) арабские цифры;

3) специальные знаки.

Использование символов первой группы чаще всего вопросов не вызывает, но свои тонкости здесь имеются. Во-первых, это употребление заглавных и строчных букв. Большинство существующих трансляторов не различают буквы разных регистров. Таким образом, записи "progRaM" и "PROGram" будем считать идентичными. Во-вторых, некоторые символы латиницы и кириллицы совпадают по начертанию. Нельзя ли вместо буквы "К" латинской написать "K" русскую? Ответ: в тетради (если вы их сможете различить) - пожалуйста, в программе на ЭВМ - ни в коем случае. На вид они может быть и похожи, но уж коды-то у них совершенно разные, а компьютер, как вам известно, оперирует внутри себя не буквами, а их числовыми кодами.

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

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

Наиболее часто употребляемым специальным символом является пробел (в значимых местах мы будем обозначать его в записях знаком "V"). Его использование связано с форматами основной структуры программы, разделов описаний, операторов. Не следует путать наличие пробела с отсутствием символа.

. конец программы, разделение целой и дробной частей вещественного числа (десятичная точка), разделение полей в переменной типа Record;

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

.. указание диапазона;

: используется в составе оператора присваивания, а также для указания формата вывода в операторе Writeln;

; отделяет один раздел программы от другого, разделяет операторы;

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

- + * / ( ) арифметические знаки (используются по своему назначению);

< > знаки отношений;

= используется в составе оператора присваивания, в разделах описаний констант и типов, используется как знак отношения (равно);

@ имя специального оператора определения адреса переменной, подпрограммы;

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

{} ограничение комментариев в программе;

[ ] заключают в себе индексы элементов массивов;

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

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

$ обозначение директивы компилятора, обозначение шестнадцатеричного числа.

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

  • идентификатор должен быть уникальным, то есть одним и тем же именем разные объекты не могут быть названы;

  • идентификатор имеет ограничение по длине (зависит от конкретной реализации языка на компьютере);

  • идентификатор может состоять только из символов латинского алфавита, цифр и знака подчеркивания ("_");

  • идентификатор не может начинаться с цифры.


1.6 Константы
Из всех подразделов описаний сейчас мы рассмотрим только описание констант и переменных, остальные - позже.

Вообще говоря, в Паскале константами являются любые явно заданные в программе данные (например, 7493, 'привет', 54.899). Следует обратить ваше внимание на то, что при записи числовых констант с дробной частью эта часть отделяется от целой не запятой, как, возможно, вы привыкли, а точкой. Для записи очень больших по модулю или очень малых (близких к нулю) чисел существует возможность записи их в так называемой экспоненциальной форме. С такой записью вы встречались в математике и физике, но называли ее стандартным видом числа.

Пример: 2 . 4 5 6 7 Е - 0 6

^мантисса ^порядок

Здесь буква "Е" отделяет мантиссу (совокупность значащих цифр числа с десятичной точкой после первой) от порядка (показателя степени десятки в стандартном виде числа). Вам предстоит научиться как читать числа в таком виде, так и записывать.

Константы, представляющие собой строковые величины, заключаются в апострофы.

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

<�Идентификатор> = <�значение>;
1.7 Понятие переменной
Типы
Данные, как вы знаете, хранятся в памяти компьютера, но для указания на конкретную информацию очень неудобно все время записывать физические адреса ячеек. Эта проблема в языках программирования высокого уровня, в частности в Паскале, решена введением понятия переменной. Переменная в Паскале - именованный участок памяти для хранения данных определенного типа. Значение переменной (информация в соответствующих ячейках памяти) в ходе выполнения программы может быть изменено. Константами же, как вы уже знаете, называются величины, значение которых в ходе выполнения программы изменено быть не может. Конкретные переменные и константы представляют собой объекты уникальные и отличаются друг от друга именем.

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

К базовым типам относятся:

  • Integer - тип целых чисел

  • Longint - тип "длинных" целых чисел

  • Real - тип действительных (вещественных) чисел (то есть - с дробной частью)

  • Byte - тип неотрицательных целых чисел от 0 до 255

  • Word - тип неотрицательных целых чисел от 0 до 65535

  • Char - символьный тип

  • String - строковый тип

  • Boolean - логический тип

Физически типы данных отличаются друг от друга количеством ячеек памяти (байтов), отводимых для хранения соответствующей переменной. Логическое же отличие проявляется в интерпретации хранящейся информации. Например, переменные типа Char и типа Byte занимают в памяти по одному байту. Однако в первом случае содержимое ячейки памяти интерпретируется как целое беззнаковое число, а во втором - как код (ASC) символа.

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

  1   2   3   4   5   6   7   8   9   ...   24

Похожие:

1Алгоритмы линейных структур icon Подразделения охраны уголовно-исполнительной системы на фоне реформирования...
Вания. Этому немаловажному процессу подверглись практически все сферы жизнедеятельности общества. После распада СССР и смутных 90-х...
1Алгоритмы линейных структур icon Прибор для измерения малых линейных перемещений в составе приборного...
Руководство по эксплуатации предназначены для ознакомления пользователей с работой, конструкцией и обслуживанием прибора, предназначенного...
1Алгоритмы линейных структур icon Техническое задание № п/п
Кол-во полос эквалайзера: 3 (на микрофонных каналах и линейных стереоканалах с полупараметрической серединой)
1Алгоритмы линейных структур icon Руководство по строительству линейных сооружений
Особенности восстановления поясной изоляции при сращивании жил многопарными соединителями
1Алгоритмы линейных структур icon Техническая часть
Отдельные регулируемые электродвигатели переменного тока с цифровым управлением непосредственно соединенные с швп линейных осей
1Алгоритмы линейных структур icon Стандарт
Работник по техническому обслуживанию и ремонту железнодорожных тяговых и трансформаторных подстанций, линейных устройств системы...
1Алгоритмы линейных структур icon Пояснительная записка общие положения программа предназначена для...
Программа предназначена для осуществления образовательной деятельности по профессиональной подготовке сотрудников частных охранных...
1Алгоритмы линейных структур icon Профессиональный стандарт
Работник по техническому обслуживанию и ремонту железнодорожных тяговых и трансформаторных подстанций, линейных устройств системы...
1Алгоритмы линейных структур icon Науч рук доц. М. Е. Цвинариа
Дискурсивная характеристика английских синтаксических структур с волитивным значением
1Алгоритмы линейных структур icon Новости властных структур
Вице-премьер правительства рф, министр обороны Сергей Иванов посетил Росавиакосмос
1Алгоритмы линейных структур icon Пояснительная записка к проекту профессионального стандарта
«Работник по техническому обслуживанию и ремонту железнодорожных тяговых и трансформаторных подстанций, линейных устройств системы...
1Алгоритмы линейных структур icon Утопия, антиутопия и пиратские утопии
Новые основания: Возникновение суверенных кибергосударств и их властных структур питер ладлоу
1Алгоритмы линейных структур icon Центр организации труда и проектирования экономических нормативов пояснительная записка
«Работник по техническому обслуживанию и ремонту железнодорожных тяговых и трансформаторных подстанций, линейных устройств системы...
1Алгоритмы линейных структур icon Инструкция по созданию параллелей, классов и внесению обучающихся
Кластер – общий термин для любых структур в оу: обучающийся, подгруппа, класс, параллель
1Алгоритмы линейных структур icon Руководство по установке и настройке
Гис пространственно распределённых технологических и линейных объектов. Документ описывает программно-аппаратные требования рабочих...
1Алгоритмы линейных структур icon Руководство пользователя Приборостроительное предприятие «Системы...
Универсальный вход (УВ) для подключения термопар, термосопротивлений, линейных датчиков, пирометров и т д

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск