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

3-й семестр / Задачи по программированию - Абрамов С.А. и др

. .pdf
Скачиваний:
229
Добавлен:
25.12.2020
Размер:
6.04 Mб
Скачать

2)прямоугольник задается координатами левого верхнего и правого нижнего угла, имеет номер 2;

3)окружность задается координатами центра и радиусом, имеет

номер 3;

4)ломаная задается количеством ее вершин, их координатами и имеет номер 4. Так, например, строка 1, 10, 10, 30, 30 определяет отрезок прямой с координатами концов (10, 10) и (30, 30), а строка 3, 100, 100, 50 - окружность с центром в точке (100, 100) и радиусом 50.

а) Построить на экране все геометрические фигуры, заданные в файле f.

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

530. Дан файл f, компоненты

 

 

 

которого являются натуральными

 

 

 

A

числами. Число компонент файла кратно

 

 

 

четырем. Каждые две последовательные

 

 

 

компоненты определяют координаты

 

 

 

 

 

B

двух точек.

 

Рис. 24

 

 

 

а) Считая, что заданы координаты концов отрезков, построить все такие отрезки.

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

в) Считая, что заданы вершины A и B фигуры, представленной на рис. 24, построить все такие фигуры.

г) Считая, что заданы координаты центра окружности и одной из ее точек, построить все такие окружности.

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

*) В некоторых языках программирования допускаются массивы с динамическими границами, и это снимает многие трудности в решении задач; в этом случае настоящий параграф продолжает § 9. В Паскале же, например, где такие массивы не допускаются, естественно использовать списки. Возможный вид этих списков указан в задачах 531-534. Для работы со списками полезны процедуры вставки элемента в начало списка, вставки элемента в конец списка, удаление элемента и т. д. (эти процедуры отдельно рассмотрены в §36). Для решения задач этого параграфа можно использовать и файлы, но это резко увеличивает время выполнения программы и имеет смысл в том случае, когда все исходные данные не помещаются в памяти вычислительной машины.

531. Даны натуральное число n, действительные числа x1,..., xn (n 2) . Получить последовательность

x1 xn , x2 xn , ..., xn1 xn .

Для решения этой задачи полезен список, изображенный на рис. 25.

x

x2

x3

...

x

n

1

 

 

 

 

Рис. 25

532. Даны натуральное число n, действительны числа a1 , ..., an .

Если последовательность a1 , ..., an упорядочена по неубыванию (т. е.

если a1 a2 . ... an),то оставить ее без изменения. Иначе получить последовательность аn, ..., a1.

Для решения этой задачи полезен список, изображенный на рис.

26.

a 1

a 2

a 3

a n

Ри с . 2 6

533.Даны натуральное число n, действительные числа x1, ..., xn. Вычислить:

а) x1xn + x2xn – 1 + ... + xnx1;

б) (x1 + xn)(x2 + xn – 1)...(xn + x1);

в) (x1 + x2 + 2xn)(x2 + x3 + 2xn – 1)...(xn – 1 + xn + 2x2).

Для решения этой задачи полезен список, изображенный на рис.

27.

x 1

x 2

x 3

x n

 

Р и с .

2 7

 

534. Даны натуральное число n, действительные числа a1, ..., a2n. Получить:

а) (a1 a2n)(a3 a2n – 2)(a5 a2n – 4)...(a2n – 1 a2); б) a1a2n + a2a2n – 1 + ... + anan + 1;

в) min(a1 + an + 1, a2 + an + 2, an + a2n);

г) max( min( a1, a2n), min( a2, a2n – 1), ..., min( an, an + 1)).

535.Пусть a1 = 1; a2 = 1.5; ai = a[i / 2]a[i / 3]+1 (i = 3, 4, ...). Дано натуральное m. Получить am.

536.Даны натуральное число n, целые числа a1, ..., an. Выяснить, имеются ли среди чисел a1, ..., an совпадающие.

537.Даны натуральное число n, целые числа a1, ..., a3n. Выяснить, верно ли, что для всех a2n + 1, ..., a3n имеются равные среди a1, ..., a2n.

538.Даны натуральное число n, действительные числа r1, ..., rn

Получить последовательность:

а) r1, ..., rn, r1, ..., rn ; б) r1, ..., rn, rn, ..., r1 ; в) rn, ..., r1, r1, ..., rn .

539. Даны натуральное число n, целые числа a1, ..., an. Требуется получить последовательность x1, y1, x2, y2, ..., xk, yk, где x1, ..., xm – взятые в порядке следования четные члены последовательности

a1, ..., an, а y1, ..., yl – нечетные члены, k = min (m, l).

540. Даны натуральное число n, целые числа a1, ..., a2n. Выяснить, верно ли, что для i = 1, 2, ..., n выполнено:

а) ai = – an + i ;

б) ai = 2an – i + a2n i + 1 ;

в) ai + a2n – i + 1 > 17 ;

г) a2n – i + 1 < ai a2n – i .

541.Даны натуральное число n, действительные числа a1, ..., an. Преобразовать последовательность a1, ..., an, расположив вначале отрицательные члены, а затем – неотрицательные. При этом:

а) порядок как отрицательных, так и неотрицательных чисел сохраняется прежним;

б) порядок отрицательных чисел изменяется на обратный, а порядок неотрицательных сохраняется прежним;

в) порядок отрицательных чисел сохраняется прежним, а порядок неотрицательных изменяется на обратный;

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

542. Даны натуральное число n, действительные числа a1, ..., an.

Вычислить min

 

ai

~

 

~

– среднее арифметическое чисел

 

 

 

a

 

, где a

1≤ i n

 

 

 

 

 

 

a1, ..., an.

 

 

 

 

543. Даны натуральное число n, действительные числа x1, ..., xn , p1, ..., pn.

Последовательности x1, ..., xn и p1, ..., pn определяют систему n материальных точек на прямой: xi – координата, pi – вес i-й точки

(i = 1, 2, 3, ..., n). Указать номер точки, наиболее близко расположенной к центру тяжести системы. Если таких точек несколько, то взять любую из них.

544.Даны натуральное число n, действительные числа a1, ..., an. Если в последовательности a1, ..., an есть хотя бы один член, меньший, чем – 3, то все неотрицательные члены заменить их квадратами, оставив остальные члены без изменения; в противном случае домножить все члены на 0.1.

545.«Считалка». Даны натуральные n, m. Предполагается, что n человек встают в круг и получают номера, считая против часовой

стрелки, 1, 2, ..., n. Затем, начиная с первого, также против часовой стрелки отсчитывается m-й человек (поскольку люди стоят по кругу, то за n–м человеком стоит первый). Этот человек выходит из круга, после чего, начиная со следующего, снова отсчитывается m-й человек и так до тех пор, пока из всего круга не остается один человек. Определить его номер.

Для решения этой задачи полезен список, соединенный в кольцо так, как показано на рис. 28.

4

1

3

2

Р и с . 2 8