130
2 А.А.Руденко, А.Г. Руденко, Н.А Руденко, В.Ф. Лебедева ПРАКТИКУМ ПО АЛГОРИТМИЧЕСКОМУ ПРОГРАММИРОВАНИЮ БЕЙСИК ProCNC. Info 2008

Практикум по программированию. БЕЙСИК

  • Upload
    vspraga

  • View
    3.547

  • Download
    3

Embed Size (px)

DESCRIPTION

Для учителей и преподавателей информатики.Авторы : Андрей Руденко и др.

Citation preview

2

А.А.Руденко, А.Г. Руденко, Н.А Руденко, В.Ф. Лебедева

ПРАКТИКУМ

ПО АЛГОРИТМИЧЕСКОМУ ПРОГРАММИРОВАНИЮ

БЕЙСИК

ProCNC. Info

2008

3

СОДЕРЖАНИЕ

ПРЕДИСЛОВИЕРАЗДЕЛ 1. АЛГОРИТМИЧЕСКИЙ ЯЗЫК БЕЙСИК …………………………. 7

ГЛАВА 1. НАЧАЛЬНЫЕ СВЕДЕНИЯ ………………………………………………….7

1.1. Алфавит языка Бейсик………………………………………………………7

1.2. Константы и переменные…………………………………………………….8

1.3. Арифметические выражения и их запись на языке Бейсик………………..9

ГЛАВА 2. СТРУКТУРА ПРОГРАММЫ. ОПЕРАТОРЫ ПРИСВАИВАНИЯ,

ВВОДА И ВЫВОДА. ЛИНЕЙНЫЕ ПРОГРАММЫ……………………………….10

2.1. Оператор присваивания…………………………………………………… 10

2.2. Операторы ввода ………………………………………………….……… 11

2.3. Операторы вывода…………………………………………………………..12

2.4. Линейные программы……………………………………………………….13

ГЛАВА 3. ОПЕРАТОРЫ УПРАВЛЕНИЯ……………………………………………… 15

3.1. Оператор безусловного перехода…………………………….…………… 15….

3.2. Оператор условного перехода……………………………….…………….. 15

ГЛАВА 4. МАССИВЫ. РАБОТА С МАССИВАМИ……………………………………. 25

4.1. Описание массива…………………………………………….……………. 25

4.2. Блоки данных и чтение из блока данных………………………………….26

4.3. Программы с массивами……………………………………………………28

ГЛАВА 5. ОПЕРАТОР ЦИКЛА………………………………………………………………… 30

5.1. Структура счетного оператора цикла FOR………………………………30

4

5.2. Примеры циклических программ…………………………………………32

5.3. Цикл DO…………………………………………………………………….36

5.3.1. Цикл предусловием……………………………………………….. 36

5.3.2. Оператор цикла LOOP WHILE……………………………….. 37

5.3.3. Оператор цикла DO UNTIL, LOOP UNTIL……………………38

ГЛАВА 6. ПОДПРОГРАММЫ…………………………………………………………………… 45

6.1. Функции пользователя ……………………………………………… 45

6.2. Подпрограммы……………………………………………………………. 48

ГЛАВА 7. ЛИТЕРНЫЕ ВЕЛИЧИНЫ. ПРОГРАММЫ С ЛИТЕРНЫМИ

ВЕЛИЧИНАМИ………………………………………………………………………. 56

7.1. Литерные величины……………………………………………………… 56

7.2. Примеры программ с литерными (символьными) величинами……… 59

РАЗДЕЛ 2. СБОРНИК УПРАЖНЕНИЙ “UP “………………………………….. 61

2.1. Инструкция к выполнению заданий…………………………………….. 61

2.2. Упражнения к главе 1 “UP-1”: Константы и переменные,

арифметические выражения в языке Бейсик…………………………… 63

2.3. Упражнения к главе 2 “ UP-2 “:Операторы присваивания,

ввода- вывода. Линейные программы………………………………….…64

2.4. Упражнения к главе 3 “UP-3 “: Операторы передачи управления.

Программы с разветвлениями………………….……………………….. 65

2.5. Упражнения к главе 4 “UP-4 “: Массивы ………….……………………67

2.6. Упражнения к главе 5 “UP-5“: Операторы цикла………….…………….69

2.7. Ответы к упражнениям “UP“…………………………………………….. 71

РАЗДЕЛ 3. СБОРНИК ЛАБОРАТОРНЫХ РАБОТ ПО

АЛГОРИТМИЧЕСКОМУ ЯЗЫКУ БЕЙСИК…………………….. 72

3.1. Требования к оформлению лабораторных работ……………………………72

5

3.2. Лабораторная работа “ L1 “: Записи арифметических

выражений на языке Бейсик………………………………………………….72

3.3. Лабораторная работа “ L2 “: Операторы присваивания, ввода-вывода….75

3.4. Лабораторная работа “ L3 “: Операторы передачи управления

. Программы с разветвлениями…………………………………77

3.5. Лабораторная работа “ L4 “: Массивы. Оператор цикла …………………81

3.6. Лабораторная работа “ L5 “: Подпрограммы…………… ………………...86

РАЗДЕЛ 4. ОТВЕТЫ И КОМПЬЮТЕРНЫЕ ПРОГРАММЫ

К ЛАБОРАТОРНЫМ РАБОТАМ……………………………………. 92

4.1. Лабораторная работа “ L1 “…………………………………………………..92

4.2. Лабораторная работа “ L2 “…………………………………………….…….94

4.3. Лабораторная работа “ L3 “…………………………………………….……102

4.4. Лабораторная работа “ L4 “……………………………………………..… 106

4.5. Лабораторная работа “ L5 “…………………………………………………119

6

ПРЕДИСЛОВИЕОбщество стало перед необходимостью повсеместного внедрения в производственный

процесс компьютерной техники. Начало всему этому должно быть в школе. В большинстве

школ созданы компьютерные классы, но эти классы недостаточно снабжены методическими

пособиями, сборниками лабораторных работ и упражнений, компьютерными программами.

Авторами предлагается пакет методических пособий и компьютерых программ не только

для компьютерных классов средней школы, но и для любого читателя, пытающегося

самостоятельно научиться программировать. Следует отметить, что аналогичные работы

авторам не встречались.

В качестве алгоритмического языка взят язык Бейсик. Его структура, операторы изложены

в разделе 1, содержащего 7 глав. Здесь работа каждого из рассмотренных операторов

иллюстрируется большим количеством компьютерных программ.

Для закрепления теоретического материала создан пакет упражнений ”UP”(раздел 2).

Читатель, находясь за компьютером, должен ответить на ряд вопросов. Ответы на все вопросы

приведены в конце раздела.

В разделе 3 приведен сборник лабораторных работ. Тексты лабораторных работ

составлены ко всем главам раздела 1. Предполагается, что читатель выбирает из этого раздела

текст задачи, составляет блок-схему и компьютерную программу. Желающие могут перерешать

все задачи лабораторных работ.

Конечная цель лабораторных работ: усвоить теоретический материал, создать

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

.В разделе 4 в помощь читателю приводятся распечатки компьютерных программ

лабораторных работ и числовые значения (ответы).

Многолетняя работа авторов в высших учебных заведениях позволяет сделать вывод, что

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

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

программировать необходимые ему задачи и пользоваться более фундаментальными

источниками по алгоритмическим языкам.

7

Раздел 1. Алгоритмический язык Бейсик

Глава 1. Начальные сведения

1.1. Алфавит языка БейсикАлфавит языка – это совокупность символов, из которых образуются слова и

предложения языка. Алфавит составляют следующие группы символов:

1) прописные и строчные буквы латинского алфавита;

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

3) арабские цифры Ø 1 2 3 4 5 6 7 8 9.

Цифру Ø рекомендуется перечеркивать в тех случаях, когда ее можно спутать с буквой О;4) знаки действий +, -, *, /, ^, обозначающие соответственно сложение, вычитание,

умножение, деление, возведение в степень;

5) знаки отношений (равенств, неравенств):

> < = >=больше меньше равно больше либо равно

<= < >меньше либо равно не равно

6) скобки ( ) только круглые, применяются для указания порядка действия в

математических формулах;

7) разделители и специальные знаки: . , ; : ” и другие, применение которых будет

разъяснено в дальнейшем;

8) имена стандартных функций:

sin – синус; cos – косинус;

tan- тангенс Atn – арктангенс;

8

Log – натуральный логарифм; EXP – число е;

Sqr– квадратный корень; Abs – абсолютная величина числа;

Sgn- функция знака.

Аргументы стандартных функций заключаются в круглые скобки.

Например: sin(x), Log(x), Abs(x).

Аргументы тригонометрических функций sin(x), cos(x) и значение функции Atn(x) выражаются

в радианах.

9) служебные слова, например:

DATA - данные READ - читать PRINT- печатать

IF - если THEN - тогда FOR - для

ELSE – иначе END - конец

1.2. Константы и переменные.

Величины делятся на постоянные (константы) и переменные.

В языке Бейсик используются константы трех типов: целые, вещественные

(действительные) и литерные.

Целые константы записываются в виде последовательности десятичных цифр, перед

которой может быть знак плюс или минус. Константа без знака считается положительной.

Например: 128, - 1325, +781, 12, 50.

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

или в экспоненциальной форме. При записи числа в форме с фиксированной точкой точка

используется для отделения целой части от дробной. Например: 2.375; - 11.71; 0.3175. Целая

часть, равная нулю, может быть опущена. Так число 0.78 можно записать .78

Вещественные константы, записанные в экспоненциальной форме, состоят из мантиссы и

порядка, отделенного от мантиссы буквой «Е»,заменяющей10.

Например: 14000=1.4*104=1.4Е4; 1.3*105=1.3Е5; Наличие мантиссы в записи числа

обязательно, если даже она равна 1. 106=1Е6.

9

Примеры неправильно записанных чисел:

12. – оканчивается точкой;

Е-21 – начинается с символа порядка; -14.Е21 – мантисса оканчивается точкой;

15.12.14 – содержит две точки; Е13 – начинается с символа порядка после знака.

Пример правильной записи этих чисел: 12 1Е-21 -14Е21 151214 1Е13

Литерные константы – это набор любых символов алфавита, заключенный в кавычки.

Например: ”слон”, ”класс”, ”ученик”.

Переменная – это величина, которая меняет свои значения в процессе выполнения

программы. Для переменной величины вводится обозначение, которое называется именем и

назначается программистом. Имя переменной (идентификатор) состоит из букв латинского

алфавита или буквы, за которой следует цифра. Например: Х, А, А1, D, super.

1.3. Арифметические выражения и их запись.

Арифметические выражения строятся из констант, переменных, стандартных функций с

помощью знаков действий +, -, *, / ,^ и круглых скобок.

При записи арифметических выражений следует придерживаться таких правил:

1) выражения записываются в строку без каких-либо подстрочных или надстрочных знаков;

2) вычисляют значение выражения слева направо в порядке старшинства операций:

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

При наличии скобок в первую очередь выполняются действия в скобках;

3) число открытых и закрытых скобок должны быть одинаковым;

4) если в операции участвуют величины целого типа, то результат будет целым;

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

сообщение об ошибке.

10

Примеры

№ Математическая запись Запись на Бейсике

1 A/(B*C) или A/B/C

2 SQR(3*X+SQR(ABS(X)))

3 sin|x| SIN(ABS(X))

4 EXP(-X^2/2)

Глава 2. Структура программы. Операторы присваивания,

ввода и вывода. Линейные программыЗапись алгоритма решения задачи на специальном языке, предназначенная для выполнения

компьютером, называется программой.

Программа представляет собой последовательность действий (команд). В языках

программирования команды принято называть операторами. Каждый оператор записывается в

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

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

программы. Завершается программа оператором END.

2.1. Оператор присваивания Оператор присваивания имеет вид:

Х=А

где Х – имя переменной;

А – арифметическое выражение.

При выполнении этого оператора вычисляется значение арифметического выражения,

стоящего справа, и полученное значения присваивается переменной Х.Знак равенства « =»

означает «присвоить».

11

Пример 2.1. Пусть Х=32+sin .

В программе Х получает значение в результате выполнения операторов присваивания:

10 PI=3.1415 20 X =3^2+SIN(PI/6)

Переменной Х будет присвоено значение 9.5.

В правую часть оператора присваивания могут входить имена переменных, но к моменту

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

Числовые значения переменные получают либо с помощью оператора присваивания, либо с

помощью ввода.

Пример 2.2 Вычислить периметр Р прямоугольника, если стороны а= 13.5, b= 7.2.

Периметр Р=2а+2b

Периметр может быть вычислен с помощью следующей последовательности операторов

присваивания:

10 А=13.5 20 В=7.2

30 Р=2*А+2*В

В операторе присваивания в левой и правой частях может стоять одно и то же имя

переменной.

Например: Х=Х+5.5

Это означает, что переменная Х принимает новое значение равное прежнему плюс 5.5.

Пусть Х=2. В результате выполнения оператора присваивания Х получает значение 7.5 и в

последующих вычислениях значение Х равно 7.5.

2.2. Операторы ввода

Обмен информацией между человеком и ЭВМ осуществляется с помощью внешних

устройств ввода-вывода и соответствующих операторов.

Для ввода значений переменных с клавиатуры используется оператор input

(ввести),который имеет вид:

INPUT список переменных

12

Список переменных - это имена переменных, которые отделяются друг от друга

запятыми. Например: для присваивания начальных значений переменным A,B,C оператор

ввода можно записать так: 30 INPUT A,B,C

При выполнении оператора INPUT на экране дисплея появляется знак ” ? ” и ЭВМ ожидает

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

каждой переменной оператора INPUT , отделив их друг от друга и нажать клавишу ENTER- ”

ввод ”. Количество и тип вводимых значений должен соответствовать количеству и типу

переменных в списке оператора INPUT.

Пример 2.3. Периметр прямоугольника может быть вычислен с помощью такой

последовательности операторов:

10 INPUT A

20 INPUT B

30 P=2*A+2*B

2.3. Оператор вывода

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

PRINT список выражений

PRINT - печатать.

Выражения – это константы, имена переменных, функции.

Выражения в списке отделяются друг от друга запятой или точкой с запятой. Если

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

выводятся через пробел.

30 PRINT 1; 2; 3

На экране будет

1 2 3

13

Если разделителем является запятая, то строка экрана делится на зоны по 14 позиций в

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

30 PRINT 1.2, 3.75,- 5.2

1 . 2 3 . 7 5

Если выводимая информация не помещается в одной строке экрана дисплея, то ЭВМ

продолжает ее вывод в последующие строки.

Оператор PRINT при отсутствии списка выражений обеспечивает вывод пустой строки.

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

на экране:

30 PRINT ”X1=2.5”

X 1 = 2 . 5

или 30 PRINT ”X1= ”; X1

X 1 =

После знака « = » печатается значение переменной X1, которое получилось в расчетах.

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

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

геометрического и среднего гармонического двух чисел a и b.

Среднее арифметическое2

baS += .

Среднее геометрическое abG = .

Число С называется средним гармоническим чисел a и b, если

14

)11(211

bac+= . Отсюда

baabc+

=2

Программа имеет вид:

10 A=5

20 B=7

30 S=(A+B)/2

40 G=SQR(A*B)

50 C=2*A*B/(A+B)

60 PRINT ”S=”; S; ”G=”; G; ”C=”; C

70 END

Пример 2.5. Вычислить значение S многочлена dcxbxax +++ 23 при заданных

коэффициентах a, b, c, d и фиксированном x.

dxcxbax +++ ))(( - многочлен записан по схеме Горнера.

Пусть a=2.5, b=3.1, c=-4.2, d=1.8, x=2.

Программа имеет вид:

10 INPUT A

20 INPUT B

30 INPUT C

40 INPUT D

50 INPUT X

60 S=A*X+B )( bax +70 S=S*X+C cxbax ++ )((

90 PRINT ”S=”; S dxcxbax +++ ))((

100 END

На экране результат имеет вид: S= 25.8

15

Глава 3. Операторы управления

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

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

управления.

3.1. Оператор безусловного перехода

Оператор безусловного перехода имеет вид:

и осуществляет переход к оператору программы с номером n.

Пример 3.1.10 A=2

20 C=A+1

30 GOTO 50

40 C=A+2

50 PRINT ”C=”; C

60 END

Результат вычислений c = 3.0

Оператор 30 GOTO 50 передаёт управление оператору с номером 50. На экранемонитора появляется информация: с = 3.Оператор с номером 40 с= A +2 выполняться не будет.

3.2. Оператор условного перехода

Оператор условной передачи управления имеет вид:

IF B (логическое выражение) THEN

Первый блок операторов

ELSE

Второй блок операторов

END IF

GOTO n

16

IF (если), THEN (то), ELSE (иначе) – служебные слова.

Логическое выражение B принимает одно из двух возможных значений:

«истина» (да) или «ложь» (нет).

В простейшем случае – это отношения вида:

A1=A2, A1>A2, A1<A2, A1>=A2, A1<=A2, A1<>A2.

А1 и А2 – арифметические выражения.

Выполнение условного оператора можно изобразить в виде блок – схемы

.

На схеме B- логическое условие, P и Q – операторы.

Каждый блок операторов состоит из одного или нескольких операторов. Если логическое

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

оператору END IF (конец структуры IF).

Если же логическое выражение ложно, то выполняется стоящий после служебного слова ELSE

(иначе) второй блок операторов.

Служебное слово ELSE и оператор END IF должны занимать отдельные строки .

Оператор END IF записывается в виде двух слов с пробелом между ними и всегда должен

завершать блок структуры IF.

Пример 3.2. Определить значение переменной С, которое она получит при выполнении

программы. 10 C = 2.5

20 K = -1.5

30 A = (C ^ 2 - K) * 3 - 13

40 IF A < 0 THEN

В Р

Q Следующий оператор

истина

17

50 C = (A + C) / 2

60 ELSE

70 C = (A - K) / C

80 END IF

90 PRINT "C="; C

100 END

Результат: С=4.

Когда часть ELSE оператора IF опускается, то используется неполная форма условного

оператора

IF B (логическое выражение) THEN

Блок из одного или нескольких операторов

END IF

Блок -схема выполнения этого оператора имеет вид:

В зависимости от условия В оператор Р выполняется или нет.

Р – оператор или номер строки, которой передаётся управление.

Пример 3.3.10 A=5

20 B=7

30 IF A<B THEN

40 C=B

41 “ PRINT “C=”; C

50 END IF

60 PRINT “A>B”

70 END

В зависимости от значения условия A<B выполняется оператор C=B или управление

передается оператору следующему за оператором END IF. Ответ: C= 7.

истина

ложь

В Р Следующий

18

Пример 3.4.10 A=10

20 B=20

30 IF B>A THEN 70

40 C=A+B

41 END IF

50 PRINT ”C=’’; C

60 GO TO 80

70 PRINT ”C=”; A-B

80 END

В результате выполнения программы С имеет значение: С= -10.

Используется также простой вариант структуры IF.

IF B THEN P ELSE Q

Здесь В - условие, P и Q – операторы.

В этой структуре весь оператор должен быть записан на одной строке и присутствие

оператора END IF не требуется.

Пример 3.5. 10 B = 2.5

20 K = -1.5

30 A = (B ^ 2 - K) * 3 - 1

40 IF A < 0 THEN B = (A + B) / 2 ELSE B = A

50 PRINT "B="; B

60 END Результат: В= 22.25

Примечание:

Условные операторы могут быть вложены один в другой,т.е либо оператор 1, либо оператор

2, либо оба могут быть условными операторами.

Пример 3.6. Пусть A=2 , B=4 , C=6, D=8. Какй результат выдаст следующая пограмма? 10 A = 2

20 B = 4

30 C = 6

40 D = 8

50 IF A > B THEN

60 IF C < D THEN

19

70 IF C < 0 THEN

80 C = A + B

85 END IF

86 END IF

90 ELSE

100 IF A < B THEN

110 IF C < D THEN

120 C = A - B

130 END IF

135 END IF

136 END IF

140 PRINT "C="; C

150 END

Результат: С= -2.

Условие B может быть составным. Составные условия образуются из отношений и знаков

логических операций:

AND (и) – логическое умножение; NOT (не) – логическое отрицание; OR (или) – логическое сложение

.

№ Математическая запись Запись на Бейсике

1 -6 ≤ Х ≤ 2 Х >= -6 AND Х <= 22

Y

1 X

X^2+Y^2<=1 AND X>0

3 Х< -3 X>4 -3 4

X < -3 OR X > 4

0

20

Пример 3.7.10 A=1020 B=2030 X=540 Y=350 IF A<B AND X>Y THEN Z=X+Y60 PRINT ”Z=”; Z70 END

Результат выполнения программы: Z = 8

Оператор ELSEIF

Существует расширенный вариант стуктуры IF- THEN- ELSE, который обеспечивает передачу

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

ELSEIF (иначе если).

Пример 3.8. 10 X = -2

20 IF X >= -2 AND X <= 0 THEN

30 Y = ABS(X)

40 ELSEIF X > 0 AND X < 1 THEN

50 Y = SQR(X)

60 ELSEIF X >= 1 AND X <= 2 THEN

70 Y = EXP(X)

80 END IF

90 PRINT "X="; X, "Y="; Y

100 X = X + .5

110 IF X <= 2 THEN GOTO 20

120 END

X=-2 Y=2 X=-1.5 Y=1.5 X=-1 Y=1 X=- .5 Y= .5

X=0 Y= 0X= .5 Y= 7071068

X=1 Y=2.718282 X=1.5 Y=4.481689 X=2 Y=7.389056

21

Пример 3.9. Определить значение переменной Х, которое она получит при выполнении

программы.

10 X = 2.5

20 Y = -1.5

30 Z = (X ^ 2 - Y) * 3 - 22.5

40 IF Z < 0 THEN

41 X = 7.3 * X

50 ELSE

51 X = X ^ 2

60 END IF

70 IF Z > 10 THEN

71 X = (Z + X) / 2

80 END IF

81 PRINT "X="; X

90 END

Ответ: Х=6.25

22

Пример 3.10. Составить программу нахождения корней квадратного уравнения

02 =++ cbxax .

aacbbx

242

1-+-

= ;a

acbbx2

42

2---

=

Задачу просчитать для двух случаев: 1) а = 2 , b = 3 , c = -1 . 2) a = 2 , b = 1, c = 7. Составим

блок – схему решения задачи

10 PRINT "Решение квадратного уравнения”

20 INPUT A

30 INPUT B

40 INPUT C

Начало

Описаниеи ввод

d: = -4ac

d<0 Вычисление X1, X2

Выводa, b, c; X1, X2

Вывод «Действительных корней нет»

Конец

НЕТ

ДА

23

50 D = B ^ 2 - 4 * A * C

60 IF D < 0 THEN 110

70 x1 = (-B + SQR(D)) / 2 / A

80 x2 = (-B - SQR(D)) / 2 / A

90 PRINT "X1="; x1, "X2="; x2

100 GOTO 120

110 PRINT "Действительных корней нет120 END

Рeшeниe квадратного уравнения

a=2 b=3 c=-1 x1= 0.2808 x2= -1.7808

Пример 3.11. Составить таблицу значений функции y = +4x-1 на отрезке [a;b] с шагом h.

Принять: a = -2; b =2 ; h = 0,5.

Блок – схема

Начало

Описание a, b, h X, Y Ввод a, b, h.

x = a

y = +4x-1

Вывод X,Y

х: = x + h x ≤b

Конец

да

Нет

24

10 PRINT " Табулирование функции "

20 INPUT A

30 INPUT B

40 INPUT H

50 PRINT "X", "Y"

60 X = A

70 Y = X ^ 3 + 4 * X - 1

80 PRINT X, Y

90 X = X + H

100 IF X <= B THEN 70

110 END

Табулирование функции a=-2 b=2 h=0.5 x y

-2.000 -17.000

-1.500 -10.375

-1.000 -6.000

-0.500 -3.125

0.000 -1.000

0.500 1.125

1.000 4.000

1.500 8.375

2.000 15.000

25

Глава 4. Массивы. Работа с массивами4.1. Описание массива

Множество величин, обладающих одинаковыми свойствами, объединяются в массив.

Например: массивом могут быть ученики школы; каждый ученик представляет собой элемент

этого массива.

Массивом может быть строка чисел А = [9,14,20,40] или прямоугольная таблица чисел

В =

Массив, состоящий из одной строки, называется одномерным. Массив, представляющий собой

таблицу чисел, называется двумерным.

Массив А – одномерный, массив В – двумерный.

Массив как единое целое обозначается именем. Имена массивов, как и имена переменных,

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

называются элементами массива или переменными с индексами.

Для обращения к отдельному элементу массива следует указать имя массива и в круглых

скобках написать его номер. Нумерация элементов массива начинается с нуля. Например: для

обращения в массиве А к элементу, значение которого 20, необходимо записать А(2) Если

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

индекс указывает номер строки, второй - номер столбца.

Например: в массиве В: В (0,0)=1; В(2,0)=7; В (2,1)=8; В (1,1)= -6.

Номер элемента может быть константой, именем переменной или выражением.

Например: А( 2), А( і ), А(і+2), В(i,j), B( i+k,2), B(i*2,k+i).

Элементы одномерного массива расположены в ячейках памяти ЭВМ друг за другом в

порядке возрастания номеров. Например: А(0), А(1), А(2), А(3)…

Элементы двумерного массива располагаются построчно: В(0,0), B (0,1), В (0,2),

B(0,3), B(1,0), B(1,1)…

26

Например: массив В = в ячейках памяти ЭВМ располагается следующим

образом: 3, 5, 7, 2, 0, -1, -1, -3.

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

равна нулю. Размерность массива А равна 3, массива В в последнем случае - (1, 3).

Для того, чтобы выделить ячейки памяти ЭВМ для массивов в программе их надо описать.

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

Например:

DIM – служебное слово ( от DIMENSION - размерность);

А, В - имена массивов, (3), (1,3) – размерности массивов.

Элементы массивов могут входить в состав арифметических выражений.

4.2. Блоки данных и чтение из блоков данных

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

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

данные хранятся.

Блок данных – набор чисел(или строковых данных), предназначенных для ввода в память.

Признаком присутствия блока данных является служебное слово

DATA

Операторы DATA используются для хранения числовых значений в памяти.

Отдельные значения в операторе DATA разделяются друг от друга запятыми.

DATA 40, 70.5, -3.27, 4.15, 8

В одном операторе DATA может быть столько чисел,сколько поместится в одной строке.

Для чтения данных используется оператор,который имеет вид:

READ A, B, C

READ (читать) – служебное слово;

DIM A(3), B(1,3)

27

A, B, C – имена переменных, которым присваиваются значения из блока данных.

В данном случае А получит значение 40 , В =70.5, С=-3.27.

Число имен в списке оператора READ не должно превышать числа констант в блоке

данных,иначе машина выдаст сообщение об ошибке и остановится. Если число имен в списке

READ меньше числа констант в блоке данных,то некоторые константы останутся пока

неиспользованными. При появлении нового оператора READ чтение еще неиспользованных

данных будет продолжено.

В программе может быть любое количество операторов DATA. Операторы DATA можно

помещать в любом месте программы до оператора END. Когда начинает работать программа,то

одним из действий компьютера является поиск операторов DATA и запись значений из этих

операторов в специальную секцию памяти.

Операторы READ читают DATA по порядку (по номеру строки).Тип переменных, задаваемый

для оператора READ должн совпадать с типом соответствующей константы в операторе DATA.

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

оператор

RESTORE

Например: 10 DATA 40 , 70.5, -3.27, 4.15, 8, 3

20 READ A, B, C

40 READ Q

Переменная Q получит значение, которое уже получила переменная А, Q=40.

Примечание. Операторы DATA используются также для хранения строковых значений в

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

пробелы или другие отличные от букв символы (цифры,.точки,различные знаки и т.п.). В

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

10 DATA ДОМ , ОГОРОД, "САД 300 КВ . М "

20 DATA "ПЕСИКИ, ГРУШИ, СЛИВЫ"

28

4.3. Программы с массивами

Пример 4.1. Дан массив А(1). Сформировать массив В(1,1) по правилу b (i,j)=аi – 3aj.. i=0,1;

j=0,1. A(0)=3.4; A(1)=4.2.

Программа

10 DIM A(1), B(1, 1)

20 DATA 3.4, 4.2

30 READ A(0), A(1)

40 B(0, 0) = A(0) - 3 * A(0)

50 B(0, 1) = A(0) - 3 * A(1)

60 B(1, 0) = A(1) - 3 * A(0)

70 B(1, 1) = A(1) - 3 * A(1)

80 PRINT B(0, 0), B(0, 1)

90 PRINT B(1, 0), B(1, 1)

100 END

-6.8 -9.199999

-6 -8.4

Пример 4.2. Найти сумму положительных и отрицательных элементов массива А(5) = 2.5,

- 3.4, - 7.1, 0.5, - 4.7, 6.

. Программа10 DIM A(5)

20 DATA 2.5, -3.4, -7.1, 0.5, -4.7,6

30 SP = 0

40 SO = 0

50 I = 0

60 READ A(I)

70 IF A(I) >= 0 THEN SP = SP + A(I) ELSE SO = SO + A(I)

80 I = I + 1

90 IF I <= 5 THEN 60

100 PRINT "SP="; SP, "SO="; SO

110 END

SP= 9 SO= -15.2

29

Блок – схема

SP – сумма положительных чисел;

SO – сумма отрицательных чисел.

да

нет

да нет

начало

Описание массива,объявление данных

SP=0

SO=0

I=1

вводэлементамассива

A(i)>=0

SO = SO+A (I)

SP=SP+A(I)

I=I+1 I<=6

выводSP,SO

конец

30

Глава 5. Оператор цикла

5.1. Структура счетного оператора цикла FOR

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

последовательности операторов. В этом случае применяется оператор цикла.

Конструкция счетного оператора цикла:

FOR X=m1 TO m2 STEP H --------- блок операторов, ---------- исполняемых многократно NEXT X

X – простая переменная, называемая параметром цикла;

m1 – начальное значения параметра цикла;

m2 – конечное значения цикла.

H -шаг изменения параметра.

Здесь служебные слова:

FOR (для), TO (до), STEP (шаг ), NEXT (следующий)

m1, m2, H должны получать значения до начала выполнения оператора FOR и не менять

эти значения в процессе выполнения оператора цикла.

Если шаг H=1, то оператор цикла имеет вид:

FOR X=m1 TO m2

Блок операторов

NEXT X

Оператор NEXT X вырабатывает очередное значение параметра Х . Если это значение не

превышает значение m2,то цикл не завершен и снова выполняется тело цикла.

Если Н < 0, то m2 < m1.

31

Выполнение оператора цикла можно представить в виде следующей схемы

Пример 5.1. Здесь представлена программа с использованием оператора цикла длявычисления суммы квадратов чисел от 1 до 4. S=12+22+32+42

Фрагмент программы.

Результат: S=30

X:= m1

тело цикла

X:= X+H

X≤m2

следующий

оператор

да

нет

10 S=0

20 FOR X=1 TO 4 STEP 1

30 S=S+X*X

40 NEXT X

50 ………..

КомментарийХ=1 S=0+12=1X=2 S=1+22=5X=3 S=5+32=14X=4 S=14+42=30X=5 5>4 – происходит выход изцикла и управление передаетсяследующему оператору. В данномслучае, это оператор под номером 50

32

5.2. Примеры циклических программ

Пример 5.2. Составить программу вычисления суммы обратных квадратов чисел от 1 до 15. S=1+ + +…+ .

Программа Блок-схема

10 PRINT ”Сумма обратных квадратов”

20 S=0

30 FOR K=1 TO 15

40 S=S + 1 / K ^ 2

50 NEXT K

60 PRINT ”S=” ; S

70 END

Результат

Сумма обратных квадратов

S=1.58044

Начало

S=Ø

K=1

S=S +

k=k+1

k≤15

Вывод S

Конец

Да

Нет

33

Пример 5.3. Составить таблицу значений функции )sin(2 2xy x += на отрезке[a, b] сшагом h.

a= -0.5, b= 2.5, h= 0.5.

10 PRINT "Табулирование функции"

20 PRINT "X", " Y"

30 A = -.5

40 B = 2.5

50 H = .5

60 FOR X = A TO B STEP H

70 Y = 2 ^ X + SIN(X * X)

80 PRINT X, Y

90 NEXT X

100 END

Табулирование функцииX Y

-0.5 0.9545107

0 1

0.5 1.661618

1 2.841471

1.5 3.6065

2 3.243197

2.5 5.623675

Пример 5.4. Найти значение функции xxy ++= 25 3 при x = -1.2, 0.5, 1.4, 2.7.

Объединим значения х в массив Х, состоящий из четырех элементов.10 PRINT " Вычисление значений функции"

20 DATA -1.2,0.5,1.4,2.7

30 DIM X(3)

40 FOR I = 0 TO 3

50 READ X(I)

60 NEXT I

70 FOR I = 0 TO 3

80 Y = 5 * X(I) ^ 3 + SQR(2 + X(I))

90 PRINT "X="; X(I), "Y="; Y

100 NEXT I

110 END

34

Вычисление значений функции

X=-1.2 Y=-7.745574

X=0.5 Y= 2.206139

X=1.4 Y=15.56391

X=2.7 Y=100.583

Пример 5.5. Найти корень кубический из числа N с точностью до 0,0001 по формуле

3

2 2

1k

k

kxNx

x+

=+ ; x k – предыдущее значение ; xk+1 – последующее значение.

Пусть надо найти корень кубический из N=128 точностью h=1*10-4.

10 PRINT " Корень кубический "

20 INPUT N

30 INPUT A

40 X0 = N

50 FOR I = 1 TO 100

60 X = (2 * X0 + N / X0 ^ 2) / 3

70 IF ABS(X - X0) <= A THEN 100

80 X0 = X

90 NEXT I

100 PRINT "N="; N; " X="; X; " A="; A

110 END

Корень кубический

? 128? 0,0001

N= 128 X= 5.039684 A= .0001

Пример 5.6. Вычислить сумму

å å=

==4

11

!sin

k

k

n

kkn

S ; S1= - сумма; f=1*2*3…=k! – факториал.

10 S = 0

20 S1 = 0

30 F = 1

40 FOR K = 1 TO 4

50 FOR N = 1 TO K

35

60 S1 = S1 + SIN(K * N)

70 F = F * K

80 S = S + S1 / F

90 NEXT N

100 NEXT K

110 PRINT "S="; S

120 END

S=2.09766

Пример 5.7. Три матрицы A, B, C имеют 2 строки и 2 столбца каждая. Вычислить

элементы матрицы С по формуле Сi,j= , где i,j =1,2

A(1,1)= 1.2, 2.1, 4.01, 3.13; B(1,1)= 12.3, 0.81, 3.05, 2.06.

10 DIM A(1, 1), B(1, 1), C(1, 1)

20 DATA 1.2, 2.1, 4.01, 3.13

21 FOR I = 0 TO 1

22 FOR J = 0 TO 1

23 READ A(I, J)

24 NEXT J

25 NEXT I

26 DATA 12.3, 0.81, 3.05, 2.06

30 FOR I = 0 TO 1

31 FOR J = 0 TO 1

32 READ B(I, J)

33 NEXT J

34 NEXT I

40 FOR I = 0 TO 1

50 FOR J = 0 TO 1

60 C(I, J) = 0

70 FOR K = 0 TO 1

80 C(I, J ) = C(I, J) + A(I, K) * B(K, J)

90 NEXT K

100 PRINT "I="; I, "J="; J, "C(I,J)="; C(I, J)

110 NEXT J

120 NEXT I130 END

36

i =1 j =1 c(i,j )= 21.165

i =1 j =2 c( i,j )= 5.298

i =2 j =1 c( i,j )= 58.870

i =2 j =2 c( i,j )= 9.696

5.3. Цикл DO

5.3.1. Цикл с предусловием

Оператор цикла While.

DO WHILE (условие) ------------ блок ------------ операторов

LOOP

While – пока, DO – выполнить, LOOP - цикл

<условие> - выражение логического типа;

< блок операторов> - один или несколько связанных операторов,которые должны многократно

исполняться. Всякий раз,когда достигается оператор LOOP , управление снова передается

оператоу DO. В этот момент производится проверка условия оператором WHILE .

Если выражение <условие> имеет значение TRUE (истина ДА), то выполняются

последующие операторы, после чего вычисление выражения <условие> и его проверка

повторяются. Если <условие> имеет значения FALSE (ложь НЕТ), оператор WHILE

прекращает свою работу и управление передается из цикла оператору,следующему за

оператором LOOP.

Пример 5.8. Найти сумму чисел от 1 до 10 с помощью цикла DO WHILE

10 S = 0

20 I = 0

30 DO WHILE I < 10

40 I = I + 1

50 S = S + I

55 LOOP

60 PRINT "S="; S

70 END

Результат: S=55.

37

Оператор цикла DO WHILE проверяет логическое выражение в начале цикла до того, как

цикл выполняется в первый раз и затем повторяется. Оператор LOOP WHILE проверяет

логическое выражение в конце цикла перед его повторным исполненим.

5.3.2 . Оператор цикла LOOP WHILE

DO ------------ блок ------------ операторов

LOOP WHILE (условие)

Составим программу предыдущего примера.

10 S = 0

20 I = 0

30 DO

40 I = I + 1

50 S = S + I

55 LOOP WHILE I < 10

60 PRINT "S="; S

70 END

Результат: S=55.

Примечание. Циклы с оператором DO используются, если неизвестно количество

циклов. В цикле с предусловием цикл работает до тех пор, пока выполняется условие. В

рассматриваемом примере условие i<10. Пока это условие выполняется, цикл работает. Если

условие не выполняется, то машина переходит к выполнению следующих операторов

программы.

Пример 5.9. Вычислить число π, пользуясь формулой Грегори

.

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

ряда станет меньше чем 0.5*10-3.

Комментарий:Snak – знак

k – количество операций в цикле, что характеризует количество членов разложения ряда.

38

10 C=.0005

20 SNAK = -1

30 S = 1

40 S1 = 1

50 k = 1 60 DO

70 S1 = SNAK / (2 * k + 1)

80 S = S + S1

85 SNAK = -SNAK

90 k = k + 1 100 LOOP WHILE ABS(S1) > C

110 S = 4 * S

120 PRINT "PI ="; S, "K="; k

130 END

PI=3.142591 K=1001

Член ряда, котрий стал меньше c=0.5*10-3 находится на 1001 месте ряда p /4.

5.3.3. Операторы цикла DO UNTIL , LOOP UNTIL

DO UNTIL(условие) ----------- блок ------------ операторов LOOP

DO ----------- блок ------------ операторов

LOOP UNTIL (условие)

UNTIL - пока …не

Операторы DO UNTIL или LOOP UNTIL обеспечивают повторение цикла, пока логическое

выражение не станет истинным.

Примечание. Операторы DO WHILE и DO UNTIL проверяют логическое выражение в

начале цикла до того, как цикл выполняется в первый раз и затем повторяется. Операторы LOOP

WHILE и LOOP UNTIL проверяют логическое выражение в конце цикла перед его повторным

исполнением.Пример 5.10. Найти сумму чисел от 1 до 50 с использованием цикла DO UNTIL.

10 K = 0

20 S = 0

30 DO UNTIL K = 50

39

40 K = K + 1

50 S = S + K

60 LOOP

70 PRINT "S="; S

80 END Результат : S=1275

Пример 5.11. Вычислить сумму четных степеней переменной х S= 2k, когда очередное значение степени x2k не станет больше 104.

Принять х=2.

10 X = 2

20 S = 1

30 K = 0

40 DO

50 K = K + 1

60 S = S + X ^ (2 * K)

70 LOOP UNTIL X ^ (2 * K) > 10000

80 PRINT "K="; K, "S="; S

90 END

Результат: K=7 S=21845

Пример 5.12. Найти корень кубический из числа N с точностью до 0,0001 по формуле

3

2 2

1k

k

kxNx

x+

=+ xk – предыдущее значение, xk+1 – последующее значение .

Пусть надо найти корень кубический из N=128 точностью A=1*10-4.k– количество циклов

10 PRINT " Корень кубический "

20 INPUT N

30 INPUT A

40 X = N

50 K = 0

55 DO

56 X0 = X

60 X = (2 * X0 + N / X0 ^ 2) / 3

65 K = K + 16

70 LOOP UNTIL ABS(X - X0) <= A

80 PRINT "N="; N; " X="; X; " A="; A, "K="; K

90 END

40

Корень кубический

N= 128 X=5.039684 A=0.0001 K=192

Пример 5.13. Смотрите пример 4.1 главы 4. Дан массив А(1). Сформировать массив

В(1,1) по правилу b (i,j ) = аi – 3aj.. i = 0,1; j = 0,1. A (0) = 3.4; A (1) = 4.2.

10 DIM A(1), B(1, 1)

20 DATA 3.4,4.2

30 FOR I = 0 TO 1

40 READ A(I)

50 NEXT I

55 PRINT " MAССИВ B "

60 FOR I=0 TO 1

70 FOR J = 0 TO 1

80 B(I, J) = A(I) - 3 * A(J)

90 PRINT "I="; I, "J="; J, " B="; B(I, J)

100 NEXT J

110 NEXT I

120 END

МАССИВ B I=0 J=0 B(0,0)= -6.80 I=0 J=1 B(0,1)= -9.19999 I=1 J=0 B(1,0)=-6 I=1 J=1 B(1,1)=-8.4

Пример 5.14. Написать программу выбора максимального по площади треугольника из

совокупности шести треугольников, для которых известны две стороны ii ba , и угол,

заключенный между ними ij ( i= 1, 2, 3,…6).

5 CLS

10 N = 5

15 PI = 3.1415926#

20 DIM A(N), B(N), FIGR(N), FI(N), S(N)

30 DATA 2, 4,12,6, 8 ,3

40 DATA 4, 3, 6, 5, 5 ,4

50 DATA 30, 45, 25, 120, 60, 75

60 FOR I = 0 TO N

70 READ A(I)

80 NEXT I

41

90 FOR I = 0 TO N

100 READ B(I)

110 NEXT I

120 FOR I = 0 TO N

130 READ FIGR(I)

140 NEXT I

150 FOR I = 0 TO N

160 FI(I) = FIGR(I) * PI / 180

170 S(I) = (A(I) * B(I) * SIN(FI(I))) / 2

180 PRINT "I="; I, " S="; S(I)

190 NEXT I

200 FOR I = 0 TO N - 1

210 IF S(I + 1) > S(I) THEN

220 S(I) = S(I + 1)

230 PRINT S(I)

240 ELSE

250 S(I + 1) = S(I)

260 PRINT S(I + 1)

270 END IF

280 Smax = S(I + 1) 290 NEXT I 300 PRINT " Smax="; Smax

310 END

I = 0 S= 2 4.24264 I = 1 S= 4.242664 15.21426 I = 2 S= 15.21426 15.21426 I = 3 S= 12.99038 17.32051 I = 4 S= 17.32051 17.32051 I = 5 S= 5.795555

Smax = 17.32051

Пример 5.15. Последовательность ,..., 21 xx образована по законуitgi

ixi 21.0

3 +-

=

( i= 1,2…). Известно действительное число E>0. Записать члени последовательности,..., 21 xx остановившись после первого члена , для которого виполняется .Exi <

Принято: E= EPS =0.01.

5 CLS

10 EPS = .01

20 X = 1

30 I = 1

40 DO WHILE X > EPS

42

50 X = (I - .1) / (I ^ 3 + ABS(TAN(2 * I)))

60 PRINT X

70 I = I + 1

80 LOOP

90 END

0.283 , 0.207 , 0.106, 0.055 , 0.039 , 0.027 , 0.020 , 0.015 , 0.012 , 0.010

Пример 5.16. Задано натуральное число n. Найти первую цифру числа n. Для примера взято число 82953210

5 CLS

10 N = 7

20 DIM A(N), B(8)

30 DATA 8,2,9,5,3,2,1,0

40 DATA 1,2,3,4,5,6,7,8,9

50 FOR I = 0 TO N

60 READ A(I)

70 NEXT I

80 FOR I = 0 TO 8

90 READ B(I)

100 NEXT I

105 I = 0

110 IF B(I) = A(0) THEN GOTO 140

120 I = I + 1

130 IF I <= 9 THEN GOTO 110

140 PRINT "A(0)="; B(I)

150 END

A(0)= 8;

Пример 5.17. Задано натуральное число n. Вычислить выражение å=

+-n

k

k

kk

0 !)1()1( .

å=

+-n

k

k

kk

0 !)1()1( = ...

!)1()1(....

!34

!2321 +

+-++-+-

kkk

Обозначим сумму первых n членов через S. Общий член ряда обозначим через U.

)!1()1(

1 --

=- kkU

k

k ;!

)1()1(k

kUk

k+-

=

Чтобы получить каждый последующий член ряда надо предыдущий умножить на один и тот же

43

множитель .1)1(!

)!1)(1()1(21

1 kk

kkkk

UU

k

k

k

k +-=

--+-

= --

CLS

N = 5

S = 1

U = 1

FOR K = 1 TO N

U = U * (-(K + 1) / K / K)

S = S + U

NEXT K

PRINT "S="; S

END

S= - 8.33344E-03

Пример 5.18. Заданы целые числа naaa ...., 21 . Вычислить сумму тех чисел

последовательности, которые удовлетворяют условию 2iai < .

Заданные числа составляют массив A(N) . N может принимать любое значение.

В этой программе N=6.

] Program Pr518;

Uses Crt;

const N=6;

Label

lb1;

var A:array[1..N] of integer;

var S,i:integer;

Begin

Clrscr;

for i:=1 to N do

begin

44

write('A[i]=');

read(A[i]);

end;

i:=1; S:=0;

lb1:

if abs(A[i])<i*i then

S:=S+A[i];

i:=i+1;

if i<= N then goto lb1;

writeln;

writeln(' S=',S);

End.

A[i]=2, A[i]=5, A[i]=3, A[i]=-4 , A[i]=8, A[i]=-5.

Результат: S= 12

45

Глава 6. Подпрограммы

В различных местах одной и той же программы многократно может выполняться одна и та

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

операторов заново не экономично. Гораздо выгоднее выделить операторы данной процедуры из

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

После выполнения выделенных операторов управление должно быть передано в то место

основной программы, где содержится оператор перехода к данной процедуре.На языке

программирования БЕЙСИК эти средства реализуются с помощью функций пользователя и

подпрограммы.

6.1. Функции пользователя

В тех ситуациях, когда в программе необходимо многократно вычислять одно и тоже

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

описания создаваемых функций используется оператор DEF.

DEF FNm ( аргументы)= выражение

Оператор DEF является сокращением английского слова define (определять);

FNm – имя функции, состоящее из обязательных FN и произвольной буквы латинского

алфавита, обозначенной m. Например, FNZ

10 DEF FNZ(X)=TAN(X)+2*SIN(X)

определяет функцию вещественного типа с именем FNZ и аргументом Х для вычисления

значения выражения tgx +2 sinx .

Функции могут быть вещественными, целочисленными или символьными. Функция

считается целочисленной или символьной, если ее имя заканчивается символами %, $.

Например, функция с именем FNZ % - целочисленная, а функция FNZ $ - символьная.

Аргументы функции в операторе DEF, представляющие собой имена переменных,

называются формальными параметрами и отделяются друг от друга запятой. Допускается

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

типа.

46

Вычисление значения функции, определенной в операторе DEF, происходит лишь в момент

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

указываются фактические аргументы. Фактические аргументы могут быть выражением. При

обращении к функции вычисляются значения всех фактических аргументов. Затем они

присваиваются формальным параметрам в описании функции и вычисляется значение

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

вычисленной функции.

Пример 6.1.DEF FNZ(X)=X*X+5

A=2

B=3

PRINT FNZ(A), FNZ(B+1) ,FNZ(B-A), FNZ(FNZ(A))

END

После выполнения программы на экране монитора появится информация:

9 21 6 86

При обращении к функции количество, порядок следования и тип фактических и

формальных аргументов должны соответствовать друг другу.

Результатом выполнения оператора DEF есть одно число.

Пример 6.2. Найти периметр треугольника по координатам его вершин:

A (2.5 ; 3.0) , B (-1.2 ; -4.0), C (5.0 ; -2.5).

Периметр треугольника Р = АВ + ВС + СА, т.е. отыскание длины отрезка осуществляется

три раза. Можно оформить это действие в виде функции пользователя. Расстояние между двумя

точками находится по формуле:

А (ХА,YA) XA= 2.5 , YA=3.0

B (XB, YB) XB = -1.2 , YB= -4.

C (XC, YC) XC= 5.0 , YC= -2.5

5 CLS10 PRINT "Вычисление периметра треугольника"

20 DEF FND (X1, X2, Y1, Y2) = SQR((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)

30 L1 = FND(2.5, -1.2, 3, -4)

40 L2 = FND(-1.2, 5, -4, -2.5)

50 L3 = FND(2.5, 5, 3, -2.5)

60 P = L1 + L2 + L3

47

70 PRINT "P="; P

80 END

Вычисление периметра треугольника P=20.3381

Комментарий.

1) FND – имя функции

2) X1, X2, Y1, Y2 – формальные параметры в имени функции FND

3) L1, L2, L3– длины сторон треугольника, которые насчитываются в процессе работы

оператора DEF.

4) В программе трижды происходит обращение к функции FND и формальные параметры

X1, X2, Y1, Y2 заменяются фактическими параметрами.

5) Если подпрограмма имеет вид функции, то обращение к функции происходит аналогично

обращению к стандартным функциям типа sin, cos, sqr и т.д. В том месте, где это необходимо,

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

параметры, нужные для её вычисления.

6) Значения функции DEF присваиваются длинам сторон L1, L2, L3.

Пример 6.3. Вычислить значения следующих функций:

22 3219,6

yyyya+++

+== ;

22

4

3211,2

zzzzzb+++

+= ,

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

22 321 pppk +++=

10 Y = 4

20 Z = 2

30 DEF FNK (P) = P * P + SQR(1 + 2 * P + 3 * P * P)

40 A = (6.9 + Y) / FNK(Y)

50 B = (2.1 * Z + Z ^ 4) / FNK(Z)

60 PRINT "A="; A, "B="; B

70 END Результат: A= .4628482 B=2.486733

48

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

только с помощью одного выражения и позволяют одновременно получить всего лишь один

результат. В большинстве случаев вспомогательные алгоритмы включают несколько команд

или составляются для получения более чем одного результата. В этом случае используются

подпрограммы.

Подпрограмма есть часть программы, решающая вспомогательную задачу. К ней можно

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

программу.

Для обращения к подпрограмме используются следующий оператор

n GOSUB m

где GOSUB – служебное слово (GOTO – идти к и SUBROUTINE - подпрограмма );

n – метка оператора GOSUB; m – номер подпрограммы, с которого начинается подпрограмма.

Завершает выполнение подпрограммы оператор

K RETURN

RETURN ( возврат ) – служебное слово; K - его метка.

Оператор RETURN осуществляет возврат к следующему за GO SUB оператору.

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

раз. Обычно подпрограмму распологают в конце программы перед оператором END.

Как отмечалось ранее, подпрограмма является частью основной программы и имеет те же

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

несколько значений ( например, таблица значений, массив)

49

Пример 6.4. Составить программу вычисления числа сочетаний

!)!(!

mmnnc m

n -=

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

Пусть N=10, M=3.

10 PRINT "Вычисление числа сочетаний"

20 INPUT N

30 INPUT M

40 L = N

50 GOSUB 150 Вычисление N! 60 C = F

70 L = M

80 GOSUB 150 Вычисление M! 90 C = C / F

100 L = N - M

110 GOSUB 150 Вычисление (N-M)! 120 C = C / F

130 PRINT "C="; C

140 GOTO 200

----- --------------------------

150 F = 1 Подпрограмма вычисления 160 FOR K = 1 TO L

170 F = F * K факториала. L - принимает 180 NEXT K

190 RETURN значение в основной программе -------------------------------

200 END

Вычисление числа сочетаний. С = 120

Пример 6.5. Найти радиусы описанной и вписанной в треугольник окружностей.

Стороны треугольника a, b, c .

1) a =5, b =3.2, c = 6.4 ; 2) a = 4.5, b = 1.7, c = 5.1; 3) a =15, b =8, c =20. Радиус описанной окружности определяется по формуле: R = ;

Радиус вписанной окружности определяется по формуле: r = ;

50

где S – площадь треугольника.

Площадь треугольника можно вычислить по формуле Герона:

S = ;

где p = - полупериметр треугольника.

10 CLS

20 DATA 5,3.2,6.4

30 DATA 4.5,1.7,5.1

40 DATA 15,8,20

50 DEF FNS (A, B, C, P) = SQR(P * (P - A) * (P - B) * (P - C))

60 DEF FNP (A, B, C) = (A + B + C) / 2

70 READ A, B, C Комментарий:

80 GOSUB 140 Вычисление площади S и

90 READ A, B, C периметра P оформлено в виде

100 GOSUB 140 функций пользователя FNS и FNP. 110 READ A, B, C.

120 GOSUB 140

130 GOTO 190

140 P = FNP(A, B, C) -------------------------------------------------------------------------

150 R1 = (A * B * C) / (4 * FNS(A, B, C, P)) Вычисление радиусов R и r 160 R2 = FNS(A, B, C, P) / P оформлено в виде подпрограммы 170 PRINT "R1="; R1, "R2="; R2

180 RETURN --------------------------------------------------------------------------------------------

190 END

Ответы: R1=3.252381 R2= 1.078241

R1= 2.596084 R2= .6649736

R1= 11.2788 R2= 2.474286

Пример 6.6. Решить квадратное уравнение:

+ bx + c = 0

при заданных значениях коэффициентов:

1 ) а = 1, b = -2, c = 1; 2) а = 1, b = -2, c = 1; 3) а = 2, b = 4, c = 7

aacbbx

242

2,1-±-

= Введем обозначение acbD 42 -=

51

5 CLS

10 PRINT "Решение квадратного уравнения "

20 DATA 1,-2,1

30 DATA 2,4,7

40 DATA 1,-7,12

50 READ A, B, C

60 GOSUB 120

70 READ A, B, C

80 GOSUB 120

90 READ A, B, C

100 GOSUB 120

110GOTO 210

120 D = B ^ 2 - 4 * A * C ---------------------------------------------------------------------

130 IF D < 0 THEN 185

140 X1 = (-B + SQR(D)) / 2 / A Подпрограмма решения

150 X2 = (-B - SQR(D)) / 2 / A квадратного уравнения.

160 PRINT "a="; A, "b="; B, "c="; C Коэффициенты A , B, C принимают

170 PRINT "X1="; X1, "X2="; X2 значения в основной программе.175 PRINT

180 GOTO 200

185 PRINT "a="; A, "b="; B, "c="; C

190 PRINT " Действительных корней нет"

195 PRINT

200 RETURN ---------------------------------------------------------------------------------------------

210 END

Решение квадратного уравнения

a= 1 b=-2 c= 1

X1= 1 X2= 1

a= 2 b= 4 c= 7

Действительных корней нет

a= 1 b=-7 c= 12

X1= 4 X2= 3

52

Пример 6.7. Составить подпрограмму для вычисления координат центра тяжести системы

n материальных точек с массами nmmm ,..., 21 и координатами

),( 11 yx , ),( 22 yx , … ),( nn yx

по формуламå

å

-

== n

ii

n

iii

c

m

xmx

1

1

å

å

=

== n

ii

n

iii

c

m

ymy

1

1

Введены три массива: в массив M входят данные о массе точек; массив MX содержит

абсциссы точек, а массив MY – их ординаты. å=

=n

iimMS

1- масса всей системы.

MX= å=

n

iii xm

1; MY= å

=

n

iii ym

1

5 CLS

10 PRINT "Вычисление координат центра тяжести системы "

20 N = 3

30 DIM M(N - 1), MX(N - 1), MY(N - 1)

40 DATA 8, 10, 12

50 FOR I = 0 TO 2

60 READ M(I)

70 NEXT I

80 DATA 0, 2, 6

90 FOR I = 0 TO 2

100 READ X(I)

110 NEXT I

120 DATA 0, 6, 4

130 FOR I = 0 TO 2

140 READ Y(I)

150 NEXT I

160 MS = 0

170 MX = 0

180 MY = 0

190 GOSUB 240

200 XC = MX / MS

210 YC = MY / MS

220 PRINT "XC="; XC, "YC="; YC

230 GOTO 300

240 FOR I = 0 TO N – 1 STEP 1--------------------------------------

53

250 MS = MS + M(I)

260 MX = MX + M(I) * X(I)

270 MY = MY + M(I) * Y(I)

280 NEXT I

290 RETURN -------------------------------------------------------------------

300 END

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

XC = 3.066667 YC= 3.6

Пример 6.8. Вычислить углы треугольника ABC по координатам его вершин A, B, C. Угол A треугольника выражается через его стороны a ,b, c по формуле

)())((arctan2

appcpbpA

---

=

где 2/)( cbap ++= - полупериметр.

При решении этой задачи возникает две проблемы:

1. Стороны треугольника нам неизвестны, а известны координаты точек A, B, C.

Координаты точек, для примера, приведены ниже.

2. Неизвестно, являются точки A, B, C вершинами треугольника.

Расстояние между двумя точками находится по формуле:

А (Х1,Y1) X1=0 , Y1=0

B (X2, Y2) X2 =6 , Y2=6.5

C (X3, Y3) X3=8 , Y3=2

Для треугольника выполняется условие )( )213 lll +< и )( 213 llabsl ->5 CLS

6 PRINT " Вычисление углов треугольника"7 PRINT

10 DIM X(3), Y(3), L(2)

15 PI = 3.1415926#

20 DATA 0, 6, 8, 0

30 FOR I = 0 TO 3 STEP 1

40 READ X(I)

50 NEXT I

60 DATA 0, 6.5, 2, 0

54

70 FOR I = 0 TO 3 STEP 1

80 READ Y(I)

90 NEXT I

100 GOSUB 160

110 ALFA = 2 * ATN(SQR((P - B) * (P - C) / P / (P - A)))

120 BETA = 2 * ATN(SQR((P - C) * (P - A) / P / (P - B)))

130 GAMA = PI - (ALFA + BETA)

140 PRINT " ALFA="; ALFA, "BETA="; BETA, "GAMA="; GAMA

141 ALFGR = 180 * ALFA / PI

142 BETGR = 180 * BETA / PI

143 GAMGR = 180 * GAMA / PI

144 PRINT

145 PRINT "ALFGR="; ALFGR, "BETGR="; BETGR, "GAMGR="; GAMGR

150 GOTO 270

160 FOR I = 0 TO 2 --------------------------------------------------------------------------------------------

170 L(I) = SQR((X(I + 1) - X(I)) ^ 2 + (Y(I + 1) - Y(I)) ^ 2)

180 NEXT I Подпрограмма вычисления

190 A = L(1) сторон треугольника191 B = L(2)

192 C = L(0)

193 PRINT "A="; A, "B="; B, "C="; C

194 PRINT

200 IF C < (A + B) AND C > ABS(A - B) THEN Условие существования

210 P = (A + B + C) / 2 треугольника220 ELSE

230 PRINT "Треугольник не существует"

240 GOTO 270

250 END IF

260 RETURN ---------------------------------------------------------------------------------------------------------

270 END

Вычисление углов треугольникаA= 4.924429 B= 8.246211 C= 8.845903

ALFA= .5803983 BETA= 1.163644 GAMA= 1.397551

ALFGR=33.25437 BETGR= 66.67188 GAMGR= 80.07375

55

Пример 6.9. Найти площадь пятиугольника ABCDE, если известны его стороны и две

диагонали. Сторонам пятиугольника и диагоналям нададим значения AB= 1, BC= 1.5, CD= 2,

DE= 3, EA= 2, AC= 2, AD= 2.5. 5 CLS

10 PRINT " Вычисление площади пятиугольника "

20 DATA 1,1.5,2

30 DATA 2,2,2.5

40 DATA 2.5,3,2

50 READ A, B, C

60 GOSUB 135

70 S1 = S

75 PRINT "S1="; S

76 PRINT

80 READ A, B, C

90 GOSUB 135

95 S2 = S

96 PRINT "S2="; S2

97 PRINT

100 READ A, B, C

110 GOSUB 135

115 S3 = S

116 PRINT "S3="; S3

117 PRINT

120 SP = S1 + S2 + S3

125 PRINT "SP="; SP

130 GOTO 160

135 P = (A + B + C) / 2

140 S = SQR(P * (P - A) * (P - B) * (P - C))

145 PRINT "a="; A, "b="; B, "c="; C 150 RETURN

160 END

a = 1 b= 1.5 c= 2 s1= .726844

a= 2 b= 2 c= 2.5 s2= 1.951562

a= 2.5 b= 3 c= 2 s3= 5.158138

56

ГЛАВА 7 . ЛИТЕРНЫЕ ВЕЛИЧИНЫ.

ПРОГРАММЫ С ЛИТЕРНЫМИ ВЕЛИЧИНАМИ

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

Например, “ урок “, “S “, “ ; “, “ 2005 год “, “------“, “ “- пустая константа.

Литерная константа может содержать не более 255 символов.

Для литерной переменной имя выбирается так же, как и для вещественной, но это имя

снабжается символом $.

Например: A$, B1$.

Литерными могут быть массивы. B$(3)= “ Зима”, “Весна”, “Лето”, “ Осень”.

Литерные (строковые) выражения в БЕЙСИКЕ образуются из литерных констант, литерных

переменных и функций помощью знака операции соединения текстов. Операция соединения

текстов обозначается символом +.

A$ + B$ - означает, что происходит соединение значений литерных переменных.

Например: A$= ”ЗИ”, B$ = “ МА”. Если С$ = A$+ B$, то C$ = ”ЗИМА”.

К стандартным литерным функциям относится числовая функция

LEN (A)

где А- литерное выражение.

Значением этой функции есть длина литерного выражения А. Длиной текста называется

количество символов в нем.

Например: значение LEN (”БАРСИК”) равно 6.

Операция выделения из текста его части осуществляется функцией

MID$ (A,N,M)

где MID$ - имя функции;

А - литерное выражение или имя литерной переменной ;

N - номер первого из выделяемых символов;

M - количество выделяемых символов.

Например: MID$( “ БАРСИК”, 1, 4). Значением єтоой функции будет “БАРС”

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

переменной.

57

Например: Q$=MID$( “ ДОКЛАД”, 3, 4).

Литерная переменная Q$ получит значение “КЛАД”.

Если функция MID$ стоит в правой части оператора присваивания, то выделенная этой

функцией подстрока присваивается новой переменной.

Если функция MID$ стоит в левой части оператора присваивания, то выделенная подстрока

заменяется значением той переменной, которая находится в правой части оператора.

Пример 7.1. 10 A$= “ДОКЛАД”

20 B$=”ПУСК”

30 MID$( A$, 3, 4)= B$

40 PRINT A$

50 END

После выполнения этих операторов получим на экране ДОПУСК.

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

Пример 7.2.10 A$ = "КОРАБЛЬ"

20 B$ = MID$(A$, 1, 6) + "Ь"

30 PRINT B$

40 END

С помощью функции MID$ из слова КОРАБЛИК выделяется “КОРАБЛ”. Операция +

присоединяет к нему “Ь” и получаем КОРАБЛЬ.

Стандартная функция

STRING$ ( A1, A2)

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

А1 – целое выражение, принимающее значение от 0 до 255 и определяющее длину содаваемо

строки;

А2 - целое выражение, принимающее значение от 0 до 255, соответствующее коду символа,

которым заполняется строка; или символьное выражение, первым символом которого

заполняется новая символьная строка.

Таблица кодов символов приводится в инструкции, прилагаемой к ПК.

58

Например: результат действия функции STRING$ (41, 61) и STRING$ (41,” =” ) будет один и тот

же: будет сформирована строка длиной 41 символ, состоящий из = .

Значение вновь создаваемой строки может быть присвоено новой переменной или являетсяэлементом вывода.

B$= STRING (5, ”+ ”)

В результате действия этого оператора переменная B$ получит значение +++++.

Пример 7.3. 5 CLS

10 T$ = STRING$(8, 46)

15 A$ = STRING$(5, 95)

20 B$ = STRING$(10, 43)

21 D$ = STRING$(5, "=")

25 PRINT T$ , D$

30 PRINT A$, B$

Будет напечатано следующее:

. . . . . . . . = = = = =

- - - - - ++++++++++

Пример 7. 4. 10 A$ = "ГЛАВА 2"

20 N = 16

30 PRINT A$; STRING$(20 - LEN(A$), "."); N

40 ENDПосле выполнения этих операторов выводится информация

ГЛАВА 2………….16.

Функция

TAB (N)

входит в команду PRINT и выводит пробелы до указанной позиции N.

Например: PRINT TAB ( 5 ); “S=”; S

Литерные (символьные) переменные допускают сравнение. Такое сравнение осуществляется

с помощью операций отношений. При этом следует иметь в виду, что все символы БЕЙСИКа

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

Например: 1) если A$=BCD; B$= BCD, то A$=B$;

59

2) если A$=BDC; B$=BCD, то A$>B$, т.к. сравнение осуществляется

посимвольно.

7.2. Примеры программ с литерными (символьными ) величинами.

Пример 7.5. Из слова ГАСТРОНОМ образовать слово АГРОНОМ .

5 CLS

10 PRINT "Образование слов"

20 A$ = "ГАСТРОНОМ"

30 PRINT A$

40 B$ = MID$(A$, 2, 1) + MID$(A$, 1, 1) + MID$(A$, 5, 5)

50 PRINT B$

60 END

Образование словГАСТРОНОМ

АГРОНОМ

Пример 7.6. Сосчитать количество букв ” О ” в предложении

“ХОРОШ ПИРОЖОК, ВНУТРИ ТВОРОЖОК”.

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

”О”, найти количество символов, равных “О”.

Обозначения: A$= “ ХОРОШ ПИРОЖОК, ВНУТРИ ТВОРОЖОК”

B$= “О”

N - количество букв О в предложении. 5 CLS

10 PRINT " Считаем букву О"

20 A$ = " ХОРОШ ПИРОЖОК, ВНУТРИ ТВОРОЖОК "

30 PRINT A$;

40 B$ = "Ћ"

50 N = 0

60 FOR I = 1 TO LEN(A$)

70 IF MID$(A$, I, 1) = B$ THEN N = N + 1 80 NEXT I

85 PRINT

90 PRINT " В предложении “;N;" букв О”

100 END Считаем букву О

60

ХОРОШ ПИРОЖОК, ВНУТРИ ТВОРОЖОК

В предложении 7 букв О

Пример 7.7. Имеется список, состоящий из 10 фамилий, номеров и городов, где

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

печатала бы номер телефона и место жительства. Если же введенной фамилии нет в списке, то

необходимо выдать информацию об этом.

Сведения о наличии телефона

АНТОНОВ 183-19-48 ВОЛГОГРД

БАРСОВ 52-16-35 ВОРОНЕЖ

ГУРОВ 13-53-14 РИГА

ЕРМАКОВА 254-14-53 МОСКВА

ЗИМИН 386-43-71 МОСКВА

ИЛЬИН 232-46-17 КИЕВ

КРУТОВА 278-61-34 ХАРЬКОВ

МОРОЗОВ 23-17-29 НИКОЛАЕВ

НИКИФОРОВ 57-83-21 ВОРОНЕЖ

ПЕТРОВ 162-32-75 ЛЬВОВ

Заданный список можно рассматривать как массив литерных (символьных) переменных.

Длина каждого значения 31 позиция.

Обозначения: S$(9) - список; F$ - фамилия; F1$ - проверяемая фамилия.

5 CLS

10 PRINT ” Сведения о наличии телефона ”

20 DATA ” АНТОНОВ 183-19-48 ВОЛГОГРД” 30 DATA ” БАРСОВ 52-16-35 ВОРОНЕЖ”

40 DATA “ ГУРОВ 13-53-14 РИГА”

50 DATA ” ЕРМАКОВА 254-14-53 МОСКВА”

60 DATA ” ЗИМИН 386-43-71 МОСКВА”

70 DATA ” ИЛЬИН 232-46-17 КИЕВ”

80 DATA ” КРУТОВА 278-61-34 ХАРЬКОВ ”

90 DATA ” МОРОЗОВ 23-17-29 НИКОЛАЕВ”

100 DATA ” НИКИФОРОВ 57-83-21 ВОРОНЕЖ”

110 DATA ”ПЕТРОВ 162-32-75 ЛЬВОВ”120 DIM S$ (9)

130 FOR I= 0 TO 9

61

140 READ S$ (I)

150 NEXT I

160 INPUT F1$

170 FOR I= 0 TO 9

180 F$ = MID$ ( S$ ( I ), 1, 10 )

190 IF F1$ =F$ THEN GOTO 230

200 NEXT I

210 PRINT ” В списке нет фамилии ”; F1$

220 GOTO 250

230 PRINT F1$ ; ’’город ’’; MID$ ( S$ ( I ), 21 , 10)

240 PRINT ” ДОМАШНИЙ ТЕЛЕФОН ” ; MID$ ( S$ ( I ), 11, 11 )

250 END

ИЛЬИН город КИЕВ

ДОМАШНИЙ ТЕЛЕФОН 232-46-17

РАЗДЕЛ 2. Сборник упражнений ”UP”

2.1. Инструкция к выполнению заданий

Упражнения предназначены для закрепления теоретического материала. По тематике они

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

шифром ”UP1”, после главы 2- с шифром ”UP2” и т.д

. Упражнения содержат несколько видов заданий.

Пример 1.

1. 1.2Е3 4. 0.7Е-1 7. 12.78

2. 128 5. +0.3 8. –1100

3. -3 6 +17 9 1Е3

Указать, какие из приведенных чисел являются константами целого типа?

Читатель должен, просматривая числа в порядке возрастания их номеров от 1 до 9,

записать номера тех констант, которые он считает целого типа. В данном случае такими

будут 2 3 6 8. Эти цифры образуют число 2368. Это число и есть ответом на поставленный

вопрос.

62

Пример 2. Вычислить значение выражения

20- sqr (36)*sin (pi/6)

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

порядок выполнения операций, рассуждает так:

Sqr (36 )=6; sin (pi/6)=0.5; 6*0.5=3; 20-3=17 .

Ответ 17.

Пример 3. Какое значение получит переменная Y в результате выполнения программы?

10 A=2

20 B=-3

30 C=-2

40 X=B/A

50 X=X+0.5

60 Y=A*X*X+B*X+C

70 END

В этом случае читатель должен представить,что он машина, и выполнить все указанные

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

A=2

B=-3

C=-2

-3/2=-1.5

X= -1.5+0.5=-1

X=-1

2*(-1)*(-1)+(-3)*(-1)-2=2+3-2=3

Y=3

После выполнения программы переменная Y получит значение 3. Ответ 3

Пример 4. Определить вид функции, вычисление значения которой реализуетсяследующей программой: 10 X=2 20 Z=X+1

30 IF Z<4 THEN Y=Z^2+1 ELSE Y=Z+5

40 PRINT Y

50 END

Из представленных ответов выбрать номер правильного ответа.1. Y=Z+5 2. Y=Z^2+1

Так как Z=2+1=3, 3<4, то вычисляется значение функции Y=Z^2+1, ее номер 2.

63

2.2. Упражнения к главе 1 ”UP-1”: Константы и переменные, арифметические выражения в языке БЕЙСИК

“UP-1.1”. Какие из приведенных чисел являются константами целого типа?1 2.1E3 4 0.7E-1 7 22.78

2 128 5 +0.9 8 -2100

3 -350 6 +71 9 1E5

“UP-1.2”. Какие из приведенных чисел являются вещественными константами в форме сфиксированной точкой?

1 12.35 4 -1E5. 7 5

2 -0.75 5 0.71 8 -5.1

3 12E5 6 1315 9 -11.4

“UP-1.3”. Какие из приведенных чисел являются вещественными константами вэкспоненциальной форме?

1 11 4 -0,5E-2 7 2.7E05

2 1.3 5 1050 8 -1.38

3 -1.2E5 6 37.75 9 +3.21E-03

“UP-1.4” .Какие из приведенных выражений могут служить именами переменных ?1 5B 4 SIN 7 1AB

2 E6 5 G 8 +LN

3 Л1 6 10 9 L5

“UP-1.5 ”. Какие из приведенных выражений правильно записаны на языке БЕЙСИК?

1 (A+B+C)/2

2 A^ 2C

3 SIN(X+2)*2

4 2COS(A+2) - A

5 X.Y+Z-5.1

6 (X+Y*3.2-A)B

7 X+Y/(Z*Z)

8 X^2+Y^2=R^2

9 SQR(A*2+B*B)

“UP-1.6 ”. Вычислить значение выражений:1 2^3^2

2 (2+2)^3+17

3 SIN(PI/6)+COS(PI/3)

4 TAN(PI/4) - EXP(0)

5 100/SQR(25)/2^2

64

2.3. Упражнения к главе 2 “UP-2 “:Операторы присваивания, ввода –вывода. Линейные программы.

“UP-2.1 “. Среди приведенных выражений указать операторы присваивания 1 X:=X+5 5 X+2=Y

2 Y:=7 6 K+5=X+Y

3 PRINT A 7 PRINT A+B

4 Z=Z^2+5.3*X 8 X=X*X+A*X+B

“UP-2.2 “

1 PRINT ”A=”; A; ”B=”; B 5 PRINT A; ”B=”; B, C

2 PRINT A; B; C; D 6 PRINT ”СУММА”, ”S”, ”A” , ”X”

3 PRINT ”A+ B”; ”A- B” 7 PRINT A; B, X; Y

4 PRINT ”A=”; A, B 8 PRINT ”S”, ”P”,”Q”, ”R”

1. Какие из операторов вывода, приведенные в таблице, выводят только значения

переменных?

2. Какие, из приведенных операторов вывода, выводят только имена переменных?

3. Какие, из приведенных операторов вывода, выводят только имена переменных и их

значения?

4. Сколько строк займет выводимая информация в операторе №4?

5. Сколько строк займет выводимая информация в операторе №2?

6. Сколько строк займет выводимая информация в операторе №6?

“UP-2.3“. Какое значение получит переменная Y после выполнения следующейпрограммы? Х= 5

A= 2

В= -1

У= A*X+B

“UP-2.4”. Какое значение получит переменная Y после выполнения следующейпрограммы?

65

А=12

В=14

А=10

В=В+5

У=А+В

END

“UP-2.5”. Какое значение получит переменная X после выполнения следующей программы?

A= 3;

B= 4;

A=(A+B)/2+A*2;

X=SQR (A+B*B-0.5);

END

“UP-2.6”. Какое значение получит переменная S после выполнения программы ?A=5

B = 6S =A*B

A= -1B= 3S= S+A*B

END

2.4. Упражнения к главе 3 “UP-3”:Операторы передачи управления. Программы с разветвлениями

“UP-3.1”

1 GOTO 30

2 IF A.>B THEN PRINT A

3 IF A=B THEN B=X+Y ELSE B=X/2+Y/3

4 P=3.5*X+Y/2 - X*Y

5 IF X<Y AND B>0 THEN 50

6 PRINT X,Y,Z

7 X=A+B-C

8 GOTO 5

9 IF A=B THEN IF B=C THEN A=X ELSE PRINT A

66

а) Какие из приведенных конструкций представляют оператор безусловного перехода?

б) Какие из приведенных конструкций представляют оператор условной передачиуправления?

“UP-3.2”. Какое значение получит переменная X в результате выполнения программы?10 A=4

20 B=2

30 A=(A+B)/2+A

40 X=A*B^2

50 PRINT X

60 END

“UP-3.3”. Какое значение получит переменная X в результате выполнения программы?10 A=-3

20 B=-2

30 A=(B-A)*2-3

40 GOTO 70

50 X=(A+B)*3

60 GOTO 90

70 B =B-A

80 GOTO 50

90 END

“UP-3.4”. Определить значение Y в результате выполнения программы, если X=2.

10 INPUT X

20 IF X>5 THEN Y=SQR(X) ELSE Y=X^2

30 PRINT Y

40 END

“UP-3.5”. Определить вид функции, вычисление которой реализуется данной программой. 10 INPUT X

20 IF X<-1 THEN 50

30 Y=EXP (1+X)

40 GOTO 60

50 Y=3-2*X*X

67

60 PRINT Y

70 END

Xe +1 x < -1 223 x- x<-1 Xe +1 x >-11. Y ={ 2. Y={ 3. Y={

223 x- x >= -1 Xe +1 x>=-1 223 x- x < = -1

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

необходимо лишь провести анализ этой программы при любом вводимом Х.

“UP-3.6”.Значение какой функции вычисляется в данной программе, еслиХ=6?

10 INPUT X

20 IF X<0 THEN 60

30 IF X<=5 THEN 80

40 Y = LOG(X-4)

50 GOTO 90

60 Y =COS(X)

70 GOTO 90

80 Y=1-0.2*X

90 PRINT Y

100 END

В ответе указать номер правильного ответа.

1. Y= LOG (X- 4) 2. Y = COS (X) 3. Y =1- 0.2*X

2.5. Упражнения к главе 4 “UP-4”: Массивы

“UP-4.1”.

1. 3.5+A*B+C(1)*A-C(2)

2. 4.8+A1*B-C2/3

3. D11+SIN(X/2+4)-A3

4. B(2,3)*C-TAN(Y)/(A(1)+B(1,2))

68

5. I*J+K*N-A(I,J)+B(K,N)

6 . AI+BK*C/(X+Y)^2

7. F*(M(1)+M(2))/(1-M(1)^2*V^2)

8. A(I+J,K+2)*B(I+J)-(K+3)^2

9. A(I*2,I+J)+B(I+3,I+K)

Среди данных выражений указать выражения:1) содержащие элементы массива;

2) содержащие элементы одномерного массива;3) содержащие элементы двумерного массива;

4) содержащие элементы массива, индексы которых являются выражениями.

“UP-4.2”. Указать номера элементов массива, которые получат значения в результатевыполнения программы:

10 DIM A(15)

20 I =2

30 J =I*I+1

40 A (J) =3.5

50 K =J+2

60 A(K) =10.3

70 A (I+K) =7

80 END

“UP-4.3”. Указать наибольшее значение элемента массива A(4), сформированного врезультате выполнения следующей программы:

10 DIM A(4)

20 I=0

30 A(I)=I*I - 3*I+1

40 I=I+1

50 IF I<=4 THEN 30

60 END

“UP-4.4”. Даны три массива A(3,4), B(7), C(2,6). Какие из переменных, указанных ниже,

имеют смысл в соответствии с данными массивами?

1 A(1,1) 6 C(2)

69

2 B(8) 7 B(3,1)

3 C(3,7) 8 A(2,1)

4 B(6) 9 C(2,5)

5 A(3,5)

“UP-4.5”. Указать значение величины D после выполнения следующей программы:

10 DIM A(1,1)

20 DATA 3, 4, 2, -1

30 READ A(0,0), A(0,1), A(1,0), A(1,1)

40 D=A(0,0)*A(1,1) –A(1,0)*A(0,1)

50 PRINT D

60 END

2.6. Упражнения к главе 5 “UP-5”: Операторы цикла

“UP-5.1”. 10 Y=5

20 FOR A=1 TO 12 STEP

30 Y=Y+A;

40 NEXT A

50 PRINT

60 END

1. В данной программе указать номер оператора цикла.2. Указать номер оператора, который повторяется многократно.

3. Указать номер оператора, который формирует следующее значение параметрацикла.

4. Указать имя параметра цикла. 5. Сколько раз выполняется оператор 30?

6. Чему равно значение параметра цикла, при котором оператор 30 выполняется

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

“UP-5.2”. 10 DATA 2.1, -3.7, 0.4, 5.6, - 7.8

20 DIM B(2)

30 READ A, X

40 FOR I= 0 TO 2

50 READ B(I)

70

60 NEXT I

70 END

1. Какое значение получит переменная X в результате выполнения программы?

2. Сколько элементов содержит массив B?

3. Какое значение получит B(1)?

4. С каким шагом изменяется параметр цикла?

5. Указать сумму номеров невыполняемых операторов.

“UP-5.3”. Какое значение получит переменная S в результате выполнения программы?

10 S=0

20 FOR K=1 TO 9 STEP 2

30 S= S+K

40 NEXT K

50 PRINT X

60 END

”UP-5.4”. Какое значение получит переменная S в результате выполнения программы?

10 DIM A(2, 2)

20 DATA 3, 5, 7, 4, 6, -1, -2, 5, -4

30 FOR I=0 TO 2

40 FOR J=0 TO 2

50 READ A(I, J)

60 NEXT J

70 NEXT I

80 S=0

90 FOR I=0 TO 2

100 J=1

110 S=S+A(I, J)

120 NEXT I

130 PRINT S

140 END

71

2.7. Ответы к упражнениям ”UP ”

UP-1.1 2368

UP-1.2 12589

UP-13 3479

UP-1.4 259

UP-1.5 1379UP-1.6 1) 64 , 2) 81 , 3) 1 , 4) 0 , 5) 5

UP-2.1 1248UP-2.2 1) 256 , 2) 147, 3) 3.

UP-2.3 9

UP-2.4 29

UP-2.5 5

UP-2.6 27

UP_3.1 a) 18 , b) 2359

UP-3.2 28

UP-3.3 -6

UP-3.4 4

UP_3.5 1

UP_4.1 1) 145789 2) 147

3) 4589 4) 89

UP-4.2 579

UP-4.3 5

UP-4.5 -11

UP-5.1 1). 2 , 2) 5 , 3) A , 4) 4 , 5) 10.

UP-5.2 25

UP-5.3 5

72

Раздел 3. Сборник лабораторных работ по алгоритмическому языку Бейсик

3.1. Требования к оформлению лабораторных работ

Раздел 3 содержит тексты лабораторных работ. Лабораторные работы по тематике

соответствуют главам раздела 1. Исключение составляет лабораторная работа ”LAB-4”,

объединившая главы ”Массивы” и ”Операторы цикла”.

В основном лабораторные работы содержат 15 вариантов. Количество заданий в каждом

варианте зависит от их сложности.

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

соответствующих упражнений, читатель приступит к выполнению лабораторных работ. Для

этого читателю необходимо проанализировать задачу, составить блок-схему и написать

компьютерную программу на языке БЕЙСИК. После этого составленную программу необходимо

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

числовой результат на экране.

К каждой лабораторной работе приводится образец выполнения работы, даются

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

материала.

В помощь читателю в разделе 4 приводятся решения (программы) всех задач лабораторных

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

вариантов компьютерной программы решения математической задачи.

3.2. Лабораторная работа “L1“: Записи арифметических выражений

на языке БЕЙСИК

Цель работы: овладение навыками записи арифметических выражений

на языке БЕЙСИК.

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

1. Из каких букв и цифр состоит язык БЕЙСИК?

2. Какими символами изображаются знаки действия?

3. Перечислить стандартные функции языка БЕЙСИК .3. Какова форма представления чисел?

73

4. Что может послужить именем переменной?

5. Какова структура арифметического выражения?

7. Каков порядок выполнения операций при вычислении арифметических выражений?

Работа содержит два задания.

Задания 1, 2. Записать на языке БЕЙСИК заданные арифметические выражения.

Вариант Шифр Арифметическое выражениеL1.1.1

1L1.1.2 0,25( x-1,75 ln (9,8+ ))

L1.2.1

2L1.2.2

ln

L1.3.13

L1.3.2L1.4.14

L1.4.2

L1.5.1 sin +

5 L1.5.2 1 + x + ln

L1.6.1

6 L1.6.2 y – 2 arctgx – sin ln

L1.7.1

7L1.7.2 xtg +2ln

L1.8.1 8

L1.8.2

74

L1.9.19

L1.9.2 y –

L1.10.1

10L1.10.2

L1.11.111

L1.11.2 x sin x/(

L1.12.1

12L1.12.2 xxcba cos)sin/()( 32 ++

L1.13.113

L1.13.2

L1.14.1

L1.14.2 x ln

14

L1.15.1

15 L1.15.2

75

3.3 . Лабораторная работа “L2“: Оператора присваивания, ввода – вывода

Цель: овладение навыками записи операторов присваивания, ввода-вывода присоставлении линейных программ.

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

1. Какова структура оператора присваивания?

2. Как выполняется оператор присваивания?3. Каково назначение оператора присваивания?

4. Что происходит с прежним значением переменной, когда этой переменнойприсваивается новое значение?

5. Какова структура оператора ввода?6. Как осуществляется выполнение оператора вывода?

7. Как выводится на экран дисплея комментарий к тексту?8. Как выполняется оператор вывода?

Работа состоит из двух заданий.

Задание 1. Вычислить значение функции при заданных значениях аргументов и

параметров.

Задание 2. Вычислить значение Z = Z1+Z2, где Z1 = F1(X1); Z2 = F2(X2).

Вар. Шифр Функции Исходные данные

L2.1.11

L2.1.2 72,52 =x

.

L2.2.1x = 2; a = 248;b =87,22

L2.2.2 5,87

L2.3.1 x = 5; a = 23,5;b =0,129; c = 3503

L2.3.2 6,31

76

L2.4.1x = 2,57;y = 13,764

L2.4.2 2,79

L2.5.1a = 1,25; b = -1,75;x = 4,78

5L2.5.2 6,31

L2.6.1x = 2,15;y = 9,78.6

L2.6.2 1,76

L2.7.1 a = 1,9;b =0,04; c = 67

L2.7.2 2,56

L2.8.1m = 1,2;n = -3,768

L2.8.2 2,57

L2.9.1a = 0,7;b = -3,19

L2.9.2 3,93

L2.10.1a = 3,2;b =2; c = 0,7510

L2.10.2 2,74

L2.11.1x = 3,35; y = -0,27;a = 2,111

L2.11.2 1,74

L2.12.1x = -1,7; y = 3,2;

12

L2.12.2 2,64

77

L2.13.1x = -0,025; y = 2,12;a = 3,861

13L2.13.2 1,25

L2.14.1x = 0,34; y = 0,95;a = -0,5

14L2.14.2 3,11

L2.15.1a = 9;b =3,5; c = -1,215

L2.15.2 1,12

3.4. Лабораторная работа “L3“: Операторы передачи управления. Программы с разветвлениями

Цель работы: овладение навыками программирования разветвляющихся алгоритмов с

помощью операторов передачи управления.

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

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

программе?

2. Какова структура полного оператора условной передачи управления?

3. Как выполняются условный оператор передачи управления?

4. Какой вид имеет неполный оператор условной передачи управления?

5. Какой вид имеет условие в операторе условной передачи управления?

Задание. Вычислить значение функции Y при заданном значении t.

Варианты заданий приведены в таблице.

78

Образец выполнения лабораторной работы “L3“

Вычислить значение функции:

,Блок-схема

да

нет

Вариант 1

5 CLS

10 PRINT "L3.ob1"

20 T = 1.27

30 X = (T * T + 1.2 * T + 3.7) ^ (1 / 3)

40 IF X > 1.7 THEN Y = SQR(ABS(COS(X) + SIN(X))) ELSE

Y = 1.57 * X / (X ̂ 2 + 1)

50 PRINT "x="; X, "y="; Y

60 END

L3.ob1

x= 1.897957 y= .6474656

начало

конец

Вывод

Т = 1,27

79

Вариант 25 CLS

10 PRINT "L3.OB2"

20 T = 1.77

30 X = (T ^ 2 + 1.2 * T + 3.7) ^ (1 / 3)

40 IF X <= 1.7 THEN 50 ELSE 70

50 Y = 1.57 * X / (X ̂ 2 + 1)

60 GOTO 80

70 Y = SQR(ABS(COS(X) + SIN(X)))

80 PRINT "X="; X, "Y="; Y

90 END

L3.OB2

X= 2.076758 Y= .6245477

При заданном значении t вычисляется значение Х и в зависимости от полученного

значения Х вычисляется Y по одному из аналитических выражений.

Вар. Шифр Функция x t

1 L31 1,5

2 L32 0,3

3 L33 -1,1

4 L34 0,7

80

5 L35 0,9

6 L36 -3

7 L37 2)1( +tt

-0,64

8 L38 0,93

9 L39 -3,59

10 L310 Y = 0,85

11 L311 5,74

12 L312 Y = -1,75

13 L313 Y = -3,75

81

14 L314 = 3,75

15 L315 Y= 1,27

3.5. Лабораторная работа” L4”: Массивы. Оператор цикла

Цель работы: овладения навыками описания и формирования массива, программирование

циклических алгоритмов с помощью оператора цикла.

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

1. Что называется массивом?

2. Как в программе описывается массив?

3. Как можно ввести массив в память машины?

4. Какова структура оператора цикла?

5. В чем состоит выполнение оператора цикла?

6. Можно ли досрочно выйти из цикла?

7. Можно ли войти в цикл, минуя его начало?

Работа состоит из двух заданий.

Задание 1. Вычислить значение функции при заданных значениях переменной Х.

a = 1,2; b= 2,4; c= 5,4.

82

Вар. Шифр Функции Независимая переменная

1 L411 y= 0,2; 1,3; 1,8; 2,8; 3,6

2 L421 y= x 5,8; 5,5; 6,1; 6,5; 7,6

3 L431 y= 3,8; 0,15; 15,1;

17,8; 39,2

4 L441 y= 8,1; 12,3; 15,2;

31,5; 39,08

Вар. Шифр Функции Независимая

переменная

5 L451 y= -3,1; 2,52; 5,81; 7,5; 9,4

6 L461 y= 1,8; 1,16; 1,15; 1,35; 1,6

7 L471 y= 1,0; 1,8; 2,2; 2,5; 7,5

8 L481 y= a ,2; 3,0; 25; 8; 70

9 L491 y= xtg + 2 0,5; 0,6; 0,9; 1,1; 1,5

10 L4101 y= 2arctgx – sin 2,15; 2,3; 2,35;

2,37; 2,5

11 L4111 y= 1+x+ -16; -9; 0,5; 2,4; 3,4

12 L4121 y= -2,75; -1,05; 1,65; 3,25

13 L4131 y= 0; -3,25; 1,23; 5,2; 4,6

14 L4141 y= -1,5; 0; 1,2; 3,5; 5

Образец выполнения работы

Задание 1. Вычислить значения функции y=0,25(x-1,75

83

при x = -1,0; 0,75; 2,1; 4,75; 5,12.

Все значения х удобно оформить в виде массива. Назовем его Х. Размерность этого массива

N=4. Для ввода этого массива в память машины используем оператор цикла, где параметром

цикла будет номер элемента массива 1 ≤ i ≤ 4.

5 CLS

10 PRINT "L4.ob1"

20 DIM X (4)

30 DATA -1, 0.75, 2.1, 4.75, 5.12

40 FOR I = 0 TO 4

50 READ X (I)

60 NEXT I

70 FOR K = 0 TO 4

80 Y = .25 * (X (K) - 1.75 * LOG (9.8 + X (K) ^ 2))

90 PRINT "X="; X (K), "Y="; Y

100 NEXT K

110 END

L4.ob1X=-1 Y=-1.291051

X= .75 Y=-.8354596

X= 2.1 Y=-.6361014

X= 4.75 Y=-.3336877

X= 5.12 Y=-.2879645

Задание 2. Составить блок-схему и программу решения задачи

Вар. Шифр Условие задачи

1 L412 Найти сумму нечетных двухзначных чисел.На печать выдать сумму и их количество.

84

2 L422Найти сумму первых десяти членов последовательности

.

3 L432Используя формулу q, найти первые 10 членовГеометрической прогрессии и их сумму,если q=-2.

4 L442Используя формулу q, найти первые 10членов арифметической прогрессии и их сумму, если

; d =1,5.

5 L452

Вычислить значения многочленаP(x) + , записав его по схеме Горнерапри х=2,5;

6 L462 Вычислить значение функции y=для х є [-3; 1] с шагом Н=0,5.

7 L472 Найти количество отрицательных элементов массиваи их сумму. 3; -2,7; 5; 11; -1,8; -0,9; 2,3; -15; 14; -8,7.

8 L482

Заданы два массива А(5) и В(5).А(5)= 3; -2,7; 8; -4,1; 5,3; 6,8В(5)= -2; 8; 4,7; -11; 8,9; -15.Найти сумму S= .

9 L492Найти сумму первых пяти членов последовательности

при х=3,2.

10 L4102

Заданы два массива А(5) и В(5). Сформировать новый массив С(5) по правилуA(5)=7; 8,1; 9,3; -2,7; -0,5; 1,4B(5)=3; 1,2; 7; 9,3; 1,5; 5,2;

11 L4112Из массива А(10) выдать на печать отрицательныеэлементы, стоящие на нечетных местах.А(10)=-3; -7; 9; 10; -11; -7,5; 8,1; 3,4; - 2; -4; 3,5

12 L4122Величина х принимает значения 1; 1,2; 1,4; 1,6; 1,8; 2.

Найти соответствующие значения .

13 L4132Вычислить значение функции на [-4;2]

с Н=0,5 и количество положительных значенийсреди вычисленных.

14 L4142Найти сумму отрицательных значений функции

, принимаемых ею на [-3;3] с шагом Н=0,5.

15 L4152Из массива заданных чисел найти среднее арифметическоеположительных чисел.Заданные числа: 2; 7; -13; -8; 19; 5; -3; 15; -6; 21

85

Образец выполнения работы

Задание 2. Из массива заданных чисел найти среднее арифметическое положительных

чисел.

Заданные числа: 2; 7; -13; -8; 19; 5; -3; 15; -6; 21

Оформим заданные числа в виде массива Х(9) и введем в память машины, используя

оператор цикла с параметром i.

S – сумма положительных элементов массива; SA=

SA – искомое среднее арифметическое положительных чисел;

К – количество положительных чисел5 CLS

10 PRINT "L4ob2"

20 DATA 2, 7, - 13, -8, 19, 5, -3, 15, -6, 21

30 DIM X(9)

40 FOR I = 0 TO 9

50 READ X(I)

60 NEXT I

70 S = 0

80 K = 0

90 FOR I = 0 TO 9

100 IF X(I) <= 0 THEN 130

110 S = S + X(I)

120 K = K + 1

130 NEXT I

140 SA = S / K

150 PRINT "K="; K

160 PRINT "SA="; SA

170 END

L4ob2K= 6

SA= 11.5

3.6. Лабораторная работа ”L5”: Подпрограммы

86

Цель работы: формирования навыков и умений по составлению программ с

использованием функций пользователя и подпрограмм.

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

1. Что такое функция пользователя?

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

3. Является ли это описание выполняемым оператором?

4. Что такое программа в программе?

5. Какова структура подпрограммы?

6. Как осуществляется обращение к функции пользователя и к подпрограмме?

7. Как осуществляется выход из подпрограммы?

8. В чем отличие в полученных результатах после обращения к функции пользователя и к

подпрограмме?

9. Что называется формальными и фактическими параметрами? С какими параметрами

производятся вычисления?

10. Где должны располагаться подпрограммы в тексте программы?

Работа состоит из одной задачи. Читателю предлагается составить подпрограмму, а затем,

используя эту подпрограмму, решить поставленную задачу.

Эта лабораторная работа подводит итог того, что читатель усвоил при изучении операторов

и правил программирования.

Образец выполнения задания

Задача: Составить подпрограмму нахождения координат центра тяжести треугольника,

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

заданных треугольников.

87

1. А(-12;-3); В(12;-10); С(-6;14);

2. А(-6;-5); В(18;-12); С(0;12);

3. А(8;12); В(27;5); C(9;29).

Центр тяжести треугольника АВС лежит на пересечении его медиан. Точка М пересечения

медиан делит медиану в отношении 2: 1, считая от вершины. Отношение .

Координаты точки D находим по формулам:

.

Зная координаты точек В и D по

формулам

; ;

находим координаты точки М. Это и есть

искомые координаты центра тяжести

треугольника.

D (-9; 5,5)

M

Введем обозначения

A1 A2 B1 B2 C1 C2 D1 D2 M1 M2

5 CLS

8 PRINT "L5ob"

10 PRINT " Вычисление координат "

88

20 PRINT " центра тяжести треугольника"

30 DATA -12, -3, 12, -10, -6, 14

40 DATA -6, -5, 18, -12, 0, 12

50 DATA 3, 12, 27, 5, 9, 29

60 FOR I = 0 TO 2

70 READ A1, A2, B1, B2, C1, C2

80 GOSUB 120

90 PRINT "XM="; , M1, "YM="; M2

100 NEXT I

110 GOTO 180

120 D1 = (A1 + C1) / 2

130 D2 = (A2 + C2) / 2

140 L = 2

150 M1 = (B1 + L * D1) / (1 + L)

160 M2 = (B2 + L * D2) / (1 + L)

170 RETURN

180 END

L5ob

Вычисление координат

центра тяжести треугольникаXM= -2 YM= .3333333

XM= 4 YM=-1.666667

XM= 13 YM= 15.33333

Вар. Шифр Условие задачи

89

1 L51

Составить подпрограмму вычисления периметра треугольника покоординатам его вершин. Используя эту подпрограмму, найтипериметры треугольников по заданным координатам вершин:

1. А(3;2), В(-2;5), C(9;4)2. А(2;1), В(5;5), С(-4;6)3. А(0;-3), В(9;0), С(6;-6)

2 L52

Составить подпрограмму вычисления площади треугольника поформуле Герона. Используя эту подпрограмму, найти площадитреугольников по заданным его вершинам:

1. А(3;2), В(-2;5), C(9;4)2. А(2;1), В(5;5), С(-4;6)3. A(0;-3), B(9;0), C(6;-6)

3 L53

Составить программу вычисления периметра трапеции покоординатам её вершин. Используя эту подпрограмму, найтипериметры заданных трапеций:

1. А(-3;2), B(2;7), C(2,3), D(4;5)2. A(-5;-4), B(8;-4), C(6;1), D(-2;1)3. A(5;3), B(5;7), C(9;5), D(9;4)

4 L54

Составить подпрограмму вычисления площади трапеции пооснованиям и высоте. Используя эту подпрограмму, найти площадизаданных трапеций:

1. a=6,5 b=3,4 h=2,52. a=13,4 b=8,3 h=5,73. a=15,5 b=8,4 h=6,5

5 L55

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

1. А(2;8), В(8;4), С(14;8), D(8;12)2. A(5;6), B(11;2), C(17;6), D(11;10)3. A(0;11), B(6;7), C(12;11), D(6;15)

6 L56

Составить подпрограмму вычисления угла между сторонами ромба.Используя эту подпрограмму, найти углы между сторонамизаданных ромбов:

1. А(2;8), В(8;4), С(14;8), D(8;12)2. A(5;6), B(11;2), C(17;6), D(11;10)3. A(0;11), B(6;7), C(12;11), D(6;15)

7 L57

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

1. А(0;4), В(2;9), С(8;3), D(6;-2)2. A(2;7), B(4;12), C(10;6), D(8;1)3. A(-1;2), B(1;7), C(7;1), D(5;-4)

90

8 L58

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

1. А(0;4), В(2;9), С(8;3), D(6;-2)2. A(2;7), B(4;12), C(10;6), D(8;1)3. A(-1;2), B(1;7), C(7;1), D(5;-4)

9 L59

Составить подпрограмму проверки условия перпендикулярностидвух векторов, заданных координатами начала и конца. Используяэту подпрограмму, проверить перпендикулярность данных парвекторов:

1. A(2;8), B(14;8) и C(8;4), D(8;12)2. A(2;8), B(8;4) и С(14;8), D(8;12)3. А(0;1), B(12;11) и C(6;7), D(6;15)

10 L510

Составить подпрограмму вычисления суммы членоварифметической прогрессии. Используя эту подпрограмму,вычислить сумму заданной арифметической прогрессии:2, 5, 8, 11, … при n=5; 7; 10

11 L511

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

Используя эту подпрограмму, найти пройденный путь приследующих данных:

1. V=2+3t; ; .

2. V=10-2t; ; .

3. V=3,5+1,5t; ;

12 L512

Составить подпрограмму вычисления суммы членовгеометрической прогрессии 10, 5, 2,5. Используя эту подпрограмму,вычислить сумму n членов прогрессии, если n= 2; 5; 10.

13 L513

Задана прямоугольная таблица чисел из 4 строк и 3 столбцов.Составить подпрограмму вычисления суммы элементов строки.Используя эту подпрограмму, вычислить сумму элементов каждойстроки заданной таблицы чисел:

-3 5 6 0 1 2-5 4 -7

1 2 -11

91

14 L514

Задана прямоугольная таблица чисел из 5 строк и 3 столбцов.Составить подпрограмму для вычисления суммы элементовстолбца. Используя эту подпрограмму, вычислить сумму элементовкаждого столбца: 2 3 1 -1 2 5 0 -5 -3 3 4 7 1 2 -4

92

РАЗДЕЛ 4. ОТВЕТЫ И КОМПЬЮТЕРНЫЕ ПРОГРАММЫ К ЛАБОРАТОРНЫМ РАБОТАМ

4.1. Лабораторная работа ” L1 ”

L111 (x+y)^3+2*sin(x)

1

L112 0.25*(x-1.75*L0G(9.8+x*x))

------------------------------------------------------------------------

L121 ( (sin(x))^2 - (cos(x))/(x+y)

2

L122 LOG(abs(a*a-x*x))

--------------------------------------------------------------------------

L131 (abs(cos(x)+abs(sin(y))/(x*x)

3

L132 (abs(x)+2*cos(x))/(0.5+x*x+x^4)

---------------------------------------------------------------------------

L141 sqr(abs(2*x+y))+ (2*y-x)^(1/3)

4

L142 (sin(x)+cos(x))/(x*x+1)

-------------------------------------------------------------------------

L151 sin((x+y)/2)+sqr(abs(x+1.2))

5

L152 1+x+LOG(abs(x))

93

--------------------------------------------------------------------------

L161 1/(cos(x+y))+ (3.5*x)^(1/3)

6

L162 y= 2*atan(x)- sin(x/2)*LOG(abs(x/4))

----------------------------------------------------------------------------

L171 ((1+x/(1+x)))/(3*y)

7

L172 x*tan(x/2)+ 2*LOG(abs(cos(x/2)))

------------------------------------------------------------------------------

L181 (sqr(a+b))/(sin(a)+cos(b))

8

L182 a*x*x+b*x+c

----------------------------------------------------------------------------

L191 (x+y)/(x-y)^2+ 2^X

9

L192 y-x^3*LOG(x)-1

-----------------------------------------------------------------------------

L1101 (2^X- sin(x))/(1+x*x)

10

L1102 (1/a^4 – 1/x^4)*atan(x/a)

------------------------------------------------------------------------------

L1111 (a*x+b*y)/(a*b)

11

L1112 (x*sin(x))/(x*x+5)+ x^3 -2

94

------------------------------------------------------------------------------

L1121 (X^Y) / (sqr(x*y))+2.3

12

L1122 (a+b*b)/ (c*(sin(x))^(1/3))+cos(x)

-----------------------------------------------------------------------------

L1131 x*y^2 /2+3*x*abs(y)

13

L1132 (x^2+a)^(1/3) -(x-a)^(1/3)-sqr(a+x)

------------------------------------------------------------------------------

L1141 sin(x)*cos(y)/(x+y)

14

L1142 x*LOG(abs(sin(pi*s/x))

------------------------------------------------------------------------------

L1151 (LOG(x*x+y*y))/sin(y)

15

L1152 (13.5*x^7+ 9.5)/(5*(x*x- x+1))- 4*X^4

------------------------------------------------------------------------------

4.2. Лабораторная работа ”L2”5 CLS

10 PRINT "L2.1.1"

20 X1 = .62

30 X2 = .98

40 Y = (.5 * X1 - .13 * X2) / (.15 * X1 * X1 + .37 * X2 + .75)

50 PRINT "Y="; Y

60 END

L2.1.1 Y= .1560337

95

5 CLS

10 PRINT " L212 "

20 X1 = 1.75

30 X2 = 5.72

40 Z1 = X1 * COS(X1) ^ 2

50 Z2 = SQR(2 - SIN(X2) ^ 2)

60 Z = Z1 + Z2

L212

Z= 1.365169

5 CLS

10 PRINT "L221"

20 X = 2

30 A = 248

40 B = 87.2

50 Y = (A + B / 3 + X * A) / (X * A + B)

60 PRINT "Y="; Y

70 END

L221

Y= 1.32556

5 CLS

10 PRINT " L222"

20 X1 = 2.59

30 X2 = 5.87

40 Z1 = 2 * SIN(2 * X1)

50 Z2 = SQR(X2 * X2 + 5)

60 Z = Z1 + Z2

70 PRINT "Z="; Z

80 END

L222

Z= 4.496177

5 CLS

10 PRINT " L231"

20 X = 5

30 A = 23.5

40 B = .189

50 C = 350

96

60 Y = ((A * X * X + B) * C) / (B + A)

70 PRINT "Y="; Y

80 END

L231

5 CLS

10 PRINT "L232"

20 X1 = .37

30 X2 = 6.31

40 Z1 = EXP(-X1 ^ 2 + 1)

50 Z2 = LOG(ABS(SIN(X2)))

60 Z = Z1 + Z2

70 PRINT "Z="; Z

80 END

L232

Z=-1.248429

5 CLS

10 PRINT "L241"

20 X = 2.57

30 Y = 13.76

40 Z = (X ̂ 2 * Y + .15 * Y ^ 2) / (1.37 * X - Y / .37)

50 PRINT "Z="; Z

60 END

L241 Z=-3.54292

5 CLS

10 PRINT "L242"

20 X1 = -6.23

30 X2 = 2.79

40 Z1 = SQR(1 + COS(X1) ^ 2)

50 Z2 = SIN(LOG(ABS(X2)))

60 Z = Z1 + Z2

70 PRINT " Z="; Z

L242

Z= 2.268468

5 CLS

10 PRINT "L251"

20 A = 1.25

30 B = -1.75

40 X = 4.78

Y= 8682.981

97

50 Y = (A * X ̂ 2 + B * X) / (X ̂ 3 + .78 * X)

60 PRINT "Y="; Y

70 END

L251

Y= .1788102

5 CLS

10 PRINT "L252"

20 X1 = .85

30 X2 = 2.36

40 Z1 = LOG(ABS(SIN(X1)))

50 Z2 = EXP(X2 - 2)

60 Z = Z1 + Z2

70 PRINT "Z="; Z

80 END

L252

Z= 1.147353

5 CLS

10 PRINT "L261"

20 X = 2.15

30 Y = 9.78

40 Z = (X ̂ 2 + X * Y - 4.75) / (X ̂ 3 * Y - .136 * Y)

50 PRINT "Z="; Z

60 END

L261

Z= .2180046

5 CLS

10 PRINT "L262"

20 X1 = .21

30 X2 = 1.76

40 Z1 = EXP(SQR(X1 ^ 2 + 3))

50 Z2 = COS(X2 ^ 2)

60 Z = Z1 + Z2

70 PRINT "Z="; Z

80 END

L262

Z= 4.725351

5 CLS

10 PRINT "L271"

98

20 A = 1.9

30 B = .04

40 C = 6

50 X = ((A + B) ^ 4 * C ^ 2) / (A ̂ 2 - B ̂ 2)

60 PRINT "X="; X

70 END

L271

X= 141.3171

5 CLS

10 PRINT "L272"

20 X1 = .74

30 X2 = 2.56

40 Z1 = (X1 ^ 2 + 1) ^ (1 / 3)

50 Z2 = LOG(ABS(COS(X2)))

60 Z = Z1 + Z2

70 PRINT "Z="; Z

80 END

L272

Z= .9770782

5 CLS

10 PRINT "L281"

20 M = 1.2

30 N = -3.76

40 Y = ((M - N) ^ 2 + 4 * M * N) / (M ̂ 2 - N ^ 2)

50 PRINT "Y="; Y

60 END

L281

Y=-.516129

5 CLS

10 PRINT "L282"

20 X1 = .52

30 X2 = 2.57

40 Z1 = EXP(COS(X1))

50 Z2 = LOG(2 * X2) ^ 2

60 Z = Z1 + Z2

70 PRINT "Z="; Z

80 END

L282

Z= 5.061654

99

5 CLS

10 PRINT "L291"

20 A = .7

30 B = -3.1

40 X = (25 * B + A - (4 * A ^ 2 - .7 * B ^ 2) / A) * B

50 PRINT "X="; X

60 END

L291

X= 216.969

5 CLS

10 PRINT "L292"

20 X1 = 1.59

30 X2 = 3.93

40 Z1 = (X1 ^ 2 + X1) ^ (1 / 3)

50 Z2 = EXP(SIN(X2)) + 2

60 Z = Z1 + Z2

70 PRINT "Z="; Z

80 END

L292

Z= 4.0948

5 CLS

10 PRINT "L2101"

20 A = 3.2

30 B = 2

40 C = .75

50 Y = (1 / A + 1 / B - 2 * C / A / B) * (A + B + 2 * C)

60 PRINT "Y="; Y

70 END

L2101

Y= 3.873437

5 CLS

10 PRINT "L2102"

20 X1 = 1.95

30 X2 = 2.74

40 Z1 = SIN(2 * X1) ^ 2

50 Z2 = (LOG(X2) ^ 2 + 3) ^ (1 / 3)

60 Z = Z1 + Z2

70 PRINT "Z="; Z

80 END

100

L2102

Z= 2.062534

5 CLS

10 PRINT "L2111"

20 X = 3.35

30 Y = -.27

40 A = 2.1

50 Z = (X * Y - 2 * X + Y) / (Y - X ̂ 2 - Y ̂ 2 * A)

60 PRINT "Z="; Z

70 END

L2111

Z= .6761788

5 CLS

10 PRINT "L2112"

20 X1 = -.12

30 X2 = 1.74

40 Z1 = EXP(X1 ^ 2 - 2)

50 Z2 = SQR((SIN(X2)) ^ 2 + 2)

60 Z = Z1 + Z2

70 PRINT "Z="; Z

80 END

L2112

Z= 1.861143

5 CLS

10 PRINT "L2121"

20 X = -1.7

30 Y = 3.2

40 Z = (X ̂ 2 * Y ^ 2 - .75 * X * Y) / (X ̂ 2 + Y ^ 2)

50 PRINT "Z="; Z

60 END

L2121

Z= 2.564631

5 CLS

10 PRINT "L2122"

20 X1 = -1.61

30 X2 = 2.84

40 Z1 = LOG(X1 + 3)

50 Z2 = (SIN(X2) ^ 2 + 5) ^ (1 / 3)

60 Z = Z1 + Z2

101

70 PRINT "Z="; Z

80 END

L2122

Z= 2.04928

5 CLS

10 PRINT "L2131"

20 X = -.025

30 Y = 2.12

40 A = 3.861

50 Z = (.82 * A * X - X ^ 2 * Y ^ 3) / (A ̂ 2 + X ^ 2 + Y ^ 2)

60 PRINT "Z="; Z

70 END

L2131

Z=-4.386355E-03

5 CLS

10 PRINT "L2132"

20 X1 = 2.59

30 X2 = 1.25

40 Z1 = (COS(X1 ^ 2 - 1)) ^ 3

50 Z2 = 2 * EXP(X2 + 2)

60 Z = Z1 + Z2

70 PRINT "Z="; Z

80 END

L2132

Z= 52.17158

5 CLS

10 PRINT "L2141"

20 X = .39

30 Y = .95

40 A = -.5

50 Z = (.8 * X ^ 3 + Y ^ 3 - A * X) / (A * X * Y + A ^ 2)

60 PRINT "Z="; Z

70 END

L2141

Z= 16.98579

5 CLS

10 PRINT "L2142"

20 X1 = .81

30 X2 = 3.11

102

40 Z1 = SIN(X1) ^ 2 + 9

50 Z2 = SQR(X2 ^ 2 + COS(X2))

60 Z = Z1 + Z2

70 PRINT "Z="; Z

80 END

L2142

Z= 12.46952

5 CLS

10 PRINT "L2151"

20 A = 9

30 B = 3.5

40 C = 8.72

50 X = -1.2

60 Y = (A * X + B * X + C ^ 2) / (X ̂ 2 + B ̂ 2)

70 PRINT "Y="; Y

80 END

L2151

Y= 4.458612

5 CLS

10 PRINT "L2152"

20 X1 = .51

30 X2 = 1.12

40 Z1 = COS(X1) + EXP(2 * X1)

50 Z2 = ABS(SIN(2 * X2)) ^ (1 / 3)

60 Z = Z1 + Z2

70 PRINT "Z="; Z

80 END

L2152

Z= 4.5681

4.3. Лабораторная работа ”L3”

Ответы и компьютерные программы5 CLS

10 PRINT "L31"

20 T = 1.5

30 X = 1.2 * T * T + T + 3

40 IF X <= 3.7 THEN Y = LOG(X + 3) ELSE Y = SQR(SIN(X) ^ 2 + 5)

50 PRINT "X="; X; " Y="; Y

60 END

103

L31

X= 7.2 Y= 2.372743

5 CLS

10 PRINT "L32"

20 T = .3

30 X = T ^ 3 - 2.4 * T

40 IF X <= .5 THEN Y = EXP(X * X - 2) ELSE Y = SQR(COS(X) ^ 2 + 1.7)

50 PRINT "X="; X, " Y="; Y

60 END

L32

X=-.6930001 Y= .2187664

5 CLS

10 PRINT "L33"

15 T = -1.1

20 X = SQR(ABS(T + 3))

30 IF X <= 1.4 THEN Y = X + X ^ 2 * COS(X) ELSE Y = X ^ 2 + X * SIN(X)

40 PRINT "X="; X, " Y="; Y

50 END

L33

X= 1.378405 Y= 1.741698

5 CLS

10 PRINT "L34"

20 T = .7

30 X = T ^ 2 + 1.3 * T + 1

40 IF X <= 2.3 THEN Y = SIN(X) ^ 2 ELSE Y = (LOG(X) ^ 2 + 3) ^ (1 / 3)

50 PRINT "X="; X, " Y="; Y

60 END

L34

X= 2.4 Y= 1.555884

5 CLS

10 PRINT "L35"

20 T = .9

30 X = T / (T ^ 2 + T + 1)

40 IF X > 1.5 THEN Y = EXP(SIN(X)) ELSE Y = (X * X + 2) ^ (1 / 3)

50 PRINT "X="; X, " Y="; Y

104

60 END

L35

X= .3321033 Y= 1.282668

5 CLS

10 PRINT "L36"

20 T = -3

30 X = (T ^ 2 + 1) / (.7 * T + 1)

40 IF X > 2.1 THEN Y = LOG(ABS(2 * X)) ^ 2 ELSE Y = EXP(COS(X) + 3)

50 PRINT "X="; X, " Y="; Y

60 END

L36

X=-9.090909 Y= 7.808543

5 CLS

10 PRINT "L37"

20 T = -.64

30 X = T / (T + 1) ^ 2

40 IF X > 0 THEN Y = COS(X ̂ 2) ELSE Y = (X ̂ 2 + 2.5) ^ (1 / 3)

50 PRINT "X="; X, " Y="; Y

60 END

L37

X=-4.938271 Y= 2.995791

5 CLS

10 PRINT "L38"

20 T = .93

30 X = T ^ 3 / (1 + T)

40 IF X > 3.5 THEN Y = SQR(2 - SIN(X) ^ 2) ELSE Y = X * COS(X) ^ 2

50 PRINT "X="; X, " Y="; Y

60 END

L38

X= .4167653 Y= .3484713

5 CLS

10 PRINT "L39"

20 T = -3.59

30 X = 2 + ABS(T + 1.5) ^ (1 / 3)

40 IF X > 4 THEN Y = SQR(X ^ 2 + 5) ELSE Y = 2 * SIN(2 * X)

50 PRINT "X="; X, " Y="; Y

105

60 END

L39

X= 3.278543 Y= .5409784

5 CLS

10 PRINT "L310"

20 T = .85

30 X = T * T / (T ^ 3 + 1)

40 IF X > 2 THEN Y = EXP(X - 2) ELSE Y = LOG(ABS(SIN(X)))

50 PRINT "X="; X, " Y="; Y

60 END

L310

X= .4476109 Y=-.8374493

5 CLS

10 PRINT "L311"

20 T = 5.74

30 X = (2 * T + 4) / (T ^ 2 + 1)

40 IF X <= -1 THEN Y = EXP(SQR(X ^ 2 + 3)) ELSE Y = ABS(X - 3.5) ^ (1 / 3)

50 PRINT "X="; X, " Y="; Y

60 END

L311

X= .4559969 Y= 1.449267

5 CLS

10 PRINT "L312"

20 T = 3.75

30 X = -T + SQR(T * T + 1)

40 IF X > 1 THEN Y = 1 / (1 + X * X) ELSE Y = (X ̂ 2 + 5.75) / SIN(X)

50 PRINT "X="; X, " Y="; Y

60 END

L312

X= .1310437 Y= 44.13576

5 CLS

10 PRINT "L313"

20 T = -1.75

30 X = T * T + 3 * T + 1

40 IF X <= 0 THEN Y = SIN(SQR(ABS(X))) ELSE Y = EXP(X) / (X * X + 3 * X)

106

50 PRINT "X="; X, " Y="; Y

60 END

L313

X=-1.1875 Y= .8864996

5 CLS

10 PRINT "L314"

20 T = 3.75

30 X = T ^ 3 - SQR(T * T + 1)

40 IF X <= 2.3 THEN Y = SQR(1 + X + X * X) ELSE Y = COS(X) / ABS(X - 1.3)

50 PRINT "X="; X, " Y="; Y

60 END

L314

X= 48.85333 Y= 3.322201E-03

4.4. Лабораторная робота L4

Ответы и компьютерные программы

5 CLS

10 PRINT "L411"

20 DATA 0.2, 1, 1.8, 2, 3

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT I

70 FOR K = 0 TO 4

80 Y = (13.5 * X(K) ^ 7 + 9) / 5 / (X(K) ^ 2 - X(K) - 1) - 4 * X(K) ^ 4

90 PRINT "X="; X(K), " Y="; Y

100 NEXT K

110 END

L411

X= .2 Y=-1.558154

X= 1 Y=-8.5

X= 1.8 Y= 337.781

X= 2 Y= 283.4

X= 3 Y= 857.34

5 CLS

10 PRINT "L421"

107

20 DATA 5.8, 5.5, 6.1, 6.5, 7.6

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT I

70 FOR K = 0 TO 4

80 Y = X(K) * LOG(ABS(SIN(15 / X(K))))

90 PRINT "X="; X(K), " Y="; Y

100 NEXT K

110 END

L421

X= 5.8 Y=-3.712234

X= 5.5 Y=-5.004409

X= 6.1 Y=-2.810732

X= 6.5 Y=-1.952284

X= 7.6 Y=-.6342574

5 CLS

10 PRINT "L32"

20 T = .3

30 X = T ^ 3 - 2.4 * T

40 IF X <= .5 THEN Y = EXP(X * X - 2) ELSE Y = SQR(COS(X) ^ 2 + 1.7)

50 PRINT "X="; X, " Y="; Y

60 END

L431

X= 3.8 Y= .8746406

X= .15 Y=-.2490185

X= 15.1 Y= 3.637524

X= 17.8 Y= 4.206316

X= 39.2 Y= 8.1426

5 CLS

10 PRINT "L441"

20 DATA 8.1, 2.3, 15.2, 31.5, 33.08

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT I

70 FOR K = 0 TO 4

108

80 Y = (1.2 + 2.4 ^ 2) / 5.4 / (SIN(X(K))) ^ (1 / 3) + COS(X(K))

90 PRINT "X="; X(K), "Y="; Y

100 NEXT K

110 END

L441

X= 8.1 Y= 1.058547

X= 2.3 Y= .755048

X= 15.2 Y= .7651588

X= 31.5 Y= 3.939758

X= 33.08 Y= 1.197618

5 CLS

10 PRINT "L451"

20 DATA - 3.1, 2.52, 5.81, 7, 9

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT

70 FOR K = 0 TO 4

80 Y = X(K) * SIN(X(K)) / (X(K) ^ 2 + 5) + X(K) ^ 3 - 2

90 PRINT "X="; X(K), "Y="; Y

100 NEXT K

110 END

L451

X=-3.1 Y=-31.78218

X= 2.52 Y= 14.1323

X= 5.81 Y= 194.0546

X= 7 Y= 341.0852

X= 9 Y= 727.0432

5 CLS

10 PRINT "L461"

20 DATA 1, 1.1, 1.15, 1.3, 1.6

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT

70 FOR K = 0 TO 4

80 Y = (1 / 1.2 ^ 4 - 1 / X(K) ^ 4) * ATN(X(K) / 1.2)

109

90 PRINT "X="; X(K), "Y="; Y

100 NEXT K

110 END

L461

X= 1 Y=-.3596987

X= 1.1 Y=-.1489536

X= 1.15 Y=-6.838938E-02

X= 1.3 Y= .109053

X= 1.6 Y= .3056969

5 CLS

10 PRINT "L471"

20 DATA 1, 1.8, 2.2, 2.5, 7

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT

70 FOR K = 0 TO 4

80 Y = X(K) ^ 3 * LOG(X(K)) - 1

90 PRINT "X="; X(K), "Y="; Y

100 NEXT K

110 END

L471

X= 1 Y=-1

X= 1.8 Y= 2.427971

X= 2.2 Y= 7.395495

X= 2.5 Y= 13.31704

X= 7 Y= 666.4472

5 CLS

10 PRINT "L481"

20 DATA 1.1, 3, 25, 70, 72

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT

70 FOR K = 0 TO 4

80 Y = (1.2 * X(K) ^ 2 + 2.7 * X(K) + 5.4)

90 PRINT "X="; X(K), "Y="; Y

110

100 NEXT K

110 END

L481

X= 1.1 Y= 9.822001

X= 3 Y= 24.3

X= 25 Y= 822.9

X= 70 Y= 6074.4

X= 72 Y= 6420.6

5 CLS

10 PRINT "L491"

20 DATA 0.5, 0.6, 0.9, 1.1, 1.5

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT

70 FOR K = 0 TO 4

80 Y = X(K) * TAN(X(K) / 2) + 2 * LOG(ABS(COS(X(K) / 2)))

90 PRINT "X="; X(K), "Y="; Y

100 NEXT K

110 END

L491

X= .5 Y= 6.450886E-02

X= .6 Y= 9.421845E-02

X= .9 Y= .2250218

X= 1.1 Y= .3553091

X= 1.5 Y= .7725949

5 CLS

10 PRINT "L4101"

20 DATA 2.15, 2.3, 2.35, 2.37, 2.5

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT

70 FOR K = 0 TO 4

80 Y = 2 * ATN(X(K)) - SIN(X(K) / 2) * LOG(X(K) / 4)

90 PRINT "X="; X(K), "Y="; Y

100 NEXT K

111

110 END

L4101

X= 2.15 Y= 2.816959

X= 2.3 Y= 2.826448

X= 2.35 Y= 2.82771

X= 2.37 Y= 2.827973

X= 2.5 Y= 2.826606

5 CLS

10 PRINT "L4111"

20 DATA -16, -9, 0.5, 2.4, 3.4

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT

70 FOR K = 0 TO 4

80 Y = 1 + X(K) + LOG(ABS(X(K)))

90 PRINT "X="; X(K), "Y="; Y

100 NEXT K

110 END

L4111

X=-16 Y=-12.22741

X=-9 Y=-5.802775

X= .5 Y= .8068528

X= 2.4 Y= 4.275469

X= 3.4 Y= 5.623775

5 CLS

10 PRINT "L4121"

20 DATA -2.75, -1.05, 1.65, 3.25, 4.5

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT

70 FOR K = 0 TO 4

80 Y = LOG(ABS(1.2 ^ 2 - X(K) ^ 2))

90 PRINT "X="; X(K), "Y="; Y

100 NEXT K

110 END

112

L4121

X=-2.75 Y= 1.81197

X=-1.05 Y=-1.086189

X= 1.65 Y= .2488111

X= 3.25 Y= 2.210744

X= 4.5 Y= 2.934389

5 CLS

10 PRINT "L4131"

20 DATA 0, -3.25, 1.23, 5.2, 4.0

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT

70 FOR K = 0 TO 4

80 Y = (ABS(X(K)) + 2 * COS(X(K))) / (.5 + X(K) ^ 2 + X(K) ^ 4)

90 PRINT "X="; X(K), "Y="; Y

100 NEXT K

110 END

L4131

X= 0 Y= 4

X=-3.25 Y= .0102891

X= 1.23 Y= .4413246

X= 5.2 Y= 8.088863E-03

X= 4 Y= 9.881515E-03

5 CLS

10 PRINT "L4141"

20 DATA -1.5, 0, 1.2, 3, 5

30 DIM X(4)

40 FOR I = 0 TO 4

50 READ X(I)

60 NEXT

70 FOR K = 0 TO 4

80 Y = (SIN(X(K)) + COS(X(K))) / (X(K) ^ 2 + 1)

90 PRINT "X="; X(K), "Y="; Y

100 NEXT K

110 END

L4141

113

X=-1.5 Y=-.2851563

X= 0 Y= 1

X= 1.2 Y= .5304905

X= 3 Y=-8.488725E-02

X= 5 Y=-2.597162E-02

Задание 2. Программы решения задач5 CLS

10 PRINT "L412"

20 K = 0

30 S = 0

40 FOR X = 11 TO 99 STEP 2

50 K = K + 1

60 S = S + X

61 PRINT " S="; S

70 NEXT X

80 PRINT "Сумма нечетных двузначных чисел "; S

90 PRINT "Количество нечетных двузначных чисел "; K

100 END

L412

Сумма нечетных двузначных чисел 2475

Количество нечетных двузначных чисел 45

5 CLS

10 PRINT "L422"

20 S = 0

30 FOR N = 0 TO 10

40 U = N / (1 + N ^ 2)

50 S = S + U

60 NEXT N

70 PRINT "S="; S

80 END

L422

S= 2.261607

5 CLS

10 PRINT "L432"

20 A = 5.2

114

30 Q = -2

40 S = 0

50 FOR I = 0 TO 9

60 S = S + A

70 A = A * Q

80 NEXT I

90 PRINT "S="; S

100 END

L432

S=-1773.2

CLS

PRINT "L442"

DATA 4.6, 1.5

DIM A(9)

READ A(0), D

PRINT A(0)

FOR I = 1 TO 9

A(I) = A(I - 1) + D

PRINT A(I)

NEXT I

END

L442

4.6

6.1

7.6

9.1

10.6

12.1

13.6

15.1

16.6

18.1

CLS

PRINT "L452"

DATA 2, -1.7, 2.7, 0.8, -3, 1.5, 2.5

DIM A(5)

FOR I = 0 TO 5

115

READ A(I)

NEXT I

READ X

P = A(0)

FOR K = 1 TO 5

P = P * X + A(K)

NEXT K

PRINT P

END

L452

170.0938

CLS

PRINT "L462"

PRINT "X", "Y"

FOR X = -3 TO 1 STEP .5

Y = 4 * X ^ 3 - 2 * X ^ 2 + 5

PRINT X, Y

NEXT X

END

L462

X Y

-3 -121

-2.5 -70

-2 -35

-1.5 -13

-1 -1

-.5 4

0 5

.5 5

1 7

CLS

PRINT "L472"

DATA 3, -2.7, 5, 11, -1.8, -0.9, 2.3, -15, 14, -8.7

116

DIM A(9)

FOR K = 0 TO 9

READ A(K)

NEXT K

S = 0

N = 0

FOR K = 0 TO 9

IF A(K) < 0 THEN 10 ELSE 11

10

N = N + 1

S = S + A(K)

11

NEXT K

PRINT "N="; N, " S = "; S

END

L472

N= 5 S = -29.1

CLS

PRINT "L482"

DIM A(5), B(5)

DATA 3, -2.7, 8, -4.1, 5.3, 6.8

DATA -2, 8, 4.7, -11, 8.9, -15

FOR I = 0 TO 5

READ A(I)

NEXT I

FOR I = 0 TO 5

READ B(I)

NEXT I

S = 0

FOR I = 0 TO 5

S = S + A(I) * B(I)

NEXT I

PRINT "S="; S

END

L482

S= .2699938

CLS

117

PRINT "L492"

X = 3.2

S = 0

FOR N = 1 TO 5

U = X ^ (2 * N) / N ^ 2

S = S + U

NEXT N

PRINT "S="; S

END

L492

S= 5346.554

CLS

PRINT "L4102"

DIM A(5), B(5), C(5)

DATA 7, 8.1, 9.3, -2.7, -0.5, 1.4

DATA 3, 1.2, 7, 9.3, 1.5, 5.2

FOR I = 0 TO 5

READ A(I)

NEXT I

FOR I = 0 TO 5

READ B(I)

NEXT I

FOR I = 0 TO 5

C(I) = A(I) + B(I) ^ 2

PRINT C(I)

NEXT I

END

L4102

16

9.540001

58.3

83.79

1.75

28.44

CLS

PRINT "L4112"

DIM A(10)

118

DATA -3, -7, 9, 10,- 11, -7.5, 8.1, 3.4,- 2, -4, 3.5

FOR I = 0 TO 10

READ A(I)

NEXT I

FOR I = 1 TO 10 STEP 2

IF A(I) < 0 THEN PRINT " I ="; I, A(I - 1)

NEXT I

END

L4112

I = 1 -3

I = 5 -11

I = 9 -2

CLS

PRINT "L4122"

PRINT "X", "Y"

FOR X = 1 TO 2 STEP .2

Y = 3.285 * X ^ 3 / (5 - X ^ (1 / 3))

PRINT X, Y

NEXT X

END

L4122

X Y

1 .82125

1.2 1.441704

1.4 2.322422

1.6 3.512789

1.8 5.063519

CLS

PRINT "L4132"

PRINT "X", "Y"

N = 0

FOR X = 4 TO 2 STEP -.5

Y = SQR(ABS(X)) * SIN(X) / (X + EXP(X))

IF Y > 0 THEN N = N + 1

PRINT X, Y

NEXT X

PRINT "N", N

119

END

L4132

X Y

4 -2.583025E-02

3.5 -1.792291E-02

3 1.058789E-02

2.5 6.444869E-02

2 .1369617

N 3

CLS

PRINT "L4142"

S = 0

FOR X = -3 TO 3 STEP .5

Y = X * COS(2 * X + 3)

IF Y < 0 THEN S = S + Y

NEXT X

PRINT "S="; S

END

L4142

S=-6.544869

4.5. Лабораторная работа ”L5”

Ответы и компьютерные программы

1 CLS

5 PRINT "L5.1"

10 DEF FND (X1, Y1, X2, Y2) = SQR((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)

20 DATA 3, 2, -2, 5, 9, 4

30 DATA 2, 1, 5, 5, -4, 6

40 DATA 0, -3, 9, 0, 6, -6

50 READ X1, Y1, X2, Y2, X3, Y3

60 GOSUB 120

70 READ X1, Y1, X2, Y2, X3, Y3

80 GOSUB 120

90 READ X1, Y1, X2, Y2, X3, Y3

100 GOSUB 120

110 GOTO 180

120

120 P = 0

130 P = P + FND(X1, Y1, X2, Y2)

140 P = P + FND(X1, Y1, X3, Y3)

150 P = P + FND(X2, Y2, X3, Y3)

160 PRINT "P="; P

170 RETURN

180 END

L5.1

P= 23.20087

P= 21.86563

P= 22.90324

1 CLS

5 PRINT "L5.2"

10 DEF FND (X1, Y1, X2, Y2) = SQR((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)

20 DATA 3, 2, -2, 5, 9, 4

30 DATA 2, 1, 5, 5, -4, 6

40 DATA 0, -3, 9, 0, 6, -6

50 READ X1, Y1, X2, Y2, X3, Y3

60 GOSUB 120

70 READ X1, Y1, X2, Y2, X3, Y3

80 GOSUB 120

90 READ X1, Y1, X2, Y2, X3, Y3

100 GOSUB 120

110 GOTO 190

120 A = FND(X1, Y1, X2, Y2)

130 B = FND(X1, Y1, X3, Y3)

140 C = FND(X2, Y2, X3, Y3)

150 P = (A + B + C) / 2

160 S = SQR(P * (P - A) * (P - B) * (P - C))

170 PRINT "S="; S

180 RETURN

190 END

L5.2

S= 13.99999

S= 19.5

S= 22.5

1 CLS

121

5 PRINT "L5.3"

10 DEF FND (X1, Y1, X2, Y2) = SQR((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)

20 DATA -3, 2, 2, 7, 2, 3, 4, 5

30 DATA -5, -4, 8, -4, 6, 1, -2, 1

40 DATA 5, 3, 5, 7, 9, 5, 9, 4

50 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

60 GOSUB 120

70 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

80 GOSUB 120

90 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

100 GOSUB 120

110 GOTO 190

120 P = 0

130 P = P + FND(X1, Y1, X2, Y2)

140 P = P + FND(X2, Y2, X3, Y3)

150 P = P + FND(X3, Y3, X4, Y4)

160 P = P + FND(X1, Y1, X4, Y4)

170 PRINT "P="; P

180 RETURN

190 END

L5.3

P= 21.51527

P= 32.21612

P= 13.59524

1 CLS

5 PRINT "L5.4"

10 DATA 6.5, 3.4, 2.5

20 DATA 13.4, 8.3, 5.7

30 DATA 15.5, 8.4, 6.5

40 READ A, B, H

50 GOSUB 110

60 READ A, B, H

70 GOSUB 110

80 READ A, B, H

90 GOSUB 110

100 GOTO 140

110 S = (A + B) / 2 * H

120 PRINT "S="; S

122

130 RETURN

140 END

L5.4

S= 12.375

S= 61.845

S= 77.675

1 CLS

5 PRINT "L5.5"

10 DEF FND (X1, Y1, X2, Y2) = SQR((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)

20 DATA 2, 8, 8, 4, 14, 8, 8, 12

30 DATA 5, 6, 11, 2, 17, 6, 11, 10

40 DATA 0, 11, 6, 7, 12, 11, 6, 15

50 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

60 GOSUB 120

70 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

80 GOSUB 120

90 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

100 GOSUB 120

110 GOTO 170

120 A = FND(X2, Y2, X4, Y4)

130 B = FND(X1, Y1, X3, Y3)

140 S = A * B / 2

150 PRINT "S="; S

160 RETURN

170 END

L5.5

S= 48

S= 48

S= 48

1 CLS

5 PRINT "L5.6"

10 DEF FND (X1, Y1, X2, Y2) = SQR((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)

20 DATA 2, 8, 8, 4, 14, 8, 8, 12

30 DATA 5, 6, 11, 2, 17, 6, 11, 10

40 DATA 0, 11, 6, 7, 12, 11, 6, 15

50 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

123

60 GOSUB 120

70 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

80 GOSUB 120

90 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

100 GOSUB 120

110 GOTO 180

120 Lromb = FND(X1, Y1, X2, Y2)

130 Lac = FND(X1, Y1, X3, Y3)

140 Lbd = FND(X2, Y2, X4, Y4)

150 S = Lac * Lbd / 2

152 SNalfa = S / Lromb ^ 2

154 PRINT "Lromb="; Lromb, "Lac="; Lac, "Lbd="; Lbd

160 PRINT "S="; S, "sin(alfa)="; SNalfa

170 RETURN

180 END

L5.6

Lromb= 7.211102 Lac= 12 Lbd= 8

S= 48 sin(alfa)= .9230769

Lromb= 7.211102 Lac= 12 Lbd= 8

S= 48 sin(alfa)= .9230769

Lromb= 7.211102 Lac= 12 Lbd= 8

S= 48 sin(alfa)= .9230769

1 CLS

5 PRINT "L5.7"

10 DEF FND (X1, Y1, X2, Y2) = SQR((X1 - X2) ^ 2 + (Y1 - Y2) ^ 2)

20 DATA 0, 4, 2, 9, 8, 3, 6, -2

30 DATA 2, 7, 4, 12, 10, 6, 8, 1

40 DATA -1, 2, 1, 7, 7, 1, 5, -4

50 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

60 GOSUB 120

70 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

80 GOSUB 120

90 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

100 GOSUB 120

110 GOTO 190

120 A = FND(X1, Y1, X2, Y2)

130 B = FND(X1, Y1, X3, Y3)

140 C = FND(X2, Y2, X3, Y3)

124

150 P = (A + B + C) / 2

160 S = 2 * SQR(P * (P - A) * (P - B) * (P - C))

170 PRINT "S="; S

180 RETURN

190 END

L5.7

S= 41.99999

S= 41.99999

S= 41.99999

1 CLS

5 PRINT "L5.8"

10 DEF FNV (X, Y) = SQR(X * X + Y * Y)

20 DATA 0, 4, 2, 9, 8, 3, 6, -2

30 DATA 2, 7, 4, 12, 10, 6, 8, 1

40 DATA -1, 2, 1, 7, 7, 1, 5, -4

50 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

60 GOSUB 120

70 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

80 GOSUB 120

90 READ X1, Y1, X2, Y2, X3, Y3, X4, Y4

100 GOSUB 120

110 GOTO 210

120 Z1 = X3 - X1

130 T1 = Y3 - Y1

140 V1 = FNV(Z1, T1)

150 Z2 = X4 - X2

160 T2 = Y4 - Y2

170 V2 = FNV(Z2, T2)

180 C = (Z1 * Z2 + T1 * T2) / V1 / V2

190 PRINT " Косинус угла ="; C

200 RETURN

210 END

L5.8

Косинус угла= .4556711

Косинус угла= .4556711Косинус угла= .4556711

125

Лабораторнвя работа L59

Пусть вектор BA задан координатами точек A и B . )2,1( AAA , ).2,1( BBB

Вектор DC задан координатами точек )2,1( CCC и ).2,1( DDD

Координаты вектора BA 1X и 1Y соответственно равны:

;111 ABX -= .221 ABY -=

Координаты вектора DC 2X и 2Y соответственно равны:

112 CDX -= ; .222 CDY -=

Условие перпендикулярности двух векторов – это равенство нулю их

скалярного произведения:

.02*12*1 =+ YYXX

Координаты точек A , B,C D вводятся в основной программе. В основной

программе осуществляется вывод информации. Подпрограмма вычисляет

координаты векторов и их скалярное произведение.

5 CLS

10 PRINT "L5.9"

20 DATA 2, 8, 14, 8, 8, 4, 8, 12

30 DATA 2, 8, 8, 4, 14, 8, 8, 12

40 DATA 0, 1, 12, 11, 6, 7, 6, 15

50 FOR I = 0 TO 2

60 READ A1, A2, B1, B2, C1, C2, D1, D2

70 GOSUB 90

80 GOTO 150

90 X1 = B1 - A1

100 Y1 = B2 - A2

110 X2 = D1 - C1

120 Y2 = D2 - C2

130 S = X1 * X2 + Y1 * Y2

140 RETURN

150 IF S = 0 THEN PRINT I + 1; " Векторы перпендикулярны "

160 IF S <> 0 THEN PRINT I + 1; " Векторы не перпендикулярны "

126

170 NEXT I

180 END

L5.9

1 Векторы перпендикулярны

2 Векторы не перпендикулярны

3 Векторы не перпендикулярны

Лабораторная работа L 510.

Арифметическая прогрессия ....,, 321 aaa na

Формула суммы членов арифметической прогрессии:

2)( 1 naaS n+

= или2

)]1(2( 1 nndaS -+= ,

где n - количество членов арифметической прогрессии,

)1(1 -+= ndaan -последний член прогрессии,

d -разность прогрессии. 12 aad -= .

В примере арифметическая прогрессия: 2, 5, 8,…5 CLS

10 PRINT "L5.10"

20 DATA 2, 5, 5, 7, 10

30 READ A1, A2

40 PRINT " Арифметическая прогрессия"

50 PRINT "2, 5, 8, 11..."

60 FOR I = 0 TO 2

70 READ N

80 GOSUB 120

90 PRINT " N="; N, "S="; S

100 NEXT I

110 GOTO 150

120 D = A2 - A1

130 S = (2 * A1 + D * (N - 1)) * N / 2

140 RETURN

150 END

L5.10

127

Арифметическая прогрессия2, 5, 8, 11...

N= 5 S= 40

N= 7 S= 77

N= 10 S= 155

Лабораторная работа L 511

Пройденный точкой путь за время от 1t до 2t вычисляется по формуле

)2

()(2

00

2

1

attVdtatVSt

t

+=+= ò ,

В момент времени 1t пройденный путь 1S , в момент времени 2t -пройденный путь 2S .

. Пройденный путь за время 12 tt - будет 12 SSS -= .

Выражение2

2

0attV + можно оформить как процедуру, значения которой вычисляются

при 1t и 2t .

1 CLS

5 PRINT "L5.11"

10 DATA 2, 3, 2, 5

20 DATA 10, -2, 1, 3

30 DATA 3.5, 1.5, 0, 10

40 DEF FNS (Vo, A, t) = Vo * t + A * t * t / 2

50 FOR i = 0 TO 2

60 READ Vo, A, t1, t2

70 S = FNS(Vo, A, t2) - FNS(Vo, A, t1)

80 PRINT "V="; Vo; "+"; A; "t"; " t1="; t1, " t2="; t2, " S="; S

90 NEXT I

100 END

L5.11

t1= 2 t2= 5 S= 37.5 V= 2 + 3 t

t1= 1 t2= 3 S= 12 V= 10 +-2 t

t1= 0 t2= 10 S= 110 V= 3.5 + 1.5 t

128

Лабораторная работа L512

Сумма членов геометрической прогрессии определяется по формуле:

qqa

qqaa

qqaa

Snn

n

--

=--

=--

=1

)1(11

1111 ,

если прогрессия убывающая. Если n меняется, то )(nfS = . Вычисление суммы членов

прогрессии можно оформить как функцию пользователя (процедуру) и обращаться к ней при

каждом новом значении n ( в цикле ).

5 CLS

10 PRINT "L5.12"

20 PRINT " Геометрическая прогрессия"

30 PRINT "10, 5, 2.5, 1.25..."

40 DATA 2, 5, 10

50 DEF FNF (N) = A1 * (1 - q ^ N) / (1 - q)

60 A1 = 10

70 A2 = 5

80 q = A2 / A1

90 FOR I = 0 TO 2

100 READ N

110 S = FNF(N)

120 PRINT "N="; N, "S="; S

130 NEXT I

140 END

L5.12

Геометрическая прогрессия10, 5, 2.5, 1.25...

N= 2 S= 15

N= 5 S= 19.375

N= 10 S= 19.98047

5 CLS

10 PRINT "L5.13"

20 DIM A(3)

30 DATA -3, 5, 6, 0, 1, 2, -5, 4, -7,1, 2, -11

40 PRINT " Массив А"

129

50 FOR K = 0 TO 3

60 GOSUB 110

70 A(K) = S

80 PRINT A(K)

90 NEXT K

100 GOTO 170

110 S = 0

120 FOR I = 0 TO 2

130 READ B

140 S = S + B

150 NEXT I

160 RETURN

170 END

L5.13

Массив А 8

3

-8

-8

5 CLS

10 PRINT "L5.14"

20 DIM B(2)

30 DATA 2, -1, 0, 3, 1, 3, 2, -5, 4, 2

40 DATA 1, 5, -3, 7, -4

50 PRINT " Массив B"

60 FOR K = 0 TO 2

70 GOSUB 120

80 B(K) = S

90 PRINT B(K)

100 NEXT K

110 GOTO 180

120 S = 0

130 FOR I = 0 TO 4

140 READ A

150 S = S + A

160 NEXT I

170 RETURN

180 END

130

L5.14

Массив B 5

6

6

131