Файл: Отчет по учебной практике по профессиональному модулю пм 06 Сопровождение информационных систем.docx
Добавлен: 30.11.2023
Просмотров: 256
Скачиваний: 19
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Классификация информационных систем
Сопровождение учётных информационных систем
Хранилища учетной информационной системы
Способы отслеживания ошибок в учетной информационной системе
Сопровождение облачных информационных систем
Основные виды облачных архитектур
Документирование процессов внедрения и сопровождения информационных систем
Способы отслеживания ошибок в учетной информационной системе
-
Общие сведения
-
Индивидуальное задание
-
Задание 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
{
NumberInBase10 = number;
matrix = representation;
}
public IList
public long NumberInBase10 { get; private set; }
public string GetRepresentation()
{
return string.Concat(matrix);
}
}
public static long GetNumber(int H, IList
{
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
{
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;
}
}
-
Задание 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
-
-
Условие задачи представлено на рисунке 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
{
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);
}
}
}
-
Задание 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
{
var longestRelationship = 0;
if (relationships.ContainsKey(influencer))
{
longestRelationship = relationships[influencer]
.Select(influenced => 1 + RouteRelationships(relationships, influenced))
.Max();
}
return longestRelationship;
}
private static void AddRelationship(Dictionary
{
if (!relationships.ContainsKey(influencer))
{
relationships.Add(influencer, new List
}
relationships[influencer].Add(influenced);
}
}
1 2 3 4 5 6 7 8
Основные виды облачных архитектур
-
Общие сведения
-
Индивидуальное задание
-
Задание 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
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
{
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;
}
}
}
}
}
}
-
Задание 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
-
-
Условие задачи представлено на рисунке 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); // вывод
}
}
-
Задание 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
-
-
Условие задачи представлено на рисунке 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 - из двух входящих значений выбираем максимальное