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

Программирование на алгоритмическом языке КуМир

.pdf
Скачиваний:
0
Добавлен:
11.08.2026
Размер:
578 Кб
Скачать

ВЫПОЛНИТЕ УПРАЖНЕНИЯ

1. Чему будет равна переменная К после выполнения следую-

щих действий:

 

 

 

Ê:=5

S:=K+2

K:=S+2

K:=K+10+S

2. Чему равна переменная S в результате выполнения следую-

щих действий:

 

 

 

S:=10

K:=10/2+4

S:=S/2

K:=S+5-K

F:= + C+ D

3. Чему равна символьная переменная L после следующих действий:

X:=”2” Y:=”5” L:=X+Y

4. Запишите следующие числа в экспоненциальной форме: а) 326, 09871 б) –0,0007584 в) 23467594, 76

5. Преобразуйте числа из экспоненциальной формы в обыч- ную:

à) 0.456748Å-5 á) 0.23456Å7 â) –0.456Å+4

11

Запись арифметических выражений. Операторы ввода и вывода информации

Запись арифметических выражений на языке КуМир, как и на любом языке программирования, несколько отличается от обычной математической.

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

+ – сложение - – вычитание

*– умножение

/– деление

**– возведение в степень

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

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

В математической записи в некоторых случаях принято опускать знак умножения. В формуле можно написать 2Х, но в программе надо обязательно поставить 2*Х. Запись 2Х компилятор воспримет как ошибку.

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

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

12

Формула

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3 A

 

 

3*A/(A + B)

 

 

A + B

 

 

 

 

 

 

 

 

X +Y

+ D

 

(X + Y)/C + D

 

 

 

 

 

 

C

 

 

 

 

 

A + 2B + 3,2C

 

 

(A +2*B + 3.2*C)/(5*F — 4.6)

 

 

5F − 4,6

 

 

 

 

 

 

 

 

A + B

+

AB

 

 

(A + B)/(A — B) + A*B/3.14

 

 

 

 

 

 

 

A B 3,14

 

 

 

Арифметические выражения на языке программирования для вычислений по одной и той же формуле могут выглядеть по-разно- му, но при этом достигать правильного значения. Например, для следующей формулы приведено четыре различных варианта записи выражения. Любой из них приведет к одному и тому же результату.

Формула

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(2*F)/(A*B*C)

 

 

2F

 

 

2*F/(A*B*C)

 

 

ABC

 

2*F/A/B/C

 

 

 

 

 

 

2*F/(A*B)/C

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

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

abs( )

Абсолютная величина (модуль) числа

sqrt( )

Корень квадратный

mod(A,B)

Определение остатка от деления А на В

int( )

Выделение целой части числа

sin( )

Синус

Для тригонометрических функций

cos ( )

Косинус

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

 

 

 

13

Следует помнить об области определения функций. Так, напри-

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

корень из отрицательного числа — получите сообщение об ошибке.

Разберем примеры

 

Формула

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

2x 2 + 3x

(2*x**2+sqrt(3*x))/(a+b)

a + b

 

1 + x 2

sqrt(1/x+ x**2)/(2*x)

x

2x

 

3x 2 + x + 3 − x 2

sqrt(3* x**2+abs(x)) + abs(3 – x**2)

sin x + cos x2 – sin2x

sin(x) + (cos (x))**2 – (sin(x))**2

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

вывод

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

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

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

вывод x

На экране появится одно число, соответствующее значению переменной õ на момент вывода.

Можно вывести значения сразу нескольких величин, допустим, х, y, z. Тогда оператор будет выглядеть так:

вывод x, y, z

Можно объединять в операторе вывода разные типы переменных. Например, текстовая информация, поясняющая выводимое значение, и значение величины.

вывод “Сумма чисел=“, S

В данном случае на экран будет выведен текст и числовое зна- чение величины S.

14

Если вывод надо сделать на новой строке, то необходимо записать:

вывод нс, “Сумма чисел=“, S

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

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

На блок-схемах оператор вывода изображается в виде следующей фигуры (которая называется параллелограмм)

вывод А, В

Разберем пример решения задачи

Найдите площадь круглого зеркала, используемого в телескопе. Радиус зеркала R = 100 см.

Известно, что решение задачи с использованием компьютера состоит из определенных этапов.

Разберем их по порядку.

1 ýòàï. Постановка задачи.

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

2 ýòàï. Разработка математической модели.

Вычисление площади круга осуществляется по формуле: S=πR2, ãäå π=3,141595.

3 ýòàï. Разработка алгоритма

Представим алгоритм в виде блок-схе- мы.

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

Начало

R := 100

PI := 3,141595

S := PI * R²

вывод S

конец

Èìÿ

Òèï

Смысловое значение

R

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

Радиус круга (зеркала)

PI

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

Число π

S

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

Площадь круга (зеркала)

15

4 ýòàï. Программирование

По имеющемуся алгоритму напишем программу на языке КуМир

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

Для целых величин цел Для вещественных вещ Для символьных лит

алг

