Файл: Отчет по лабораторным работам оп. 04 Основы алгоритмизации и программирование ккоо. Оаип4211121. 000 Студент Самойлова К. А.docx
Добавлен: 06.11.2023
Просмотров: 176
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
{
temp1 = a[j];
}
}
Console.Write(a[15] + "см");
}
static void Main(string[] args)
{
int[] Mas = Input();
Console.Write("Начальный:");
Print(Mas);
Console.WriteLine();
Sort(Mas);
Console.Write("Отсортированный массив:");
Print(Mas);
Console.WriteLine();
Console.Write("Высокий на 10-ом месте :");
Vibor(Mas);
Console.ReadKey();
}
}
Задание 6.
Известны значения максимальной скорости 15 моделей
автомобилей. Определить максимальную скорость автомобиля, являющегося "шестым самым быстрым автомобилем".
namespace ConsoleApp1
{
internal class Program
{
static void Print(int[] a)
{
for (int i = 0; i < a.Length; i++)
{
Console.Write("{0,4} см", a[i]);
}
}
static int[] Input()
{
Random rnd = new Random();
Console.Write("n=");
int n = int.Parse(Console.ReadLine());
int[] a = new int[n];
for (int i = 0; i < a.Length; i++)
{
a[i] = rnd.Next(150, 190);
}
return a;
}
static void Sort(int[] a)
{
int temp;
for (int i = 0; i < a.Length - 1; i++)
{
for (int j = a.Length - 1; j > i; j--)
{
if (a[j] < a[j - 1])
{
temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
}
}
static void Hot (int[] a)
{
int temp1;
for (int i = 0; i < a.Length; i++)
{
for (int j = 0; j < a.Length; j++)
{
temp1 = a[j];
}
}
Console.Write(a[14] + "см");
}
static void Main(string[] args)
{
int[] Mas = Input();
Console.Write("Начальный:");
Print(Mas);
Console.WriteLine();
Sort(Mas);
Console.Write("Отсортированный массив:");
Print(Mas);
Console.WriteLine();
Console.Write("Рост :");
Hot (Mas);
}
}
}
Контрольная работа. Применение методов сортировки
Задание1
internal class Program
{
static void Print(int[] a)
{
for (int i = 0; i < a.Length; i++)
{
Console.Write("{0,5} кг", a[i]);
}
}
static int[] Input()
{
Random rnd = new Random();
Console.Write("n=");
int n = int.Parse(Console.ReadLine());
int[] a = new int[n];
for (int i = 0; i < a.Length; i++)
{
a[i] = rnd.Next(110, 190);
}
return a;
}
static void Sort(int[] a)
{
int temp;
for (int i = 0; i < a.Length - 1; i++)
{
for (int j = a.Length - 1; j > i; j--)
{
if (a[j] < a[j - 1])
{
temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
}
}
static void Hot(int[] a)
{
int temp1;
for (int i = 0; i > a.Length; i++)
{
for (int j = 0; j > a.Length; j++)
{
temp1 = a[j];
}
}
Console.Write(a[4] + "кг");
}
static void Main(string[] args)
{
int[] Mas = Input();
Console.Write("Начальный:");
Print(Mas);
Console.WriteLine();
Sort(Mas);
Console.Write("Отсортированный массив:");
Print(Mas);
Console.WriteLine();
Console.Write("Самый легкий :");
Hot(Mas);
}
}
Лабораторная работа №12. Строки
Цель: работа со строками и методами для сравнения, поиска,
сортировки и управления строковыми значениями
При решении задач использовать тип string.
Класс string обеспечивает множество встроенных методов для сравнения, поиска и
управления строковыми значениями. Вот неполный список всех возможностей этого
Empty — свойство, определяющее, пустая ли строка;
Compare() — функция сравнения двух строк;
CompareOrdinal() — сравнивает строки в независимости от региональных настроек;
Concat() — создает новую строку из двух и более исходных строк;
СоруО — создает дубликат исходной строки;
Equals() — определяет, содержат ли две строки одинаковые значения;
Format( ) — форматирует строку, используя строго заданный формат;
InternO — возвращает ссылку на существующий экземпляр строки;
Join() — добавляет новую строку в любое место уже существующей строки;
Chars — индексатор символов строки;
Length — количество символов в строке;
CloneO — возвращает ссылку на существующую строку;
CompareToO — сравнивает одну строку с другой;
CopyToQ — копирует определенное число символов строки в массив Unicode
определяет,
заканчивается
последовательностью символов;
EqualsQ — определяет, имеют ли две строки одинаковые значения;
InsertO — вставляет новую строку в уже существующую;
LastlndexOfQ— возвращает индекс последнего вхождения элемента в строку;
PadLeft() — выравнивает строку по правому краю, пропуская все пробельные
символы или другие (специально заданные);
PadRight() — выравнивает строку по левому краю, пропуская все пробельные
символы или другие (специально заданные);
Remove() — удаляет необходимое число символов из строки;
Split() — возвращает подстроку, отделенную от основного массива определенным
StartsWith() — определяет, начинается ли строка с определенной
Substring() — возвращает подстроку из общего массива символов;
ToCharArray() — копирует символы из строки в массив символов;
ToLower() — преобразует строку к нижнему регистру;
ToUpper() —преобразует строку к верхнему регистру;
TrimQ — удаляет все вхождения определенных символов в начале и в конце
TrimEndO — удаляет все вхождения определенных символов в конце строки;
TrimStartf) — удаляет все вхождения определенных символов в начале строки.
Задание 1 Разработать программу, которая позволяет ввести строку с
экрана и для введенной строки s:
-
подсчитывает общее число вхождений символов х и y;
static void Main(string[] args)
{
Console.Write("Введите строку символов: ");
string str = Console.ReadLine();
int count1 = str.ToCharArray().Where((x) => x == 'x').Count();
int count2 = str.ToCharArray().Where((x) => x == 'y').Count();
Console.WriteLine("Количество символов: х = " + count1 + "; y = " + count2);
Console.ReadKey();
}
2) определяет, какой из двух заданных символов встречается в строке
чаще всего;
static void Main(string[] args)
{
Console.Write("Введите строку символов: ");
string str = Console.ReadLine();
int count1 = str.ToCharArray().Where((x) => x == 'x').Count();
int count2 = str.ToCharArray().Where((x) => x == 'y').Count();
if (count1>count2)
{
Console.WriteLine("Чаще всего встречается х = " + count1);
}
else
{
Console.WriteLine("Чаще всего встречается y = " + count2);
}
Console.ReadKey();
}
3) выводит на экран символы, которые наиболее часто встречается в
строке;
4) выводит на экран символы, которые встречаются в строке только
один раз;
5) определяет, имеются ли в строке два соседствующих одинаковых
символа;
6) определяет, является ли строка палиндромом;
static void Main(string[] args)
{
Console.WriteLine("Введите слово для проверки");
string input = Console.ReadLine();
char[] obrtext = input.ToCharArray();
Array.Reverse(obrtext);
string finaltext = new string(obrtext);
if (finaltext == input)
{
Console.WriteLine("Слово {0} является палиндромом", input);
}
else
{
Console.WriteLine("Слово {0} не является палиндромом", input);
}
Console.ReadKey();
}
7) определяет, упорядочены ли по алфавиту символы строки;
static void Main(string[] args)
{
Console.WriteLine("Введите буквы для проверки");
string input = Console.ReadLine();
bool FT = true;
char[] nonesorttext = input.ToCharArray();
char[] sorttext = input.ToCharArray();
Array.Sort(sorttext);
for (int i = 0; i < sorttext.Length; i++)
{
if(sorttext[i] == nonesorttext[i])
{
FT = true;
}
else
{
FT = false;
}
}
if (FT == true)
{
Console.WriteLine("Строка упорядочена в алфавитном порядке");
}
else
{
Console.WriteLine("Строка не упорядочена в алфавитном порядке");
}
Console.ReadKey();
}
8) подсчитывает количество букв в строке;
static void Main(string[] args)
{
Console.WriteLine("Введите строку");
string input = Console.ReadLine();
int ind = 0;
for (int i = 0; i < input.Length; i++)
{
if (char.IsLetter(input[i]))
ind++;
}
Console.WriteLine("Количество букв равно {0}", ind);
Console.ReadKey();
}
-
подсчитывает количество цифр в строке;
static void Main(string[] args)
{
Console.WriteLine("Введите строку");
string input = Console.ReadLine();
int ind = 0;
for (int i = 0; i < input.Length; i++)
{
if (char.IsNumber(input[i]))
ind++;
}
Console.WriteLine("Количество цифр равно {0}", ind);
Console.ReadKey();
}
-
подсчитывает сумму всех содержащихся в строке цифр;
static void Main(string[] args)
{
Console.WriteLine("Введите строку");
string input = Console.ReadLine();
int sum = 0;
for (int i = 0; i < input.Length; i++)
{
if (char.IsNumber(input[i]))
sum += Convert.ToInt32(input[i].ToString());
}
Console.WriteLine("Количество цифр равно {0}", sum);
Console.ReadKey();
}
11) выводит на экран последовательность символов, расположенных до
первого двоеточия;
static void Main(string[] args)
{
Console.WriteLine("Введите строку");
string input = Console.ReadLine();
string[] words = input.Split(':');
Console.WriteLine($"{words[0]}");
Console.ReadKey();
}
12) выводит на экран последовательность символов, расположенных
после последнего двоеточия;
static void Main(string[] args)
{
Console.WriteLine("Введите строку");
string input = Console.ReadLine();
string[] words = input.Split(':');
Console.WriteLine($"{words[1]}");
Console.ReadKey();
}
13) выводит на экран последовательность символов, расположенных
между круглыми скобками (считается, что в строке ровно одна пара круглых скобок);
static void Main(string[] args)
{
Console.WriteLine("Введите строку");
string input = Console.ReadLine();
string[] words = input.Split('(', ')');
Console.WriteLine($"{words[1]}");
Console.ReadKey();
}
14) находит самую длинную подстроку, состоящую только из цифр;
15) находит самую длинную подстроку, состоящую из повторяющегося
символа.
Краткие теоретические сведения
Класс StringBuilder используется для создания и редактирования строк, обычно
строк из динамического набора данных, например из массива байтовых значений.
Создать объект класса StringBuilder возможно одним из следующих способов:
//создание пустой строки, размер которой по умолчанию 16 символов
StringBuilder a =new StringBuilder();
//инициализация строки и выделение памяти под 4 символа
StringBuilder b = new StringBuilder("abcd");
//создание пустой строки и выделение памяти под 100 символов
StringBuilder с = new StringBuilder(100);
//инициализация строки и выделение памяти под 100 символов
StringBuilder d = new StringBuilder("abcd", 100);
//инициализация подстрокой "bcd" и выделение памяти под 100 символов
StringBuilder d = new StringBuilder("abcdefg", 1, 3,100);
Наиболее важными членами класса StringBuilder являются:
Capacity — определяет число символов, которые способен хранить и обрабатывать
StringBuilder;
Chars — индексатор класса;
Length — определяет длину объекта StringBuilder;
MaxCapacity — определяет максимальное число символов, которые способен
хранить и обрабатывать StringBuilder;
Appendf) — добавляет объект заданного типа в конец StringBuilder;
AppendFormat() — замещает или устанавливает новый формат StringBuilder;
EnsureCapacity() — гарантирует, что StringBuilder имеет емкость не менее
указанной в параметре;
Insert() — вставляет объект некоторого типа в указанную позицию;
RemoveO — удаляет указанный символ;
Replacef) — замещает все экземпляры указанных символов на новые символы.
Очень важной особенностью класса StringBuilder является то, что при изменении
значений в объекте StringBuilder происходит изменение значений в исходной строке, а не
в ее копии.
Задание 2 Разработать программу, которая позволяет ввести строку с
экрана и выполняет следующие действия с введенной строкой:
1) вставляет в строку символ x после каждого вхождения символа y;
2) вставляет в строку подстроку x после каждого вхождения подстроки
y;
3) удваивает каждое вхождение заданного символа x;
4) удваивает каждое вхождение заданной подстроки x;
5) удаляет среднюю букву, если длина строки нечетная