Лаб. Занятие 10. Обязательные задания для решения в классе.
Лаб. Занятие 10. Обязательные задания для решения в классе [3 балла]
Задание 10.0
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла вычисляет среднее арифметическое. Каждый файл должен обрабатываться в отдельном потоке. Основной поток должен по окончании обработки выводить результаты. Файлы текстовые, числа разделены пробелами. Посчитайте среднее арифметическое с помощью написанных программ для следующих файлов.
Задание 10.1
Напишите программу, которая получает в качестве аргументов 2 имени файла. В каждом файле в текстовом виде содержатся массивы одинаковой длины. Посчитайте вектор суммы и вектор разности для заданных в файлах массивов. Поиск суммы и разности должен обрабатываться в разных потоках. Основной поток по окончании обработки должен записать результаты в новые файлы. Все файлы текстовые, числа разделены пробелами. Проверьте, как работают написанные программы для следующих файлов.
Задание 10.2
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла сортирует по алфавиту отдельно четные строки текста и нечетные. Каждый файл должен обрабатываться в отдельном потоке. По окончании обработки основной поток должен выводить результаты в файлы с отсортированными четными строками и с нечетными. Файлы текстовые, строки заканчиваются символом '\n'. Проверьте работу написанных программ для следующих файлов.
Задание 10.3
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла определяющую самую длинную строку в заданном файле. Если таких строк несколько, то в качестве результата выдать первую из них. Каждый файл должен обрабатываться в отдельном потоке. По окончании обработки основной поток должен выводить результаты на стандартный поток вывода. Проверьте работу написанных программ для следующих файлов.
Задание 10.4
Напишите программу, которая получает в качестве аргументов 2 имени файла. В каждом файле в текстовом виде содержатся массивы. Необходимо найти максимум и минимум для массивов. Поиск для каждого массива должен обрабатываться в отдельном потоке. Основной поток по окончании обработки должен выдать в стандартный поток вывода найденные значения. Все файлы текстовые, числа разделены пробелами. Проверьте, как работают написанные программы для следующих файлов.
Задание 10.5
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла считает количество слов отдельно в четных строках текста и в нечетных. Каждый файл должен обрабатываться в отдельном потоке. По окончании обработки основной поток должен вывести результаты подсчетов в стандартный поток вывода. Файлы текстовые, строки заканчиваются символом '\n'. Проверьте работу написанных программ для следующих файлов.
Задание 10.6
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла выполняет следующие действия: считывает по строкам; если длина строки >N, то строка разбивается на несколько строк так, что длина каждой из новых строк <=N. Если длина считанной исходной строки <=N, то она записывается в файл результата без изменений. Каждый файл должен обрабатываться в отдельном потоке. По окончании обработки должно получиться столько же новых файлов, сколько было аргументов. Файлы текстовые, строки заканчиваются символом '\n'. Проверьте работу написанных программ для следующих файлов.
Задание 10.7
Напишите программу, которая получает в качестве аргументов 2 имени файла. В каждом файле в текстовом виде содержатся массивы. Необходимо проанализировать, есть ли в массивах повторяющиеся элементы. Поиск для каждого массива должен обрабатываться в отдельном потоке. Основной поток по окончании обработки должен выдать в стандартный поток вывода сообщение об уникальности всех элементов массива либо о наличии повторяющихся. Все файлы текстовые, числа разделены пробелами. Проверьте, как работают написанные программы для следующих файлов.
Задание 10.8
Напишите программу, которая получает в качестве аргументов 2 имени файла. В каждом файле в текстовом виде содержатся массивы одинаковой длины. Необходимо найти скалярное произведение этих массивов. Для ускорения обработки разбейте обработку массивов на несколько потоков. Основной процесс по окончании обработки должен выдать в стандартный поток вывода значение скалярного произведения. Все файлы текстовые, числа разделены пробелами. Проверьте, как работают написанные программы для следующих файлов.
Задание 10.9
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла определяет самую короткую строку (отличную от пустой, т. е. в строке содержится по меньшей мере один символ помимо '\n') в заданном файле. Если таких строк несколько, то в качестве результата выдать первую из них. Каждый файл должен обрабатываться в отдельном потоке. По окончании обработки основной поток должен вывести результаты (самую короткую строку для каждого файла) на стандартный поток вывода. Проверьте работу написанных программ для следующих файлов.
Задание 10.a
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла выполняет следующие действия: считывает 100 значений, интерпретируя их, как матрицу 10х10, и суммирует с предыдущими матрицами. В результате исходный файл должен конвертироваться в единственную матрицу, являющуюся суммой всех. Каждый файл должен обрабатываться в отдельном потоке. По окончании обработки следует выводить результаты (матрицу-сумму для каждого файла) на стандартный поток вывода. Проверьте работу написанных программ для следующих файлов.
Задание 10.b
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла выполняет следующие действия: считывает из файла по 100 значений, интерпретируя их, как матрицу 10х10, и находит в этой матрице диагональные элементы (главной диагонали). В результате исходный файл должен конвертироваться в матрицу, в строках которой расположены найденные диагонали исходных матриц. Каждый файл должен обрабатываться в отдельном потоке. По окончании обработки следует выводить результаты (полученную для каждого файла новую матрицу) на стандартный поток вывода. Проверьте работу написанных программ для следующих файлов.
Задание 10.c
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла выполняет следующие действия: считывает по 100 значений, и находит максимум среди них. В результате исходный файл должен конвертироваться в массив из 10-ти найденных максимумов. Каждый файл должен обрабатываться в отдельном потоке. По окончании обработки следует выводить результаты (массив максимумов для каждого файла) на стандартный поток вывода. Проверьте работу написанных программ для следующих файлов.
Задание 10.d
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла выполняет следующие действия: считывает из файла по 100 значений, и находит в этом наборе минимальное значение. В результате исходный файл должен конвертироваться в массив, содержащий 10 найденных минимумов. Каждый файл должен обрабатываться в отдельном потоке. По окончании обработки следует выводить результаты (найденный массив минимумов) на стандартный поток вывода. Проверьте работу написанных программ для следующих файлов.
Задание 10.e
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла выполняет следующие действия: считывает из файла по 100 значений, интерпретируя их, как матрицу 10х10, и находит в этой матрице диагональные элементы (главной диагонали) и обнуляет их. В результате исходный файл должен конвертироваться в новый файл, состоящий из матриц размера 10х10 с нулевыми диагональными элементами. Каждый файл должен обрабатываться в отдельном потоке. Проверьте работу написанных программ для следующих файлов.
Задание 10.f
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла определяет число строк и самую длинную строку в файле. Если строк максимальной длины несколько, то в качестве результата следует выдать последнюю из них. Каждый файл должен обрабатываться в отдельном потоке. По окончании обработки основной поток должен вывести результаты (кол-во строк и строку максимальной длины) на стандартный поток вывода. Проверьте работу написанных программ для следующих файлов.
Задание 10.g
Напишите программу, которая получает в качестве аргументов 2 имени файла. В каждом файле в текстовом виде содержатся массивы одинаковой длины. Посчитайте вектор суммы, вектор разности, вектор произведения и вектор частного от деления для заданных в файлах массивов. Поиск суммы, разности, произведения и деления должен обрабатываться в разных потоках. Основной поток по окончании обработки должен записать результаты в новые файлы. Все файлы текстовые, числа разделены пробелами. Проверьте, как работают написанные программы для следующих файлов.
Задание 10.h
Напишите программу, которая получает в качестве аргументов несколько имен файлов и для каждого файла зашифровывает содержимое, каждый символ преобразуется в другой добавлением некоторого числа, которое задается в списке аргументов командной строки. Результат записывается в файлы. Каждый файл должен обрабатываться в отдельном потоке. Проверьте работу написанных программ для следующих файлов.
Задание 10.i
Напишите программу, которая получает в качестве аргументов несколько имен файлов и переписывает содержимое этих файлов построчно в обратном порядке. Файлы текстовые, строки заканчиваются символом '\n'. Каждый файл должен обрабатываться в отдельном потоке. Проверьте работу написанных программ для следующих файлов.
Задание 10.j
Напишите программу, которая получает в качестве аргументов несколько имен файлов/ В каждом файле записаны числа, разделенные пробелом. Каждое число интерпретируется как код символа и собирается в строку. Каждый файл должен обрабатываться в отдельном потоке. По окончании обработки основной поток должен вывести результаты (полученную строку) на стандартный поток вывода. Подготовьте фалы для проверки самостоятельно.
Задание 10.k
Напишите программу, которая получает в качестве аргументов 2 имени файла. Необходимо проанализировать строки данного файла и найти строку, в которой максимальное количество раз содержится заданный символ. Символ задается в списке аргументов командной строки. Поиск для каждого файла должен обрабатываться в отдельном потоке. Файлы текстовые, строки заканчиваются символом '\n'. Основной поток по окончании обработки должен выдать в стандартный поток результат работы: саму строку, ее порядковый номер и количество заданного символа в ней. Проверьте работу написанных программ для следующих файлов.
Задание 10.l
Напишите программу, которая получает в качестве аргументов 2 имени файла. Необходимо проанализировать строки каждого файла и создать новые файлы, которые будут содержать все символы из начальных файлов, а также количество каждого символа. Каждый файл должен обрабатываться в отдельном потоке. По окончании обработки следует выводить результирующие файлы на стандартный поток вывода. Проверьте работу написанных программ для следующих файлов.