ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.05.2021

Просмотров: 2002

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Матрицы

  1. Дано натуральное число n. Получить вещественную матрицу A, для которой

;

  1. Дана вещественная матрица A. Получить матрицу A=BC, где

  1. Получить вещественную матрицу A размерности 77, первая строка которой задается формулой a1j = 2j+3, (j = 1, ..., 7), вторая строка задается формулой (j = 1, ..., 7), а каждая следующая строка есть сумма двух предыдущих.

  2. Дано натуральное число n и вещественная матрица размера nn. Найти среднее арифметическое:

a) каждого из столбцов;

b) каждого из столбцов, имеющих четные номера.

  1. Дано натуральное число n. Выяснить, сколько положительных элементов содержит матрица A размерности nn, если

  1. Дана действительная матрица размера nm, в которой не все элементы равны нулю. Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент.

  2. Даны натуральное число m, числа a1am и целочисленная квадратная матрица порядка m. Строку с номером i назовем отмеченной, если ai > 0, и неотмеченной в противном случае. Нужно все элементы, расположенные в отмеченных строках матрицы, преобразовать по правилу: отрицательные элементы заменить на –1, положительные — на 1, а нулевые оставить без изменения.

  3. См. условие задачи 7. Подсчитать число отрицательных элементов матрицы, расположенных в отмеченных строках.

  4. Дана вещественная квадратная матрица порядка N. Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее.

  5. Даны вещественные числа x1,…, x8. Получить квадратную матрицу порядка 8, образованную по правилу:

  1. Будем называть соседями элемента с индексами i, j некоторой матрицы такие элементы, индексы которых отличатся от i, j не более чем на единицу. Для данной целочисленной матрицы А (aij) размерности mm найти матрицу В, состоящую из нулей и единиц, элемент которой bij равен единице, когда среди соседей aij есть не менее двух совпадающих с aij.

  2. Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размером N M напечатать индексы всех ее седловых точек.


Выполнить следующие задания, используя процедуры и функции.

  1. Для заданной вещественной матрицы определить, образуют ли ее элементы упорядоченную последовательность следующего вида:



  1. В квадратной матрице определить количество строк

a) упорядоченных по возрастанию;

b) упорядоченных по убыванию;

c) состоящих из равных элементов;

d) неупорядоченных.

Использовать функцию, определяющую свойство каждой строки.

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

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


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

либо существует некий В такой, что А является родственником В, а В является родственником Б.

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

  1. В матрице А(nn) определить количество строк, элементы которой образуют арифметическую прогрессию. Использовать подпрограмму проверки строки.

  2. В заданной матрице А(nn) найти максимум из всех минимальных элементов матрицы по столбцам.

  3. В заданной матрице А(nn) найти минимум всех сумм абсолютных величин элементов матрицы по столбцам. Для нахождения суммы абсолютных величин столбца использовать функцию.

  4. Подсчитать количество строк матрицы А(nn), элементы которых образуют монотонную последовательность. Для определения монотонности использовать процедуру.

  5. Уплотнить матрицу А(nn) влево и вверх. Для выявления нулевых строк и столбцов и столбцов использовать подпрограмму.

  6. Матрица А(nn) просматривается сверху вниз про строкам. Найти скалярное произведение строки и столбца, соответствующих строке с первым найденным отрицательным элементом и последним нулевым.

  7. Упорядочить строки матрицы A(m, n) по неубыванию суммы элементов строк.

  8. Упорядочить строки матрицы A(m, n) по неубыванию их евклидовых норм.

  9. Упорядочить строки матрицы A(m, n) по неубыванию количества их нечетных элементов.

  10. Упорядочить строки матрицы A(m, n) по неубыванию сумм цифр элементов строк.

  11. Проверить, есть ли в матрице А(nn) строки, не содержащие более двух отрицательных элементов.

  12. Дана матрица А(nn). Построить вектор, каждый элемент которого содержит наименьший по абсолютной величине элемент строки.

  13. Составить программу поиска минимального элемента, расположенного под главной диагональю, и максимального элемента, расположенного над главной диагональю заданной вещественной матрицы А(nn).

  14. Заполнить квадратную матрицу N×N следующим образом: элементы, расположенные на главной диагонали, принять равными 1; выше главной диагонали — сумме индексов; ниже — их разности.

  15. Заполнить квадратную матрицу N×N единицами и нулями в шахматном порядке, начиная с верхнего левого угла.

  16. Дана матрица N×M. Определить сумму элементов, кратных 3, и количество отрицательных элементов.

  17. Задана квадратная матрица N×N. Определить, где больше четных элементов: выше или ниже главной диагонали.

  18. Дана квадратная целочисленная матрица N×N. Найти суммы элементов строк, имеющих четные элементы на главной диагонали.

  19. Даны две квадратных матрицы A(N×N) и B(M×M). Определить сумму элементов, расположенных на главных диагоналях.

  20. Дана матрица N×M. Определить четные элементы, имеющие нечетную сумму индексов. Показать индексы этих элементов.

  21. Задана квадратная матрица N×N. Найти суммы элементов тех строк, у которых элементы, расположенные на главной диагонали, равны нулю.

  22. Дана действительная квадратная матрица N×N. Найти максимальный элемент на главной диагонали и вывести строку, в которой он находится.

  23. Задана квадратная матрица N×N. Найти номер столбца К и строки L с максимальным произведением. Сформировать вектор В (2n), нечетные элементы которого равны сумме, а четные — разности элементов К-го столбца и L-й строки матрицы.

  24. В матрице A(N×M) найти строку с максимальной суммой элементов и строку с минимальной суммой элементов. Далее сформировать вектор B(2×M), элементы которого чередовались бы с элементами максимальной и минимальной строк.

  25. Дана действительная квадратная матрица N×N. Требуется переставить строки матрицы по возрастанию первых элементов строк.

  26. Дана действительная квадратная матрица N×N. Требуется преобразовать матрицу: поэлементно вычесть последнюю строку из всех строк, кроме последней.

  27. Задана прямоугольная матрица A(N×M). Найти k — номер строки с максимальной суммой элементов. Далее сформировать матрицу B(N×M), каждый элемент строки которой равнялся бы элементу соответствующей строки матрицы А, деленному на соответствующий элемент k-й строки.

  28. Дана квадратная матрица A(N×N). За один просмотр элементов матрицы A(N×N) сформировать вектор С(N), каждый j-й элемент которого равен произведению элементов j-го столбца исходной матрицы, и вектор D(N), каждый j-й элемент которого равен сумме соответствующей строки матрицы А.

  29. Задана квадратная матрица A(N×N). Найти k — номер столбца с максимальной суммой элементов и номер строки l c минимальной суммой элементов, а также элемент с минимальным значением в матрице А. Далее сформировать вектор Р(N), каждый элемент которого равен разности соответствующих элементов k-столбца и l‑строки, деленной на минимальный элемент матрицы А.

  30. Задана квадратная матрица A(5×5). Сформировать вектор x(5), каждый элемент которого равен наибольшему значению элементов соответствующей строки исходной матрицы. Вычислить x1x5+ x2x4+ x3x3+ x4x2+ x5x1.

  31. В данной целочисленной квадратной матрице A(N×N) указать индексы всех элементов, имеющих наибольшее значение.

  32. Даны две прямоугольные матрицы A(N×M) и B(N×M). Найти матрицу C(N×M), элементы которой равны сумме соответствующих элементов матриц А и В, после чего произвести транспонирование полученной матрицы С.

  33. Дана квадратная матрица A(N×N). За один просмотр найти строку с минимальной суммой элементов и строку с максимальной суммой элементов и образовать произведение этих строк.


Множества

  1. Даны три множества Х1, Х2, Х3, содержащие целые числа из диапазона 1..100. Известно, что мощность каждого из этих множеств равна 10.

Сформировать новое множество Y=(Х1 Х2) (Х2\ Х3), из которого выделить подмножество нечетных чисел. На экран вывести исходные и полученное множества. Значения элементов исходных множеств ввести с клавиатуры.

  1. Даны три множества Х1, Х2, Х3, содержащие целые числа из диапазона 1..100. Известно, что мощность каждого из этих множеств равна 10.

Сформировать новое множество Y=(Х1 Х2) (Х2 × Х3) и вывести на экран его мощность. Проверить, есть ли в множестве Y числа, делящиеся на 6 без остатка. Значения элементов исходных множеств ввести с клавиатуры.

  1. Даны два множества М и N, состоящие из 10 целых чисел из диапазона 1..100. Из данных множеств выделить соответственно подмножества М1 чисел, делящихся на 3 без остатка, и N1 чисел, делящихся на 2 без остатка. На печать вывести мощность и значения элементов множества MN= М1 N1.

  2. Даны три множества Х1, Х2, Х3, содержащие целые числа из диапазона 100...200. Известно, что мощность каждого из этих множеств равна 10.

Сформировать новое множество Y=( Х1 Х2) (Х1 Х3). На печать вывести множества Х1, Х2, Х3 и Y.

  1. Даны три множества Х1= {1,2,3,...,20}, Х2= {10,20,30,...,30} и Х3= {1,3,5,...,19,21}. Сформировать множество Y= (Х1 Х2) (Х1 Х3) (Х2 Х3), из которого выделить подмножество Y1 чисел, делящихся на 4 без остатка. На печать вывести множество Y и мощность множества Y1. Исходные множества ввести с клавиатуры.

  2. Даны три множества Х1= {1,2,3,...,20}, Х2= {10,20,...,190,200} и Х3= {10,11,12,...40}.

