- •Основы алгоритмизации и программирования
- •Часть 1
- •Содержание
- •Введение. Цель лабораторного практикума
- •1. Лабораторная работа №1. Простейшие программы
- •1.1. Основные конструкции языка программирования Pascal.
- •1.2. Пример составления программы
- •1.3. Варианты заданий на лабораторную работу №1
- •2. Лабораторная работа №2. Разветвляюшиеся вычислительные процессы
- •2.1. Вычислительные процессы с разветвляющейся структурой
- •2.2. Варианты заданий на лабораторную работу №2
- •3. Лабораторная работа №3. Табулирование функции
- •3.1. Вычислительные процессы с циклами
- •3.2. Варианты заданий на лабораторную работу №3
- •4. Лабораторная работа №4. Обработка одномерного массива
- •4.1. Обработка одномерных массивов
- •4.2. Варианты заданий на лабораторную работу №4
- •5. Лабораторная работа №5. Обработка двумерных массивов
- •5.1. Варианты заданий на лабораторную работу №5
- •6. Лабораторная работа №6. Подпрограммы
- •6.1. Разработка вычислительных процессов сложной структуры
- •6.2. Варианты заданий на лабораторную работу №6
- •7. Лабораторная работа №7. Решение нелинейных алгебраических уравнений
- •7.1. Методы решения нелинейных уравнений
- •7.2. Варианты заданий на лабораторную работу №7
- •8. Рекомендации по выполнению лабораторных работ
- •9. Рекомендации по выполнению контрольной работы
- •Рекомендуемая литература
Введение. Цель лабораторного практикума
Алгоритм можно определить как систему предписаний, предназначенную некоторому исполнителю для решения им определенного класса задач.
С алгоритмами человек сталкивается довольно часто, начиная от задач математики и заканчивая рецептами в поваренной книге.
Алгоритмы обладают следующими свойствами:
Определенностью (конкретностью) – алгоритм должен быть изложен так, чтобы он был понятен исполнителю и не ставил его в тупик своими предписаниями;
Массовостью – система предписаний может быть выполнена любым исполнителем их понимающим;
Конечностью (результативностью) – он должен гарантированно приводить к решению поставленной задачи.
Так как исполнителем может быть как человек, так и техническое устройство, например компьютер, то для описания алгоритмов существуют различные способы. Самым распространенным является неформальное описание, например, на любом человеческом языке. К сожалению, инструкции на естественных языках могут обладать существенной неоднозначностью. Например, в рецепте из поваренной книги сказано: «Добавьте щепотку соли», но щепотка у разных людей разная. Или, «Закрутите гайку, но сильно не затягивайте», и т.п.
Поэтому, когда мы имеем дело с техническими устройствами, то инструкции для них составляют на искусственных языках (языках программирования), которые можно считать формальным способом представления алгоритмов.
Могут быть использованы и промежуточные полуформальные формы представления алгоритмов, например, язык блок-схем алгоритмов.
Цель данного цикла лабораторных работ и контрольной работы – привить студентам навыки алгоритмического подхода к изложению их виденья решения той или иной задачи, при этом изложение может быть ориентировано как на людей, так и на технические устройства. В первом случае надо уметь четко, последовательно, граммотно изложить предлагаемый вариант решения, во втором – правильно записать программу решения на одном из многочисленных языков программирования.
1. Лабораторная работа №1. Простейшие программы
Цель работы. Ознакомить с методами подготовки и отладки простейших программ в среде Turbo-Pascal.
1.1. Основные конструкции языка программирования Pascal.
Алфавит:
буквы английского алфавита, при этом прописные и строчные не различаются;
арабские цифры 0-9;
специальные символы: однознаковые (+,-,!,№,;.%,.,*,/,’ и др.), многознаковые(:= знак присвоить, {} обрамление комментария, [ ] указание элемнтов массива и др.);
зарезирвированные слова: do, if, begin, end, var и др.
Константы – это величины, значения которых не меняются. Могут быть:
числовые: целые (-4, 567, 0) и вещественные (5.6, -0.089). Вещественные могут быть записаны в полулогарифмическом масштабе, например, -0.56Е2, что означает -0.56*102 или -56; 0.9Е-3 – это 0.0009.
логические: True (истина), False(ложь);
строковые: любые символы алфавита, заключенные в апострофы.
Переменные – это объекты, которые могут принимать произвольное значение из некоторого множества значений.
Переменная имеет имя (идентификатор) – последовательность букв или цифр, начинающаяся с буквы или с символа нижнего подчеркивания (_).
Переменные имеют тип. Типы делятся на простые и структурированные.
Простые: целый (integer); вещественный(real); строковый(string) и др.
Структурированные: массив (array); файл(text, file) и др.
Стандартные функции: sin(x), cos(x), ln(x), sqrt(x) – корень квадратный из x, sqr(x) – квадрат x, exp(x), abs(x) – модуль x и др.
Операции:
арифметические: +(сложение), - (вычитание), *(умножение), /(деление), div (целочисленное деление), mod (остаток от деления), например, 5 div 2 даст 2, а 5mod 2 даст 1.
отношений: < (меньше), >(больше), <=(меньше равно), >= (больше равно), = (равно), <> (не равно);
логические: AND (логическое И), OR (логическое ИЛИ), NOT (логическое НЕ).
Выражения. Из констант, переменных, стандартных функций и знаков операций можно составлять выражения. Например, дробь
на Pascal
будет записана так:
sqrt(abs(-3*a+4*c))/(ln(x)+5*a*a)
Пример логического выражения: (a>6) and (b<9)
Для изменения порядка выполнения операций широко используют круглые скобки.
Структура программы. Любая программа на Pascal должна иметь определенную структуру. Программа состоит из 6 разаделов (правда, не все они являются обязательными):
1. Заголовок программы – включает служебное слово program, после которого следует имя и точка с запятой. Например,
program z1;
2. Раздел меток. Метка – целое число без знака. Используются совместно соператором goto. Например,
Label 1,2;
3. Раздел объявления типов. Пользователь имеет возможность использовать собственные типы данных помимо стандартных, например:
Type mas=array[1..10] of integer;
4. Раздел объявления переменных. Все используемые в программе переменные должны быть обязательно объявлены. Синтаксис объявления:
var <список имен>:<тип>;
Например: var a,b,c:real; var i: integer;
5. Раздел объявления процедур и функций. См. лабораторную работу №6.
6. Тело программы. Программа начинается словом begin и заканчивается словом end с точкой.
Простые операторы. Программа состоит из операторов. Простейшие из них:
1. Оператор присваивания. Его синтаксис
<имя>:=<выражение>;
Например:
x:=y;
i:=i+1;
z:=sqrt(abs(x-y));
2. Оператор безусловного перехода. Его синтаксис:
goto <метка>;
Метка должна быть описана в разделе меток и проставлена перед любым оператором в программе через двоеточие.
3. Операторы ввода-вывода
В Pascal существуют две стандартные переменные: INPUT, которая связана с клавиатурой, и OUTPUT, которая связана с монитором.
Для работы с ними используются стандартные процедуры:
Read, Readln, Write, Writeln.
Пример ввода данных:
var a,b,c:real;
begin
readln(a,b); read(c);
end.
Отличия в работе read и readln есть, но в простейших случаях они несущественны.
Пример вывода данных: write(a,b);
Переменные a и b будут выведены в одну строку, и курсор останется на ней же. Чтобы курсор автоматически переходил на новую строку, надо использовать Writeln.
Элементы языка блок – схем алгоритмов (БСА). Язык БСА, являясь полуформальным способом представления алгоритмов, служит промежуточной стадией разработки программ. С его помощью удобно выразить основные моменты алгоритма, а затем уже написать программу на том или ином языке программирования.
Элементами языка являются геометрические фигуры. Так для разобранных выше операторов используют прямоугольник для записи оператора присваивания и параллелограмм для записи операторов ввода-вывода.
Например.
Для вывода часто используют блок
Другие блоки рассмотрим в последующих работах.
