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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 621, средняя оценка - 4.99
Kimel
15 / 16 / 0
Регистрация: 01.02.2012
Сообщений: 182
#1

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

01.02.2012, 17:47. Просмотров 85945. Ответов 289
Метки нет (Все метки)

Хотя я и начинающий с++-шник. Хочу помочь другим людям. Здесь я буду выкладывать всё что мне удалось решить. В моих решениях будет много хедеров, делал я это в Dev C++. Ос Win 7 64 bit.

Начнём со второй главы:
Упражнение 1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream> 
 
using namespace std;
 
int main()
{
   setlocale(0,"Rus");
   float gallons, cufeet;
 
   cout << "Введите количество галоннов: \n";
   cin >> gallons;
   cufeet = gallons / 7.481;
   cout << "Еквивалент в футах = " << cufeet << endl;
    
   return 0;
}

Упражнение 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream> 
#include <iomanip>
 
using namespace std;
 
int main()
{
   setlocale(0,"Rus");
   
    cout << 1990 << setw(8) << 135 << endl
           << 1991 << setw(8) << 7290 << endl 
           << 1992 << setw(8) << 11300 << endl
           << 1993 << setw(8) << 16200 << endl;
  
   return 0;
}

Упражнение 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream> 
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    int var = 10;
 
    cout << var << endl;      
    var *= 2;                 
    cout << var-- << endl;    
    cout << var << endl;      
    return 0;
}

Упражнение 4
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream> 
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    cout<<"\nУ лукоморья дуб срубили\nКота на мясо порубили \nА по неведанным дорожкам\nШагали черти в босоножках\n"; 
    return 0;
}

Упражнение 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream> 
#include <ctype.h>
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    char ch;
    cin >> ch;
    cout << islower(ch);  // При вводе строчной буквы будет 2 при прописной 0. Но есть нюанс, поддерживаються только англ буквы 
    return 0;
}


Упражнение 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream> 
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
 
    float a,b,c,d,f;
    cout << "Введите кол-во доларов"<<endl;
    cin >> f;
    b=f/1.487;
    c=f/0.172;
    a=f/0.584;
    d=f/0.00955;
    cout << f <<"доларов = "<< b<<" фунтов стерлинга"<<endl;
    cout << f <<"доларов = "<< c<<" франков"<<endl;
    cout << f <<"доларов = "<< a<<" немецких марок"<<endl;
    cout << f <<"доларов = "<< d<<" японских йен"<<endl;
    return 0;
}

Упражнение 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream> 
#include <iomanip>
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    double f,c;
    cout << "Введите количество градусов по Цельсию"<<endl;
    cin >> c;
    f=c*1.8+32;
    cout <<setprecision(3)<< f << " градусов по Фаренгейту "<< endl; // Регуляция кол-во символов после запятой
    return 0;
}

Упражнение 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream> 
#include <iomanip>
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    long pop1=2425785, pop2=47, pop3=9761;       
 
    cout << setfill('.') <<setw(8) << "LOCATION" << setw(12) // Обратите внимание на одинарные кавычки
           << "POPULATION" << endl
           <<setw(8) << "Portcity" << setw(12) << pop1 << endl
           << setw(8) << "Hightown" << setw(12) << pop2 << endl
           << setw(8) << "Lowville" << setw(12) << pop3 << endl;
    return 0;
}

Упражнение 9

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() 
{
    setlocale(0,"Rus");
    char dummychar;
    double a,b,c,d,e,f;
    cout << "Введите а и b"<< endl;
    cin >>a>>dummychar>>b;
    cout << "Введите c и d"<<endl;
    cin >>c>>dummychar>>d;
    cout <<(b*c)+(d*a)<<dummychar<<(b*d)<<endl;
 
    return 0;
}

Упражнение 10 (Намучился с этой задачей)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
 
using namespace std;
 
int main() 
{
    setlocale(0,"Rus");
    float a,b,c,f;
    cout << "Введите количество фунтов"<<endl;
    cin >> a;
    cout << "Введите количество шиллингов"<<endl;
    cin >> b;
    cout << "Введите количество пенсов"<<endl;
    cin >> c;
    f = a+(b+c/12)/20;
    cout << "Количество фунтов = " << f << endl;
    return 0;
}

Упражнение 11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream> 
#include <iomanip>
 
using namespace std;
 
int main() 
{
     setlocale(0,"Rus");
     cout << setiosflags(ios::left) <<setw(15) << "Фамилия"<< setw(15)<< "Имя"<<setw(15) << "Адресс"<<setw(15)<< "Город"<<endl
            <<setw(15)<< "Иванов"<<setw(15)<<"Петя"<<setw(15)<<"Кленовая 16"<<setw(10)<<"Москва"<<endl
            <<setw(15)<< "Иванов"<<setw(15)<<"Петя"<<setw(15)<<"Кленовая 16"<<setw(10)<<"Москва"<<endl
            <<setw(15)<< "Иванов"<<setw(15)<<"Петя"<<setw(15)<<"Кленовая 16"<<setw(10)<<"Москва"<<endl;
    return 0;
}

Упражнение 12 (это самая геморная программа на разработку которой ушло больше дня)
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() 
{
setlocale(0,"Rus");
float a,b,z;
int c,k;
cout << "Введите кол-во футов " << endl;
cin >> a;
c = static_cast<int>(a);
b = a - c;
b *= 20;
k = static_cast<int>(b);
z = b - k;
z = z*12;
z = static_cast<int>(z);
k = static_cast<int>(k);
cout << c <<"."<< k <<"."<< z << endl;
return 0;
}
Это конец второй главы, третюю сделаю позже если будет нужна
 Комментарий модератора 
Пост обновлен по просьбе ТС
12
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2012, 17:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++" (C++):

Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++" - C++
Мне надо решение упражнений из книги Р. Лафоре &quot;Объектно-ориентированное программирование в С++&quot;. Хотя бы какая-то часть

Ищу ответы на задания из книги Лафоре Р. "Объектно-ориентированное программирование в С++" 4 издание. - C++
Дошел до 10 главы, из каждой главы делал все 12 заданий, хочу проверить правильно ли я их делал. И еще нужны ответы на вопросы которые идут...

Объектно-ориентированное приложение: "Эмулятор банкомата" - C++
Доброго времени всем! я начал изучать С++ И хотел бы спросить вашей помощи в этом нелёгком труде. Дело в том, что мне нужно сделать...

Разобраться в примерх к книге Лафоре "Обьектно-ориентированое программирование в С++" - C++
Всем доброго времени суток кто читает эту тему. Сегодня, изучая С++ по книге Лафоре &quot;Обьектно-ориентированое программирование в С++&quot; 4-е...

Объектно-ориентированное программирование - C++
Помогите мне отредактировать программу...У меня есть исходники..Склеить нужно.... Класс Данные класса Методы ...

Объектно-ориентированное программирование в С++ ? - C++
Книга Р. Лафоре - Объектно-ориентированное программирование в С++ как вам ?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Artemio
2 / 2 / 1
Регистрация: 20.02.2015
Сообщений: 17
25.02.2015, 19:25 #196
кто-то смог вывести значок фунта в 10й задаче 2й главы?так то ничего в ней сложного - больше математика, чем программирование..

Добавлено через 7 часов 27 минут
что с 12й задачей второй главы? при вводе 7.65 и при вводе 8.65 видим разные результаты - объясните магию эту..
и я не имею ввиду разницу между 7 и 8.. я о шиллингах и пенсах.
0
Ferrari F1
=^_^=
571 / 458 / 94
Регистрация: 27.01.2015
Сообщений: 2,696
Записей в блоге: 1
Завершенные тесты: 1
25.02.2015, 20:04 #197
Глава 10


Номер 1

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
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout << "Сколько чисел вы хотите ввести?" << endl;
    unsigned __int16* n = new unsigned __int16;
    cin >> *n;
    float* arr = new float[*n];
    for (int i(0); i < *n;)
    {
        cout << "Введите " << i + 1 << " число:" << endl;
        cin >> *(arr + i++);
    }
    float* sum = new float; *sum = 0;
    for (int i(0); i < *n;)
        *sum += *(arr + i++);
    cout << "Среднее арифмитическое массива равно:\n" << *sum / *n << endl;
    delete[] arr;
    delete n;
    delete sum;
    system("pause");
    return 0;
}


Номер 2

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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <ctype.h>
#include <cstring>
using namespace std;
 
class String
{
private:
    char* str;
public:
    String(char* s)
    {
        int length = strlen(s);
        str = new char[length + 1];
        strcpy(str, s);
    }
    ~String()
    {
        cout << "Удаляем строку\n";
        delete[] str;
    }
    void display() const
    {
        cout << str << endl;
    }
    void upit()
    {
        __int16 i(0);
        for (; i < strlen(str);)
            *(str + i++) = toupper(*(str + i));
        str[i] = 0;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    String st("Hello, World!");
    st.upit();
    st.display();
    system("pause");
    return 0;
}


Номер 3

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
#include <iostream>
#include <iomanip>
#include <string>
#include <windows.h>
using namespace std;
 
class days
{
protected:
    string name;
public:
    void setName()
    {
        cout << "Введите день недели: "; cin >> name;
    }
    void printName()
    {
        cout << endl << name;
    }
    string getName()
    {
        return name;
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    void bsort(days**, int);
    days* persPtr[7];
    int n = 0;
    char choice;
    do
    {
        persPtr[n] = new days;
        persPtr[n]->setName();
        n++;
        cout << "Продолжаем ввод (y/n)?";
        cin >> choice;
    }
    while (choice == 'y');
    cout << "\nНеотсортированный список:";
    for (int j = 0; j < n; j++)
        persPtr[j]->printName();
    bsort(persPtr, n);
    cout << "\nОтсортированный список:";
    for (int j = 0; j < n; j++)
        persPtr[j]->printName();
    cout << endl;
    system("pause");
    return 0;
}
 
void bsort(days** pp, int n)
{
    void order(days**, days**);
    int j, k;
    for (j = 0; j < n - 1; j++)
    for (k = j + 1; k < n; k++)
        order(pp + j, pp + k);
}
 
void order(days** pp1, days** pp2)
{
    if ((*pp1)->getName() >(*pp2)->getName())
    {
        days* tempptr = *pp1;
        *pp1 = *pp2;
        *pp2 = tempptr;
    }
}


Номер 4

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
#include <iostream>
#include <iomanip>
#include <string>
#include <windows.h>
using namespace std;
 
struct link
{
    int data;
    link* next;
};
 
class linklist
{
private:
    link* first;
public:
    linklist()
    {
        first = NULL;
    }
    ~linklist();
    void additem(int d);
    void display();
};
 
void linklist::additem(int d)
{
    link* newlink = new link;
    newlink->data = d;
    newlink->next = first;
    first = newlink;
}
 
linklist::~linklist()
{
    while (first)
    {
        cout << "Удаление объекта..." << endl;
        link* temp(first->next);
        delete first;
        first = temp;
    }
    cout << endl;
    system("pause");
}
 
void linklist::display()
{
    link* current = first;
    while (current)
    {
        cout << current->data << endl;
        current = current->next;
    }
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    linklist li;
    li.additem(25);
    li.additem(36);
    li.additem(49);
    li.additem(64);
    li.additem(77);
    li.display();
    cout << endl;
    return 0;
}


Номер 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
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
 
const __int32 MAX(20);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    void addarrays(const float[], const float[], float[]);
    float arr1[MAX], arr2[MAX], arr3[MAX];
    srand(time(0));
    for (int i(0); i < MAX;)
    {
        *(arr1 + i) = rand() % 20;
        *(arr2 + i++) = rand() % 50;
    }
    addarrays(arr1, arr2, arr3);
    for (int i(0); i < MAX;)
        cout << arr3[i++] << endl;
    cout << endl;
    system("pause");
    return 0;
}
 
void addarrays(const float mas1[], const float mas2[], float mas3[])
{
    cout << "Содержимое массива №3:\n" << endl;
    for (int i(0); i < MAX;)
        *(mas3 + i++) = *(mas1 + i) + *(mas2 + i);
}


Номер 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
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
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
 
__int16 compch(const char& ch1, const char& ch2)
{
    if (ch1 == ch2)
        return 0;
    else if (ch1 < ch2)
        return -1;
    else if (ch1 > ch2)
        return 1;
}
 
__int16 compstr(const char* str1, const char* str2)
{
    if (strlen(str1) < strlen(str2))
    {
        for (__int16 i(0); i < strlen(str1); i++)
        {
            switch (*str1++, *str2++)
            {
            case -1: return -1; break;
            case 1: return 1; break;
            }
        }
        return -1;
    }
    else if (strlen(str1) > strlen(str2))
    {
        for (__int16 i(0); i < strlen(str2); i++)
        {
            switch (compch(*str1++, *str2++))
            {
            case -1: return -1; break;
            case 1: return 1; break;
            }
        }
        return 1;
    }
    else if (strlen(str1) == strlen(str2))
    {
        for (__int16 i(0); i < strlen(str1); i++)
        {
            switch (compch(*str1++, *str2++))
            {
            case -1: return -1; break;
            case 1: return 1; break;
            }
        }
        return 0;
    }
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    char* str1("Привет!");
    char* str2("Привет всем!");
    switch (compstr(str1, str2))
    {
    case -1:
        cout << "1-ая строка идет первой по алфавиту." << endl;
        break;
    case 0:
        cout << "Строки эквивалентны." << endl;
        break;
    case 1:
        cout << "2-ая строка идет первой по алфавиту." << endl;
        break;
    }
    system("pause");
    return 0;
}


Номер 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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <string>
using namespace std;
 
class person
{
protected:
    float salary;
    string name;
public:
    void setName()
    {
        cout << "Введите имя: "; cin >> name;
        cout << "Введите оклад: "; cin >> salary;
    }
    void printName() const
    {
        cout << '\n' << name << ' ' << salary;
    }
    string getName() const
    {
        return name;
    }
    float getSalary() const
    {
        return salary;
    }
};
 
void salsort(person** mas, const __int16& n)
{
    for (__int16 i(0); i < n - 1; i++)
    {
        for (__int16 j(0); j < n - 1 - i; j++)
        {
            if ((*(mas + j))->getSalary() > (*(mas + j + 1))->getSalary())
            {
                person* temp(mas[j]);
                mas[j] = mas[j + 1];
                mas[j + 1] = temp;
            }
        }
    }
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    person* perarr[20];
    __int16 n(0); char ch;
    do
    {
        *(perarr + n) = new person;
        perarr[n++]->setName();
        cout << "Повторить? (1 - да, 0 - нет.) ";
        cin >> ch;
    } while (ch != '0');
    cout << "\nНеотсортированный список:";
    for (int i(0); i < n; i++)
        perarr[i]->printName();
    salsort(perarr, n);
    cout << "\n\nОтсортированный список:";
    for (int i(0); i < n; i++)
        perarr[i]->printName();
    cout << '\n' << endl;
    system("pause");
    return 0;
}


Номер 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
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
 
struct link
{
    int data;
    link* next;
};
 
class linklist
{
private:
    link* first;
public:
    linklist()
    {
        first = NULL;
    }
    void additem(int d);
    void display();
};
 
void linklist::additem(int d)
{
    if (!first)
    {
        first = new link;
        first->data = d;
        first->next = 0;
    }
    else
    {
        link *temp1(first), *temp2;
        while (temp1->next) temp1 = temp1->next;
        temp2 = new link;
        temp2->data = d;
        temp2->next = 0;
        temp1->next = temp2;
    }
}
 
void linklist::display()
{
    link* current = first;
    while (current)
    {
        cout << current->data << endl;
        current = current->next;
    }
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    linklist li;
    li.additem(25);
    li.additem(36);
    li.additem(49);
    li.additem(64);
    li.display();
    system("pause");
    return 0;
}


Номер 9 и 10

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
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand(time(0));
    cout << "Введите размерность матрицы:" << endl;
    unsigned __int16 n, m; cin >> n >> m;
    int** arr = new int *[n];
    for (int i(0); i < n; i++)
        *(arr + i) = new int[m];
    for (int i(0); i < n; i++)
    for (int j(0); j < m; j++)
        *(*(arr + i) + j) = rand() % 30;
    cout << endl;
    for (int i(0); i < n; i++)
    {
        for (int j(0); j < m; j++)
            cout << setw(3) << *(*(arr + i) + j);
        cout << endl;
    }
    cout << "\nВведите индекс элемента матрицы:" << endl;
    cin >> n >> m;
    cout << "Элемент матрицы на позиции " << n << ' ' << m 
         << " равен:" << endl;
    cout << arr[--n][--m];
    delete[] *arr;
    delete[] arr;
    cout << '\n' << endl;
    system("pause");
    return 0;
}


Номер 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
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
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
 
unsigned const __int16 MAX(9);
 
class array
{
    __int32** mas;
    static __int16 n;
public:
    array()
    {
        mas = new int*[MAX];
    }
    void add(__int32* temp)
    {
        if (n < MAX) *(mas + n++) = temp;
    }
    __int32& operator[](const __int16&) const;
    void show(void) const
    {
        cout << setw(7) << 1;
        for (__int16 i(1); i < MAX;)
        {
            cout << setw(4) << ++i;
        }
        cout << endl;
        for (__int16 i(0); i < 39; i++)
            cout << "-";
        cout << endl;
        for (__int16 i(0), c(i); i < MAX; i++, c += 10)
        {
            cout << setw(2) << c << '|';
            for (__int16 j(0); j < MAX;)
            {
                cout << setw(4) << *(*(mas + i) + j++);
            }
            cout << endl;
        }
    }
};
 
__int16 array::n(0);
 
__int32& array::operator[](const __int16& a) const
{
    return a % 10 ? *(*(mas + a / 10) + a % 10 - 1) : *(*(mas + a / 10));
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand(time(0));
    array a1;
    for (__int16 i(0); i < MAX; i++)
    {
        __int32* arr = new int[MAX];
        for (__int16 j(0); j < MAX;)
            *(arr + j++) = rand() % 30;
        a1.add(arr);
    }
    cout << "Исходная случайная матрица:\n" << endl;
    a1.show();
    cout << "\nВведите индекс одномерного массива для отображения: ";
    __int16 n; cin >> n;
    cout << a1[n] << '\n' << endl;
    system("pause");
    return 0;
}


Номер 12

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
#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;
 
const short MAX(50);
float fmemory[MAX];
short pmemory[MAX], fmem_top(0), pmem_top(0);
 
class Float
{
    short addr;
public:
    Float(float a)
    {
        fmemory[fmem_top] = a;
        addr = fmem_top++;
    }
    short operator&()
    {
        return addr;
    }
};
 
class ptrFloat
{
    short addr;
public:
    ptrFloat(short a)
    {
        pmemory[pmem_top] = a;
        addr = pmem_top++;
    }
    float& operator*()
    {
        return fmemory[pmemory[addr]];
    }
};
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    Float var1 = 1.234;
    Float var2 = 5.678;
    ptrFloat ptr1 = &var1;
    ptrFloat ptr2 = &var2;
    cout << " *ptr1 = " << *ptr1 << endl;
    cout << " *ptr2 = " << *ptr2 << endl;
    *ptr1 = 7.123;
    *ptr2 = 8.456;
    cout << " *ptr1 = " << *ptr1 << endl;
    cout << " *ptr2 = " << *ptr2 << endl;
    system("pause");
    return 0;
}


0
Artemio
2 / 2 / 1
Регистрация: 20.02.2015
Сообщений: 17
26.02.2015, 16:33 #198
Цитата Сообщение от Artemio Посмотреть сообщение
что с 12й задачей второй главы? при вводе 7.65 и при вводе 8.65 видим разные результаты - объясните магию эту..
и я не имею ввиду разницу между 7 и 8.. я о шиллингах и пенсах.
при использовании типа float - теряется 1 пенни, с double все хорошо.
0
Ferrari F1
=^_^=
571 / 458 / 94
Регистрация: 27.01.2015
Сообщений: 2,696
Записей в блоге: 1
Завершенные тесты: 1
27.02.2015, 17:45 #199
dicros,
1 вариант
mas[i] = mas[++i]
Естественно у тебя не получиться с такой коммандой, поскольку у тебя элемент присваивается сам себе.
Сперва выполняется инкремент. А потом выполняется присваивание mas[i] самому же себе.
0
Artemio
2 / 2 / 1
Регистрация: 20.02.2015
Сообщений: 17
01.03.2015, 18:47 #200
вот мое решение задачи 3.8 без ифов и корректно воспринимающее количество шиллингов и пенсов больше 12
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <conio.h>
using namespace std;
 
int main(){
    char ch;
 
    do{
 
        int funtov_, funtov_1, shillingov_, shillingov_1, pensov, pensov1;
        cout << "\nvvedite kolichestvo funtov, shillingov i pensov: \n";
        cin >> funtov_ >> shillingov_ >> pensov;
        cout << "vvedite kolichestvo funtov, shillingov i pensov: \n";
        cin >> funtov_1 >> shillingov_1 >> pensov1;
        pensov += pensov1;                         // сумма пенсов
        shillingov_ += shillingov_1 + pensov / 12; // сумма шиллингов с учетом пенсов, которых больше 12ти
        pensov %= 12;                              // конечная сумма пенсов. 
                                                   //если пенсов меньше 12ти, то и в шиллинги ничего не прибавится и
                                                   //  в пенсах останется то же число, что и было при суммировании
        funtov_ += funtov_1 + shillingov_ / 20;    // сумма фунтов с учетом шиллингов, которых больше 20ти
        shillingov_ %= 20;                         // конечная сумма шиллингов. 
                                                   //если шиллингов меньше 20ти, то и в фунты ничего не прибавится и
                                                   //  в шиллингах останется то же число, что и было при суммировании
        cout << "summa funtov, shillingov i pensov: \n"
            << funtov_ << " " << shillingov_ << ' ' << pensov << '\n';
        cout << "Prodolzhit? (y/n) \n";
        
    } while ((ch = _getche()) != ' ' && ch== 'y');
    cout << "\n";
return 0;
}


Добавлено через 18 часов 45 минут
решение задачи 11 главы 3 (пишу 3.11), представленное на стр 2 не корректное при отнимании большего числа от меньшего. если от числа 1 2 3(1фунт 2шиллинга 3пенса) отнять число 2 3 4 - долг должен быть -1 -1 -1(1фунт 1шиллинг 1пенс), а тут получается больше долг, что не соответствует честному долгу.
Кликните здесь для просмотра всего текста
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
 int a, b, c, e, f, x, y, z;
    double d, x1, y1, z1;
    char si;
    do {
        cout <<"Введите первое число, знак операции, второе число: "; cin >>a >>b >>c >>si >>d >>e >>f;
        //при умножении ввод выглядит так: 1 3 7 * 2.856 0 0
        switch (si)
            {
                case '+': x=a+d; y=b+e; z=c+f;
                    if (z>11) {++y; z%=12;}//если пенсов больше 11, то прибавляем к кол-ву шиллингов +1 и пенсы кратны 12
                    if (y>19) {++x; y%=20;}//если шиллингов больше 19, то фунтам прибавляем +1, а шиллинги кратно 12
                    break;
                case '-': x=a-d; y=b-e; z=c-f;
                    if (z<0) {--y; z+=12;}//если пенсов меньше 0, то вычитаем из шиллингов 1, а пенсы приводим к положительному числу прибавляя 12
                    if (y<0) {--x; y+=20;}//если шиллингов меньше 0, то вычитаем из фунтов 1, а шиллинги приводим к положительному числу прибавив 20
                    break;
                case '*': x1=a*d; y1=b*d; z1=c*d;
                    x=static_cast<int>(x1); y=static_cast<int>(y1); z=static_cast<int>(z1);
                    if (z>11) {y+=(z/12); z%=12;}//если пенсов больше 11, то получаем количество +шиллингов(z/12), далее к шиллингами прибавляем +шиллинги, и пенсы кратны 12
                    if (y>19) {x+=(y1/20); y%=20;}//если шиллингов больше 19, то получаем кол-во +фунтов(y/20), далее к фунтам прибавляем +фунты и шиллинги кратны 20
                    break;
            }
        cout <<x <<"." <<y <<"." <<z <<endl;
        cout <<"Еще раз? (y/n)" <<endl;
    } while ((si=_getche())!='n');

вот мой вариант :
Кликните здесь для просмотра всего текста
C++ (Qt)
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
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
 
int main(){
    char ch;
 
    do{
 
        int funtov_, funtov_1, shillingov_, shillingov_1, pensov, pensov1;
        char operation, ch;
 
        cout << "\n Enter the first sum of pouns, shillings and pence\n"
            << "operation(+, -, *, / ),\n";
        cin >> funtov_ >> shillingov_ >> pensov;
        cin >> ch;
        cout << "\n Enter the second sum of pouns, shillings and pence\n";
        switch (ch){
        case '+': 
 
            cin >>  funtov_1 >> shillingov_1 >> pensov1;
            pensov += pensov1;
            shillingov_ += shillingov_1 + pensov / 12;
            pensov %= 12;
            funtov_ += funtov_1 + shillingov_ / 20;    
            shillingov_ %= 20;  
            cout << "sum is: \n"
                << funtov_ << " " << shillingov_ << ' ' << pensov << '\n';
            break;
        case '-' :
            cin >> funtov_1 >> shillingov_1 >> pensov1;
            pensov += shillingov_ * 12 + funtov_ * 20 *12;
            pensov1 += shillingov_1 * 12 + funtov_1 * 20 * 12;
            pensov = (pensov - pensov1);
            shillingov_ = pensov / 12;
            funtov_ = shillingov_ / 20;
            pensov %= 12;
            shillingov_ %= 20;
            cout << "rasnost is: \n"
                << funtov_ << " " << shillingov_ << ' ' << pensov << '\n';
            break;
        }
        cout << "Prodolzhit? (y/n) \n";
    } while ((ch = _getche()) != ' ' && ch == 'y');
    cout << "\n";
    system("pause");
    return 0;
}

умножение не писал - не интересно, вот разность была интересной...
0
Ferrari F1
=^_^=
571 / 458 / 94
Регистрация: 27.01.2015
Сообщений: 2,696
Записей в блоге: 1
Завершенные тесты: 1
01.03.2015, 23:05 #201
Artemio
Вот дойдешь до массивов, там-то и начнется веселье)
0
dicros
1 / 1 / 1
Регистрация: 24.04.2014
Сообщений: 64
02.03.2015, 00:28 #202
Ferrari F1, В твоих решениях Глава 8 упр.4

if (double(a) + double(t1.a) < -z || double(a) + double(t1.a) > z)

double(a) - это на сколько я понимаю тоже самое что и static_cast<double>(a), только более компактно

Или я ошибаюсь?
0
Ferrari F1
=^_^=
571 / 458 / 94
Регистрация: 27.01.2015
Сообщений: 2,696
Записей в блоге: 1
Завершенные тесты: 1
02.03.2015, 08:32 #203
dicros
Да. Это явное приведение к типу double. Лафоре пишет об этом, что это сишный формат приведения типов.
И говорит, что static_cast<>() - это нововведение в С++. Но мне эти статик касты не нравятся слишком громоздко получаются.
0
DrOffset
7154 / 4295 / 969
Регистрация: 30.01.2014
Сообщений: 7,099
02.03.2015, 09:04 #204
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Лафоре пишет об этом, что это сишный формат приведения типов.
Сишный - это вот так:
C++
1
(double)a
Вот такое можно только в С++
C++
1
double(a)
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
И говорит, что static_cast<>() - это нововведение в С++. Но мне эти статик касты не нравятся слишком громоздко получаются.
Это специально так сделано, чтобы их видно было (и можно было найти текстовым поиском). Т.к. пользоваться ими нужно только по веским причинам.
0
Recrut_rf
9 / 9 / 0
Регистрация: 14.10.2014
Сообщений: 50
Завершенные тесты: 2
02.03.2015, 12:37 #205
Цитата Сообщение от DrOffset Посмотреть сообщение
Сишный - это вот так:
Код C++
1
(double)a
Вот такое можно только в С++
Код C++
1
double(a)
А я думал что это просто функции так работают, которые есть в классе. Ну то есть если нужно явное приведение для основных типов - используем static_cast. А для пользовательских типов нужно обязательно писать соответствующую функцию и её использовать..

Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Artemio
Вот дойдешь до массивов, там-то и начнется веселье)
Массивы - это ужас - особенно строковые
Я сейчас на 8 задании 9 главы застрял. Ну никак некомпилируется код со ссылками в функциях в классе Pstring2 . Все варианты с этой темы перепробовал - результат одинаков - нихрена не работает.
пример
Кликните здесь для просмотра всего текста

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <cstring>
#include <string.h>
using namespace std;
 
 
////////////////////////////////////////////////////////////////
class String
{
protected:
    static const int SZ=18;//максимальный размер строки
    char str[SZ];//сама строка
public:
    String()//конструктор без параметров
    {str[0]='\x0';}
    String(char s[])//конструктор с одним параметром
    {strcpy(str, s);}
    void display()//показ строки
    {
        cout <<str <<endl;
    }
    //перевод строки к обычному типу
    operator char*()
    {return str;}
};
///////////////////////////////////////////////////////////////
class Pstring:public String
{
public:
    Pstring():String()
    {}
    Pstring(char s[])
    {
        if(strlen(s)<SZ){
            strcpy(str, s);}
        if(strlen(s)>=SZ){
            for(int j=0; j<SZ; j++){
                if(j==(SZ-1)){
                    str[j]='\0';
                    continue;
                }
                str[j]=s[j];                
            }
        }
    }
    void display()
    {String::display();}
};
///////////////////////////////////////////////////////////////
class Pstring2: public Pstring
{
private:
    int number;//номер символа
    char simbol;//символ строки
public:
    Pstring2():Pstring()
    {}
    Pstring2(char s[]):Pstring(s)
    {}
    Pstring2& left(Pstring p2, int number)//в строку s2 помещаются n самых левых символов строки s1
    {
        for(int j=0; j<=number; j++){
            str[j]=p2[j];
            if(j==number){
                str[j]='\0';
            }
        }
        return str;
    }
    Pstring2& mid(Pstring p2, char sl, int n)//в строку s2 помещаются n символов строки s1 начиная с символа s
    {
        for(int j=0; j<strlen(p2); j++){
            if(p2[j]!=sl){
                continue;
            }else{
                for(int i=0; i<=n; i++){
                    str[i]=p2[j+i];
                    if(i==n){
                        str[i]='\0';
                        break;
                    }
                }
            }
        }
        return Pstring2(str);
    }
    Pstring2& right(Pstring p2, int n)//в строку s2 помещаются n самых правых символов строки s1
    {
        int t=strlen(p2)-n;
        for(int j=0; j<=strlen(p2); j++){
            str[j]=p2[j+t];
            if(j==strlen(p2)){
                str[j]='\0';
            }
        }
        return Pstring2(str);
    }
};
///////////////////////////////////////////////////////////////
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    Pstring s, s1;
    s="Шла саша по шоссе";  
    s.display();
    s1="Асталависта бэйби нау";
    s1.display();
    Pstring2 s2, s3, s4;
    s3.left(s1, 5);//пять символов слева
    s3.display();
    s2=s3.mid(s1, 'в', 7);//семь символов начиная с символа 'в'
    s2.display();
    s4.right(s1, 9);//девять крайних правых символов
    s4.display();
    cout <<endl;
    system("pause");
    return 0;
}


Убрал ссылки из функций - вроде заработало.
Мой вариант:
Кликните здесь для просмотра всего текста

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include <iostream>
#include <windows.h>
#include <string.h> 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
////////////////////////////////////////////////////
static const int SZ = 30;   // размер массива
//////////////////////////////////////////////
class String
{
    protected:
        char str [ SZ ];         // массив для хранения строки
        public:
            String () 
            { str [ 0 ] = '\x0'; }      // конструктор без параметров
            String ( char s [ ] ) 
            { strcpy ( str, s );  }    // сохраняем строку в массиве
            void display ( ) const    // показ строки
            { cout << str; }
            operator char*()
            {
                return str;
            }
};
//////////////////////////////////////
class Pstring : public String
{
    public:
        Pstring() : String()
        {     }
        Pstring(char s [ ]) 
        {
            if(strlen(s) > SZ -1)
            {
                cout << "\nПереполнение!";
                system("pause"); exit(1); 
            }
            else
            strcpy ( str, s );
        }
    
    void display()
    {String::display();}
};
//////////////////////////////////
class Pstring2 : public Pstring
{
    public:
        Pstring2() : Pstring()
        {     }
        Pstring2(char s[]) : Pstring(s)
        {     }
        
   Pstring2 left(Pstring s1, int n)
    {
        for(int j=0; j<=n; j++){
            str[j]=s1[j];
            if(j==n)
            {
                str[j]='\0';
            }
        }
        return Pstring2(str);
    }
    Pstring2 mid(Pstring s1, char s, int n)//в строку s2 помещаются n символов строки s1 начиная с символа s
    {
        for(int j=0; j<strlen(s1); j++)
        {
            if(s1[j]!= s)
            {
                continue;
            }
            else
            {
                for(int i=0; i<=n; i++)
                {
                    str[i]=s1[j+i];
                    if(i==n){
                        str[i]='\0';
                        break;
                    }
                }
            }
        }
        return Pstring2(str);
    }
    Pstring2 right(Pstring s1, int n)//в строку s2 помещаются n самых правых символов строки s1
    {
        int t=strlen(s1)-n;
        for(int j=0; j<=strlen(s1); j++){
            str[j]=s1[j+t];
            if(j==strlen(s1))
            {
                str[j]='\0';
            }
        }
        return Pstring2(str);
    }
};
int main(int argc, char** argv)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    Pstring ps;
    Pstring2 ps1, ps2, ps3;
    char ch;
    int n;
    ps = "Шла саша по шоссе";  
    ps.display();
    cout << "\nВведите число: ";
    cin >> n;
    ps1.left(ps, n);
    ps1.display ( );
    cout << "\n Введите символ: ";
    cin >> ch;
    ps2.mid(ps, ch, n);
    ps2.display ( );
    ps3.right(ps, n);
    ps3.display ( );
    cout << endl;
    system("pause");
    return 0;
}


Ferrari F1 твой код компилируется но нормально не работает...

А вот этот уже нет
Кликните здесь для просмотра всего текста

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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <cstring>
#include <string.h>
using namespace std;
 
 
////////////////////////////////////////////////////////////////
class String
{
protected:
    static const int SZ=18;//максимальный размер строки
    char str[SZ];//сама строка
public:
    String()//конструктор без параметров
    {str[0]='\x0';}
    String(char s[])//конструктор с одним параметром
    {strcpy(str, s);}
    void display()//показ строки
    {
        cout <<str <<endl;
    }
    //перевод строки к обычному типу
    operator char*()
    {return str;}
};
///////////////////////////////////////////////////////////////
class Pstring:public String
{
public:
    Pstring():String()
    {}
    Pstring(char s[])
    {
        if(strlen(s)<SZ){
            strcpy(str, s);}
        if(strlen(s)>=SZ){
            for(int j=0; j<SZ; j++){
                if(j==(SZ-1)){
                    str[j]='\0';
                    continue;
                }
                str[j]=s[j];                
            }
        }
    }
    void display()
    {String::display();}
};
///////////////////////////////////////////////////////////////
class Pstring2: public Pstring
{
private:
    int number;//номер символа
    char simbol;//символ строки
public:
    Pstring2():Pstring()
    {}
    Pstring2(char s[]):Pstring(s)
    {}
    Pstring2& left(Pstring p2, int number)//в строку s2 помещаются n самых левых символов строки s1
    {
        for(int j=0; j<=number; j++){
            str[j]=p2[j];
            if(j==number){
                str[j]='\0';
            }
        }
        return str;
    }
    Pstring2& mid(Pstring p2, char sl, int n)//в строку s2 помещаются n символов строки s1 начиная с символа s
    {
        for(int j=0; j<strlen(p2); j++){
            if(p2[j]!=sl){
                continue;
            }else{
                for(int i=0; i<=n; i++){
                    str[i]=p2[j+i];
                    if(i==n){
                        str[i]='\0';
                        break;
                    }
                }
            }
        }
        return Pstring2(str);
    }
    Pstring2& right(Pstring p2, int n)//в строку s2 помещаются n самых правых символов строки s1
    {
        int t=strlen(p2)-n;
        for(int j=0; j<=strlen(p2); j++){
            str[j]=p2[j+t];
            if(j==strlen(p2)){
                str[j]='\0';
            }
        }
        return Pstring2(str);
    }
};
///////////////////////////////////////////////////////////////
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    Pstring s, s1;
    s="Шла саша по шоссе";  
    s.display();
    s1="Асталависта бэйби нау";
    s1.display();
    Pstring2 s2, s3, s4;
    s3.left(s1, 5);//пять символов слева
    s3.display();
    s2=s3.mid(s1, 'в', 7);//семь символов начиная с символа 'в'
    s2.display();
    s4.right(s1, 9);//девять крайних правых символов
    s4.display();
    cout <<endl;
    system("pause");
    return 0;
}


Выдаёт ошибку: 70 16 [Error] invalid initialization of non-const reference of type 'Pstring2&' from an rvalue of type 'char*'

После поиска решений данной проблемы в интернете пришёл к выводу что все эти проблемы из - за использования в качестве компилятора Dev C++.
0
Ferrari F1
=^_^=
571 / 458 / 94
Регистрация: 27.01.2015
Сообщений: 2,696
Записей в блоге: 1
Завершенные тесты: 1
02.03.2015, 13:10 #206
Recrut_rf
После поиска решений данной проблемы в интернете пришёл к выводу что все эти проблемы из - за использования в качестве компилятора Dev C++.
Да, эта ошибка связана с компилятором, поскольку я прогаю в Visual Studio 2013 и компилируется нормально.

Кликните здесь для просмотра всего текста
Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++"
0
Recrut_rf
9 / 9 / 0
Регистрация: 14.10.2014
Сообщений: 50
Завершенные тесты: 2
02.03.2015, 14:10 #207
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
я прогаю в Visual Studio 2013
Может тоже её установить?
Правда бесплатных версий вроде как нет а денег тратить неохота... поэтому только торрент эдишн ... Да и многие пишут что для новичков она не очень подходит - слишком много лишнего.
Зато проблем с компиляцией меньше...
0
Ferrari F1
=^_^=
571 / 458 / 94
Регистрация: 27.01.2015
Сообщений: 2,696
Записей в блоге: 1
Завершенные тесты: 1
02.03.2015, 17:44 #208
Recrut_rf
Я раньше прогал на 2008, очень не понравилась. Неудобная студия.
Месяца 2 назад скачал с рутрекера 2013 Ultimate с ключом в комплекте. Сижу на ней, очень нравится!
0
Artemio
2 / 2 / 1
Регистрация: 20.02.2015
Сообщений: 17
03.03.2015, 07:54 #209
Цитата Сообщение от Recrut_rf Посмотреть сообщение
Правда бесплатных версий вроде как нет
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Месяца 2 назад скачал с рутрекера 2013 Ultimate с ключом в комплекте
у меня бесплатная официальная - раз в 90 дней надо вводить пароль и логин с msdn и все)
не читай, что подходит, а что нет для новичков.. не используй лишнее)сам полгода в командной строке все компилировал, сейчас вот на студию пересел)
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,929
03.03.2015, 09:31 #210
Цитата Сообщение от Recrut_rf Посмотреть сообщение
Правда бесплатных версий вроде как нет
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
Месяца 2 назад скачал с рутрекера 2013 Ultimate с ключом в комплекте.
Цитата Сообщение от Artemio Посмотреть сообщение
у меня бесплатная официальная - раз в 90 дней надо вводить пароль и логин с msdn и все)
Откройте для себя новый мир http://www.visualstudio.com/ru-ru/pr...munity-vs.aspx
Бесплатно для некоммерческого использования, с полным функционалом, полная версия, крякать не надо, официально.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2015, 09:31
Привет! Вот еще темы с ответами:

Объектно ориентированное программирование - C++
Нужно решить задачи. Помогите кому это не сложно, очень нужно. Вот задачи: 1) Создание и редактирование классов. Нужно создать класс...

Объектно-ориентированное программирование - C++
Составить описание класса одномерных массивов строк, каждая строка которых задается длиной и указателем на выделенную для нее память....

Объектно-ориентированное программирование - C++
На основе объектного подхода создать программу которая рассчитывает значения степенных функций y=sqr(x), корень 3, 4, 5 степеней. В...

Объектно ориентированное программирование. - C++
Нужно решить задачи. Помогите кому это не сложно, очень нужно. Вот задачи: 1) Создание и редактирование классов. Нужно создать класс...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.03.2015, 09:31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru