Файл: Отчет по лабораторным работам оп. 04 Основы алгоритмизации и программирование ккоо. Оаип4211121. 000 Студент Самойлова К. А.docx
Добавлен: 06.11.2023
Просмотров: 175
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
, и две средних,
если длина строки четная;
6) удаляет все символы х;
7) удаляет из строки все цифры;
8) удаляет все подстроки substr;
9) заменяет все вхождения подстроки str1 на подстроку str2 (при этом
str1 может являться частью str2);
10) заменяет все группы стоящих рядом точек на многоточие;
11) меняет местами первую букву со второй, третью с четвертой и т.д.;
12) меняет местами первую букву с последней, вторую с
предпоследней и т.д.;
13) определяет, сколько различных символов встречается в строке;
14) удаляет из строки все подстроки, состоящие из цифр;
15) удаляет из строки самую длинную подстроку, состоящую из
повторяющегося символа.
Контрольная работа. Строки
«удовлетворительно» – решена одна задача;
«хорошо» – решены две задачи, но допущены неточности;
«отлично» – верно решены две задачи.
Задание 1 Разработать программу, которая позволяет ввести строку с
экрана и для введенной строки s:
4) удаляет все символы х;
static void Main(string[] args)
{
Console.Write("Введите строку: ");
string input = Console.ReadLine();
string result = RemoveX(input);
Console.WriteLine("Результат: " + result);
}
static string RemoveX(string input)
{
string output = "";
foreach (char c in input)
{
if (c != 'x')
{
output += c;
}
}
return output;
}
6) удаляет среднюю букву, если длина строки нечетная, и две средних,
если длина строки четная;
static void Main(string[] args)
{
Console.Write("Введите строку: ");
string input = Console.ReadLine();
StringBuilder sb = new StringBuilder(input);
int middleIndex = sb.Length / 2;
if (sb.Length % 2 == 0)
{
sb.Remove(middleIndex - 1, 2);
}
else
{
sb.Remove(middleIndex, 1);
}
Console.WriteLine("Результат: " + sb.ToString());
Console.ReadKey();
}
Практикум №9
Задание 1
8. Дан текстовый файл. Напечатать первый символ каждой строки.
static void Main(string[] args)
{
using (StreamReader sr = new StreamReader("C:/Users/Public/Documents/input.txt"))
{
while (sr.Peek() > -1)
{
if (sr.Peek() == ' ')
{
Console.WriteLine("пустота");
break;
}
else
{
Console.WriteLine(sr.ReadLine()[0]);
}
}
}
Console.ReadKey();
}
9 Дан текстовый файл. Напечатать символы с k1 по k2 в каждой строке.
internalclassProgram
{
staticvoid Main(string[] args)
{
Student std= new Student();
std.name = "Кирилл";
std.age = 17;
std.Print();
Student std2 = new Student();
std2.name = "Максим";
std2.age = 17;
std2.Print();
}
}
internalclassStudent
{
publicstring name;
publicint age;
publicvoid Print()
{
Console.WriteLine($"Моёимя{name}, возраст:{age}");
}
}
}
}
Задание. Разработка класса
1) Создайте новый проект, выбрав: шаблон: Консольное приложение, сохраните проект в своей папке.
Напишите мини программку, которая складывает два числа введенных с клавиатуры без использования ООП:
Запустите программу на выполнение (F5).
staticvoid Main(string[] args)
{
int a, b, c;
string bufer;
bufer= Console.ReadLine();
a= Convert.ToInt16(bufer);
bufer= Console.ReadLine();
b= Convert.ToInt16(bufer);
c = a + b;
Console.WriteLine(c);
Console.ReadLine();
}
}
}
2) Создайте новый проект, в котором будет отдельный класс, а в основной программе этот класс будет использован.
Добавьте в проект новый класс (Проект – Добавить класс) и назовите этот класс Worker. В класс добавьте два общедоступных поля: имя и возраст, и одно скрытое поле: вес (обратите внимание, что пространство имен не надо переименовывать):
staticvoid Main(string[] args)
{
Worker wrkr = new Worker();
wrkr.age= 35;
wrkr.name = "Иванов";
Console.WriteLine(wrkr.name+ ", " + wrkr.age+ ", ");
Console.ReadLine();
}
}
}
3) ВтелефункцииMainсоздайтеобъектклассаWorker:
internalclassWorker
{
publicint age = 0;
publicstring name;
publicfloat weight;
}
}
Запустите программу на выполнение.
Попробуйте записать значение в поле weight. Почему данные не записались?
4) Для записи и чтения данных из скрытых полей используют методы. Добавим вовнутрь класса Worker новый метод (действие) который будет отвечать за еду, если человек чего-то там съест, купитьего вес должен будет увеличиться на количество съеденного.
publicvoid eat (float how_much)
{
weight= weight + how_much;
}
Если поле вес скрытое, то мы в него не только писать не можем, но и читать тоже не можем. Для чтения данных из скрытого поля необходимо использовать еще один метод:
publicfloat get_weight()
{
return weight;
}
Почему в последних двух функциях после слова public идут различные слова? Что они обозначают и на что влияют?
internalclassWorker
{
publicint age = 0;
publicstring name;
privatefloat weight;
publicvoid eat (float how_much)
{
weight= weight + how_much;
}
publicfloat get_weight()
{
return weight;
}
}
5) Теперь эти два метода надо использовать в нашей программе. Заставьте рабочего съесть 2, а затем 3 кг пищи, а потом проверьте его вес.
Запустите программу на выполнение. Проверьте работоспособность.
internalclassProgram
{
staticvoid Main(string[] args)
{
Worker sasa = new Worker();
sasa.name = "Кирилл";
sasa.age =17;
sasa.eat(2);
sasa.eat(3);
float ves;
ves = sasa.get_weight();
Console.WriteLine(sasa.age + ", " + sasa.name + ", вес: " + ves);
Console.ReadKey();
}
}
}
internalclassWorker
{
publicint age = 0;
publicstring name;
privatefloat weight = 60;
publicvoid eat(float how_much)
{
weight = weight + how_much;
}
publicfloat get_weight()
{
return weight;
}
}
}
6) Усовершенствуйте метод eat таким образом, что если рабочий за раз съедает более чем 10 кг, то его возраст увеличивается на год, а вес увеличивается только на половину съеденного.
internalclassProgram
{
staticvoid Main(string[] args)
{
Worker sasa = new Worker();
sasa.name = "Кирилл";
sasa.age = 5;
Console.Write("Принесли: ");
int kg = int.Parse(Console.ReadLine());
Console.WriteLine($"{sasa.name} cъел{kg}кг ");
sasa.eat(kg);
float ves;
ves = sasa.get_weight();
Console.WriteLine(sasa.age + ", " + sasa.name + ", вес: " + ves);
Console.ReadKey();
}
}
}
internalclassWorker
{
publicint age = 0;
publicstring name;
privatefloat weight = 60;
publicvoid eat(float how_much)
{
if (how_much > 10)
{
weight = weight + (how_much / 2);
age++;
}
else
{
weight = weight + how_much;
}
}
publicfloat get_weight()
{
return weight;
}
}
}
7) Измените программу так, чтобы имя рабочего и его первоначальный возраст вводились с клавиатуры и вносились в соответствующие переменные.
internalclassProgram
{
staticvoid Main(string[] args)
{
Worker sasa = new Worker();
Console.Write("Зовут: ");
string name = Console.ReadLine();
sasa.name = name;
Console.Write("Емулет: ");
int age = Convert.ToInt32(Console.ReadLine());
sasa.age = age;
Console.Write("Принесли: ");
int kg = int.Parse(Console.ReadLine());
Console.WriteLine($"{sasa.name} cъел{kg}кг ");
sasa.eat(kg);
float ves;
ves = sasa.get_weight();
Console.WriteLine(sasa.age + ", " + sasa.name + ", вес: " + ves);
Console.ReadKey();
}
}
}
internalclassWorker
{
publicint age;
publicstring name;
privatefloat weight = 50;
publicvoid eat(float how_much)
{
if (how_much > 10)
{
weight = weight + (how_much / 2);
age++;
}
else
{
weight = weight + how_much;
}
}
publicfloat get_weight()
{
return weight;
}
}
}
Запустите программу. Проверьте ее работоспособность.
8) Добавьте рабочему еще одно скрытое поле, которое будет отвечать за настроение и будет иметь первоначальное значение равное 10.
Добавьте три метода: гулять (метод должен увеличивать настроение на 1), танцевать (метод должен увеличивать настроение на 2) и работать (метод должен уменьшать настроение на 2).
Дополните основную программу так, чтобы рабочий после еды два раза погулял и три раза потанцевал.
internalclassProgram
{
staticvoid Main(string[] args)
{
Worker sasa = new Worker();
Console.Write("Зовут: ");
string name = Console.ReadLine();
sasa.name = name;
Console.Write("Емулет: ");
int age = Convert.ToInt32(Console.ReadLine());
sasa.age = age;
Console.Write("Принесли: ");
int kg = int.Parse(Console.ReadLine());
Console.WriteLine($"{sasa.name} cъел{kg}кг ");
sasa.eat(kg);
float ves;
ves = sasa.get_weight();
int dance = int.Parse(Console.ReadLine());
Console.WriteLine($"Онтанцевал{dance}раз(а)");
sasa.dance(dance);
int walk = int.Parse(Console.ReadLine());
Console.WriteLine($"Онгулял{walk}раз(а)");
sasa.walk(walk);
int work = int.Parse(Console.ReadLine());
Console.WriteLine($"Он работал {work} раз(а)");
sasa.work(work);
float mood;
mood = sasa.get_mood();
Console.WriteLine(sasa.age + " лет, " + sasa.name + ", вес: " + ves + ", настроение: " + mood);
Console.ReadKey();
}
}
}
internalclassWorker
{
publicint age;
publicstring name;
privatefloat weight = 50;
privatefloat mood = 10;
publicvoid eat(float how_much)
{
if (how_much > 10)
{
weight = weight + (how_much / 2);
age++;
}
else
{
weight = weight + how_much;
}
если длина строки четная;
6) удаляет все символы х;
7) удаляет из строки все цифры;
8) удаляет все подстроки substr;
9) заменяет все вхождения подстроки str1 на подстроку str2 (при этом
str1 может являться частью str2);
10) заменяет все группы стоящих рядом точек на многоточие;
11) меняет местами первую букву со второй, третью с четвертой и т.д.;
12) меняет местами первую букву с последней, вторую с
предпоследней и т.д.;
13) определяет, сколько различных символов встречается в строке;
14) удаляет из строки все подстроки, состоящие из цифр;
15) удаляет из строки самую длинную подстроку, состоящую из
повторяющегося символа.
Контрольная работа. Строки
«удовлетворительно» – решена одна задача;
«хорошо» – решены две задачи, но допущены неточности;
«отлично» – верно решены две задачи.
Задание 1 Разработать программу, которая позволяет ввести строку с
экрана и для введенной строки s:
4) удаляет все символы х;
static void Main(string[] args)
{
Console.Write("Введите строку: ");
string input = Console.ReadLine();
string result = RemoveX(input);
Console.WriteLine("Результат: " + result);
}
static string RemoveX(string input)
{
string output = "";
foreach (char c in input)
{
if (c != 'x')
{
output += c;
}
}
return output;
}
6) удаляет среднюю букву, если длина строки нечетная, и две средних,
если длина строки четная;
static void Main(string[] args)
{
Console.Write("Введите строку: ");
string input = Console.ReadLine();
StringBuilder sb = new StringBuilder(input);
int middleIndex = sb.Length / 2;
if (sb.Length % 2 == 0)
{
sb.Remove(middleIndex - 1, 2);
}
else
{
sb.Remove(middleIndex, 1);
}
Console.WriteLine("Результат: " + sb.ToString());
Console.ReadKey();
}
Практикум №9
Задание 1
8. Дан текстовый файл. Напечатать первый символ каждой строки.
static void Main(string[] args)
{
using (StreamReader sr = new StreamReader("C:/Users/Public/Documents/input.txt"))
{
while (sr.Peek() > -1)
{
if (sr.Peek() == ' ')
{
Console.WriteLine("пустота");
break;
}
else
{
Console.WriteLine(sr.ReadLine()[0]);
}
}
}
Console.ReadKey();
}
9 Дан текстовый файл. Напечатать символы с k1 по k2 в каждой строке.
Лабораторная работа 13. Основы объектно-ориентированного программирования
internalclassProgram
{
staticvoid Main(string[] args)
{
Student std= new Student();
std.name = "Кирилл";
std.age = 17;
std.Print();
Student std2 = new Student();
std2.name = "Максим";
std2.age = 17;
std2.Print();
}
}
internalclassStudent
{
publicstring name;
publicint age;
publicvoid Print()
{
Console.WriteLine($"Моёимя{name}, возраст:{age}");
}
}
}
}
Задание. Разработка класса
1) Создайте новый проект, выбрав: шаблон: Консольное приложение, сохраните проект в своей папке.
Напишите мини программку, которая складывает два числа введенных с клавиатуры без использования ООП:
Запустите программу на выполнение (F5).
staticvoid Main(string[] args)
{
int a, b, c;
string bufer;
bufer= Console.ReadLine();
a= Convert.ToInt16(bufer);
bufer= Console.ReadLine();
b= Convert.ToInt16(bufer);
c = a + b;
Console.WriteLine(c);
Console.ReadLine();
}
}
}
2) Создайте новый проект, в котором будет отдельный класс, а в основной программе этот класс будет использован.
Добавьте в проект новый класс (Проект – Добавить класс) и назовите этот класс Worker. В класс добавьте два общедоступных поля: имя и возраст, и одно скрытое поле: вес (обратите внимание, что пространство имен не надо переименовывать):
staticvoid Main(string[] args)
{
Worker wrkr = new Worker();
wrkr.age= 35;
wrkr.name = "Иванов";
Console.WriteLine(wrkr.name+ ", " + wrkr.age+ ", ");
Console.ReadLine();
}
}
}
3) ВтелефункцииMainсоздайтеобъектклассаWorker:
internalclassWorker
{
publicint age = 0;
publicstring name;
publicfloat weight;
}
}
Запустите программу на выполнение.
Попробуйте записать значение в поле weight. Почему данные не записались?
4) Для записи и чтения данных из скрытых полей используют методы. Добавим вовнутрь класса Worker новый метод (действие) который будет отвечать за еду, если человек чего-то там съест, купитьего вес должен будет увеличиться на количество съеденного.
publicvoid eat (float how_much)
{
weight= weight + how_much;
}
Если поле вес скрытое, то мы в него не только писать не можем, но и читать тоже не можем. Для чтения данных из скрытого поля необходимо использовать еще один метод:
publicfloat get_weight()
{
return weight;
}
Почему в последних двух функциях после слова public идут различные слова? Что они обозначают и на что влияют?
internalclassWorker
{
publicint age = 0;
publicstring name;
privatefloat weight;
publicvoid eat (float how_much)
{
weight= weight + how_much;
}
publicfloat get_weight()
{
return weight;
}
}
5) Теперь эти два метода надо использовать в нашей программе. Заставьте рабочего съесть 2, а затем 3 кг пищи, а потом проверьте его вес.
Запустите программу на выполнение. Проверьте работоспособность.
internalclassProgram
{
staticvoid Main(string[] args)
{
Worker sasa = new Worker();
sasa.name = "Кирилл";
sasa.age =17;
sasa.eat(2);
sasa.eat(3);
float ves;
ves = sasa.get_weight();
Console.WriteLine(sasa.age + ", " + sasa.name + ", вес: " + ves);
Console.ReadKey();
}
}
}
internalclassWorker
{
publicint age = 0;
publicstring name;
privatefloat weight = 60;
publicvoid eat(float how_much)
{
weight = weight + how_much;
}
publicfloat get_weight()
{
return weight;
}
}
}
6) Усовершенствуйте метод eat таким образом, что если рабочий за раз съедает более чем 10 кг, то его возраст увеличивается на год, а вес увеличивается только на половину съеденного.
internalclassProgram
{
staticvoid Main(string[] args)
{
Worker sasa = new Worker();
sasa.name = "Кирилл";
sasa.age = 5;
Console.Write("Принесли: ");
int kg = int.Parse(Console.ReadLine());
Console.WriteLine($"{sasa.name} cъел{kg}кг ");
sasa.eat(kg);
float ves;
ves = sasa.get_weight();
Console.WriteLine(sasa.age + ", " + sasa.name + ", вес: " + ves);
Console.ReadKey();
}
}
}
internalclassWorker
{
publicint age = 0;
publicstring name;
privatefloat weight = 60;
publicvoid eat(float how_much)
{
if (how_much > 10)
{
weight = weight + (how_much / 2);
age++;
}
else
{
weight = weight + how_much;
}
}
publicfloat get_weight()
{
return weight;
}
}
}
7) Измените программу так, чтобы имя рабочего и его первоначальный возраст вводились с клавиатуры и вносились в соответствующие переменные.
internalclassProgram
{
staticvoid Main(string[] args)
{
Worker sasa = new Worker();
Console.Write("Зовут: ");
string name = Console.ReadLine();
sasa.name = name;
Console.Write("Емулет: ");
int age = Convert.ToInt32(Console.ReadLine());
sasa.age = age;
Console.Write("Принесли: ");
int kg = int.Parse(Console.ReadLine());
Console.WriteLine($"{sasa.name} cъел{kg}кг ");
sasa.eat(kg);
float ves;
ves = sasa.get_weight();
Console.WriteLine(sasa.age + ", " + sasa.name + ", вес: " + ves);
Console.ReadKey();
}
}
}
internalclassWorker
{
publicint age;
publicstring name;
privatefloat weight = 50;
publicvoid eat(float how_much)
{
if (how_much > 10)
{
weight = weight + (how_much / 2);
age++;
}
else
{
weight = weight + how_much;
}
}
publicfloat get_weight()
{
return weight;
}
}
}
Запустите программу. Проверьте ее работоспособность.
8) Добавьте рабочему еще одно скрытое поле, которое будет отвечать за настроение и будет иметь первоначальное значение равное 10.
Добавьте три метода: гулять (метод должен увеличивать настроение на 1), танцевать (метод должен увеличивать настроение на 2) и работать (метод должен уменьшать настроение на 2).
Дополните основную программу так, чтобы рабочий после еды два раза погулял и три раза потанцевал.
internalclassProgram
{
staticvoid Main(string[] args)
{
Worker sasa = new Worker();
Console.Write("Зовут: ");
string name = Console.ReadLine();
sasa.name = name;
Console.Write("Емулет: ");
int age = Convert.ToInt32(Console.ReadLine());
sasa.age = age;
Console.Write("Принесли: ");
int kg = int.Parse(Console.ReadLine());
Console.WriteLine($"{sasa.name} cъел{kg}кг ");
sasa.eat(kg);
float ves;
ves = sasa.get_weight();
int dance = int.Parse(Console.ReadLine());
Console.WriteLine($"Онтанцевал{dance}раз(а)");
sasa.dance(dance);
int walk = int.Parse(Console.ReadLine());
Console.WriteLine($"Онгулял{walk}раз(а)");
sasa.walk(walk);
int work = int.Parse(Console.ReadLine());
Console.WriteLine($"Он работал {work} раз(а)");
sasa.work(work);
float mood;
mood = sasa.get_mood();
Console.WriteLine(sasa.age + " лет, " + sasa.name + ", вес: " + ves + ", настроение: " + mood);
Console.ReadKey();
}
}
}
internalclassWorker
{
publicint age;
publicstring name;
privatefloat weight = 50;
privatefloat mood = 10;
publicvoid eat(float how_much)
{
if (how_much > 10)
{
weight = weight + (how_much / 2);
age++;
}
else
{
weight = weight + how_much;
}