Линейные динамические структуры данных в 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.