1 ОСНОВНЫЕ ПРИЕМЫ ПРОГРАММИРОВАНИЯ

advertisement
Министерство образования Российской федерации
Ростовский ордена Трудового Красного Знамени
государственный университет
Н.И. Амелина, Я.М. Русанова, А.А. Чекулаева
Информатика. Задачи.
Часть 1 а
Задачи на тему:
Основные приемы программирования
Методические указания для студентов дневного и вечернего отделений механикоматематического факультета
Ростов - на - Дону
2005
2
Печатается по решению
кафедры прикладной математики и программирования
механико-математического факультета РГУ
от 17.11.2004 (протокол № 3).
АННОТАЦИЯ
Методические указания содержат набор задач, предназначенных для
отработки основных приемов программирования при работе с данными простых
типов и реализации алгоритмов различной структуры.
Методические указания предназначены для начинающих программистов,
студентов младших курсов, специализирующихся в области прикладной
математики, и для преподавателей, ведущих практические занятия по
программированию.
Авторы: Н.И. Амелина, Я.М. Русанова, А.А. Чекулаева
© Н.И. Амелина, Я.М. Русанова, А.А. Чекулаева, 2005
3
СОДЕРЖАНИЕ
1. Простейшие программы. Оператор присваивания. Операторы вводавывода. Арифметика вещественных чисел. Вычисления по формулам .......4
2. Простейшая целочисленная арифметика .........................................................8
3. Логический
тип.
Разветвления.
Условный
оператор.
Селективный
оператор. Составной оператор...........................................................................9
4. Операторы цикла. Вложенные операторы цикла ......................................... 17
5. Вычисления с заданной точностью ................................................................ 25
6. Символьный тип. Обработка последовательностей символов ................... 30
7. Литература ........................................................................................................ 32
4
1 Простейшие программы. Оператор присваивания.
Операторы ввода-вывода. Арифметика вещественных чисел
Вычисления по формулам
Пример вычисления y по формуле: y 
x * sin x
x  ex
y:=(sqrt(x)*sin(x))/(x+exp(x))
Программа, которая вычисляет площадь треугольника по формуле
Герона.
Program GERON;
Var a, b, c :real; {стороны треугольника}
p :real; {полупериметр треугольника}
s : real; {площадь треугольника}
begin
writeln(‘Вводите длины треугольника’);
write(‘a=’); readln (a);
write(‘b=’); readln (b);
write(‘c=’); readln (c);
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
writeln(‘Площадь треугольника равна’, s:10:3)
end.
1.1 Написать программы вычисления y по формулам:
1) у 
2) у 
x 1 
1
k*
2
*e
1
;
x3
 ( x a ) 2
2k 2
;
5
1
3) у 
*e
2b

4) у 
 xa
b
;
a 2  b2  b
;
a 2  b2
*
8
sin x
3
 cos x  tgx;
2
2 cos x
2
5) у 
6) у  cos x(ln 2  e
 a x
);
2x
7) у 
 ln tgx
;
sin x
e sin
8) у  a * e  ax * sin x;
9) у 
sin 3 ax 3  bx 2  ab
ax 3  bx 2  ab
10) y  x  x 
11) y 
12) y 
cos x
1 x2
z
x
cos x 
3
;
;
1  sin x  1
;
cos(12 z  4)
13) y  x 
x3 x5
 ;
3
5
14) y 
x 2  7 x  10
;
x 2  8 x  12
15) y 
cos x
 16 x  cos( xz)  2;
a  2x
16) y  x 2  x 3 
7x
;
x  15 x
3
17) y  e  x  cos x  sin( 2 xz);
18) y  e tgx  cos( x  z );
19) y  sin
x  1  sin
x  1;
z 2  12 xz  3x 2
20) y  e 
;
18 z  1
x
;
6
21) y  x  10 sin x  x 2  xe5 ;
22) y  x  10e sin x  cos( x  z );
23) y  2ctg (3 x) 
1
;
12 x  7 x  5
2
24) y  e x  x  2  (1  x) 2 ;
25) y  2ctg (3x) 
sin cos x
;
sin( 1  x 2 )
26) y  e x  4 x  ( z 
x );
 z 1
2
27) y  
  18 xz ;
 x 1
2
2

1 
2
28) y  1 
  12 x z :
2
x 

29) y 
1  sin 2 ( x  z )
2 x
1.2 Поменять
 x.
2x
2x
1
1 x2 z2
местами
содержимое
переменных
A
и
B,
используя
вспомогательную переменную.
1.3 Написать программы для решения следующих задач:
a) Дана длина ребра куба. Найти объем куба и площадь его поверхности.
b) Дан диаметр окружности. Найти ее длину и площадь круга.
c) Вычислить периметр и площадь прямоугольного треугольника по
длинам двух катетов.
d) Вычислить среднее арифметическое и среднее геометрическое двух
положительных чисел.
e) Вычислить длины сторон треугольника по заданным координатам его
вершин.
f) Найти площадь кольца, внутренний радиус которого равен R1, а
внешний радиус равен R2.
7
g) Смешано v1 литров воды температуры t1 с v2 литрами воды температуры
t2. Найти объем и температуру образовавшейся смеси.
h) Вычислить расстояние от точки плоскости с координатами (x, y) до
границы круга единичного радиуса с центром в начале координат.
Расстояние между двумя точками с заданными координатами (x1,y1)
и (х2,y2) на плоскости вычисляется по формуле ( x1  x 2) 2  ( y1  y 2) 2 ;
i) Для двух заданных вещественных чисел вычислить коэффициенты
приведенного квадратного уравнения, корнями которого являются эти
числа.
j) Вычислить
периметр
и
площадь
правильного
шестиугольника,
вписанного в окружность заданного радиуса.
k) По длинам двух сторон треугольника и углу (в градусах) между ними
вычислить длину третьей стороны и площадь этого треугольника.
l) По заданным длинам трех сторон треугольника вычислить длины его
высот, медиан и биссектрис.
m) Найти координаты точки, делящей в отношении n1:n2 отрезок, заданный
координатами своих концов.
n) Вычислить длины медиан треугольника по заданным координатам его
вершин.
1.4 Дано число A. Вычислить:
a)
A4, используя две операции умножения;
b)
A6, используя три операции умножения;
c)
A7, используя четыре операции умножения;
d)
A8, используя три операции умножения;
e)
A8, используя три операции умножения;
f)
A9, используя четыре операции умножения;
g)
A10, используя четыре операции умножения;
h)
A13, используя пять операций умножения;
i)
A21, используя шесть операций умножения;
j)
A28, используя шесть операций умножения;
8
A64, используя шесть операций умножения.
k)
1.5 Дано число A. Вычислить:
a)
A3 и A10 за четыре операции;
b)
A4 и A20 за пять операций;
c)
A5 и A13 за пять операций;
d)
A5 и A19 за пять операций;
e)
A2, A5 и A17 за шесть операций;
f)
A4, A12 и A28 за шесть операций.
2 Простейшая целочисленная арифметика
Программа, которая распечатывает последнюю цифру заданного числа.
Program DIGIT;
Var a :integer; {исходное число}
b :integer; {цифра}
begin
writeln(‘Введите число’);
write(‘a=’); readln (a);
b:=a mod 10;
writeln(‘Последняя цифра равна ’, b)
end.
2.1 Дано расстояние L в сантиметрах. Вывести число полных метров в нем.
2.2 Дан размер файла в байтах. Вывести число полных килобайтов (мегабайтов),
которые занимает данный файл.
2.3 Дано время N в секундах. Найти число полных минут, часов, суток в нем.
2.4 Даны целые числа A, B и C. Найти количество квадратов со стороной C,
которое можно разместить на прямоугольнике размера A на B.
2.5 Дано двузначное число. Вывести вначале его правую цифру, потом – левую.
2.6 Дано двузначное число. Поменять местами его цифры.
9
2.7 Дано двузначное число. Найти произведение и сумму цифр этого числа.
2.8 Дано трехзначное число. Найти произведение и сумму цифр этого числа.
2.9 Дано трехзначное число. Поменять местами его крайние цифры.
2.10 Дано трехзначное число. В нем зачеркнули первую слева цифру и
приписали ее справа. Вывести полученное число.
2.11 Дано трехзначное число. В нем зачеркнули первую справа цифру и
приписали ее слева. Вывести полученное число.
2.12 Дано трехзначное число. Вывести число, полученное при перестановке
цифр сотен и десятков исходного числа.
2.13 Дано трехзначное число. Вывести число, полученное при перестановке
цифр десятков и единиц исходного числа.
2.14 Для заданного целого четырехзначного числа написать программы решения
следующих задач:
a) вычислить произведение (сумму) цифр числа;
b) вычислить разность (частное) между суммой (произведением) крайних и
средних цифр числа;
c) получить число, содержащее цифры данного числа в обратном порядке;
d) вычислить сумму (произведение) квадратов (кубов) цифр числа;
e) вычислить среднее арифметическое (геометрическое) цифр числа.
3 Логический тип. Разветвления. Условный оператор. Селективный
оператор. Составной оператор.
Программа, реализующая вычисления y по формуле:
1
4 ,


y  2( a 2  b 2 ),
 2
2
a  b ,

2

