20.9. Пример на Си++. Рисование графиков 629
Чуть выше метода OnDraw надо определить функцию f(), не привязанную ни к какому классу. В ней происходит вычисление значения анализируемой математической функции по заданному аргументу. Для примера, она может выглядеть так:
int f(int x)
{ int у; у = 50*log(x); return у;
}
Стандартная функция log() вычисляет значение логарифма. Коэффициент 50 нужен, чтобы кривая пропорционально размещалась в окне. Хотя функция 1од() рассчитывает действительное значение, компилятор автоматически настроит программный код так, чтобы оно было преобразовано в целый тип, соответствующий типу переменной у.Исходно функция log() и ряд других не подключены к текущему проекту. Чтобы они стали доступными, библиотеку, в которой они хранятся, необходимо явно указать компилятору. Делается это с помощью командной строки
#include "Math.h" которую можно поместить в самое начало текущего файла. Далее проект надо сохранить, выполнить компиляцию и запустить, нажав клавишуF5. В дальнейшем, изменив один оператор присваивания в функции f() и подобрав подходящие коэффициенты, с помощью этой программы можно строить самые разные графики.
Дано натуральное число. Составить программу, которая представляет данное число в виде суммы квадратов натуральных чисел, содержащей минимальное число слагаемых. Например:
9=32
12=22+22+22 23=32+32+22+12Написать подпрограммы, выполняющие следующие действия:
• перестановку элементов массива в обратном порядке;
• вычисление суммы А[1] + А[2]*А[2] + А[3]*А[3]*А[3]...;
630 Глава 20. Основы программирования
• определение элементов массива, разность модулей которых имеет наибольшеезначение;
• определение значения, которое встречается среди элементов массива макси-мальное число раз, и вычисление количества таких вхождений;
• упорядочение элементов массива по возрастанию.
Дан двумерный массив, содержащий NxN элементов.
Написать подпрограммы, выполняющие следующие действия:
• вычисление среднего арифметического для элементов каждой строки массива;• замену нулями всех элементов, расположенных на главной диагонали матрицы;
• определение наибольшего элемента и его положения в массиве.
Дана текстовая строка.
Написать подпрограммы, выполняющие следующие действия:
• подсчет количества слов в строке (в качестве границ слов рассматриваютсяпробелы);
• подсчет количества цифр в строке;
•
определение десятичного числа, которому соответствует строка, если она представляет запись этого числа в шестнадцатеричной системе;•
проверку соответствия содержимого строки правилам записи идентификаторов языков программирования.1.
Бобровский С. И. Delphi 7. Учебный курс. - СПб.: Питер, 2003,736 с.2.
Бройдо В. Л. Вычислительные системы, сети и телекоммуникации. Учебникдля вузов. - СПб.: Питер, 2003,688 с.3.
Бэйн С. Эффективная работа: CorelDraw 11; перев. с англ. — СПб.: Питер, 2003, 768 с.4.
Говорухин В. Н., Цибулин В. Г. Компьютер в математическом исследовании.Учебный курс. - СПб.: Питер, 2001,624 с.5. Гук М. Ю. Аппаратные интерфейсы ПК. Энциклопедия. — СПб.: Питер, 2003,528 с.
6.
Гук М. Ю. Аппаратные средства IBM PC. Энциклопедия. — СПб.: Питер, 2003, 928с.7.
Додж М., Стинсон К. Эффективная работа: Excel 2002; перев. с англ. — СПб.: Питер, 2002,992 с.8.
Зихерт К., Ботт Э. Эффективная работа: Windows ХР; перев. с англ. — СПб.: Питер, 2003,1072 с.9.
Комер Д. Принципы функционирования Интернета; перев. с англ. — СПб.: Питер, 2002,384 с.10. Крёнке Д. Теория и практика построения баз данных; перев. с англ. — СПб.: Питер, 2003, 800 с.
11.
Маров М. Н. Эффективная работа: 3ds max 5. — СПб.: Питер, 2003,992 с.12. Миллхоллон М., Мюррей К. Эффективная работа: Word 2002; перев. с англ. —СПб.: Питер, 2003, 944 с.
13. Немнюгин С. A. Turbo-Pascal. Программирование на языке высокого уровня.
Учебник для вузов. — СПб.: Питер, 2003, 544 с.
632 Рекомендуемая литература
14. Олифер В. Г., Олифер Н. А. Компьютерные сети. Принципы, технологии, протоколы. Учебник для вузов. — СПб.: Питер, 2003, 864 с.
15.
Павловская Т. А. Паскаль. Программирование на языке высокого уровня. Учебник для вузов. — СПб.: Питер, 2003,400 с.16.
Павловская Т. А. C/C++. Программирование на языке высокого уровня. Учеб-ник для вузов. — СПб.: Питер, 2003, 464 с.17. Пасько В. П. Эффективная работа в Интернете. — СПб.: Питер, 2003, 544 с.
18.
Петров М. Н., Молочков В. П. Компьютерная графика: Учебник для вузов. —СПб.: Питер, 2003,736 с.19.
Попов В. Б. Практикум по Интернет-технологиям. Учебный курс — СПб.: Питер,2002,480 с.20. Рейнбоу В. Компьютерная графика. Энциклопедия; перев. с англ. — СПб.: Питер,2003,768 с.
21.
Тайц А. М., Тайц А. А., Петров М. Н. Эффективная работа: Photoshop 7. — СПб.: Питер, 2003,768 с.22. Таненбаум Э. С. Архитектура компьютера; перев. с англ. — СПб.: Питер, 2003,704 с.
23.
Таненбаум Э. С. Компьютерные сети; перев. с англ. — СПб.: Питер, 2003,992 с.24. Фаронов В. В. Delphi. Программирование на языке высокого уровня. Учебникдля вузов. — СПб.: Питер, 2003, 640 с.
25.
Феддема Э. Эффективная работа: Access 2002; перев. с англ. — СПб.: Питер, 2003,944 с.26.
Хамахер К, Вранешич 3., Заки С. Организация ЭВМ; перев. с англ. — СПб.: Питер, 2003,848 с.27.
Хелд Г. Технологии передачи данных; перев. с англ. — СПб.: Питер, 2003,720 с.28.
Шалин П. А. Энциклопедия Windows XP. - СПб.: Питер, 2003, 688 с.Алфавитный указатель
FSB 86Adobe Illustrator 434 FTP 212
Adobe Photoshop 427
в BIOS 84 | GIF-анимация 543 H High Color 25 |
C++ 626 элемент 540
CD-ROM 74
CISC-процессор 81 ICQ212 CMOS 84 Internet Explorer 228 CorelDraw 449 IRC 212 настройка 482 ISA 84M
Delphi 7 621 Mail List 206DNS 211 Mathcad 509
DRAM 78 Microsoft Access 2002 353
DDRSDRAM79 Microsoft Excel 316Microsoft Word 253
EISA 85 N
NTFS 102
FAT 32 FAT-таблица 111 OLE 181FineReader 491 OLE-клиент 183
FrontPage 552 OLE-сервер 183