Основы языка С#
Вычисление произведения элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами. Использование методов класса Array, простых циклов для перебора элементов одномерного массива. Создание двумерного массива.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | отчет по практике |
Язык | русский |
Дата добавления | 21.03.2014 |
Размер файла | 280,7 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
ФИЛИАЛ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО
ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ «МЭИ»» в г. Смоленске
Отчет
по лабораторной работе № 1
Тема: «Основы языка С#»
по курсу: «Технологии программирования»
Студент: Баловнев Г.В.
Группа: АС-10
Преподаватель: Малашенкова И.В.
Смоленск 2013
1. Техническое задание
1.1 Линейные программы
Напишите программу расчета по двум формулам
2 |
z1=cosб + sinб +cos3б +sin3б |
1.2 Одномерные массивы
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
· сумму положительных элементов массива;
· произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами.
Упорядочить элементы массива по убыванию.
1.3 Двумерные «прямоугольные» массивы
Дана целочисленная прямоугольная матрица. Определить количество столбцов, не содержащих ни одного нулевого элемента.
Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с ростом характеристик.
2. Анализ технического задания
Для выполнения первого задания будут использованы методы класса Math.
Для выполнений второго задания будут использованы методы класса Array, простые циклы для перебора элементов одномерного массива.
Для выполнений третьего задания будут использованы методы класса Array, вложенные циклы для перебора элементов многомерного массива.
3. Схемы алгоритмов
Схема алгоритма расчета по двум формулам изображена на рисунке 1.
Рис. 1 Схема алгоритма
Схема алгоритма подсчета суммы положительных элементов одномерного массива изображена на рисунке 2.
Рис. 2 Схема алгоритма
Схема алгоритма подсчета произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами
Рис. 3 Схема алгоритма
Схема алгоритма сортировки одномерного массива по убыванию изображена на рисунке 4.
Рис. 4 Схема алгоритма
Схема алгоритма определения количества столбцов не содержащих ни одного нулевого элемента изображена на рисунке 5.
Рис. 5 Схема алгоритма
Схема алгоритма преобразования двумерного массива изображена на рисунке 6.
Рис. 6 Схема алгоритма
4. Тестирование
Задание 1
Расчет по формулам. Значение a=5.
Рис. 7 результат задания 1
Результат расчетов на калькуляторе:
z1=cosб + sinб +cos3б +sin3б=-0,78466216
=-0,782328830
Задание 2
Одномерный массив. Сумма всех положительных элементов = 41. Сумма всех элементов, расположенных после нуля = -16. Произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами = 5.
Рис. 8 результат первого тестирования задания 2
Упорядочить элементы массива по убыванию.
Рис. 9 результат второго тестирования задания 2
Задание 3
Создание двумерного массива 4x4. Определить количество столбцов, не содержащих ни одного нулевого элемента = 2.
массив одномерный двумерный модуль
Рис. 10 результат первого тестирования задания 3
Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы, расположили их в соответствии с ростом характеристик.
Рис 11 результат второго тестирования задания 3
5. Текст программы
Задание 1
using System;
namespace first
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
int a;
a = Convert.ToInt32(Console.ReadLine());
double z1 = Math.Cos(a) + Math.Sin(a) + Math.Cos(3 * a) + Math.Sin(3 * a);
double z2 = Math.Sqrt(2) * 2 * Math.Cos(a) * Math.Sin(3.14 / 4 + 2 * a);
Console.WriteLine(z1.ToString());
Console.WriteLine(z2.ToString());
}
}
}
Задания 2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication2
{
public partial class Form1 : Form
{
int[] a;
int n;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox2.Clear();
}
private void button2_Click(object sender, EventArgs e)
{
n = Convert.ToInt32(textBox1.Text);
a = new int[n];
Random b = new Random();
for (int i = 0; i < n; ++i)
{
a[i] = -10 + b.Next(20);
textBox2.Text += Convert.ToString(a[i]) + (char)13 + (char)10;
}
}
private void button3_Click(object sender, EventArgs e)
{
int sum = 0;
for (int i = 0; i < n; ++i)
{
if (a[i] > 0)
sum = sum + a[i];
}
textBox3.Text = Convert.ToString(sum);
int pro = 1;
int min = a[0];
int max = a[0];
int minind = 0;
int mininda = 0;
for (int i = 1; i < n; ++i)
{
if ( Math.Abs(a[i]) < min)
{
min = Math.Abs(a[i]);
minind = i;
}
if ( Math.Abs(a[i]) > max)
{
max = Math.Abs(a[i]);
mininda = i;
}
}
if (mininda < minind)
{
for (int i = (mininda + 1); i < minind; ++i)
pro *= a[i];
textBox5.Text = Convert.ToString(pro);
}
if (mininda > minind)
{
for (int i = (minind + 1); i < mininda; ++i)
pro *= a[i];
textBox5.Text = Convert.ToString(pro);
}
if (((mininda + 1)== minind) || ((mininda - 1)== minind))
{
textBox5.Text = Convert.ToString(0);
}
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label1_Click_1(object sender, EventArgs e)
{
}
private void label1_Click_2(object sender, EventArgs e)
{
}
private void textBox5_TextChanged(object sender, EventArgs e)
{
}
private void button4_Click(object sender, EventArgs e)
{
Array.Sort(a);
Array.Reverse(a);
for (int j = 0; j < a.Length; j++)
{
textBox4.Text += Convert.ToString(a[j]) + (char)13 + (char)10;
}
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
private void textBox4_TextChanged(object sender, EventArgs e)
{
}
}
Задания 3
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
int[,] A; // сама матрица
int n; // Размеры матрицы
public Form1()
{
InitializeComponent();
}
private void AddColumns(int n, DataGridView dgw)
{
// добавляет n столбцов в элемент управления dgw
DataGridViewColumn column;
for (int i = 0; i < n; i++)
{
Random b = new Random();
column = new DataGridViewTextBoxColumn();
column.DataPropertyName = "Столбец" + i.ToString();
column.Name = "Столбец №" + i.ToString();
dgw.Columns.Add(column);
}
}
private void AddRows(int m, DataGridView dgw)
{
// Random b = new Random();
// добавляет m строк в элемент управления dgw
for (int j = 0; j < n; j++)
{
dgw.Rows.Add();
dgw.Rows[j].HeaderCell.Value = "Строка №" + j.ToString();
}
}
private void button1_Click(object sender, EventArgs e)
{
n = Convert.ToInt32(textBox2.Text);
int cl = 0; // Чистка DataGridView, усли они не пусты
cl = dataGridView1.ColumnCount;
if (cl != 0)
for (int i = 0; i < cl; i++)
dataGridView1.Columns.RemoveAt(0);
// dataGridView2.Columns.Clear();
A = new int[n, n];
AddColumns(n, dataGridView1); // Заполнение DataGridView столбцами
AddRows(n, dataGridView1); // Заполнение DataGridView строками
// Заполнение числами массива
Random b = new Random();
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
A[i, j] = b.Next(-2, 8);
dataGridView1.Rows[i].Cells[j].Value = A[i, j].ToString();
}
}
}
private void button2_Click(object sender, EventArgs e)
// определить количество столбцов не содержащих неодного нулевого элемента
{
int chetchik = 0;
for (int j = 0; j < n; j++)
{
bool hasPOsitive = false;
for (int i = 0; i < n; i++)
if (A[i, j] == 0)
hasPOsitive = true;
if (hasPOsitive == false)
{
chetchik++;
textBox1.Text = chetchik.ToString();
}
}
}
private void button3_Click(object sender, EventArgs e)
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - 1; j++)
{
int sum1 = 0; // Сумма j-й строки
int sum2 = 0; // Сумма j+1 -й строки
// считаем сумму j-й строки и j +1 -й строки
for (int k = 0; k < n; k++)
{
if ((A[j, k] > 0) && (A[j, k] % 2 == 0))
sum1 += A[j, k];
if ((A[j + 1, k] > 0) && (A[j + 1, k] % 2 == 0))
sum2 += A[j + 1, k];
}
if (sum1 < sum2)
{
for (int p = 0; p < n; p++)
{
int temp = A[j, p];
A[j, p] = A[j + 1, p];
A[j + 1, p] = temp;
}
}
}
}
dataGridView2.Columns.Clear(); // удаление ячеек
AddColumns(n, dataGridView2); // Заполнение DataGridView столбцами
AddRows(n, dataGridView2); // Заполнение DataGridView строками
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
{
dataGridView2.Rows[i].Cells[j].Value = A[i, j].ToString();
}
}
}
}
Размещено на Allbest.ru
...Подобные документы
Разработка и реализация типовых алгоритмов обработки одномерных массивов на языке Delphi. Максимальный и минимальный элемент массива. Значение и расположение элементов массива. Элементы массива, находящиеся перед максимальным или минимальным элементом.
лабораторная работа [12,8 K], добавлен 02.12.2014Понятие двумерного массива целых чисел. Создание динамического массива из элементов, расположенных в четырех столбах данного массива и имеющих нечетное значение. Сохранение результатов в файл и выведение их на экран. Использование ввода с файла.
курсовая работа [44,0 K], добавлен 09.11.2014Формирование одномерного массива, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца. Определение столбца, в котором равное количество положительных и отрицательных элементов. Написание программы и ее тестирование.
контрольная работа [97,2 K], добавлен 21.06.2009Одномерные числовые массивы, образование элементами целочисленного массива невозрастающей последовательности. Программное нахождение суммы элементов каждой возможной строки матрицы и формирование массива из найденных сумм, вывод массива-результата.
лабораторная работа [12,8 K], добавлен 09.01.2011Выведение значения элементов массива, которые удовлетворяют неравенству. Подсчет количества отрицательных элементов массива. Изменение исходного массива. Тестирование программы. Проверка её работоспособности. Реакция программы на сообщение об ошибке.
лабораторная работа [1,3 M], добавлен 23.11.2014Заполнение массива из целых чисел с присвоением элементам разных значений. Варианты программы с использованием различных операторов организации циклов. Определение квадрата максимального из четных элементов массива и общего числа нулевых элементов.
лабораторная работа [259,3 K], добавлен 14.05.2011Вычисление суммы положительных элементов массива. Упорядочивание элементов массива по убыванию. Решение задачи с помощью алгоритма, реализованного в среде Microsoft Visual 2008 Express. Реализация и тестирование программы. Выполнение трассировки функций.
практическая работа [146,3 K], добавлен 23.01.2015Виды информационно-вычислительных сетей: локальные, городские, глобальные; их классификация. Разработка программы на языке программирования С: формирование одномерного массива путем замены нулевых элементов на среднеарифметическое, а пробелов - на слова.
практическая работа [37,5 K], добавлен 20.05.2012Модификация и сравнения двух текстовых файлов. Программа, написанная на языке программирования Cи и работоспособна на IBM совместимых компьютерах. Псевдографический и графический интерфейсы. Анализ программы методом сортировки одномерного массива.
курсовая работа [116,2 K], добавлен 21.02.2008Подсчет количества отрицательных элементов массива. Изменение исходного массива перемещением всех его положительных элементов в начало с исходным порядком их следования. Вывод на дисплей количества перемещенных элементов. Алгоритм и код программы.
лабораторная работа [946,5 K], добавлен 23.11.2014Составление программы для нахождения минимального и максимального элементов массива. Программа вычисления корней квадратных алгебраических уравнений. Ранжирование одномерного массива по заданному признаку. Формирование массивов с помощью функции random.
контрольная работа [1,0 M], добавлен 30.04.2013Решения задачи графическим и программным способами. Описание алгоритма решения графическим способом, укрупненная схема алгоритма. Ввод элементов двумерного массива, вывод преобразованного массива, разработка программы на языке pascal, листинг программы.
курсовая работа [115,5 K], добавлен 22.05.2010Особенности создания массивов в AutoCAD 2012, основные команды. Создание прямоугольного массива путем размножения выбранных элементов с заданным количеством рядов и столбцов, образующих прямоугольную матрицу. Этапы проектирования кругового массива.
курсовая работа [1,1 M], добавлен 20.05.2014Функции формирования массива времени. Формирование массива входного напряжения, массива выходного напряжения. Функция вывода таблицы, расчета заданной точности, вывода титульного листа. Запись в файл массива времени. Блок–схема и текст программы.
курсовая работа [155,6 K], добавлен 22.04.2012Особенности поиска среднеарифметического значения элементов массива. Общая характеристика проблем разработки в среде Turbo Pascal программы упорядочивания массива по возрастанию. Рассмотрение основных этапов разработки программы на языке PASCAL.
курсовая работа [896,7 K], добавлен 18.05.2014Создание программного обеспечения, позволяющего сортировать элементы числового массива в порядке возрастания или убывания их значений. Выбор языка программирования, среды разработки и построение алгоритма. Руководство пользователя и программиста.
курсовая работа [295,4 K], добавлен 07.04.2011Программа обработки одномерного массива средствами Visual Basic for Application (VBA) на предмет преобразования, печати, удаления, сортировки, поиска сумм, положительных, чётных элементов, их кратности и дополнения другими элементами и значениями данных.
контрольная работа [12,3 K], добавлен 07.10.2012Изучение определения, описания и вызова функций, указателей и ссылок на них. Написание функции умножения произвольного столбца двумерного массива на const. Умножение 2 столбцов массива на константы. Составление блок-схемы алгоритма и текста программы.
лабораторная работа [182,3 K], добавлен 09.01.2012Запись в массив листа Excel c именем "Эксперимент". Среднее арифметическое значение элементов массива. Вывод диалогового окна. Фрагмент программы, организующий считывание исходного массива в программу для обработки. Адрес ячейки электронной таблицы.
контрольная работа [1,1 M], добавлен 16.08.2011Создание программы визуализации методов сортировки массива, особенности и направления ее практического применения. Выбор и обоснование среды программирования. Разработка руководства пользователя. Листинг программы и оценка эффективности ее использования.
дипломная работа [1,0 M], добавлен 15.06.2014