Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Обзор языков программирования высокого уровня

Содержание:

ВВЕДЕНИЕ

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

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

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

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

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

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

Основные пособия к данной работе. В книге С. Немнюгина «Turbo Pascal» разбираются основные вопросы по программированию в среде Pascal, уделяется пристальное внимание основным понятиям, подробно изображается работа с процедурами, операциями над строками, в том числе и работа с массивами, а также работа с множествами, системное программирование, программирование графики, рекурсивные алгоритмы и введение в обьектно-ориентированное программирование. Также, в своей книге «Turbo Pascal. Наиболее полное руководство» В. Фаронов дает детальное изложение всех конструкций языка, приводит многочисленные примеры программ написанные доступным языком и с использованием различных приемов программирования. Хорошо расписаны все виды циклических алгоритмов с приведением множества примеров, что предоставляет возможность свободно ориентироваться в большом потоке информации и выбрать именно то, что нужно для решения поставленной в курсовой работе цели.

ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

1.1 Языки программирования

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

Языки программирования высокого уровня имеют следующие достоинства:

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

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

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

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

• поддерживается широкий набор типов данных.

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

Примеры: C++, C#, Java, JavaScript, Python, PHP, Ruby, Perl, Паскаль, Delphi, Лисп.

Для строгого и точного описания синтаксиса языка программирования, используют специальные метаязыки (языки для описания других языков). Наиболее распространенными метаязыками являются металингвистические формулы Бэкуса - Наура (язык БНФ) и синтаксические диаграммы Вирта.

Например, метаформулы

<переменная>::=А]В

<выражение>::=<переменная>|<переменная>+<переменная>|<переменная><переменная>-<переменная>

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

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

Оператор представляет собой законченную фразу языка и определяет однозначно трактуемый этап обработки данных. Различают следующие основные операторы языка: присвоения, условный и безусловный переход, пустой оператор. К производным, не основным, относят составной оператор, оператор выбора, оператор цикла и оператор присоединения. Все операторы языка в коде программы отделяются разделителями: Sl;S2;...;Sn

Исполнение операторов происходит в порядке их следования в коде программы. Большая часть операторов осуществляет обработку величин. Величины могут быть постоянными и переменными. Наиболее распространенные типы величин - числовые (целые и вещественные), символьные и логические. Тип величины определяется ее значением.

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

<идентификатор>::=<буква> | <идентификатор> | <буква>

<идентификатор><цифра>

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

Summa, Time, i, j, integral, init и т. п.

Некоторые идентификаторы являются стандартными, например, Sin.

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

<имя переменной>::=<значение>

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

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

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

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

1.2 Этапы создания программ

Процесс создания программы можно разделить на следующие этапы:

1. Постановка задачи — определение цели задачи, ее содержание и общий подход к решению.

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

3. Разработка или выбор алгоритма решения задачи — выполняется на осно­ве ее математического описания.

4. Проектирование общей структуры программы — формирование модели решения с последующей детализацией и разбивка на подпрограммы, определение "архитектуры" программы, способ хранения информации

5. Кодирование — запись алгоритма на языке программирования. Для успешной реализации целей проекта программисту необходимо использовать методы структурного программирования.

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

ГЛАВА 2. РЕШЕНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ И РАБОТА С МАССИВАМИ

2.1 Решение циклических алгоритмов

Часто у нас возникает необходимость в повторении какой-либо последовательности действий определенное количество раз. К примеру, при составлении алгоритма приготовления земляничного варенья, где есть действие «положить одну ст. ложку сахара», мы сталкиваемся с необходимостью выполнения операции «положить одну ст. ложку сахара» 10 раз. Таким образом алгоритм принимает следующий вид:

положить в емкость одну ст. ложку сахара;

положить в емкость одну ст. ложку сахара;

положить в емкость одну ст. ложку сахара;

положить в емкость одну ст. ложку сахара;

положить в емкость одну ст. ложку сахара;

положить в емкость одну ст. ложку сахара;

положить в емкость одну ст. ложку сахара;

положить в емкость одну ст. ложку сахара;

положить в емкость одну ст. ложку сахара;

положить в емкость одну ст. ложку сахара;

Реализуя такую запись, мы тратим много личного времени и памяти программы. Чтобы это предотвратить, следует сократить алгоритм, применив циклы, после чего он будет выглядеть следующим образом:

В кастрюле 0 ст. ложек сахара

Добавить в кастрюлю одну ст. ложку сахара

В случае, если в кастрюле ложек сахара меньше 10, то применяем п. 2

Схематично данный алгоритм показан на рисунке 1.

Рис. 1 — Схема алгоритма

Различие циклов заключается в том, известно ли нам количество повторений, в том случае, если известно, тогда такой цикл будет арифметическим, а если нет, то перед нами предстанет итерационный цикл. Последние, в свою очередь в языке Паскаль делятся на два вида алгоритмических циклов: первый, это конструкция while-do (цикл с предусловием); а второй, это repeat-until (цикл с постусловием). Рассмотрим эти виды более подробнее.

Рис. 2 — Циклический алгоритм.

Циклический (итеративный) алгоритм имеет следующий синтаксис:

for <счетчик>:=<начальное значение> to <конечное значение> do <оператор>;

for <счетчик цикла>:=<начальное значение> downto <конечное значение> do <оператор>;

Цикл будет исполняться до тех пор, пока показатель счетчика не выйдет за заданный диапазон. Каждая итерация цикла увеличивает показатель счетчика на единицу (to) или уменьшает на единицу (downto). Можно использовать значение счетчика, например, для расчетов осуществляемых внутри цикла. Когда последнее значение вышло за пределы счетчика цикла, его сохранения не происходит. Цикл прекращает свое действие тогда, когда на очередной итерации, показатель счетчика вышел за установленные пределы значений цикла. Также при указании в начальном значении индекса большего, чем в конечном, такой цикл работать не будет.

Рис. 3 — Итеративный цикл

Синтаксис итеративного (цикла с предусловием) имеет такой вид:

repeat

<операторы>

until (условие);

Цикл будет исполняется до тех пор, пока условие является ложным (false). Как только условие примет значение истина (true), выполнение цикла будет прервано. Если условие является истинным изначально, тогда цикл выполнится один раз. Следует обратить внимание на то, что конструкция repeat-until выполняет роль операторных скобок, что позволяет размещать внутри нее более одного оператора.

Рис. 4 — Цикл с постусловием

Операторы break и continue вызываются внутри циклов. Break выполняет прерывание выполнения цикла и затем передает управление следующему после цикла оператору. Continue осуществляет прерывание текущей итерации цикла, после чего передает управление следующей итерации цикла (repeat-until), или условию, предшествующему этой итерации (for, while-do). Следует отметить, что при использовании оператора break, для выхода из цикла for, счетчик цикла не портится.

Рис. 5 — Цикл с оператором break Рис. 6 — Цикл с оператором continue

Когда требуется выполнение одного цикла внутри другого, понадобится конструкция с вложенными циклами (см. рисунок 7). Допускается вложение любых типов циклов и любое их количество друг в друге.

Рис. 7 — Вложенные циклы

Рассмотрев блок-схемы и основные принципы циклических алгоритмов, переходим к созданию программ с их применением.

Ниже представлен пример цикла на языке C:

while(условие){ оператор;}

...продолжение...

или

while(условие){

операторы; ... }

...продолжение...

Пример цикла:

int x;

x = 10;

While (x > 0) { Printf ("x=%d\n", x);

x = x - 1;} printf("Конец.\n");

printf("x стало равно %d.\n", x);/* печатает 0 */

Цикл for ("для каждого") Этот цикл является просто иной записью одного из вариантов цикла while. Он служит обычно для выполнения определенного действия несколько раз, не "пока истинно условие", а "выполнить N-раз". У такого цикла есть "переменная цикла" или "счетчик повторений".

int i;

i = a; /* начальная инициализация */

while(i < b){ тело_цикла;

i += c; /* увеличение счетчика */}

...продолжение...

переписывается в виде

int i;for(i=a; i < b; i += c) тело_цикла;

Тело_цикла будет выполнено для значений i

a

a+c

a+c+c

...

пока i < b

В простейшем случае:

for(i=1; i <= N; i++)

Printf ("i=%d\n", i)

i означает "номер повторения".

Цикл на языке С++

Вычислим сумму всех целых чисел от 0 до 100. Для этого воспользуемся оператором цикла for:

int sum = 0;

int i;

for (i = 1; i <= 100; i = i + 1)

sum = sum + i; //

Циклы в языке Java

Основной оператор цикла в языке Java— оператор while — выглядит так:

while (логВыр) оператор

Циклические алгоритмы в различных языках программирования высокого уровня мы рассмотрели, теперь попробуем записать алгоритм используя цикл while-do в программу — интерпретатор программного кода Borland Turbo Pascal.

Для организации ввода чисел нам понадобится переменная. Объявляем ее, и добавляем в окно программы следующую строку:

var e:integer;

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

m:integer;

В нашем случае цикл while-do требует счетчик. Прописываем новую переменную count. Как можно заметить, всем переменным присваивается тип данных — integer. Данный тип данных является целочисленным и служит для представления целых чисел.

count:integer;

Теперь проинициализируем счетчик. Для этого в программе прописываем:

count:=1;

Результат записанных строк можно наблюдать на рисунке 8.

Рис. 8 — Введение счетчика в программу.

Создадим переменную, отвечающую за произведение чисел. Пропишем:

m:=1;

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

Для организации цикла while-do вписываем в программу строку:

while count<11 do

Такое значение в качестве граничного результата выбрано для того, чтобы при невыполнении условия цикл больше не выполнялся. Нам нужно, чтобы цикл прекращал выполнение после 10-й итерации.

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

begin

и окончание циклической составляющей:

end;

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

Чтобы показать пользователю в программе, какие конкретно данные она требует для ввода с клавиатуры, прописываем новую строку:

write('Введите ',count,'-ое значение:');

Результат заданных строк мы видим на рисунке 9.

Рис. 9 — Ввод данных с клавиатуры

Запросим переменную с клавиатуры. Для чего пропишем:

readln(a);

Далее, увеличиваем счетчик на 1:

count:=count+1;

Добавляем полученное значение к произведению:

m:=m*a;

Организуем вывод на экран строки с результатом. Прописываем:

writeln('Произведение введенных чисел равняется: ',m);

Проверим действие программы, выбрав пункт меню «Run» (либо ctrl+f9).

Текст программы и ее запуск представлен на рисунке 10

Рис. 10 — Запуск программы

Запускаем программу и вводим любые числа входящие в диапазон от 1 до 5.

Рис. 11 — Результат выданный программой

Теперь попробуем создать алгоритм с вложенным циклом применив цикл for-to. Для этого запросим с клавиатуры 10 чисел и найдем их среднее арифметическое значение.

Для организации цикла for-to необходимо объявить переменную-счетчик. Объявляем переменную прописав:

var count:integer;

Для запроса целочисленных данных от пользователя нужна переменная типа integer. Для этого сопоставляем переменную «a» c нужным типом:

a:integer;

Создадим новую переменную в которой будут суммироваться данные, вводимые пользователем.

sum:integer;

Переменная, отвечающая за суммирование, должна быть проинициализирована перед использованием, поэтому в качестве значения переменной устанавливаем - 0:

sum:=0;

Рис. 12 — Ввод элемента для суммирования

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

for count:=1 to 10 do

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

begin

и

end;

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

readln(a);

В результате наш алгоритм выглядит таким образом, см. рисунок 13.

Рис. 13 — Ввод нового значениями

Прописываем новую строку, которая будет объяснять пользователю, что конкретно необходимо ввести с клавиатуры на запрос программы:

write (‘Введите ‘, count, ‘-тое значение:’);

Не забываем, что в каждой итерации цикла нужно прибавить новое значение к сумме:

sum:=sum+a;

Теперь осталось вывести результат на экран, прописываем:

writeln (‘Ср. арифметическое = ’, sum/10);

Запускаем как обычно пунктом меню «Run» либо нажатием комбинации клавиш ctrl+f9. Ниже представлен текст полной программы.

Рис. 14 — Полный текст программы

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

