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

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

Жанры

Программирование на 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), если условие не выполняется.

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

Я – Легенда

Гарцевич Евгений Александрович
1. Я - Легенда!
Фантастика:
боевая фантастика
попаданцы
рпг
фантастика: прочее
5.00
рейтинг книги
Я – Легенда

Спасите меня, Кацураги-сан! Том 2

Аржанов Алексей
2. Токийский лекарь
Фантастика:
городское фэнтези
попаданцы
дорама
фэнтези
5.00
рейтинг книги
Спасите меня, Кацураги-сан! Том 2

Барон не играет по правилам

Ренгач Евгений
1. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон не играет по правилам

Путешественник по Изнанке

Билик Дмитрий Александрович
4. Бедовый
Фантастика:
юмористическое фэнтези
городское фэнтези
попаданцы
мистика
5.00
рейтинг книги
Путешественник по Изнанке

Изгой Проклятого Клана. Том 6

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

Законы Рода. Том 12

Андрей Мельник
12. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 12

Спасите меня, Кацураги-сан!

Аржанов Алексей
1. Токийский лекарь
Фантастика:
городское фэнтези
попаданцы
дорама
5.00
рейтинг книги
Спасите меня, Кацураги-сан!

Гранд империи

Земляной Андрей Борисович
3. Страж
Фантастика:
фэнтези
попаданцы
альтернативная история
5.60
рейтинг книги
Гранд империи

Я не царь. Книга XXIV

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

Наследник хочет в отпуск

Тарс Элиан
5. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник хочет в отпуск

Тринадцатый VIII

NikL
8. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый VIII

Кодекс Охотника. Книга XXV

Винокуров Юрий
25. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга XXV

Тринадцатый XII

NikL
12. Видящий смерть
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
7.00
рейтинг книги
Тринадцатый XII

Кукловод

Майерс Александр
4. Династия
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Кукловод