laba2
.pdfМинистерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР) Кафедра безопасности информационных систем (БИС)
Отчет по лабораторной работе №2 по дисциплине «Основы программирования»
Тема работы: Массивы
Студент гр. 730-2
_______Подойницын К.В.
30.05.2021
Принял Инженер научно-технического отдела ЦСП
_______ Уразаев Д.Р. 30.05.2021
2021
Содержание
Введение……………………………………………………………3
Теоретические сведения по теме лабораторной работы………..4-5
Ход работы…………………………………………………………6-11
Заключение…………………………………………………………12
Список использованных источников……………………………..13
1 Введение
Цель работы: овладеть навыками работы с простыми структурами данных на примере массивов.
Задание: составить консольное приложение для решения нижеприведенных задач согласно варианту, согласованному с преподавателем, вводя данные в ходе выполнения программы.
2 Теоретические сведения по теме лабораторной работы
Массив – это упорядоченный набор величин, принадлежащих одному типу данных, обозначаемых одним именем. Данные, являющиеся элементами массива, располагаются в памяти компьютера в определенном порядке,
который задается индексами (порядковыми номерами элементов массива).
Размерность массива —это количество индексов, необходимое для однозначной адресации элемента в рамках массива. Форма или структура массива — сведения о количестве размерностей и размере массива для каждой из размерностей. Нуль-мерный массив называется скаляром,
одномерный – вектором, двумерный – матрицей. В C# массив, как и любая переменная, должен быть объявлен. Делается это с помощью служебного слова, указывающего тип c квадратными скобками, затем указывается имя массива, ставится знак равенства и ключевые слова new, далее снова указывается тип и в квадратных скобках размерность массива.
3 Ход работы
Задание 1
Дан массив из N элементов (вещественные числа). Вычислить: 1)
максимальный по модулю элемент массива; 2) сумму элементов массива, расположенных между первым и вторым положительными элементами. Преобразовать массив так, чтобы элементы, равные нулю,
располагались после всех остальных.
Описание алгоритма:
А1 Начало А2 Ввод n
А3 Массив из n элементов А4 Для int i = 0; i < n; i++
А5 Ввод i+1 элементов массива А6 float max = float.MinValue
А7 float S = 0
А8 int i = 0; i < n; i++
А9 Если Array[i] > max, то А10
А10 max = Array[i]
А11 Для int i = 0; i < n; i++
А12 Если Array[i] > 0, то А13
А13 Для int x = i; x < n; x++
А14 Если Array[x] <= 0, то А15
А15 S += Array[x]
А16 Для int i = 0; i < n; i++
А17 Если Array[i] == 0, то А18
А18 Для int j = i; j < n - 1; j++
А19 Array[j] = Array[j + 1]
А20 Array[n - 1] = 0
А21 Для int j = 0; j < Array.Length; j++
А22 Вывод Array[j]
А23 Вывод S
А24 Вывод max
Представление алгоритма в виде блок-схемы:
Рисунок 1 – блок-схема
Листинг исходного кода программы:
using System;
using System.Collections.Generic; using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace laba2._1
{
class Program
{
static void Main(string[] args)
{
int n;
Console.WriteLine("Введите размерность массива n = "); n = int.Parse(Console.ReadLine());
float[] Array = new float[n]; for (int i = 0; i < n; i++)
{
Console.Write($"Введите {i + 1} элемент массива: "); Array[i] = float.Parse(Console.ReadLine());
}
float max = float.MinValue; float S = 0;
for (int i = 0; i < n; i++)
{
if (Array[i] > max)
{
max = Array[i];
}
}
for (int i = 0; i < n; i++)
{
if (Array[i] > 0)
{
for (int x = i; x < n; x++)
{
if (Array[x] <= 0)
{
S += Array[x];
}
}
}
}
for (int i = 0; i < n; i++)
{
if (Array[i] == 0)
{
for (int j = i; j < n - 1; j++)
{
Array[j] = Array[j + 1];
}
Array[n - 1] = 0;
}
}
for (int j = 0; j < Array.Length; j++)
{
Console.Write(Array[j]);
}
Console.WriteLine("\nСумма: {0}", S); Console.WriteLine("Максимальный элемент: {0} ", max);
}
}
}
Рисунок 2 – скриншот работы программы
Программа работает корректно.
Задание 2
Дана матрица 5Х5. Вывести ее в нижнем треугольном виде.
Описание алгоритма:
B1 Начало
B2 Ввод массива a
B3 Ввод матрицы 5x5 aa
B4 n=0
B5 i = 0; i < 5; i++
B6 j = 0; j < 5; j++
B7 Если j <= I, то B8. Иначе B9.
B8 aa[i, j] = a[n++]
B9 aa[i, j] = 0
B10 Вывод aa[i, j]
B11 Остановка
Представление алгоритма в виде блок-схемы:
Рисунок 3 – блок-схема Листинг исходного кода программы:
using System;
using System.Collections.Generic; using System.Linq;