На рисунке ниже представлен результат нахождения среднего арифметического значения на основе введенных пользователем числовых данных. Отметим, что сумму среднего арифметического мы находили путем суммирования всех полученных значений и поделив на их количество (10) .

Рис. 15 — Результат нахождения среднего арифметического.

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

2.2 Работа с массивами

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

Такой набор, имеющий общее для всех своих элементов имя, и называется массивом. Тип «Массив» является представителем группы структурных типов Паскаля.

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

Пример динамического массива на С:

byteArray : Array of Byte

multiArray : Array of Array of string

Пример динамического массива на С++:

float *array1;

int **array2;

array1 = new float[10];

array2 = new int*[16];

for(int i = 0; i < 16; ++i)

array2[i] = new int[8];

delete []array1;

for(int i = 0; i < 16; ++i)

delete []array2[i];

delete []array2;

Гетерогенным называется массив, в разные элементы которого могут быть непосредственно записаны значения, относящиеся к различным типам данных. Массив, хранящий указатели на значения различных типов, не является гетерогенным, так как собственно хранящиеся в массиве данные относятся к единственному типу — типу «указатель». Гетерогенные массивы удобны как универсальная структура для хранения наборов данных произвольных типов

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

К достоинству статистического массива относится: лёгкость вычисления адреса элемента по его индексу, для динамического массива одинаковое время доступа ко всем элементам, для гетерогенного массива небольшой размер элементов: они состоят только из информационного поля

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

program n3-massive;

begin

end.

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

var a:array[1..10] of integer;

Довольно часто обработка массива производится при помощи цикла for. Для использование данного цикла определяем переменную выступающую в роли счетчика:

i:integer;

Ввод данных с клавиатуры будет осуществляться в цикле for. Добавляем его в код программы:

for i:=1 to 10 do

В теле цикла будет присутствовать составной оператор, поэтому вводим:

begin

end;

Рис. 16 — Составной оператор цикла

Выдаем запрос на ввод очередного элемента. Прописываем:

write (‘Введите’,i,’-ый элемент’);

Запросим i-ый элемент у пользователя. Прописываем:

readln(a[i]);

Для нахождения максимального значения создаем еще одну переменную:

max:integer;

Присваиваем переменной значение - 0:

max:=0;

Организуем цикл для поиска максимального значения. Производим перебор всех элементов массива.

for i:=1 to 10

begin

end;

Рис. 17 — Цикл для поиска максимального значения.

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

if (a[i]>max) then max:=a[i];

Организуем вывод результата работы программы:

write (‘максимальное значение в массиве:’, max);

Рис. 18 — Полная программа выполняющая поиск максимального значения

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

Рис. 19 — Результат работы программы

Для поиска минимального значения создаем новую переменную — min:

min: integer

Затем меняем условие:

if (a[i]<max) then min:=a[i];

После чего код программы примет такой вид:

Рис. 20 — Поиск минимального значения

Далее напишем цикл обработки заданного значения, начиная с 2-го:

for i:=2 to 10

begin

end.

Организуем проверку пары соседних значений массива. Для этого добавляем в алгоритм программы условие с составным оператором:

if (a [i-1]>a[i]) then

begin

end;

Рис. 21 — Цикл с составным оператором

В случае, если условие выполняется, присваиваем переменной x наименьшее из двух значений. Прописываем:

x:=a[i];

Далее, присваиваем переменной j номер элемента, располагающийся перед рассматриваемым:

j:=i-1;

Прописываем цикл для перемещения блока значений, которые больше x:

