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

Лабораторная 1 ( Понятно,да?)

.pdf
Скачиваний:
10
Добавлен:
12.02.2015
Размер:
382.93 Кб
Скачать

Демонстрация операций над типом Real Операции с переменными типа Real реа­ лизуются программно, т е математический сопроцессор в этом случае не используется

PROGRAM Primer 5;

var x: Real; { Первый аргумент } у: Real; { Второй аргумент } z: Real; { Результат операции }

BEGIN

Write (‘Введите значения двух переменных типа Real ‘); Read (x у); z:=х+у; WriteLn ('х + у -> ',z); z:=х-у; WriteLn (‘ х - у -> ', z);

Z:=х*у; WriteLn (‘х * у -> ',z); z =x/2; WriteLn (‘х/2 -> ‘,z);

{ Операцию отношения = не используйте для типа Real } WriteLn ('х=у -> ‘,х=у); WriteLn (‘ x<>y -> ',х<>у);

WriteLn (‘ х>=у ->‘, х>=у)

END.

Пример 6.

Демонстрация операций над типом Char. PROGRAM Primer_6;

var x,y:Char; BEGIN

Write (‘Введите значения двух переменных типа Char '); Read (x,y); WriteLn (‘x =‘,х); WriteLn (‘у =‘,у);

WriteLn (‘х=у -> ‘,х=у); WriteLn ('x<>y ->‘ ,х<>у); WriteLn (‘х<у ->‘, х<у);

END.

Пример 7.

Демонстрация операций над типом Boolean.

PROGRAM Primer_7; var x,y,z: Boolean;

BEGIN

Write(‘ Введите значения двух переменных типа Boolean ‘); Read(x.y);

х:=TRUE; у:=FALSE; WriteLn (‘х = ‘, х); WriteLn (‘у = ‘,у); Z:=NOT x; WriteLn (‘ NOT x ->‘,z);

Z =х AND у; WriteLn (‘x AND у -> ‘,Z); z:=x OR у; WriteLn (‘х OR у -> ', z); z:=x XOR у; WriteLn (‘ х ХОР у ->‘,z);

WriteLn (‘х=у -> ‘,х=у); WriteLn (‘х<>у -> ‘,х<>у); WriteLn (‘ х>у -> ‘,х>у)

END.

Пример 8.

Демонстрация вычисления значений стандартных функций UpCase, Ord и Chr. PROGRAM Primer_8;

var x Char; BEGIN

Write (‘ Введите значение аргумент типа Char ‘); ReadLn (x); WriteLn (‘ UpCase (x) ­>‘, UpCase (x));

Writein (‘Ord

(x) ->‘,0rd(x));

WriteLn (‘Chr

(65) ->‘,Chr(65))

END.

Пример 9.

Демонстрация вычисления значений элементарных функций

PROGRAM Primer 9;

var X:Real;

{

Аргумент }

Y:Real;

{

Аргумент }

Z:Integer; {

Аргумент }

F: Real;

{

Результат }

BEGIN

WriteLn (‘Значение Maxint Maxint); WriteLn (‘ Значение Пи ‘, PI); Write (‘ Введите значение аргумента '); ReadLn (X);

WriteLn (‘ Trunc (X) ->‘, Trunc (X)); WriteLn (‘Int (X) ->‘, Int (X)); WriteLn (‘Frac (X) ->‘, Frac (X));

F:=Sqrt (X); WriteLn (‘ Значение функции корень ’,F); F:=Abs (X); WriteLn (‘Значение функции Abs ‘,F); F:=Exp (X); WriteLn (‘Значение функции Ехр ',F); F:=Ln (X); WriteLn (‘Значение функции Ln ‘,F);

{ Аргумент тригонометрических функций выражен в радианах } F:=Sin (X); WriteLn (‘Значение функции Sin ‘, F);

F:=Cos (X); WriteLn (‘Значение функции Cos ‘, F); F:=ArcTan (X); WriteLn (‘ Значение функции ArcTg ‘, F);

{---------------------------------------------------------}

Write (‘Введите значение аргумента '); ReadLn (Y); F:=Exp (Y*Ln(X)); WriteLn (‘ Значение функции X^Y ‘, F);

{---------------------------------------------------------------}

Write (‘ Введите значение аргумента типа Integer ); ReadLn (Z); WriteLn ('Odd (Z) -> ‘,Odd (Z));

END.

Пример 10.

Определить большее из двух целых чисел Х и Y.

PROGRAM Primer_10;

 

var x: Integer;

{ Первый аргумент }

y:Integer;

{ Второй аргумент }

 

Bolshee:Integer; { Результат

}

BEGIN

 

 

Write (‘ Введите первое число ‘

); ReadLn (X);

Write (‘ Введите второе число ‘ ); ReadLn (Y); if X>=Y

then Bolshee =X else Bolshee =Y;

WriteLn (‘ Результат ‘,Bolshee)

END.

Пример 11.

Напишите программу, переводящую школьные отметки в оценки

PROGRAM Primer_11; var BALL: Integer;

BEGIN

Write (‘ Введите величину отметки ‘); Read (BALL); WriteLn; Case BALL of { Перевод отметки в оценку }

1:

WriteLn (‘ Очень плохо ‘ );

2:

WriteLn (‘ Плохо ‘);

3:WriteLn (‘ Удовлетворительно ‘ );

4:WriteLn (‘ Хорошо' );

5:WriteLn ('Отлично' )

END.

Контрольные вопросы

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

1.Присвойте переменной N ее собственное значение, уве­личенное в N раз.

2.Чему равно Х в результате выполнения программы

Х:=2;

Х:= Х + X;

Х:=Х­Х?

3.Каков результат вычисления арифметических выражений:

а) 5 MOD 3+1; б) 2 * 6 / 2 / 3;

в) 2.4 / 2 ­ 24 DIV 20 ?

4. Чему равно:

а) TRUNC(3.6),

б) ROUND(3.6),

в) TRUNC(36) ?

5. Какую из функций: SIN(X), ABS(X), TRUNC(X) можно заменить условным оператором

if Х < 0 then Х := ­X ?

6. Что выполняют элементы этой программы. if A < В then

begin R:=A; А:=В; B:=R

end

Зачем здесь использован составной оператор?

7.Каково значение сложного условия (X>5)and(X<X+1)?

8.А и В — логические переменные. Всегда ли рав­нозначны логические выражения not (A or В) и not A and not В ?

9.Установить, истинны или ложны следующие условия:

à) NOT (6 < 4) AND (4 > 8)),

б) (А <= А + 1) OR (12 ­ 3 > 0),

в) ((2 <= 2) AND (3 >= 3)) OR (15 > 25).

