Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 947
от 26.12.2007, 07:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 475, Экспертов: 52
В номере:Вопросов: 5, Ответов: 9

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 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, 07:31
Вопрос задал: Чернов Виктор Александрович (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Чернов Виктор Александрович!
Вариант решения вашей задачи смотрите в приложении...

Приложение:

Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 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
Комментарий оценки:
Несмотря на небольшое звание, достаточно точный ответ.


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.66 от 23.12.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное