Skip to content

МАИ. Первый семестр Фундаментальных Алгоритмов

Notifications You must be signed in to change notification settings

NickZaitsev/FundamentalAlgorithmsSem1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

МАИ. Первый семестр Фундаментальных Алгоритмов

Задания к работе №1 по фундаментальным алгоритмам (2022-2023 уч. г.).

  1. Через аргументы командной строки пользователь вводит целое положительное число и флаг, определяющий действие с этим числом. Флаг начинается с символа “-” или “/”. Программа распознаёт следующие флаги: i) -h вывести в консоль числа в пределах 100, кратные введённому. Если таковых нету – вывести соответствующее сообщение; ii) -p определить, является ли введённое число простым или составным; iii)-s разделяет число на отдельные цифры и выводит отдельно каждую цифру, разделяя их пробелом; iv) -e вывести в консоль числа от 1 до 10, возводя их во все степени от 1 до заданного числа (для этого флага работает ограничение на вводимое число: оно должно быть не больше 10); v) -a суммирует все числа от 1 до указанного числа включительно; vi) -f вычисляет факториал введенного числа.
  2. Через аргументы командной строки в программу подается флаг, который определяет действие, и набор чисел. Флаг начинается с символа “-” или “/”. Необходимо проверять соответствие количества параметров введенному флагу. Программа распознаёт следующие флаги: i) -q вводимые три параметра являются коэффициентами квадратного уравнения, необходимо вывести решения этого уравнения при всевозможных значениях параметров; ii) -m необходимо задать два ненулевых целых числа, после чего определить, кратно ли первое число второму; iii)-t считывает 3 ненулевых значения и проверяет, могут ли они быть сторонами прямоугольного треугольника.
  3. На вход программе, через аргументы командной строки, подается флаг и путь к файлу. Флаг определяет действие с входным файлом. Флаг начинается с символа “-” или “/”. Если флаг содержит символ “n” (то есть nd, ni, ns, na), то результат сохраняется в файл, имя которого является третьим аргументом. Если этого аргумента нет, то имя выходного файла генерируется приписыванием к имени входного файла префикса “out_”. Программа распознает следующие флаги: i) -d необходимо исключить символы цифр из файла; ii) -i необходимо в выходной файл написать, сколько раз в каждой строке встречаются символы букв; iii)-s необходимо в выходной файл написать, сколько раз в каждой строке встречаются символы, отличные от символов цифр, символов букв и символа пробела; iv) -a необходимо заменить символы, отличные от цифр, их строковым представлением ASCII-кода; v) -f создать выходной файл таким образом, чтобы в каждой в каждой второй лексеме все буквы были переписаны в строчные, а также в каждой пятой лексеме все символы были заменены на эквивалентные им ASCII-коды.
  4. Дан файл, содержащий некоторую информацию, которая представлена в трех столбцах (каждая строка файла содержит три лексемы). Необходимо перезаписать этот файл таким образом, чтобы первый столбец стоял на месте второго, второй – на месте третьего, а третий – на месте первого.
  5. На вход программе подается 𝑁 файлов. Способ передачи этих файлов определяется аргументом командной строки: i) -fi <file_name> в текстовом файле с указанным именем содержится список имен файлов с исходными данными; ii) -сin список файлов необходимо считать из стандартного потока ввода, то есть имена файлов, в которых содержатся данные, вводит пользователь; iii)-arg все имена файлов передаются через аргументы командной строки. Из полученных файлов ваша программа должна создать новый файл, в который записываются поочерёдно символы из переданных файлов.
  6. В текстовом файле находятся числа, записанные в разных системах счисления, при этом информация о конкретной системе счисления для каждого числа утеряна. В файле числа разделены произвольным количеством разделителей (разделителями могут являться символы пробела, табуляции, переноса строки). Напишете программу, которая для каждого числа определяет минимальную систему счисления, в которой представление этого числа корректно, и в выходной файл выводит число, определённую для него систему счисления и представление этого числа в десятичной системе счисления.
  7. Заполнить массив фиксированного размера случайными числами. Реализовать поиск максимального и минимального элементов, поменять местами максимальный и минимальный элементы массива.
  8. Из файла считывается числовой массив, размерность которого не превосходит 128 элементов. В зависимости от выбора пользователя перепишите в новый массив: a) числа, стоящие на нечётных позициях; b) чётные числа; c) для текущего элемента: наиболее далёкое (по значению) от него значение из этого же массива; d) для текущего элемента: сумму элементов, которые ему предшествуют; e) для текущего элемента: сумму элементов, которые меньше него. Значение индекса текущего элемента для пунктов c-e должно быть получено из стандартного потока ввода.
  9. Пользователь вводит систему счисления (в диапазоне [2..36]) и затем числа в этой системе счисления. Окончанием ввода является ввод лексемы “Stop”. Найдите среди введённых чисел максимальное по модулю. Выведите на консоль значение найденного максимального по модулю числа в системах счисления с основаниями 9, 18, 27, 36.
  10. Реализуйте следующий функционал: a) Реализуйте функцию генерации матрицы произвольных размеров (диапазон числа строк/столбцов: [1..10]) с произвольными значениями (диапазон значений элементов: [-100..100]). Функцию необходимо реализовать таким образом, чтобы в контексте её вызова была возможность корректного освобождения динамической памяти. b) Реализуйте функцию умножения матриц и выведите результат умножения двух сгенерированных матриц в стандартный поток вывода. c) Реализуйте функцию нахождения определителя матрицы и выведите значения определителей матриц, сгенерированных в пункте b). В случае, если операция невозможна, то необходимо вывести сообщение об ошибке. При завершении работы программы необходимо корректно освободить всю выделенную динамическую память.

About

МАИ. Первый семестр Фундаментальных Алгоритмов

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published