Технология выполнения работы
1. В соответствии с вариантом произвести перевод чисел:
А) из десятичной СС в двоичную СС;
Б) из двоичной СС в десятичную СС;
Вариант №1
А) 34, 56,78, 34, 67, 32, 98
Б) 001001110, 001100, 00110, 11101010, 1110111
Вариант №2
А) 24, 29, 80, 30, 61, 63,100
Б) 11001010101, 000011001, 1111110, 110110, 0011111
Вариант №3
А) 21, 65, 32, 29, 41, 21, 13
Б) 001010, 00010101010, 0010, 1110101, 1010001
Вариант №4
А) 15, 46, 45, 19, 48, 46, 20
Б) 00010101, 110101110, 11100001, 101011, 1110
Вариант №5
А) 11, 13, 26, 35, 42, 51, 64
Б) 0001011001, 010111, 0101110, 1010111,1110010
Вариант №6
А) 17, 6, 43, 61, 83, 97, 102
Б) 010101101, 11011011, 110101111111, 1101, 110110
Вариант №7
А) 11, 21, 31, 41, 51, 61, 71
Б) 111101, 110110111, 111101101, 101110, 11010
Вариант №8
А) 58, 46, 16, 27, 98, 9, 81
Б) 0001, 110011001, 0001110, 111000001, 111110
Вариант №9
А) 45, 25, 75, 46, 19, 89, 72
Б) 110111, 111010, 11010111, 110111, 110110110
Вариант №10
А) 74, 36, 25, 41, 20, 30, 50
Б) 11010110, 110111; 111011011; 1101; 001
2. В соответствии с вариантом произведите арифметические действия над числами в двоичной СС.
Вариант №1
0011+010; 00101-00100; 1101*001;100/10
Вариант №2
00111-110; 1010+11111; 1010101*101; 1101/11
Вариант №3
1101+110010; 111-010; 1101*10; 1111/111
Вариант №4
1101-1001; 0010101+1010; 00111*11; 1101/10
Вариант №5
10010+10101; 111-01; 010*01; 11101/111
Вариант №6
1101+1101; 11011-1101; 1101/11; 1011*100
Вариант №7
11010+11010; 1101101-1101; 111110*110; 1110/11
Вариант №8
110+1101; 110011-110; 1110*11; 110/10
Вариант №9
11100+1101; 1010+101010; 11011-1101; 11110/11
Вариант №10
110111+1101101; 0011-00111; 00111*11; 1111/10
3. Для того чтобы произведите проверку выполненной работы, необходимо выбрать Пуск\Все программы\Стандартные\Калькулятор. Выберите тип калькулятора Вид\Инженерный. Например, для перевода десятичного числа 120 в двоичное, с клавиатуры или используя кнопки калькулятора наберите число 120. Убедитесь, что вы набираете число в двоичной системе (активна опция Dec). Выберите опцию Bin вы получите результат 1111000. Произведя обратные действия можно перевести двоичное число в десятичное. При выполнении арифметических действий необходимо пользоваться знаками арифметических действий и знаком равенства.
Контрольные вопросы
1. Что такое система счисления?
2. На какие виды делятся системы счисления?
3. Опишите алгоритм перевода числе из десятичной системы счисления в двоичную и обратно?
4. Как производятся арифметические действия в двоичной системе счисления?
5. Для чего предназначено приложение Калькулятор? Какие расчеты можно производить в приложении Калькулятор?
6. Какие кнопки используются для выполнения арифметических действий?
7. Для чего предназначены кнопки Backspace, СЕ, С?
Содержание отчета
1) Тема;
2) Цель работы;
3) Отчет о выполненной работе.
Лабораторная работа 4. Среда программирования. Тестирование готовой программы. Программная реализация несложного алгоритма.
Цель работы
Получение представления об алгоритме, свойствах алгоритма, среде программирования, исполнителе алгоритма. Научиться составлять простейшие блок-схемы и алгоритмы. Ознакомиться с языком Turbo Pascal.
Теоретическая справка
Алгоритм - это строгая система правил или инструкций для исполнителя, определяющая некоторую последовательность действий, которая после конечного числа шагов приводит к достижению искомого результата.
Каждое действие в записи алгоритма называется командой. Исполнитель алгоритма - это абстрактная или реальная система, способная выполнить действия, предписываемые алгоритмом.
Основные свойства алгоритмов:
1. Понятность - исполнителю алгоритма должна быть известна система команд исполнителя;
2. Дискретность – алгоритм должен представлять процесс решения задачи как последовательное выполнение простых команд;
3. Определённость – каждое правило алгоритма должно быть чётким и однозначным;
4. Результативность состоит в том, что алгоритм должен приводить к решению задачи за конечное число шагов;
5. Массовость означает, что алгоритм решения задачи разрабатывается в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся исходными данными.
Алгоритм может быть записан словами и изображён схематически. Обычно сначала (на уровне идеи) алгоритм описывается словами, но по мере приближения к реализации он обретает всё более формальные очертания и формулировку на языке, понятном исполнителю. Например, для описания алгоритма применяются блок-схемы. Блок-схема — распространенный тип схем, описывающих алгоритмы или процессы, в которых отдельные шаги изображаются в виде блоков различной формы, соединенных между собой линиями.(рис 3)
Рисунок 3 – Элементы блок схемы
Прямоугольник - любая последовательность действий; внутри прямоугольника записываются формулы или словесное описание выполняемых действий;
Ромб - блок проверки условия; так как любое условие может быть только истинно или ложно, у блока 1 вход и 2 выхода, соответствующие действиям, выполняемым в случаях, когда условие истинно и когда оно ложно. Выходы подписывают символами "+" и "-", "да" и "нет", "1" и "0" .
Параллелограмм - блок ввода исходных данных. Внутри фигуры обычно пишется, какие именно данные должны быть введены;
Лист с разрывом - блок вывода данных. Внутри блока указывается, какие данные или сообщения программа выводит для представления пользователю.
Закругленные прямоугольники - необязательные блоки начала и конца программы, внутри блоков обычно указываются ключевые слова "нач" и "кон" соответственно;
Последняя фигураслужит для изображения циклов, как правило, у нее 2 входа (первый и повторный вход в цикл) и 1 выход, соответствующий завершению циклического процесса.
На рис. 4 приведен пример блок-схемы, иллюстрирующей известный процесс решения квадратного уравнения.
Рисунок 4 –- Блок-схема – решение квадратного уравнения
Язык блок-схем довольно громоздок, как правило, он не применяется профессионалами, однако, на начальном этапе обучения программированию планирование несложных программ в виде блок-схем может оказаться весьма полезным.
Текстоваяформа записи алгоритма (псевдокод) характерна тем, что шаги алгоритма и последовательность их выполнения задаются с помощью набора специальных ключевых слов. Эта форма ближе к реальным языкам программирования. Существует много различных вариантов псевдокода, например, в русскоязычной литературе по программированию распространен следующий вариант псевдокода:
· нач - начало программы;
· кон - конец программы;
· если ... то ...иначе - проверка условия;
· ввод - ввод данных;
· вывод - вывод данных;
· для ... от .. до ... нц ... кц - цикл со счетчиком (нц - начало цикла, кц - конец);
· пока ... нц ...кц - цикл с предусловием;
· нц ... кц ... пока - цикл с постусловием.
Cреды программирования(или как их еще называют, среды разработки) - это программы, в которых программисты пишут свои программы. Иными словами, среда программирования служит для разработки (написания) программ и обычно ориентируется на конкретный язык или несколько языков программирования.
Программа - это реализация алгоритма на конкретном языке программирования. Совокупность существующих программ образует программное обеспечение (ПО). ПО принято делить на 2 вида.
Системное ПО обеспечивает работу компьютера и внешних устройств, а также поддержку прикладных программ. Примерами системного ПО могут служить операционная система Windows (или любая другая), драйверы внешних устройств компьютера, утилиты для его технического обслуживания, системы программирования, применяемые для разработки собственных приложений.
Прикладное ПО предназначено для решения конкретных задач пользователя. Оно разрабатывается на языках высокого уровня, облегчающих процесс программирования за счет множества готовых решений. К одному из таких языков относится и Паскаль, который мы будем изучать.
Основы языка Turbo Pascal
Переменными называют величины, значения которых могут изменяться в процессе выполнения программы. Каждая переменная задается своим уникальным именем, построенным по правилам, указанным в начале главы. Максимально возможная длина имени зависит от реализации Паскаля, теоретически можно давать переменным имена вплоть до 63 символов длиной, что едва ли актуально - обычно имена не длиннее 5-10 символов (таблица 1).
Таблица 1 - Типы данных
Ключевое слово Паскаля | Название и описание типа | Объем памяти, байт | Диапазон возможных значений |
boolean | Логический: хранит одну логическую переменную | true и false | |
char | Символьный: хранит код одного символа из набора ASCII-кодов | от 0 до 255 включительно (28=256) | |
integer | Целочисленный | ±215 | |
word | Целочисленный без знака | ±216 - диапазон вдвое больше, так как 16-й бит не занят под знак числа | |
longint | Длинное целое: для представления больших целочисленных значений | ±231 | |
real | Вещественное число с точностью представления до 11-12 знака в дробной части | ~ 2.9*10-39 - 1.7*1038 | |
double | Вещественное число с точностью представления до 15-16 знака в дробной части | ~ 5*10-324 – 1.7*10308 | |
string | Последовательность символов типа char длиной от 1 до 255 | 2-256 (данные строки + 1 байт для хранения ее длины) | Любые строки текста, состоящие из печатаемых символов |
Арифметические выражения (АВ) строятся из операндов, которыми могут быть константы, переменные и стандартные функции. В АВ также входят арифметические операции и круглые скобки. В языке Паскаль определено 6 арифметических операций, перечислим их в соответствии с приоритетом, то есть, старшинством( таблица 2).
Таблица 2- Арифметические операции языка Паскаль
Приоритет | Знак операции | Описание операции |
* | умножение | |
/ | деление | |
div | деление 2 целых значений с отбрасыванием остатка | |
mod | взятие остатка от деления 2 целых значений | |
+ | сложение | |
- | вычитание |
Операции div и mod определены только для целочисленных операндов. Приведём пример их использования:
Var y, c, n: integer;
…
y:=2009;
c:=y div 100;
n:= y mod 100;
Здесь переменная с получит значение 20, а n – значение 9.
Стандартные функции служат для выполнения элементарных математических расчетов, часто требуемых при написании программ. Разработчики Паскаля стремились сделать его программное ядро максимально компактным, поэтому в него не вошло ряд функций, имеющихся в других языках, таких как вычисление максимума и минимума, возведение числа в произвольную степень. Физически коды стандартных функций хранятся в стандартной библиотеке Паскаля – файле с именем turbo.tpl. Все функции оформляются одинаково: после имени функции следует ее аргумент, заключённый в круглые скобки. Если аргументов несколько, они разделяются запятыми.
Таблица 3 – Стандартные функции языка Паскаль
Математическая запись | Запись на Паскале | Пояснение | Тип аргумента и результата |
|x| | abs(x) | Модуль аргумента x | Integer (I) или Real (R) |
x2 | 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(список);
Элементы списка перечисляются через запятую.
Программа на Паскале не просто состоит из операторов – порядок следования этих операторов не случаен и образует определённую структуру.
Таблица 4 - Структура простой программы на Паскале
Название раздела | Операторы раздела |
Заголовок программы (необязателен) | program ИмяПрограммы; |
Раздел описаний – необязателен, но, как правило, присутствует | const список констант; var список переменных; |
Тело программы – обязателен, содержит операторы программы | begin операторы; end. |
В качестве примера приведем законченную программу на Паскале, вычисляющую вещественные корни произвольного квадратного уравнения.
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;
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln ('Корни уравнения');
writeln (x1:10:2,x2:10:2);
readln; readln;
end.
Ход работы
1. Изучить задачу своего варианта. Составить блок-схему по заданной задаче.
2. Составить алгоритм на языке программирования для заданной задачи.
3. Проверить верность заданной задачи на ПК в среде Turbo Pascal.
4. Оформить отчёт письменно.
Вариант 1.
Составить алгоритм определения периметра треугольника, заданного координатами (х1;у1),(х2;у2);(х3;у3) своих вершин.
Вариант 2.
Составить алгоритм определения площади треугольника по длинам его сторон.