Результаты поиска
| |
Lertmind | Дата: Среда, 31 Декабря 2014, 00:11 | Сообщение # 501 | Тема: Library и Temp системные папки, как уменьшить размер? |
заслуженный участник
Сейчас нет на сайте
| Цитата А то я попробовал их обоих удалить, так юнити стал выдавать кучу ошибок - следовательно не выход! Что за ошибки? Раньше на форуме юнити писали, что удалять Library нельзя, портится проект, но сейчас мне кажется изменилось, обычно в проектах после удаления всё нормально восстанавливается. В примерах к книгам эти папки не добавляют и всё работает, возможно надо что-то сделать экстраординарное, чтобы папка Library была важна.
|
|
| |
Lertmind | Дата: Вторник, 04 Ноября 2014, 06:20 | Сообщение # 502 | Тема: Задание по C# |
заслуженный участник
Сейчас нет на сайте
| В string Postfix(string Input) внутри if (Char.IsDigit(Input[i])) {} записать: Код if (i > 0 && !Char.IsDigit(Input[i - 1])) x += " "; x += Convert.ToString(Input[i]); Тогда в постфиксной записи будут пробелы между числами, например для "(10+1)*23" будет " 10 1+ 23*".
В int Equal(string Input) объявляем переменную string number = ""; и вместо if (Char.IsDigit(Input[i])) {} else { записать: Код if (Char.IsDigit(Input[i]))//Если число то, { number += Input[i]; if (i + 1 == Input.Length || !Char.IsDigit(Input[i + 1])) { MyStack.Push(int.Parse(number)); number = ""; } } else if (Prior(Input[i]) > 0)//иначе { В number будет собираться число. Если следующий символ не цифра или конец строки, то добавляем в стек число (можешь написать свою функцию преобразования из строки в число вместо int.Parse(), хотя ты зачем-то уже написал CharsArrToInt() ). Проверка if (Prior(Input[i]) > 0) нужна, чтобы проходили только символы операций, а всякие пробелы и прочий мусор игнорировались.
Полный код (протестил только для (10+1)*23, должно работать для всего): Код using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string m = Console.ReadLine(); Console.WriteLine("Эта же запись но в посфиксном виде " + Postfix(m)); Console.WriteLine("Ответ " + Equal(Postfix(m))); Console.ReadLine();//Задержка экрана } // //Функция превращения строки в постфиксную запись static string Postfix(string Input) { var MyStack = new Stack<char>();//Объявлен стек для операций string x = null; int y; //Цикл превращение строки в постфиксную for (int i = 0; i < Input.Length; i++) {
if (Char.IsDigit(Input[i]))//Проверяем входной символ, если число { if (i > 0 && !Char.IsDigit(Input[i - 1])) x += " "; x += Convert.ToString(Input[i]); } else //Если символ, производим его разбор { y = Prior(Input[i]);// Назначаем приоритет для входящего символа if (MyStack.Count == 0) //Если стек пустой { MyStack.Push(Input[i]);//Закидываем знак в стек } else //Если стек имеет какие либо значения { if (y != Prior(MyStack.Peek()))//Если символы по приоритету не ровны { if (y > Prior(MyStack.Peek()))//Если приоритет входящего символа больше имеющегося { MyStack.Push(Input[i]); } else if (y < Prior(MyStack.Peek())) {
if (y == 2) //Если символ является закрывающей скобкой { if (MyStack.Peek() == '(') //Если на вершине стека находится открывающая скобка { MyStack.Pop(); } else if (MyStack.Peek() != '(') //Если не равен открывающей скобке { while (MyStack.Peek() != '(')//Пока на вершине стека не будет открывающей скобки, { x += MyStack.Pop(); //Выталкиваем в строку символы } MyStack.Pop(); } } else { if (y == 1) //Если равен открывающей скобке { MyStack.Push(Input[i]); } else { x += MyStack.Pop(); MyStack.Push(Input[i]); }
} } } else if (y == Prior(MyStack.Peek()))//Если символы ровны { x += MyStack.Pop();//Из вершины стека выкидываем символ в строку MyStack.Push(Input[i]);//Кладем в стек новый символ }
} }
} while (MyStack.Count > 0)//Выкидываем остаток символов из стека { x += MyStack.Pop(); } return x;//Возвращаем строку в постфиксной записи }
// //Функция подсчета static int Equal(string Input) { var MyStack = new Stack<int>(); int a = 0, b = 0; string number = ""; for (int i = 0; i < Input.Length; i++) { if (Char.IsDigit(Input[i]))//Если число то, { number += Input[i]; if (i + 1 == Input.Length || !Char.IsDigit(Input[i + 1])) { MyStack.Push(int.Parse(number)); number = ""; } } else if (Prior(Input[i]) > 0)//иначе { Console.WriteLine("В стаке кол-во элементов " + MyStack.Count); a = MyStack.Pop();//Выкидываем первое число Console.WriteLine("Первое число " + a); b = MyStack.Pop();//Выкидываем второе число Console.WriteLine("Второе число " + b);
switch (Input[i])//Переключатель для определения действий над числами { //Модуль возведения в степень не работает правильно (работает только с положительными числами) case '^': Console.WriteLine("Знак операции ^"); a = Convert.ToInt32(Math.Pow(a, b)); Console.WriteLine("Значение x " + a); MyStack.Push(a); break; case '*': Console.WriteLine("Знак операции *"); a = b * a; Console.WriteLine("Значение x " + a); MyStack.Push(a); break; case '/': Console.WriteLine("Знак операции /"); if (a == 0) { a = 0; } else { a = b / a; } Console.WriteLine("Значение x " + a); MyStack.Push(a); break; case '+': Console.WriteLine("Знак операции +"); a = b + a; Console.WriteLine("Значение x " + a); MyStack.Push(a); break; case '-': Console.WriteLine("Знак операции -"); a = b - a; Console.WriteLine("Значение x " + a); MyStack.Push(a); break; } } } return a; }
//Функция обработки числа из char в int static int CharsToInt(char Input) { int x = 0, y = 0; //кол-во итераций в данном случае равно a.Length
x = Input - '0'; //Переводит из char в int число справа на левово y = y * 10 + x;
return y; }
// //Функция обработки числа из char[] в int static int CharsArrToInt(char[] Input) { int x = 0, y = 0; //кол-во итераций в данном случае равно a.Length for (int power = 0; power < Input.Length; power++) //Цикл обработки числа из Char в Int { x = (Input[power] - '0'); //Переводит из char в int число справа на левово y = y * 10 + x; } return y; } // //Функция приоритета знаков static int Prior(char Input) { switch (Input) //Получаем на входе символ, и возвращаем его приоритет. { case '^': return 6; case '*': return 5; case '/': return 5; case '+': return 4; case '-': return 4; case '=': return 3; case ')': return 2; case '(': return 1; default: return 0; }
} } } Добавлено (04.11.2014, 06:20) --------------------------------------------- На самом деле, твой код не работает с унарным минусом ("-1" фейл). Ещё ты неправильно возводишь в степень, во-первых, надо записать a = Convert.ToInt32(Math.Pow(b, a));, во-вторых, возведение в степень правоассоциативная операция и для, например 2^2^3, должно быть 2^(2^3), а не (2^2)^3 как в твоей программе, опять же прочитай внизу здесь. Замечу, что для "0-2^2^3" должен быть результат -256, а для "(0-2)^2^3" уже 256 (если сделаешь унарный минус, то 0 приписывать не надо).
|
|
| |
Lertmind | Дата: Пятница, 24 Октября 2014, 21:59 | Сообщение # 503 | Тема: Запекание света и теней в реальном времени |
заслуженный участник
Сейчас нет на сайте
| Думаю нельзя, это лишено смысла. Запекают всегда заранее, ты же не хочешь включать в дистрибутив игры lightmapper – Beast. Тени там же запекаются, как ты хочешь - нельзя. Что ты хочешь звучит возможным, но мне кажется сложно реализуемо и того не стоит.
|
|
| |
Lertmind | Дата: Среда, 22 Октября 2014, 21:28 | Сообщение # 504 | Тема: Small basic -> Visual studio ? |
заслуженный участник
Сейчас нет на сайте
| Советую изучать современные нормальные языки типа C# или Visual Basic .NET. Если у тебя написана на Small Basic программа, то её можно портировать в Visual Basic (какой версии не знаю, там не написано, думаю VB.NET). Хотя Small Basic позиционируют как для детей и легко усвояемое, у C# и VB.NET больше сообщество и следовательно тебе смогут помочь.
|
|
| |
Lertmind | Дата: Пятница, 17 Октября 2014, 20:44 | Сообщение # 505 | Тема: Сколько занимает один полигон оперативной памяти? |
заслуженный участник
Сейчас нет на сайте
| falcoware, это минимум. Если учитывать данные связанные с вершинами (вектор нормали, цвет и т.п.), то больше.
|
|
| |
Lertmind | Дата: Пятница, 17 Октября 2014, 00:37 | Сообщение # 506 | Тема: Как ограничить поворот? |
заслуженный участник
Сейчас нет на сайте
| У MANMANA хороший код, только Time.deltaTime не забудь.
|
|
| |
Lertmind | Дата: Вторник, 14 Октября 2014, 12:44 | Сообщение # 507 | Тема: Числа Армстронга |
заслуженный участник
Сейчас нет на сайте
| Ramilyanamana, конечно она не права, не трать зря время на размышления, просто сделай своему преподу-неудачнику что она хочет.
|
|
| |
Lertmind | Дата: Воскресенье, 12 Октября 2014, 23:08 | Сообщение # 508 | Тема: Как на SFML изменить язык? |
заслуженный участник
Сейчас нет на сайте
| jone157, поставил сейчас для VS2010 SFML-2.1, взял пример из SFML-2.1\examples\pong, заменил шрифт на Arial (для русской поддержки), как и советовали использовал префикс L и всё работает. Исходник в VS у меня в кодировке 1251. Вот кусок кода из примера, изменил только шрифт и добавил L: Код // Load the text font sf::Font font; if (!font.loadFromFile("resources/arial.ttf")) return EXIT_FAILURE;
// Initialize the pause message sf::Text pauseMessage; pauseMessage.setFont(font); pauseMessage.setCharacterSize(40); pauseMessage.setPosition(170.f, 150.f); pauseMessage.setColor(sf::Color::White); pauseMessage.setString(L"Добро пожаловать в SFML pong!\nPress space to start the game");
|
|
| |
Lertmind | Дата: Пятница, 10 Октября 2014, 12:01 | Сообщение # 509 | Тема: Задание по C# |
заслуженный участник
Сейчас нет на сайте
| Цитата gorlumfan ( ) но как сказал человек давший мне задание. Делаться это должно проще, чем эти 2 метода. Плохой учитель у тебя, БЕГN. А вообще, раз он знает лучше, пусть тебе лучше и объяснит чего хочет.
|
|
| |
Lertmind | Дата: Пятница, 10 Октября 2014, 04:43 | Сообщение # 510 | Тема: 2D Physics и космические корабли |
заслуженный участник
Сейчас нет на сайте
| Возможно я что-то не понял, но если тебе не надо покидать корабль, то можно использовать две камеры. Где-то у тебя есть статический корабль, там игрок двигается под действием сил, так же есть динамический объект, на котором рисуется этот статический корабль, и он тоже движется под действием сил. Получается, что если в статическом корабле персонаж смотрит в нос корабля, а динамический корабль поворачивается, то игрок всё равно смотрит в нос. С двумя камерами не работал, скорее всего понадобится рендер в текстуру из Pro версии.
|
|
| |
Lertmind | Дата: Четверг, 09 Октября 2014, 21:31 | Сообщение # 511 | Тема: Инвертирование вектора |
заслуженный участник
Сейчас нет на сайте
| Renus, работает всё: Код var vector = new Vector3(1,1,1); Debug.Log (-vector); // -1,-1,-1 Debug.Log (vector * -1); // -1,-1,-1
Сообщение отредактировал Lertmind - Четверг, 09 Октября 2014, 21:32 |
|
| |
Lertmind | Дата: Четверг, 09 Октября 2014, 09:17 | Сообщение # 512 | Тема: Задание по C# |
заслуженный участник
Сейчас нет на сайте
| Самый простой способ преобразовать в обратную польскую нотацию и посчитать. Она может быть неявно в алгоритме. Почти готовый код на C++ здесь. Ещё можно написать простой калькулятор без скобок, потом внутренние выражения в скобках заменять посчитанными значения, например 3*(8-(9-3)+2*2)+1 => 3*(8-6+2*2)+1 => 3*6 + 1 => 19, но это хреновый способ в плане производительности.
|
|
| |
Lertmind | Дата: Понедельник, 06 Октября 2014, 19:48 | Сообщение # 513 | Тема: Задачи по Borland C++ |
заслуженный участник
Сейчас нет на сайте
| Если не разобрался: Код // Представление числа как сумма троек и пятёрок #include <iostream> using namespace std; // Описание функции void PrintCombinations(const int a, const int b, const int y);
int main() { int a = 5; int b = 3; int number = 300; PrintCombinations(a, b, number);
return 0; } // Реализация функции void PrintCombinations(const int a, const int b, const int num) { if (a + b > num) return; for (int modulo = num; modulo >= 0; modulo -= a) { if (modulo % b == 0) { cout << a << "*" << (num - modulo) / a << " + " << b << "*" << modulo / b << endl; } } }
Сообщение отредактировал Lertmind - Понедельник, 06 Октября 2014, 19:50 |
|
| |
Lertmind | Дата: Понедельник, 06 Октября 2014, 02:32 | Сообщение # 514 | Тема: Кол-во пятниц 13[C++] |
заслуженный участник
Сейчас нет на сайте
| Цитата falcoware ( ) да кстати колчиество месяцев в календаре может варьироваться от 12 до 14. Вот от этого тоже надо плясать! Прекрати. "Согласно григорианскому календарю, год делится на 12 месяцев, продолжительностью от 28 до 31 дня".Добавлено (06.10.2014, 02:32) --------------------------------------------- Ладно, falcoware, я больше не буду спорить, я уже понял что ты живёшь по другому календарю, который я не знаю.
|
|
| |
Lertmind | Дата: Понедельник, 06 Октября 2014, 02:26 | Сообщение # 515 | Тема: Кол-во пятниц 13[C++] |
заслуженный участник
Сейчас нет на сайте
| falcoware, ты наверно не силён в логике. Тут даже не нужна математика, нельзя по одному числу определить какой год.
Сообщение отредактировал Lertmind - Понедельник, 06 Октября 2014, 02:27 |
|
| |
Lertmind | Дата: Понедельник, 06 Октября 2014, 02:18 | Сообщение # 516 | Тема: Кол-во пятниц 13[C++] |
заслуженный участник
Сейчас нет на сайте
| Ещё раз, falcoware: 1. У нас Григорианский календарь. Распределение високосных годов: * год, номер которого кратен 400 — високосный; * остальные годы — год, номер которого кратен 100 — невисокосный; * остальные годы — год, номер которого кратен 4 — високосный. 2. Программа получает на вход (кроме бесполезных количества месяцев) с чего начинается год 1-7. 3. Я ввожу 7 для 2012 года и ввожу 7 для 2017 года, но ты никак не определишь какой год я ввёл.
Сообщение отредактировал Lertmind - Понедельник, 06 Октября 2014, 02:19 |
|
| |
Lertmind | Дата: Понедельник, 06 Октября 2014, 02:05 | Сообщение # 517 | Тема: Кол-во пятниц 13[C++] |
заслуженный участник
Сейчас нет на сайте
| Я думаю, что WhoAmI, ошибся в "Первое - кол-во месяцев в календаре", а количество дней в году или типа того, чтобы определить високосность года.
|
|
| |
Lertmind | Дата: Понедельник, 06 Октября 2014, 01:56 | Сообщение # 518 | Тема: Кол-во пятниц 13[C++] |
заслуженный участник
Сейчас нет на сайте
| Цитата falcoware ( ) falcoware, путем простых заключний приходим что числа 1,4,7 високосные года. Уловил? Ещё раз прочитай, что я написал, 7 - это воскресенье, там и там 7, но один-то невисокосный.
Сообщение отредактировал Lertmind - Понедельник, 06 Октября 2014, 01:56 |
|
| |
Lertmind | Дата: Понедельник, 06 Октября 2014, 01:52 | Сообщение # 519 | Тема: Кол-во пятниц 13[C++] |
заслуженный участник
Сейчас нет на сайте
| falcoware, контрпример: 2012 год, Воскресенье, Високосный и 2017 год, Воскресенье, Невисокосный. Уловил?
Сообщение отредактировал Lertmind - Понедельник, 06 Октября 2014, 01:54 |
|
| |
Lertmind | Дата: Понедельник, 06 Октября 2014, 01:32 | Сообщение # 520 | Тема: Кол-во пятниц 13[C++] |
заслуженный участник
Сейчас нет на сайте
| Цитата falcoware ( ) Не работает для високосных лет. Я так и написал. Цитата falcoware ( ) Тут нужен универсальный метод. По входным данным из условия задачи нельзя определить какой год. Если надо, то дописать для високосных не составит труда.
|
|
| |
|