Лабораторная работа № 1.
«ПОЛУСТАТИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ (СТЕКИ)» Цель работы: исследовать и изучить стеки.
Задача работы: овладеть навыками написания программ по исследованию стеков на языке программирования С#.
Порядок работы:
изучить описание лабораторной работы;
по заданию, данному преподавателем, разработать алгоритм программы решения задачи;
написать программу на языке С#;
отладить программу;
решить задачу;
оформить отчет.
Краткая теория
Понятие очереди всем хорошо известно из повседневной жизни. Элементами очереди в общем случае являются заказы на то или иное обслуживание: выбить чек на нужную сумму в кассе магазина, получить нужную информацию в справочном бюро, выполнить очередную операцию по обработке детали на данном станке в автоматической линии и т.д.
В программировании имеется структура данных, которая называется очередь. Эта структура данных используется, например, для моделирования реальных очередей с целью определения их характеристик (средняя длина очереди, время пребывания заказа в очереди и т.п.) при данном законе поступления заказов и дисциплине их обслуживания.
По своему существу очередь является полустатическойструктурой — с течением времени и длина очереди, и набор образующих ее элементов могут изменяться.
Различают два основных вида очередей, отличающихся по дисциплине обслуживания находящихся в них элементов :
1. При первой из дисциплин заказ, поступивший в очередь первым, выбирается первым для обслуживания (и удаляется из очереди). Эту дисциплину обслуживания принято называть FIFO (Firstinput-Firstoutput, т.е. первый пришел — первый ушел). Очередь открыта с обеих сторон.
Вторую дисциплину принято называть LIFO (Lastinput — Firstoutput, т.е. последний пришел — первый ушел), при которой на обслуживание первым выбирается тот элемент очереди, который поступил в нее последним. Очередь такого вида в программировании принято называть СТЕКОМ (магазином) — это одна из наиболее употребительных структур данных, которая оказывается весьма удобной при решении различных задач.
В силу указанной дисциплины обслуживания, в стеке доступна единственная его позиция, которая называется ВЕРШИНОЙ стека — эта позиция, в которой находится последний по времени поступления в стек элемент. Когда мы заносим новый элемент в стек, то он помещается поверх вершины и теперь уже сам находится в вершине стека. Выбрать элемент можно только из вершины стека; при этом выбранный элемент исключается из стека, а в его вершине оказывается элемент, который был занесен в стек перед выбранным из него элементом (структура с ограниченным доступом к данным).
Алгоритм
ОПЕРАЦИИ НАД СТЕКАМИ:
— PUSH ( s , i ) — занесение элемента в стек, где s — название стека, i — элемент, который заносится в стек;
— POP ( s ) — выборка элемента из стека. При выборке элемент помещается в рабочую область памяти, где он используется;
— EMPTY ( s ) — проверка стека на пустоту (true — пуст, false — не пуст);
— STACKTOP ( s ) — чтение верхнего элемента без его удаления.
Фрагмент программы создания стека (необходимые процедуры) на языке PASCAL
Program STACK;
const
max_st=50;
const
max_st=50;
var
st,st2: array[1..max_st] of integer;
n:integer;
functionempty:boolean; {Проверка стека на наличие элементов в нем}
begin
empty:=n=0
end;
procedure push(a:char); {Поместитьэлементвстек}
begin
inc(n);
st[n]:=a;
end;
procedure pop(var a:char); {Извлечьэлементизстека}
begin
a:=st[n];
dec(n);
end;
function full:boolean; {Проверканапереполнение}
begin
Full:=n=max_st
end;
procedure stacktop(var a:char); {Узнатьверхнийэлемент}
begin
a:=st[n];
end;
begin {Основная программа}
.
.
.
end.
Задание 1: Сформулировать условие задачи, в результате решения которой будет написана следующая программа на языке С#
Пример реализации программы на языке С# с использованием встроенных библиотек (коллекции Stack) для работы со стеками.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp9
{
class Program
{
static void Main(string[] args)
{
Stack
Stack
int ukazatel = 1;
int kol = 0;
do
{
Console.WriteLine(«Введитечисло:»);
S.Push(Convert.ToInt32(Console.ReadLine()));
kol++;
Console.WriteLine(«Продолжитьввод — 1, завершитьввод — 2»);
ukazatel = Convert.ToInt32(Console.ReadLine());
}
while (ukazatel == 1);
int x = kol / 2;
int c = 0;
if (kol % 2 == 1)
{
while (x > c)
{
int a = S.Pop();
F.Push(a);
c++;
}
S.Pop();
while (S.Count> 0)
{
int d = S.Pop();
F.Push(d);
}
}
else
{
while (x > c)
{
int a = S.Pop();
F.Push(a);
c++;
}
F.Pop();
S.Pop();
while (S.Count> 0)
{
int d = S.Pop();
F.Push(d);
}
}
Console.WriteLine(«Новыйстек:»);
while (F.Count> 0)
{
Console.WriteLine(Convert.ToString(F.Pop() + «»));
}
Console.ReadKey();
}
}
}
Задание 2: Напишите программу на языке С# без использования встроенных библиотек (коллекции Stack) согласно варианту.
Варианты заданий:
1.Поменять местами первый и последний элементы стека.
2.Развернуть стек, т.е. «дно» стека сделать вершиной, а вершину — «дном».
3.Удалить элемент, который находится в середине стека, если нечетное число элементов, а если четное, то два средних.
4.Удалить каждый второй элемент стека.
5.Вставить символ ‘*’ в середину стека, если четное число элементов, а если нечетное, то после среднего элемента.
6.Найти минимальный элемент и вставить после него 0.
7.Найти максимальный элемент и вставить после него 0.
8.Удалить минимальный элемент.
9.Удалить все элементы, равные первому.
10.Удалить все элементы, равные последнему.
11.Удалить максимальный элемент.
12.Найти минимальный элемент и вставить на его место 0. Также у нас Вы можете заказать диплом недорого заказать дипломную работу цена написание дипломных работ на заказ написать диплом на заказ стоимость купить готовую дипломную купить диплом вкр купить готовый диплом где купить дипломную работу написание диплома на заказ цена сколько стоит вкр на заказ заказать вкр срочно
заказать вкр недорого вкр купить цены где заказать вкр вкр на заказ диссертация купить диссертацию купить кандидатскую диссертацию купить магистерскую диссертацию купить практическую работу помощь студентам сессия под ключ сессия под ключ дистанционно сессия под ключ тусур заказать дипломную работу где заказать дипломную работу купить курсовую работу купить готовую курсовую работу купить курсовую работу недорого заказать курсовую работу заказать курсовую работу недорого
#заказатьдипломнедорого #заказатьдипломнуюработуцена
#написаниедипломныхработназаказ #написатьдипломназаказ #заказатьвкр #заказатькурсовуюнедорого #заказатькурсовуюработуцена #написаниекурсовыхработназаказ #написатькурсовуюназаказ #купитьготовуюкурсовуюработу
или напишите нам прямо сейчас:
Вам может быть интересно:
Здравствуйте, меня интересуют примерные тесты по биотехническим технологиям
Инга, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Здравствуйте! Нужно сдать сессию под ключ ММУ
Валерия, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Здравствуйте! ВКР ММУ выполняете?
Дмитрий, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Отчет по Ознакомительная практика ММУ 2 семестр электроэнергетика и электротехника
Кристина, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Преддипломная практика | П.В | Производственная практика ММУ по направлению 20.03.01 Техносферная безопасность.__2. Научно-исследовательская работа | П.В | Производственная практика
Анна, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Учебная практика. Дистанционное обучение в колледже ММУ. Торговое дело 1 семестр
Владимир, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
сдать вступительный экзамены , на менеджер в энергетике, ММУ
Иван, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Технологическая (проектно-технологическая) практика | П.В | Производственная практика / институт ВТУ ММУ факультет Техносферная безопасность профиль Пожарная безопасность
Оксана, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Подскажите, пожалуйста, сколько будет стоить закрыть предмет на 2 курсе ММУ, просто тесты?
Андрей, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Колледж ММУ специальность Оператор диспетчерской службы.__Онлайн тесты за 1 семестр и отчет об учебной практике ПМ.01, 02, 03
Екатерина, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Анатомия 1 курс 2 семестр в ММУ
Юлия, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
«Системы обеспечения производственной безопасности» для ММУ__Курсовая на одну из тем.
Дарья, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Сессию дистанционно в ММУ
Ангелина, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Здравствуйте, нужна помощь по сдаче вступительных тестов ММУ русский,информационные технологии,математика (инженерно-технический профиль)
Кирилл, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!
Ответы на вступительные экзамены в ММУ
Артём, здравствуйте! Поможем с подготовкой материалов для Вашего учебного проекта. Прошу Вас прислать подробное задание (методичка, заданий от кафедры, бланки, комментарии — всё, что есть) на почту 3227505@mail.ru. Я посмотрю и напишу Вам ответ на почту в самые сжатые сроки. Спасибо!