while (j>0 and (a[j]>x) do

begin

end;

Рис. 22 — Перемещение блока значений

Передвигаем очередное значение вперед по массиву:

a[j+1]:=a[j];

Уменьшим j на 1 для движения к началу массива.

j:=j-1;

Перебрав весь блок со значениями больше x, записываем x в конце блока:

a[j+1]:=x;

Рис. 23 — Поиск значения, которое было бы больше x

Организуем цикл вывода упорядоченного массива в консоль. Для этого вводим следующие строки:

for i:=1 to 10 do

begin

end;

Теперь произведем вывод очередного элемента на экран:

writeln (I,’-ый элемент:’, a[i]);

Рис. 24 — Вывод данных на экран

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

Рис. 25 — Результат работы программы

К вопросу о методах сортировки массивов. Сортировка массива, это процесс расположения его элементов по возрастанию либо убыванию. Если не все элементы различны, то надо говорить о неубывающем (или невозрастающем) порядке. Всего в Паскале существует 3 вида сортировки, это — метод «пузырька», сортировка вставками, и сортировка посредством выбора.

Продемонстрируем метод «пузырька», как наиболее простой:

begin

for j:=1 to N-1 do

for I:=1 to N-j do

if M[i] > M[i+1] then

swap (M[i], M[i+1])

end;

Нужно отметить, что если массив N является глобальным, то процедура могла бы содержать только аргументы (а не результаты). Кроме того, учитывая специфику ее применения в данном алгоритме, можно свести число парметров к одному, а не двум.

ЗАКЛЮЧЕНИЕ

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

В ходе работы были рассмотрены циклы начиная с арифметического, заканчивая итерационным циклом, делимый в свою очередь делится на:

- цикл for (цикл «для» со счетчиком, в котором значения должны обладать порядковым типом, т.к. значение переменной цикла увеличивается или уменьшается на единицу при каждом его прохождении);

- цикл while-do (цикл «до» с предусловием, который выполняется до тех пор, пока выражение имеет истинное значение (true), но стоит выражению принять ложное значение (false), как произойдет переход к следующему оператору);

- цикл repeat-until (цикл с постусловием «пока» обладает противоположным циклу «до» действием, т.е. пока выражение ложное - тело цикла продолжается, но как только выражение становится истинным, цикл прекращается).

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

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

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

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

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

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

СПИСОК ЛИТЕРАТУРЫ

  1. С. Немнюгин — Turbo Pascal
  2. В. Фаронов — Turbo Pascal. Наиболее полное руководство
  3. Массивы в Турбо Паскаль: http://egeinf.gym5cheb.ru/p66aa1.html
  4. Массивы в Turbo Pascal. Решение задач на массивы: http://nsportal.ru/shkola/informatika-i-ikt/library/massivy-v-turbo-pascal-reshenie-zadach-na-massivy
  5. Рубенкинг Н.Дж. Турбо Паскаль для Windows: в 2-х томах
  6. О. Меженный — Самоучитель Turbo Pascal
  7. Р. Сулейманов - Методика решения учебных задач средствами

программирования. Методическое пособие.

  1. Н. Культин — Турбо Паскаль в задачах и примерах
  2. С. Трофимов - Программирование на языке высокого уровня:

Рабочая программа дисциплины

  1. Ю. Федоренко — Алгоритмы и программы на Turbo Pascal
  2. Е. Шумова - Программирование на языке высокого уровня:

Методические указания к курсовой работе

  1. В. Потопахин — Турбо Паскаль. Решение сложных задач
  2. А. Пахомова - Методическое пособие «Программирование на языке Turbo Pascal»
  3. С. Окулов — Программирование в алгоритмах
  4. Учебник Turbo Pascal 7.0: http://pascal.guti.ru/fornext.html
  5. Ф. Меньшиков — Олимпиадные задачи по программированию
  6. Программирование. Динамические списки Pascal:http://www.pascal.helpov.net/index/dynamic_lists_pascal_programming
  7. Исходный текст программ на Паскаль: http://www.pascal-c.ru/ishod_pascal.php
  8. Стандарт оформления кода: ru.wikipedia.org/wiki/Стандарт_оформления_кода
  9. 10 правил написания чистого кода: http://ruseller.com/lessons.php?rub=28&id=1063
  10. Работа с массивами в Pascal:http://ed.tusur.ru/lit/edu/informatica/Lections_part2.pdf
  11. Я. Гордон — Тонкости программирования на языке Паскаль
  12. Методы сортировки массивов:http://www.vzmakh.ru/info/pascal/modules/page14.html
  13. Borland Pascal – Руководство пользователя:citforum.ru/programming/bp70_ug/index.shtml
  14. Обучение. Учебник по Паскалю: pers.narod.ru/study/pascal.html