если a  b,
если a  b,
если a  b
10
Program RAZVETVLENIYA;
Var a, b, y, x : real;
begin
write (‘Введите значение переменной a=’); readln(a);
write (‘Введите значение переменной b=’); readln (b);
if a=b then y:=0.25
else
begin
x:=a*a+b*b;
if a>b then y:=2.0 else y:=x/2.0
end;
writeln (‘y=’,y)
end.
Программа для решения следующей задачи: если целое число a является
положительным, то вывести true, иначе вывести false.
Program BOOLEAN1;
Var a: integer;
b: boolean;
begin
write (‘Введите значение переменной a=’); readln(a);
b:= a>0;
writeln (‘b=’,b)
end.
11
Пример использования селективного оператора:
Program SELECTIVE;
Var i : integer;
begin
write (‘Введите значение переменной i=’); readln(i);
case i of
0,2,4,6,8: writeln(‘четная цифра’);
1,3,5,7,9: writeln(‘нечетная цифра’);
10..100: writeln(‘число от 10 до 100’)
else writeln(‘отрицательное число или больше 100’)
end.
3.1 Даны два целых числа: А, В. Проверить истинность высказывания:
«Справедливы неравенства А > 2 и В < 3»
3.2 Даны три целых числа: А, В, С. Проверить истинность высказывания:
«Справедливо двойное неравенство А < В < С».
3.3 Даны два целых числа: А, В. Проверить истинность высказывания: «Каждое
из чисел А и В нечетное».
3.4 Даны два целых числа: А, В. Проверить истинность высказывания: «Ровно
одно из чисел А и В нечетное».
3.5 Даны три целых числа: А, В, С. Проверить истинность высказывания:
«Каждое из чисел А, В, С положительное».
3.6 Даны три целых числа: А, В, С. Проверить истинность высказывания: «Ровно
одно из чисел А, В, С положительное».
3.7 Дано целое положительное число. Проверить истинность высказывания:
«Данное число является четным двузначным».
3.8 Проверить истинность высказывания: «Среди трех данных целых чисел есть
хотя бы одна пара совпадающих».
3.9 Проверить истинность высказывания: «Все цифры данного трехзначного
числа различны».
12
3.10 Проверить истинность высказывания: «Цифры данного трехзначного числа
образуют возрастающую или убывающую последовательность».
3.11 Даны числа х, у. Проверить истинность высказывания: «Точка с
координатами (х, у) лежит во второй координатной четверти».
3.12 Даны числа х, у. Проверить истинность высказывания: «Точка с
координатами (х, у) лежит во второй или третьей координатной четверти».
3.13 Даны целые числа а, b, с, являющиеся сторонами некоторого
треугольника. Проверить истинность высказывания: «Треугольник со
сторонами а, b, с является равносторонним»
3.14 Даны координаты двух различных полей шахматной доски х1,у1,х2,y2
(целые числа, лежащие в диапазоне 1-8). Проверить истинность
высказывания: «Ладья за один ход может перейти с одного поля на
другое»
3.15 Даны координаты двух различных полей шахматной доски х1,у1, x2,y2
(целые числа, лежащие в диапазоне 1-8). Проверить истинность
высказывания: «Слон за один ход может перейти с одного поля на
другое».
3.16 Даны целые числа а, b, с. Проверить истинность высказывания:
«Существует треугольник со сторонами а, b, с».
3.17 Даны
целые числа
а, b, с, являющиеся
сторонами
некоторого
треугольника. Проверить истинность высказывания: «Треугольник со
сторонами а, b, с является прямоугольным».
3.18 Даны целые числа а, b, с, являющиеся сторонами некоторого треугольника.
Проверить истинность высказывания: «Треугольник со сторонами а, b, с
является равнобедренным».
3.19 Даны числа х, у. Проверить истинность высказывания: «Точка с
координатами (х, у) лежит в первой или третьей координатной четверти».
3.20 Проверить истинность высказывания: «Данное четырехзначное число
читается одинаково слева направо и справа налево».
13
3.21 Даны числа х, у. Проверить истинность высказывания: «Точка с
координатами (х, у) лежит в четвертой координатной четверти».
3.22 Проверить истинность высказывания: «Цифры данного трехзначного
числа образуют возрастающую последовательность».
3.23 Проверить истинность высказывания: «Среди трех данных целых чисел
есть хотя бы одна пара взаимно противоположных».
3.24 Дано целое положительное число. Проверить истинность высказывания:
«Данное число является нечетным трехзначным».
3.25 Даны три целых числа: А, В, С. Проверить истинность высказывания:
«Ровно два из чисел А, В, С являются положительными».
3.26 Даны три целых числа: А, В, С. Проверить истинность высказывания:
«Хотя бы одно из чисел А, В, С положительное».
3.27 Даны два целых числа: А, В. Проверить истинность высказывания: «Числа
А и В имеют одинаковую четность».
3.28 Даны два целых числа: А, В. Проверить истинность высказывания: «Хотя
бы одно из чисел А и В нечетное».
3.29 Даны три целых числа: А, В, С. Проверить истинность высказывания:
«Число В находится между числами А и С».
3.30 Даны два целых числа: А, В. Проверить истинность высказывания:
«Справедливы неравенства А > 0 или В < -2».
3.31 Использовать селективный оператор для решения следующих задач:
если n  1,
 a * b,
a *h

,
если n  2,
 2
a) S  
 ( a  b) * h , если n  3,

2
R 2 ,
если n  4;

P * l,
P*h

,
 2

b) S  2Rh ,
Rl ,

2
4R ,
R ( 2 * h  d ),

3.32 Написать программы вычисления y по формулам:
a)
( a  b) * x

, если x  0,
sin
2
y
e ab ,
если x  0;

если n  1,
если n  2,
если n  3,
если n  4,
если n  5,
если n  6
14
b)
c)
 x 3  3 x  4,
если x  0;1,


y  ( x 3  3 x  4) 2 , если x  0,
 4,
если x  1;


 z , если

y  0, если
 z 2 , если

e)
0  z  1,
z  1,
z  x 3  3 x;
где
d)
z  0,
a 2  b 2 ,

y  (a  b) 2 ,
0.5,

если a 2  b 2  1,
если a 2  b 2  1 и a  b,
если a 2  b 2  1 и a  b;
max ( a, b), если x  0,

y  min ( a, b), если x  1,
ab,
в остальных случаях.

3.33 Найти корни квадратного уравнения ax2+bx+c=0.
3.34 Решить уравнение ax4+bx2+c=0 при всех возможных значениях a, b, c.
3.35 Определить максимальное значение по абсолютной величине из трех
заданных чисел a, b, c.
3.36 Упорядочить по возрастанию последовательность трех чисел a, b, c.
3.37 Выяснить, поместится ли круг площади S1 в квадрат площади S2.(Диаметр
меньше стороны квадрата.)
3.38 Переменной k присвоить номер четверти плоскости, в которой находится
точка с заданными координатами x и y (x, y≠0).
3.39 Выяснить, можно ли из отрезков с длинами a, b, c построить треугольник, и
определить тип треугольника.
3.40 Элементы прямоугольного равнобедренного треугольника задаются в
зависимости от указанного номера варианта. В первом варианте вводится
катет а, во втором - гипотенуза b, в третьем - высота, опущенная из
вершины прямого угла на гипотенузу h, в четвертом - площадь S. Составить
программу,
которая
по
заданному
номеру
варианта
и
значению
соответствующего элемента вычисляла бы значение всех остальных
элементов треугольника.
15
3.41 Элементы равностороннего треугольника задаются в зависимости от
указанного номера варианта. В первом варианте вводится сторона a, во
втором - площадь S, в третьем - высота h, в четвертом - радиус вписанной
окружности r, в пятом - радиус описанной окружности R. Составить
программу,
которая
по
заданному
номеру
варианта
и
значению
соответствующего элемента вычисляла бы значение всех остальных
элементов треугольника. r 
a 3
a 3
a2 3
; R
; S
6
3
4
3.42 Пусть элементами круга являются радиус - первый вариант, диаметр второй вариант и длина окружности - третий вариант. Составить
программу,
которая
для
каждого
варианта
запрашивала
бы
соответствующее значение и вычисляла бы площадь круга.
3.43 Написать программу, позволяющую по последней цифре числа определить
последнюю цифру квадрата (куба) этого числа.
3.44 Дано натуральное число n. Если оно делится на 4, вывести на экран ответ n
= 4k (где k – соответствующее частное); если остаток деления на 4 равен 1,
n = 4k + 1; если остаток от деления на 4 равен 2, n = 4k + 2; если остаток от
деления на 4 равен 3, n = 4k+ 3. Например, 12 = 4*3, 22 = 4*5 + 2.
3.45 Даны два действительных числа x и y. Арифметические действия над
числами пронумерованы (1 – сложение, 2 – вычитание, 3 – умножение,
4 – деление). Составить программу, которая бы вводила номер действия и
по введенному значению выполняла бы то или иное действие над числами.
3.46 Для каждой введенной цифры (0-9) вывести соответствующее ей название
на английском языке (0-zero, 1-one, 2-two,…).
3.47 Написать программу, которая по номеру дня недели (натуральному числу
от 1 до 7) выдает в качестве результата количество занятий в этот день.
3.48 Составить программу позволяющую получить словесное описание отметок
(1-плохо,
5-отлично).
2-неудовлетворительно,
3-удовлетворительно,
4-хорошо,
16
3.49 Для целого числа от 1 до 99 напечатать фразу “Мне k лет”, учитывая при
этом, что при некоторых значениях k слово “лет” надо заменить словом
“год” или “года”. Например, 17 лет, 22 года, 21 год.
3.50 Написать программу, которая по вводимому числу от 1 до 5 (номеру курса)
выдает соответствующее сообщение “Привет, k - курсник”. Например, если
k = 1, “Привет, первокурсник”; при k = 4: “Привет, четверокурсник”.
3.51 Имеется пронумерованный список деталей: 1) шуруп, 2) гайка, 3) винт,
4) гвоздь, 5) болт. Составить программу, которая по номеру детали выводит
на экран ее название.
3.52 Написать программу, которая бы по введенному номеру единицы
измерения (1 – миллиметр, 2 – сантиметр, 3 – дециметр, 4 – метр,
5 - километр) и длине отрезка L выдавала бы соответствующее значение
длины отрезка в метрах.
3.53 Написать программу, которая по введенному номеру единицы измерения
(1 – миллиграмм, 2 – грамм, 3 – килограмм, 4 – центнер, 5 - тонна) и массе
M выдавала бы соответствующее значение массы в килограммах.
3.54 Определить остаток от деления целой части значения выражения |x2+a*b|
на 7 и в зависимости от величины выдать сообщение об одном из дней
недели.
3.55 Составить программу, которая по данному числу (1-12) выводит название
соответствующего ему месяца и следующего за ним.
3.56 Написать программу, которая по данному натуральному числу от 1 до 12
(номеру месяца) выдается все приходящиеся на этот месяц праздничные
дни (например, если введено число 1, то: 1 января – Новый год, 7 января Рождество).
3.57 Написать программу, которая бы по введенному номеру времени года
(1-зима, 2-весна, 3-лето, 4-осень) выдавала соответствующие этому
времени года месяцы, количество дней в каждом из месяцев.
3.58 Составить программу, которая по заданным номерам года и месяца
определяет количество дней в этом месяце.
17
4 Операторы цикла. Вложенные операторы цикла
Примеры вычисления k=n! с использованием различных операторов
цикла:
а) {оператор цикла с предусловием}
k:=1; i:=2;
while i<=n do
begin
k:=k*i;
i:=i+1
end;
б) {оператор цикла с постусловием}
k:=1; i:=2;
repeat
k:=k*i;
i:=i+1
until i>n;
в) {оператор цикла с параметром}
k:=1;
for i:=2 to n do
k:=k*i;
Пример обработки последовательности n чисел без хранения всей
последовательности: дано натуральное число n и последовательность чисел x1,
x2,...,xn. Вычислить среднее арифметическое членов последовательности.
18
Program SREDNEE;
Var i,n :integer;
x,s :real;
begin
write(‘Введите количество членов последовательности ’);
readln(n);
s:=0;
writeln(‘Введите последовательность чисел’);
for i:=1 to n do
begin
write(‘Введите очередной член последовательности: ’);
readln(x);
s:=s+x
end;
s:=s/n;
writeln(‘s=’,s:10:3)
end.
4.1 Дано натуральное N. Найти сумму 1+1/2+1/3+...+1/N.
4.2 Дано натуральное N. Найти сумму N2+(N+1)2+…+(2N)2.
4.3 Дано натуральное N. Найти произведение 1.1*1.2*1.3*… (N сомножителей).
4.4 Дано
натуральное
N.
Найти
значение
выражения
1.1-1.2+1.3-…
(N слагаемых, знаки чередуются).
4.5 Дано натуральное n и последовательность целых чисел x1, x2,...,xn.
a)
получить произведение (сумму) тех членов последовательности,
которые нечетны (четны) и отрицательны (положительны);
b)
найти сумму и количество тех членов, которые делятся на a и не
делятся на b;
c)
вычислить среднее арифметическое всех (всех положительных, всех
отрицательных) членов последовательности;
d)
найти
сумму
тех
19
членов последовательности,
которые
не
принадлежат (принадлежат) интервалу (a,b);
e)
найти
среднее
арифметическое
чисел,
не
принадлежащих
(принадлежащих) отрезку [a,b] и кратных (не кратных) c;
f)
выдать члены последовательности кратные (не кратные) a и меньшие
(большие, равные) b;
g)
выдать
члены
последовательности,
которые
принадлежат
(не
принадлежат) интервалу (a,b) и являются четными (нечетными);
h)
выдать положительные члены последовательности (отрицательные) и
кратные (не кратные) числу a;
i)
найти сумму (произведение, количество, среднее арифметическое)
первых
положительных
(неотрицательных,
отрицательных,
неположительных, ненулевых) членов последовательности;
j)
найти сумму (произведение, количество, среднее арифметическое)
первых
положительных
(неотрицательных,
отрицательных,
неположительных, ненулевых) членов последовательности, кратных (не
кратных) b.
4.6 Дано натуральное n и последовательность целых чисел x1, x2,...,xn.
a)
выяснить, какое число встречается в последовательности раньше -
положительное или отрицательное (четное или нечетное);
b)
определить номер первого четного (нечетного, кратного a, не
кратного a, нулевого, ненулевого) члена последовательности;
c)
определить номер последнего нечетного (четного, кратного a, не
кратного a, нулевого, ненулевого) члена последовательности;
d)
определить
количество
чисел
в
наиболее
длинной
последовательности из подряд идущих нулей;
e)
найти наибольшее (наименьшее) из четных и количество четных
чисел;
f)
выяснить, имеются ли в последовательности два (три, n) подряд
идущих нулевых члена;
g)
20
найти произведение членов последовательности, расположенными
между первым и вторым нулевыми членами;
h)
найти
среднее
расположенными
арифметическое
между
членов
предпоследним
и
последовательности,
последним
нулевыми
(ненулевыми) членами.
4.7 Дано натуральное n и последовательность вещественных чисел x1, x2,...,xn.:
a)
определить число соседств двух положительных чисел;
b)
проверить, упорядочена ли последовательность по неубыванию (по
невозрастанию, по неубыванию или по невозрастанию);
c)
найти k, при котором выполняется неравенство xk-1<a<xk (a задано);
d)
вычислить количество тех членов последовательности, для которых
выполнимо i-1<xi<n;
e)
найти длину наименьшего отрезка числовой оси, содержащего числа
x1, x2,...,xn.
4.8 Вывести значения функции z=5x2+sin(x2)-5cos(x-2)2 для x, изменяющегося от
a до b с шагом h.
4.9 Вывести отрицательные (положительные) значения функции z=cos(x)-5sin(x2) (z=sin(x)-5cos(x-2)) для x, изменяющегося от a до b с шагом h.
4.10 Вывести
значения
функции
z=ln(|x+1|)+tg(x),
меньшие
r,
для
x
изменяющегося от a до b с шагом h.
4.11 Вывести значения функции z=sin(x)+cos(x),находящиеся в интервале (a, b)
для x, изменяющегося от c до d с шагом h.
4.12 Найти сумму значений функции y=cos(x/a)+x/(a-2) для x, изменяющегося
от a до b с шагом h.
4.13 Найти сумму отрицательных значений функции z=sin(5-x)/cos(x-2) для x,
изменяющегося от a до b с шагом h.
4.14 Найти сумму значений функции z=sin(1/x)+5cos(1/(x-3))+x, больших r для
x, изменяющегося от a до b с шагом h.
4.15 Вывести значения функции y=ln(x+1/x), для последовательности значений
x1, x2,…xn . При вводе числа, не входящего в область определения функции,
21
или при использовании всех элементов последовательности вычисления
прекратить.
4.16 Найти сумму значений функции y  cos x / sin x , для последовательности
значений x1, x2,…xn . При вводе числа, не входящего в область определения
функции, или при использовании всех элементов последовательности
вычисления прекратить.
4.17 Найти первый отрицательный член последовательности, вычисляемый по
формуле sin(tg(n)) для n, изменяющегося следующим образом: n=1,2,3...
4.18 Найти первый отрицательный член последовательности, образованный по
закону: a1  b, a i  ai 1 
4.19 Дано
натуральное
1
i
(b – заданное положительное число).
N.
Найти
двойной
факториал
N:
N!!=N*(N-2)*(N-4)*...(последний сомножитель равен 2, если N – четное, и
1, если N - нечетное).
4.20 Для заданных натуральных чисел a и b:
a)
получить наибольшее число вида a*k, меньшее b;
b)
получить наименьшее число вида ak, большее b;
c)
получить наибольшее число вида ak , меньшее b;
d)
определить, является ли число b степенью числа a или нет.
4.21 Для заданного натурального числа n:
a)
вывести все (четные, нечетные) цифры числа n в обратной
последовательности;
b)
подсчитать k - количество всех (кратных a) цифр в десятичной записи
числа n;
c)
найти сумму цифр (произведение) числа n;
d)
найти старшую цифру в целом положительном числе;
e)
вывести все цифры числа n в прямой последовательности;
f)
выяснить, является ли заданное число палиндромом, т.е. таким,
десятичная запись которого читается одинаково слева направо и справа
налево;
g)
22
поменять крайнюю левую и крайнюю правую цифры в числе;
h)
определить число, получаемое выписыванием в обратном порядке
цифр числа n.
4.22 Составить программу, которая читает натуральное число n в десятичном
представлении (n  1000), а на выходе выдает это же число в десятичном
представлении и на естественном языке. Например, 7 семь; 204 
двести четыре; 52  пятьдесят два.
4.23 Числа Фибоначчи определяются формулами:
f0=f1=1; fn=fn-1+fn-2 при n=2, 3, ...
a)
определить n-ое число Фибоначчи;
b)
найти первое число Фибоначчи, большее m (m>1);
c)
вывести все числа Фибоначчи, меньшие m (m>1);
d)
вычислить сумму всех чисел Фибоначчи, которые не превосходят A;
e)
вычислить сумму всех чисел Фибоначчи, которые превосходят A, но
не превосходят B;
f)
для последовательности из n чисел проверить, является ли она
последовательностью Фибоначчи;
g)
проверить, является ли целое число A (A >1) числом Фибоначчи. Если
является, то вывести его порядковый номер, если нет – вывести 0.
4.24 Даны два положительных целых числа A и B (1<A<B). Вывести все
простые числа, расположенные между A и B, в порядке их возрастания, а
также количество этих чисел.
4.25 Дано натуральное n и последовательность вещественных чисел x1, x2,...,xn ;
получить ai 
xi
1  ( x1  x 2  ... xi ) 2
, i  1, 2,...,n.
4.26 Вычислить:
a)
y=(x-2)(x-4)...(x-2n);
b)
y=a(a+1)(a+2)...(a+n);
c)
y=cos(x)+cos(x2)+...+cos(xn);
d)
y=cos(x)+cos2 (x) +...+cos n (x);
23
y  sin x  sin sin x  ...  sin
sin
sin

 ...
