Организация и функционирование компьютеров

         

Список задач для программирования на Паскале


Группа А.

1. Вычислить корни квадратного уравнения ax2+bx+c=0  (разобрать все значения a, b и c, указать число корней и корни).

2.       Без использования массивов вычислить  ln(1+x) с помощью ряда с точностью до 0.001.

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

 .

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


, где a, b

, n  и  заданы, n - четное, h=(b-a)/n, a0=a, an=b, ak=a0+kh. Функция f(x)

вычисляется функцией на Паскале с заголовком  function f(x:real): real;  .

5.       Без использования массивов найти минимальное по абсолютной величине число среди чисел  sin1, sin2, ..., sinN (N£100)  и определить, при каком  N оно достигается.

6.       Дан массив А из N элементов. Написать функции вычисления мах А

7.       Дан массив А из N элементов. Написать функции вычисления sum A.

8.       Подсчитать количество нулей в массиве a целых чисел.



9.       Дан массив из N чисел. Найти в этом массиве номер 7-го по счету отрицательного элемента. Если число отрицательных элементов массива меньше 7, выдать 0. Построить функцию или фрагмент программы.

10.    Генератор случайных чисел выдает числа от 0 до 99 (функция random (99) ). Выдать седьмое по счету четное число. Построить функцию или фрагмент программы.

11.    Найти минимальное положительное значение в массиве a длины n.

12.    Дано множестве n

точек на плоскости, заданных координатными парами (х,y). Найти две ближайшие.

13.    Дан  массив a

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

14.    Дан  массив a


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

15.    Написать функцию вычисления количества чисел в последовательности из n

элементов, которые меньше последующего члена.

16.    Написать функцию вычисления максимума модуля разности между соседними членами последовательности из n элементов

17.    Дан  массив A целых чисел, расположенных в порядке убывания (возможны повторения). За один проход по массиву найти  максимальное количество идущих подряд одинаковых чисел.

18.    Пусть задан массив записей (объектов типа record), в число полей которой входит поле с именем old. Подсчитать количество элементов массива, для которых  18£old£55.

19.    Используя только один цикл, определить, делится ли  число  n  на число вида k2.

20.    Найти наибольший общий делитель целых чисел m и n.

Группа Б

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

2.       Найти максимальную по длине монотонную (неубывающую или невозрастающую) подпоследовательность в массиве a целых чисел.

3.       Дан  массив A длины  n  целых чисел, расположенных в возрастающем порядке (повторения невозможны). Для заданного числа x  найти номер j  элемента, для которого A[j]£x<A[j+1]. Если  x<A[1], то j=0, если x³A[N] , то j=N.

4.       Дан массив a произвольных целых чисел. Найти  количество  различных  чисел  среди  элементов этого массива.

5.       Двумя вызовами функции random (100)  получаем координаты случайной точки (x,y), лежащей в квадрате со стороной 100. Сколько точек из N попадут внутрь круга с центром в точке (50, 50) и радиусом 25. Построить функцию или фрагмент программы.



6.       Посчитать число счастливых четырехзначных билетов (сумма первых двух цифр равна сумме двух последних). Построить функцию или фрагмент программы.

7.       Посчитать число чисел, меньших N, не делящихся на 7 и на 11. Построить функцию или фрагмент программы.

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

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

10.    Пусть задан массив записей (объектов типа record), в число полей которой входит поле с именем name. Подсчитать количество элементов массива с данным значением x поля name.

11.    Определить, является ли число n простым.

12.    Год считается високосным, если он делится на четыре, при этом надо исключить года, делящиеся на 100 и не делящиеся на 400. Вычислить логическое выражение, принимающее значение true, если данный год  является високосным.

13.    Определить, делится ли число n на квадрат другого числа.

14.    Пусть гостиница состоит из n корпусов с различным числом номеров, задаваемых массивом a . Нумерация номеров в гостинице сквозная. По номеру определить корпус, в котором находится этот номер.

15.    Построить функцию, моделирующую дискретную случайную величину с заданным распределением  p1, p2, ... ,pn.

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

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

18.    Определение номера дня недели по дате (день, месяц, год) с вводом данных и проверкой.

19.    Определение месяца и числа по году и номеру дня в году с вводом данных и проверкой.

20.    Сортировать массив a длины n  в порядке возрастания обменом.



21.    Сортировать массив a длины n  в порядке возрастания пузырьком.

22.    Коэффициенты многочлена a0+a1x+a2x2+...+anxn  хранятся в массиве a длины n+1. Вычислить значение производной этого многочлена в точке x.

23.    В  массивах a

и b длины n+1 и k+1 хранятся коэффициенты двух многочленов степеней n и k.  Поместить в массив c длины n+k+1 коэффициенты их произведения.

24.    Дано множестве n

точек на плоскости, заданных координатами (х,y). Найти вторую по удаленности пару в списке всех пар точек данного множества.

25.    По матрице a

размером 2n*2m построить матрицу b размером nxm, элементы которой есть суммы четырех элементов соответствующей ячейки 2*2.

26.    Умножить две матрицы порядков m*n  и n*k.

27.    Транспонировать матрицу относительно главной диагонали.

28.    Транспонировать матрицу относительно побочной диагонали.

29.    Ряд Фибоначчи задается формулой a=1, a=2, a= a+a. Вывести на экран члены ряда от 1 до 35 в четыре столбика по 10 членов (последний неполный). Можно использовать дополнительный массив.

30.    Число называется совершенным, если оно равно сумме своих делителей, включая 1. Например,  6=1+2+3. Найти все совершенные числа от 1 до n и вывести их на экран.

31.    В строке определить правильность расстановки круглых скобок (соответствие открывающих и закрывающих).

32.    Написать функцию преобразования целого числа в двоичную строку.

33.    Написать функцию преобразования двоичной строки в целое число.

Группа В

1.       Дан  массив A целых чисел, расположенных в возрастающем порядке. Длина массива – 1024. Для заданного числа x  не более чем за 20 сравнений найти номер j  элемента, для которого A[j]£x<A[j+1].

2.       Слить два упорядоченных по возрастанию массива a и b  в массив c.



3.       Не используя другого массива и не используя сортировки, переставить элементы  массива a длины n  так, чтобы вначале шли элементы меньше b, а затем  элементы больше b  (b

задано).

4.       Заданную последовательность v длины n  преобразовать таким образом, чтобы вначале шли неположительные, а затем положительные элементы. Не использовать других массивов и не сортировать массив.

5.       Вывести на дисплей календарь января 1997г.

6.       Дан массив a целых чисел. Не используя дополнительных массивов, переставить элементы массива так, чтобы вначале шли четные, а затем нечетные числа.

7.       Дан  массив  целых  чисел  a длины m+n, рассматриваемый  как  соединение  двух  его   отрезков:  начала длины m и конца длины n. Не используя дополнительных массивов, переставить начало и конец.

8.       Написать процедуру сортировки (любым способом) строк матрицы размером N*N в порядке убывания длины строки (строка рассматривется как вектор).

9.       Дана матрица размером N*N. Определить, где положительных чисел больше - над главной диагональю (включая ее) или под ней (не включая главную диагональ). Построить функцию или фрагмент программы.

10.    Определить, есть ли среди делителей числа n два, отличающихся на единицу.

11.    Подсчитать количество делящихся на 11 чисел от 1 до n, в записи которых нет двоек и семерок.

12.    Подсчитать сумму всех простых делителей данного числа n  (кратные считать столько раз, какова их кратность).

13.    Поместить в массив a все простые делители числа n  в порядке возрастания (с учетом кратности).

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


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

15.    Подсчитать количество слов в заданной строке. Разделителями считать пробел, точку, запятую и точку с запятой.

16.    Написать функцию, удаляющую из строки все повторяющиеся, лидирующие и замыкающие пробелы.

17.    Построение и вывод символьной строки, изображающей n-ричное представление целого числа, n£16.

18.    Расставить на шахматной доске восемь ферзей , не бьющих друг друга.

19.    Игра "Ханойские башни" состоит в следующем. Есть три стержня.  На  первый из них надета пирамидка из n колец (большие кольца снизу, меньшие сверху). Требуется переместить  кольца  на второй  стержень. Разрешается перекладывать кольца со стержня на стержень,  но класть большее кольцо поверх меньшего нельзя. Написать рекурсивную процедуру, осуществляющую следующую идею: чтобы переложить k  верхних колец с 1-го стержня на 2-ой, надо переложить (k-1) кольцо с 1-го стержня на 3-ий, k-ое кольцо переложить на 2-ой стержень, а затем (k-1) колько переложить с 3-го стержня на 2-ой.

20.    Построить рекурсивную процедуру, определяющую, содержит ли данное число нечетные простые делители, дающие при делении на 4 остаток 1.






Содержание раздела