Лабораторная работа № 4.
Среда программирования. Тестирование готовой программы. Программная реализация несложного алгоритма
Цель работы
Получение представления об алгоритме, свойствах алгоритма, среде программирования, исполнителе алгоритма. Научиться составлять простейшие блок-схемы и алгоритмы. Ознакомиться с языком TurboPascal.
Теоретическая справка
Cреды программирования(или как их еще называют, среды разработки) - это программы, в которых программисты пишут свои программы. Иными словами, среда программирования служит для разработки (написания) программ и обычно ориентируется на конкретный язык или несколько языков программирования.
Программа - это реализация алгоритма на конкретном языке программирования. Совокупность существующих программ образует программное обеспечение (ПО). ПО принято делить на 2 вида: системное и прикладное.
Язык программ и рования - это формальная знаковая система, используемая для связи человека с компьютером, предназначена для описания данных (информации) и алгоритмов (программ) их обработки на вычислительной машине.
Одним из наиболее популярных языков программирования является алгоритмический язык Паскаль. Первая версия языка программирования Паскаль была разработана на кафедре информатики Стэнфордского университета швейцарским ученым Никлаусом Виртом в 1968 году, и названа в честь французского ученого Блеза Паскаля. Прошло много времени с момента появления Паскаля на рынке программных продуктов, прежде чем он получил всеобщее признание вследствие разработки языка программирования Турбо Паскаль (ТП) – диалекта языка, созданного американской фирмой Борланд. В лингвистической концепции Паскаля пропагандируется системный подход, выражающийся, в частности, в расчленении крупных проблем на меньшие по сложности и размеру задачи, легче поддающиеся решению
Основы языка TurboPascal
Переменными называют величины, значения которых могут изменяться в процессе выполнения программы. Каждая переменная задается своим уникальным именем, построенным по правилам. Максимально возможная длина имени зависит от реализации Паскаля, теоретически можно давать переменным имена вплоть до 63 символов длиной, что едва ли актуально - обычно имена не длиннее 5-10 символов (таблица 1).
Таблица 1 - Типы данных языка Pascal
Ключевое слово Паскаля | Название и описание типа | Объем памяти, байт | Диапазон возможных значений |
boolean | Логический: хранит одну логическую переменную | 1 | true и false |
char | Символьный: хранит код одного символа из набора ASCII-кодов | 1 | от 0 до 255 включительно (28=256) |
integer | Целочисленный | 2 | ±215 |
word | Целочисленный без знака | 2 | ±216 - диапазон вдвое больше, так как 16-й бит не занят под знак числа |
longint | Длинное целое: для представления больших целочисленных значений | 4 | ±231 |
real | Вещественное число с точностью представления до 11-12 знака в дробной части | 6 | ~ 2.9*10-39 - 1.7*1038 |
Продолжение таблицы 1 - Типы данных языка Pascal
double | Вещественное число с точностью представления до 15-16 знака в дробной части | 8 | ~ 5*10-324 – 1.7*10308 |
string | Последовательность символов типа char длиной от 1 до 255 | 2-256 | Любые строки текста, состоящие из печатаемых символов |
Арифметические выражения (АВ) строятся из операндов, которыми могут быть константы, переменные и стандартные функции. В АВ также входят арифметические операции и круглые скобки. В языке Паскаль определено 6 арифметических операций, перечислим их в соответствии с приоритетом (таблица 2).
Таблица 2- Арифметические операции языка Паскаль
Приоритет | Знак операции | Описание операции |
1 | * | умножение |
/ | деление | |
div | деление 2 целых значений с отбрасыванием остатка | |
mod | взятие остатка от деления 2 целых значений | |
2 | + | сложение |
- | вычитание |
Операции div и mod определены только для целочисленных операндов. Приведём пример их использования:
Vary, c, n: integer;
…
y:=2009;
c:=y div 100;
n:= y mod 100;
Здесь переменная с получит значение 20, а n – значение 9.
Стандартные функции (таблица 3) служат для выполнения элементарных математических расчетов, часто требуемых при написании программ. Разработчики Паскаля стремились сделать его программное ядро максимально компактным, поэтому в него не вошло ряд функций, имеющихся в других языках, таких как вычисление максимума и минимума, возведение числа в произвольную степень. Физически коды стандартных функций хранятся в стандартной библиотеке Паскаля – файле с именем turbo.tpl. Все функции оформляются одинаково: после имени функции следует ее аргумент, заключённый в круглые скобки. Если аргументов несколько, они разделяются запятыми.
Таблица 3 – Стандартные функции языка Паскаль
Математическая запись | Запись на Паскале | Пояснение | Тип аргумента и результата |
| x | | abs(x) | Модуль аргумента x | Integer (I) или Real (R) |
x 2 | sqr(x) | Квадрат аргумента x | аргумент – I или R, результат – r |
sin x cos x arctg x | sin(x) cos(x) arctan(x) | Остальные тригонометрические функции выражаются через эти | аргумент – I или R, результат – R |
ex ln x | exp(x) ln(x) | Экспонента и натуральный логарифм | аргумент – I или R, результат – R |
sqrt(x) | Квадратный корень от аргумента x | аргумент – I или R, результат – R | |
p | pi | Функция без аргументов, вернет число p | R |
trunc(x) | Функция отбрасывает дробную часть аргумента, аргумент не округляется | аргумент R, результат I | |
frac(x) | Функция выделяет дробную часть своего аргумента | R | |
round(x) | Округление вещественного числа до ближайшего целого | аргумент R, результат I |
Оператор присваивания используется для сохранения результата вычисления арифметического выражения в переменной. Он имеет следующий общий вид:
переменная:= выражение;
Знак «: =» читается как «присвоить»
Оператор присваивания работает следующим образом: сначала вычисляется выражение, стоящее справа от знака:=, затем результат записывается в переменную, стоящую слева от знак. Например, после выполнения оператора
k:=k+2
текущее значение переменной k увеличивается на 2.
Базовый оператор ввода позволяет пользователю ввести с клавиатуры значения одной или нескольких переменных.
Оператор ввода с клавиатуры может быть записан в одной из следующих форм:
read(список_переменных);
readln(список_переменных).
Имена переменных перечисляются через запятую
Оператор readln отличается от read только тем, что все переменные должны быть введены в одну строку экрана, клавиша Enter нажимается один раз по окончании ввода.
В качестве примера организуем ввод исходных данных для решения квадратного уравнения:
var a,b,c:real;
...
read (a,b,c);
Для задания значений a=1, b=4, c=2.5 на экране вводится:
1_4_2.5
Здесь и далее «_» означает пробел, а «» - нажатие Enter.
Базовая форма оператора вывода позволяет отобразить на экране значения переменных, АВ или констант, а также строки текста в апострофах. Оператор записывается в одной из следующих форм:
write(список);
writeln(список);
writeln
Программа на Паскале не просто состоит из операторов – порядок следования этих операторов не случаен и образует определённую структуру.
В качестве примера приведем законченную программу на Паскале, вычисляющую вещественные корни произвольного квадратного уравнения.
program Equation;
var a,b,c,d,x1,x2:real;
begin
writeln;
writeln ('Введитекоэффициентыa,b,c:');
read (a,b,c);
d:=sqr(b)-4*a*c;
if d<0 then
writeln('Reshenii net')
else
if d=0 then
writeln('x=',-b/(2*a):2:3)
else
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln ('Корниуравнения');
writeln (x1:10:2,x2:10:2);
readln; readln;
end;
end.
Ходработы
1) Изучить задачу своего варианта. Составить блок-схему по заданной задаче.
2) Составить алгоритм на языке программирования для заданной задачи.
3) Проверить верность заданной задачи на ПК в среде TurboPascal.
4) Оформить отчёт письменно.
Вариант 1
Составить алгоритм определения периметра треугольника, заданного координатами (х1;у1),(х2;у2);(х3;у3) своих вершин.
Вариант 2
Составить алгоритм определения площади треугольника по длинам его сторон.
Технология выполнения работы
Вариант 1
При заданных длинах сторон треугольника вычисление его периметра осуществляется по формуле р=а+ b+ c, где а, b, c- длины сторон треугольника. Для определения значений а, b, c воспользуемся формулой для вычисления длины отрезка:
Для записи алгоритма решения сначала введём обозначения величин, которые встречаются в условиях задачи:
1 | х1 | х1 |
2 | х2 | х2 |
3 | х3 | х3 |
4 | у1 | у1 |
5 | у2 | у2 |
6 | у3 | у3 |
7 | а | storona1 |
8 | b | storona2 |
9 | с | storona3 |
10 | р | perimetr |
11 | Sqrt() |
Вариант 2
При заданных длинах сторон треугольника вычисление его площади осуществляется по формуле:
Здесь где а, b, c- длины сторон треугольника, р – полупериметр.
Для записи алгоритма решения сначала введём обозначения величин, которые встречаются в условиях задачи:
1 | а | storona1 |
2 | b | storona2 |
3 | c | storona3 |
4 | p | poluperimetr |
5 | s | square |
Контрольныевопросы
1) Дайте определение алгоритму.
2) Перечислите свойства алгоритма.
3) Что такое среда программирования?
4) Какие языки программирования вы знаете?
5) Как записываются переменные, операторы, функции в среде TurboPascal?