Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика

..pdf
Скачиваний:
9
Добавлен:
15.11.2022
Размер:
1.24 Mб
Скачать

раторной работе мы будем использовать только типы integer

иreal, поэтому должны выполняться следующие правила:

1)в случае, если переменная имеет тип integer, выражение также должно быть типа integer;

2)если переменная имеет тип real, то выражение может иметь как тип real, так и тип integer.

3. Задания к работе

Задания 1–6 выполняются всей группой в тетради либо на доске.

Задание № 1. В первом столбце табл. 5 записана на языке Паскаль вещественная константа в форме с фиксированной точкой, а во втором столбце – та же константа, но в форме с плавающей точкой. Найти неизвестное число x (в пунктах а)–в) под неизвестным числом x подразумевается порядок константы, а в пунктах г)–е) – вся константа).

 

 

Таблица 5

 

Вещественные константы

 

 

 

Пункт

Вещественная константа

Вещественная константа

 

в форме с фиксированной точкой

в форме с плавающей точкой

а)

0.005

5E x

б)

29.43

2.943E x

в)

1.2

1.2E x

г)

x

7.46E+2

д)

x

3.1E-1

е)

x

9.22E0

Примеры выполнения задания № 1:

1. Дана вещественная константа в форме с фиксированной точкой: 0.9. Необходимо записать ее в форме с плавающей точкой, т.е. в виде

<мантисса>E<порядок>

41

Известно, что число 0.9 равно 9*10-1.

Следовательно, мантисса данной константы в форме с плавающей точкой равна 9, а порядок равен –1, поэтому константа в форме с плавающей точкой будет записана следующим обра-

зом: 9E-1.

2. Дана вещественная константа в форме с плавающей точкой: 8.15E+1. Необходимо записать ее в форме с фиксированной точкой.

Известно, что число 8.15E+1 равно 8.15*101.

Таким образом, константа в форме с фиксированной точкой будет записана следующим образом: 81.5.

Задание № 2. Вычислить значения выражений, записанных на языке Паскаль:

а) trunc(4.7);

б) round(4.7);

в) trunc(1.2);

г) round(1.2);

д) 25 div 7;

е) 25 mod 7;

ж) 4 div 9;

з) 4 mod 9;

и) 15 + 3 * 7 div 2 mod 7 – trunc(sin(1)).

Задание № 3. Определить тип выражений (целый или вещественный), записанных на языке Паскаль:

а) 57 + 119.0; б) 9 – 3;

в) 1.5 * 2;

г) 20 / 5;

д) 124 div 20;

е) 5 mod 11; ж) sqr(8);

з) sqrt(100); и) sin(0);

42

к) trunc(1.9);

л) round(2.4);

м) int(1.1);

н) frac(78.25).

Задание № 4. Для следующих математических выражений записать соответствующие арифметические выражения на языке Паскаль. Стандартныефункциив данном заданиине использовать.

а) ac b + xyz ;

б) (a + d )x + (b c)z ;

в) z3 + a2b + x ;

г)

b + c

+ ab ;

 

 

 

 

 

7a

 

 

c

 

 

 

д)

 

y x

 

 

a1a2

;

 

 

a + a

x + z

 

 

 

 

 

 

 

 

1

 

 

2

 

 

 

 

 

 

 

 

 

 

y

+

z

 

9

 

 

 

 

 

 

3!

 

 

 

е)

2!

 

 

 

.

 

 

 

6 +

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

45 + xz

 

 

 

 

 

Пример выполнения задания № 4:

 

Математическое выражение

(a b)x + 3

на языке Паскаль

 

 

 

 

 

 

 

 

 

 

 

 

y + z

 

будет записано следующим образом:

((a-b)*x+3)/(y+z)

При записи подобных математических выражений на языке Паскаль не следует забывать, что все символы пишутся в строчку на одном уровне, а все знаки операций должны быть проставлены (нельзя пропускать *). Также следует помнить, что часть выражения, заключенная в круглые скобки, вычисляется в первую очередь.

