Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачи_mod_alpha 2.doc
Скачиваний:
35
Добавлен:
19.03.2016
Размер:
686.59 Кб
Скачать

13.3. Студент

В задачах 1..15 использовать типизированный файл c информацией о студентах факультета Stud.dat со структурой:

const NumSemestr=10;

type

TStud=record

FIO : string[80]; // фамилия имя отчество

Year : TDateTime; // дата рождения

// средние оценки за семестр

MedB : array [1..NumSemestr] of real;

Kurs : byte; // курс

Group: byte; // группа

End;

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

  2. Вывести список студентов, для которых дни рождения попадают на дни текущей недели.

  3. Вывести список студентов, у которых средний балл постоянно увеличивается от семестра к семестру.

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

  5. Вывести информацию о самых молодых студентах с указанием возраста — N человек, начиная с самого молодого, N определяется вводом.

  6. Вывести информацию о средних баллах по курсам.

  7. Вывести информацию об однофамильцах.

  8. Организовать поиск студентов по ФИО, курсу, группе, году рождения.

  9. Определить группы студентов, у которых средний балл ниже факультетского среднего.

  10. Вывести информацию о студентах, которые стали учиться хуже, чем на 1-ом курсе.

  11. Упорядочить список студентов заданной группы по среднему баллу, вывести его.

  12. Вывести список студентов, у которых средний балл больше 40.

  13. Вывести студента с наибольшим средним баллом на каждом курсе.

  14. Вывести студента с наименьшим средним баллом на каждом курсе.

  15. Составить список 5 студентов с максимальным средним баллом.

14. Рекурсия

  1. Описать рекурсивную функцию для подсчёта количества запятых в данном текстовом файле.

  2. Описать рекурсивную функцию

function step(z : real; m:byte):real;

для вычисления zm (z — вещественное, m — натуральное) и с её помощью подсчитать значение выражения a7 + b8 .

  1. Описать рекурсивную функцию

function fib(n : integer) : integer;

для вычисления n-ого (n  40) числа Фибоначчи.

Указание.

Последовательность чисел Фибоначчи fk образуется так:

f0=1, f1=1, fk = fk-2 + fk-1.

  1. Описать рекурсивную функцию

function arifm(a, d, k : integer) : integer;

для вычисления k-ого элемента арифметической прогрессии (a — первый элемент прогрессии, d — разность прогрессии).

  1. Создать очередь из чисел, записанных в текстовом файле, с помощью рекурсивной процедуры procedure add(var r : link).

  2. Описать рекурсивную функцию

function memb(r:link; b:integer): boolean;

проверяющую, входит ли элемент с информационным полем b в список r.

  1. Описать рекурсивную процедуру

procedure dele(var r:link; w:integer);

удаляющую из списка r первое вхождение элемента с информационным полем w.

  1. Используя функцию memb, проверить, входит ли число, введённое в поле Edit1, в созданный список. Если да, то удалить из списка первое вхождение этого числа с помощью процедуры dele и вывести преобразованный список в текстовый файл с помощью процедуры out. В противном случае вывести сообщение: «Такого элемента нет».

  2. Создать очередь с помощью рекурсивной процедуры

procedure add(var r: link).

  1. Описать рекурсивную функцию

function neg(r: link): boolean;

проверяющую, имеется ли в списке элемент с отрицательным информационным полем.

  1. Описать рекурсивную функцию

function nmemb(r: link; b:integer):integer;

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

  1. Описать рекурсивную функцию

function max(r: link): integer;

для нахождения максимума в списке r.

  1. Написать рекурсивную функцию для нахождения биномиальных коэффициентов

  1. Для заданного М вычислить все

  2. Задано конечное множество имен жителей некоторого города, причем для каждого из жителей перечислены имена его детей. Жители А и Б называются родственниками, если:

либо А — ребенок Б,

либо Б — ребенок А,

либо существует некий В такой, что А является родственником В, а В является родственником Б. Перечислить все пары жителей города, которые являются родственниками.

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

  2. Вычислить определитель заданной матрицы, пользуясь формулой разложения по первой строке:

где матрица B получается вычеркиванием из А первой строки и k-го столбца.

  1. Построить синтаксический анализатор для понятия простое_выражение, простое выражение ::= простой_ идентификатор | (простое_выражение знак_операции простое_выражение);

простой идентификатор: := буква;

знак_операци::= + | – | *;

  1. Написать процедуру, которая по заданному простому логическому выражению вычисляет его значение.

логическое выражение.:= TRUE | FALSE | NOT логическое_выражение |

(логическое_выражение знак_операции логическое_выражение);

знак_операщш::= AND | OR;

  1. Расставить на шахматной доске 8 ферзей таким образом, чтобы ни один не угрожал другому.

  2. Получить расстановки 8 ладей на шахматной доске, при которых ни одна ладья не угрожает другой.

  3. Получить все перестановки элементов 1,..., 6.

  4. Получить все размещения из 10 элементов 1, 2,..., 10 по 3 в каждом. Размещением называется выборка из п указанных элементов т неповторяющихся элементов.

  5. На шахматной доске определигь поля, в которые может попасть конь за п ходов из указанной позиции.

  6. Имеются n городов. Некоторые из них соединены дорогами известной длины.

  • Найти кратчайшие маршруты из заданного города в остальные.

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

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

  2. «Задача о рюкзаке». Имеется М различных предметов, известны вес каждого предмета и его стоимость. Определить, какие предметы надо положить в рюкзак, чтобы общий вес не превышал заданной границы, а общая стоимость была максимальной.

  3. Даны целое п от 2 до 20 и вещественное Е>0. Найти с точностью Е все корни n-го многочлена Чебышева Тп(х), определяемого формулами Т0 (х) = 1; Т1 (х) = х; Тk (х) = 2хTk-1 (х) - Тк-2 (х), (к = 2,3,...).

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

  5. Покрыть все клетки шахматной доски ходом коня, начальное положение коня на поле с координатами x0, y0

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

  7. Прямоугольная матрица содержит ячейки двух типов — "белые" и "черные". Написать процедуру, находящую хотя бы один путь от первой строки матрицы до последней по "белым" ячейкам. Переход возможен только в соседнюю ячейку: левую, правую, верхнюю, нижнюю, то есть при изменении только одного индекса.