Выполнение проекта (запуск примера в среде Visual Studio .NET 2008)




Для выполнения проекта скопировать папку ConsoleApplication4 в требуемое место на диске(Можно положить папку Console Application4 в Мои документы/ Visual Studio 2008, но в этом случае у каждого студента должен быть личный идентификационный № проекта).

Зайти в папку, найти файл ConsoleApplication4.sln и дважды кликнуть по нему левой кнопкой мышки. Автоматически будет запущена среда Visual Studio.NET 2008 и проект будет открыт. Для того, чтобы текст программы отобразился в окне редактирования, необходимо дважды кликнуть левой кнопкой мышки по файлу с расширением CS в окне броузера проекта (как правило, правое окно).

Целесообразно завести в запущенной среде свой персональный путь хранения проектов, воспользовавшись ресурсами броузера среды, и в дальнейшем можно будет вызывать проекты на исполнение.

 

 

Варианты 1 заданий к лабораторной работе №1

 

Вариант № 1 Вариант № 2  
Вариант № 3   Вариант № 4
Вариант № 5 Вариант № 6
Вариант № 7   Вариант № 8
Вариант № 9 Вариант № 10
Вариант № 11 Вариант № 12

 

Вариант № 13   Вариант № 14
Вариант № 15 Вариант № 16
Вариант № 17 Вариант № 18
Вариант № 19 Вариант № 20
Вариант № 21 Вариант № 22
Вариант № 23 Вариант № 24

 

Вариант № 25 Вариант № 26
Вариант № 27 Вариант № 28
Вариант № 29 Вариант № 30

 

 

Прежде, чем выполнять задания варианта 2 выполнить:

1.проект генерации массива по линейному (линейно нарастающему и линейно убывающему) закону, по нелинейному закону (параболическому степени 2 и более) заполнения элементов массива, а также реализовать проект генерации матрицы – массива с размерностью 2;

2. создать консольное приложение, считающее элементы массива по формуле s[i]= 1/(i+1)(i+2)(i+3) и реализовать накопление 4-х, 5-и и т.п. элементов массива суммированием к инициированной как 0

Переменной (пример кода приведен ниже).

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

В папках consoleapplication5 и consoleapplication6 представлены компилируемые отлаженные приложения по приведенным примерам

 

Вариант 2. Создание проекта линейной, ветвящейся и циклической задачи

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

 

Массивы

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

... int [] k; //k - массив k= new int [3]; //Определяем массив из 3-х целых k[0]=-5; k[1]=4; k[2]=55; //Задаем элементы массива //Выводим третий элемент массива Console.WriteLine(k[2].ToString());...

Смысл приведенного фрагмента ясен из комментариев. Обратите внимание на некоторые особенности. Во-первых, массив определяется именно как

int [] k;

а не как один из следующих вариантов:

int k[]; //Неверно! int k[3]; //Неверно! int [3] k; //Неверно!

Во-вторых, так как массив представляет из себя ссылочный объект, то для создания массива необходима строка

k= new int [3];

Именно в ней мы и определяем размер массива. Хотя, вообще говоря, возможны конструкции вида

int [] k = new int [3];

Элементы массива можно задавать сразу при объявлении. Вот пример:

int [] k = {-5, 4, 55};

Разумеется, приведенные конструкции применимы не только к типу int и не только к массиву размера 3.

В C#, как и в C/C++, нумерация элементов массива идет с нуля. Таким образом, в нашем примере начальный элемент массива - это k[0], а последний - k[2]. Элемента k[3], разумеется, нет.

Массив — это набор элементов одного типа, доступ к которым производится с помощью числового индекса. В С# массивы могут быть простыми или многомерными. Массивы объявляются путем помещения квадратных скобок после указания типа данных для элементов этого массива. Синтаксис объявления массива: тип[] массив=new тип[количество элементов]; илитип[] массив;массив=new тип[количество элементов]; Элементы массива могут быть инициализированы при объявлении: тип[] массив={значение, значение,...}; Для доступа к элементу массива после его имени в квадратных скобках указывается индекс элемента. Индексация элементов массива всегда начинается с 0. Необходимо обратить внимание на то, что любой массив является производным классом от класса Array. Вследствие этого любой массив в C# наследует большое количество полезных методов обработки элементов массива. Для сортировки массива используется статический метод void Sort(Array array) класса Array (для выполнения сортировки необходимо, чтобы для типа элементов массива был реализован интерфейс IComparable). Для поиска элемента массива используется статический метод int BinarySearch(Array array, object value) класса Array (для выполнения поиска необходимо, чтобы для типа элементов массива был реализован интерфейс IComparable). Теперь переходим к многомерным массивам. Вот так задается двумерный массив: int [,] k = new int [2,3];

Обратите внимание, что пара квадратных скобок только одна. Естественно, что в нашем примере у массива 6 (=2*3) элементов (k[0,0] - первый, k[1,2] - последний).

Аналогично мы можем задавать многомерные массивы. Вот пример трехмерного массива:

int [,,] k = new int [10,10,10];

А вот так можно сразу инициализировать многомерные массивы:

int [,] k = {{2,-2},{3,-22},{0,4}};

Приведенные выше примеры многомерных массивов называются прямоугольными. Если их представить в виде таблицы (в двумерном случае), то массив будет представлять из себя прямоугольник.

Наряду с прямоугольными массивами существуют так называемые ступенчатые. Вот пример:

//Объявляем 2-мерный ступенчатый массив int [][] k = new int [2][]; //Объявляем 0-й элемент нашего ступенчатого массива //Это опять массив и в нем 3 элемента k[0]= new int [3]; //Объявляем 1-й элемент нашего ступенчатого массива //Это опять массив и в нем 4 элемента k[1]= new int [4]; k[1][3]=22; //записываем 22 в последний элемент массива...

Обратите внимание, что у ступенчатых массивов мы задаем несколько пар квадратных скобок (столько, сколько размерность у массива). И точно так же мы что-нибудь делаем с элементами массива - записываем, читаем и т. п.

Самая важная и интересная возможность у ступенчатых массивов - это их "непрямоугольность". Так, в приведенном выше примере в первой "строке" массива k три целых числа, а во второй - четыре. Часто это оказывается очень к месту.

Циклы for и foreach

Начнем сразу с примера цикла for:

int k = Int32.Parse(Console.ReadLine()); int sum=0; for (int i=1; i<=k; i++){ sum+=i;}Console.WriteLine(sum);

Этот пример подсчитывает сумму чисел от 1 до введенного пользователем числа k. Сумма записывается в переменную sum и выводится на экран.

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

int [] a = {-5, 4, 55}; int sum=0; for (int i=0; i<3; i++){ sum+=a[i];}

В этом примере начальное значение для счетчика цикла равно нулю, и в условии продолжения цикла мы пишем знак "меньше", после которого ставится количество элементов в массиве. Разумеется, если в цикле должен выполниться только один оператор, то фигурные скобки можно не писать. Тут все, как в других C/C++-подобных языках.

Теперь рассмотрим пример цикла foreach:

int [] m = {-5, 4, 10}; int sum=0; foreach (int i in m){ sum+=i;}

В данном примере мы суммируем все элементы массива m, записывая сумму в sum.

В приведенном примере наш цикл перебирает все элементы массива m. На это нам указывает строка

... foreach (int i in m){...

которая интерпретируется так: для каждого целого числа из массива m делам что-то там. Если бы элементами массива были бы не целые, а, скажем, вещественные, то мы записали бы что-то вроде:

... foreach (float i in m){...

Т. е. мы пишем именно тип элементов массива. На самом деле foreach используется не только для массивов, но и для других объектов (например, для хэш-таблиц). Но это будет рассмотрено в последующих уроках.

 

Цикл со счетчиком определяется следующим образом:for(инициализация счетчика; условие; изменение счетчика) тело цикла Цикл со счетчиком прекращается в том случае, когда условие становится ложным. Цикл с предусловием записывается следующим образом:while(условие) тело цикла Цикл с предусловием прекращается в том случае, когда условие становится ложным. Цикл с постусловием записывается следующим образом: do тело циклаwhile(условие); Цикл с постусловием прекращается в том случае, когда условие становится ложным. Цикл с массивом записывается следующим образом: foreach(элемент массива in массив) тело цикла Цикл с массивом прекращается в том случае, когда будет закончен перебор всех элементов массива. Во всех циклах можно применять операторы break и continue. Для проверки условия используется следующая конструкция: if (условие) условие истинноelse условие ложно Для множественной проверки значения переменной используется следующая конструкция: switch(переменная){ case значение 1: код для значения 1 break; case значение 2: код для значения 2 break; default: код для значения по умолчанию}

 

Выполнение общего задания по разработке модуля циклических операций

 

После объявления массивов выполнить:

1.Генерацию массива одномерного размерностью 10, 20 или 100 с линейно нарастающей последовательностью значений элементов (i++).

2. Генерацию массива одномерного размерностью 10, 20 или 100 с линейно убывающей последовательностью значений элементов (N-I; i++).

3.Генерацию двумерного массива (матрицы) размерностью главной диагонали 10 или 20 с линейным нарастанием значений элементов на строке, и с увеличением всех значений в каждой последующей строке на единицу относительно значений элементов предыдущей строки – реализуется это следующим образом:

Объявляется двумерный массив (нельзя забывать об объявлении типов (целый), используемых в массивах идентификаторов для индексации элементов);

Заполнение элементов массива реализуется вложенными циклическими операторами-

Внешний цикл будет пересчитывать столбцы, внутренний цикл- элементы строк, при этом исполняемый оператор цикла реализует присвоение каждому элементу массива значение, равное сумме индексов этого элемента (a[i,j]=i+j).

Вывод на консоль можно осуществить в цикле, записав в качестве параметра оператора вывода общую форму идентификатора элементов массива. Для просмотра результатов работы проекта в период отладки целесообразно выводить на консоль первые три-пять элементов, а для матрицы – первые три элемента из двух строк соответственно.

 

 

После выполнения этого проекта можно приступить к реализации представленных ниже заданий.

 

ПРИМЕР КОНСОЛЬНОГО ПРИЛОЖЕНИЯ ПРОЕКТА ГЕНЕРАЦИИ МАССИВА РАЗМЕРНОСТЬЮ 10 (ВЫПОЛНЕННОГО СТ. ЖУРАВЛЕВОЙ)

 

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

int[] k = new int[10];

int[] m = new int[10];

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

{

k[i] = i+1;

m[i] = i + 2;

}

Console.WriteLine("Мой массив");

Console.WriteLine(k[0]);

Console.WriteLine(k[1]);

Console.WriteLine(k[2]);

Console.WriteLine(k[3]);

Console.WriteLine(k[4]);

Console.WriteLine(k[5]);

Console.WriteLine(k[6]);

Console.WriteLine(k[7]);

Console.WriteLine(k[8]);

Console.WriteLine(k[9]);

Console.WriteLine(m[9]);

Console.ReadLine();

}

}

}

 

 

ПРИМЕР КОНСОЛЬНОГО ПРИЛОЖЕНИЯ ВЫЧИСЛЕНИЯ СУММЫНАКОПЛЕНИЕМ НЕЦЕЛЫХ ЧИСЕЛ С ВЫВОДОМ НА ЭКРАН И РЕЗУЛЬТАТА НАКОПЛЕНИЯ И ЗНАЧЕНИЙ ЭЛЕМЕНТОВ МАССИВА (ВЫВОД НА ЭКРАН РЕАЛИЗОВАН В ЦИКЛЕ - В КОМПАКТНОЙ ФОРМЕ ЗАПИСИ ОПЕРАТОРА ВЫВОДА)

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication6