10.Ввести три числа. Выбрать и напечатать наибольшее из них.

11.Указать неправильные записи чисел:

а) 0006; б) ­0; в) 7,0; г) 7.; д) +0.3; е) .3; ж) 2/3; з) Е­1; и) 8Е0; к)0Е­4; л) 2 Е5; м) е

12.Есть ли разница (с точки зрения языка Паскаль) между числами 100 и 100.0, между

20и 2Е1? По какому признаку (величине или форме записи) целые числа отличаются от вещественных?

13.Вычислить: 24/(3×4)­24/3/4+24/3×4.

14.Записать на Паскале соответствующие операторы присваивания:

f = 6,673×108 × m1m2 r2

15. Записать на Паскале соответствующие операторы присваивания:

b = e

 

x−y

 

+ ln(1+ e)log

2

tg2

 

 

 

 

 

 

 

 

 

 

16.Чему равны значения переменных х и у после выполнения операторов х:=2; y:=5; x:=y; у:=х?

17.Вычислить значения выражений:

а) 3×7 div 2 mod 7/3­trunc(sin(l)); б)* succ(round(5/2)­pred(3))

18.Если y­вещественная переменная, а n­целая, то какие из следующих операторов присваивания правильные, а какие нет и почему?

а) у:=n+1; б) n:=y­1; в)n:=4.0; г) y:=trunc(y); д) n:=n div 2; е) y:=y div 2; ж) n:=n/2; з) n:=sqr(sqrt(n))

19.Объяснить ошибки в следующих записях:

а) 1 and 0; б) true+false; в) true<0; г) not 2=5; д) х>0 or y=4; е) not not b or or d

20.Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:

а) х принадлежит отрезку [­1, 2]; б) х лежит вне отрезка [­1, 2];

в) х принадлежит отрезку [3, 7] или [­2,0]; г) x лежит вне отрезков [3, 7] и [­2, 0];

21.Ответить на следующие вопросы.

а) Верно ли, что в Паскаль­программе надо описывать все используемые в ней переменные?

б) Какую информацию извлекает транслятор из описания переменных и как он ее использует?

в) Какие значения имеют переменные в начале выполнения программы? г) Можно ли менять значения констант?

д) В описании констант их типы не указываются. Как же определяются типы констант?

е) Почему не надо описывать константы maxint, true, false?

22. Какое значение будет иметь переменная z после выполнения операторов z:=0;

if x>0 then if у>0 then z:=1 else z:=2

при следующих значениях переменных х и у: а) x=y=1, б) x=1, y=­y; в) x=­1, y=l.

23.Если n=3, то какое значение будет иметь переменная f после выполнения следующего составного оператора?

begin f:=1; i:=2;

1:if i>n then goto 9; f:=f*i; i:=i+l; goto 1;

9:end

24.Вспомните правило задания идентификаторов. Приведите примеры.

25.В чем отличие переменной используемой в языках программирования и в алгебре.

26.Как объяснить: х:=х+1, где х переменная принимающая различные значения.

ЗАДАНИЯ ДЛЯ ВЫПОЛНЕНИЯ

Задание №1

Подготовить дома одну из программ для вычисления y=f(x) и представить её на компьютере преподавателю (результат полученного вещественного числа вывести на экран в формате с фиксированной точкой):

а)

в)

д)

ж)

и)

л)

н)

п)

ì- x2

+1

если

x £ ­1

ï

x+1

если

-1< x <1

f (x) = í

ï

x2

+1

если

x ³1

î

 

 

 

 

ì20- 9.8×t

если

0£ t < 2.04

ï

 

 

если

2.04£ t £ 4.08

f (t) = í9.8×t

 

ï

 

 

если

t > 4.08

î0

 

 

ì-

 

sin x

 

если

x £ 0

 

 

ï

 

 

 

2

x

 

если 0

< x £ 1.57

 

 

 

 

f (x) = í sin

 

 

ï

 

 

x

+1

 

если

x > 1.57

î e

 

 

ìx2

+ 4x + 3 при

x £ 2

ï

 

 

 

 

 

1

 

 

 

 

f (x) = í

 

 

 

 

 

 

в противном случае

ï

 

 

 

 

 

 

 

 

2

 

 

 

 

 

î x

 

 

+ 4x + 3

 

б)

г)

е)

з)

ì- x3 +1

если

 

x £ ­1

ï

 

x

 

-1

 

если

-1< x £ 2

 

 

 

f (x) = í

 

 

 

ï

 

2x - 3

 

если

 

x > 2

î

 

 

 

 

 

 

 

 

 

 

 

 

 

ì

3x­5

+1.5

если

0£ x < 2

 

 

ï

 

 

2

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

ï

 

3

 

4x

 

 

 

если

2£ x £ 3

f (x) = í

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

2

 

 

 

 

 

 

 

 

если

x > 3

ï

 

 

 

 

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ìx2

 

 

 

 

 

 

 

при

- 2 £ x < 2

ï

 

2

+ 4x

+ 3 при

 

x ³ 2

f (x) = íx

 

 

ï4

 

 

 

 

 

 

 

 

в противном случае

î

 

 

 

 

 

 

 

 

 

 

 

 

 

ì0

2+x

при

 

x £ 0

 

 

ï

 

 

 

 

при

0< x £1

f (x) = íx

 

 

 

 

 

 

 

ï

 

4.1

в остальных случаях

îx

 

 

 

 

ì0

 

 

 

 

 

 

 

 

 

 

 

при

x £ 0

 

 

 

ìex

 

 

при

 

x ³ 0

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x) =

ï

 

 

1

 

 

 

 

 

 

 

2.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

í

 

 

 

 

 

 

 

 

f (x) = íx

 

 

 

 

- x

 

 

при 0 < x £ 1

 

 

ï-

 

 

 

 

при

 

x < 0

 

2

 

 

 

 

e

x

 

 

 

ï

 

- sinpx востальныхслучаях

к)

 

î

 

 

 

 

 

 

 

 

 

îx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì

 

 

1- sin x

 

 

 

 

если

0 £ x < 2.3

 

ì- x2.1 +1.5× 2x если

x £ -1

ï

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x) = í

 

 

× (1+ cosx)

если

2.3£ x < 5

 

f (x) = í ln

3+ x

+1

 

если

-1< x £ 2

 

2

 

 

ï

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

ï

2

x

- 3

 

 

 

если

x > 2

 

 

 

 

 

 

ctg

x

 

 

 

 

 

если

x ³ 5

м)

î

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ì

3x + 4

+1.5

 

 

 

если

0£ x <1.6

 

ì 1+ arcsinx

 

если

0 £ x < 1.4

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

2x­5

f

+ (arccosx)

2

если

1.4 £ x < 2.5

ï

 

 

 

 

 

 

 

 

 

 

(x) = í1

 

ï

2.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

ctg

3

x

 

если

x ³ 2.5

1

+ x

 

 

 

 

 

 

 

если

1.6£ x £ 4

 

 

 

f (x) = í

 

 

 

 

 

 

 

 

 

 

 

î

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

6p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

2

×ln

3+

 

 

если

x > 4

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

о)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ìx2.3

 

 

 

 

 

 

 

 

 

 

при - 2 £ x < 1

 

 

 

 

 

 

 

 

 

 

 

 

 

ï

 

2

 

+ 5x

1.5

+1 при

x ³ 1

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x) = íx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ï7

 

 

 

 

 

 

 

 

 

 

 

в противном случае

 

 

 

 

 

 

 

 

 

 

 

 

 

î

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание №2

Подготовить дома программу вычисления y=f(x), где функция f(x) задана графиком (графики в конце работы), описав их в виде одного оператора. Результат последовательно представить в бесформатном виде, формате с плавающей точкой (ширина поля 8­9 символов) и в формате с фиксированной точкой (до 3­его знака после точки).

y

yx y=x2

 

 

x

 

a

 

 

y

 

yx+1

yx2/4+1

1

2

x

 

г

y

yx8/3 yx2

x

ж

y

y=log x

1

1 x

к

y

yx

x yx2

y

1

ycos x

π x

-1

б

y

 

1

ysin x

-π/2

π/2 x

­1

 

д

y

1

ycos x

π x

­1

з

 

 

y

 

 

1

 

 

 

-π/4

 

 

 

 

π/4

x

­1

ytan x

 

 

л

 

 

 

 

y

y=4

 

y=

1

 

y=x2

 

2

 

 

 

x

 

 

­1

2

x

y

1

­1

1

3 4

x

в

y

1

­1

3 4 5

x

е

y

y=(x+1)2 1

2 3 4

x

и

y

1

­1

1 2

x

м

y

1

­2 ­1

1 2

x

н

о

п

Задание №3

Знать и выписать дома в тетради алгоритмы:

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

Подготовить дома и показать на занятии преподавателю работу не менее чем 6 программ из списка задач для выполнения лабораторной работы. Задачи 1, 11 (или 12) и 37 выполняют все.

СПИСОК ЗАДАЧ ДЛЯ ВЫПОЛНЕНИЯ ЛАБОРОТОРНОЙ РАБОТЫ

1*(Алгоритм обмена. Выполняют ВСЕ!.). Поменяйте между собой значения двух переменных А и В, воспользовавшись третьей переменной R для вре­менного хранения значения.

2. Поменяйте между собой значения трех переменных X, Y и Z по схеме тройного

квартирного обмена:

X→Y→Z→X.

3.Запишите на Паскале оператор, вычисляющий длину орбиты Земли. Указание: считать орбиту окружностью с радиусом в 150 млн. км.

4.Найдите сумму членов арифметической прогрессии a, a+d, a+2*d, .... a+n*d по задан­ ным значениям a, d и n.

5.Вычислите расстояние между двумя точками с коор­динатами Х1, Y1 и Х2, Y2.

6.Переменные А, В и С содержат длины сторон треуголь­ника. Вычислите его площадь и сохраните ее в перемен­ной S.

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

8.Возведите число А в пятую степень, в шестнадцатую сте­пень.

Возведите число А в степень 3,62.

9.Переменная Х содержит трехзначное целое число. По­местите в переменную S сумму цифр этого числа.

10.Дано вещественное число Х (­1<=Х<=1). Вычислите значение функции arcsin X, используя для этого стандарт­ные функции Паскаля.

11*(схема Горнера. Выполняют ВСЕ!.). Дано вещественное число X. Вычислите значение поли­нома 2х4­ Зх3 + 4x2 ­ 5х + 6, выполнив для этого как можно меньше арифметических операций.

12*(схема Горнера.). Дано вещественное число X. Вычислите значение поли­нома 3.5х6 +2х4 – 4.1x2 + 3, выполнив для этого как можно меньше арифметических операций.

13.Напишите программу, которая запрашивает два числа, находит остаток от деления первого на второе и выводит результат.

14.Напишите программу, которая вводит три числа, складывает их и выводит результат. Используйте как можно меньше переменных.

15.Введите число. Напечатайте 1, если число четное, и 0, если число нечетное.

16.Выведите на экран первые десять степеней числа 2.

17.Выведите на экран слово ПАСКАЛЬ высотой в 8 строк.

18.Найти остаток от деления целой части значения функции z = ln(x2+ab) на 7, если он не равен 0 вывести на экран округленное значение функции z и ее целую часть.

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

20.Определить координату середины отрезка [а,b], если a=0,5, b=2.

21.Определить расстояние, пройденное физическим телом за время t, если тело движется с постоянным ускорением а и имеет в начальный момент времени скорость

Vo.

22.Определить время свободного падения физического тела с высоты H.

23.Вычислить площадь треугольника по формуле Герона, если заданы его сторо­ны.

24.Найти действительные корни квадратного уравнения вида ax2+bx+с=0 (если действительных корней нет, то выдать соответствующее сообщение).

25.Из величин, определяемых выражениями a=sinx, b=cosx, c=ln(x) при за­данном x, определить и вывести на экран дисплея минимальное значение

26.Определить, какая из двух точек ­ M1(X1,Y1) или M2(X2,Y2) ­ расположена ближе к началу координат. Вывести на экран дисплея координаты этой точки.

27.Определить, попадает ли точка М(Х,Y) в круг радиусом r с центром в точке (X0,Y0)

28.По данным сторонам прямоугольника вычислить его периметр, площадь и длину диагонали.

29.Определить координаты вершины параболы у=аx2+bx+с (a?0) Коэффициенты a,b,c заданы.

30.Определить расстояние на плоскости между двумя точками с заданными ко­ ординатами M1(X1,Y1) и М22,Y2)

31.Студент начал решать задачи данного урока программирования, когда элек­тронные часы показывали h1 часов и min1 минут, а закончил, когда было h2 часов и тт2 минут Составьте программу, позволяющую определить, сколько времени студент ре­шал эти задачи (Будем считать, что задачи решались не дольше суток).

32.Даны два числа. Найти среднее арифметическое их квадратов и среднее арифметичес­кое их модулей.

33Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч (U < V). Время движения лодки по озеру T1 ч, а по реке (против течения) — T2 ч. Определить путь S, пройденный лодкой.

34.Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили удаляются друг от друга.

35.Найти площадь кольца, внутренний радиус которого равен R1, а внешний радиус равен R2 (R1 < R2).

36.Дано целое четырехзначное число. Используя операции div и mod, найти сумму его цифр.

37*(выбор наибольшего или наименьшего значения. Выполняют ВСЕ!.). Из трех данных чисел выбрать наименьшее (наибольшее).

38.Значения переменных X, Y, Z поменять местами так, чтобы они оказались упорядоченными по возрастанию.

39.Дан номер месяца (1 — январь, 2 — февраль, ...). Вывести число дней в этом месяце для невисокосного года.

40.Дано целое число в диапазоне 0 – 9. Вывести строку — название соответствующей цифры на русском языке (0 — "ноль", 1 — "один", 2 — "два", ...).

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

42.Даны действительные положительные числа х, у, z.

а) Выяснить, существует ли треугольник с длинами сто­рон х, у, z.

б) Если треугольник существует, то ответить, являет­ся ли он остроугольным.