Задание № 5. Для следующих математических выражений записать соответствующие арифметические выражения на языке Паскаль. Использовать стандартные функции. Следует обратить

43

внимание на то, что для некоторых математических функций могут отсутствовать стандартные функции в Паскале, и поэтому данные математические функции нужно выразить через какиелибо стандартные.

а)

(1y)2 ;

 

 

 

 

 

б)

(x + z)3 ;

 

 

 

 

 

в)

 

a2

;

 

 

 

 

 

 

75

 

 

 

 

 

 

 

 

 

 

 

 

 

 

г) sin2 x ;

 

 

 

 

 

 

 

 

x

+

 

9

 

 

д)

ln

 

 

 

 

 

;

 

 

z

5

 

 

 

3

 

 

 

е)

log2 (b + 1) ;

 

 

ж) arcsin y ;

 

 

 

 

 

з)

525

 

 

;

 

 

3ex + 8ex

 

 

и) z 5 ;

 

 

 

 

 

 

 

к)

4 6 + 5y ;

 

 

 

 

 

л)

 

c6 + 6c ;

 

 

м)

 

abc 2,4

y + 3 x

;

 

 

 

107 + ln(4!)

н) b1 + cos2 (π4 ) . b2 ctg(b3 )

Примеры выполнения задания № 5:

1. Математическое выражение y2 + sin(2x) на языке Паскаль будет записано следующим образом:

sqr(y)+sin(2*x)

Подобный пример записи математического выражения на языке Паскаль не должен вызывать трудностей, так как в языке

44

Паскаль имеет место как стандартная функция возведения числа

вквадрат, так и стандартная функция вычисления синуса.

2.Математическое выражение tg(5,35x) на языке Паскаль

будет записано следующим образом:

sin(5.35*x)/cos(5.35*x)

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

Однако из математики известно, что tgx = cossin xx . Это соотноше-

ние и было использовано для записи выражения на языке Паскаль в данном примере, так как стандартные функции для вычисления синуса и косинуса в Паскале присутствуют.

Задание № 6. Если y – переменная типа real, а n – переменная типа integer, то какие из следующих операторов присваивания, записанных на языке Паскаль, являются правильными, а какие нет?

а) y:=n-2;

б) n:=y+10;

в) n:=8.0;

г) y:=trunc(y);

д) y:=n mod 3;

е) y:=y div 4;

ж) n:=n/5;

з) n:=sqrt(sqr(n)).

Вопросы и упражнения для самоконтроля

1. К какому типу относятся следующие константы, записанные на языке Паскаль?

а) 0.125

б) 'Москва'

в) $AB6

45

г) 'Y'

д) 1.9E–4 е) –251 ж) '5'

2. Какие из следующих идентификаторов, записанных на языке Паскаль, являются неправильными и почему?

а) y33

б) w

в) 59 г) x_2

д) _yz е) 34x

3. Какие из следующих типов данных языка Паскаль являются целыми со знаком?

а) shortint б) word

в) real

г) longint

д) single

е) integer

ж) double

4.Какая арифметическая операция языка Паскаль используется для нахождения остатка от целого деления?

5.Какая математическая стандартная функция языка Паскаль используется для нахождения квадратного корня?

6.Расположите следующие операции языка Паскаль в порядке убывания приоритетов:

а) вычисление функции sin(x); б) сложение двух переменных; в) унарная операция смены знака (-); г) операция div.

46

Лабораторная работа № 3 СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ ПАСКАЛЬ.

ПРОЦЕДУРЫ ВВОДА-ВЫВОДА

1. Цель работы

Научиться разрабатывать простейшие линейные программы

всистеме Турбо-Паскаль.

2.Краткие теоретические сведения11

2.1. Структура программы на языке Паскаль

Программа на Паскале состоит из заголовка, разделов опи-

саний и раздела операторов. program имя;

разделы описаний

begin

раздел операторов

end.

Программа может содержать комментарии, заключенные в фигурные скобки { } или в скобки вида (* *). Комментарии служат для документирования программы – компилятор их иг-

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

В Турбо-Паскале в отличие от стандарта возможно отсутствие заголовка программы.

Операторы отделяются друг от друга символом ; (точка с запятой).

11 Семакин И.Г., Шестаков А.П. Лекции по программированию: учеб. пособие. – 2-е изд., доп. – Пермь: Изд-во Перм. ун-та, 1998. – 279 с.

Программирование на языке высокого уровня Паскаль. Лекция 1. Основные понятия языка [Электронный ресурс]. – URL: http://www.intuit.ru/ studies/courses/628/484/lecture/6259 (дата обращения: 28.06.2013).

47

В разделе операторов записываются исполняемые операторы программы. Ключевые слова begin и end не являются операторами, а служат для их объединения в так называемый составной оператор, или блок. Блок может записываться в любом месте программы, где допустим обычный оператор. Признаком конца программы является точка.

Разделы описаний бывают нескольких видов: описание модулей, констант, типов, переменных, меток, процедури функций.

Модуль – это подключаемая к программе библиотека ресурсов (подпрограмм, констант и т.п.).

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

uses crt, graph, my_module;

ВТурбо-Паскале количество и порядок следования остальных разделов описаний произвольны, ограничение только одно: любая величина должна быть описана до ее использования. Признаком конца раздела описания является начало следующего раздела. В программе может быть несколько однотипных разделов описаний.

Вразделе описания переменных, начинающемся с ключево-

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

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

Такие константы называют именованными. Например: const min = 10;

g = 9.8;

b = 5;

Применение именованных констант при осмысленном выборе имен улучшает читабельность программы и облегчает внесение в нее изменений. А еще в разделе описания констант опи-

48

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

const q : real = 78.95;

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

Раздел описания меток начинается с ключевого слова label, за которым через запятую следует перечисление всех меток, встречающихся в программе:

label 1, 2, error;

Метки служат для организации перехода на конкретный оператор с помощью оператора безусловного перехода goto.

Метка – это либо имя, либо положительное число, не превышающее 9999. Метка ставится перед любым исполняемым оператором и отделяется от него двоеточием.

2.2. Линейные программы

Линейной называется программа, все операторы которой выполняются в том порядке, в котором они записаны. Это самый простой вид программ.

В данной лабораторной работе будут рассмотрены только линейные программы.

2.3. Процедуры ввода-вывода

Любая программа при вводе исходных данных и выводе результатов взаимодействует с внешними устройствами. Основными устройствами ввода-вывода у персонального компьютера являются клавиатура и дисплей (телеэкран). Именно через эти устройства главным образом осуществляется диалог между человеком и компьютером. Совокупность стандартных устройств ввода и вывода, т.е. клавиатуры и экрана дисплея, называется консолью. Обмен данными с консолью является частным случаем обмена с внешними устройствами.

49

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

В языке Турбо-Паскаль оператор ввода с клавиатуры имеет следующий формат:

read(<список ввода>),

где <список ввода> – это последовательность имен переменных, разделенных запятыми.

Слово read переводится с английского языка как «читать». Точнее говоря, read – это оператор обращения к стандартной процедуре ввода.

Например:

read(a, b, c, d)

При выполнении этого оператора происходит остановка работы компьютера, после чего пользователь должен набрать на клавиатуре значения переменных a, b, c, d, отделяя их друг от друга пробелами. При этом вводимые значения высвечиваются на экране. В конце нажимается клавиша Enter. Значения должны вводиться в строгом соответствии с синтаксисом Паскаля.

Пусть переменные a и b из рассмотренного выше примера типа integer, а переменные c и d – типа real.

При выполнении оператора read набираем на клавиатуре значения переменных, разделяя их пробелами:

14 67 8.03 31.45

Нажимаем клавишу Enter.

В результате значением переменной a станет 14, значением переменной b станет 67, значением переменной c станет 8.03, а значением переменной d станет 31.45.

50