Сформировать множество Y= (Х2 Х3)\(( Х1 Х2) (Х1 Х3)) и множество Y1, состоящее из элементов Y, деленных на 2. Если полученное в результате деления число не целое, то округлить его до ближайшего целого. На печать вывести Y и Y1. Исходные множества ввести с клавиатуры.

  1. Даны три множества Х1= {2,4,6,8,10}, Х2= {1,2,3,4,5} и Х3= {2,3,5,7,8}. Сформировать множество Y= (Х2\ Х3) (Х1\ Х3). На печать вывести Y и его мощность. Исходные множества описать как типизированные константы.

  2. Разработать программу для определения, какому алфавиту (латинскому или русскому) принадлежит введенный с клавиатуры символ. На печать вывести введенный символ с комментарием, например, НАБРАН СИМВОЛ "А" НА РУССКОМ РЕГИСТРЕ.

Структуры

  1. Дано

type

имя = (Аня, Валя, Женя, Петя,

Саша, Таня, Шура, Юра);

данные = struct {

пол : (муж, жен);

рост : 140..200

};

группа = array [имя] of данные;

Описать функцию СредРост(ГР), определяющую средний рост женщин из группы ГР.

  1. Даны: структура, описывающая рациональное число

struct rac

{

int chisl;

unsigned int znam;

};

и массив из 20 таких структур. Описать логическую функцию Equal(a, b), сравнивающую два рациональных числа a и b.

  1. Даны комплексное число z (пара вещественных чисел) и вещественное число > 0. Вычислить с точностью значение следующей комплексной функции:


3.1 sh z = z + z3 / 3! + z5 / 5! + … + z2n+1 / (2n + 1)! + …;

3.2 ch z = z + z2 / 2! + z4 / 4! + … + z2n / (2n)! + …;

3.3 sin z = zz3 / 3! + z5 / 5! – …+ (–1)nz2n+1 / (2n + 1)! + …;

3.4 cos z = zz2 / 2! + z4 / 4! – … + (–1)nz2n / (2n)! + …;

3.5 ln (1 + z) = zz2 / 2 + z3 / 3 – … + (–1)n-1zn / n + … (| z | < 1);

3.6 arctg z = zz3 /3 + z5 /5 –…+ (–1)nz2n+1 /(2n + 1) +… (| z | < 1).

  1. Даны: структура, описывающая вещественное число

struct numb

{

bool sign;

float mant;

int order;

};

и массив из таких структур.

Описать:

4.1 функцию MaxNeg(C) для нахождения максимального отрицательного числа из списка чисел С;

4.2 функцию MaxDi(C) для нахождения максимального порядка числа из списка вещественных чисел С;

  1. Даны: структуры

struct decart

{

float x, y;

};

и

struct polar

{

float r, fi;

};

( r 0, - < fi )

Описать процедуру ДП(d, p), преобразующую координаты точки на плоскости из декартовых d в полярные p, и ПД(p,d), выполняющую обратное преобразование.

  1. Дана структура

struct Date

{ unsigned short day, month, year;}

и перечисление

enum DayOfWeek {mn, td, wd, thd, fd, std, sd};

Считая, что все даты даются по григорианскому календарю (по «новому стилю»), описать:

6.1 функцию ПослЧисло(d), вычисляющую количество дней в том месяце, которому принадлежит дата d;

6.2 логическую функцию ВернаяДата(d), проверяющую правильность даты d;

6.3 функцию ЧислоДней(d), подсчитывающую, сколько дней прошло от 1 января 1-го года нашей эры до даты d;

6.4 функцию ДН(d) для определения дня недели, на который приходится дата d (учесть, что 1 января 1‑го года нашей эры было понедельником);

6.5 функцию Пятница13(d), которая определяет количество дней до даты d, которые были пятницами 13-ого числа.

Файлы

Текстовые файлы

  1. Дан текстовый файл. Вывести количество содержащихся в нем символов и строк (маркеры концов строк eoln и конца файла eof при подсчете количества символов не учитывать).

  2. Дана строка S и текстовый файл. Добавить строку S в начало1|конец2 файла.

  3. Дан текстовый файл. Удалить из него первую1|последнюю2 строку.

  4. Даны два текстовых файла с именами Name1 и Name2. Создать новый текстовый файл с именем Name3, являющийся объединением содержимого файлов Name1 и Name2 (в указанном порядке).

  5. Даны два текстовых файла с именами Name1 и Name2. Добавить в конец файла Name1 содержимое файла Name2.

  6. Дан текстовый файл, содержащий более трех строк. Удалить из него три последние строки.

  7. Дано число k (< 10) и текстовый файл, содержащий более k строк. Удалить из файла первые1|последние2 k строк.

  8. Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла.

  9. Дано число k и текстовый файл. Удалить из файла строку с номером k (строки нумеруются от 0). Если строки с таким номером нет, то оставить файл без изменений.

  10. Дано число k и текстовый файл. Вставить пустую строку перед1|после2 строки с номером k (строки нумеруются от 0). Если строки с таким номером нет, то оставить файл без изменений.

  11. Дан текстовый файл. Удалить из него пустые строки.

  12. Дана строка S и текстовый файл. Заменить в файле все пустые строки на строку S.

  13. Дан текстовый файл. Заменить в нем все подряд идущие пробелы на один пробел.

  14. Дан текстовый файл, содержащий текст, выровненный по левому краю. Выровнять его по [правому краю]1|центру2, добавив в начало каждой непустой строки необходимое количество пробелов (ширину текста считать равной 50). Строки нечетной длины перед центрированием дополнять слева пробелом.

  15. Дан текстовый файл, содержащий текст, выровненный по левому краю. Абзацы текста разделяются одной пустой строкой. Выровнять текст по ширине (то есть и по левому, и по правому краю), увеличив в каждой непустой строке (кроме последних строк абзацев) количество пробелов между словами, начиная с первого1|последнего2 пробела в строке (ширину текста считать равной 50).

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

  17. Дан текстовый файл. Найти количество абзацев в тексте, если каждый абзац начинается с красной строки (5 пробелов). Пустые строки между абзацами не учитывать.

  18. Дан текстовый файл. Абзацы выделяются в нем с помощью красной строки (5 пробелов), а пустых строк нет. Вставить между соседними абзацами по пустой строке.

  19. Дан текстовый файл. Создать новый файл, содержащий все знаки препинания, встретившиеся в текстовом файле (в том же порядке).

  20. Дан текстовый файл. Вывести первое1|последнее2 слово текста наибольшей длины (с учетом знаков препинания, расположенных в начале и в конце слов).

  21. Дано целое число N и текстовый файл. Создать новый файл, содержащий все слова длины N из исходного файла (знаки препинания, расположенные в начале и в конце слов, не учитывать). Если исходный файл не содержит слов длины N, оставить результирующий файл пустым.

  22. Дан символ C (прописная русская буква) и текстовый файл. Создать строковый файл, содержащий все слова из исходного файла, начинающиеся1|оканчивающиеся2 этой буквой (как прописной, так и строчной). Знаки препинания, расположенные в начале и в конце слов, не учитывать. Если исходный файл не содержит подходящих слов, оставить результирующий файл пустым.

  23. Дано число N и текстовый файл. Удалить из файла абзац с номером N (абзацы отделяются друг от друга одной или несколькими пустыми строками и нумеруются от 1). Пустые строки, предшествующие и следующие за удаляемым абзацем, не удалять. Если абзац с данным номером отсутствует, то оставить файл без изменений.

  24. Дано число N и текстовый файл. Удалить из файла абзац с номером N (абзацы выделяются с помощью красной строки (5 пробелов) и нумеруются от 1). Пустые строки между абзацами не учитывать и не удалять. Если абзац с данным номером отсутствует, то оставить файл без изменений.

  25. Дан текстовый файл, каждая строка которого изображает целое число, дополненное слева и справа несколькими пробелами. Вывести сумму этих чисел и их количество.

  26. Дан текстовый файл, каждая строка которого изображает целое или вещественное число, дополненное слева и справа несколькими пробелами (вещественные числа имеют ненулевую дробную часть). Вывести сумму целых1|вещественных2 чисел и их количество.

  27. Дан текстовый файл, каждая строка которого содержит изображения нескольких вещественных чисел, разделенных пробелами. Создать файл вещественных чисел, содержащий эти числа в том же порядке.

  28. Даны два текстовых файла с именами Name1 и Name2. Добавить в начало1|конец2 каждой строки файла Name1 соответствующую строку файла Name2. Если файл Name2 короче файла Name1, то оставшиеся строки файла Name1 не изменять.

  29. Дан текстовый файл NameT и файл целых чисел NameN. Добавить в начало1|конец2 каждой строки файла NameT изображение соответствующего числа из файла NameN. Если файл NameN короче файла NameT, то оставшиеся строки файла NameT не изменять.

  30. Дан текстовый файл с именем NameT. В каждой его строке первые 60 позиций отводятся под текст, а оставшаяся часть — под вещественное число. Создать два файла: строковый файл с именем NameS, содержащий текстовую часть исходного файла, и файл вещественных чисел с именем NameR, содержащий числа из исходного файла.

  31. Даны два файла целых чисел одного размера с именами Name1 и Name2. Создать текстовый файл с именем NameT, содержащий изображения этих чисел, расположенные в два столбца шириной по 30 символов: первый содержит числа из файла Name1, второй — из файла Name2. В начале и конце каждой строки текстового файла ввести разделитель " | " (код 124). Числа выравниваются по левому1|правому2 краю столбца.

  32. Даны вещественные числа AB и целое число N. Создать текстовый файл, содержащий таблицу значений функции f(x) = [sin(x)]1|[cos(x)]2|[exp(x)]3 на промежутке [A, B] с шагом
    (
    BA)/N. Таблица состоит из двух столбцов: с аргументами x (10 позиций, из них 3 под дробную часть) и со значениями f(x) (15 позиций, из них 8 под дробную часть). Столбцы выравниваются по правому краю и разделяются 10 пробелами.

  33. Дан текстовый файл с именем NameT, содержащий таблицу из трех столбцов вещественных чисел. Ширина столбцов таблицы и способ их выравнивания являются произвольными. Специальных символов-разделителей таблица не содержит. Создать файлы вещественных чисел с именами Name1, Name2 и Name3, каждый из которых содержит числа из соответствующего столбца таблицы.

  34. Дан текстовый файл, представляющий собой таблицу, состоящую из трех столбцов с целыми числами. В начале и в конце каждой строки таблицы, а также между ее столбцами располагается символ-разделитель. Ширина столбцов таблицы и способ их выравнивания являются произвольными. Создать файл целых чисел, содержащий сумму чисел из каждой строки исходной таблицы.

  35. Дан текстовый файл. Создать новый файл, содержащий все символы, встретившиеся в тексте, включая пробел и знаки препинания (без повторений). Символы располагать в порядке [возрастания их кодов]1|[убывания их кодов]2|[их первого появления в тексте]3.

  36. Дан текстовый файл с именем NameT. Подсчитать число повторений в нем строчных русских букв ("а"—"я") и создать строковый файл с именем NameS, элементы которого имеют вид: «<буква>—<число повторений данной буквы>». Буквы, отсутствующие в тексте, в файл не включать. Строки упорядочить по [возрастанию кодов букв]1|[убыванию числа повторений букв, а при равном числе повторений — по возрастанию кодов букв]2.

  37. Дано целое число N и текстовый файл с именем Name1, содержащий один абзац текста, выровненный по левому краю. Отформатировать текст так, чтобы его ширина не превосходила N позиций, и выровнять текст по левому1|правому2 краю. Пробелы в конце строк удалить. Сохранить отформатированный текст в новом текстовом файле с именем Name2.

  38. Дано целое число N и текстовый файл Name1, содержащий текст, выровненный по левому краю. Абзацы текста отделяются друг от друга одной пустой строкой. Отформатировать текст так, чтобы его ширина не превосходила N позиций, и выровнять текст по левому1|правому2 краю, сохранив деление на абзацы. Пробелы в конце строк удалить. Сохранить отформатированный текст в новом текстовом файле Name2.

  39. Дана строка K, состоящая из 10 цифр, и файл с русским текстом. Зашифровать файл, выполнив циклическую замену каждой русской буквы, стоящей на i-й позиции строки, на букву того же регистра, расположенную в алфавите на K[i]-м месте после шифруемой буквы (символы строки K также перебираются циклически: для i = 11 снова используется смещение K[1] и т.д.). Букву ‘ё’ в алфавите не учитывать, знаки препинания и пробелы не изменять.

  40. Дана строка  S1 и файл с русским текстом, зашифрованным по правилу, описанному в задании 39. Строка S1 представляет собой первую расшифрованную строку текста. Расшифровать остальные строки и заменить в файле зашифрованный текст на расшифрованный. Если информации для расшифровки недостаточно, то исходный файл не изменять.

  41. Прочитать текстовый файл. На отдельной форме вывести информацию о количестве слов, состоящих из одного символа, двух символов и т.д.

  42. Прочитать текстовый файл. На отдельной форме вывести словарь, используемых слов с указанием частоты их использования.

  43. Прочитать текстовый файл. На отдельной форме вывести текст, из которого удалены незначащие пробелы.

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

  45. Прочитать текстовый файл. Реализовать функцию замены одного слова на другое.

  46. Написать программу для кодирования и декодирования текстового файла с помощью слова-пароля.

  47. Прочитать текстовый файл. На отдельной форме вывести текст, в котором все слова из латинских символов и цифр выделены другим цветом.

  48. Прочитать текстовый файл. На отдельной форме вывести тот же текст, но в котором все числа записаны словами.

  49. В текстовом файле записан английский /немецкий текст. Необходимо выделять сплошной фрагмент текста и определять, все ли буквы латинского алфавита в нём задействованы, отметить незадействованные.

  50. Прочитать текстовый файл, в котором хранятся статьи уголовного кодекса. Разбить весь текст на отдельные статьи, если известно, что признаком начала статьи является предложение, состоящее из слова <Статья>, за которым следует номер статьи с точкой, написанное в начале строки.

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

  52. Прочитать текстовый файл, в котором хранятся одна статья уголовного кодекса, состоящая из одного единственного пункта. Отделить от этой статьи санкцию, если известно, что она начинается со слов <наказывается> или <наказываются>.

  53. Описать функцию getInt(Name, k) целого типа, возвращающую k-й элемент файла целых чисел с именем Name (элементы нумеруются от 0). Если файл не существует или не содержит k-го элемента, то функция возвращает 0. С помощью этой функции вывести пять элементов данного файла с указанными номерами.

  54. Описать функцию getLine(Name, k) строкового типа, возвращающую k-ю строку текстового файла с именем Name (строки нумеруются от 0). Если файл не существует или не содержит k-й строки, то функция возвращает пустую строку. С помощью этой функции вывести пять строк данного файла с указанными номерами.

  55. Описать функцию IntFileSize(Name) целого типа, возвращающую размер файла целых чисел с именем Name. Если файл не существует, то функция возвращает –1. С помощью этой функции определить размер трех файлов с данными именами.

  56. Описать функцию TextSize(Name) целого типа, возвращающую число строк в текстовом файле с именем Name. Если файл не существует, то функция возвращает –1. С помощью этой функции определить размер трех файлов с данными именами.

  57. Описать процедуру InvertIntFile(Name), меняющую порядок следования элементов файла целого типа с именем Name на противоположный. Если файл не существует или содержит менее двух элементов, то процедура не выполняет никаких действий. Обработать с помощью этой процедуры три файла с данными именами.

  58. Описать процедуру SplitIntFile(Name0, k, Name1, Name2), копирующую первые k (>= 0) элементов существующего файла целых чисел с именем Name0 в файл Name1, а остальные элементы — в файл Name2 (прежнее содержимое результирующих файлов стирается). Один из результирующих файлов может оказаться пустым. Применить эту процедуру к файлу Name0, используя указанные значения Name1, Name2 и k.

  59. Описать процедуру SplitText(Name0, k, Name1, Name2), копирующую первые k (>= 0) строк существующего текстового файла с именем Name0 в файл Name1, а остальные элементы — в файл Name2 (прежнее содержимое результирующих файлов стирается). Один из результирующих файлов может оказаться пустым. Применить эту процедуру к файлу Name0, используя указанные значения Name1, Name2 и k.

  60. Описать процедуру ConcatFile(NameA, NameB, NameAB), позволяющую объединить содержимое двух двоичных файлов NameA и NameB одного и того же типа в новом файле NameAB. Использовать процедуры BlockRead и BlockWrite. Применить эту процедуру к парам исходных файлов Name1Name2, Name1Name3 и Name2Name3, создав файлы с именами Name12, Name13, Name23.

  61. Описать процедуру StringFileToText(Name)1 или TextToStringFile(Name)2, преобразующую  [двоичный строковый]1 или текстовый2 файл с именем Name в текстовый1 или [двоичный строковый]2 файл с тем же именем. Используя эту процедуру, преобразовать два данных строковых1|текстовых2 файла с именами Name1 и Name2 в текстовые1|строковые2.

  62. Описать процедуру CodeText(Name, k), шифрующую текстовый файл с именем Name, выполняя циклическую замену каждой русской буквы на букву, расположенную в алфавите на k-й позиции после исходной (0 < k < 11). Например, при k = 3 "А" перейдет в "Г", "а" — в "г", "Я" — в "В". Букву "ё" в алфавите не учитывать, прочие символы файла не изменять. Используя эту процедуру и зная k, зашифровать1|расшифровать2 данный файл.

  63. Дан  текстовый  файл,  содержащий  целые  числа.  Найти  максимальное  число  в  каждой  строке  файла.  Найденные  числа  записать  в  новый   текстовый   файл  по  одному  в  строке.

  64. Дан  текстовый  файл,  содержащий  строки.   Создать  новый  текстовый  файл,  в  каждой  строке  которого  записать  два  числа:  количество  запятых  и  количество  точек  в  соответствующей  строке  исходного  файла.

  65. Дан  текстовый  файл,  содержащий  целые  числа.  Найти  количество  отрицательных  чисел  в  каждой  строке  файла.  Найденные  числа  записать  в  новый   текстовый   файл  по  одному  в  строке. 

  66. Дан  текстовый  файл, в первой строке которого записаны два числа n и m (m>n), а в следующих строках — прямоугольная таблица целых чисел размером n×m. Заполнить целочисленный массив размером n×m числами из этой таблицы. В каждой строке массива удалить элемент, номер которого равен номеру соответствующей строки. Полученный массив записать в новый текстовый файл.

  67. Дан текстовый файл, содержащий целые числа, количество которых кратно 3. Записать в новый текстовый файл все числа исходного файла по три числа в строке.


Типизированные и нетипизированные файлы

  1. Дана строка S. Если S является допустимым именем файла, то вывести True и создать файл с этим именем. Если файл с именем S создать нельзя, то вывести False.

  2. Даны имена четырех файлов. Вывести количество файлов с указанными именами, которые имеются в текущем каталоге.

  3. Дано имя файла целых чисел. Вывести количество его элементов. Если файла с таким именем не существует, то вывести –1.

  4. Дано число k и файл, содержащий ненулевые целые числа. Вывести элемент файла с номером k (элементы файла нумеруются от нуля). Если такой элемент отсутствует, то вывести 0.

  5. Дан файл целых чисел, содержащий не менее четырех элементов. Вывести его нулевой, первый, предпоследний и последний элементы.

  6. Даны имена двух файлов вещественных чисел. Известно, что один из них существует и содержит не менее двух элементов, а другой в текущем каталоге отсутствует. Создать отсутствующий файл и записать в него нулевой и последний элементы существующего файла.

  7. Дан файл целых чисел. Вывести количество содержащихся в нем серий (то есть наборов последовательно расположенных одинаковых элементов).

  8. Дан файл вещественных чисел. Найти количество его локальных минимумов1|максимумов2|экстремумов3.

  9. Дан файл вещественных чисел. Найти количество его участков убывания1|возрастания2|монотонности3.

  10. Даны два файла произвольного типа. С помощью процедуры Rename поменять местами их содержимое.

  11. Дан файл произвольного типа. С помощью процедур BlockRead и BlockWrite создать его копию с новым именем.

  12. Дано целое число N (< 5) и N файлов одного и того же типа с именами Name1, ..., Name5. С помощью процедур BlockRead и BlockWrite объединить содержимое этих файлов (в указанном порядке) в новом файле с именем Name0.

  13. Даны два файла одного и того же типа. С помощью процедур BlockRead и BlockWrite добавить к первому файлу содержимое второго файла, а ко второму файлу — содержимое первого.

  14. Даны три файла одного и того же типа, но разного размера. С помощью процедур BlockRead и BlockWrite заменить содержимое самого длинного1|короткого2 файла на содержимое самого короткого1|длинного2.

  15. Дан файл целых чисел. Создать новый файл, содержащий те же элементы, что и исходный файл, но в обратном порядке.

  16. Даны три файла целых чисел одинакового размера с именами NameA, NameB и NameC. Создать новый файл с именем NameD, в котором чередовались бы элементы исходных файлов с одним и тем же номером: A0, B0, C0, A1, B1, C1, A2, B2, C2, ... .

  17. Даны четыре файла целых чисел разного размера с именами NameA, NameB, NameC и NameD. Создать новый файл с именем NameE, в котором чередовались бы элементы исходных файлов с одним и тем же номером (как в задании 16). "Лишние" элементы более длинных файлов в результирующий файл не записывать.

  18. Дан файл вещественных чисел с именем Name1. Создать два новых файла с именами Name2 и Name3, первый из которых содержит элементы исходного файла с четными номерами (0, 2, 4, ...), а второй — с нечетными (1, 3, 5, ...).

  19. Дан файл, содержащий ненулевые целые числа. Создать новый файл, содержащий только положительные1|отрицательные2|четные3|нечетные4 числа исходного файла (в том же порядке).

  20. Дан файл целых чисел. Создать новый файл, содержащий длины всех серий исходного файла.

  21. Дан файл вещественных чисел. Создать файл целых чисел, содержащий длины всех убывающих1|возрастающих2|монотонных3 последовательностей его элементов.

  22. Дан файл вещественных чисел. Заменить в нем все элементы на их квадраты.

  23. Дан файл вещественных чисел. Заменить в файле каждый элемент, кроме начального и последнего, на его среднее арифметическое с предыдущим и последующим элементом.

  24. Дан файл целых чисел с элементами A(i), i = 0, ..., N–1 (N — размер файла). Заменить исходное расположение его элементов на следующее: A(0), A(N–1), A(1), A(N–2), A(2), ... .

  25. Дан файл целых чисел. Если его размер меньше 50, то дополнить его нулями до 50 элементов; если его размер больше 50, то урезать его до 50 элементов.

  26. Дан файл целых чисел. Удалить в нем все положительные1|отрицательные2|четные3|нечетные4 числа.

  27. Дан файл целых чисел. Продублировать в нем все числа, принадлежащие диапазону 5..10.

  28. Дан файл, содержащий ненулевые целые числа. Заменить в нем все положительные1|отрицательные2|четные3|нечетные4 числа двумя нулями.

  29. Дан файл вещественных чисел. Поменять в нем местами минимальный и максимальный элементы.

  30. Даны два файла вещественных чисел с именами Name1 и Name2, элементы которых упорядочены по возрастанию1|убыванию2. Объединить эти файлы в новый файл с именем Name3, сохранив упорядоченность элементов.

  31. Даны два целых числа i и j и файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам). Вывести элемент матрицы, расположенный в i-й строке и j-м столбце (строки и столбцы нумеруются от 1). Если требуемый элемент отсутствует, то вывести 0.

  32. Даны два целых числа i и j и файл вещественных чисел, содержащий элементы прямоугольной матрицы (по строкам), причем начальный элемент файла содержит количество столбцов матрицы. Вывести элемент матрицы, расположенный в i-й строке и j-м столбце (строки и столбцы нумеруются от 1). Если требуемый элемент отсутствует, то вывести 0.

  33. Дан файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам). Создать файл, содержащий элементы матрицы, транспонированной к исходной.

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

  35. Даны два файла вещественных чисел с именами NameA и NameB, содержащие элементы квадратных матриц A и B (по строкам). Создать новый файл с именем NameC, содержащий элементы произведения A·B. Если матрицы A и B нельзя перемножать, то оставить файл NameC пустым.

  36. Даны два файла вещественных чисел с именами NameA и NameB, содержащие элементы прямоугольных матриц A и B (по строкам), причем начальный элемент каждого файла содержит количество столбцов соответствующей матрицы. Создать файл той же структуры с именем NameC, содержащий произведение A·B. Если матрицы A и B нельзя перемножать, то оставить файл NameC пустым.

  37. Дан файл вещественных чисел, содержащий элементы [верхней треугольной]1|[нижней треугольной]2|трехдиагональной3 матрицы (по строкам). Создать новый файл, содержащий элементы ненулевой части данной матрицы (по строкам).

  38. Даны два целых числа i и j и файл вещественных чисел, содержащий ненулевую часть [верхней треугольной]1|[нижней треугольной]2|трехдиагональной3 матрицы (по строкам). Вывести порядок матрицы и ее элемент, расположенный в i-й строке и j-м столбце (строки и столбцы нумеруются от 1). Если требуемый элемент находится в нулевой части матрицы, то вывести 0; если элемент отсутствует, то вывести –1.

  39. Дан файл вещественных чисел, содержащий ненулевую часть [верхней треугольной]1|[нижней треугольной]2|трехдиагональной3 матрицы (по строкам). Создать новый файл, содержащий все элементы данной матрицы (по строкам).

  40. Даны два файла вещественных чисел с именами NameA и NameB, содержащие ненулевые части [верхних треугольных]1|[нижних треугольных]2 матриц A и B (по строкам). Создать новый файл с именем NameC, содержащий ненулевую часть произведения A·B исходных матриц (по строкам). Если матрицы A и B нельзя перемножать, то оставить файл NameC пустым.

  41. Дано целое число N (< 5) и N файлов целых чисел разного размера с именами Name1,..., Name. Объединить их содержимое в новом файле целых чисел с именем Name0, используя следующий формат: в начальном элементе файла Name0 хранится число N, в следующих N элементах хранятся размеры исходных файлов, а затем последовательно размещаются данные из каждого исходного файла.

  42. Дан файл целых чисел, содержащий данные из нескольких (не более четырех) файлов в формате, описанном в задании 41. Восстановить файлы, использованные при создании исходного файла, присвоив им имена вида «<n>.tst», где <n> — порядковый номер файла (n = 1, 2, ...).

  43. Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы, расположенные после первого1|последнего2 символа пробела, включая и сам этот пробел.

  44. Дан символьный файл, содержащий по крайней мере один символ пробела. Удалить все его элементы, расположенные перед первым1|последним2 символом пробела, включая и сам этот пробел.

  45. Дан символьный файл. Упорядочить его элементы по возрастанию1|убыванию2 их кодов.

  46. Дано число k и строковый файл с именем Name1, содержащий непустые строки. Создать два новых файла: строковый с именем Name2, содержащий первые1|последние2 k символов каждой строки исходного файла (если строка короче k символов, то она сохраняется целиком), и символьный с именем Name3, содержащий k-й символ каждой строки (если строка короче k, то в файл Name3 записывается пробел).

  47. Дан строковый файл, содержащий непустые строки. Создать новый файл, содержащий все строки исходного файла наименьшей1|наибольшей2 длины (в том же порядке).

  48. Дан строковый файл с именем NameS, содержащий даты в формате "день/месяц/год", причем под день и месяц отводится по две позиции, а под год — четыре. Создать файлы целых чисел с именами Name1 и Name2, содержащие соответственно значения [дней и месяцев]1|[дней и лет]2|[месяцев и лет]3 для дат из исходного строкового файла (в том же порядке).

  49. Дан строковый файл, содержащий даты в формате "день/месяц/год", причем под день и месяц отводится по две позиции, а под год — четыре. Вывести строку, содержащую самую раннюю1|позднюю2 весеннюю3|летнюю4|осеннюю5|зимнюю6 дату. Если даты с требуемым временем года в файле отсутствуют, то вывести дату "01/01/1900".

  50. Дан строковый файл, содержащий даты в формате "день/месяц/год", причем под день и месяц отводится по две позиции, а под год — четыре. Создать новый строковый файл, в котором даты из исходного файла располагались бы в порядке возрастания1|убывания2.