Инициализация одномерных массивов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Инициализация одномерных массивов



// создание + инициализация

int [] arr1 = new int[] {0, 3, 7, 17, 25};

// создание + инициализация (укороченный вариант)

int [] arr2 = {0, 3, 7, 17, 25};

// Можно объявить массив без инициализации

int [] arr3;

// Но его нельзя использовать, пока он не создан

// с помощью оператора new

/*

arr3[0] = 0; // Ошибка

arr3 = {0, 3, 7, 17, 25}; // тоже ошибка

*/

 

arr3 = new int [] {0, 3, 7, 17, 25}; // правильно

arr3[0] = 10; // правильно

// Инициализация массива длины N случайными числами в диа-

// пазоне [a,b] с использованием параметрического цикла for

int N = Convert.ToUInt32(Console.ReadLine());

int [] arr4 = new int[n];

// Инициализация генератора случайных чисел:

Random rand = new Random();

for(int i = 0; i < N; i++)

arr4[i] = a + rand.Next(b - a); // инициализация массива

Console.Write("{0,8}", arr4[i]); // и вывод на консоль

 

 

Практический пример. Одномерный массив.

Программа подсчитываем количество четных и нечетных элементов в массиве. Все элементы массива задаются случайным образом диапазоне от 0 до 999.

using System;

 

namespace CSharpApplication.ArraysExample

{

class Arrays

{

   static void Main()

   {

       // Количество элементов

       uint n = 0;

 

       Console.WriteLine("Введите кол-во элементов массива: ");

       try

       {

           // Вводим количество элементов с клавиатуры

           n = Convert.ToUInt32(Console.ReadLine());

       }

       catch(OverflowException ex)

       {  

           // В случае переполнения

           Console.WriteLine(ex.Message + " Default size (=10)");

       }

       catch(FormatException ex)

       {  

           // В случае ошибочного ввода

           Console.WriteLine(ex.Message + " Default size (=10)");

       }

           

       // Если n = 0, то создадим массив из 10 элементов

       if(n == 0)

           n = 10;

           

       // Создание массива

       int [] ar = new int[n];

 

       // Инициализация генератора случайных чисел

       Random rand = new Random();

 

       for(int i = 0; i < n; i++)

       {

           // Забиваем массив случайными числами

           // от 0 до 999

           ar[i] = rand.Next(1000);

           Console.Write("{0,8}", ar[i]);

       }

       Console.WriteLine();

 

       // Счетчики четных и нечетных чисел

       int odd = 0, even = 0;

 

       // Бежим по массиву

       foreach(int i in ar)

       {

           if(i % 2 == 0)

               ++even;

           else

               ++odd;

       }

 

// Вывод результатов подсчета

Console.WriteLine("Четных чисел: {0}\nНечетных: {1}", even, odd);

 

   }

}

}

 

Задание

 

  1. Самостоятельно изучить возможности языка программирования C# для описания, инициализации  и обработки одномерных массивов.
  2. Создать консольное приложение, в котором реализовать следующие вычисления:

- объявление заданного массива фиксированной длины прог (табл. 6);

- инициализацию элементов массива случайными целыми числами в заданном интервале (в одном цикле for);

- вывод элементов массива на консоль (в одном цикле foreach);

- заданную обработку массива и вывод элементов обработанного массива на консоль.

  1. В качестве результатов вывести исходный и обработанный массивы, а также (если это предполагает задание на обработку) найденное числовое значение.
  2. Выполнить контрольную пошаговую обработку вручную для массива длиной ручн.
  3. Разработать блок-схему алгоритма программы.
  4. Сделать вывод.

 

Таблица 6. Варианты заданий к лабораторной работе №4

