Форум программистов, компьютерный форум CyberForum.ru

Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Конвертер текстового файла http://www.cyberforum.ru/cpp-beginners/thread439174.html
Добрый день!!! Простите за наглость... Помогите пожалуйста написать программу-конвертер текстовых файлов из dos в windows и обратно. С командной строки должно вводится направление /d или /w. Я очень мало в этом понимаю. Заранее спасибо!!!
C++ Проблема с libmms - ошибка при компиляции. Здравствуйте. Уже который день не могу разобраться с упомянутой в заголовке библиотекой, а именно: пишу примерно такой тестовый код #include <iostream> #include <libmms/mms.h> int main() { mms_t *stream; char mms_link="mms://audio.rfn.ru/radiorus/audio/710/90.asf"; stream=mms_connect(0, 0, mms_link, 128); http://www.cyberforum.ru/cpp-beginners/thread439169.html
C++ Привет. Как можна найти с даного примера умножение элементов массива с четными номерами?
#include "stdafx.h" #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; int main(int argc, _TCHAR* argv)
C++ Начало DEV С++
Здравствуйте, подскажите где ошибка? Задание Даны действительные числа х, у . Если х, у отрицательные то каждое значение заменить его модулем; если отрицательное только одно из них, то оба значения увеличить на 0.5; если оба значения не отрицательные и ни одно из них не принадлежат отрезку , то оба значения уменьшить в 10 раз; в остальных случаях х, у оставить без изменения. Решение ...
C++ Запись текста в файл http://www.cyberforum.ru/cpp-beginners/thread439138.html
Нужно составить прогрумма которая создает файл и записывает в него текст. Программа не записывает в файл текст после пробела, помогите пожалуйста. char name; char text; cout<<"vvedite put' i im9 faila:\n"; cin>>name; ofstream out(name); cout<<"vvedite text:\n"; cin>>text; out<<text; out.close();
C++ allocator std::map Подскажите вопрос, есть тестовое задание: Написать allocator для std::map, располагающий элементы контейнера последовательно в памяти. Подскажите где про это почитать и разъясните по-возможности, что это вообще такое (std::map я вкурсе что это контейнер и как с ним работать) в ступор вводит allocator подробнее

Показать сообщение отдельно
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
09.07.2013, 19:43     Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++"
Глава 10 Упражнение №5
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<iostream>
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE,"rus");
    void addarrays(float*,float*, float*,int);
    const int n=5;
    float a3[n];
    float a1[n]={2.2,5.5,8.6,9.1,7.2};
    float a2[n]={3.3,5.9,6.5,4.4,8.2};
    addarrays(a1,a2,a3,n);
for(int i=0;i<n;i++)
        cout<<*(a3+i)<<endl;
system("pause");
return 0;
}
void addarrays(float* a,float* b, float* c,int n)
{
    for(int i=0;i<n;i++)
        *(c+i)=*(a+i)+*(b+i);
    
}

Глава 10 Упражнение №6
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<iostream>
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE,"rus");
int compstr(char* , char * );
    char*s="А вдома лучше";
    char*s1="Кот ходит по квартире";
    char*s2="Сегодня на ужин омлет";
 int a=compstr(s,s1);
 cout<<a<<endl;
 a=compstr(s1,s);
 cout<<a<<endl;
 a=compstr(s1,s1);
 cout<<a<<endl;
 
system("pause");
return 0;
}
int compstr(char*a, char *b)
{
    if(*a<*b)
        return -1;
    else 
        if(*a>*b)
        return 1;
    else
        if(*a==*b)
        return 0;
 
 
}

Глава 10 Упражнение №7
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// persort.cpp
// сортировка объектов через массив указателей на них
#include <iostream>
#include <string>
using namespace std;
///////////////////////////////////////////////////////////
class person            // некоторый человек
{
  protected:
    string name;        // имя
    float salary;
  public:
    void setData ( )    // установка имени
      { cout << "Введите имя: "<<endl;
        cin >> name; 
        cout<<"Введите оклад: "<<endl;
        cin>>salary;
    }
    void printData ( )  // показ имени
      { 
          cout << endl <<"Имя: "<< name; 
          cout<<endl<<"Оклад: "<<salary;
 
    }
    string getName ( )  // получение имени
      { return name; }
    float getSalary ( )  // получение имени
      { return salary; }
 
};
///////////////////////////////////////////////////////////
int main ( )
{
    setlocale(LC_CTYPE,"rus");
  void salsort ( person**, int ); // прототип функции
  person* persPtr [ 100 ];      // массив указателей на person
  int n = 0;                    // количество элементов в массиве
  char choice;                  // переменная для ввода символа
 
  do
  {
    persPtr [ n ] = new person;       // создаем новый объект
    persPtr [ n ]->setData ( );       // вводим имя
    n++;                              // увеличиваем количество
    cout << "Продолжаем ввод (d/н)?"; // спрашиваем, закончен ли ввод
    cin >> choice;
  }
  while ( choice == 'd' );
 
  cout << "\nНеотсортированный список:";
  for ( int j = 0; j < n; j++ ) // покажем неотсортированный список
      persPtr [ j ]->printData ( );
 
  salsort ( persPtr, n );         // отсортируем указатели
 
  cout << "\nОтсортированный список:";
  for (int  j = 0; j < n; j++ )     // покажем отсортированный список
      persPtr [ j ]->printData ( );
  cout << endl;
 
  system("pause");
  return 0;
}
///////////////////////////////////////////////////////////
void salsort ( person** pp, int n )
{
  
  int j, k;                          // переменные для циклов
 
  for ( j = 0; j < n- 1; j++ )      // внешний цикл
    for ( k = j + 1; k < n; k++ )    // внутренний цикл
    if( (*(pp+j))->getSalary ( ) > (*(pp+k))->getSalary ( ) ) // если первая строка больше второй,
  {
    person* tempptr = *(pp+j); // меняем их местами
    *(pp+j) = *(pp+k);
    *(pp+k) = tempptr;
  }
}


Добавлено через 3 минуты
Глава 10 Упражнение №8
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// linklist.cpp
// список
#include <iostream>
using namespace std;
///////////////////////////////////////////////////////////
struct link   // один элемент списка
{
  int data;   // некоторые данные
  link* next; // указатель на следующую структуру
};
///////////////////////////////////////////////////////////
class linklist // список
{
  private:
    link* first;
    link* last;
  public:
    linklist ( )            // конструктор без параметров
      { first=last = NULL; }     // первого элемента пока нет
    ~linklist()
    {
        link* current=NULL;
        link* next=first;
        while(next)
        {
            current=next;
            next=next->next;
            
            delete current;
        }
        
    }
    void additem ( int d ); // добавление элемента
    void display ( );       // показ данных
};
///////////////////////////////////////////////////////////
void linklist::additem ( int d ) // добавление элемента
{
    link* newlink = new link; // выделяем память
    newlink->next=NULL;
    newlink->data=d;
    if(first==NULL) 
    {
        first=newlink;
        last=newlink;}
    else
    {
        last->next=newlink;
        last=newlink;
    }
  
  
}
///////////////////////////////////////////////////////////
void linklist::display ( )
{
  link* current = first;           // начинаем с первого элемента
  while( current )                 // пока есть данные
  {
    cout << current->data << endl; // печатаем данные
    current = current->next;       // двигаемся к следующему элементу
  }
}
///////////////////////////////////////////////////////////
int main ( )
{
  linklist li;       // создаем переменную-список
 
  li.additem ( 25 ); // добавляем туда несколько чисел
  li.additem ( 36 );
  li.additem ( 49 );
  li.additem ( 64 );
 
  li.display ( );    // показываем список
system("pause");
  return 0;
}

Глава 10 Упражнение №9
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
int main ( )
{
    const int n=10;
    int a0[n]={0,10,20,30,40,50,60,70,80,90};
    int a1[n]={0,10,20,30,40,50,60,70,80,90};
    int a2[n]={0,10,20,30,40,50,60,70,80,90};
    int a3[n]={0,10,20,30,40,50,60,70,80,90};
    int a4[n]={0,10,20,30,40,50,60,70,80,90};
    int a5[n]={0,10,20,30,40,50,60,70,80,90};
    int a6[n]={0,10,20,30,40,50,60,70,80,90};
    int a7[n]={0,10,20,30,40,50,60,70,80,90};
    int a8[n]={0,10,20,30,40,50,60,70,80,90};
    int a9[n]={0,10,20,30,40,50,60,70,80,90};
    int* ap[n]={a0,a1,a2,a3,a4,a5,a6,a7,a8,a9};
    for(int j=0;j<10;j++)
        for(int k=0;k<10;k++)
            cout<<ap[j][k]<<endl;
system("pause");
  return 0;
}

Глава 10 Упражнение №10
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main ( )
{
    const int n=10;
    int* ap[n];
    for(int j=0;j<n;j++)
        *(ap+j)=new int[n];
    for(int j=0;j<10;j++)
        for(int k=0;k<10;k++)
            *(*(ap+j)+k)=k*10;
    for(int j=0;j<10;j++)
        for(int k=0;k<10;k++)
            cout<<*(*(ap+j)+k)<<endl;
system("pause");
  return 0;
}

Глава 10 Упражнение №11
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
using namespace std;
 
class Massiv
{
private:
 
    int* ap;
    int n;
    int m;
public:
    Massiv(int n_=100, int m_=10): n(n_),m(m_)
    {
    ap=new int[n];
    setValue();
    }
    void setValue()
    {
    for(int k=0;k<n;)
     for(int i=0;i<m;i++)
        *(ap+k++)=i*m;
    }
 
    int& operator[] (int i)
    {
        return ap[i];
    }
    void show(){
for(int i=0;i<n;i++) 
cout<<*(ap+i)<<endl;
    cout<<endl;
}
 
 
 
};
 
int main ( )
{
 
    Massiv m;
    m.show();
system("pause");
  return 0;
}
 
Текущее время: 02:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru