Чтение онлайн

на главную - закладки

Жанры

Программирование на Objective-C 2.0
Шрифт:

Напишите программу для вычисления выражения и вывода результатов (для вывода результатов используйте формат экспоненциального представления). (3.31 х 10<sup>-8</sup> + 2.01 х 107) / (7.16 х 10<sup>-5</sup> + 2.01 х 10<sup>-8</sup>)

Комплексные (Complex) числа содержат две части: вещественную (real) и мни-мую (imaginary). Если а — это вещественная часть, а b — мнимая часть, то для представления такого числа используется форма записи а + b i Напишите программу на Objective-C, которая определяет новый класс с именем Complex. Соблюдая принцип, описанный для класса Fraction, опреде-лите для своего нового класса следующие методы.
– (void) setReal: (double) а; -(void) setlmaginary: (double) b; -(void) print; // вывод как a + bi -(double) real; -(double) imaginary; Напишите программу, чтобы протестировать новый класс и методы.

Вы разрабатываете библиотеку процедур для работы с графическими объек-тами. Начните с определения нового класса с именем Rectangle (Прямоугольник). Разработайте методы задания ширины и высоты прямоугольна, считывания их значений, а также расчета площади (area) и периметра (perimeter) прямоугольника. Предполагается, что объекты-прямоугольники описывают прямоугольники на целочисленной сетке, например, на экране компьютера. В данном случае ширина и высота прямоугольника являются целыми значениями. Ниже приводится секция @interface для класса Rectangle: @interface Rectangle: NSObject { int width; int height; } -(void) setWidth: (int) w; -(void) setHeight: (int) h; -(int) width; -(int) height; -(int) area; -(int) perimeter; @end Напишите секцию implementation и программу для тестирования вашего но-вого класса и методов.

Модифицируйте методы add:, subtract:, multiply: и divide: для программы 4.6, чтобы считывать результирующее значение сумматора (accumulator). Выполните тестирование этих новых методов.

Закончив упражнение 8, добавьте следующие методы к классу Calculator и выполните их тестирование.
– (double) changeSign; // изменение знака сумматора -(double) reciprocal; // 1/(значение сумматора) -(double) xSquared; // квадрат сумматора

Добавьте методы работы с памятью для класса Calculator в программе 4.6. Реализуйте следующие объявления методов и выполните их тестирование.-(double) memoryClear; // очистка памяти -(double) memoryStore; // запись в память значения сумматора -(double) memoryRecall; // чтение в сумматор значения памяти -(double) memoryAdd; // добавление значения сумматора к памяти -(double) memorySubtrac // вычитание значения сумматора из памяти Каждый из этих методов должен возвращать значение сумматора.

Глава 5. Циклы в программах

Язык Objective-C позволяет повторять последовательности кода различными способами. Темой этой главы являются циклы. Они могут формироваться с помощью следующих операторов.

Оператор for

Оператор while

Оператор do

Начнем с простого примера: подсчет суммы. Составим треугольник из 15 шаров (рис. 5.1).

Рис. 5.1. Пример треугольной компоновки

Первый ряд состоит из одного шара, второй ряд — из двух, и т.д. Количество шаров в треугольнике, состоящем из п рядов, равно сумме чисел от 1 до п. Эта сумма называется треугольным числом.

Если начать с 1, то четвертое треугольное число будет равно сумме последо-вательных чисел от 1 до 4 (1 + 2 + 3 + 4), то есть 10.Напишем программу, которая вычисляет и выводит на экран значение восьмого треугольного числа. Это число легко сосчитать в уме, но можно написать программу на Objective-C, чтобы выполнить эту задачу (программа 5.1). #import <Foundation/Foundation.h> // Программа вычисления восьмого треугольного числа (triangularNumber) int main (int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int triangularNumber; triangularNumber =1 + 2 + 3 + 4 + 5 + 6 + 7 + 8; NSLog (@"The eighth triangular number is %\", triangularNumber); [pool drain]; return 0; }

Вывод программы 5.1 The eighth triangular number is 36 (восьмое треугольное число = 36)

Способ, применяемый в программе 5.1, вполне подходит для относительно небольших треугольных чисел, но что делать, если нам нужно вычислить, на-пример, значение 200-го треугольного числа? Не складывать же в явном виде все целые числа от 1 до 200? К счастью, имеется более простой способ — воз-можность выполнения операций в цикле. Для реализации циклов в языке Objective-C имеется три оператора. 5.1. Оператор for

В программе 5.2 вычисляется 200-е треугольное число. На ее примере мы рассмотрим, как работает оператор for. // Программа вычисления 200-го треугольного числа (triangularNumber) // Пример использования оператора for #import <Foundation/Foundation.h> int main (int argc, char *argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; int n, triangularNumber; triangularNumber = 0; for ( n = 1; n <= 200; n = n + 1 ) triangularNumber += n; NSLog (@"The 200th triangular number is %i", triangularNumber); [pool drain]; return 0; }

Вывод программы 5.2 The 200th triangular number is 20100 (200-е треугольное число = 20100)

Программа 5.2 требует некоторых пояснений. Для расчета 200-го треуголь-ного числа используется тот же метод, что и для 8-го треугольного числа: вы-числяется сумма чисел от 1 до 200.

Перед оператором for переменной triangularNumber присваивается значение 0. Все переменные необходимо инициализировать (присвоить им значение) до того, как они будут использованы в программе. Определенным типам перемен-ных начальные значения присваиваются по умолчанию, но надежнее присвоить переменным нужные значения явно.

Оператор for позволяет обойтись без явного написания всех чисел от 1 до 200. В общем виде оператор for имеет формат for (начальное выражение]; условие_цикла; выражение_цикла) программный оператор

Три выражения, заключенные в круглые скобки: начальноевыражение, условие цикла и выражение_цикла — задают среду выполнения программного цикла. Следу-ющий за ними программный оператор (который заканчивается символом «точка с запятой») может быть любым оператором Objective-C. Количество выполнений этого оператора определяется параметрами, заданными в операторе for.

Первый компонент оператора for, начальноевыражениеу задает начальные зна-чения до выполнения цикла. В программе 5.2 эта часть оператора for задает на-чальное значение п, равное 1. Второй компонент оператора for указывает усло-вия, необходимые для продолжения цикла. Цикл повторяется, пока это условие истинно. В программе 5.2 условиецикла указывается следующим выражением отношения: n <= 200

Это выражение означает «п меньше или равно 200». Оператор « меньше или равно» (знак «меньше» [<], после которого сразу следует знак «равно» [=]) — это оператор отношения. Операторы отношения используются для проверки условий. Результатом проверки является ответ «да» (или TRUE), если условие выполняется, или «нет» (или FALSE), если условие не выполняется.

Поделиться:
Популярные книги

Изыскатель

Назимов Константин Геннадьевич
5. Травник
Фантастика:
фэнтези
7.00
рейтинг книги
Изыскатель

Мечник Вернувшийся 1000 лет спустя. Том 2

Ткачев Андрей Юрьевич
2. Вернувшийся мечник
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Мечник Вернувшийся 1000 лет спустя. Том 2

Мечник Вернувшийся 1000 лет спустя

Ткачев Андрей Юрьевич
1. Вернувшийся мечник
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Мечник Вернувшийся 1000 лет спустя

Черный Маг Императора 11

Герда Александр
11. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Черный Маг Императора 11

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

Последний Герой. Том 4

Дамиров Рафаэль
Последний герой
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Последний Герой. Том 4

Я снова князь. Книга XXIII

Дрейк Сириус
23. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Я снова князь. Книга XXIII

Ну привет, заучка...

Зайцева Мария
Любовные романы:
эро литература
короткие любовные романы
8.30
рейтинг книги
Ну привет, заучка...

Курсант: назад в СССР

Дамиров Рафаэль
1. Курсант
Фантастика:
попаданцы
альтернативная история
7.33
рейтинг книги
Курсант: назад в СССР

Двойник короля 19

Скабер Артемий
19. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 19

Адвокат империи

Карелин Сергей Витальевич
1. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
фэнтези
5.75
рейтинг книги
Адвокат империи

Черный рынок

Вайс Александр
6. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Черный рынок

Газлайтер. Том 38

Володин Григорий Григорьевич
38. История Телепата
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Газлайтер. Том 38

Назад в СССР 5

Дамиров Рафаэль
5. Курсант
Фантастика:
попаданцы
альтернативная история
6.64
рейтинг книги
Назад в СССР 5