Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Лабораторная работа 5

Читайте также:
  1. A) работает со всеми перечисленными форматами данных
  2. Be on the make - продолжать работать
  3. E) Работа в цикле
  4. I. Самостоятельная работа
  5. I. Самостоятельная работа
  6. I. Самостоятельная работа
  7. I.11. РАБОТА БЕЗ КАКОЙ-ЛИБО МОТИВАЦИИ

Версия 4.2

Лабораторная работа 1

 

Тема: ветвления и циклы.

Данные можно вводить с клавиатуры.

 

Во-первых, следует взять свой номер из списка и преобразовать его в троичную систему счисления. Далее надо откинуть все цифры, кроме последних трех. Эти три цифры будут означать варианты в заданиях 1.1, 1.2 и 1.3 соответственно.

 

Вариант 1.1 1.2 1.3
  3a, 3f 5b, 6c 8a, 13d
  3b, 3e 5c, 6b 8b, 13c
  3c, 3d 5d, 6a 8d, 13a

Страницы учебника: 5-7.

 

К примеру, рассмотрим номер 88. В троичной системе он выглядит как 10021. Последние три цифры: 021. Значит, придется делать задания 3a, 3f, 5d, 6a, 8b, 13c.

 

 

Лабораторная работа 2

 

Тема: массивы.

Данные желательно генерировать с помощью случайных чисел.

 

Вариант получается по формуле v = n % 12 + 1, где n – номер в списке.

v -й вариант делает задания 2. v, 5. v, 6. v и 7. v. Cтраницы учебника: 137-140.

 

 

Лабораторная работа 3

 

Тема: структуры, файлы.

Данные желательно брать из текстового файла.

 

Вариант получается по формуле v = n % 6 + 1, где n – номер в списке.

 

В программе обязательно должна быть объявлена структура (struct), соответствующая одному студенту. Работать с файлом рекомендуется с помощью класса StreamReader.

 

Вариант  
  13a
  13b
  13c
  13d
  13e
  13f

Страницы учебника: 20-21.

 

 

Лабораторная работа 4

 

Тема: функции (методы).

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

 

Вариант получается по формуле v = n % 4 + 1, где n – номер в списке.

 

Необходимо реализовать методы в зависимости от варианта. Все методы должны возвращать непустой результат в случае удачного завершения и null в противном случае. Методы должны лишь производить математические вычисления и не делать ничего более (например, им не следует работать с консолью).

 

class Program

{

// пример функции:

// является ли матрица квадратной

static bool IsSquare(double[,] m)

{

// m.GetLength(0) - число строк (длина по первому измерению)

// m.GetLength(1) - число столбцов (длина по второму измерению)

return m.GetLength(0) == m.GetLength(1);

}

 

// еще один пример функции:

// нормализация вектора (его длина должна стать единичной)

static double[] Normalize(double[] v)

{

double s = 0; // в этой переменной будет храниться длина вектора

foreach (double e in v)

s += e * e;

if (s == 0) // нулевой вектор мы нормализовать не можем

return null;

s = Math.Sqrt(s); // теперь в s длина, а до этого был квадрат длины

double[] r = new double[v.Length];

for (int i = 0; i < r.Length; i++)

r[i] = v[i] / s;

return r;

}

 

// вариант 1 – сложение и вычитание матриц, умножение матриц на число

static double[,] Add(double[,] ma, double[,] mb);

static double[,] Sub(double[,] ma, double[,] mb);

static double[,] Mult(double[,] ma, double nb);

 

// вариант 2 - умножение двух матриц

static double[,] Mult(double[,] ma, double[,] mb);

 

// вариант 3 - умножение матрицы на вектор и вектора на матрицу

static double[] Mult(double[,] ma, double[] vb);

static double[] Mult(double[] va, double[,] mb);

 

// вариант 4 - скалярное и векторное произведения векторов

static double? Dot(double[] va, double[] vb);

static double[] Cross(double[] va, double[] vb);

 

static void Main(string[] args)

{

//...

}

}

 

 

Лабораторная работа 5

 

Тема: классы.

Данные можно вводить с клавиатуры. В функцию Main следует поместить код, тестирующий реализованные методы.

 

Вариант получается по формуле v = n % 7 + 1, где n – номер в списке.

 

Необходимо реализовать методы класса в зависимости от варианта. Все методы должны возвращать true в случае удачного завершения и false в противном случае. Методы должны лишь производить изменения внутреннего состояния объекта и не делать ничего более (например, им не следует работать с консолью).

 

// "MyClass" - это просто название для примера

// тут указано то общее, что есть во всех вариантах

class MyClass

{

// количество элементов

private int n;

// массив, в котором хранятся элементы

private int[] ar;

 

// конструктор класса

// maxcount - максимально возможное число элементов

public MyClass(int maxcount)

{

n = 0;

ar = new int[maxcount];

}

 

// свойство, позволяющее получить количество элементов

public int Count

{

get { return n; }

}

 

// далее некоторые методы в зависимости от варианта

//...

}

 

// вариант 1 - стэк

class Stack

{

//...

 

// положить элемент в стэк

public bool Push(int v);

// достать элемент из стэка

public bool Pop(ref int v);

// проверить, а не пуст ли стэк

public bool IsEmpty();

}

 

// вариант 2 - простой динамический массивчик

class DynArray

{

//...

 

// добавить элемент в конец массива

public bool PushBack(int v);

// взять элемент по индексу

public bool GetAt(int i, ref int v);

// установить значение по индексу

public bool SetAt(int i, int v);

}

 

// вариант 3 - динамический массив с минимумом и максимумом

class MinMaxArray

{

//...

 

// добавить элемент в конец массива

public bool PushBack(int v);

// найти минимум в массиве

public bool GetMin(ref int m);

// найти максимум в массиве

public bool GetMax(ref int m);

}

 

// вариант 4 - множество

class Set

{

//...

 

// добавить элемент во множество, если такого в нем не было

public bool Insert(int v);

// поискать элемент во множестве

public bool Find(int v);

// проверить, а не пусто ли множество

public bool IsEmpty();

}

 

// вариант 5 - массив-сумматор

class SumArray

{

//...

 

// добавить элемент в конец массива

public bool PushBack(int v);

// найти сумму элементов с индексами из промежутка [a, b]

public bool LocalSum(int a, int b, ref int r);

// найти сумму всех элементов

public bool GlobalSum(ref int r);

}

 

// вариант 6 - массив-сортировщик

class SortArray

{

//...

 

// добавить элемент в конец массива

public bool PushBack(int v);

// отсортировать массив (rev=false - по возрастанию, rev=true - по убыванию)

public bool Sort(bool rev);

// вывести на экран

public bool Output();

}

 

// вариант 7 - массив-заменятор-и-посчитатор

class ChangeArray

{

//...

 

// добавить элемент в конец массива

public bool PushBack(int v);

// заменить все элементы со значением v на u для индексов из промежутка [a, b]

public bool Change(int a, int b, int v, int u);

// посчитать количество вхождений элемента v

public bool CountOf(int v, ref int c);

}

 

 


Дата добавления: 2015-10-31; просмотров: 46 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Приложение. Методы ненасильственных действий| ВВОД-вывод ЗНАЧЕНИЙ в файл

mybiblioteka.su - 2015-2024 год. (0.018 сек.)