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

RFpro.ru: Microsoft .NET

  Все выпуски  

RFpro.ru: Microsoft .NET


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

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

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

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

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

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

Вопрос № 181296: Умные люди сего мира! Помогите состряпать две простенькие програмки в Си шарпе 1. Введите массив N и определите, есть ли в нем элементы с одинако-выми значениями. 2. Дан двумерный массив целых чисел. Нечётные строки этого массива замен...



Вопрос № 181296:

Умные люди сего мира! Помогите состряпать две простенькие програмки в Си шарпе


1. Введите массив N и определите, есть ли в нем элементы с одинако-выми значениями.
2. Дан двумерный массив целых чисел. Нечётные строки этого массива заменить на Х.


P.S в консолях если можно

Отправлен: 13.12.2010, 12:07
Вопрос задал: Кондаков Александр Олегович (Посетитель)
Всего ответов: 3
Страница вопроса »


Отвечает Micren (Профессионал) :
Здравствуйте, Кондаков Александр Олегович!
1я задача.
Код:
using System;

namespace Application
{
class MainClass
{
// К-во элементов массива
const int COUNT = 20;
// Можно регулировать максимальное значение элемента, тем самым изменяя вероятность появления
// одинаковых элементов
const int MAX = 400;
// Генератор случайных чисел
static Random random = new Random ();

public static void Main (string[] args)
{
// Массив
int[] array = new int[COUNT];

Console.WriteLine ("Исходный массив:");

// Заполним случ. числами
for (int i = 0; i < COUNT; ++i) {
array[i] = random.Next () % MAX;
Console.Write ("{0,10} ", array[i]);
}

// Выводим результат
Console.WriteLine ("\nЭлементы с одинаковыми значениями {0}", onlyDifferent (array) ? "отсутствуют" : "есть");

Console.ReadKey ();
}

// Проверяет есть ли одинаковые
private static bool onlyDifferent (int[] array)
{
// Перебор элементов
for (int i = 0, end_i = array.Length - 1; i < end_i; ++i) {
for (int j = i + 1, end_j = array.Length; j < end_j; ++j) {
if (array[i] == array[j]) {
return false;
}
}
}
return true;
}
}
}

Примеры работы:
Код:
Исходный массив:
32 346 227 233 5 390 247 45 323 244 70 385 254 327 114 318 366 215 284 296
Элементы с одинаковыми значениями отсутствуют

Исходный массив:
395 73 129 212 69 292 201 127 66 277 143 346 11 129 292 76 121 327 157 97
Элементы с одинаковыми значениями есть

Ответ отправил: Micren (Профессионал)
Ответ отправлен: 13.12.2010, 17:55
Номер ответа: 264726

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


  • Отвечает Andrew Kovalchuk (Профессионал) :
    Здравствуйте, Кондаков Александр Олегович!
    2-я задача
    Код:
    using System;

    namespace ca181296
    /*
    2. Дан двумерный массив целых чисел. Нечётные строки этого массива заменить на Х.
    */
    {
    class Program
    {
    static int x;
    static int[,] ar;
    static Random rnd;

    static void Main(string[] args)
    {
    Console.Clear();
    Console.WriteLine("Replace odd row to x-value.");
    rnd = new Random();
    Console.WriteLine("Source array:");
    ar = new int[5, 5];
    for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
    ar[i,j] = rnd.Next (100);
    Console.Write("{0,3} ", ar[i, j]);
    }
    Console.WriteLine();
    }
    Console.WriteLine();
    Console.Write("Set x-value: X = ");
    x = Convert.ToInt16(Console.ReadLine());
    Console.WriteLine();
    Console.WriteLine("Result array:");
    for (int i = 0; i < 5; i++)
    {
    for (int j = 0; j < 5; j++)
    {
    if (i % 2 == 1)
    {
    ar[i, j] = x;
    }
    Console.Write("{0,3} ", ar[i, j]);
    }
    Console.WriteLine();
    }
    Console.WriteLine();
    Console.Write("Done. Press any key...");
    Console.ReadKey();
    }
    }
    }

    -----
    Временная неудача лучше временной удачи

    Ответ отправил: Andrew Kovalchuk (Профессионал)
    Ответ отправлен: 13.12.2010, 18:36
    Номер ответа: 264731

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


  • Отвечает PsySex (Специалист) :
    Здравствуйте, Кондаков Александр Олегович!
    Еще один вариант решения первого задания с использованием LINQ. Программа также возвращает количество элементов с одинаковыми значениями.
    Код:
    using System;
    using System.Linq;

    namespace ConsoleApplication1
    {
    class Program
    {
    static void Main(string[] args)
    {
    int arraysize=0;
    int arrayindex;
    bool IsNumeric;

    while (arraysize == 0)
    {
    Console.Write("Введите размер массива: ");
    IsNumeric = Int32.TryParse(Console.ReadLine(), out arraysize);
    if (arraysize == 0)
    Console.Write("Введено неверное или нулевое значение, попробуйте еще раз! \r\n");
    }
    string[] myArray = new string[arraysize];
    for (arrayindex = 0; arrayindex != myArray.Length; arrayindex++)
    {
    Console.Write("Введите элемент № {0} массива: ", arrayindex+1);
    myArray[arrayindex] = Console.ReadLine();
    }
    var uniqueElements = myArray.Distinct();
    if (uniqueElements.Count() != arraysize)
    {
    foreach (var ue in uniqueElements)
    {
    int amount = (from a in myArray
    where a == ue
    select a).Count<string>();
    if (amount > 1)
    Console.WriteLine("\nЗначение {0} повторяется {1} раз(а)", ue, amount);
    }
    }
    else
    {
    Console.WriteLine("\nМассив не содержит совпадений!");
    }
    Console.ReadKey();
    }
    }
    }

    -----
    Bom Shankar!

    Ответ отправил: PsySex (Специалист)
    Ответ отправлен: 14.12.2010, 16:35
    Номер ответа: 264775

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


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

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

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

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

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

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

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


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

    В избранное