№ варианта Длина массива для прог. / ручн. Интервал генерации Обработка элементов массива
1 50 / 8 [-10, 5] Определить количество четных положительных элементов и сделать указанные элементы отрицательными
2 70 / 5 [-5, 10] Найти максимальный положительный элемент и отрицательные элементы увеличить на найденный максимальный положительный элемент
3 65 / 5 [-20, 10] Определить количество четных элементов больше 5, а нечетные элементы уменьшить на 5
4 30 / 6 [-30, 0] Удвоить элементы, меньшие среднего арифметическое значение элементов массива
5 20 / 6 [-20, 25] Найти максимальный по модулю элемент массива. Положительные элементы сделать отрицательными и увеличить на найденный максимальный элемент
6 50 / 5 [-15, 75] Найти минимальный по модулю не нулевой элемент и заменить на него нулевые элементы массива
7 100 / 7 [-30, 100] Определить количество отрицательных элементов массива. Элементы, значение которых меньше найденного количества, увеличить вдвое
8 50 / 8 [-40, 20] Определить количество нечетных элементов меньше 5, а четные элементы обнулить
9 60 / 3 [-40, 60] Нечетные элементы уменьшить на минимальный четный элемент
10 25 / 3 [-15, 15] Вычислить разность количества положительных и отрицательных элементов массива и все элементы увеличить на найденную разность
11 30 / 3 [-50, 50] Поменять местами 1-й положительный элемент с последним положительным элементом, 2-й - предпоследним и т.д.
12 55 / 5 [-50, 50] Определить количество пар соседних элементов, которые имеют одинаковые абсолютные значения, но противоположные знаки
13 70 / 9 [0, 100] Найти значение 3-го по величине элемента и значения всех элементов массива, которые его превышают, заменить на найденное значение
14 45 / 4 [-50, 50] Заменить все элементы с положительными значениями абсолютным значением отрицательного элемента с максимальным абсолютным значением
15 50 / 6 [-50, 50] Подсчитать количество пар соседних элементов с одинаковыми значениями
16 50 / 4 [-100, 100] Во всех последовательностях положительных чисел ограничить значения тех элементов, абсолютное значение которых ниже абсолютного среднего для этой последовательности
17 75 / 8 [-100, 100] Заменить каждый элемент на среднее арифметическое его и его соседей слева и справа.
18 80 / 4 [-100, 100] Найти ту непрерывную последовательность положительных чисел, сумма элементов в которой максимальная
19 60 / 4 [-50, 50] Во всех последовательностях отрицательных чисел поменять местами элементы с максимальным и минимальным значениями
20 30 / 3 [-100, 100] Во всех последовательностях положительных чисел ограничить снизу значения тех элементов, значения которых меньше среднего для этой последовательности
21 40 / 3 [-50, 50] Подсчитать количество пар соседних элементов, которые имеют противоположные знаки
22 50 / 5 [-50, 50] Для каждого положительного элемента определить, есть ли в массиве отрицательный элемент с противоположным значением; если да, заменить эти элементы на 0
23 40 / 7 [-100, 100] Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой, а нули - между ними
24 100 / 4 [0, 100] Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов
25 50 / 8 [-100, 100] Ограничить значения всех элементов, абсолютные значения которых превышают среднее для положительных и отрицательных элементов
26 55 / 6 [-50, 50] Вывести начальные индексы всех непрерывных знакопеременных последовательностей чисел
27 45 / 3 [0, 100] Подсчитать количество участков, которые образуют непрерывные последовательности чисел с неуменьшающимися значениями
28 65 / 5 [-50, 50] Найти из непрерывных последовательностей отрицательных чисел ту, которая имеет наибольшее абсолютное значение среднего арифметического ее элементов
29 40 / 5 [-100, 100] Во всех последовательностях отрицательных чисел изменить порядок элементов на противоположный и зеркально поменять последовательности местами
30 50 / 5 [-50, 50] Во всех последовательностях положительных чисел изменить порядок элементов на противоположный
31 75 / 8 [0, 100] Найти непрерывный участок из 10 элементов, сумма которых максимальна
32 45 / 5 [-50, 50] Вывести начальные индексы всех непрерывных последовательностей чисел с неувеличивающимися значениями
33 55 / 4 [-100, 100] Вывести начальные индексы всех непрерывных последовательностей неотрицательных чисел, длина которых больше 5
34 80 / 7 [-100, 100] Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов
35 55 / 6 [-50, 50] Найти непрерывные участки, на которых сумма элементов равна 0
36 65 / 5 [-50, 50] Определить среднюю длину непрерывных участков положительных чисел
37 50 / 4 [-50, 50] Подсчитать количество всех, непрерывных последовательностей положительных чисел, длина которых больше 7
38 65 / 6 [-100, 100] Разместить все элементы с нулевыми значениями в левой части массива, элементы с отрицательными значениями - за ними, а за ними - элементы с положительными значениями
39 30 / 4 [-100, 100] Во всех последовательностях положительных чисел заменить значения элементов с максимальным и минимальным значением на среднее для этой последовательности
40 75 / 5 [-100, 100] Заменить все элементы с отрицательным значением на значение минимального не равного 0 положительного элемента

 

Контрольные вопросы.

 

1. Что такое массив?

2. Объявление массива в С#.

3. Создание экземпляра массива.

4. Какими значениями инициализируется вновь созданный массив по умолчанию?

5. Правила обращения к элементам массива.

6. Способы инициализации элементов массива.

7. Структура инициализации элементов массива с использованием параметрического цикла.

8. Структура цикла foreach, его назначение и отличия от параметрического цикла for.

9. Отличительные особенности обработки массивов в циклах for и foreach.

10. Как в языке С# осуществить генерацию случайного целого числа в диапазоне [a, b]?

11. Как в языке С# произвести инициализацию целочисленной переменной значением, введенным с клавиатуры?

12. Как выполнить поиск максимального по модулю элемента массива?

13. Как определить количество четных элементов массива?

14. Как определить количество отрицательных элементов массива?

15. Как заменить положительные элементы массива нулями?


 

Лабораторная работа №5

 

Тема: Алгоритмизация обработки символьных строк. Пользовательский функции

 

Цель: освоение составления и тестирования алгоритмов и программ обработки символьных строк с использованием регулярных выражений и функций пользователя.

 

Теоретические положения

Библиотека System.String

 

Некоторые члены типа данных System.String, которые могут быть полезны при выполнении лабораторной работы, представлены в табл. 7 (подробности см. в MSDN).

 

Таблица 7. Стандартные функции библиотеки System.String для обработки строк



Поделиться:


Последнее изменение этой страницы: 2021-09-26; просмотров: 210; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.85.76 (0.021 с.)