{

class Program

{

static void Main(string[] args)

{

 

int j;

double r=0;

double[] s;

s = new double[6];

for (j = 0; j <= 5; j++)

{

s[j] = (1.0 / ((j+1.0) * (j + 2.0) * (j + 3.0)));

Console.WriteLine(s[j]);

r += s[j];

}

Console.WriteLine(r);

Console.ReadLine();

 

}

}

}

 

 

ПРИМЕР НЕКОРРЕКТНОГО КОДА

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

 

int j;

//float r[6];

s=new float[6];

for (j=0; j<=5; j++) {

s[j]=1/(j+1)*(j+1)*(j+2));

}

Console.WriteLine(s[1]);

Console.ReadLine();

 

}

}

}

 

Варианты 2 заданий к лабораторной работе №1

Задача 1

Вычислить выражение

Задача 2

Элементы x и y вычисляются по формулам:

при Вычислить .

Задача 3

Вычислить выражение

Задача 4

Вычислить выражение:

Задача 5

Вычислить выражение

Задача 6

Значения членов числовой последовательности ai, bi вычисляются по формулам:

Не применяя массивов, вычислить при а1 = b1 = 1.

Задача 7

Элементы последовательности xi, вычисляются по формуле

при x1 = 2 и x2 = 1. Вычислить .

Задача 8

Вычислить сумму

Задача 9

Значения xi вычисляются циклически:

Вычислить xk, не применяя массивов, если

Задача 10

Вычислить выражение:

Задача 11

Вычислить выражение

Задача 12

Вычислить произведение первых N сомножителей:

Задача 13

Числовая последовательность задана формулой

Вычислить , не применяя массивов, если

Задача 14

Вычислить выражение:

Задача 15

Вычислить выражение

Задача 16

Вычислить приближенное значение бесконечной суммы

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

Задача 17

Вычислить приближенно значение бесконечной суммы

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

Задача 18

Числовая последовательность задана формулой

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

Задача 19

Числовая последовательность задана формулой

Определить минимальное количество членов k, для которых выполняется условие где R - заданное число,

Задача 20

Дано действительное b<0. Последовательность a1, a2,... образуется по следующему закону:

Не используя массивов, найти значение и номер первого неотрицательного члена последовательности.

Задача 21

Члены последовательности вычисляются по формуле

Найти номер i, начиная с которого выполняется условие .

Задача 22

Сколько членов последовательности надо просуммировать, чтобы сумма превысила данное значение S>0?

Задача 23

Дана последовательность: Сколько членов этой последовательности, начиная с первого, и, далее по порядку, надо перемножить, чтобы произведение оказалось меньше данной положительной величины e?

Задача 24

Вычислить приближенное значение бесконечной суммы

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

Задача 25

Среди чисел найти ближайшее меньшее, чем заданное число A.

Задача 26

Последовательность чисел формируется по следующему закону: Найти номер i (i³2) первого члена последовательности, для которого выполняется условие

Задача 27

Элементы последовательности xi, вычисляются по формуле при x1 = 2 и x2 = 1. Вычислить, не применяя массивов, начиная с какого i xi становится меньше заданного значения Z, (0<Z<1.3).

Задача 28

Значения членов числовой последовательности ai, bi вычисляются по формулам:

где i = 2, 3,...; а1 = b1 = 1.

Вычислить, не применяя массивов, начиная с какого i bi становится меньше заданного значения S>0.

Задача 29

Последовательность значений имеет вид:

При каком минимальном n значение произведения членов последовательности от 1-го до n-го становится больше заданного P>0?

Задача 30

Последовательность значений имеет вид:

При каком минимальном n значение произведения первых членов последовательности от 1-го до n-го становится меньше заданного 0<P<1?

 