Вычисление площади зеркала телескопа

нач цел R, вещ PI, S

R:=100

PI:=3.141595

S:=PI*R**2

вывод нс, Площадь зеркала S =”, S

кон

5 ýòàï. Тестирование и отладка

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

6 ýòàï. Анализ результатов.

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

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

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

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

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

16

начало
ввод А, В, С
S=A+B+C
P=A*B*C
вывод S
вывод P
конец

Для организации процесса ввода данных в языке КуМир существует оператор ввод.

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

Например, при следующей записи необходимо ввести значения трех величин.

ввод A,B,C

На блок-схемах оператор ввода изображается также как и оператор вывода в виде параллелограмма.

ввод А, В

Разберем пример:

Необходимо ввести значение трех чи- сел и вывести их сумму и произведение.

алг Нахождение суммы и произведения 3-х чисел

нач цел S, A, B, C, Ð

вывод нс, введите значение 3-х переменных“

ввод A,B,C S:=A+B+C Ð:= A*B*C

вывод нс, “Сумма трех чисел =”, S вывод нс, “Произведение чисел =”, Р

êîí

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

ЭТО НАДО ЗНАТЬ

Арифметическое выражение записывается в одну строку (линейная форма записи).

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

17

вывод — оператор вывода данных Для вывода пояснений надо заключать слова (символы) в ка-

вычки.

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

ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ

1.Какое из арифметических выражений будет выполняться в выражении без скобок первым сложение или вычитание?

2.Какое из арифметических выражений будет выполняться в выражении без скобок первым умножение или вычитание?

3.Можно ли в выражении употреблять более одной пары скобок?

4.Какое значение будет иметь величина G в выражении G:=6+36/6?

5.Какое значение будет иметь величина М, если Ì:=2*5+12/(2+4)-3**2

6.Какой оператор предназначен для вывода значений величин и сообщений на экран.

7.Можно ли выводить в одном операторе несколько значений величин?

8.Чем отличается вывод значений от вывода сообщений?

10.Можно ли вводить в одном операторе несколько значений величин?

11.Чем разделяются переменные в списке ввода?

ВЫПОЛНИТЕ УПРАЖНЕНИЯ

1. Преобразуйте в линейную форму следующие выражения:

À)

b + D

Á)

 

( a2 + 4 )3

 

 

 

2a

 

 

 

 

a

+ 2

 

 

 

 

 

 

 

 

 

 

 

 

Â) n +1 +

a + n

Ã)

2a2 +1

+ c + 2a

 

2a + n

 

 

 

 

 

 

 

2c

 

 

 

 

Ä)

a

+

2c

 

Å)

a

+

 

2c

 

Æ) ax 2 + bx + c

 

a b

 

 

a b

 

 

2c

 

 

2c

 

 

18

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

à) (1 / 3) * (π * R ** 2 * h) + 2 * π * R * h / 3 á) À * 2/T + (3/a * T ** 2 * (N – 9)) / (2 * N-3) â) sqrt (a **2 + b ** 2 − 2 * a * b * c)+ ( c -1)

ã) 1 / sqrt ( a * x ** 2 + b * x) /( c*õ ) ä) à+3*ñ/(ñ*à-à1)+sqrt(3**2)

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

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

а) Найдите объем полого шара, по формуле V = 3 π r 3 , имеющего R=6 дюймов 4

б) Вычислите, сколько граммов содержится в 3,5 унциях (1 унция = 28,35 грамм).

в) Найдите, сколько километров содержится в 15 милях (1 миля = 1,60935 км).

г) Определите, сколько литров содержится в 23 галлонах (1 гал = 3,785 литров)?

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

а) Введите с клавиатуры 4 числа. Выведите на экран среднее арифметическое и среднее геометрическое этих чисел.

б) Ежедневно молочная ферма надаивает Х литров молока. Найдите количество молока, полученное за В дней (все необходимые значения запросите через ввод с клавиатуры).

в) Магазин продает В машин по цене А руб. за каждую. Найдите общую выручку от продажи машин (все необходимые значения введите с клавиатуры).

г) Заработок рабочих на фабрике составил М рублей. Его надо разделить поровну между всеми рабочими (все необходимые значе- ния введите с клавиатуры).

д) Введите значения двух переменных, найдите их сумму, разность, произведение и выведите результаты.

19

Ветвящиеся алгоритмы. Команды ветвления

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

В этом параграфе познакомимся с другим типом алгоритма — разветвляющимся, в котором в зависимости от выполнения некоторого условия происходит выбор дальнейших действий.

Для реализации такого алгоритма в языке КуМир имеется управляющая конструкция если — то — иначе — все. Такую конструкцию называют команда ветвления. Она позволяет компьютеру проанализировать данные и принять один из двух возможных вариантов группы действий, которые должны быть предусмотрены при составлении программы.

Общий вид записи такой команды может иметь две формы.

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

если условие

то

Действие 1

иначе

Действие 2

все

 

Условие нет выполнено?

да

Действие 1

 

Действие 1

 

 

 

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

все.

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]