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

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

Автор статьи
Валерия
Валерия
Наши авторы
Эксперт по сдаче вступительных испытаний в ВУЗах
Введение Линейный список – это последовательность из нуля или более элементов (узлов), главной особенностью которого является такое относительное расположение узлов, будто они образуют одну линию. Если в линейном списке 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. Были выполнены две программы по каждой из этих тем, построены блок-схемы и описаны алгоритмы их решения.

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

Написать в WhatsApp Написать в Telegram

О сайте
Ссылка на первоисточник:
https://фэк.рф
Поделитесь в соцсетях:

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

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