СПИСОК ЛИТЕРАТУРЫ

 

Основная

 

  1. Борисенко В.В. Основы программирования: Учеб. пособие. – М.: Интернет – университет информационных технологий, 2005. – 314 с.
  2. Информатика. Базовый курс: Учеб. для вузов / Под ред. С.В. Симоновича. – 2-е изд. – СПб.: Питер, 2006. – 639 с.
  3. Информатика: учеб. / ред. Макарова Н.В. - 3-е изд.,перераб. - М.: Финансы и статистика, 2007. - 768 с.
  4. Общий курс высшей математики для экономистов: учеб. / ред. Ермаков В.И. - М.: Инфра-М, 2002. - 656 с.
  5. Павловская Т.А. С/С++. Объективно-ориентированное программирование: Практикум для вузов / Т.А. Павловская, Ю. А. Щупак. – СПб.: Питер, 2005. – 265 с.
  6. Пономарев О.П. Программирование: учеб. пособие для студентов специальностей "Организация и технология защиты информации" и "Прикладная информатика в экономике" / Пономарев О. П. - Белгород: Кооперативное образование, 2008. - 104 с.
  7. Фролов А.В., Фролов Г.В. Визуальное проектирование приложений C#. Москва. Кудиц-Образ. 2003.- 511 с.
  8. Хорев П.Б. Технологии объектно-ориентированного программирования: учеб.пособие / Хорев П.Б. - М.: Академия, 2004. 448 с.

 

3.2. Дополнительная

 

1. https://comebook.ru/cd/11/htm электронный учебник VisualC#.Создание приложений для Windows. 2008.

2. https://lib.mexmat.ru/books/19306. Power L., Snell M. Microsoft Visual Studio 2005.2008 г.

3. https://microsoft.com/software.edu/Power L., Snell M. Microsoft Visual Studio 2008. Copyright 2008 by Pearson Education Inc., Indianapolis,- 1224 pp.

4. https://www.kodges.ru/10166-c.-razrabotka-komponentov-v-ms-visual-studio.html Книга "C#. Разработка компонентов в MS Visual Studio 2005/2008"

5. https://www.podgoretsky.com/ftp/Docs/CSharp/CSharpBasis/index.html.Основы C#.2008 г.

6. https://www.zone-x.ru/ Язык программирования C#.учебник. Микелсен К. Диа.Софт.2003. 656 с.

7. Бобровский С.И. Технологии C#Builder. Разработка приложений для бизнеса. Учебный курс. – СПб.:Питер, 2007. – 672с.

8. Ватсон К. С#. – СПб.: Изд. дом «Питер», 2006. – 861 с.

9. Использование C#. Специальное издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2002. – 528 с.

10. Медведев В.И. Программирование на C++, C++.NET и C# (Серия “Современная прикладная математика и информатика”). – Казань: Мастер Лайн, 2005. – 270 c.

11. Петцольд Ч. Программирование для Microsoft Windows на C#. В 2-х томах/Пер. с англ. – М.: Издательско-торговый дом “Русская Редакция”, 2002. 624 с.

12. Секунов Н.Ю. Самоучитель C#. – СПб.: БХВ-Петербург, 2001. – 576 с.

13. Трей Н. C# 2008: ускоренный курс для профессионалов.: Пер. с англ. –М.: ООО «И.Д. Вильямс», 2008. – 576 с.: ил.

14. Троелсен Э. C# и платформа NET. Библиотека программиста. - СПб.:Питер, 2007. – 796с.:ил.

Контрольные вопросы:

 

  1. Особенности платформы NET.
  2. Типы приложений (программ) платформы NET.
  3. Структура консольной программы платформы NET.
  4. Что такое пространство имён?
  5. Метод Main.
  6. Стандартные типы данных.
  7. Консольный ввод/вывод данных.
  8. Операторы цикла языка C# (повторения).

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-12-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: