Ввод данных с клавиатуры и вывод результатов на экран
Лабораторная работа №1
Составление простейших программ на языке Pascal
Цель работы
1.1 Научиться составлять простейшие программы на языке Pascal, используя готовые алгоритмы.
Литература
2.1 Колдаев В.Д. Основы алгоритмизации и программирования: Учебное пособие / Под ред. Проф. Л.Г. Гагариной. - М.: ИД «Форум»: ИНФРА-М, 2006.
2.2 Семакин И.Г., Шестаков А.П. Основы программирования: Учебник. – М.: Мастерство; НМЦ СПО; Высшая школа, 2008.
2.3 Приложение.
Подготовка к работе
3.1 Изучить основы составления программ на языке Паскаль.
3.2 Изучить правила ввода и редактирования текста программ.
3.3 Изучить правила применения оператора IF...THEN...ELSE... .
3.4 Подготовить бланк отчёта с программами по алгоритмам практической работы №1 учебной дисциплины «Теория алгоритмов».
4 Основное оборудование:
4.1 Персональный компьютер.
Задание
5.1 Проверить в работе написанные программы (условия задач см. таблицу №1).
5.2 Провести тестирование программ.
Таблица 1 – Задания для лабораторной работы №1
Вариант | Задание |
1) Вычислите значение функции у = . | |
2) Угол задан в градусах , минутах . Найдите его величину в радианах. Тестирование: рекомендуется проверить работоспособность для острых, тупых и отрицательных углов. | |
3) Определите площадь заштрихованной фигуры (рисунок 1), если известна длина стороны квадрата. Рисунок 1 |
Продолжение таблицы 1
1) Вычислите значение функции у = . | |
2) Угол задан в радианах. Найдите его величину в градусах, минутах. Тестирование: рекомендуется проверить работоспособность для острых, тупых и отрицательных углов. | |
3) Определите площадь заштрихованной фигуры(рисунок 1), если известна длина стороны квадрата. Рисунок 1 |
6 Порядок выполнения работы:
6.1 Введите написанную программу №1 в окно редактора.
6.2 Проведите проверку работы программы.
6.3 Покажите преподавателю.
6.4 Повторите пункты 6.1 – 6.4 для задач №2 и №3.
Содержание отчета
7.1 Титульный лист.
7.2 Цель работы.
7.3 Условия задач.
7.4 Программы на языке Pascal.
7.5 Таблицы тестирования программ.
7.6 Вывод по проделанной работе
Контрольные вопросы
8.1 С чего начинается программа на языке Pascal?
8.2 Как описываются переменные на языке Pascal?
8.3 С чего начинается основная программа на языке Pascal?
8.4 Чем заканчивается программа на языке Pascal?
8.5 Как сохранить программу на диске?
8.6 Какой вид имеет оператор вывода на языке Pascal?
8.7 Какой вид имеет оператор ввода на языке Pascal?
8.7 Какой вид имеет оператор присваивания на языке Pascal?
8.8 Какие операции можно применять к переменным целого типа?
8.9 Как выглядит условный оператор на языке Pascal? Как он работает?
Приложение
Структура программы
Программа на языке Pascal состоит из следующих разделов:
· Заголовок;
· Объявление используемых модулей;
· Объявление меток;
· Объявление констант,
· Объявление типов;
· Объявление переменных;
· Объявление процедур и функций программиста;
· Инструкции.
Структура программы в общем виде:
Program ИмяПрограммы ;
USES
{объявление используемых модулей}
Label
(объявление меток)
Const
{объявление констант}
Type
{объявление типов)
Var
{объявление переменных}
{объявление процедур и функций программиста}
Begin
{инструкции программы}
End.
Например, рассмотрим программу
Program Example_1;
Var a,b,rez: Integer;
Begin Writeln(‘Введите два числа через пробел’);
Readln(a,b);
rez:=a*b;
Writeln(‘Их произведение равно’, rez);
Writeln(‘Нажмите <Enter>’);
Readln;
End.
В приведенном примере находится произведение двух целых чисел, введенных с клавиатуры.
Рассмотрим более подробно программу.
После зарезервированного слова Program записывается имя программы. В имени программы не должно быть пробелов, оно должно начинаться с буквы, состоять только из латинских букв, цифр и символа подчеркивание.
Раздел описаний содержит описание переменных. Он начинается со служебного слова Var, после которого идет последовательность объявления переменных и отделяется от следующего раздела точкой с запятой. В каждом объявлении перечисляются через запятую имена переменных одного типа, после чего ставится двоеточие и указывается тип переменных.В данном разделе должны быть описаны все переменные, встречающиеся в программе.
После описательной части идет раздел операторов, начинающийся со служебного слова Begin, после которого идут операторы языка. В конце раздела операторов стоит служебное слово END, после которого стоит точка.
Основные типы данных
Тип данных определяет множество значений, которые могут принимать переменные, константы, функции, выражения; объём требуемой памяти и совокупность операций, допустимых над этими значениями. Все типы данных языка Паскаль можно разделить на простые и сложные. К простым типам относятся целые, вещественные, логический и символьный. Сложные типы данных представляют собой различные комбинации простых типов (строки, массивы, множества, записи, файлы и др.).
Целый тип данных
Существуют несколько типов для представления целых чисел:
Таблица 2
Тип | Диапазон значений | Объем памяти, байт |
Shortint | -128...127 | |
Integer | -32768…32767 | |
Longint | -2147483648...2147483647 | |
Byte | 0...255 | |
Word | 0...65535 |
Например, Const r = 4;
Var a: Integer;
b: Longint;
c: byte;
Действительный тип данных
Данные вещественного типа – это вещественные значения, записанные в памяти в виде чисел с плавающей точкой (например, 3,14 = .314Е+01, 10-3 = 1Е-3).
Существуют несколько типов для представления вещественных чисел. Выбор конкретного типа связан с требуемой точностью вычислений.
Таблица 3
Формат | Диапазон значений | Количество значащих цифр | Объем |
байт | |||
Real | 2.9е-39... 1.7е38 | 11-12 | |
Single | 1.5e-45... 3.4е38 | 7-8 | |
double | 5.0е-324... 1.7е308 | 15-16 | |
extended | 3.4e-4932...1.1e4932 | 19-20 |
Например, Const r = 4.0;
Var a: Real;
b: double;
Для переменных вещественного типа определены 2 функции, позволяющие преобразовывать переменную вещественного типа в переменную целого типа:
Round(x) округление вещественного числа до целого;
Trunc(x) выделение целой части числа.
Например, Round( 3.456) = 3
Round( 5.678) = 6
Trunc( 3.456) = 3
Trunc( 5.678) = 5
Логический тип данных
Данные логического типа (Boolean) могут принимать одно из двух значений: TRUE или FALSE. Переменная или константа логического типа занимает 1 байт, в который записывается 1, если переменная или константа имеет значение TRUE, и 0 в противном случае.
Например, Const r = TRUE;
Var a: Boolean;
Выражения и операции
Выражение – это синтаксическая единица языка, задающая порядок и способ вычисления некоторого значения.
Выражение представляет собой последовательность операндов, соединяющихся друг с другом знаками операций. Операндами выступают переменные, константы, функции.
Арифметические выражения
Арифметические выражения - это выражения, дающие численный результат.
Арифметические операции, используемые в арифметических выражениях, рассмотрены в таблице 4. Арифметические операции могут применяться только к операндам целых и вещественных типов.
Таблица 4 - Арифметические операции
Знак | Операция | Тип операнда | Тип результата | Результат |
+ | Сложение | Целый | Целый | Сумма двух чисел |
Хотя бы один веществ. | Веществ. | |||
- | Вычитание | Целый | Целый | Разность двух чисел |
Хотя бы один веществ. | Веществ. |
Продолжение таблицы 4
* | Умножение | Целый | Целый | Произведение двух чисел |
Хотя бы один веществ. | Веществ. | |||
/ | Деление | Целый или веществ. | Веществ. | Частное от деления двух чисел |
div | Деление целочисленное | Целый | Целый | Целая часть от деления целых чисел 25 div 6 = 4 |
mod | Остаток от деления целых чисел | Целый | Целый | Остаток от деления целых чисел 25 mod 6 = 1 |
В качестве операндов арифметических операций могут выступать стандартные математические функции (рассмотрены в таблице 5).
Таблица 5 – Математические функции
Обращение | Тип аргумента | Тип рез-та | Функция |
pi | - | Веществ. | Число = 3,1415926536Е+00 |
abs(x) | Целый Веществ. | Целый Веществ. | Модуль аргумента |
sqr(x) | Целый Веществ. | Целый Веществ. | Квадрат х |
sqrt(x) | Целый Веществ. | Веществ. | Квадратный корень из х |
arctan(x) | Целый Веществ. | Веществ. | Арктангенс х (радианы) |
cos(x) | Целый Веществ. | Веществ. | Косинус х (х в радианах) |
sin(x) | Целый Веществ. | Веществ. | Синус х (х — в радианах) |
eхр(х) | Целый Веществ. | Веществ. | ех— экспонента |
ln(x) | Целый Веществ. | Веществ. | Натуральный логарифм х |
frac(x) | Целый Веществ. | Веществ. | Дробная часть х |
int(x) | Целый Веществ. | Веществ. | Целая часть х |
Как видно из таблицы 5, в языке Турбо Паскаль отсутствуют некоторые математические функции. Например, lg(x), tg(x), ax. Для вычисления этих величин можно использовать выражения, рассмотренные в таблице 6.
Таблица 6 – Математические выражения
Математические выражения | Запись выражения в языке Турбо Паскаль |
х4 | sqr( sqr(x) ) |
х5 | sqr ( sqr(x) )*х |
, где х > 0 | sqrt( sqrt(x) ) |
ху, где х > 0 | eхр( у* ln(x) ) |
, где х > 0 | eхр( 1/n* ln(x) ) |
lg(x), где х > 0 | ln(x) / ln(10) |
, где х и a > 0, a | ln(x) / ln(a) |
ax | eхр( х* ln(a) ) |
tg(x) | sin(x) / cos(x) |
ctg(x) | cos(x) / sin(x) |
При записи выражений между операндом и оператором, за исключением операторов div и mod, пробел можно не ставить.
Операторы имеют разный приоритет. Наивысший приоритет имеют функции, далее – умножение и деление, наименьший – сложение и вычитание. Приоритет операторов влияет на порядок их выполнения. При вычислении выражения сначала выполняются операторы с более высоким приоритетом. Если приоритет операторов в выражениях одинаков, то сначала выполняется тот оператор, который находится левее. Порядок вычислений можно изменить с использованием круглых скобок.
При записи выражений, содержащих скобки, должна соблюдаться парность скобок, т.е. число открывающих скобок должно быть равно числу закрывающих скобок.
Логические выражения
Логические выражения - это выражения, которые определяют некоторые отношения между элементами данных.
Результатом логического выражения является значение TRUE (истина) или FALSE (ложь).
Простым логическим выражением называется выражение, составленное из двух арифметических выражений (или двух текстовых величин), связанных операцией отношения.
Операции отношения выполняют сравнение двух операндов и определяют истинность или ложность результата. При этом операнды должны быть сравнимых типов, например, целого и целого, целого и вещественного и т.д. Ошибочно сравнивать операнды целого и символьного, или целого и логического.
Операции отношения рассмотрены в таблице 7.
Таблица 7 - Операции отношения
Знак | Операция |
= | Равно |
<> | Не равно |
< | Меньше |
<= | Меньше или равно |
> | Больше |
>= | Больше или равно |
Составным логическим выражением называется выражение, составленное из простых выражений с помощью логических операций.
Логические операции применяются к операндам целого и логического типов. Если операнды целые числа, то результат логической операции тоже целое число. Логические операции над логическими данными дают результат логического типа. Результаты вычисления логических операций приведены в таблице 8.
Таблица 8 – Результаты вычислений логических операций
Значение операнда | Результат операции | ||||
х | у | not x | x and y | x or y | x xor y |
False | False | True | False | False | False |
False | True | True | False | True | True |
True | False | False | False | True | True |
True | True | False | True | True | False |
Операции отношений (= , <>, <=, <=, <, >) имеют более низкий приоритет, чем логические операции, поэтому их следует заключать в скобки при использовании по отношению к ним логических операций. Например, (a>0) and (a<max).
Оператор присваивания
В результате выполнения оператора присваивания переменная получает значение. В общем виде оператор выглядит так:
Имя := Выражение;
Оператор присваивания выполняется следующим образом: сначала вычисляется результат выражения, находящегося справа от символа присваивания, затем вычисленное значение записывается в переменную, имя которой стоит слева от символа присваивания.
Например, m:= 5;
i:= i + 1;
В первом примере, значение переменной m становится равным 5, а во втором - значение переменной i увеличивается на единицу.
Ввод данных с клавиатуры и вывод результатов на экран
Операторы ввода и вывода начинаются с имён процедур: ReadиReadln (процедуры ввода), Writeи Writeln (процедуры вывода).
Операторы вывода на экран
ОператорWriteпредназначен для вывода на экран монитора сообщений и значений переменных. После слова Write в скобках задаётся список имён переменных. Кроме имён переменных в список можно включить сообщение – текст, заключенный в апострофы.
Например,
Write ( summa );
Write ( ’ Введите два числа через пробел ’ ) ;
Write ( ’ Их произведение равно ’ , rez ) ;
Write ( ’ Произведение ’ , х , ’ и ’ , у , ’ равно ’ , rez ) ;
После имени переменной через двоеточие можно поместить описание (формат) поля вывода значения переменной.
Для переменной целого типа формат – это целое число, определяющее ширину поля вывода (количество позиций на экране).
Например, Write ( summa : 5 );
В данном примере для вывода значения переменной summa используется 5 позиций. Если выводимое число занимает меньше позиций, чем указано в формате, то неиспользуемые позиции заполняются пробелами, а само изображение выравнивается по правой границе поля.
Для переменной вещественного типа формат – это два целых числа, разделенных двоеточием. Первое число определяет ширину поля вывода, второе – число цифр, стоящих справа от десятичной точки. Если задать только ширину поля, то на экране появится число, представленное в формате с плавающей запятой. Если ширины поля, указанной в формате, недостаточно для вывода значения переменной, то выводится число в формате с плавающей запятой и десятью цифрами после запятой ( всё поле вывода в этом случае занимает 17 позиций).
Например, рассмотрим таблицу 9, в которой пробел будем обозначать знаком подчеркивания (_).
Таблица 9 – Форматы процедуры Write
Значение переменной m | Оператор | Результат |
Write ( m ); | ||
Write ( m, m, m ); | ||
Write ( m : 7 ); | _ _ _ _ _56 | |
Write ( m : 5 ); | _ _ _56 | |
715.432 | Write ( m ) | _7.1543200000Е+02 |
-1.919Е+01 | Write ( m ) | _-1.9190000000Е+01 |
531.04 | Write ( m : 15 ) | 5.310400000Е+02 |
46.78 | Write ( -m : 12 ) | -4.67800Е+01 |
513.02 | Write ( m : 8 : 4 ) | 513.0200 |
-86.78 | Write ( m : 7 : 2) | _-46.78 |
После выполнения оператора Write курсор остается в той позиции экрана, в которую он переместился после вывода последнего символа, выведенного этим оператором. Следующий оператор Write начинает вывод именно с этой позиции. Например, в результате выполнения инструкций
rez:=8;
Write ( ’ Произведение ’ ) ;
Write ( ’ равно ’ ) ;
Write ( rez ) ;
на экран будет выведено: Произведение равно 8
Оператор Writeln отличается от Write только тем, что после вывода сообщения или значений переменных курсор переходит в начало следующей строки. Например, в результате выполнения инструкций
rez:=8;
Writeln ( ’ Произведение ’ ) ;
Writeln ( ’ равно ’ ) ;
Writeln ( rez ) ;
на экран будет выведено:
Произведение
равно