Помощь студентам дистанционного обучения: тесты, экзамены, сессия
Помощь с обучением
Оставляй заявку - сессия под ключ, тесты, практика, ВКР
Скоро вступительные экзамены?

Лабораторная работа по программированию (Вариант 7)



Помощь с дистанционным обучением
Получи бесплатный расчет за 15 минут
 

Введите контактный e-mail:

 

Введите номер телефона

 

Что требуется сделать?

 

Каким способом с Вами связаться?:

E-mail
Телефон
Напишем вам на вашу почту
 
Перезвоним вам для уточнения деталей
 
Перезвоним вам для уточнения деталей
 

или напишите нам прямо сейчас

Написать в WhatsApp
 

Введение
Линейный список – это последовательность из нуля или более элементов (узлов), главной особенностью которого является такое относительное расположение узлов, будто они образуют одну линию. Если в линейном списке n>0 элементов, то узел j[k] (0<k<n) следует непосредственно за j[k-1] и предшествует j[k+1]. В общем случае над линейными списками могут быть определены девять операций:
1. Доступ к узлу k для просмотра или модификации хранимых данных;
2. Вставка нового узла непосредственно перед или после узла k;
3. Удаление узла k;
4. Объединение линейных списков в новом списке;
5. Разбиение списка на линейные списки;
6. Копирование списка;
7. Нахождение количества узлов списка;
8. Сортировка узлов списка в некотором порядке, определяемом содержимым записанных в узле данных;
9. Поиск узла в соответствии со значением, связанным с содержимым записанных в узле данных.
Следует выделить особые случаи, когда обрабатывается первый или последний элемент списка, поскольку доступ к таким узлам организовать проще, чем к остальным.
Модуль GraphABC представляет собой простую графическую библиотеку и предназначен для создания несобытийных графических и анимационных программ в процедурном и частично в объектном стиле. Рисование осуществляется в специальном графическом окне, возможность рисования в нескольких окнах отсутствует. Кроме этого, в модуле GraphABC определены простейшие события мыши и клавиатуры, позволяющие создавать элементарные событийные приложения. Основная сфера использования модуля GraphABC – обучение.

Основная часть

Задача 1
Используйте линейные списки для хранения последовательности чисел. Опишите процедуру, которая удаляет:
а) из списка второй элемент, если такой есть;
б) из непустого списка последний элемент.
Используемые переменные
N – данные списка (количество элементов списка);
X – указатель на элемент списка;
L, p, s – списки;
i – счетчик цикла.
Алгоритм решения задачи
1. Создадим список – введем количество элементов и заполним список элементами;
2. Выводим полученный список на экран;
3. Вызываем процедуру, которая формирует новый список из исходного – в случае, если второй (следующий за первым) узел списка не пуст, он удаляется из списка;
4. Выводим новый список на экран;
5. Вызываем процедуру, которая формирует новый список из исходного – первый узел списка сохраняется в промежуточной переменной, узлы переданного списка просматриваются в цикле, и в случае, если достигнут последний элемент списка, он удаляется из него;
6. Выводим полученный список на экран.
Исходный код программы
{- описание типа списка -}
type
list = ^node;
node = record
info: integer;
next: list;
end;

{- описание переменных -}
var
s, l: list;
x, n, i: integer;

{ — процедура, которая из списка L удаляет последний элемент — }
procedure remove_last(var l: list);
var
p: list;
begin
if l^.next = nil then begin
dispose(l);
l := nil;
end
else begin
p := l;
while p^.next^.next <> nil do
p := p^.next;
dispose(p^.next);
p^.next := nil;
end;
end;

{ — процедура, которая из списка L удаляет второй элемент — }
procedure remove_second(var l: list);
var
p: list;
begin
if l^.next <> nil then
l^.next := l^.next^.next;
end;

{- процедура печати списка L -}
procedure out_list(l: list);
begin
while l <> nil do
begin
s := l^.next;
write(l^.info, ‘ ‘);
l := s;
end;
writeln;
end;

{- процедура освобождения памяти, выделенной для каждого из списков -}
procedure free_list(var l: list);
begin
while l <> nil do
begin
s := l^.next;
dispose(l);
l := s;
end;
end;

begin
{формируем список}
s := nil;
write(‘Введите количество элементов списка: ‘);
readln(n);
writeln(‘Введите элементы списка по одному: ‘);
for i := 1 to n do
begin
new(l);
l^.next := s;
readln(x);
l^.info := x;
s := l;
end;
{выводим список на экран}
writeln(‘Введенный список: ‘);
out_list(l);

{- формируем новый список и выводим его -}
remove_second(l);
writeln(‘Список после удаления второго элемента: ‘);
out_list(l);

remove_last(l);
writeln(‘Список после удаления последнего элемента: ‘);
out_list(l);

{- освобождаем память -}
free_list(l);

readln;
end.

Задача 2

Построить лемнискату — кривую, уравнение которой в полярных координатах
 = a√2 cos(2), a > 0.
Используемые переменные
x, x0 – расположение графического объекта для представления элемента по оси абсцисс;
y, y0 – расположение графического объекта для представления элемента по оси ординат;
m – переменная для отрисовки координатной сетки;
a – коэффициент;
r – значение формулы;
f – величина угла;
s – строка с надписями;
i – счетчик цикла.
Алгоритм решения задачи
1.Инициируем модуль graph;
2.Устанавливаем начальные значения переменных;
3.В цикле рисуем линии и подписи координатной сетки;
4.Кладем f = 0.
5.Пока f не превосходит удвоенного числа пи, выполнить:
5.1Найти новое значение r для f в точке (x, y);
5.2Поставить r на форме;
5.3Увеличить f на величину шага.
Исходный код программы
uses graphABC;
var
x0, y0, i, x, y: integer;
r, a, m, f: real;
s: string;

begin
a := 2;
x0 := windowwidth div 2;
y0 := windowheight div 2;
m := (x0 — 50) / (a * sqrt(2));
line(0, y0, 2 * x0, y0);
line(x0, 0, x0, 2 * y0);
for i := 1 to 2 * (trunc(a * sqrt(2)) + 1) do
begin
line(x0 + round(i * m / 2), y0 — 3, x0 + round(i * m / 2), y0 + 3);
line(x0 — round(i * m / 2), y0 — 3, x0 — round(i * m / 2), y0 + 3);
line(x0 + 3, y0 — round(i * m / 2), x0 — 3, y0 — round(i * m / 2));
line(x0 + 3, y0 + round(i * m / 2), x0 — 3, y0 + round(i * m / 2));
str(i / 2:0:1, s);
textout(x0 + round(i * m / 2), y0 + 10, s);
textout(x0 — round(i * m / 2), y0 + 10, ‘-‘ + s);
textout(x0 — 20, y0 — round(i * m / 2), s);
textout(x0 — 25, y0 + round(i * m / 2), ‘-‘ + s);
end;
f := 0;
while f <= 2 * pi do begin if cos(2 * f) >= 0 then
begin
r := a * sqrt(2 * cos(2 * f));
x := x0 + round(r * cos(f) * m);
y := y0 — round(r * sin(f) * m);
setpixel(x, y, clRed);
end;
f := f + 0.001;
end;
end.

Блок-схемы
Рисунок 1. Блок-схема к задаче 1
Рисунок 2. Блок-схема к задаче 2
Тестирование программ
Рисунок 3. Результат работы программы для задания 1
Рисунок 4. Вид окна программы для задания 2 в процессе работы программы
Заключение
В ходе выполнения лабораторной работы были изучены базовые структуры данных, такие как линейные односвязные списки, и основные функции для работы со списками, а также изучен модуль GraphABC для создания программ в графическом режиме на языке программирования Pascal. Были выполнены две программы по каждой из этих тем, построены блок-схемы и описаны алгоритмы их решения.

Помощь с дистанционным обучением
Получи бесплатный расчет за 15 минут
 

Введите контактный e-mail:

 

Введите номер телефона

 

Что требуется сделать?

 

Каким способом с Вами связаться?:

E-mail
Телефон
Напишем вам на вашу почту
 
Перезвоним вам для уточнения деталей
 
Перезвоним вам для уточнения деталей
 

или напишите нам прямо сейчас

Написать в WhatsApp
 

Оставить комментарий

 

Ваше имя:

Ваш E-mail:

Ваш комментарий

Inna Petrova 18 минут назад

Нужно пройти преддипломную практику у нескольких предметов написать введение и отчет по практике так де сдать 4 экзамена после практики

Иван, помощь с обучением 25 минут назад

Inna Petrova, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Коля 2 часа назад

Здравствуйте, сколько будет стоить данная работа и как заказать?

Иван, помощь с обучением 2 часа назад

Николай, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Инкогнито 5 часов назад

Сделать презентацию и защитную речь к дипломной работе по теме: Источники права социального обеспечения. Сам диплом готов, пришлю его Вам по запросу!

Иван, помощь с обучением 6 часов назад

Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Василий 12 часов назад

Здравствуйте. ищу экзаменационные билеты с ответами для прохождения вступительного теста по теме Общая социальная психология на магистратуру в Московский институт психоанализа.

Иван, помощь с обучением 12 часов назад

Василий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Анна Михайловна 1 день назад

Нужно закрыть предмет «Микроэкономика» за сколько времени и за какую цену сделаете?

Иван, помощь с обучением 1 день назад

Анна Михайловна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Сергей 1 день назад

Здравствуйте. Нужен отчёт о прохождении практики, специальность Государственное и муниципальное управление. Планирую пройти практику в школе там, где работаю.

Иван, помощь с обучением 1 день назад

Сергей, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Инна 1 день назад

Добрый день! Учусь на 2 курсе по специальности земельно-имущественные отношения. Нужен отчет по учебной практике. Подскажите, пожалуйста, стоимость и сроки выполнения?

Иван, помощь с обучением 1 день назад

Инна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Студент 2 дня назад

Здравствуйте, у меня сегодня начинается сессия, нужно будет ответить на вопросы по русскому и математике за определенное время онлайн. Сможете помочь? И сколько это будет стоить? Колледж КЭСИ, первый курс.

Иван, помощь с обучением 2 дня назад

Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Ольга 2 дня назад

Требуется сделать практические задания по математике 40.02.01 Право и организация социального обеспечения семестр 2

Иван, помощь с обучением 2 дня назад

Ольга, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Вика 3 дня назад

сдача сессии по следующим предметам: Этика деловых отношений - Калашников В.Г. Управление соц. развитием организации- Пересада А. В. Документационное обеспечение управления - Рафикова В.М. Управление производительностью труда- Фаизова Э. Ф. Кадровый аудит- Рафикова В. М. Персональный брендинг - Фаизова Э. Ф. Эргономика труда- Калашников В. Г.

Иван, помощь с обучением 3 дня назад

Вика, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Игорь Валерьевич 3 дня назад

здравствуйте. помогите пройти итоговый тест по теме Обновление содержания образования: изменения организации и осуществления образовательной деятельности в соответствии с ФГОС НОО

Иван, помощь с обучением 3 дня назад

Игорь Валерьевич, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Вадим 4 дня назад

Пройти 7 тестов в личном кабинете. Сооружения и эксплуатация газонефтипровод и хранилищ

Иван, помощь с обучением 4 дня назад

Вадим, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Кирилл 4 дня назад

Здравствуйте! Нашел у вас на сайте задачу, какая мне необходима, можно узнать стоимость?

Иван, помощь с обучением 4 дня назад

Кирилл, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Oleg 4 дня назад

Требуется пройти задания первый семестр Специальность: 10.02.01 Организация и технология защиты информации. Химия сдана, история тоже. Сколько это будет стоить в комплексе и попредметно и сколько на это понадобится времени?

Иван, помощь с обучением 4 дня назад

Oleg, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Валерия 5 дней назад

ЗДРАВСТВУЙТЕ. СКАЖИТЕ МОЖЕТЕ ЛИ ВЫ ПОМОЧЬ С ВЫПОЛНЕНИЕМ практики и ВКР по банку ВТБ. ответьте пожалуйста если можно побыстрее , а то просто уже вся на нервяке из-за этой учебы. и сколько это будет стоить?

Иван, помощь с обучением 5 дней назад

Валерия, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Инкогнито 5 дней назад

Здравствуйте. Нужны ответы на вопросы для экзамена. Направление - Пожарная безопасность.

Иван, помощь с обучением 5 дней назад

Здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Иван неделю назад

Защита дипломной дистанционно, "Синергия", Направленность (профиль) Информационные системы и технологии, Бакалавр, тема: «Автоматизация приема и анализа заявок технической поддержки

Иван, помощь с обучением неделю назад

Иван, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru

Дарья неделю назад

Необходимо написать дипломную работу на тему: «Разработка проекта внедрения CRM-системы. + презентацию (слайды) для предзащиты ВКР. Презентация должна быть в формате PDF или формате файлов PowerPoint! Институт ТГУ Росдистант. Предыдущий исполнитель написал ВКР, но работа не прошла по антиплагиату. Предыдущий исполнитель пропал и не отвечает. Есть его работа, которую нужно исправить, либо переписать с нуля.

Иван, помощь с обучением неделю назад

Дарья, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@the-distance.ru