Мы предлагаем:У нас есть:
1 базу данных MySQL(50MB)PHP 5
Прикрепление своих доменовMySQL
Предустановленные движки сайтовPerl
Место под файлы(300MB)Ruby
Бесплатно и без рекламы!
Авторизация:
e-mail: Пароль:
Забыли пароль?    Запомнить  
Все блогиСовсем левые → Нужна помощь
Rss

Здравствуйте..Мне нужна помощь..
Нужно в консольной программе Visual Studio c+ написать одну из ниже перечисленных программ:

1.Создать программу, фильтрующую текст, введенный с клавиатуры. Задача программы заключается в считывании текста и отбражении его на экране , используя замену заданного набора символов на пробелы. Программа должна предлагать следующие варианты наборов символов для фильтрации:
Символы латинского алфавита
Символы кириллицы
Символы пунктуации
Цифры
Фильтры могут накладываться последовательно. При повторной установке существующего фильтра данный фильтр должен сниматься.

2.Написать “Морской бой” для игры человека против компьютера. Предусмотреть за человека возможность автоматической (расстановку осуществляет кораблей компьютер случайным образом) и ручной расстановки своих кораблей. Стоимость задания существенно повышается, если компьютер при стрельбе будет обладать логикой (т. е. не производить выстрелы “рандомайзом”).

3.Создать приложение для вычисления значения арифметического выражения, которое может включать в себя действительные числа, а также круглые скобки и следующие операции: +, -, *, /, ^ (возведение в степень). Вычисления должны производиться с учетом скобок и приоритетов используемых операций. Предусмотреть корректную обработку возможных ошибок и информирование о них пользователя.

За помощь заплачу деньгами на вебмани..но не больше 200рублей..извените но больше нет))
Мой скайп – arsen9451


Автор: Арсений | Дата создания: 08 мая 2012, 13:43 UTC | 0.0
Теги: нет


Комментарии(12)
Павел  08 мая 2012, 19:03 UTC  #
0.479
2bfe965ab5ef94a0568bc61c36b46d4c

Кажется, вы совсем не понимаете, о чём говорите :-\
Первую я не понял (описание очень сумбурное, неясно, что делает фильтр), но выглядит несложно.
Вторая тоже несложная, но технически довольно долгая.
Третья хитрая, но при должных навыках довольно короткая. Как бы её решал я (упрощённый, но явно не самый быстрый вариант)…
Сначала проверка корректности. Делается очень просто: возьмём счётчик, пойдём вперёд по строке, если встретили открывающую скобку, прибавим 1, если встретили закрывающую – вычтем 1. Всё хорошо, если счётчик ни разу не стал меньше нуля, а также к концу строки стал равным нулю. Если что-то из этого не соблюдено – скобки расставлены некорректно. Теперь операции. Надо иметь в виду, что любая операция перед закрывающей скобкой также некорректна. Отсутствие операции перед открывающей можно тоже счесть некорректным, а можно прикинуться ящиком и поставить там умножение Х-) Операция после открывающей скобки может быть корректной – если это плюс или минус.
Пусть у нас будет список (знаете же такую структуру данных?), каждый элемент которого – число (double) и код операции, которую мы применяем к нему и следующему числу.
Для простоты введённое нам выражение обрамим скобками, и заметим, что любое выражение в скобках может быть сведено к одному числу без данных снаружи выражения. Поэтому сделаем функцию, которая будет считать внутренность некоторой пары скобок, а если внутри неё есть другие скобки – рекурсивный вызов для новой внутренности скобок! Возвращает эта функция, очевидно, число.
Чем примечателен список – мы в любой момент можем удалить элемент хоть прямо из середины. Приоритет операций: сначала степени, потом умножение/деление, потом сложение/вычитание. Окей. Пройдёмся по списку три раза “слева направо”.
Первый проход: если заметили операцию степени, смотрим следующее число, удаляем из списка первое, возводим в указанную степень, записываем на место второго числа результат. Таким образом, в выражении все наборы с операцией степени будут заменены на результат этой операции.
Второй проход: аналогично степеням, но делаем только умножение/деление.
Третий проход: аналогично первым двум, если всё делали правильно, то остались только плюсы/минусы. После третьего прохода список должен свестись к одному элементу – это и есть результат. Возвращаем его. Готово.

Скорее всего, не лучший вариант, но оптимизировать его оставляю вам :-)

Арсений  08 мая 2012, 19:17 UTC  #
0.0
0cfd0jeujkq

Пожалуйста..сдать готовый проэкт нужно через три дня…пожалуйста помоги мне..я заплачу..(

Павел  08 мая 2012, 19:45 UTC  #
0.0
2bfe965ab5ef94a0568bc61c36b46d4c

Без обид, но мне за 20 дней нужно написать непропорционально больше… Это всё, чем я могу помочь.

Арсений  09 мая 2012, 05:59 UTC  #
0.0
0cfd0jeujkq

Жаль..а есть ли у кого знакомые кто мог бы помочь ?

Денис  09 мая 2012, 09:27 UTC  #
0.0
Index

Совсем любую что ли? Задачи выглядят совсем простыми минут на 30.

Сейчас скачаю visual studio и сделаю, раз так все плохо. Но с одним условием – Вы потом не будете просить что-то там дописать и дальше будете разбираться сами. С учетом этого – бесплатно, т.к. сейчас есть свободное время и нечем заняться.

Арсений  09 мая 2012, 10:42 UTC  #
0.0
0cfd0jeujkq

Денис,большое спасибо..договорились..буду ждать)

Денис  09 мая 2012, 12:02 UTC  #
0.0
Index

Отправил тебе на почту. Проект для VS 2010, однако программе пофиг, можно хоть под линукс скомпилить без изменения кода. Единственное только условие с русскими буквами возможно придется поменять если у тебя другая кодировка.

Арсений  09 мая 2012, 12:08 UTC  #
0.0
0cfd0jeujkq

Если не трудно,отправь на єту почту – arsen945@mail.ru ,потому что от той почты утерянны данные для входа(

Денис  09 мая 2012, 12:13 UTC  #
0.072
Index

Готово

Арсений  09 мая 2012, 15:46 UTC  #
0.0
0cfd0jeujkq

Денис…большое спасибо..счас разбираюсь как раюотает эта штука..пытаюсь подстраивать под себя..Если тебя не затруднит сделать еще третью работу..будет вобще хорошо..Просто третья работа самая понимающая)

Денис  09 мая 2012, 16:26 UTC  #
0.411
Index

третью долго программировать, помню у нас были лабы по компиляторам и мне попалось задание реализовать математический. На входе файл с математическими функциями и переменными, типа там:
a=3
b=(a+5)^2

А на выходе должна была получиться программа на асемблере, которая естественно потом компилилась и проверялась. Так вот, самое большое там было – распарсить эту все чухню со скобками и приоритетами (лексический анализатор). И я не хочу повторять этот подвиг повторно :)

Павел правильно подсказал куда капать, хотя судя по ответу он сделал это интуитивно. В целом чтоб оценить верность входного кода нужно построить полное дерево. Плюс нужно построить форму Бэкуса — Наура, если совсем корректно делать.

А потом уже делается обход конечного дерева, и что это будет – код на ассемблере или непосредственно эти математические операции – это пофигу, это уже легко.

Погугли классическую теорию компиляторов. Там как раз решаются эти задачи 1 в 1. Т.к. в компиляторах аналог “hello world” – это написать математический препроцессор. Вот, например.

Есть кстати средства, которые генерят код на Си для того чтобы парсить такие вот штуки. Сейчас не вспомню как называются, но их скриптовое применение – это Sed+awk, только тут просто текстовые процессоры, а там генерация программы которая это же делает и делает все выше написанное.

Павел  11 мая 2012, 00:02 UTC  #
0.5
2bfe965ab5ef94a0568bc61c36b46d4c

Интуитивно, да, у меня нет такой мощной теорбазы, я первокурсник =)


Простите, Ваш браузер не поддерживает html5
Управление стрелками. Пробел - пауза.