Составление линейных программ

Практическая работа

Цель работы:   Научиться работать в среде программирования Турбо Паскаль, составлять арифметические выражения и использовать операторы ввода и вывода.

Простейшая программа на языке Паскаль имеет следующую структуру:

PROGRAMИмя программы; USES Список используемых библиотек (модулей); VAR Определение переменных программы;   BEGIN Основной блок программы END.

С помощью директивы USES подключаются библиотечные модули из стандартного набора Турбо Паскаль. USES используется в программе только один раз. Список библиотек дается через запятую:

USESCRT, DOS, Graph;

{подключены три библиотеки с соответствующими именами}

Если библиотеки не используются, то эта директива не используется.

Блок VAR содержит список переменных программы и их типов. Этих блоков может быть несколько, но переменные в них не должны повторятся. Базовыми типами данных в Паскале являются следующие:

1. INTEGER – целые числа.

2. REAL – вещественные числа (числа с дробной частью).

3. CHAR – символьный тип.

4. BOOLEAN – логический тип (данные этого типа могут принимать только одно из двух значений: TRUE – истина или FALSE – ложь).

Например:

VARK,I,J:INTEGER;A,B:REAL;

Основной блок программы всегда начинается словом BEGIN, а заканчивается END и на конце «точка». После «точки» компилятор уже ничего не принимает.

Компилятор Турбо Паскаля накладывает некоторые ограничения на текст программы. Так, длина строки не может превысить 126 символов. В конце каждой строки в основном блоке программы и в процедурах и функциях должны стоять «;».

Ни одна программа не обходится без инструкций присваивания. В результате выполнения этой инструкции переменная получает некоторое значение. Этот оператор в общем виде выглядит как

Переменная := Значение;

Составной символ «:=» читается как «становится равным». В операции присваивания слева всегда стоит имя переменной, а справа – то, что представляет ее значение (значение как таковое или выражение). После присваивания переменная слева получает новое значение.

Например:

a:=2.4;

d:=b*b-4*a*c;

 

Для присваиваемых выражений однозначно определяются правила вычислений: действия выполняются слева на право с соблюдением следующего старшинства (в порядке убывания):

1. Действия в скобках;

2. Математические функции;

3. NOT;

4. *, /, DIV, MOD, AND;

5. +, -, OR;

6. =, <>, <, >, <=, >=, IN.

Паскаль имеет следующие стандартные математические функции.

ABS(X)
PI p
SIN(X)
COS(X)
ARCTAN(X)
SQRT(X)
SQR(X)
POWER(X,5) х5
EXP(X)
LN(X)
TRUNC(X) Целая часть значения Х
FRAC(X) Дробная часть значения Х
INT(X) Целая часть значения Х
ROUND(X) Округление Х до целого
RANDOM Случайное число от 0 до 1
RANDOM(X) Случайное число от 0 до Х
ODD(X) Возвращает TRUE, если Х – нечетное число.
A DIV B Целая часть от деления А на В (например: 5 div 3 будет 1)
A MOD B Остаток от деления А на В (например: 5 mod 3 будет 2)

С помощью этих математических функций и основных операций составляются арифметические выражения, при этом очень важно в выражении расставить правильно скобки, учитывая приоритеты выполняемых операций. Например:

Выражение

на языке Паскаль будет выглядеть как

abs(ln(x))-sqr(x-2)+(exp(x+3)-3*x)/(1+cos(sqrt(x)))

Или выражение

будет выглядеть следующим образом:

(sqrt(exp(x)-1)-sqr(x)*(1+sin(pi*x))/(x*arctan(x/sqrt(1+sqr(x))))

Если в программе какие-либо данные задаются в момент работы программы (например, коэффициенты квадратного уравнения или другие нужные переменные), то в программе необходимо использовать операторы ввода.

1. READLN(Переменная1,Переменная2, … , ПеременнаяN);

Переменная1, Переменная2, … , ПеременнаяN – имена переменных, которые вводятся.

После выполнения этого оператора, курсор переходит на новую строку.

2. READ(Переменная1,Переменная2, … , ПеременнаяN);

После выполнения этого оператора, курсор остается на этой же строке.

Если вводятся несколько переменных, то переменные можно разделять пробелом или ENTER. В конце ввода необходимо нажимать ENTER.

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

READLN a,b,c;

требует ввода значения трех переменных (значения можно разделять пробелами или нажатием клавиши ENTER).

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

1. WRITELN(Список выводимых переменных и сообщения);

После выполнения этого оператора, курсор переходит на новую строку. Выводимые выражения отделяются друг от друга запятыми.

Если выводится набор символов, то он заключается в апострофы:

WRITELN(‘P=’,P);

После работы этого операторы мы увидим на экране

Р=значение переменной Р.

2. WRITE(Список выводимых переменных и сообщения);

После выполнения этого оператора, курсор остается на этой же строке.

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

WRITELN(‘P=’,P:10:2);

Здесь под Р отводится 10 позиций, а из них 2 – под дробную часть. Т.е., если Р=13.852, то Р распределиться по этим позициям следующим образом

          .

При этом вначале будут пять пробелов. И на экране при выводе мы увидим следующее:

Р= 13.85

Если выводится величина, объявленная типом INTEGER, то можно задать только общее число позиций (т.е. используется только одно число).

Пример:

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

Вычисление пути.

Введите начальную скорость (м/с) – > 3

Введите время (с) – > 5

Введите ускорение (м/с2) - >1

 

Тело прошло путь 27.50 м

 

 


Блок-схема этой задачи:

 

       
 
 
   

 

 


Программа выглядит следующим образом:

program prac3;

uses crt; {Модуль crt необходим для работы с экраном

например, для очистки экрана от предыдущих

результатов работы программ}

 

var a,t,v0,S:real; {а – ускорение, t – время, v0 – начальная скорость,

S – путь}

 

begin

clrscr; {Оператор очистки экрана}

writeln('Вычисление пути.');

write('Введите начальную скорость (м/с) -> ');

readln(v0); {Ввод начальной скорости}

write('Введите время (с) -> ');

readln(t); {Ввод времени}

write('Введите ускорение (м/с2) -> ');

readln(a); {Ввод ускорения}

S:=v0*t+a*sqr(t)/2; {Расчет пути}

writeln; {Вывод пустой строки}

writeln('Тело прошло путь ',S:6:2,' м'); {Вывод нужных данных}

readln;

end.


Пример:

Написать программу для расчета значения

, где и

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

 

Блок-схема этой задачи:

 

   
 
 
 

 

 


Программа выглядит следующим образом:

{ Вычисление значения z}

 

program prac3;

uses crt; {Модуль crt необходим для работы с экраном

например, для очистки экрана от предыдущих

результатов работы программ}

 

var x,y,z,t:real;

 

begin

clrscr; {Оператор очистки экрана}

write('Введите значение t -> ');

readln(t);

x:=pi*ln(t);

y:=sqrt(t*(2+sin(t)));

z:=sqr((x+y)/(2*x))-sqrt(x)/(x+3*y);

writeln('Значение функции z=',z:9:6); {Вывод нужных данных}

readln;

end.

Задание (инструкция 3)

№1

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

Вычисление площади прямоугольника

Введите исходные данные:

Длина (см) – > 9

Ширина (см) – > 7.5

 

Площадь прямоугольника: 67.50 кв.см.

 

2. Составить программу и вычислить значение функции

, где

 

Ответ.

Введите а 2

Введите b 1

№2

1. Написать программу вычисления объема параллелепипеда (V=a*b*c). Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисления объема параллелепипеда

Введите исходные данные:

Длина (см) – > 9

Ширина (см) – > 7.5

Высота (см) – > 5

 

Объем: 337.50 куб.см.

2. Составить программу и вычислить значение функции

, где

 

Ответ.

Введите a 2

Введите b 4

54.38

 

№3

1. Написать программу вычисления площади поверхности параллелепипеда S=2*(a*b+b*c+a*c). Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление площади поверхности параллелепипеда.

Введите исходные данные:

Длина (см) – > 9

Ширина (см) – > 7.5

Высота (см) – > 5

 

Площадь поверхности: 300.00 кв.см.

2. Составить программу и вычислить значение функции

, где

 

Ответ.

Введите a 2

Введите b 4

Введите c 5

3.80

№4

1. Написать программу вычисления объема куба (V=a3). Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление объема куба.

Введите длину ребра (см) – > 9.5

 

Объем куба: 857.38 куб.см.

2. Составить программу и вычислить значение функции

, где

Ответ.

Введите a 3

Введите n 4

Введите d 2

 

№5

1. Написать программу вычисления объема цилиндра (V=Pi*R2*H). Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление объема цилиндра.

Введите исходные данные:

Радиус основания (см) – > 5

Высота цилиндра (см) – > 10

 

Объема цилиндра 785.0 см.куб.

 

2. Составить программу и вычислить значение функции

Ответ.

Введите a 2

Введите n 4

13.35

№6

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

Вычисление стоимости покупки.

Введите исходные данные:

Цена тетради (руб) – > 2.75

Количество тетрадей – > 5

Цена карандаша (руб) – > 0.85

Количество карандашей – > 2

 

Стоимость покупки: 15.45 руб.

 

2. Составить программу и вычислить значение функции

Ответ.

Введите a 4

Введите b 6

Введите c 7

3.507

№7

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

Вычисление стоимости покупки.

Введите исходные данные:

Цена тетради (руб) – > 2.75

Цена обложки (руб) – > 0.5

Количество комплектов (шт) – > 7

 

Стоимость покупки: 22.75 руб

 

2. Составить программу и вычислить значение функции

Ответ.

Введите a 3

Введите b 7

Введите h 5

520.981

№8

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

Вычисление стоимости покупки.

Введите исходные данные:

Цена одного килограмма яблок (руб) – > 8.5

Вес яблок (кг) – > 2.3

Стоимость покупки: 19.55 руб.

Ответ.

Цена одного кг яблок (руб) 8.5

Вес яблок (кг) 2.3

Стоимость покупки: 19.55 руб.

2. Составить программу и вычислить значение функции

Ответ.

Введите a 2

Введите r 3

65.973

 

№9

1. Написать программу вычисления площади треугольника, если известна длина основания и высоты (S=1/2*a*h). Ниже приведен рекомендованный вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление площади треугольника.

Введите исходные данные:

Основание (см) – > 8.5

Высота (см) – > 10

 

Площадь поверхности: 42.50 кв.см.