МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
кафедра ЗІ
ЗВІТ
До лабораторної роботи №3
з курсу: «Алгоритмічні мови та програмування»
на тему: «Програми з використанням масивів та індексаторів»
Варіант №13
Мета роботи – вивчити синтаксис опису і використання у програмах змінних типу масивів та властивостей. Навчитися складати та відлагоджувати програми з використанням індексаторів при роботі з масивами.
ЗАВДАННЯ
В одномірному масиві, що складається з п дійсних елементів, обчислити: кількість елементів масиву, що лежать у діапазоні від А до В; суму елементів масиву, розташованих після максимального елемента.
Упорядкувати елементи масиву за спаданням модулів.
СПИСОК ІДЕНТИФІКАТОРІВ КОНСТАНТ, ЗМІННИХ, ФУНКЦІЙ, ВИКОРИСТАНИХ У БЛОК-СХЕМІ АЛГОРИТМУ І ПРОГРАМІ, ТА ЇХ ПОЯСНЕННЯ
sum,max,a,b,e–змінні дійсного типу;
down,up,amount,number,index,t,position–зміні цілочисельного типу;
main() – головний метод;
InputArray() – метод введення масиву;
OutputIndexOfElement()-метод виведення елементу з заданим індексом;
OutputArray() – метод виведення;
Interval() – метод обчислення кількості елементів масиву у заданому проміжку; SumAfterMax() – метод виведення суми ел.масиву,що стоять після максимального; Sorting() – метод сортування масиву;
for() – оператор циклу з передумовою;
foreach()-оператор циклу для перебору елементів у групі даних;
Console.ReadLine() та Console.Read() – функція зчитування з клавіатури;
Console.WriteLine() та Console.Write() – функції виведення на екран;
Convert.ToDouble() – функція конвертування у тип double;
Блок-Схема
Алгоритму Методу OutputArray Методу InputArray
Методу Interval Методу SumAfterMax
ні так
ні так
Методу OutputIndexOfElement Індексатора this
ні так
ні так
ТЕКСТ ПРОГРАМИ
using System;
using System.Collections.Generic;
using System.Text;
namespace Indeksator
{
class Program
{
static void Main(string[] args)
{
WorkWithArray p = new WorkWithArray();
p.InputArray();
p.OutputArray();
p.OutputIndexOfElement();
p.Interval();
p.SumAfterMax();
p.Sorting();
Console.ReadLine();
}
}
class WorkWithArray
{
public int down, up, amount, number, index, t, position;
public double sum, max, a, b, e;
public double[] A;
public double[] new_B;
public double[] new_C;
public bool error;
public void InputArray()
{
Console.Write("Введiть нижню межу iндексу масиву:");
down = Convert.ToInt32(Console.ReadLine());
Console.Write("Введiть верхню межу iндексу масиву:");
up = Convert.ToInt32(Console.ReadLine());
amount = up - down + 1;
A = new double[amount];
Console.WriteLine("Введiть масив:");
for (int i = 0; i < amount; i++)
{
Console.Write("A[" + (down + i) + "]=");
A[i] = Convert.ToDouble(Console.ReadLine());
}
}
public void OutputArray()
{
Console.WriteLine("Введений масив:");
foreach (double k in A)
Console.Write(" '" + k + "' ");
Console.WriteLine();
}
public double this[int index]
{
get
{
if (index >= down && index <= up)
{
error = false;
return A[index - down];
}
else
{
error = true;
return 0;
}
}
}
public void OutputIndexOfElement()
{
Console.Write("\n\n Введiть iндекс елемента, який потрiбно вивести = ");
index = Convert.ToInt32(Console.ReadLine());
e = this[index];
if (this.error)
{
Console.Write(" Ви ввели неiснуючий номер елемента!\n");
OutputIndexOfElement();
}
else
{
Console.Write(" Елемент A[" + index + "] = " + e + "");
Console.WriteLine();
}
}
public void Interval()
{
number = 0;
Console.WriteLine("Введiть промiжок,в якому повиннi знаходитись елементи масиву:");
Console.Write("a="); a = Convert.ToDouble(Console.ReadLine());
Console.Write("b="); b = Convert.ToDouble(Console.ReadLine());
foreach (int k in A)
{
if (k >= a && k <= b)
number++;
}
Console.WriteLine("Кiлькiсть елементiв масиву,якi знаходяться в цих межах рiвна " + number);
Console.WriteLine();
}
public void SumAfterMax()
{
max = A[0];
for (t = 1; t < amount; t++)
if (A[t] > max)
{
max = A[t];
position = t;
}
for (int i = position + 1; i < amount; i++)
{
sum += A[i];
}
Console.WriteLine("Сума елементiв,розташованих пiсля максимального рiвна " + sum);
Console.WriteLine();
}
public void Sorting()
{
new_B = new double[amount];
for (int i = 0; i < amount; i++)
{
new_B[i] = Math.Abs(A[i]);
}
Array.Sort(new_B);
Array.Reverse(new_B);
Console.WriteLine("Посортований масив:");
foreach (double k in new_B)
Console.Write(" '" + k + "' ");
}
}
}
Результат роботи програми
A[-2]=4,45
A[-1]=-4,7
A[0]=2,904
A[1]=0,284
A[2]=44,3
A[3]=2,66
Введкний масив:
4.45; -4.7; 2.904; 0.284; 44.3; 2.66;
Введіть індекс елемента який потрібно вивести=0
Елемент A[0]=2,904
Введіть проміжок в якому повинні знаходитись елементи масиву:
A=1
B=43
Кількість елементу масиву які знаходятьсяв цих межах рівна 3;
Сума елементів розташованих після максимального рівна 2.66;
Посортований массив:
44.3; 4.7; 4.45; 2.904; 2.66; 0.284;