Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Microsoft .NET

  Все выпуски  

RFpro.ru: Microsoft .NET


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Гаряка Асмик
Статус: Профессор
Рейтинг: 6477
∙ повысить рейтинг »
Micren
Статус: Профессионал
Рейтинг: 1705
∙ повысить рейтинг »
Andrew Kovalchuk
Статус: Профессионал
Рейтинг: 787
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Microsoft .NET : C#

Номер выпуска:197
Дата выхода:27.12.2010, 14:30
Администратор рассылки:Alexey G. Gladenyuk (Управляющий)
Подписчиков / экспертов:164 / 56
Вопросов / ответов:1 / 2

Вопрос № 181506: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Дана целочисленная матрица А (8х10). По массиву А получить массив В, присвоив его k-му эле- менту значение TRUE, если выполнено указанное ниже ...



Вопрос № 181506:

Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:
Дана целочисленная матрица А (8х10).
По массиву А получить массив В, присвоив его k-му эле-
менту значение TRUE, если выполнено указанное ниже ус-
ловие, и значение FALSE - иначе: элементы k-й строки
массива А упорядочены по убыванию.
Через console application

Отправлен: 21.12.2010, 14:49
Вопрос задал: Посетитель - 354395 (Посетитель)
Всего ответов: 2
Страница вопроса »


Отвечает PsySex (Специалист) :
Здравствуйте, Посетитель - 354395!
Код:
using System;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//объявляем "матрицу"
int[,] A = new int[8, 10];
//временный масив
int[] X = new int[10];
//результирующий массив
bool[] B = new bool[8];
//создаем генератор случайных чисел для заполнения матрицы
Random randomize = new Random();

//циклы заполнения матрицы
for (int i = 0; i < 8; ++i)
{
for (int j = 0; j < 10; ++j)
{
//заполняем случайными числами до 100000(например)
A[i,j] = randomize.Next(100000);
//если нужно вводить элементы вручную раскоментировать следующие строки
//Console.Write("A[{0}.{1}]=", i, j);
//A[i, j] = int.Parse(Console.ReadLine());
}
}
//обработка матрицы по строкам
for (int k = 0; k < 8; ++k)
{
//цикл по столбцам матрицы
for (int j = 0; j < 10; ++j)
{
//помещение значений строки матрицы во временыый массив Х
X[j] = A[k, j];
}
//присваиваем k-тому элементу результирующего массива В значение по условию задачи, условие обрабатывается в функции IsSorted
B[k] = IsSorted(X);
//сразу выводим на экран значение массива В
Console.WriteLine("B[{0}]={1}",k, B[k]);
}
//ждем нажатия клавиши для выхода из приложения
Console.ReadKey();
}

static bool IsSorted(int[] row)
{
//функция для определения условия -сортирована ли строка по убыванию
//создаем новый массив для сортированных данных
int[] SortedRow=new int [row.Length];
//результат условия
bool returnValue = true;

//делаем копию строки массива
Array.Copy(row, SortedRow, row.Length);
//сортируем массив
Array.Sort(SortedRow);
//"переворачиваем" массив т.к. требуется по убыванию
Array.Reverse(SortedRow);
//цикл для поэлементного сравнения
for (int i = 0; i < row.Length; ++i)
{
//если хоть один элемент не равен, значит строка не сортирована по убыванию
if (row[i] != SortedRow[i])
{
//выходим из цикла с отрицательным результатом
returnValue = false;
break;
}
}
//возвращаем результат условия
return returnValue;
}
}
}

-----
Bom Shankar!

Ответ отправил: PsySex (Специалист)
Ответ отправлен: 21.12.2010, 16:18
Номер ответа: 264971

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 264971 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Отвечает Гаряка Асмик (Профессор) :
    Здравствуйте, Посетитель - 354395!

    Функция, проверяющая упорядоченность, может быть написана так.
    Код:
           static bool IsSorted(int[] row)
    {
    //результат условия
    bool returnValue = true;

    //цикл для поэлементного сравнения
    for (int i = 0; i < row.Length-1; ++i)
    {
    //если хоть один элемент меньше следующего, значит строка не сортирована по убыванию
    if (row[i] < row[i+1])
    {
    //выходим из цикла с отрицательным результатом
    returnValue = false;
    break;
    }
    }
    //возвращаем результат условия
    return returnValue;
    }

    Ответ отправил: Гаряка Асмик (Профессор)
    Ответ отправлен: 21.12.2010, 16:44
    Номер ответа: 264972

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 264972 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.25 от 13.12.2010

    В избранное