Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zadachi_po_S.doc
Скачиваний:
12
Добавлен:
09.11.2019
Размер:
528.9 Кб
Скачать

В задачах 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 студентов с максимальным средним баллом.

Рекурсия

  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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]