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

RFpro.ru: Microsoft .NET

  Все выпуски  

RFpro.ru: Microsoft .NET


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

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

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

Асмик Гаряка
Статус: Академик
Рейтинг: 9029
∙ повысить рейтинг »
CradleA
Статус: Бакалавр
Рейтинг: 2624
∙ повысить рейтинг »
Micren
Статус: Профессор
Рейтинг: 1823
∙ повысить рейтинг »

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

Номер выпуска:225
Дата выхода:21.01.2012, 15:00
Администратор рассылки:Асмик Гаряка (Академик)
Подписчиков / экспертов:124 / 46
Вопросов / ответов:4 / 6

Консультация # 185205: Здравствуйте! Прошу помощи в следующем вопросе: Даны семь значений емкостей конденсаторов с[0],..., с[6]. Определить емкости систем конденсаторов, которые получаются при последовательном и параллельном соединении исходных конденсаторов. и немного с описанием...


Консультация # 185206: Здравствуйте! У меня возникли сложности с таким вопросом: дана вещественная матрица размером 5×6. Упорядочить ее строки по неубыванию их наибольших элементов. и описание ...
Консультация # 185207: Уважаемые эксперты! Пожалуйста, ответьте на вопрос:Дана строка. Подсчитать, сколько различных символов встречаются в ней. Вывести их на экран. и описание пожалуйста заранее благодарен...< hr size="1" noshade>Консультация # 185208: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Даны две квадратные матрицы порядка 5. Найти последователь-ность из нулей и единиц b такую, что b[i]=1, когда все элементы i-й строки первой матрицы содержатся в i-й строке второй матрицы. и описание к к ней с блок схемой если можно пожалуйста...

Консультация # 185205:

Здравствуйте! Прошу помощи в следующем вопросе: Даны семь значений емкостей конденсаторов с[0],..., с[6]. Определить емкости систем конденсаторов, которые получаются при последовательном и параллельном соединении исходных конденсаторов.
и немного с описанием

Дата отправки: 18.01.2012, 14:22
Вопрос задал: Иванов Евгений Александрович (Посетитель)
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Andrew Kovalchuk (Профессионал):

Здравствуйте, Иванов Евгений Александрович!
Код решающий поставленную задачу:

Код :
using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            double[] c = new double[7]; // массив значений емкостей конденсаторов
            double po, pa; // результаты для последовательного и параллельного их включения
            Console.WriteLine("Введите значения емкости конденсаторов:"); // подсказка
            for (int i = 0; i < 7; i++) {
                Console.Write("C[{0}] = ", i); // ввод значений пользователем
                c[i] = double.Parse(Console.ReadLine()); // сохранение значений в массиве
            }
            po = 0;
            for (int i = 0; i < 7; i++) { // вычисление результата для последовательного включения
                po += 1 / c[i];
            }
            pa = 0;
            for (int i = 0; i < 7; i++) //  вычисление результата для параллельного включения
            {
                pa += c[i];
            }
            Console.WriteLine("Общая емкость при"); // вывод результатов
            Console.WriteLine("последовательном соединении: {0}", po);
            Console.WriteLine("параллельном соединении: {0}", pa);
            Console.WriteLine("Done. Press any key..."); // работа завершена
            Console.ReadKey(); // ждем нажатия пользователем клавиши
        }
    }
}

Консультировал: Andrew Kovalchuk (Профессионал)
Дата отправки: 18.01.2012, 18:08
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует PsySex (Профессионал):

Здравствуйте, Иванов Евгений Александрович!
Код не зависящий от количества введеных значений для расчета. Хоть 7, хоть 10.

Код :
using System;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //список для хранения значений сопротивлений
            List<double> listcap = new List<double>();
            string inputcap;//введеное значение
            //новый экземпляр класса расчета сопротивления
            CalcCapacitance cc=new CalcCapacitance();

            Console.WriteLine("Введите значения сопротивлений, для прекращения ввода просто нажмите 'Enter'");
            while (true)
            {
                //вводим значения
                inputcap = Console.ReadLine();
                //если ничего не ввели, значит пользователь закончил ввод значений
                if (inputcap.Length == 0) break;
                //добавляем в список значение сопротивления
                listcap.Add(double.Parse(inputcap));             
            }
            //передаем классу массив введеных значений
            cc.C = listcap.ToArray();
            //выводим на экран количество введеных сопротивлений и результаты расчета
            Console.WriteLine("Введено {0} элемента(ов)!\r\nЕмкость при последовательном соединении: {1}\r\nЕмкость при последовательном соединении: {2}", 
                              listcap.Count.ToString(), cc.S.ToString(), cc.P.ToString());
            //ждем нажатия любой клавиши для завершения работы
            Console.ReadKey();
        }
    }

    class CalcCapacitance
    {
        //поля класса
        private double[] c;
        private double s, p;
        //конструкторы
        public double P { get { return p; } }
        public double S { get { return s; } }
        public double[] C { set { c = value; Calc(); } }

        //метод расчета
        private void Calc()
        {
            //обнулим значения, чтоб при повторном вызове не сохранялись старые значения
            s = p = 0;
            //цикл по всем значениям массива
            foreach (double cap in c)
            {
                //посчитаем последовательное соединение
                s += 1 / cap;
                //посчитаем параллельное соединение
                p += cap;
            }
        }
    }
}

Консультировал: PsySex (Профессионал)
Дата отправки: 18.01.2012, 22:40
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 185206:

Здравствуйте! У меня возникли сложности с таким вопросом: дана вещественная матрица размером 5×6. Упорядочить ее строки по неубыванию их наибольших элементов. и описание

Дата отправки: 18.01.2012, 14:24
Вопрос задал: Иванов Евгений Александрович (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Andrew Kovalchuk (Профессионал):

Здравствуйте, Иванов Евгений Александрович!
Решение вашей задачи может выглядеть так:

Код :
using System;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    class Program
    {
        static int maxi = 5; // размерности матрицы
        static int maxj = 6;
        static double[,] ar = new double[maxi, maxj]; // сама матрица
        static double[] max = new double[maxi]; // массив максимумов для строк

        static void printMatrix(string prefix) // вывод матрицы в консоль
        {
            Console.WriteLine(prefix); // Предваряющая надпись
            for (int i = 0; i < maxi; i++)
            {
                for (int j = 0; j < maxj; j++)
                {
                    Console.Write("{0,8:0.00000}", ar[i, j]); // вывод значения с выравниванием
                }
                Console.Write(" max[{0,8:0.00000}]", max[i]); // вывод значения максимума для строки
                Console.WriteLine();
            }
        }

        static void exchange(int r1, int r2) { // перестановка строк матрицы
            double temp;
            for (int j = 0; j < maxj; j++) { // переставим каждых элемент нужных строк
                temp = ar[r1, j];
                ar[r1, j] = ar[r2, j];
                ar[r2, j] = temp;
            }
            temp = max[r1]; // и обменяем значения максимумов с строках
            max[r1] = max[r2];
            max[r2] = temp;
        }

        static void Main(string[] args) // с этого места начнется исполнение
        {
            Random rnd = new Random(); // с помощью этого заполним случайными значениями матрицу
            for (int i = 0; i < maxi; i++) {
                max[i] = -1.0; // первоначальное значения максимума для строки заведомо меньше любого значения
                for (int j = 0; j < maxj; j++)
                {
                    ar[i, j] = rnd.NextDouble(); // сгенерируем значение элемента
                    if (max[i] < ar[i, j]) { // если он больше известного максимума в строке
                        max[i] = ar[i, j]; // перепишем максимум
                    }
                }
            }
            printMatrix("Source matrix:"); // выведем изначальную матрицу с маскимальными элементами

            for (int i = 0; i < maxi - 1; i++)
            {
                for (int ii = i + 1; ii < maxi; ii++)
                {
                    if (max[i] > max[ii]) { // сравним максимумы двух строк и в случае необходимости
                        exchange(i, ii); // обменяем строки местами
                    }
                }
            }
            
            printMatrix("Result matrix:"); // результирующая матрица выглядит так
            Console.WriteLine("Done. Press any key..."); // работа завершена
            Console.ReadKey(); // ждем от пользователя нажатия клавиши
        }
    }
}

Консультировал: Andrew Kovalchuk (Профессионал)
Дата отправки: 18.01.2012, 16:42

5
нет комментария
-----
Дата оценки: 19.01.2012, 23:00

Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 185207:

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:Дана строка. Подсчитать, сколько различных символов встречаются в ней. Вывести их на экран. и описание пожалуйста заранее благодарен

Дата отправки: 18.01.2012, 14:26
Вопрос задал: Иванов Евгений Александрович (Посетитель)
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Andrew Kovalchuk (Профессионал):

Здравствуйте, Иванов Евгений Александрович!
Ниже приведен код, который решает вашу задачу:

Код :
using System;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args) // с этого места начнется исполнение
        {
            string st = Console.ReadLine(); // ждем ввода строки от пользователя
            List<char> found = new List<char>(); // формируем список в котором будут храниться встреченные символы
            int count = 0; // пока их нет
            Console.Write("Result: "); // по ходу нахождения будем выписывать их в этой строке
            foreach (var c in st) // просмотрим каждый символ в строке
                if (found.IndexOf(c) == -1) // если такого еще нет в списке встреченных
                {
                    found.Add(c); // добавим его
                    count++; // подсчитаем его
                    Console.Write(c); // и напишем на экране
                }
            Console.WriteLine(); // переведем курсор на следующую строку
            Console.WriteLine("Found {0} uniq chars", count); // выведем сообщение о количестве найденных символов
            Console.WriteLine("Done. Press any key..."); // и предупреждение о завершении работы
            Console.ReadKey(); // ждем нажатие пользователем клавиши
        }
    }
}

Консультировал: Andrew Kovalchuk (Профессионал)
Дата отправки: 18.01.2012, 15:47
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует PsySex (Профессионал):

Здравствуйте, Иванов Евгений Александрович!
Еще один вариант решения

Код :
using System;
using System.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //ввод строки
            Console.Write("Введите строку:");
            string inputstring = Console.ReadLine();
            //создаем массив неповторяющихся символов из строки
            char[] dist = inputstring.ToCharArray().Distinct().ToArray();
            //печатаем количество различных символов
            Console.WriteLine("Разных символов в строке:{0}",dist.Length.ToString());
            //печатаем список символов, каждый символ с новой строки
            Array.ForEach(dist, d => Console.WriteLine(d));
            //ждем нажатия любой клавиши для завершения работы
            Console.ReadKey();
        }
    }
}

Консультировал: PsySex (Профессионал)
Дата отправки: 18.01.2012, 21:42
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 185208:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Даны две квадратные матрицы порядка 5. Найти последователь-ность из нулей и единиц b такую, что b[i]=1, когда все элементы i-й строки первой матрицы содержатся в i-й строке второй матрицы.
и описание к к ней с блок схемой если можно пожалуйста

Дата отправки: 18.01.2012, 14:27
Вопрос задал: Иванов Евгений Александрович (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Andrew Kovalchuk (Профессионал):

Здравствуйте, Иванов Евгений Александрович!
Код (с пояснениями) для решения задания вашей задачи приведен ниже. Блок-схем рисовать не умею, сорри.

Код :
using System;
using System.Collections.Generic;

namespace ConsoleApplication1
{
    class Program
    {
        static int maxr = 5; // размерности матрицы
        static int[,] a1 = new int[maxr, maxr]; // матрица a1
        static int[,] a2 = new int[maxr, maxr]; // матрица a2
        static int[] b = new int[maxr]; // массив нулей и единиц

        static void check(int row) { // проверка наличия элементов строки первой матрицы во второй
            bool isOne = true; // предположим, что они все есть
            for (int i = 0; i < maxr; i++) // каждый элемент строки первой матрицы попытаемся найти в соответствующей строке второй матрицы
            {
                bool isPresent = false; // пока его не нашли
                for (int j = 0; j < maxr; j++) { // смотрим последовательно каждый элемент строки второй матрицы
                    if (a1[row, i] == a2[row, j]) { // если нашли
                        isPresent = true; // сигнализируем, что элемент найден
                        break; // завершаем поиск
                    }
                }
                if (!isPresent) { // если какой-то из элементов не будет найден
                    isOne = false; // установим признак отсутствия
                    break; // дальше продолжать поиск не имеет смысла
                }
            }
            b[row] = ((isOne) ? 1 : 0); // устанавливаем 0 или 1
        }

        static void Main(string[] args) // с этого места начнется исполнение
        {
            Random rnd = new Random(); // с помощью этого заполним случайными значениями матрицу
            for (int i = 0; i < maxr; i++) {
                for (int j = 0; j < maxr; j++)
                {
                    a1[i, j] = rnd.Next(1, 5); // сгенерируем значение элемента для первой матрицы
                    a2[i, j] = rnd.Next(1, 5); // сгенерируем значение элемента для второй матрицы
                }
            }
            Console.WriteLine("Source matrix (a1/a2):"); // выведем изначальные матрицы
            for (int i = 0; i < maxr; i++)
            {
                for (int j = 0; j < maxr; j++)
                {
                    Console.Write("{0,3}/{1,-3} ", a1[i, j], a2[i, j]); // вывод значений матриц в виде удобном для "ручной" проверки
                }
                Console.WriteLine();
            }

            Console.Write("Result b-matrix: "); // результирующая последовательность нулей и единиц выглядит так
            for (int i = 0; i < maxr; i++)
            {
                check(i); // проверяем очередную строку
                Console.Write(b[i]); // выводим результирующий 0 или 1
            }
            Console.WriteLine();
            Console.WriteLine("Done. Press any key..."); // работа завершена
            Console.ReadKey(); // ждем от пользователя нажатия клавиши
        }
    }
}

Консультировал: Andrew Kovalchuk (Профессионал)
Дата отправки: 18.01.2012, 17:49
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!



В избранное