ЛАБОРАТОРНАЯ РАБОТА
по дисциплине “Основы программирования”
на тему
Алгоритмические языки: использование множеств
Цель работы: получение навыков работы с множествами.
Постановка задачи:
1. Изучить способы описания и использования множеств.
2. Разработать алгоритм и составить программу для решения задачи соответствующего варианта.
Задание к работе:
1. Найти в последовательности целых чисел такие, которые встречаются в ней ровно два раза.
2. Набрать программу, отладить ее, протестировать. Распечатать текст программы и результаты ее работы на тестовых данных.
3. Подобрать наборы тестовых данных.
Ход выполнения работы
Блок-схема:
Рисунок 1. Блок-схема программы.
-
+
Рисунок 2. Блок-схема элемента Code программы.
-
+
-
+
Рисунок 3. Блок-схема элемента Code2 программы.
Текст программы:
Program lab;
Uses crt;
Type
bin=byte;
maxlen=byte;
Const
max=100;
max_bin=255;
Var
a:array[1..max] of bin;
len:maxlen;
Procedure Vvod(Var a: array of bin;Var len:maxlen);
Var
x:maxlen;
begin
Write('Введите длинну последовательности: ');
Readln(len);
Writeln('Введите элементы последовательности: ');
for x:= 1 to len do
Begin
Write('a[',x,']=');
Readln(a[x]);
End;
End;
Procedure Code(a:array of bin;len:maxlen);
Var
x:maxlen;
b:array[1..max_bin] of byte;
Begin
for x:=1 to max_bin do b[x]:=0;
for x:=1 to len do inc(b[a[x]]);
for x:=1 to max_bin do if b[x]=2 then
Begin
Writeln('Число ',x,' повторяется ровно два раза');
End;
End;
Procedure Code2(a:array of bin;len:maxlen);
Var
b,c:set of bin;
x,y:maxlen;
k:byte;
Begin
y:=1;
b:=[];
c:=[];
for x:=1 to len do b:=b+[a[x]];
for y:=1 to len do
Begin
x:=0;
k:=0;
Repeat
Begin
inc(x);
if (a[x] in b)and(a[x]=a[y]) then inc(k);
End;
Until (x=len) or (k>2);
if k=2 then c:=c+[a[y]];
End;
for x:=1 to max_bin do if x in c then
Begin
Writeln('Число ',x,' повторяется ровно два раза');
End;
End;
Clrscr;
Begin
Vvod(a,len);
Writeln('Первый алгоритм: ');
Code(a,len);
Writeln('Второй алгоритм: ');
Code2(a,len);
End.
Результаты работы программы.
1) Введенные данные:
a[1]=1; a[2]=2; a[3]=3; a[4]=8; a[5]=10; a[6]=25; a[7]=44; a[8]=2; a[9]=9; a[10]=33;
Результаты работы программы
Первый алгоритм:
Числа повторяющиеся ровно два раза: 2;
Второй алгоритм:
Числа повторяющиеся ровно два раза: 2;
Рисунок 4. Результаты теста №1.
2) Введенные данные:
a[1]=1; a[2]=1; a[3]=2; a[4]=2; a[5]=3; a[6]=3; a[7]=4; a[8]=4;
Результаты работы программы
Первый алгоритм:
Числа, повторяющиеся ровно два раза: 1; 2; 3; 4;
Второй алгоритм:
Числа, повторяющиеся ровно два раза: 1; 2; 3; 4;
Рисунок 5. Результаты теста №2.
Другие работы по теме:
Бушменские языки
Число говорящих. Основные группы. Фонетическая структура. История изучения.
Теория множеств
Множества, подмножества. Операции с множествами: пересечение, деление, объединение.
Тема Кол-во страниц
Игровая деятельность в жизни ребенка. Психолого-педагогическая характеристика игры
Контрольные вопросы по логике
Что изучает логика. Что мы называем истиной и ложью. Когда возникла логика как наука. Зачем нужно изучать логику. Определение понятия. Какие функции выполняют понятия.
Контрольные вопросы по логике
Принципы моделирования. Теоретико-множественные средства моделирования. Средства моделирования логики высказываний. Средства моделирования логики предикатов. Логика научного познания. Доказательство и дедуктивный вывод. Виды индукции. Аналогия.
Множества Операции над множествами
РЕФЕРАТ Множества. Операции над множествами СОДЕРЖАНИЕ Способы задания множества Включение и равенство множеств Диаграммы Эйлера-Венна Операции над множествами
Задачи по Высшей математике
Вариант № 2 Задача 1 Найти объединение и пересечение множеств А и В, если А ={1;3;5} и B={0;1;2;-3;4;-5}. Решение: Объединение множеств А и В А В= {0;1;2;3;5;-3;4;-5},
Конспект по дискретной математики
Дискретная математика Введение Общество 21в. – общество информационное. Центр тяжести в решении задач переместился от задач вычислительной математики к задачам на дискретных структурах. Математика нужна не как метод расчета, а как метод мышлению средство формирования и организации…
Множества. Операции над множествами
Определение понятия множеств Г. Кантора, их примеры и обозначения. Способы задания, включение и равенство множеств, операции над ними: объединение, пересечения, разность, дополнение, их определение и наглядное представление на диаграмме Эйлера-Венна.
Логические формулы и операции Виды и правила вопросов
Логические операции Каждая логическая связка рассматривается как операция над логическими высказываниями и имеет свое название и обозначение. Выделяют следующие логические операции: инверсия; конъюнкция; дизъюнкция; импликация; эквиваленция.
Галло
Введение 1 Генетическая классификация и хронология 2 Характеристика 3 Примеры 3.1 Образец текста на галло с обильной диакритикой 3.2 Сравнительная лексика
Языки СССР
Введение 1 История 2 Письменность 3 Индоевропейские языки 3.1 Балтийские языки 3.2 Германские языки 3.3 Греко-фригийско-армянские языки 3.4 Иранские языки
Алгоритмы и блок-схемы
Понятие алгоритма, его назначение, представление (изобразительные средства для описания), типы, способы записи, схемы. Основные принципы разработки алгоритмов и программ. Характеристика языков программирования. Средства и правила построения блок-схем.
Алгоритмические языки: обработка одномерных массивов
Работа с массивами, их ввод и вывод, организация программ циклической структуры. Способы описания и использования массивов, алгоритмы их сортировки, сортировка выбором и вставками. Алгоритмы поиска элемента в неупорядоченном и упорядоченном массивах.
Алгоритмические языки: обработка массивов
Символьные типы данных, работа со строками, составление блок-схемы алгоритма и программы для работы с массивами. Организация программы с использованием процедур и функций. Процедуры и функции, использующиеся при обработке файлов; компонентные файлы.
ЛИСП-реализация основных операций над нечеткими множествами
Рассмотрение методов совершения основных операций (содержания, равенства, пересечения, объединения, разности, произведения, отрицания и дизъюнктивной суммы) над нечеткими множествами, их функциональных моделей и программной реализации решения задачи.
Введение в программирование
Сущность отладки, условия ее выполнения. Ошибки при компиляции программы, создание и изменение исходных символьных файлов. Процесс преобразования кода в машинный. Первый программист, виды трансляторов, классификация и уровни языков программирования.
Синтаксический анализ
(парсинг) В информатике, синтаксический анализ— это процесс сопоставления линейной последовательности лексем (слов, токенов) языка с его формальной грамматикой. Результатом обычно является дерево разбора (синтаксическое дерево). Обычно применяется совместно с лексическим анализом. Синтаксический анализатор (парсер) — это программа или часть программы, выполняющая синтаксический анализ.
Роль русского языка в современном мире
Единый язык русской нации, язык международного общения в современном мире. Усиливающееся влияние русского языка на другие языки. Замечательный язык мира по разнообразию грамматических форм и по богатству словаря, богатейшей художественной литературы.
Геометрические отношения объектов в геодезии
К свойствам объектов геодезии относят также геометрические отношения (связи) между элементами или множествами. Эти отношения принято делить на отображения и преобразования. При отображении происходит переход от одного множества объектов к другому, а при преобразовании – переходы производятся внутри одного множества.
Ляпунов Алексей Андреевич
Ляпунов Алексей Андреевич (1911-73), российский математик, член-корреспондент АН СССР (1964). Автор трудов по теории множеств, математическим вопросам кибернетики, математической лингвистике.
Александров Павел Сергеевич
Начав научную работу в области теории множеств и теории функций действительного переменного, Александров получил ряд замечательных результатов (теорему о мощности борелевых множеств).