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

Лабораторная работа на тему массивы и множества



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

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

 

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

 

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

 

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

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

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

Написать в WhatsApp
 

Введение.

Данная лабораторная работа посвящена разработке программ на языке программирования Pascal с использованием массивов и множеств. При разработке программы требуется определить входные и выходные данные, а так же разработать алгоритм решения задачи не прибегая к использованию меток и операторов безусловного перехода.

Массив – это упорядоченная последовательность однотипных элементов определенной длины, имеющая общее имя. Номер элемента в последовательности называется индексом. Количество элементов в массиве не может быть изменено в процессе выполнения программы. Элементы массива размещаются в памяти последовательно и нумеруются от 1 до n, где n – их количество в массиве. К каждому элементу массива имеется прямой доступ. При работе с массивами в программе они должны быть объявлены (описаны), т.е. указаны имя массива, тип элементов массива, его размерность.

Массивы на языке программирования Pascal описываются как:

Одномерный массив

Имя_массива: array [1..n] of (тип данных содержащийся в массиве)

Двумерный массив

Имя_массива: array [1..n,1..m] of (тип данных содержащийся в массиве)

Множеством называется совокупность однотипных элементов, рассматриваемых как единое целое. В Паскале могут быть только конечные множества. В отличие от элементов массива элементы множества не пронумерованы, не упорядочены. Каждый отдельный элемент множества не идентифицируется, и с ним нельзя выполнить какие-либо действия. Действия могут выполняться только над множеством в целом.

Множества могут быть описаны двумя способами:

  1. Type имя_типа= Set Of базовыйтип;

Var имя_множества: имя_типа;

  1. Var имя_множества: Set Of базовый тип;

В Паскале реализованы основные операции теории множеств. Это объединение, пересечение, разность множеств. Во всех таких операциях операнды и результаты есть множественные величины одинакового базового типа.

Множества можно сравнивать между собой, т.е. для них определены операции отношения. Результатом отношения является логическая величина true или false. Для множеств применимы все операции отношения, за исключением > и <.

Операция вхождения. Эта операция устанавливает связь между множеством и скалярной величиной, тип которой совпадает с базовым типом множества. Если x – такая скалярная величина, а M – множество, то операция вхождения записывается так: x In M. Результат – логическая величина true, если значение x входит в множество  M, и false — в противном случае.

Задание 1.

Дана последовательность из n целых чисел. Определить количество инверсий в этой последовательности (т.е. таких пар элементов, в которых большое число находится слева от меньшего: x i > x j при i < j).

Алгоритм решения задачи:

Определяем массив со 100 элементами типа integer. Вводим с клавиатуры n – сколько элементов будет в последовательности. Последовательность вводим с помощью цикла с параметром. Во втором цикле с параметром до n-1 попарно сравниваем числа последовательности и если выполняется условие, что элемент массива меньше следующего за ним то увеличиваем счетчик k на 1. По окончании цикла выводим k.  Для этого:

  1. Вводим n – количество элементов последовательности. Для избегания ввода нулевого или отрицательного значения n запускаем цикл repeat с условием ввода (n<100) and (n>0).
  2. Запускаем цикл с параметром I от 1 до n;
  3. в цикле вводим a[i];
  4. переменной подсчета инверсий присваиваем значение 0;
  5. запускаем цикл с параметром i от 1 до i-1;
  6. в цикле если a[i]>a[i+1] то увеличиваем k на 1;
  7. вывод k.

Переменные используемые в программе:

Тип byte выбран поскольку отвечает требованиям задачи – целое положительное число до 255, тип integer выбран для последовательности a для возможности указывать отрицательные числа.

n: тип integer — количество элементов последовательности a, нужна проверка на ввод больших чисел и отрицательных;

i: тип byte — счетчик циклов;

a[]: тип integer – элемент последовательности;

k: тип byte – количество инверсий последовательности.

Блок-схема программы.

Рисунок 1 — Блок-схема решения задачи 1

Текст программы.

program lab2_1;

var a: array[1..100] of integer;// массив для хранения 100 эл последовательности

n: integer; // количество элементов последовательности

i: byte; // счетчик цикла

k: byte; // количество инверсий

begin

  write(‘Введите количество элементов в последовательности n(<100)= ‘);

repeat

  readln(n);

until (n<100) and (n>0);

writeln(‘Введите последовательность’);

for i:=1 to n do readln(a[i]); // ввод последовательности

k:=0;

for i:=1 to n-1 do

  begin // поиск инверсий

if a[i]>a[i+1] then   k:=k+1;

end;

writeln(‘количество инверсий = ‘,k);//вывод результата

end

Результат работы  программы.

Рисунок 2 — результат работы программы

Рисунок 3 — результат работы программы

Рисунок 4 — результат работы программы

Задание 2.

Дана строка. В алфавитном порядке напечатайте (по разу) все строчные латинские согласные буквы, входящие в эту строку.

Указание: гласные буквы — а, e, i, o, u; остальные — согласные.

Алгоритм решения задачи.

В данной задаче необходимо сформировать множество согласных букв как разность множеств всего алфавита и множества гласных букв. Из введенной строки символов выделяем в цикле каждый символ и сравниваем его на вхождение в множества согласных и если его нет в множестве результата заносим его в множество результата. Затем, в другом цикле перебираем все символы алфавита и если символ входит в множество результата, то выводим его на экран.

Для этого:

  1. вводим строку символов s, для контроля ввода строки;
  2. вводим множества алфавита, множество гласных букв, множество согласных как разность множеств, задаем пустое множество для хранения согласных символов из строки;
  3. запускаем цикл с параметром I от 1 до величины длины введенной строки для перебора символов в строке;

4.если символ строки входит в множество согласных и его нет в множестве результата, то заносим его в множество результата rez; цикл i;

  1. запускаем цикл для символьной переменной с от a до z;

6.если с входит в множество rez то выводим с на экран.

Переменные используемые в программе:

Введенная строка  — s  строковый тип,

Символ алфавита с –символьный тип,

Индекс символа в строке I – тип короткое положительное целое byte,

Множество алфавита alf1;

Множество гласных gl;

Множество согласных sogl;

Множество результата rez.

Блок-схема.

Рисунок 5 — блок-схема 2 задания

Текст программы

program lab2_2;

var

  s:string;

alf1, gl, sogl, rez: set of ‘a’..’z’;

i: byte;

c:char;

begin

    alf1:=[‘a’..’z’]; // множество алфавита

gl:=[‘a’,’e’,’i’,’o’,’u’]; // множество гласных

sogl:=alf1-gl; // множество согласных как разность множеств

rez:=[]; // множество будет содержать согласные буквы строки

write(‘введите строку > ‘);

readln(s); // ввод строки

for i:=1 to length(s) do // перебор символов в строке

begin

      // если символ входит в множество согласных

//и он встречается впервые то добавляем его в результат

if (s[i] in sogl) and not(s[i] in rez) then  rez:=rez+[s[i]];

end;

// перебор символов алфавита и печать тех которые входят в множество строки

for c:=’a’ to ‘z’ do if c in rez then writeln(c);

end.

Результат работы программы.

Рисунок 6 — результат работы программы 2 задания

Рисунок 7 — результат работы программы 2 задания

Рисунок 8 — результат работы программы 2 задания

Заключение.

В ходе выполнения заданий лабораторной работы был изучен теоретический материал об языку программирования Pascal его операторах и способах решения задач с использованием данного языка. Были изучены способы работы с массивами и множествами.

Для каждого задания был проведен анализ задачи, составление словесного алгоритма решения и алгоритма с помощью блок-схем. После чего алгоритмы были записаны на языке программирования Pascal и отлажены.

Полученные в ходе работы навыки программирования и знания об языке 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