x ;
e)
n
f)
y=1!+2!+3!+...+n!;
g)
y  2  2  ...  2  2 (n корней);
h)
y  3  6  ...  96  99 ;
i)
y
1 1
1
 2  ...  2 n ;
a a
a
j)
y
1
1
1

 ... 
;
sin 1 sin 1  sin 2
sin 1  sin 2  ...  sin n
k)
y
cos1 cos1  cos 2
cos1  cos 2  ...  cos n

 ... 
;
sin 1 sin 1  sin 2
sin 1  sin 2  ...  sin n
1
1
1
;

 ... 
a a (a  1)
a (a  1)...( a  n )
( x  2)( x  4)...( x  2n)
. y  ( x  1)( x  3)...x  2n  1 .
y
l)
m)
4.27 Вычислить Y для натурального n:
n
n
1
2;
k 1 ( 2 k )
n
1
d) Y   ;
k 1 k !
1
a) Y   2 ;
k 1 k
n
1
;
c) Y  
k 1 k * k
n
1
e) Y   (2  );
k!
k 1
b) Y  
( 1)
;
k 1 k ( k  1)
i) Y  
n
g) Y  
k
n
1
 (1  k!) 2 ;
f) Y 
k 2
( 1) k * ( k  1)
;
k!
k 1
n
4.28 Вычислить Y для натурального n и вещественного x;
xk
;
k 1 k !
n
x  cos x
;
c) Y  
2k
k 1
n
( 1) k * x 2 k
Y

;
e)

k 1 k ( k  1)( k  2)
n
sin( kx ) 

g) Y   1 
;

k! 
k 1
n
a) Y  
1

k 1 k!
n
b) Y  
k
x ;
x  cos x
;
2k
k 1
n
 k

 cos k x  ;
f) Y   

k 1 k  1
n
d) Y  
 (1  x ) k 1  1 
2 .
k 1  (( k  1)! 1) 
n
h) Y   
24
4.29 Вычислить:
n
n
n
i
n
n i 1
 1
i 1 i
 1
i 1 i
i 1
n
 1
i 1 i
n

n
;
1
i
i 1
j) Y  
i 1
i
(1)
.
(2i  1) i
n
i
k

l) Y     j 
i  0 j 1
n
k
1
i

1
i

1
i

1
i
i 1
g) Y   1   ;
n

d) Y    1  i  ;
c) Y     ;
e) Y    
i
n
b) Y   i ;
a) Y     ;
 
x 
;
i  2
f) Y   1  n  ;
i 1
n
n
i) Y   1   ;
i 1
n
k) Y   1  
i 1
n
n i 1
;
k
m) Y    (a i  x j );
i 1 j 1
n) Y    x , для x  a , a  h, a  2h, ..., b, где h  b  a  / m, b  a;
i
j
i 1 j 1
n
k
i
i  j , для x  a , a  h, a  2h,... .., b.
j 1 1  x
o) Y   
i 1
4.30 Даны n чисел, где n – натуральное число. Найти минимальный и
максимальный элементы из этих чисел.
4.31 Даны n различных чисел, где n – натуральное число. Найти номера
минимального и максимального элементов из этих чисел.
4.32 Даны n чисел, где n – натуральное число. Найти номер:
a)
первого минимального элемента из этих чисел;
b)
последнего минимального элемента из этих чисел;
c)
первого максимального элемента из этих чисел;
d)
последнего максимального элемента из этих чисел;
e)
первого
экстремального
(минимального
или
максимального)
элемента из этих чисел;
f)
последнего экстремального (минимального или максимального)
элемента из этих чисел.
4.33 Даны n ненулевых целых чисел, где n – натуральное число. Найти
максимальный
(минимальный)
нечетный
(четный,
положительный,
отрицательный) элемент из данного набора. Если нечетные (четные,
25
положительные, отрицательные) элементы в наборе отсутствуют, то
вывести 0.
4.34 Даны n чисел, где n – натуральное число. Найти количество элементов,
расположенных после последнего минимального (максимального) элемента
из этих чисел.
4.35 Даны n чисел, где n – натуральное число. Найти количество элементов,
расположенных
между
первым
и
последним
минимальным
(максимальным) элементом из этих чисел. Если среди чисел имеется
единственный минимальный (максимальный) элемент, то вывести -1.
4.36 Даны n чисел, где n – натуральное число. Найти количество минимальных
(максимальных) элементов среди этих чисел.
4.37 Дана последовательность из n ненулевых целых чисел, где n – натуральное
число. Найти длину минимальной (максимальной) подпоследовательности
четных (нечетных, положительных, отрицательных) чисел. Если нечетные
(четные, положительные, отрицательные) элементы в наборе отсутствуют,
то вывести 0.
5 Вычисления с заданной точностью
Программа для вычисления с заданной точностью eps значения функции
y=e-x, используя ее разложение в ряд
x2
x3
y  1 x 

 ...
2!
3!
Program SUM;
Var x, y, eps, r :real;
k :integer;
begin
write(‘Введите значение аргумента x=’);
readln(x);
write(‘Введите точность вычислений eps=’);
readln(eps);
26
r:=1; y:=1; k:=1;
while abs(r)>=eps do
begin
r:=-r*x/k;
y:=y+r;
k:=k+1
end;
writeln(‘y=’,y:10:3)
end.
Программа вычисления постоянной Эйзера-Маскерони как предела
последовательности
n
1
c  lim (  ln n)  0.5772
n 
i 1 i
Program COUST_EM;
Var
n :integer; eps, s :real;
c, cp :real; {текущее и предыдущее значения постоянной}
begin
write(‘Введите точность вычислений eps=’);
readln(eps);
n:=1; s:=1; c:=1;
repeat
cp:=c;
n:=n+1;
s:=s+1/n;
c:=s-ln(n)
until abs(c-cp)<eps;
writeln(‘константа c=’,c:10:7)
end.
27
5.1 Вычислить с заданной точностью:
a)
y  1
1 1 1
   ... ;
2 3 4
=ln 2
b)
y  1
1 1 1
   ... ;
3 5 7
=
c)
1
1
1
y  1  2  2  2  ... ;
2
3
4
=
d)
y  1
1
1
1
 2  2  ... ;
2
2
3
4
=
e)
y  1
1
1
1
 2  2  ... ;
2
3
5
7
=
f)
y  1
1
1
1
 2  2  ... ;
2
3
5
7
=
g)
y  1
1 1 1
1
    ... ;
4 7 10 13
= (
h)
y
1 1 1 1 1
     ... ;
2 5 8 11 14
= (
i)
y  1
j)
y
1
1
1


 ... ;
1* 2 2 * 3 3 * 4
k)
y
1
1
1


 ... ;
1* 2 * 3 2 * 3 * 4 3 * 4 * 5
l)
y  sin x 
sin 3x sin 5 x sin 7 x


 ...
3
6
7
m)
y  cos x 
cos 3x cos 5 x cos 7 x


 ...
3
5
7

4
2
6
2
12
2
8
3
32
1 
 ln 2)
3 3
1 
 ln 2)
3 3
1 1 1
1
    ... ;
5 9 13 17
=
(0  x   ) ;
(-

2
x

2
).
1
4 2
  2 ln(
=

4
=

4

2  1)
5.2 Вычислить с заданной точностью значение функции y=f(x), используя ее
разложение в ряд:
1
1
1
 3  5  ...
x 3x
5x
a)
y
b)
y  ex  1 x 
( x  1) ;
x2
x3

 ... ;
2!
3!
28
x3
x5

 ... ;
3!
5!
c)
y  sin x  x 
d)
y  cos x  1 
e)
y  shx 
f)
e x  e x
x2
x4
y  chx 
1

 ... ;
2
2!
4!
g)
y  ln( 1  x)  x 
h)
y  arctgx  x 
i)
y  arcctgx 
j)
y  arctgx  
k)
24 2 246 3
 2

y  arctgx  t 1  t 
t 
t  ...,
35
357
 3

l)
y  arthx 
m)
y
n)
y  ln x 
o)
y  arshx  ln( x  1  x 2 )  x 
p)
y  (1  x) m  1  m  x 
5.3 Найти
x2
x4

 ... ;
2!
4!
e x  e x
x3
x5
 x

 ... ;
2
3!
5!

2
x2
x3
x4


 ... ,
2
3
4
x3
x5

 ... ,
3
5


2

для x  1 ;
1
1
1
1



... ,
x 3x3 5 x5
7 x7
1 1 x
x3
x5
ln
 x

 ...
2 1 x
3
5
где t 
для x  1 ;
x
;
1 x2
для x  1 ;
x  1 ( x  1) 2 ( x  1) 3


 ...
x
2x 2
3x 3
член
для x  1 ;
1
1
1
1



... ,
x 3x3 5 x5
7 x7
1
x 1 1
1
1
1
ln
 


... ,
2
x 1
x 3x3 5 x5
7 x7
первый
для  1  x  1 ;
для x  1 ;
для x  1/ 2 ;
1 x 3 1 3 x 5 1 3  5 x 7





 ... , для x  1 ;
2 3 24 5 246 7
m  (m  1) 2 m  (m  1)  (m  2) 3
x 
 x  ... , для m  R и x  1 .
2!
3!
последовательности,
для
которого
выполнено
следующее условие: |an-an-1|<eps, если последовательность образована по
закону:
n
a)
an 
b)
1
1
1
a n  (1  )(1  ) ...(1 
);
2
3
n 1
n  1  n2  1
2
;
29
c)
5.4 Для
yn 
5.5 Для
a n  (1 
1
1
( 1) n
)(1  )...(1 
).
2!
3!
(n  1)!
заданных
y0,
1
x
( y n 1 
)
2
y n 1
и
eps
вычислить
y x,
используя
формулу
eps
вычислить
y3 x,
используя
формулу
y0  x .
заданных
y0,
1 x
y n  y n 1  ( 2  y n 1 ),
3 y n 1
и
y0  x .
5.6 Описать алгоритм определения предела последовательности {an} при n→∞,
принимая за него такое значение an, при котором |an - an-1|< eps, eps>0.
Определить номер члена последовательности, для которого это условие
выполняется. Также вычислить точное значение предела. Здесь a>0, b>1,
α>0, p - натуральное число.
n
a)

a n  1 

b)
an 
c)
an 
an
,
n!
предел равен 0;
d)
an 
n
,
bn
предел равен 0;
e)
an 
log b n
,
n
предел равен 0;
f)
an  n  ,
предел равен 1;
g)
an  n n ,
предел равен 1;
h)
an  n(n a  1) ,
предел равен ln(a);
i)
1
n,
an 
1
n
предел равен 1;
j)
1
an  n ,
1
n
предел равен 1;
n
n
n!
1
 ,
n
предел равен e;
,
предел равен e;
sin
tg
30
1 p  2 p  ...  n p
,
n p 1
предел равен
1
;
p 1
k)
an 
l)
1 p  3 p  ...  (2n  1) p
,
an 
n p 1
m)
an 
1
1
1

 ... 
,
n 1 n  2
2n
предел равен ln2;
n)
an 
p  ( p  1)  ( p  2)  ...  ( p  n)
,
n2
предел равен
2p
предел равен
;
p 1
1
.
2
6 Символьный тип. Обработка последовательностей символов
Программа вывода последовательностей букв:
a
ab
abc
. . .
abc...xyz
Program ABC;
var c, d: char ;
begin
for c:=’a’ to ‘z’ do
begin
for d:=’a’ to c do write(d);
writeln
end
end.
6.1 Для данного натурального n и последовательности символов s1, s2,..., sn:
a)
подсчитать общее число вхождений символов +, -, *, /;
b)
выяснить, встречаются ли в данной последовательности группы из
трех стоящих рядом точек;
c)
получить первое i, для которого si и si+1 совпадают с заданной буквой;
d)
найти i такое, что si первая по порядку запятая;
e)
31
выяснить, имеется ли среди заданных s1, s2,..., sn пара соседствующих
букв ab или ba;
f)
выдать все пары совпадающих символов;
g)
подсчитать наибольшее число заданных букв, идущих подряд;
h)
определить
общее
число
латинских
букв,
входящих
в
последовательность.
6.2 Даны: натуральное n и последовательность символов s1, s2,..., sn: Известно, что
среди s1, s2,..., sn есть по крайней мере одна запятая. Найти натуральное i
такое, что:
a)
si – первая по порядку запятая;
b)
si – последняя по порядку запятая.
6.3 Вывести последовательности символов:
a)
ABBCCC ... ZZ...Z;
b)
ZYYXXX ... AA...A;
c)
ABC...ZBC...Z ... YZZ.
6.4 Дана последовательность символов, за которой следует точка (в сам текст
точка не входит):
a)
переменной f присвоить значение true, если буква a встречается чаще,
чем буква b, и присвоить значение false в противном случае;
b)
подсчитать, сколько раз встречается последовательность из n букв
(0<n<4);
c)
проверить, правильно ли в данной последовательности расставлены
круглые скобки;
d)
определить, является ли данная последовательность символов
правильной записью целого числа (возможно, со знаком).
6.5 Последовательность символов содержит слова из латинских букв, соседние
слова отделены друг от друга запятой, за последним символом – точка.
Определить:
a)
общее число букв в словах;
b)
количество слов, которые начинаются с заданной буквы;
c)
32
количество слов, которые оканчиваются заданной буквой;
d)
количество слов, которые начинаются и оканчиваются одной и той
же буквой;
e)
количество слов, в которых встречается (отсутствует) заданная буква;
f)
количество слов, в которых встречается заданная буква не менее
заданного числа раз;
g)
количество слов, в которых встречается заданная буква заданное
число раз;
h)
количество букв в каждом слове;
i)
количество слов, в которых гласных (согласных) букв больше чем
согласных (гласных);
j)
найти длину самого короткого (длинного) слова.
7 Литература
7.1 Абрамов С.А., Зима Е.В. Начала программирования на языке Паскаль. М.:
Наука, 1989.
7.2 Амелина Н.И., Демяненко Я.М., Лебединская Е.Н., Пасечный Л.Г., Спивак
И.Г., Усов А.Б. , Угольницкий Г.А. Задачи по программированию. М.,
Вузовская книга, 2000.
7.3 Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных
алгоритмов. М.: Мир, 1979.
7.4 Гутер Р.С., Минаева С.С., Резниковский П.Т. Задачник – практикум по
программированию и вычислительной математике. М.: Наука, 1973
7.5 Двайт Г.Б. Таблицы интервалов и другие математические формулы. М.:
Наука, 1978
7.6 Епанешников А.М., Епанешников В.А. Программирование в среде Turbo
Pascal 7.0. М.: Диалог-МИФИ, 1996
7.7 Йенсен К., Вирт Н. Паскаль. Руководство пользователя и описание языка. М.
Финансы и статистика, 1982
7.8 Пильщиков В.Н. Сборник упражнений по языку Паскаль. М.: Наука, 1989.
7.9 Прайс Д. Программирование на языке Паскаль: Практическое руководство.
Пер с англ. М.: Мир, 1987.
7.10 Семашко Г.Л., Салтыков А.И. Программирование на языке Паскаль. М.:
Наука. Гл. ред. физ.-мат. лит., 1988. - 128 с.
Download