Программирование >>  Программирование на языке c++ 

1 ... 83 84 85 [ 86 ] 87 88 89 ... 159


while (next 1= 0) { cout next.CurrentO ++next; }

Если, например, ввести в эту программу значения 2 7 0 1, то на экран будет выведена следующая информация:

0 12 7

2 7

где вторая строка выведена после обращения к функции Restart.

Пятая программа демонстрирует работу со стеком. #include <iostream.h>

#include <classlib\stacks.h> файл заголовка для работы

со стеком typedef TStackAsVector<char> c stack; void main(void)

{ c stack cs(20); объявление стека cs размером 20 объектов for(int i=0;i<5;i++)

cs.Push(A+i); запись в стек символов А, В, С, D, Е for(i=0;i<5;i++)

cout cs.PopO \t; Результат: E D С В A

При работе с контейнерами целесообразно использовать следующие конструкции:

typedef TStackAsVector<char> c $tack;

В результате, если необходимо перейти от одного контейнера к другому, достаточно лищь изменить эту строку, например:

typedef TStackAsList<char> c stack;

Шестая программа демонстрирует такой переход: #include <iostream.h> #include <classlib\stacks.h> typedef TStackAsList<char> c stack; void main(void)



{ c stack cs;

for(int i=0;i<5;i++)

cs.Push(A+i); for(i=0;i<5;i++)

cout cs.PopO \t; Результат: E D С В A

Седьмая программа демонстрирует занесение в стек не самих объектов, а указателей на эти объекты (здесь использован префикс TI).

#include <iostream.h> #include <classlib\stacks.h> typedef TIStackAsVector<int> i stack; void main{void) { i stack is;

int a[l = { 2,4,6,8,10 }; for(int i=0;i<5;i++)

is.Pusli(a+i); занесение в стек указателей на элементы массива а (а[0],а[1],а[2],а[3],а[4]) for(i=0;i<5;i++)

cout *is.Pop() << \t; Результат: 10 8 6 4 2

Восьмая программа показывает использование контейнера TISArray As Vector для сортировки строк.

#include <iostream.li>

#include <classlib\arrays.h>

typedef TISArrayAsVector<char> c array;

void main(void)

{ c array ca(10);

char *str[] = { Lisbon , Porto , Coimbra ,

Aveiro , Braga , Covilha , Faro }; for(int i=0;i<7;i++)

ca.Add(str[i]); занесение указателей на строки в контейнер

for(i=0;i<7;i++)



cout (char*)ca[i] << endl; вывод результата

Результаты работы этой программы представятся в ввде:

Aveiro

Braga

Coimbra

Coviiha

Faro

Lisbon

Porto

Девятая программа вычерчивает ломаную линию на экране и сохраняет информацию об этой линии в массиве. Затем экран очищается. После этого ломаная линия восстанавливается на экране с использованием информации, сохраненной в массиве.

#include <iostream.h>

#include <classlib\arrays.h>

#include <constrea.h> для класса conbuf

#include <conio.h>

#include <graphics.h>

struct TPoint { класс, содержащий информацию о точке экрана

int х,у;

void set{int X=0,int Y=0) { x=X; y=Y; }

int operator==(const TPoint& a) const { return x == a.x; }

void main(void)

{ TPoint p1,p2,p3;

TArray<TPoint> TPoints(10,0,10);

p1.set(10,10),p2.set{10,100),p3.set(50,50);

conbuf cb; CM. главу 8 для дополнительных пояснений

int gd=DETECT, gm;, для инициализации графики

initgraph{&gd,&gm, ); инициализация графики

lineto(p1.x,p1.y); вычерчивание линии

TPoints.Add(pl); сохранение информации о точке



1 ... 83 84 85 [ 86 ] 87 88 89 ... 159

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика