Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 лабораторная работа ОП

.pdf
Скачиваний:
6
Добавлен:
01.12.2023
Размер:
765.46 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

Томский государственный университет систем управления и радиоэлектроники (ТУСУР)

Кафедра безопасности информационных систем (БИС)

Массивы

Отчет по практической работе

по дисциплине «Основы программирования»

Студент гр. 711-2

____________ Е. П. Толстолес

___________

11.02.2022

Принял:

Инженер кафедры БИС

_______ Д.Р. Уразаев

11.02.2022

Томск 2022

2

Оглавление

Введение ...........................................................................

.....................................3

2 Словесное и графическое описание алгоритмов .............................................

5

2.1

Словесный способ записи ...............................................................................

5

2.2

Графический способ записи алгоритмов .......................................................

7

2.3Листинг исходного кода программ ………………………………………....9

2.4Процесс выполнения программы и вывод данных ………………………..16

3 Заключение .........................................................................................................

18

3

Введение

Цель работы: овладеть навыками работы с простыми структурами данных на примере массивов.

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

Условия задач:

1.Дан массив из N элементов (вещественные числа). Вычислить: 1) произведение отрицательных элементов массива; 2) сумму элементов массива, расположенных между максимальным и минимальным элементами. Упорядочить элементы по возрастанию.

2.Составить программу формирования двумерного массива nХn по следующему правилу: элементы главной диагонали приравнять 1, ниже главной диагонали – 0, а выше – сумме индексов.

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

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

Размерность массива —это количество индексов, необходимое для однозначной адресации элемента в рамках массива. Форма или структура массива — сведения о количестве размерностей и размере массива для каждой из размерностей. Нуль-мерный массив называется скаляром, одномерный – вектором, двумерный – матрицей. В C# массив, как и любая переменная, должен быть объявлен. Делается это с помощью служебного

4

слова, указывающего тип c квадратными скобками, затем указывается имя массива, ставится знак равенства и ключевые слова new, далее снова указывается тип и в квадратных скобках размерность массива.

5

2 Словесное и графическое описание алгоритмов

2.1 Словесный способ записи

Согласно условию задания, словесное описание алгоритма А будет иметь вид:

А0 начало;

А1 ввод n, s=1, s2=0;

А2 заполняем массив а;

А3 для i от 0 до n с шагом 1 переход к А4, иначе переход к А6;

А4 если а[i]<0, то переход к А5, иначе переход к А3;

А5 s=s*a[i];

А6 ввод min = 10000, max=-10000;

А7 для i от 0 до n с шагом 1 переход к А8, иначе переход к А10;

А8 если a[i]>max, то max = a[i], c1 =i и переход к А7, иначе переход к

А9;

А9 если a[i]<min, то min=a[i], c2=i и переход к А7, иначе переход к А7;

А10 если c1>c2, то переход к А11, иначе переход к А12;

А11 для i от с2+1 до c1+1 с шагом 1 переход к А13;

A12 для i от с1+1 до c2+1 с шагом 1 переход к А14;

А13 s2=s2+a[i];

А14 s2=s2+a[i];

А15 а.sort()

6

А16 вывод s, s2, a

А17 остановка

Согласно условию задания, словесное описание алгоритма В будет иметь вид:

В0 начало;

В1 ввод «Размер матрицы»;

В2 для i от 1 до i<n с шагом 1 переход к В3, иначе переход к В5;

В3 для j от i=j до j<n с шагом 1 переход к В4;

В4 a[i, j] = i + j;

В5 для i от 0 до i<n с шагом 1 переход к В6, иначе переход к В8;

В6 для j от j=i до j<=i с шагом один переход к В7;

В7 a[i, j] = 1;

В8 для i от 0 до i<n с шагом один переходим к В9, иначе В11;

В9 для j от 0 до j<n с шагом один переходим к В10;

В10 Console.Write("{0}{1}", a[i, j], "\t"):

В11 Console.ReadLine();

В12 остановка

7

2.2 Графический способ записи алгоритмов

Графический способ записи алгоритма линейной программы А представлен на рисунке 2.1

Рисунок 2.1 – Блок схема алгоритма А

8

Графический способ записи алгоритма линейной программы В представлен на рисунке 2.2.

Рисунок 2.2 – Блок схема алгоритма В

9

2.3 Листинг исходного кода программ

Листинг программы А представлен ниже.

using System;

using System.Collections.Generic; using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace _1000_7

{

class Program

{

public int[] mas; public int n = 0; public int min; public int max; public int minIndex; public int maxIndex;

static void Main(string[] args)

{

Program p = new Program(); p.initArray(); p.showArray(); p.showFindResult(); p.sort();

p.showArray();

10

Console.ReadLine();

}

public void initArray()

{

Console.Write("Enter size of array = "); this.n = Int32.Parse(Console.ReadLine());

this.createData();

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

{

Console.Write("Array [" + (i + 1) + "] = "); this.mas[i] = Int32.Parse(Console.ReadLine());

}

this.min = mas[0]; this.max = mas[0];

}

public void createData()

{

this.mas = new int[this.n];

}

public void showArray()

{

Console.Write("Array = "); foreach (int i in this.mas)

{

Console.Write(i.ToString() + " ");

}

Console.WriteLine();