Форум программистов, компьютерный форум CyberForum.ru

Портирование кода на С++ (проверка вводимых данных пользователем на корректность) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подсчитать количество букв в строке http://www.cyberforum.ru/cpp-beginners/thread674769.html
подсчитать количество букв в строе
C++ Асимптотический анализ алгоритмов Здравствуйте. Помогите разобраться, что такое асимптотический анализ алгоритмов. Я мало что помню из школьной программы, поэтому сейчас приходится читать википедию и учить все заново, да и в программировании я новичок. Возникает много вопросов. Сейчас пытаюсь понять статью на хабре Начну с определения: Запись вида f(n) = O(g(n)) означает, что ф-ия f(n) возрастает медленнее чем ф-ия g(n) при с... http://www.cyberforum.ru/cpp-beginners/thread674762.html
Вычислить сумму ряда с заданной точностью C++
РЕАЛИЗАЦИЯ ИТЕРАЦИОННЫХ ЦИКЛОВ СРЕДСТВАМИ ЯЗЫКА С++ разработайте организацию выбора нужного решения с помощью переключателя switch. • с использованием цикла do....while; • с использованием цикла while; • с использованием цикла for.
Двумерный массив рациональных чисел + среднее арифметическое чисел массива + сортировка методом вставки C++
Ничего не могу понять!Вроде все правильно создавал, но считает неправильно. +Выдает ошибку Так же не могу отсортировать методом вставки элементы массива. Помогите, пожалуйста. //после завершения программы выдает ошибку: //" Stack around the variable 'mas' was corrupted. " //читал в и-нете, что вроде как я "вылез" за границы массива, но не знаю где... #include <iostream>
C++ Класс строка http://www.cyberforum.ru/cpp-beginners/thread674737.html
Всем привет! Следующая проблема: Определить класс строку. В класс включить два конструктора: создание строки символов и конструктор-копия. Определить функции-члены: вывод на экран строки, перевод символов строки в нижний регистр. Может есть у кого решение?
C++ Нахождение матрицы в матрице имеем динамическую прямоугольную матрицу a(m,n), заполненная рандомом от 0 до 9. найти в этой матрице квадратную матрицу b(x,x), у которой в главной диагонали нет 0-х элементов. если их несколько, брать самую большую и самую ближнюю к A(0,0) - то есть она будет лежать выше и левее всех остальных подробнее

Показать сообщение отдельно
Смирняга
69 / 14 / 1
Регистрация: 29.12.2010
Сообщений: 339

Портирование кода на С++ (проверка вводимых данных пользователем на корректность) - C++

19.10.2012, 07:49. Просмотров 1259. Ответов 7
Метки (Все метки)

Требуется портировать код с С# на С++. Код на шарпе - очень простой. В нем не используются языковые особенности шарпа, перевести, я думаю, будет легко
В итоге создам несколько тредов, дабы распараллелить процесс и сделать результат читабельнее.
Буду очень благодарен за помощь
Начнём, пожалуй:
Часть 1. Элегантное заполнение переменных

C#
1
2
3
4
5
6
7
8
9
10
11
12
double a;
            do
            {
                Console.WriteLine("Введите A: ");
                if (double.TryParse(Console.ReadLine(), out a) == false)
                {
                    Console.WriteLine("Ошибка ввода!");
                    continue;
                }
                else
                    break;
            } while (true);
Описание происходящего:
В бесконечном цикле просим пользователя ввести переменную, если он ввел её правильно, выходим из цикла(break). Если он таки ввёл переменную некорректно, то говорим, что он неправ, и перескакиваем к следующей итерации цикла(continue).

Добавлено через 41 минуту
Если что, то double - имеется ввиду действительное число

Продолжение темы: Портирование кода на С++ (проверка вводимых данных пользователем на корректность)

Часть 2. Основной код

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
Console.WriteLine("x            F");
 
            bool cel;
            if ((((int)Math.Truncate(a) | (int)Math.Truncate(b)) & (int)Math.Truncate(c)) == 0
 
            {
                cel = true;
            }
            else
            {
                cel = false;
            }
 
 
 
 
 
 
 
            for (double x = xn; x < xc; x += dx)
            {
                double F;
                if (x < 0.6 && b + c != 0)
                {
                    F = f1(a, b, c, x);
                }
                else if (x > 0.6 && b + c == 0)
                {
                    F = f2(a, c, x);
                }
                else
                {
                    F = f3(a, c, x);
                }
 
                if (cel)
                {
                    Console.WriteLine(x + "            " + Math.Truncate(F));
                }
                else
                {
                    Console.WriteLine(x + "            " + F);
                }
            }
 
 
 
 
 
            Console.ReadLine();

Примечание: | & - поразрядные операции
(int) - явное преобразование
Math.Truncate - вырывает целую часть действительного числа(Примеры: 12,23 -> 12, 12,99 -> 12)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru