Вопрос № 114975: Здравствуйте, помогите с этой задачай:
Даны массивы A[3][4],B[3][4]. Поменяйте местами значения 1ого и 3его столбцов массивов, если сумма элементов 1ого слобца мньше суммы элементов 3его столбца.
Спасибо....Вопрос № 115003: Уважаемые эксперты, посмотрите пожалуста, что не то в этих программах, и если есть возможность дайте растолковку по операторам.
...Вопрос № 115073: Здравствуйте, уважаемые эксперты! Ещё раз прошу Вас о помощи. Необходимо решить вот эти две задачки... (у самого уже времени разбираться нету, так что прошу Вас о помощи)
Задача с матрицами:
1. Имеются числа А1, А2, …, АN и B1, B2, ...Вопрос № 115103: Циклически сдвинуть длинное целое число N на K разрядов влево.
...Вопрос № 115108: Уважаемые эксперты.
Вопрос по С билдеру.
В оброботчике MemoKeyDown прописан приведенный в приложении код. Код является частью обработчика.
Вопрос такой:
- когда переменная флаг устанавливается в истину и нажата клавиша А, выражение K...
Вопрос № 114.975
Здравствуйте, помогите с этой задачай:
Даны массивы A[3][4],B[3][4]. Поменяйте местами значения 1ого и 3его столбцов массивов, если сумма элементов 1ого слобца мньше суммы элементов 3его столбца.
Спасибо.
Отвечает: Терсков Сергей
Здравствуйте, Чернов Виктор Александрович!
Вариант решения вашей задачи смотрите в приложении...
Приложение:
Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 20.12.2007, 10:16
Отвечает: CruelHity
Здравствуйте, Чернов Виктор Александрович!
Вот програма! она написана на MVS 2003, ну если что я думаю вам не составить труда перевести програму на turbo c++;
Удачи!
Если что спрашивайте!
Приложение:
Ответ отправил: CruelHity (статус: 6-ой класс)
Ответ отправлен: 20.12.2007, 13:21
Вопрос № 115.003
Уважаемые эксперты, посмотрите пожалуста, что не то в этих программах, и если есть возможность дайте растолковку по операторам.
Приложение:
Отправлен: 20.12.2007, 11:30
Вопрос задал: Sneider (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Лясин Александр Владимирович
Здравствуйте, Sneider!
Если Вам не понравился первый, предложенный мной, работающий вариант первой задачки, см. приложение, в котором я переделал Ваш код. Рапишем по строкам кода, как это должно работать:
- в первой строке - определение главной ф-ии main, отсюда начинается выполнение программы.
- со 2-ой строки по 8-ю - объявление и инициализация переменных.
- 9-я строка - вызов ф-ии strtok, которая в данном случае должна найти (с самого начала строки temp) в строке temp один из разделителей из массива seps (видимо от англ. separators :)). Если ф-я находит такой какой либо из разделителей из массива, она возвращает подстроку из temp, до найденного символа, в противном случае возвращается пустой указатель (NULL).
- 10-я строка цикл, пока указатель word будет не NULL (это произойдёт, когда strtok "не найдёт в строке разделителей - типа конец строки").
- 12 - я, обнуляем массив count (массив для учёта количества повторяющихся символов в словах word)
- 13 - я строка, ищем в цикле в слове word повторяющиеся символы (в массиве count в каждом его элементе, порядковый номер которого соотв. коду символа, храним кол-во его повторений в слове, если больше 2-х - тогда ставим флажок c=1 и выходим из цикла break).
- 19 строка ( if(c) ) - если с - положительное значение (значит повторяющиеся символы были в слове) - тогда присоединяем его к строке res - которая должна содержать результат выполнения программы - все слова с повторяющимися символами - см. строку 20 (strcat(res, word))
21 - (strcat(res, " ")) - просто добавляем в конец res пробел - чтобы было читабельней
23 - продолжаем искать в слове temp символы разделители, с того символа, на котором остановились в предыдущий раз (см. выше).
Ну и наконец 25-я - выводим результат на экран.
Думаю вторую задачку теперь разберёте по аналогии с первой - там нет ничего сложного.
Приложение:
Ответ отправил: Лясин Александр Владимирович (статус: 5-ый класс)
Ответ отправлен: 20.12.2007, 15:17 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ! только почему то у меня все равно выдается ошибка и при запуске она вылетает.
Вопрос № 115.073
Здравствуйте, уважаемые эксперты! Ещё раз прошу Вас о помощи. Необходимо решить вот эти две задачки... (у самого уже времени разбираться нету, так что прошу Вас о помощи)
Задача с матрицами:
1. Имеются числа А1, А2, …, АN и B1, B2, …, BN. Составить из них N пар (Ai, Bj,) таким образом, чтобы сумма произведений пар была минимальна. Каждое Ai и Bj в парах встречаются ровно по одному разу.
Задача со строками:
2. Ввести строки, в которых имеются круглые, фигурные и квадратные скобки. Проверить, правильно ли они расставлены. Результат вывести на экран. Стандартных функций работы со строками НЕ ИСПОЛЬЗОВАТЬ.
P.S. Задачи нужно решить на Turbo Си ++... Также буду очень признателен, если напишите, как для "дибила"... :)
P.P.S. Заранее благодарен за ответ...
Отправлен: 20.12.2007, 16:57
Вопрос задал: Tarik-fly (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Терсков Сергей
Здравствуйте, Tarik-fly!
В приложении вариант решения второй задачи с использованием стека.
Приложение:
Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 21.12.2007, 03:44
Вопрос № 115.103
Циклически сдвинуть длинное целое число N на K разрядов влево.
Приложение:
Отправлен: 20.12.2007, 19:43
Вопрос задал: Andrey729 (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: Лясин Александр Владимирович
Здравствуйте, Andrey
скорее всего Вам нужно следующее:
long N=80000, K=3, C;
C=N<<K; // операция сдвига влево
результат операции left-shift (<<) запишется в C.
Поможем и с ещё одной
Ответ отправил: Лясин Александр Владимирович (статус: 5-ый класс)
Ответ отправлен: 20.12.2007, 20:29 Оценка за ответ: 5 Комментарий оценки: помог
Отвечает: Sergey A. Wedensky
Здравствуйте, Andrey729!
Операция << - это не циклический сдвиг. Освобождаемые разряды заполняются нулями.
Можно использовать функцию
unsigned int _rotl(unsigned int value, int shift);
определенную в <stdlib.h>.
А можно и с помощью простого сдвига:
C = (N << K) | (N >> (sizeof(N)*8-K)).
Здесь (N << K) даст сдвиг в лево, освобожденные младшие разряды станут нулевыми, в них нужно записать старшие K разрядов исходного N - это (N >> (sizeof(N)*8-K), sizeof(N)*8 - число бит в представлении Вашего числа (для long в большинстве компиляторов будет 32).
Ответ отправил: Sergey A. Wedensky (статус: Студент)
Ответ отправлен: 21.12.2007, 09:54
Отвечает: Veder
Здравствуйте, Andrey729!
Вот код проги, которая делает то, что вам надо(в кавычках напишите то, что вам нужно.Кодировка глючит):
#include <iostream.h>
void main()
{
int n, k;
cout<<"‚ўҐ¤ЁвҐ зЁб«®"<<endl;
cin>>n;
cout<<"‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® а §а冷ў, Є®в®а®Ґ Ґ®Ўе®¤Ё¬® ᬥбвЁвм зЁб«®"<<endl;
cin>>k;
cout<< (n<<k);
}
Ответ отправил: Veder (статус: 1-ый класс)
Ответ отправлен: 24.12.2007, 00:06 Оценка за ответ: 5
Вопрос № 115.108
Уважаемые эксперты.
Вопрос по С билдеру.
В оброботчике MemoKeyDown прописан приведенный в приложении код. Код является частью обработчика.
Вопрос такой:
- когда переменная флаг устанавливается в истину и нажата клавиша А, выражение Key = 0 отрабатывается, и в режиме отладки значение переменной Key устанавливается в 0; но в поле мемо, в которое ведется ввод, символы "А" и "а" добавляються.
что я делаю неправильно?
как заблокировать добавление символа по скан коду?
Приложение:
Отправлен: 20.12.2007, 20:37
Вопрос задал: Mastela (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Лясин Александр Владимирович
Здравствуйте, Mastela!
К сожалению не могу точно ответить Вам на вопрос - работаю в основном в linux и без C++Builder,
но уверен точно, что событие OnKeyDown "наступает" первым, за ним следуют OnKeyPress и OnKeyUP,
поместите свой код в OnKeyPress, если не поможет - в OnKeyUp, долно помочь :).
Ответ отправил: Лясин Александр Владимирович (статус: 5-ый класс)
Ответ отправлен: 20.12.2007, 22:54 Оценка за ответ: 3 Комментарий оценки: Интересная Мысль. в OnKeyPress символ A блокируеться, но а проскакивает... хотя они имеют одинаковые скан коды... Благодарю За Ответ
Отвечает: mega
Здравствуйте, Mastela!
В общем-то все верно, блокировать выгрузку в мемо можно через KeyPress, и хотя скан-коды этих символов равны, чар-коды их разные, поэтому условие нужно писать двойное (кстати 0x41 - это чаркод символа 'A', скан-код передается в LPARAM сообщений WM_KEYDOWN, WM_KEY_UP и т.п. в 16-23 битах и в событиях билдера не учавствует)
(Key == 0x41/*A*/) && (Key == 0x61/*a*/)
Ответ отправил: mega (статус: 3-ий класс)
Ответ отправлен: 20.12.2007, 23:47 Оценка за ответ: 4 Комментарий оценки: Несмотря на небольшое звание, достаточно точный ответ.