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

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


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

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

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

Выпуск № 935
от 14.12.2007, 01:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 472, Экспертов: 59
В номере:Вопросов: 6, Ответов: 10


Вопрос № 112921: Добрый день уважаемые эксперты. Подскажите пожалуйста как решить подобную задачу: Нужно создать программу на Visual C++ которая генерировала бы матрицу N на M, где N и M задаются пользователем и могут быть произвольными(как пользователю взбредет ...
Вопрос № 112938: Здравствуйте, помогите пожалуста с двумя программами. Я не могу сделать я пока только начинаю изучать С++....
Вопрос № 112942: Сформировать массив из столбца ,содержащего максимальный элемент матрицы....
Вопрос № 112973: Привет всем! Срочно нужна Ваша помощь! Дана задача: Дана непустая последовательность слов, состоящая из не более,чем 50 слов, в каждом слове не более 8 символов. Слова раздалены пробелом, за последним словом точка. Найти те слова, которые отл...
Вопрос № 113022: Есть Класс каталог - описывает массив указателей на объекты-cpu class CCatalogue { int numberOfCpu ; // фактическое число cpu в массиве public: CCpu* arrayCpu [ i ] у обьекта cpu значение multicore принима...
Вопрос № 113024: Здравствуйте ! Подскажите, пожалуйста, как в Microsoft Visual C++ 6.0 изменить размер шрифта (до какого-то момента была удобная величина символа, не ясно по какой причине он изменился, но на данный момент размер символа слишком мал), с английским...

Вопрос № 112.921
Добрый день уважаемые эксперты. Подскажите пожалуйста как решить подобную задачу:
Нужно создать программу на Visual C++ которая генерировала бы матрицу N на M, где N и M задаются пользователем и могут быть произвольными(как пользователю взбредет в голову). и производтися заполнение ее построчно в цикле.
Заранее благодарен за ответ
Отправлен: 08.12.2007, 11:01
Вопрос задал: Tohachorniy (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Tohachorniy!
Для этого вам нужно выделять память под матрицу динамически. Код в приложении...

Приложение:

Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 11.12.2007, 03:34


Вопрос № 112.938
Здравствуйте, помогите пожалуста с двумя программами. Я не могу сделать я пока только начинаю изучать С++.

Приложение:

Отправлен: 08.12.2007, 13:28
Вопрос задал: Accer (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Solar
Здравствуйте, Accer!

Вот вам код в простейшей и доступнейшей из его ипостасей.

Приложение:

Ответ отправил: Solar (статус: 1-ый класс)
Ответ отправлен: 08.12.2007, 16:10


Вопрос № 112.942
Сформировать массив из столбца ,содержащего максимальный элемент матрицы.
Отправлен: 08.12.2007, 13:40
Вопрос задал: Atheist (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Solar
Здравствуйте, Atheist!

Вот. Надеюсь все понятно.

Приложение:

Ответ отправил: Solar (статус: 1-ый класс)
Ответ отправлен: 08.12.2007, 16:37
Оценка за ответ: 5

Отвечает: Лясин Александр Владимирович
Здравствуйте, Atheist!
В цело коллега дал правильный ответ, но разме можно
писать для "новичка" в С++ такое, типа
int a[][];
int b[];
компилятор такое вряд ли пропустит :) А "новичку" снова придётся задавать здесь вопрос уже по данной ошибке
Ответ отправил: Лясин Александр Владимирович (статус: 4-ый класс)
Ответ отправлен: 08.12.2007, 22:43
Оценка за ответ: 5

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

Приложение:

Ответ отправил: Терсков Сергей (статус: Практикант)
Ответ отправлен: 11.12.2007, 04:01


Вопрос № 112.973
Привет всем! Срочно нужна Ваша помощь!
Дана задача:
Дана непустая последовательность слов, состоящая из не более,чем 50 слов, в каждом слове не более 8 символов. Слова раздалены пробелом, за последним словом точка. Найти те слова, которые отличаются от последнего слова и удовлетворяют условию: длина слов максимальна.
Текст программы в приложении, но по окончании ввода слов выдается сообщение:
"Процессор NTVDM обнаружил недопустимую инструкцию"... Не подскажете, чем проблема?
Всем спасибо!

Приложение:

Отправлен: 08.12.2007, 17:57
Вопрос задал: LexXx (статус: Практикант)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Лясин Александр Владимирович
Здравствуйте, LexXx!
Начнём сначала. Если уж вы пишете, что слов НЕ более 50 и в каждом слове не более 8 символов ( и символ 'char k, s=0, a[50][9], b[9]; // на символ 'Во фрагмент, что ниже - даже не "вглядывался". Ошибки (на мой взгляд) на поверхности
for(i=0;i<g;i++) {
strcpy(b,*a); // видимо копируется строка в строку, только вот какая строка??? Ниже над //указателем нигде не проводятся арифметические действия! Получается, что в данном коде всегда //копируется первая строка из массива a в b.
if (strcmp(b,*a) && b[7]==NULL) // здесь только что скопированная строка сравнивается сама с //собой? В выражении b[7]==NULL всё таки было бы корректнее b[7]==' for (k=0;k<7;k++) printf ("%c",b[k]);
};
//P.S. Я мог бы привести свой вариант кода - как бы написал например я, но вам лучше самому найти и разобрать свои стилические и другие ошибки.
getch (); // зачем здесь это? чтобы "подключить" conio.h? На мой взгляд проще было бы использовать scanf
Ответ отправил: Лясин Александр Владимирович (статус: 4-ый класс)
Ответ отправлен: 08.12.2007, 21:10
Оценка за ответ: 5
Комментарий оценки:
За оказанную помощь по внутренней почте отдельное спасибо! :)

Отвечает: Титов Михаил Анатольевич
Здравствуйте, LexXx!

Отвечаю с учётом поступившего ответа и вашего сообщения в мини-форме:

1)
>А зачем писать так: b[9], ведь у нас 8 символов +'/0', но нумерация-то идет с нуля.

В Си в отличии от, например, Бейсика или Паскаля при определениии массива мы указываем количество элементов массива, а не диапазон изменения индексов. Поэтому если Вам нужен буфер под 8-символьное слово + '
char b[9];

А вот чтобы обратится к последнему, девятому элементу массива, действительно нужно написать b[8], помня, что нумерация идет с нуля.

2)
> Код поправил, но выдается ошибка: "Cannot convert *char to const int".

Не знаю каким компилятором Вы пользуетесь, но это сообщение скорее всего вызвано неверным указанием аргументов функции

strcmp(*a[i],*a[g])

Вот прототип функции strcmp

int strcmp(const char *string1, const char *string2);

оба параметра имеют тип const char *. Выражение *a[i] имеет тип char. Разберемся с типами выражений:

a - имеет тип "указатель на массив из 50 массивов из 8 элементов типа char".
*a - имеет тип "массив из 8 элементов типа char". Значение этого выражения - адрес первого из 8 элементов первого из 50 8-элементных массивов, численно совпадает со значением a.
a[i] - имеет тот же тип, что и *a, но его значение - адрес первого элемента i-го 8-элементного массива. Внимание, еще раз: выражение a[i] имеет тип "массив элементов типа char", или что то же самое "указатель на char", следовательно
*a[i] - имеет тип char, значение выражения - первый символ i-го 8-элементного массива.

Ваш компилятор так же должен был ругнуться на необъявленную переменную b в
printf ("%c",b[k]); .
Лучшим способом помочь Вам наверное будет привести полный вариант текста программы с исправлениями и комментариями.

Приложение:

Ответ отправил: Титов Михаил Анатольевич (статус: 4-ый класс)
Ответ отправлен: 10.12.2007, 05:28
Оценка за ответ: 5
Комментарий оценки:
Супер! За разъяснения отдельное спасибо!Вы меня просто очень сильно выручили :)


Вопрос № 113.022

Есть Класс каталог - описывает массив указателей на объекты-cpu
class CCatalogue
{
int numberOfCpu ; // фактическое число cpu в массиве

public:
CCpu* arrayCpu [ i ]

у обьекта cpu значение multicore принимает значения true и false
Задача: обработка массива таким образом, чтобы в начале были процессоры, для которых значение multicore = true (в той последовательности, в которой они стояли до сортировки) , затем multicore = false.

Как будет выглядеть код обработки массива?
Отправлен: 08.12.2007, 23:52
Вопрос задал: Volt2007 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Арефьев Сергей
Здравствуйте, Volt2007!

В данном случае вполне достаточно пузырковой сортировки:

Приложение:

Ответ отправил: Арефьев Сергей (статус: 1-ый класс)
Ответ отправлен: 09.12.2007, 00:24
Оценка за ответ: 5


Вопрос № 113.024
Здравствуйте !
Подскажите, пожалуйста, как в Microsoft Visual C++ 6.0 изменить размер шрифта (до какого-то момента была удобная величина символа, не ясно по какой причине он изменился, но на данный момент размер символа слишком мал), с английским пока проблема.
Спасибо !
Отправлен: 08.12.2007, 23:56
Вопрос задал: Ustin_7 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Арефьев Сергей
Здравствуйте, Ustin_7!

Вам нужно в меню "Tools" выбрать пункт "Options". В появившемся диалоге перейти на самую левую закладку "Format".
В данной закладке вы можете установить параметры отображения информации (в том числе и размер шрифта) для окон MS VC.
Ответ отправил: Арефьев Сергей (статус: 1-ый класс)
Ответ отправлен: 09.12.2007, 00:12
Оценка за ответ: 5
Комментарий оценки:
Спасибо !
То что надо.

Отвечает: CruelHity
Здравствуйте, Ustin_7!
В приложение есть пример работы со шрифтом! Все функции и классы которые используються полное описания найдете в MSDN!
Удачи! будут вопросы спрашивайте!

Приложение:

Ответ отправил: CruelHity (статус: 6-ой класс)
Ответ отправлен: 09.12.2007, 02:42
Оценка за ответ: 5
Комментарий оценки:
Спасибо !
Это тоже пригодилось !


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

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

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

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

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


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


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

В избранное