Файл: Отчет по учебной практике по профессиональному модулю пм 06 Сопровождение информационных систем.docx

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

Категория: Отчет по практике

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

Добавлен: 30.11.2023

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

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

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

Способы отслеживания ошибок в учетной информационной системе

  1. Общие сведения

  2. Индивидуальное задание

    1. Задание 1


Условие задачи представлено на рисунке 2.5.


Рисунок 2.5

Mayan Calculation

    using System;

    using System.Collections.Generic;

    using System.Linq;


    public class Solution

    {

        public class Number

        {

            public Number(long number, IList representation)

            {

                NumberInBase10 = number;

                matrix = representation;

            }
            public IList matrix { get; set; }
            public long NumberInBase10 { get; private set; }
            public string GetRepresentation()

            {

                return string.Concat(matrix);

            }

        }
        public static long GetNumber(int H, IList numbers)

        {

            var firstNumbersRep = new List();

            int S1 = int.Parse(Console.ReadLine());

            for (int i = 0; i < S1; i++)

            {

                firstNumbersRep.Add(Console.ReadLine());

            }
            var numberOfNumber = S1 / H;

            var calPuis = numberOfNumber - 1;

            var result = 0;

            for (int i = 0; i < numberOfNumber; i++)

            {

                var matrix = new List();

                for (int j = 0; j < H; j++)

                {

                    matrix.Add(string.Concat(firstNumbersRep[(i * H) + j] + Environment.NewLine));

                }

                result += Convert.ToInt32(numbers.Where(x => x.matrix.SequenceEqual(matrix)).First().NumberInBase10 * Math.Pow(20, calPuis--));

            }

            return Convert.ToInt32(result);

        }
        public static void Main(string[] args)

        {

            var numbers = new List();

            string[] inputs = Console.ReadLine().Split(' ');

            int L = int.Parse(inputs[0]);

            int H = int.Parse(inputs[1]);

            var listRepresentation = new List();

            for (int i = 0; i < H; i++)

            {

                listRepresentation.Add(Console.ReadLine());

            }
            var numberOfNumber = listRepresentation.First().Length / L;

            for (int i = 0; i < numberOfNumber; i++)

            {

                var matrix = new List();

                for (int j = 0; j < H; j++)

                {

                    matrix.Add(string.Concat(listRepresentation[j].Skip(i * L).Take(L)) + Environment.NewLine);

                }

                numbers.Add(new Number(i, matrix));

            }
            var first = GetNumber(H, numbers);
            var second = GetNumber(H, numbers);
            string operation = Console.ReadLine();

            long resultOperation = 0;
            switch (operation)

            {

                case "+":

                    resultOperation = first + second;

                    break;
                case "-":

                    resultOperation = first - second;

                    break;
                case "/":

                    resultOperation = first / second;

                    break;
                case "*":

                    resultOperation = first * second;

                    break;
                default:

                    break;

            }
            var resultBase20 = Encode(resultOperation, 20);

            foreach (var num in resultBase20)

            {

                Console.Write(numbers.Where(x => x.NumberInBase10 == num).First().GetRepresentation());

            }

        }
        private static IEnumerable Encode(long input, int baseToConvert)

        {

            if (input < 0) throw new ArgumentOutOfRangeException("input", input, "input cannot be negative");
            var result = new Stack();

            if (input == 0) result.Push(0);
            while (input != 0)

            {

                result.Push(input % baseToConvert);

                input /= baseToConvert;

            }

            return result;

        }

    }
        1. Задание 2


Условие задачи представлено на рисунке 2.6.


Рисунок 2.6

Gravity

   using System;
    public class Solution

    {

        public static void Main(string[] args)

        {

            string[] inputs = Console.ReadLine().Split(' ');

            int width = int.Parse(inputs[0]);

            int height = int.Parse(inputs[1]);

            var result = new int[width];
            for (int i = 0; i < height; i++)

            {

                var line = Console.ReadLine().ToCharArray();

                for (int j = 0; j < width; j++)

                {

                    if (line[j] == '#')

                    {

                        result[j] += 1;

                    }

                }

            }
            for (int i = 0; i < height; i++)

            {

                for (int j = 0; j < width; j++)

                {

                    if (result[j] >= height - i)

                    {

                        Console.Write("#");

                    }

                    else

                    {

                        Console.Write(".");

                    }

                }

               

                Console.WriteLine("");

            }

        }

    }

Сопровождение облачных информационных систем

  1. Отличия серверных и облачных технологий

    1. Общие сведения

    2. Индивидуальное задание

      1. Задание 1


Условие задачи представлено на рисунке 3.1.



Рисунок 3.1

Elementary cellular automaton

using System;

    using System.Collections.Generic;

    using System.Linq;

    using System.Text;
    public class Solution

    {

        private static string GetEvolution(string pattern, Dictionary neighborhoods)

        {

            var result = new StringBuilder();
            var neighborhoodFirstKey = pattern.Last() + string.Concat(pattern.Skip(0).Take(2));

            result.Append(neighborhoods[neighborhoodFirstKey].ToString());
            for (int i = 1; i < pattern.Length - 1; i++)

            {

                var neighborhoodKey = string.Concat(pattern.Skip(i - 1).Take(3));

                result.Append(neighborhoods[neighborhoodKey].ToString());

            }
            var neighborhoodLastKey = string.Concat(pattern.Skip(pattern.Length - 2).Take(2)) + pattern.First();

            result.Append(neighborhoods[neighborhoodLastKey].ToString());
            return result.ToString();

        }
        public static void Main(string[] args)

        {

            var wolframCode = Convert.ToString(int.Parse(Console.ReadLine()), 2).Replace('0', '.').Replace('1', '@').PadLeft(8, '.');

            var numberOfEvolution = int.Parse(Console.ReadLine());

            var pattern = Console.ReadLine();
            var neighborhoods = new Dictionary

        {

            { "@@@", wolframCode.ElementAt(0) },

            { "@@.", wolframCode.ElementAt(1) },

            { "@.@", wolframCode.ElementAt(2) },

            { "@..", wolframCode.ElementAt(3) },

            { ".@@", wolframCode.ElementAt(4) },

            { ".@.", wolframCode.ElementAt(5) },

            { "..@", wolframCode.ElementAt(6) },

            { "...", wolframCode.ElementAt(7) }

        };
            for (int i = 0; i < numberOfEvolution; i++)

            {

                Console.WriteLine(pattern);

                pattern = GetEvolution(pattern, neighborhoods);

            }

        }

    }
        1. Задание 2


Условие задачи представлено на рисунке 3.2.



Рисунок 3.2

Dwarfs standing on the shoulders of giants

using System;

    using System.Collections.Generic;

    using System.Linq;
    public class Solution

    {

        public static void Main(string[] args)

        {

            var relationships = new Dictionary>();

            var numberOfRelationships = int.Parse(Console.ReadLine());

           

            for (int i = 0; i < numberOfRelationships; i++)

            {

                string[] inputs = Console.ReadLine().Split(' ');

                var influencer = int.Parse(inputs[0]);

                var influenced = int.Parse(inputs[1]);

                AddRelationship(relationships, influencer, influenced);

            }
            var longestRelationship = relationships.Keys

                                      .Select(influencer => 1 + RouteRelationships(relationships, influencer))

                                      .Max();
            Console.WriteLine(longestRelationship);

        }
        private static int RouteRelationships(Dictionary> relationships, int influencer)

        {

            var longestRelationship = 0;

            if (relationships.ContainsKey(influencer))

            {

                longestRelationship = relationships[influencer]

                                      .Select(influenced => 1 + RouteRelationships(relationships, influenced))

                                      .Max();

            }

            return longestRelationship;

        }
        private static void AddRelationship(Dictionary> relationships, int influencer, int influenced)

        {

            if (!relationships.ContainsKey(influencer))

            {

                relationships.Add(influencer, new List());

            }

            relationships[influencer].Add(influenced);

        }

    }
1   2   3   4   5   6   7   8

Основные виды облачных архитектур

  1. Общие сведения

  2. Индивидуальное задание

    1. Задание 1


Условие задачи представлено на рисунке 3.3.



Рисунок 3.3

Ancestors and Descendants

    using System;

    using System.Collections.Generic;

    using System.Linq;
    public class Solution

    {

        private static void Main(string[] args)

        {

            var list = new List();

            int count = int.Parse(Console.ReadLine());
            for (int i = 0; i < count; i++)

            {

                string line = Console.ReadLine();

                if (!line.StartsWith("."))

                    list.Add(new Node { Id = line });

                else

                    list.Last().AddChild(line.Substring(1));

            }
            foreach (var item in list)

            {

                foreach (var s in item.GetChildrenHierarchy())

                {

                    Console.WriteLine(s);

                }

            }

        }

    }
    public class Node

    {

        public Node()

        {

            Children = new List();

        }

        public string Id { get; set; }

        public List Children { get; set; }
        public void AddChild(string name)

        {

            if (name.StartsWith("."))

            {

                name = name.Substring(1);

                Children.Last().AddChild(name);

            }

            else

            {

                Children.Add(new Node { Id = name });

            }

        }
        public IEnumerable GetChildrenHierarchy()

        {

            var result = Id + " > ";

            var list = new List();
            if (Children.Count() == 0)

                yield return Id;

            else

            {

                foreach (var itesm in Children)

                {

                    if (itesm.Children.Count() == 0)

                    {

                        yield return result + itesm.Id;

                    }

                    else

                    {

                        foreach (var item in itesm.GetChildrenHierarchy())

                        {

                            yield return result + item;

                        }

                    }

                }

            }

        }

    }
        1. Задание 2


Условие задачи представлено на рисунке 3.4.



Рисунок 3.4

Anagrams

    using System;

    using System.Collections.Generic;

    using System.Linq;
    public class Solution

    {

        public static void Main(string[] args)

        {

            var phrase = Phase4(Console.ReadLine());

            phrase = Phase3(phrase);

            phrase = Phase2(phrase);

            Console.WriteLine(Phase1(phrase));

        }
        public static string Phase1(string phrase)

        {

            // 2nd letter of the alphabet

            var letters = Enumerable.Range(0, 26).Where(i => i % 2 != 0).Select(i => (char)(i + 65));

            var queue = new Queue();
            foreach (var character in phrase.Reverse().Where(c => letters.Contains(c)))

            {

                queue.Enqueue(character);

            }
            return Replace(phrase, letters, queue);

        }
        public static string Phase2(string phrase)

        {

            // 3rd letter of the alphabet

            var letters = Enumerable.Range(0, 26).Where(i => i % 3 == 2).Select(i => (char)(i + 65));

            var queue = new Queue();
            var ph1 = phrase.Where(c => letters.Contains(c));

            foreach (var character in ph1.Skip(1))

            {

                queue.Enqueue(character);

            }

            if (ph1.Count() >= 2)

                queue.Enqueue(ph1.First());
            return Replace(phrase, letters, queue);

        }
        public static string Phase3(string phrase)

        {

            // 4th letter of the alphabet

            var letters = Enumerable.Range(0, 26).Where(i => i % 4 == 3).Select(i => (char)(i + 65));

            var queue = new Queue();
            var ph2 = phrase.Where(c => letters.Contains(c));
            if (ph2.Count() >= 2)

            {

                queue.Enqueue(ph2.Last());

                foreach (var character in ph2.Take(ph2.Count() - 1))

                {

                    queue.Enqueue(character);

                }

            }
            return Replace(phrase, letters, queue);

        }
        public static string Phase4(string phrase)

        {

            // 4th letter of the alphabet

            var wordLength = phrase.Split(" ".ToCharArray()).Select(c => c.Length).Reverse();

            phrase = phrase.Replace(" ", string.Empty);

            var result = string.Empty;
            foreach (var length in wordLength)

            {

                result += phrase.Substring(0, length) + " ";

                phrase = phrase.Substring(length);

            }
            return result.Trim();

        }


Документирование процессов внедрения и
сопровождения информационных систем

  1. Жизненный цикл информационной системы

    1. Общие сведения

    2. Индивидуальное задание

      1. Задание 1


Условие задачи представлено на рисунке 4.1.



Рисунок 4.1

Conway Sequence

using System;

using System.Linq;

public class Solution

{

public static string GetDescription(string valuesString) // передаем значение

{

var values = valuesString.Split(' ').Select(x => int.Parse(x)).ToList(); // входящую сроку разделяем на элементы

var lastVal = values.First(); // переносим самый первый элемент последовательности

var count = 0;

var result = string.Empty; // пустая строка
for (int i = 0; i < values.Count; i++) // до последнего элемента в values

{

if (lastVal != values[i]) // смотрим равен ли предыдущий эл-т текущему

{

result += count + " " + lastVal + " ";

count = 1; // увеличиваем на 1

lastVal = values[i]; // запоминаем как текущий эл-т

}

else count++; // если они равны, то счетчик увеличиваем на 1
if (i + 1 == values.Count) // проверяем не дошли ли мы до последнего эл-та

{

result += count + " " + values[i]; // если след. эл-т последний, то прибавляем к результату добавляем счетчик и через пробел добавляем знач. последнего элемента

}

}

return result.Trim(); // возврат результата, Trim - убирает эл-ты

}

public static void Main(string[] args)

{

var R = Console.ReadLine(); // исходный номер последовательности, начало

int L = int.Parse(Console.ReadLine()); // строка, последовательность,которой нужно вывести

for (int i = 0; i < L - 1; i++)

{

R = GetDescription(R); // вызываем метод и передаем значение каждой строки

}

Console.WriteLine(R); // вывод

}

}
        1. Задание 2


Условие задачи представлено на рисунке 4.2.



Рисунок 4.2

Shadow of knight-ep1

using System;

using System.Linq;

using System.IO;

using System.Text;

using System.Collections;

using System.Collections.Generic;

 
class Player

{

    static void Main(string[] args)

    {

        string[] inputs;//массив

        inputs = Console.ReadLine().Split(' ');//разделяем входяющую строчку на 2 массива

        int W = int.Parse(inputs[0]); // ширина здания.

        int H = int.Parse(inputs[1]); // высота здания.


        int W0 = 0;//начальная позиция

        int H0 = 0;//начальная позиция

        int N = int.Parse(Console.ReadLine()); // максимальное количество ходов до окончания игры.

        inputs = Console.ReadLine().Split(' ');//строка с координатами бэтмана и разделяекм на пробелы

        int X0 = int.Parse(inputs[0]);//координаты

        int Y0 = int.Parse(inputs[1]);//координаты

       

        // игровой цикл

        while (true)

        {

            string bombDir = Console.ReadLine(); // направление бомб от текущего местоположения Бэтмена (U, UR, R, DR, D, DL, L или UL)

           

            if (bombDir[0] == 'U')//напровление вверх, значит рассматриваем что снизу

            {

                H = Y0;//

                Y0 = H0 + ((Y0 - H0) / 2);

            }

            else if (bombDir[0] == 'D')//напровление вниз, значит рассматриваем что вверху

            {

                H0 = Y0;

                Y0 = H - ((H - Y0) / 2);

            }

           

            if (bombDir[0] == 'L' || bombDir.Length > 1 && bombDir[1] == 'L')//направление влево, значит рассматриваем что справо

            {

                W = X0;

                X0 = W0 + ((X0 - W0) / 2); //((X0 - W0) / 2);

            }

            else if (bombDir[0] == 'R' || bombDir.Length > 1 && bombDir[1] == 'R')//направлние вправо, значит рассматриваем что слева

            {

                W0 = X0;

                X0 = W - ((W - X0) / 2);

            }

           

            //местоположение следующего окна, в которое должен прыгнуть Бэтмен.

            Console.WriteLine(X0 + " " + Y0);

            Console.Error.WriteLine(W0);

        }

    }

}
    1. Стандарты документирования информационных систем

      1. Общие сведения

      2. Индивидуальное задание

        1. Задание 1


Условие задачи представлено на рисунке 4.3.



Рисунок 4.3

Guessing and Cheating

using System;

using System.Linq;

using System.IO;

using System.Text;

using System.Collections;

using System.Collections.Generic;
public class Solution

{

public static void Main()

{

int R = int.Parse(Console.ReadLine()); // количество раундов, целое число

int start = 1, end = 100; // диапазон загаданных чисел

for (int i = 0; i < R; i++)

{

string[] guess = Console.ReadLine().Split(); // создаем массив, считываем, что говорит боб и алиса через консоль

int bob = int.Parse(guess[0]); // запоминаем, что сказал боб (число)

string alice = guess[1] + " " + guess[2]; // запоминаем, что сказала алиса (фразы с пробелами)

if (alice == "too low") // если алиса сказала "слишком низко"

{

start = Math.Max(start, bob + 1); // вырезаем то, что ниже зачения боба, Math.Max - из двух входящих значений выбираем максимальное