Линейные динамические структуры данных в C#. Списки
Исследование теоретических основ построения и методов программной реализации линейных динамических структур данных – списков. Использование списков в решении алгоритмических задач. Процесс объединения два списка в один без использования копиpования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 05.06.2022 |
Размер файла | 54,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(НИУ «БелГУ»)
ИНЖИНИРИНГОВЫЙ КОЛЛЕДЖ
Лабораторная работа №11
Линейные динамические структуры данных в C#. Списки
По дисциплине: «Основы алгоритмизации и программирования»
Выполнил:
Дереза Алексей Александрович
Проверил:
Преподаватель
Пелехоца Ольга Владимировна
Белгород 2022
Цель работы: изучение теоретических основ построения и методов программной реализации линейных динамических структур данных - списков. Использование списков в решении алгоритмических задач.
Ход работы:
Изучив теоретический материал приступил к выполнение практического задания.
Часть 1
Упражнения к разделу 1
1. Задача о простых дробях
Реализовать операции сложения и умножения двух простых дробей. Выполнить реализацию в виде класса.
Листинг программы.
public class Zadaniee_1
{
public double F(double s, double s1, double z, double z1)
{
double result;
result = (s/s1) * (z/z1);
return result;
}
public double F1(double s, double s1, double z, double z1)
{
double result;
result = (s / s1) + (z / z1);
return result;
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("");
Console.WriteLine("Задание_1. Часть_1.");
Console.WriteLine("");
Zadaniee_1 zadaniee_1 = new Zadaniee_1();
Console.WriteLine(zadaniee_1.F(2, 3, 4, 5));
Console.WriteLine(zadaniee_1.F1(2, 3, 4, 5));
}
}
Вывод:
2. Задача о записной книжке.
На каждой странице записной книжки указаны фамилии людей, начинающиеся с одной и той же буквы (английского алфавита), и телефоны этих людей.
Каждая буква занимает одну страницу. На каждой странице содержится одинаковое количество записей.
По заданной фамилии распечатать номер телефона. Выполнить реализацию в виде классов.
Листинг программы:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("");
Console.WriteLine("Задание_2. Часть_1.");
List<Spisok> spisok = new List<Spisok>();
spisok.Add(new Spisok() { Name = "dereza", Nomer = 123 });
spisok.Add(new Spisok() { Name = "dereza1", Nomer = 456 });
spisok.Add(new Spisok() { Name = "dereza2", Nomer = 789 });
spisok.Add(new Spisok() { Name = "dereza3", Nomer = 101112 });
spisok.Add(new Spisok() { Name = "dereza4", Nomer = 131415 });
spisok.Add(new Spisok() { Name = "dereza5", Nomer = 161718 });
spisok.Add(new Spisok() { Name = "dereza6", Nomer = 192021 });
Console.WriteLine("Введите Имя");
string name = Console.ReadLine();
Console.WriteLine(" ");
Spisok spisok1 = spisok.Find(spisok => spisok.Name == name);
Console.WriteLine("Имя:{0},номер:{1}", spisok1.Name, spisok1.Nomer);
}
}
public class Spisok
{
public string Name { get; set; }
public int Nomer { get; set; }
}
Вывод:
3. Задача об итогах сессии.
Результаты сессии на студенческом курсе представлены в виде сводных ведомостей по группам. Ведомость по студенческой группе содержит перечень фамилий студентов группы, названий сданных предметов и оценок по этим предметам.
В каждой группе содержится одинаковое количество студентов, студенты всех групп сдают одинаковое количество предметов, но предметы в различных группах могут быть различными.
Для курса распечатать фамилии студентов, имеющих задолженности, с указанием названий предметов, по которым задолженность. Выполнить реализацию в виде классов.
Листинг программы:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("");
Console.WriteLine("Задние_3.Часть_1");
Console.WriteLine("");
List<Sessiya> sessiyas = new List<Sessiya>(2);
sessiyas.Add(new Sessiya() { familiya = "dereza", dolg = "есть" });
sessiyas.Add(new Sessiya() { familiya = "ывпы", dolg = "есть" });
sessiyas.Add(new Sessiya() { familiya = "dereza2", dolg = "нет" });
sessiyas.Add(new Sessiya() { familiya = "dereza3", dolg = "нет" });
sessiyas.Add(new Sessiya() { familiya = "dereza4", dolg = "нет" });
sessiyas.Add(new Sessiya() { familiya = "dereza5", dolg = "есть" });
sessiyas.Add(new Sessiya() { familiya = "dereza6", dolg = "есть" });
sessiyas.Add(new Sessiya() { familiya = "dereza7", dolg = "есть" });
string sdgf = Console.ReadLine();
for (int i = 0; i < sessiyas.Count; i++)
{
if (sessiyas[i].dolg == sdgf)
{
Console.WriteLine(sessiyas[i].familiya);
}
}
}
}
public class Sessiya
{
public string familiya;
public string dolg;
}
Вывод:
Часть 2.
Задание 1.
Элементы списка хранят слова, состоящие из 10 символов, включающих только русские и английские прописные и строчные буквы.
Исключите из списка слова, содержащие заданную комбинацию символов.
Листинг программы:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("");
Console.WriteLine("Задание_1. Часть_2");
List<string> zadanie_1 = new List<string>() { "djkfgjhnd", "fshgsf", "sdgsdaw", "sdbgsfdv" };
for (int i = 0; i < zadanie_1.Count; i++)
{
Console.WriteLine(zadanie_1[i]);
}
Console.WriteLine("Введите комбинацию букв");
char slovo = Convert.ToChar(Console.ReadLine());
foreach (string zadanie in zadanie_1)
{
for (int i = 0; i < zadanie.Length; i++)
{
if (zadanie[i] == slovo)
{
Console.WriteLine(zadanie);
break;
}
}
}
}
}
Вывод:
Задание 2.
Объедините два списка в один без использования копиpования в следующем поpядке: 1-й элемент 1-го списка, 1-й элемент 2-го списка; 2-й
элемент 1-го списка, 2-й элемент 2-го списка и т.д.
Листинг программы:
class Program
{ список копиpование алгоритмическая задача
static void Main(string[] args)
{
Console.WriteLine("");
Console.WriteLine("Задание_2. Часть_2.");
Console.WriteLine("");
List<int> zadanie_2 = new List<int>()
{
1,3,5,7,9,11,13,15,17,19
};
List<int> zadanie_2_2 = new List<int>()
{
2,4,6,8,10,12,14,16,18,20
};
foreach ((int zadanie2, int zadanie2_2) in zadanie_2.Zip(zadanie_2_2))
{
Console.Write(" " + zadanie2 + " " + zadanie2_2);
}
}
Вывод:
Вывод: Научился работать с коллекциями.
Размещено на Allbest.ru
...Подобные документы
Средства создания динамических структур данных. Формат описания ссылочного типа. Структура памяти во время выполнения программы. Линейные списки, стек, очередь. Организация списков в динамической памяти. Пример создания списка в обратном порядке.
лабораторная работа [788,2 K], добавлен 14.06.2009Средства выделения и освобождения памяти. Динамические структуры данных. Связные линейные списки и их машинное представление. Структура одно- и двухсвязного списка. Реализация операций над связными линейными списками. Разработка программы на языке С++.
курсовая работа [944,7 K], добавлен 14.03.2015Понятия и методика создания списков и баз данных в Microsoft Excel. Фильтрация списков, виды сортировки данных и структурирования листа. Сортировка с помощью списка автозаполнения и "слева направо". Создание сводки о реализации товара за один день.
курсовая работа [618,3 K], добавлен 25.04.2013Линейные динамические структуры. Построение списочной структуры, состоящей из трехнаправленного и двух однонаправленных списков, связанных между собой. Дерево двоичного поиска для заданного множества целых чисел. Листинг программы на языках Си и Паскаль.
курсовая работа [451,1 K], добавлен 19.10.2013Проблемы с организацией данных. Определение и классификация динамических структур данных. Линейные односвязные, двухсвязные, кольцевые списки. Очередь, стеки. Описание основных типов данных и функции для работы с ними. Листинг программы, пример ее работы.
контрольная работа [290,6 K], добавлен 17.07.2012Понятие и обработка списков. Имя домена списка. Примеры записи списков. Основные принципы работы со списками. Рекурсивная программа обработки списка. Определение номера элемента или элемента по номеру. Решение задач, использующих структуру графа.
презентация [65,0 K], добавлен 29.07.2012Написание программы, исходя из конкретных данных. Создание двунаправленного линейного списка. Main - главная программа, содержащая меню. Занесение данных в память списка. Результирующий файл. Значения всех числовых данных из диапазона целого типа данных.
курсовая работа [2,3 M], добавлен 22.12.2010Изучение тегов для создания списков и таблиц в HTML, основных атрибутов тегов. Практические навыки создания списков и таблиц в HTML-документах. Нумерованные, маркированные и вложенные списки, список определений. Выравнивание данных в ячейках таблицы.
контрольная работа [322,1 K], добавлен 09.08.2014Использование метода абстракции в программировании на примере построения польской записи выражения с помощью стека. Абстрактные типы данных. Анализ классов реализации списков. Вставка и удаление элемента в список. Вычисление значения выражения на стеке.
презентация [166,7 K], добавлен 19.10.2014Разработка простейших классов на примере разработки моделей элементарных объектов и динамических информационных структур (одно и двунаправленных списков). Разработка простых классов. Вызывающая программа (main). Информационные динамические структуры.
творческая работа [17,5 K], добавлен 08.12.2007Реализация линейных списков в языке программирования C++. Основные операции при работе с ними. Разработка интерфейса и алгоритмов. Описание работы программы на псевдокоде. Составление программного кода. Тестирование, отладка и результат работы программы.
курсовая работа [1,1 M], добавлен 07.01.2014Представление (построение, создание) списка данных в виде линейного однонаправленного списка. Формирование массива данных. Вывод данных на экран. Алгоритм удаления, перемещения данных. Сортировка методом вставки. Алгоритм загрузки данных из файла.
курсовая работа [2,1 M], добавлен 16.05.2015Выбор алгоритма решения задачи. Разработка программы, обеспечивающую эффективную обработку и хранение информации с использованием линейных списков. Написание программы на псевдокоде и на языке программирования высокого уровня. Результаты работы программы.
курсовая работа [2,1 M], добавлен 21.04.2012Требование к структуре данных в базе, описание ее вида, содержание объектов. Используемые форматы данных. Алгоритмы и их особенности. Функциональное описание разработки. Описание пользовательского интерфейса. Контрольные примеры, временные характеристики.
курсовая работа [1,5 M], добавлен 06.04.2016Разработка информационной системы с применением динамических структур данных. Назначение и область применения разрабатываемой программы по регистрации больных в поликлинике. Структурная схема фрагмента информационной системы, таблица имен и списков.
курсовая работа [325,6 K], добавлен 05.12.2013Изображения древовидной структуры. Десятичная система обозначений Дьюи. Стандартные формы представления деревьев. Представление деревьев с использованием списков, с использованием списков сыновей. Полное бинарное дерево. Основные операции над кучей.
презентация [495,0 K], добавлен 19.01.2014Исследование существующих методов организации динамических структур данных. Методы реализации мультисписковых структур используя особенности языка C++. Физическая структура данных для сохранения в файл. Разработка алгоритмов и реализация основных функций.
курсовая работа [504,1 K], добавлен 25.01.2015Операции, осуществляемые с однонаправленными списками. Порядок создания однонаправленного списка, вставка и удаление элементов. Алгоритмы основных операций с двунаправленными списками. Примеры реализации однонаправленных и двунаправленных списков.
курсовая работа [172,7 K], добавлен 20.01.2016Состав пакета MS Office и создание списков. Оформление маркированных и многоуровневых списков. Создание баз данных в Microsoft Exсel и Access, межтабличных связей для автоматического формирования ведомости остатков вкладов с начисленными процентами.
курсовая работа [323,9 K], добавлен 25.04.2013Архитектура персональных компьютеров, классификация сетей (глобальные, региональные, локальные), методы доступа к передаче данных и протоколы. Динамические структуры данных; списки, их основные виды и способы реализации; технологии программирования.
шпаргалка [584,9 K], добавлен 09.03.2010