2 лабораторная работа ОП
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
Томский государственный университет систем управления и радиоэлектроники (ТУСУР)
Кафедра безопасности информационных систем (БИС)
Массивы
Отчет по практической работе
по дисциплине «Основы программирования»
Студент гр. 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();