Информатика в задачах, примерах, алгоритмах
.pdf
|
|
5. Условный оператор |
|
|
|
|
|
Ответ: |
|
|
|
|
|
|
|
|
x |
y |
|
|
|
|
|
|
–35 |
0 |
|
|
|
|
|
|
2,078 |
3,318084 |
|
|
|
|
|
|
0,273 |
–0,198471 |
|
|
|
|
|
Даны действительные числа x и y. Вычислить:
170. |
|
|
x − y, |
åñëè x > 0; |
|
|
z = |
|
|
|
|
||
|
|
|
y − x + 1, |
в противном случае |
||
Ответ: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
y |
|
z |
|
|
|
|
|
|
|
|
|
|
3,8973 |
15879,658 |
|
–15875,761 |
|
|
|
|
|
|
|
|
|
|
–35 |
–15875,761 |
|
–15840,761 |
|
|
|
|
|
|
|
171. |
|
|
y × x, |
åñëè x > 0, y > 0; |
|
|
z = |
|
x + yá |
åñëè x < 0, y < 0; |
|
||
|
|
|
0, |
во всех остальных случаях |
||
Ответ: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
y |
|
z |
|
|
|
3,8973 |
15879,658 |
|
32997,92932 |
|
|
|
|
|
|
|
|
|
|
–254,7 |
45,00198 |
|
0 |
|
|
|
|
|
|
|
|
|
|
–35 |
–15875,761 |
|
–15910,761 |
|
|
|
|
|
||
172. F = z − 6,3x, |
|
|
|
|||
ãäå |
|
|
y × x, |
åñëè x < 0; |
|
|
|
|
|
||||
z = |
|
0, |
åñëè 0 ≤ x≤ 1; |
|
||
|
|
|
y 2 , |
åñëè x > 1 |
|
|
51
Информатика в задачах, примерах, алгоритмах
Ответ:
x |
y |
F |
|
|
|
3,8973 |
15879,658 |
252163513,643974 |
|
|
|
–254,7 |
45,00198 |
–9857,394306 |
|
|
|
0,987 |
–15875,761 |
–6,2181 |
|
|
|
173. Вводится число x. Вывести на экран значение функции y = 1. x
Åñëè x = 0, вывести сообщение “Функция не определена”.
Ответ:
x |
y |
|
|
3,8973 |
0,25658789 |
|
|
–254,7 |
–0,00392619 |
|
|
0,987 |
1,01317123 |
|
|
174. Дано число x. Вычислить функцию:
|
|
–4, |
|
|
åñëè x < 0; |
|||
y = |
x 2 |
|
+ 3x + 4, |
|
åñëè 0 ≤ x≤ 1; |
|||
|
|
( |
2 |
+ 3x + |
) |
2 , |
åñëè x > 0; |
|
|
|
x |
4 |
|||||
Ответ: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
|
y |
|
|
|
|
|
|
|
|
|
|
|
|
|
3,8973 |
|
|
|
953,62672935 |
|
|
|
|
|
|
|
|
|
|
|
|
|
–254,7 |
|
|
|
–4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
0,987 |
|
|
|
7,935169 |
|
|
|
|
|
|
|
|
|
175. Вводится число x . Вычислить значения функций, графики которых приведены на рисунках:
52
|
|
|
|
|
5. Условный оператор |
|||
|
|
|
|
|
|
|
||
|
Ответ a): |
|
|
Ответ b): |
|
|
||
|
|
|
|
|
|
|
|
|
|
x |
|
y |
|
x |
|
y |
|
|
|
|
|
|
|
|
|
|
|
26 |
|
26 |
|
26 |
|
25 |
|
|
|
|
|
|
|
|
|
|
|
–15 |
|
15 |
|
–15 |
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0,59 |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
–0,59 |
|
0 |
|
|
|
|
|
|
|
|
||
176. Вводится число x. Åñëè −1 ≤ x≤ |
1, вывести на экран значение |
|||||||
функции, график которой приведен на рисунке. Если x < −1 èëè x > 1, вывести на экран надпись: “Функция не определена”.
Ответ:
x |
y |
|
|
0,987 |
0,025831 |
|
|
–0.987 |
0,16072025 |
|
|
177. Ввести три числа: — x, y, z. Если сумма трех попарно различ- ных чисел x, y, z меньше единицы, то меньшее из x, y заменить полусуммой y è z, иначе большее из x è z заменить на y4. Значения всех трех переменных вывести на экран дисплея.
Ответ:
Вводимые значения |
Результат |
|
|
õ=0,25 |
x=0,337295 |
y=0,3489 |
y=0,3489 |
z=0,32569 |
z=0,32569 |
|
|
53
Информатика в задачах, примерах, алгоритмах
Вводимые значения |
Результат |
|
|
x = 0,5846 |
x = 0,3316944 |
y = 0,7589 |
y = 0,7589 |
z = 0,345987 |
z = 0,345987 |
|
|
x = 0,25489 |
x = 0,25489 |
y = 0,25487 |
y = 0,25487 |
z = 0,87594 |
z = 4,219635E-03 |
|
|
178. Ввести три числа — x, y, z. Если сумма трех попарно различ- ных чисел x, y, z меньше единицы, то наименьшее из этих трех чисел заменить полусуммой двух других; в противном случае заменить меньшее из x, y полусуммой двух оставшихся значений.
Ответ:
Вводимые значения |
Результат |
|
|
õ = 0,25 |
x = 0,337295 |
y = 0,3489 |
y = 0,3489 |
z = 0,32569 |
z = 0,32569 |
|
|
x = 0,5846 |
x = 0,5524435 |
y = 0,7589 |
y = 0,7589 |
z = 0,345987 |
z = 0,345987 |
|
|
x = 0,25489 |
x = 0,25489 |
y = 0,25487 |
y = 0,565415 |
z = 0,87594 |
z= 0,87594 |
|
|
6.Структура с условием
Âнекоторых случаях необходимо выполнять различные действия в зависимости от значения некоторого выражения. Например,
âнакладной или в банковском ордере, в зависимости от количества указанных денег, необходимо писать соответствующий текст (51 рубль, 52 рубля, 55 рублей). В таких случаях удобно использовать структуру с условием, которая в Бейсике реализуется оператором SELECT CASE…END CASE.
54
6. Структура с условием
Пример. Написать программу, которая на любой момент времени рассчитывает, сколько времени осталость до каникул, которые начинаются 01/06/01, с точностью до секунды. Слова “дни”, “ча- сы”, “минуты”, “секунды” печатать по согласованию с числом (например: 2 дня, 5 дней, одна секунда и т.п.).
Программа написана в виде макроса документа WORD на VB
Sub структураСусловием() Dim k As Integer
Msg1$ = “До экзаменов осталось” Msg = ((#6/8/2001# - Date) - 1)
'Обрабатываем слово день (дней, дня)
Select Case Msg
Case Is < 10: l = Msg: l1 = 0 Case Is < 20: l1 = 1
Case Else: l = Msg Mod 10: l1 = 0 End Select
Select Case l1
Case 1: Msg = Msg & “ äíåé” Case Else
Select Case l
Case 0, 5, 6, 7, 8, 9 Msg = Msg & “ äíåé”
Case 1
Msg = Msg & “ äåíü” Case 2, 3, 4
Msg = Msg & “ äíÿ” End Select
End Select
'Обрабатываем слово час (часов, часа)
Select Case (23 - Hour(Time))
Case Is < 10: l = (23 - Hour(Time)): l1 = 0 Case Is < 20: l1 = 1
Case Else: l = (23 - Hour(Time)) Mod 10: l1 = 0 End Select
Select Case l1
Case 1: часы$ = “часов” Case Else
55
Информатика в задачах, примерах, алгоритмах
Select Case l
Case 0, 5, 6, 7, 8, 9 часы$ = “часов”
Case 1
÷àñû$ = “÷àñ” Case 2, 3, 4
÷àñû$ = “÷àñà” End Select
End Select
'Обрабатываем слово минута (минут, минуты)
Select Case (59 - Minute(Time))
Case Is < 10: l = (59 - Minute(Time)): l1 = 0 Case Is < 20: l1 = 1
Case Else: l = (59 - Minute(Time)) Mod 10: l1 = 0 End Select
Select Case l1
Case 1: минуты$ = “минут” Case Else
Select Case l
Case 0, 5, 6, 7, 8, 9 минуты$ = “минут”
Case 1
минуты$ = “минута” Case 2, 3, 4
минуты$ = “минуты” End Select
End Select
'Обрабатываем слово секунда (секунд, секунды)
Select Case (59 - Second(Time))
Case Is < 10: l = (59 - Second(Time)): l1 = 0 Case Is < 20: l1 = 1
Case Else: l = (59 - Second(Time)) Mod 10: l1 = 0 End Select
Select Case l1
Case 1: секунды$ = “секунд” Case Else
Select Case l
Case 0, 5, 6, 7, 8, 9 секунды$ = “секунд”
56
6. Структура с условием
Case 1
секунды$ = “секунда” Case 2, 3, 4
секунды$ = “секунды” End Select
End Select
MsgBox (Msg1$ & Chr(13) & “ ” & Msg & _ Chr(13) &" “ & (23 - Hour(Time)) & ” “ _
& часы$ & “ ” & (59 - Minute _ (Time)) & “ ” & минуты$ & “ ” & _
(59 - Second(Time)) & “ ” & секунды$) '" секунд" End Sub
Задачи
179.Некоторое предприятие ежесуточно расходует X Квт/ч электроэнергии. Составить программу, вычисляющую расход электроэнергии R для заданного месяца текущего года.
180.Написать программу, которая по заданному номеру дня недели выводит его название.
181.Написать программу, которая по заданному номеру месяца выводит его название.
182.Написать программу, которая по заданному номеру месяца выводит название времени года.
183.В киоске продается газета стоимостью 3 рубля и журнал стоимостью 20 рублей. Составить программу, которая спрашивает, что вы хотите купить, принимает деньги и выдает сдачу.
184.Составить программу, моделирующую работу продавца мороженого. Программа должна запрашивать количество порций мороженого, сообщать требуемую сумму и “выдавать сдачу”.
185.Составить программу, моделирующую работу продавца мороженого с выбором сорта мороженого.
186.Составить программу для определения подходящего возраста для вступления в брак, используя следующее условие: возраст муж- чины должен быть не менее удвоенного возраста девушки минус 14.
187.Составить программу, реализующую эпизод сказки: программа должна спрашивать, куда собирается пойти герой (прямо, налево, направо) и сообщать ему, что его ждет в каждом случае.
57
Информатика в задачах, примерах, алгоритмах
188.Пусть элементами круга являются радиус (первый элемент), диаметр (второй элемент), длина окружности (третий элемент). Составить программу, которая по номеру элемента и по его значе- нию вычисляла бы площадь круга.
189.Составить программу, которая по вводимому номеру дня недели выведет на экран расписание уроков на этот день.
7. Циклы
Циклы служат для многократного выполнения группы операторов, причем в начале или в конце цикла проверяется условие окончания цикла. В зависимости от этого существуют циклы:
•Цикл с параметром;
•Цикл с предварительным условием;
•Цикл с последующим условием;
•Безусловный цикл.
7.1.Числовые последовательности. Циклы с параметром
Числовой последовательностью называется функция натурального аргумента, то есть правило, согласно которому какому-либо члену последовательности àn ставится в соответствие некоторое число. Числа, образующие последовательность, называются членами последовательности. Задать последовательность — значит указать правило, по которому можно вычислить любой член последовательности по его номеру.
Арифметическая прогрессия задается при помощи формулы общего члена:
a n = a1 + (n − 1) × d .
Геометрическая прогрессия задается следующей формулой:
a n = a1 × q n−1 .
Уже из этих формул видно, что для задания последовательности необходимо, чтобы были известны хотя бы два члена последовательности — первый и второй. В вышеприведенных формулах
58
7. Циклы
d = a2 − a1 , à q = a2 . a1
Формула, позволяющая вычислить каждый член последовательности через предыдущие, называется рекуррентной. Например, последовательность, носящая название чисел Фибоначчи, выглядит так: {1,1,2,3,5,8,13,... },а с помощью рекуррентной формулы:
{a1 = 1,a2 = 1,...,a n = a n−1 + a n−2 }.
Рекуррентная формула, если она существует, позволяет вычислить любой член последовательности посредством вычисления всех предыдущих членов. Это делается с помощью повторения однотипных операций. Следовательно, решая некоторые задачи, мы можем знать количество повторений некоторых действий. В этом случае мы говорим о цикле с параметром.
Для программирования повторяющихся заданное количество раз фрагментов программы в языках программирования имеется оператор цикла с параметром. Как правило, это оператор FOR…TO…
При обращении к оператору FOR-TO сначала вычисляется шаг (значение переменной, стоящей после ключевого слова STEP. Если это ключевое слово отсутствует, то шаг считается равным единице), начальное и конечное значения параметра цикла. Если при положительном значении шага полученное значение переменной цикла меньше или равно конечному значению, то выполняется последовательность операторов, следующая за оператором FOR-TO (тело цикла). Если полученное значение переменной цикла больше конечного значения, то происходит выход из цикла и управление передается оператору, следующему за NEXT. При отрицательном значении шага значение переменной цикла уменьшается с каждым циклом. Цикл выполняется до тех пор, пока значение переменной цикла не станет меньше конечного значения. Если при входе в блок FOR-TO заданное условие не выполняется, то управление сразу передается оператору, следующему за оператором NEXT. Блоки FOR-TO могут быть вложенными друг в друга.
В задачах 190—215 требуется написать программу, которая решает поставленную задачу и выводит результат на экран дисплея.
Пример: Дана числовая последовательность:
{a1 = Sin3,a2 = 2,...,a n = a n−1 − 5a n−2 ,...}
Найти сумму отрицательных членов последовательности при заданном N.
59
Информатика в задачах, примерах, алгоритмах
Возможный вариант программы на Qbasic
CLS 'очищаем экран дисплея
PRINT “Введите число членов последовательности”
INPUT N 'вводим N |
|
DIM M(1 TO N) |
'определяем массив в n элементов |
M(1)=SIN(3) |
'определяем первый член |
|
'последовательности |
M(2)=2 |
'определяем второй член |
|
'последовательности |
'организуем цикл для заполнения массива членами 'последовательности
FOR i=3 TO N M(i)=M(i-1)-5*M(i-2) NEXT
'Подсчитываем сумму отрицательных членов 'последовательности
s=0 'переменная для суммы
FOR i=1 TO N
IF M(i) < 0 THEN s=s+M(i) NEXT
? s ' Печать результата
Ответ: Ïðè N = 85 s = –1,105334E+29
|
|
|
|
|
|
|
|
|
|
|
|
|
Задачи |
|
||
190. Дана числовая последовательность: |
||||||||||||||||
a |
= 0, a |
2 |
= 4,..., a |
n |
= a |
n−1 |
− 3a |
|
. |
|
||||||
{ 1 |
|
|
|
|
|
|
|
|
|
|
n−2 } |
|
||||
Найти сумму отрицательных элементов при n = 25. |
||||||||||||||||
Ответ: –1644128. |
|
|
|
|
|
|
|
|
|
|||||||
191. Дана числовая последовательность: |
||||||||||||||||
|
= |
Cos |
2 |
|
= |
Sin |
3 |
|
|
|
− |
a n−2 |
|
|||
a1 |
|
|
|
|
, a2 |
|
|
|
, ..., a n−1 |
|
. |
|||||
12 |
|
15 |
|
21 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||
Найти сумму отрицательных элементов при n = 100.
Ответ: –0,0346789.
60
