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

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


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

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

Чемпионы рейтинга экспертов в этой рассылке

Verena
Статус: Практикант
Рейтинг: 99
∙ повысить рейтинг >>
Лысков Игорь Витальевич
Статус: Специалист
Рейтинг: 55
∙ повысить рейтинг >>
Dr_Andrew
Статус: Студент
Рейтинг: 40
∙ повысить рейтинг >>

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

Выпуск № 1175
от 01.12.2008, 16:35

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

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

Вопрос № 151835: Здравствуйте уважаемые эксперты, помогите пожалуйстя с написанием програм по матрицам. Задана квадратная матрица порядка 2Nx2N. Получить новую матрицу, переставляя ее блоки размера NxN в соответствии (Исходная матрица |А11, А12 | Полученная |A21,...


Вопрос № 151838: Здравствуйте уважаемые эксперты! Подскажите как сделать? В файле содержатся координаты(х,у) для N точек. Значение координат положительное. Структура файла с координатами какую предложите. Как построить график отображения точек и вывести его на ви...
Вопрос № 151849: Здравствуйте. Исправьте, пожалуста, коды программ, или скажите, как их исправить. Большое спасибо....
Вопрос № 151872: Здравствуйте уважаемые эксперты, подскажите, как можно в наиболее простом коде, изобразить бугущую строку( цикличное обновление дисплея, с перемещением символа на 5 пикселей вправо). Большое спасибо....

Вопрос № 151.835
Здравствуйте уважаемые эксперты, помогите пожалуйстя с написанием програм по матрицам. Задана квадратная матрица порядка 2Nx2N. Получить новую матрицу, переставляя ее блоки размера NxN в соответствии (Исходная матрица |А11, А12 | Полученная |A21,A11|
A21, A22 A22,A12 )

Отправлен: 25.11.2008, 20:01
Вопрос задал: Коренев Кирилл Игоревич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Verena
Здравствуйте, Коренев Кирилл Игоревич!
Матрица разбивается на 4 области с координатами:
1 область i: 0..n j: 0..n
2 область i: 0..n j: n..2n
3 область i: n..2n j: n..2n
4 область i: n..2n j: 0..n
где i, j - строка и столбец соответственно
Иначе говоря, см. рисунок в приложении.
Смысл задачи, как я понимаю, сформировать новую матрицу, где бы эти области были перемещены по часовой стрелке а одну позицию. Для этого каждую область необходимо сдвинуть на n позициий по одной из координат. Так, для перемещения области 1 на место 2 надо сдвинуть элементы области 1 на n по координате j, для перемещения 2 в 3 - элементы 2 на n по координате i, для перемещения 3 в 4 - элементы 3 на -n по координате j, для перемещения 4 в 1 - элементы 4 на -n по координате i. Перемещение по i/j чередуется через раз, поэтому его можно выразить коэффициентом, который через раз будет то 0, то 1. Также добавим переменные для обозначения координат областей и для текущего сдвига. Матриц ы будем создавать динамически, в зависимости от введённого n. Один из вариантов решения - в приложении (скомпилирован под VS 2005).
Удачи!

Приложение:

---------
Эта история - не для истории, понимаешь?

Ответ отправила: Verena (статус: Практикант)
Ответ отправлен: 28.11.2008, 00:26

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236938 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.838
    Здравствуйте уважаемые эксперты!
    Подскажите как сделать? В файле содержатся координаты(х,у) для N точек. Значение координат положительное. Структура файла с координатами какую предложите. Как построить график отображения точек и вывести его на визуализацию.
    Спасибо заранее!
    Отправлен: 25.11.2008, 20:12
    Вопрос задал: Sp3ct0r (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 6)

    Отвечает: Verena
    Здравствуйте, Sp3ct0r!
    Рисовать в консоли можно, в общем-то, также, как и в любом другом окне. Надо получить его контекст (DC), и с его помощью рисовать api-функциями. Чтобы получить контекст консоли, надо иметь его описатель (hwnd), в простейшем случае его можно получить так:
    GetConsoleTitle (pszWindowTitle, 1024); //получаем заголовок окна консоли
    hwnd=FindWindow(NULL, pszWindowTitle); //Ищем окно с таким заголовком

    В общем случае следовало бы сначала поменять заголовок окна на уникальный (например, использовав для этого системное время), а затем искать его уже по этому заголовку.
    Формат файла возьмём такой: на каждой строке пишем координаты x и y через пробел. Учитывая, что размерность координат ограничена, не будем заморачиваться с масштабированием, просто выводя точки по их координатам, а сосредоточимся на выводе на экран. Чтобы не рисовать на границах окна, что выглядит довольно некрасиво, будем к каждой координате y прибавлять 50 (чтобы пропусти ть заголовок окна), а к х будем прибавлять 10 (чтобы пропустить саму границу). Точки выводим зелёным, а линии - красным. Почти никаких проверок я не делаю, добавите сами, что захотите, например, при неправильном вводе n будет ошибка чтения файла. При вот таких входных данных:
    10 10
    50 20
    30 50
    90 90
    70 10
    0 0
    100 100
    Получается вот такой рисунок:

    Остальное должно быть ясно из комментариев.
    PS: Если создавать оконное приложение, то можно рисовать точно также на самом окне или его элементе, получив по его описателю контекст, после чего всё аналогично.
    Удачи!

    Приложение:

    ---------
    Эта история - не для истории, понимаешь?

    Ответ отправила: Verena (статус: Практикант)
    Ответ отправлен: 25.11.2008, 23:26

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236709 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Спасибо огромное вы мне очень помогли! У меня немного другой вопросик. Например из файла берется координаты N точек и вносятся в массив. Можно ли сделать объем массива зависимый от N. Т.е. чтобы размер массив был который необходим?


    Вопрос № 151.849
    Здравствуйте.

    Исправьте, пожалуста, коды программ, или скажите, как их исправить.
    Большое спасибо.

    Приложение:

    Отправлен: 25.11.2008, 21:28
    Вопрос задал: Радников А. С. (статус: Посетитель)
    Всего ответов: 2
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Verena
    Здравствуйте, Радников А. С.!
    В первых трёх программах ошибка в задании границ циклов. Цикл for задаётся так:
    for (счётчик=начальное_значение; условие_до_исполнения_которого_работает_цикл; изменение_счётчика)
    У Вас неправильно задано условие - Вы написали присвоение, а надо i <= arv, т.е.
    for ( i=1; i <= arv; i=i+1 )
    Во второй и третьей задаче использование циклов верно, но в условии надо ставить несторогое равенстсво, т.е.
    while (i<=arv )
    В четвёртой задаче у Вас выводится всё наоборот, надо поменять в if условие на противоположное:
    if(arv == 100) //Если параметр равен 100
    {
    printf("Sa sisestasid 100!!! ") //Выводится это
    }
    else //Если не равен
    {
    printf("Sa ei sisestanud 100... "); //То это
    }
    Так что в целом ход мыслей верный, только будьте аккуратней с условиями.
    Удачи!
    ---------
    Эта история - не для истории, понимаешь?
    Ответ отправила: Verena (статус: Практикант)
    Ответ отправлен: 25.11.2008, 21:52

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236700 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5


    Отвечает: Olegzp
    Здравствуйте, Радников А. С.!
    Предыдущий эксперт видимо просмотрел, на задание №3 правильно:
    do
    {
    printf("number: %d ",i);
    i++;
    } while (i<=(arv+1)) <<<<<<<
    так как сначала происходит увеличение переменной (i), а только потом сравнение
    Ответ отправил: Olegzp (статус: 7-й класс)
    Ответ отправлен: 26.11.2008, 15:14

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236779 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.872
    Здравствуйте уважаемые эксперты, подскажите, как можно в наиболее простом коде, изобразить бугущую строку( цикличное обновление дисплея, с перемещением символа на 5 пикселей вправо). Большое спасибо.
    Отправлен: 26.11.2008, 00:21
    Вопрос задал: glock (статус: 8-й класс)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 4)

    Отвечает: Dr_Andrew
    Здравствуйте, glock!
    Пример бегущей строки в консольной программе - см. в приложении. Используются функции перемещения курсора в заданную позицию (gotoxy) и очистки экрана (clrscr), подключаемые директивой #include <conio.h>. Поскольку эти функции - творчество компании Borland, то соответственно, пример будет компилироваться лишь в средах разработки этой фирмы (Turbo C++, Borland C++ и т.п.)

    Приложение:

    Ответ отправил: Dr_Andrew (статус: Студент)
    Ответ отправлен: 26.11.2008, 11:55

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236748 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    огромное спасибо. под Borland C++ скомпилировался.


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

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

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

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

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

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


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

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2008, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное