Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C# Вывод текста в консоли без мерцаний https://www.cyberforum.ru/ csharp-beginners/ thread754319.html
Здравствуйте. Я пишу игрушку в консоле, но как вам наверно известно, консоль не достаточно быстро выводит информацию, из-за чего появляется мерцание. Нет, мне не нужно выводить 30 кадров в секунду, "графика" выводится после ввода информации пользователем и по стилю схожа с Dwarf Fortress. Подскажите пожалуйста, чем удобнее выводить текст без мерцаний, что гуглить (понимаю, что консоль отпадает)....
Найти максимальное из натуральных чисел, не превышающих 5000, которое нацело делится на 39. C#
Найти максимальное из натуральных чисел, не превышающих 5000, которое нацело делится на 39.
C# Использование условного оператора в теле операторов цикла с условием Дано натуральное число, в котором все цифры различны. Определить порядковые номера его максимальной и минимальной цифр, считая номера: а) от конца числа; б) от начала числа. https://www.cyberforum.ru/ csharp-beginners/ thread754280.html C# Составить программу возведения натурального числа в третью степень https://www.cyberforum.ru/ csharp-beginners/ thread754277.html
Составить программу возведения натурального числа в третью степень, учитывая следующую закономерность: 13=1 23=3+5 33=7+9+11 43=13+15+17+19 53=21+23+25+27+29
Обработка данных во время ввода C#
Известны оценки по физике каждого из 20 учеников класса. Определить среднюю оценку.
C# Из матрицы 1-ой и последней строки, вывести одномерный массив методом "выбора" https://www.cyberforum.ru/ csharp-beginners/ thread754255.html
Дана прямоугольная матрица. Сформировать из положительных элементов матрицы, расположенных в первой и последней строках, новый одномерный массив. Полученный массив сортировать в порядке убывания элементов методом выбора. Вывести: -Матрицу -Одномерный массив до сортировки -Одномерный с сортировкой метода выбора То что написал я: using System;
C# Полиморфизм https://www.cyberforum.ru/ csharp-beginners/ thread754243.html
Значит вот выдумал только что такой вот пример дабы обрести понимание полиморфизма. Скажите пожалуйста, перегрузка методов, как в этом случае возможно только если базовый клас является виртуальным, так? И следующий вопрос: Почему если убрать ключевое слово override в любом из методов, то при вызове этого соответствующего метода на экран ничего не выводится? (Ну то есть сделать просто...
Изменить имя процесса C#
Люди, кто знает, как можно изменить имя процесса не переименовывая .exe?
C# Составить программу, которая уменьшает первое введенное число в два раза, если оно больше второго введенного числа по абсолютной величине. https://www.cyberforum.ru/ csharp-beginners/ thread754229.html
Составить программу, которая уменьшает первое введенное число в два раза, если оно больше второго введенного числа по абсолютной величине.
C# Программа для стима Сначала авторизация в стиме, алсо https://steamcommunity.com/login/home/?goto=apps%2F ,за тем вбиваешь ссылку на аккаунт с друзьями,сам акк должен быть онлайн,за тем программка парсит друзей по этой ссылке,потом собирает ссылки на друзей,переходит по друзьям и парсит у кого открытые стены,потом у этих друзей парсит ещё друзей и опять смотрит открытые стенки и опять парсит друзей. Это как... https://www.cyberforum.ru/ csharp-beginners/ thread754194.html
Не меняется местами при четных значениях n 1-мерного массива C#
Всё вроде работает, при нечетных значениях всё меняется, последнее число меняется на ноль, что логично, а при четных значения не происходит ничего, подскажите, в чем проблема? Заранее спасибо...P.S Измененный массив выводится по 2-й кнопочке. private void Form1_Load(object sender, EventArgs e) { } int n; int A; void Generate(int N, int A) ...
C# Найти произведение всех элементов матрицы и заменить им все диагональные элементы https://www.cyberforum.ru/ csharp-beginners/ thread754097.html
Задана квадратная матрица А размером NxN(N<=10), состоящая из действительных элементов. Найти произведение всех ее элементов и заменить им все диагональные элементы этой матрицы. В программе обязательно использовать следующие компоненты: numericUpDown, richTextBox, dataGridView. При проверке заменяет все диагональные элементы на нули, независимо от вводимых в матрицу чисел. //private void...
740 / 284 / 83
Регистрация: 12.12.2012
Сообщений: 565
07.01.2013, 05:32 0

Последовательность из n вещественных чисел - C# - Ответ 3962096

07.01.2013, 05:32. Показов 5856. Ответов 1
Метки (Все метки)

Ответ

Цитата Сообщение от SEV Посмотреть сообщение
Запарился уже.
Ничего удивительного. Вы выбрали неудачный поток для записи-чтения. С BinaryWriter и BinaryReader всё получается легко и естественно.
Держите код. Возможно вас отпугнет его размер. Но, не бойтесь. Всё задание, вернее, та его часть, которая отвечает за чтение файла заключена в процедурах TaskN. Остальное, так, для того чтобы можно было сразу запустить и проверить. У себя проверил.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
 
namespace ConsoleApplication3
{
    class Program
    {
        static void ShowMenu()
        {
            Console.WriteLine();
            Console.WriteLine("Меню:");
            Console.WriteLine("0 - Выйти из программы");
            Console.WriteLine("1 - Вывести на экран все компоненты файла,меньшие заданного числа.");
            Console.WriteLine("2 - Вывести на экран все положительные компоненты файла");
            Console.WriteLine("3 - Вычислить среднее арифметическое компонентов файла, стоящих\nна чётных позициях");
            Console.WriteLine();
        } // ShowMenu()
        
        static void Task1(BinaryReader fromFile) // Вывести на экран все компоненты файла, меньшие заданного числа
        {
            double userNum; // Опорное число
            double item; // Элемент файла
 
            // Получаем от пользователя опорное число
            do // 1 
            {
                Console.Write("Введите опорное число: ");
                try
                {
                    userNum = double.Parse(Console.ReadLine());
                    break;
                }
                catch (FormatException)
                {
                    Console.WriteLine("Ошибка! Неверный формат данных.");
                }
            } while(true); // do 1
 
            // Читаем файл и, собственно, выполняем задание
            Console.WriteLine("Числа, меньшие заданного вами:");
            try // 1
            {
                fromFile.BaseStream.Seek(0, SeekOrigin.Begin); // Указатель файлового потока - в начало.
                while (fromFile.BaseStream.Position < fromFile.BaseStream.Length)
                {
                    item = fromFile.ReadDouble();
                    if (item < userNum) Console.WriteLine(item);
                }
                
            }
            catch (IOException A)
            {
                Console.WriteLine("Внимание! Возникло исключение при чтении файла.\n" + A.Message);
            }
            // end try 1
        } // Task1()
 
        static void Task2(BinaryReader fromFile) // Вывести на экран все положительные компоненты файла
        {
            double item; // Элемент файла
 
            // Читаем файл и, собственно, выполняем задание
            Console.WriteLine("Положительные компоненты файла:");
            try // 1
            {
                fromFile.BaseStream.Seek(0, SeekOrigin.Begin); // Указатель файлового потока - в начало.
                while (fromFile.BaseStream.Position < fromFile.BaseStream.Length)
                {
                    item = fromFile.ReadDouble();
                    if (item > 0.0) Console.WriteLine(item);
                }
                
            }
            catch (IOException A)
            {
                Console.WriteLine("Внимание! Возникло исключение при чтении файла.\n" + A.Message);
            }
            // end try 1
        } // Task2()
 
        static void Task3(BinaryReader fromFile) // Вычислить среднее арифметическое компонентов файла, стоящих на чётных позициях
        {
            int i = 0; 
            double summ = 0.0;
            double item; // Элемент файла
 
            // Читаем файл и, собственно, выполняем задание
            Console.WriteLine("Среднее арифметическое компонентов файла, стоящих на чётных позициях:");
            try // 1
            {
                fromFile.BaseStream.Seek(0, SeekOrigin.Begin); // Указатель файлового потока - в начало.
                while (fromFile.BaseStream.Position < fromFile.BaseStream.Length)
                {
                    item = fromFile.ReadDouble();
                    summ += item; // Суммируем
                    i++; // Подсчитываем количество нужных нам элементов
                    fromFile.BaseStream.Position += 8; // Одно число, типа double занимает 8 байт. 
                }
            }
            catch (IOException A)
            {
                Console.WriteLine("Внимание! Возникло исключение при чтении файла.\n" + A.Message);
            }
            // end try 1
            Console.WriteLine("{0:F3}", summ / i);
        } // Task3()
        
        static void Main(string[] args)
        {
            int i = 0; // Переменная цикла
            int seqLength = 0; // Длина последовательности
 
            double currNum; // Очередное число
            double[] arr; // Ссылка на массив вещественных чисел (пока пустая)
 
            string fileName = "output.dat"; // Имя файла
            FileStream fs; // Базовый файловый поток
            BinaryWriter dataOut; // Бинарный поток на запись
            BinaryReader dataIn; // Бинарный поток на чтение
 
                        
            Console.WriteLine("Ввод последовательности из n вещественных чисел:");
            
            do // 1 Получение длины последовательности
            {
                Console.Write("Укажите длину последовательности: ");
                try
                {
                    seqLength = int.Parse(Console.ReadLine());
                    if (seqLength <= 0) throw new FormatException();
                }
                catch (FormatException)
                {
                    Console.WriteLine("Ошибка! Неверный формат данных.");
                }
            } while(seqLength <= 0); // do 1
 
            arr = new double[seqLength]; // Подключаем ссылку к массиву из заданного количества элементов
 
            // Заполняем массив
            do // 2 
            {
                Console.Write("[{0}]: ", i);
                try
                {
                    currNum = double.Parse(Console.ReadLine());
                    arr[i] = currNum;
                    i++;
                }
                catch (FormatException)
                {
                    Console.WriteLine("Ошибка! Неверный формат данных.");
                }
            } while(i < arr.Length); // do 2
 
            /* Выводим полученный массив для обозрения пользователя.
             * Не очень понимаю зачем это надо. Ведь на консоли и так всё отображается. Но в вашем коде это есть.
             * ...Хотя, если пользователь вводит с ошибками, то экран засоряется сообщениями об ошибках и наглядность теряется.
             * */
            Console.WriteLine("Полученная последовательность:");
            for (i = 0; i < arr.Length; i++)
            {
                Console.WriteLine("{0}", arr[i]); // Здесь я вывожу не в строку, а в столбец. Мне решилось, что так нагляднее.
            } // for
 
            // Пишем всё это дело в файл.
            // Открываем файл.
            try // 1
            {
                // Инициируем потоки
                fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
                dataOut = new BinaryWriter(fs);
            }
            catch (IOException A)
            {
                Console.WriteLine("Внимание! Возникло исключение при открытии файла {0}.", fileName);
                Console.WriteLine(A.Message);
                Console.WriteLine("Аварийное завершение программы.");
                return;
            }
            // end try 1
 
            // Пишем данные
            try // 2
            {
                for (i = 0; i < arr.Length; i++)
                {
                    dataOut.Write(arr[i]);
                }
                Console.WriteLine("Файл записан.");
            }
            catch (IOException B)
            {
                Console.WriteLine("Внимание! Возникло исключение при записи файла.\n" + B.Message);
            }
            finally
            {
                dataOut.Close(); // Закрываем пишущий поток
            }
            // end try 2
 
            // Выполняем задание
            // Открываем файл для чтения
            try // 3
            {
                fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                dataIn = new BinaryReader(fs);
            }
            catch (IOException C)
            {
                Console.WriteLine("Внимание! Возникло исключение при открытии файла {0}.", fileName);
                Console.WriteLine(C.Message);
                Console.WriteLine("Аварийное завершение программы.");
                return;
            }
            // end try 3
 
            ShowMenu(); // Показываем меню. Его можно вставить внуть цикла do_3. Тогда оно будет выводиться после выполнения каждого задания.
            bool IsExit; // Флаг завершения работы программы
            byte itemMenu;
 
            try // 4
            {
                do // 3
                {
                    IsExit = false;
                    
                    try // 5
                    {
                        Console.WriteLine("Введите номер пункта меню");
                        itemMenu = byte.Parse(Console.ReadLine());
                        switch (itemMenu) // 1
                        {
                            case 0:
                                IsExit = true;
                                break;
                            case 1:
                                Task1(dataIn);
                                break;
                            case 2:
                                Task2(dataIn);
                                break;
                            case 3:
                                Task3(dataIn);
                                break;
                            default:
                                Console.WriteLine("Нет такого пункта меню.");
                                break;
                        } // switch 1
                    }
                    catch (FormatException)
                    {
                        Console.WriteLine("Ошибка! Неверный формат при вводе пункта меню.");
                    }
                    // end try 5
                    
                } while (!IsExit); // do 3
            }
            finally
            {
                dataIn.Close();
            }
            // end try 4
            Console.WriteLine("Конец программы");
 
        } // Main()
    }
}
Добавлено через 28 минут
...Как всегда, "умная мысля приходит опосля". Пока курил, подумалось, что если вы каждое число будете писать в файл построчно, то задача разрешится не менее "легко и естественно".

Вернуться к обсуждению:
Последовательность из n вещественных чисел C#
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2013, 05:32
Готовые ответы и решения:

Дана последовательность из n вещественных чисел. Найти наиболее длинную последовательность подряд идущих нулей.
Дана последовательность из n вещественных чисел. Найти наиболее длинную последовательность подряд...

Последовательность вещественных чисел
Вводится последовательность вещественных чисел, оканчивающаяся нулём, и состоящая более чем из...

Вводится последовательность из N вещественных чисел
Нужно решить задачу. Вводится последовательность из N вещественных чисел. Определить является ли...

Исправьте ошибку. Дана последовательность из n вещественных чисел. Записать все эти числа в файл. Вывести на экран все
Доброго дня суток, помогите пожалуйста Дана последовательность из n вещественных чисел. Записать...

1
07.01.2013, 05:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2013, 05:32
Помогаю со студенческими работами здесь

Задана последовательность N вещественных чисел. Отсортировать последовательность по убыванию методом выбор
И снова прошу помощи написать код. Задана последовательность N вещественных чисел. Отсортировать ...

Вводится последовательность из N вещественных чисел. Определить, является ли последовательность знакочередующе
Вводится последовательность из N вещественных чисел. Определить, является ли последовательность...

дана последовательность вещественных чисел а1,а2,.а15 Определить являеться ли последовательность упорядоченной по возрастанию
дана последовательность вещественных чисел а1,а2,...а15 Определить являеться ли последовательность...

Вводить последовательность вещественных чисел, пока следующее вводимое число не окажется меньше предыдущего. Вывести полученую последовательность.
Вводить последовательность вещественных чисел, пока следующее вводимое число не окажется меньше...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru