Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Экспертная система (Индивидуальное задание) (4 балла).




Задания для практики по ЯП (60 баллов)

Си (17 баллов)

Седловые элементы (2 балла).

Срок сдачи на «5»: 15.09.2014

Срок сдачи на «4»: 22.09.2014

Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы напечатать индексы всех ее седловых точек.

Во входном текстовом файле задана матрица размерности M×N. В первой строке файла целые числа M и N. Далее в файле идут M строк в каждой из них по N целых чисел.

Вывести на экран (или в файл) позиции и значения всех седловых элементов.

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

Студенты (2 балла).

Срок сдачи на «5»: 22.09.2014

Срок сдачи на «4»: 29.09.2014

Во входном файле записана следующая информация о каждом из N студентов: фамилия, имя, отчество, пол, возраст, курс.

Написать программу, которая вводит эту информацию и печатает следующие данные:

А) отсортированный список студентов по ФИО

Б) самые распространенные имена;

Быстрая сортировка (2 балла).

Срок сдачи на «5»: 22.09.2014

Срок сдачи на «4»: 29.09.2014

Реализовать быструю сортировку (quick-sort – сортировка Хаара), либо любую другую за O(N*logN).

Проверить работоспособность сортировки и сравнить со стандартной.

#include <stdio.h>

#include <math.h>

#include <time.h>

#include <algorithm>

 

#define N 10

 

using namespace std;

 

int main(){

srand(time(NULL));

int a[N],b[N];

for (int i=0;i<N;i++)

       a[i]=b[i]=rand()%10+1;

sort(a,a+N);

ВашаСортировка(b,0,N-1);

ВыводМассива(a);

ВыводМассива(b);

return 0;

}

Битовые множества (3 балла).

Срок сдачи на «5»: 29.09.2014

Срок сдачи на «4»: 06.10.2014

Реализовать следующие функции для работы с битовыми множествами. Проверить их работоспособность.

/*-------------------- C O N V E R T _ T O _ B I T S -------------------*/

unsigned *convert_to_bits (unsigned *intstr)

{

...

}

/*---------------------------- B E L O N G -----------------------------*/

/* Функция belong. Осуществляет поиск указанного элемента в множестве.

Возвращает истину (не нуль) в случае наличия элемента, иначе ложь (нуль).

*/

int belong( element, set )

unsigned element; /* номер элемента, который ищем */

unsigned *set; /* множество, в котором ищем элемент */

{

...

}

 

/*----------------------- S e t D i s j u n c t ------------------------*/

/* Функция SetDisjunct. Осуществляет дизъюнкцию множеств set1 и set2.

Результатом становится множество set3.

*/

void SetDisjunct( set1, set2, set3 )

unsigned set1[], set2[], set3[];

{

...

}

Примечание: функция convert_to_bits работает до тех пор, пока не встретит конечный элемент (88) в массиве; функция SetDisjunct ожидает, что память под set3 уже выделена.

Выражение над множествами (4 балла).

Срок сдачи на «5»: 29.09.2014

Срок сдачи на «4»: 13.10.2014

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

Примеры выражений:

[1,2,3]*[3,4,5]+[1] = [1,3]

[1,2,3]*[3,4,5]-[1] = [3]

[1,2,3]*[3,4,5]-[3] = []

[1,2,3]*[3,4,5]-[3]-[3]+[6,7]*[1,3,6,9] = [6]

[1,2,3]*([2,4,6]+[3,5]) = [2,3]

Индивидуальное задание (по вариантам) (4 балла).

Срок сдачи на «5»: 06.10.2014

Срок сдачи на «4»: 20.10.2014

1. Топологическая сортировка (Н.Вирт).

2. Умножение многочленов (Д. Кнут т.1).

3. Включение и удаление вершины из сбалансированного дерева (Н. Вирт).

4. Дифференцирование (Д. Кнут т.1).

5. Построение графа с использованием динамических структур данных. Поиск по графу в ширину и в глубину.

 

C# (17 баллов)

Класс стек (2 балла).

Срок сдачи на «5»: 13.10.2014

Срок сдачи на «4»: 27.10.2014

Реализовать класс Стек моделирующий работу со стеком.

class Стек

{

private int[] стек;

public Стек(int n);

public void Clear();

public int Pop();

public void Print();

public void Push(int elem);

public int Top();

}

Иерархия классов (Индивидуальное задание) (4 балла).

Срок сдачи на «5»: 27.10.2014

Срок сдачи на «4»: 10.11.2014

Придумать и построить иерархию классов для предметной области из реального мира. Требования к иерархии:

1. Не менее 5 классов.

2. Не менее 2 веток.

3. Не менее 3 уровней.

4. У каждого класса должен быть метод Print, выводящий информацию об объекте.

Создать для каждого класса по экземпляру и поместить их в массив базового класса. У каждого элемента массива вызвать метод Print.

Примечание: прежде, чем реализовывать иерархию на C# проконсультироваться с преподавателем и получить одобрение предметной области и иерархии.

Обработка исключений (3 балла).

Срок сдачи на «5»: 27.10.2014

Срок сдачи на «4»: 10.11.2014

  1. Задание делать на классе Стек.
  2. Понаследовать от класса Exception два своих класса исключений. Одно на переполнение стека, другое на чтение из пустого стека.
  3. В методах Push и Pop выкидывать соответствующие исключения с помощью throw.
  4. В основной программе, где используется стек, ловить исключения с помощью конструкций try-catch-finally.

Рисование геометрических фигур (4 балла).

Срок сдачи на «5»: 10.11.2014

Срок сдачи на «4»: 17.11.2014

  1. Создать иерархию классов геометрических объектов на основе точки, обладающих координатами, специфическими характеристиками, цветом и методом Print.

class Point

{

int x, y;

Color color;

void Print();

}

  1. Случайным образом генерировать объекты и рисовать их на форме.

Калькулятор (4 балла).

Срок сдачи на «5»: 10.11.2014

Срок сдачи на «4»: 01.12.2014

Создать калькулятор по образу и подобию калькулятора Windows.

F# (13 баллов)

F#1 (3 балла).

Срок сдачи на «5»: 17.11.2014

Срок сдачи на «4»: 01.12.2014

       Решить все 3 задания:

  1. Реализовать функцию, вычисляющую число сочетаний из m по n.
  2. Карты на руках игрока заданы списком пар (масть, достоинство). Определить, сколько карт указанной масти имеется на руках игрока.

3. Описать функцию, удаляющую из списка каждый второй элемент.

F#2 (5 баллов).

Срок сдачи на «5»: 01.12.2014

Срок сдачи на «4»: 08.12.2014

Решить любые 5 из 9 заданий:

  1. Описать функцию, которая, чередуя элементы списков:

(a b c … ) и (1 2 3 …),

Образует новый список ( a 1 b 2 c 3… ).

2. Карты на руках игроков заданы списком списков, каждый из которых соответствует игроку и задан списком пар (масть, достоинство). Определить, нет ли на руках идентичных карт.

3. Расстояния между городами заданы списком троек (город, город, расстояние). Определить, какие города расположены ближе всего друг к другу.

4. Определить длину максимальной ветви в бинарном дереве.

5. Определить число вершин в бинарном дереве.

6. Родственные отношения заданы списком пар (отец, сын). Определить всех прямых и косвенных потомков указанного индивида.

7. Дан список участников круговой считалки, в которой на каждом шаге выбывает каждый пятый. Определить, кто останется в списке последним.

8. Выходные и праздничные дни заданы списком пар (день, месяц). Определить, в каком месяце больше всего нерабочих дней.

  1. Положения ферзей на шахматной доске заданы списком пар (горизонталь, вертикаль). Определить, имеется ли пара ферзей, бьющих друг друга.

F#3. Индивидуальное задание (по вариантам) (5 баллов).

Срок сдачи на «5»: 01.12.2014

Срок сдачи на «4»: 15.12.2014

  1. Система линейных алгебраических уравнений (СЛАУ) задана матрицей коэффициентов – в виде списка списков (списка строк или списка столбцов – на свой выбор) и вектором свободных членов – в виде списка. Найти решение системы, если оно единственное. В противном случае сообщить, что система некорректна.
  2. Связный граф задан списком ребер. Каждое ребро представляет собой тройку (вершина, вершина, длина). Граф неориентированный. Найти минимальное остовное дерево (в виде списка образующих его ребер).
  3. Ориентированный граф задан списком ребер. Каждое ребро представляет собой пару (вершина, вершина). Выполнить топологическую сортировку графа (в виде списка вершин в порядке сортировки). Предусмотреть проверку, что топологическую сортировку выполнить невозможно.
  4. Ориентированный граф задан списком ребер. Каждое ребро представляет собой тройку (вершина, вершина, длина). Все длины являются натуральными числами. Найти расстояние между двумя заданными вершинами в графе. Если пути между указанными вершинами нет, вывести -1.
  5. Многочлен задается списком пар (коэффициент, степень). Вычислить произведение двух многочленов. Ответ вывести в естественном виде (например, x^5+4x^3-x+1). Исходные многочлены могут быть не отсортированы по степени.

Prolog (13 баллов)

Prolog1 (2 балла).

Срок сдачи на «5»: 08.12.2014

Срок сдачи на «4»: 15.12.2014

Решить два задания

Задание 1.

Даны результаты экзаменов для группы из пяти студентов:

 

Фамилия Алгебра Геометрия История
Иванов 5 5 5
Петров 4 3 2
Сидоров 4 5 5
Андреев 2 3 3
Ковалев 4 4 4

Построить базу знаний о результатах экзаменов, содержащую правила для определения следующих понятий:

· Отличник (студент, у которого по всем предметам пятерки)

· Двоечник (есть хотя бы одна двойка)

· Математик (по алгебре и геометрии 4 и 5).

Получить ответы на следующие вопросы:

· Является ли Иванов отличником?

· Вывести список всех отличников

· Является ли Сидоров математиком?

· Получить список неуспевающих по истории

· Получить список всех математиков.

Задание 2.

Описать на Прологе базу знаний «Население и площадь стран мира», содержащую следующую информацию:

население США – 203 млн. человек,

население Индии – 548 млн. человек,

население Китая – 900 млн. человек,

население Бразилии – 108 млн. человек,

площадь США – 8 млн. кв.км,

площадь Индии – 3 млн. кв.км,

площадь Китая – 9 млн. кв.км,

площадь Бразилии – 8 млн. кв.км.

Добавить к базе знаний правило, определяющее понятие «Крупнейшая страна». К крупнейшим странам относятся страны с населением более 200 млн. человек и площадью более 5 млн. кв. км.

Сформировать следующие цели:

· Какие страны имеют площадь от 3 до 8 млн кв.км?

· В каких странах население меньше 300 млн. человек или больше 600 млн. человек?

Игры (3 балла).

Срок сдачи на «5»: 08.12.2014

Срок сдачи на «4»:

Реализовать одну из игр

23 спички.Игроки начинают с 23 спичек. Каждый игрок по очереди удаляет 1, 2 или 3 спички. Тот, кто взял последнюю спичку, - проигравший. Написать программу, реализующую эту игру.

Угадай число.Компьютер загадывает число от 1 до 100. Каждый ход человек называет число, а компьютер говорит: больше, меньше или угадал. Игра заканчивается, когда игрок назовет загаданное число.

Могут быть заданы и другие игры, например, быки и коровы, крестики-нолики.

БД (4 балла).

Срок сдачи на «5»: 15.12.2014

Срок сдачи на «4»:

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

Экспертная система (Индивидуальное задание) (4 балла).

Срок сдачи на «5»: 15.12.2014

Срок сдачи на «4»:

Реализовать экспертную систему в соответствии с выбранной темой.










Последнее изменение этой страницы: 2018-04-12; просмотров: 692.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...