помогите с прог. кодом на C++ (visual studio). типо ввести любой текст (на алглийском)...и чтоб он у меня подсчитал скока букв скока цифр и скока спец знаков(+,-,/,.....и т.д) ну на скока я понял это по таблице ASCII. помгите...народ...а то ппц мне...plz///help me
помогите с прог. кодом на C++ (visual studio). типо ввести любой текст (на алглийском)...и чтоб он у меня подсчитал скока букв скока цифр и скока спец знаков(+,-,/,.....и т.д) ну на скока я понял это по таблице ASCII. помгите...народ...а то ппц мне...plz///help me
Насколько я помню, есть функции IsDigit, IsAlpha. В библиотеке "ctype.h". Вот, например, документация по IsAlpha. Ну а дальше я думаю понятно: читаешь текст в массив символов, а потом в цикле проходишь по всем символам и с помощью этих функций считаешь: сколько цифр, букв, остальных символов.
помогите с прог. кодом на C++ (visual studio). типо ввести любой текст (на алглийском)...и чтоб он у меня подсчитал скока букв скока цифр и скока спец знаков(+,-,/,.....и т.д) ну на скока я понял это по таблице ASCII. помгите...народ...а то ппц мне...plz///help me
Или просто по значения ASCII. Диапозон цифр и букв знаем, все остальное спец знаки. Или там что-то еще посчитать надо?
Member
Статус: Не в сети Регистрация: 13.06.2007 Откуда: msk Фото: 1
Без сна тупняк подкрался Есть имитационная модель, на входе в ней расход ресурса, на выходе вероятность наступления события. Необходимо подобрать минимальное значение расхода ресурса, при котором достигается вероятность наступления события не меньше некоторого значения. В данный момент тупо перебирается расход ресурса от некоторого начального значения с некоторым шагом... и так пока не выполнится условие. Как заставить модельку искать оптимальное значение параметра быстрее. Что у яндекса спросить?
Без сна тупняк подкрался Есть имитационная модель, на входе в ней расход ресурса, на выходе вероятность наступления события. Необходимо подобрать минимальное значение расхода ресурса, при котором достигается вероятность наступления события не меньше некоторого значения. В данный момент тупо перебирается расход ресурса от некоторого начального значения с некоторым шагом... и так пока не выполнится условие. Как заставить модельку искать оптимальное значение параметра быстрее. Что у яндекса спросить?
Вообще, эта математическая задача, и спрашивать нужно в соответствующем форуме. Помню в универе такие решали, вроде бы симплекс-методом (http://ru.wikipedia.org/wiki/Симплекс_метод). Можно еще попробовать сделать так: выбрать левую и правую границу, между которыми точно лежит искомое значение (можно "методом тыка"), а потом делать что-то типа бинарного поиск: берешь середину этого интервала, и, если это значение удовлетворяет условию, то сдвигаешь левую границу на эту точку, иначе правую. И так до необходимой точности.
if ((Str == 'Д' )||( Str =='д')) { CountD++; GlobalCount++; } if ((Str == 'Л' )||( Str =='л')) { CountL++; GlobalCount++; } if ((Str == 'Н' )||( Str =='н')) { CountN++; GlobalCount++; } if ((Str == 'П' )||( Str =='п')) { CountP++; GlobalCount++; } if ((Str == 'Р' )||( Str =='р')) { CountR++; GlobalCount++; } if ((Str == 'К' )||( Str =='к')) { CountK++; GlobalCount++; } if ((Str == 'С' )||( Str =='с')) { CountS++; GlobalCount++; } if ((Str == 'Ч' )||( Str =='ч')) { CountCH++; GlobalCount++; } if ((Str == 'Г' )||( Str =='г')) { CountG++; GlobalCount++; } if ((Str == 'Х' )||( Str =='х')) { CountH++; GlobalCount++; } // Остальные согласые добавь сам (аналогично).
} /*Число появлений каждой буквы, если нужна частота появления, то раздели число появлений каждой буквы на их число в предложении */ /*cout<<CountD<<endl; cout<<CountL<<endl; cout<<CountN<<endl; cout<<CountP<<endl; cout<<CountR<<endl; cout<<CountK<<endl; cout<<CountS<<endl; cout<<CountCH<<endl; cout<<CountG<<endl; cout<<CountH<<endl;*/ cout<<"Количество согласных в предложении: "<<GlobalCount<<endl;
return 0; }
Последний раз редактировалось Андрей-555 18.12.2009 12:20, всего редактировалось 1 раз.
Junior
Статус: Не в сети Регистрация: 15.03.2007 Откуда: г.Пермь
Цитата:
Вы только не обижайтесь, но ... более убогой программы я в жизни не видел. Это даже не программирование, это ... даже не знаю как это назвать ...
Я ни в коей мере не обижаюсь. Я с вами полностью согласен, но если человек не может додумать такую простую задачу, то смысл писать, что-то более продвинутое, чем это. Так он поймет хоть суть метода просмотра строки, а если писать нормально то может не понять суть работы.
люди помогите,завтра зачет,мне нужно сделать программку...я вообще нноль в этом)) Написать функцию, вычисляющую max из х и у и генерирующую исключение, если х=у=0
Member
Статус: Не в сети Регистрация: 13.06.2007 Откуда: msk Фото: 1
theone писал(а):
Вообще, эта математическая задача, и спрашивать нужно в соответствующем форуме. Помню в универе такие решали, вроде бы симплекс-методом (http://ru.wikipedia.org/wiki/Симплекс_метод). Можно еще попробовать сделать так: выбрать левую и правую границу, между которыми точно лежит искомое значение (можно "методом тыка"), а потом делать что-то типа бинарного поиск: берешь середину этого интервала, и, если это значение удовлетворяет условию, то сдвигаешь левую границу на эту точку, иначе правую. И так до необходимой точности.
Сделал методом золотого сечения, вроде работает т. к. модель стохастическая иногда очень интересные кривуляки вырисовывает прога
Назрел ещё один вопрос, как бы покрасивей на яве сделать. В результате прогона модели получаем количества N типов ресурсов, есть M таких комбинаций количества каждого ресурса, при которых модель завершилась успешно. Опишу на примере. В результате выполнения модели у нас получились следующее количество ресурсов (для 3х ресурсов) {6,0,0}, например известны 3 комбинации, при которых выполнение модели успешно {4,0,2} либо {4,4,0} либо {6,0,0}, видно, что модель выполнилась успешно, мы достигли количества по всем типам ресурсов не меньше, чем в 3ей комбинации. Сейчас это условие проверяется не универсальным (сделано для случая, про гкоторый говорю в примере) уродским кодом с кучей скобок, значков И и ИЛИ. Что-то мне подсказывает, что можно написать намного красивее, и главное сделать код универсальным относительно количества типов ресурсов и количества успешных комбинаций.
видно, что модель выполнилась успешно, мы достигли количества по всем типам ресурсов не меньше, чем в 3ей комбинации
имеется ввиду что сумма количеств каждого ресурса не превышает 6? 4+0+2 <= 6+0+0. Так? Где же тут "И', "ИЛИ", если просто надо просуммировать и сравнить? У вас количество каждого ресурса хранится в массиве, так? Тогда не понимаю, в чем проблема. Если же количество каждого ресурса хранится в отдельной переменной, то это конечно же неправильно, точнее неуниверсально - нужно хранить в массиве.
Member
Статус: Не в сети Регистрация: 13.06.2007 Откуда: msk Фото: 1
theone писал(а):
имеется ввиду что сумма количеств каждого ресурса не превышает 6? 4+0+2 <= 6+0+0. Так? Где же тут "И', "ИЛИ", если просто надо просуммировать и сравнить? У вас количество каждого ресурса хранится в массиве, так? Тогда не понимаю, в чем проблема. Если же количество каждого ресурса хранится в отдельной переменной, то это конечно же неправильно, точнее неуниверсально - нужно хранить в массиве.
Member
Статус: Не в сети Регистрация: 03.06.2008 Откуда: Rep. of Ireland Фото: 8
Код:
AREA SpellCheck, CODE, READONLY IMPORT main EXPORT start
start LDR R1, =tstword ; load tstword to r1 LDR R2, =tstlist ; load tstlist to r2 LDR R5, =0 ; set counter to 0(r5) LDR R6, =0 ; set counter to 0(r6)
rep LDRB R3, [R1] ; load first byte from r1 LDRB R4, [R2] ; load first byte from r2
CMP R3, #0x20 ; compare r3 to 0x20(space) BEQ do3 ; if r3 == 0x20, branch to 'do3' CMP R4, #0x4 ; compare r4 to 0x4 BEQ set0 ; if r4 is 0x4, branch to 'set0' CMP R3, R4 ; compare r3 to r4 BNE do1 ; if r3 != r4, branch to 'do1' CMP R3, #0 ; compare r3 to 0 BEQ set1 ; if r3 equal to 0, branch to 'set1' ADD R1, R1, #1 ; take next byte in r1 ADD R2, R2, #1 ; take next byte in r2 ADD R5, R5, #1 ; add 1 to the counter ADD R6, R6, #1 ; add 1 to the counter B rep ; branch to 'rep'
do1 SUB R1, R1, R5 ; get to the first letter of the word in the sentence LDR R5, =0 ; set counter to 0 do2 LDRB R4, [R2] ; load first byte from r2 ADD R2, R2, #1 ; take next byte in r2 ADD R6, R6, #1 ; add 1 to the counter CMP R4, #0x4 ; compare r4 to 0x4 BEQ set0 ; if r4 is 0x4, branch to 'set0' CMP R4, #0 ; compare r4 to 0 BEQ rep ; if r4 is equal to 0, branch to 'rep' B do2 ; if r4 is not equal to 0x4 or 0, branch to 'do2'
do3 SUB R2, R2, R6 ; get to the start of words list LDR R6, =0 ; set counter to 0(r6) !!!!!! LDR R5, =0 ; set counter to 0(r5) !!!!!!!!! ADD R1, R1, #!!!!1!!!(было 4...) ; take next byte in r1 B rep ; branch to 'rep'
set1 LDR R0, =1 ; if r5 was 0, set r0 to 1 B stop ; stop after prev. instruction(branch to stop) set0 LDR R0, =0 ; if r3 is not equal to r4, set r0 to 0
stop B stop
AREA Strings, DATA, READWRITE
tstword DCB "the weekend was",0 tstlist DCB "the",0,"weekend",0,"was",0,"wet",0,"cheese",0,"circuit",0 DCB "shoe",0,"brick",0,"after",0,4
END
[old] По идеи, она должна сохранить 1 в R0, если все слова найдены и 0, если чего-то нет. Вроде бы всё правильно, но она всё равно сохраняет 0, в частности не находит слово "was". ARM Assembly Language, Keil uVision. Помогите...[/old]
Уже исправил...(!!!!!!! выделенно, чего не хватало\не правильно было..)
_________________ ЖК трое суток с целью обучения хорошим манерам (ибо просил не называть меня на "ты") (c) exodi В обращении ко мне используйте Сэр. (с) Я
Последний раз редактировалось R3laX 16.01.2010 13:35, всего редактировалось 2 раз(а).
Где A - массив результатов [3x1], а B - массив зачётных комбинаций [3x3]
Пусть M - кол-во комбинаций, N - кол-во ресурсов. Тогда универсальная проверка будет выглядеть так:
Код:
private bool Universal() { for (int i = 0; i < M; i++) { bool b = true; for (int j = 0; j < N; j++) if (A[j] < B[i][j]) { b = false; break; } if (b) return true; } return false; }
И тогда вашу вышеприведенную конструкцию можно заменить на: if (Universal())
PS: это я на C# написал, но на Java, наверное, будет с минимальными изменениями или вообще без них (c Явой толком не знаком...).
PPS: Можно даже еще красивее сделать:
Код:
bool U(int i, int j) { return A[j] >= B[i][j] ? (++j < N ? U(i, j) : true) : ++i < M ? U(i, 0) : false; }
Даны два вещественных числа А и В.Написать программу решения уравнения А*Х в квадрате=В.Следует рассмотреть все возможные случаи, в частности, А,В, могут быть равны 0. Тема- ветвление. Начало вроде так: program qq; var A,B : real; write ('Введите А'); read(A); write('Введите В'); read(b); if A=0 them(????????????????????????Дальше жопа!!!...
Добавлено спустя 21 минуту 20 секунд: Вот еще одна задачка, но по Циклам:икс в кубе+синус икс - экспонент в степени 2*х. ..h=0.1;X принадлежит(1;2). опять начало вроде так а дальше ??????????? program f; var x,y,h: integer; begin write('Введите x '); read(x); y:=sqr(x)*(x)+sin(x)-exp*2*(x); Дальше препод написал что то типа этого:
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения