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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 149, средняя оценка - 4.92
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
#1

решил изучить с++ - C++

27.03.2011, 17:19. Просмотров 18825. Ответов 179
Метки нет (Все метки)

всем привет, решил начать изучать с++, скачал MSVC++ 2010 express, какую литературу вы посоветуете для изучения данного языка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2011, 17:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос решил изучить с++ (C++):

Решил изучить новую низкоуровневую область в программировании, что посоветуете? - C++
Решил на досуге начинать изучать что - то новое для повышения так сказать образованности :) Конечно же есть более реалистичные...

Какие книги лучше всего изучить чтобы хорошо изучить с++ - C++
Хотелось бы открыть тему, либо если она уже есть подскажите ссылку. Хочу собрать список книг чтобы изучить профессионально с++, если...

Хочу изучить C++ - C++
Начал читать книгу С++ на начинающих можно сказать чайников. Не могу скомпилировать. Хотел бы найти знающего человека ля помощи и...

2 изучить работу с массивом - C++
Нам задали две лабораторные по С++ , с которыми у меня возникли трудности Вторая состоит из двух частей(задание прилоено ниже в лаб...

Cтоит ли после изучения Си++ изучить Си - C++
Подскажите, стоит ли после изучения Си++ изучить Си? Ведь в Си++ поддерживаются все сишные команды (например, alloc, realloc и т.д.) Но в...

Стоит ли изучить программирование в стиле С? - C++
Стоит ли изучит программирование в стиле С? В книге написано про строки в стиле С и настоятельно рекомендуется не использовать их при...

179
IrineK
Заблокирован
10.04.2011, 07:40 #121
а вот знак фунта так и не получилось написать =((
Если это вас как-то утешит - вы можете написать знак доллара.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
double rouble;
cout << "Roubles: ";
cin >> rouble;
cout << fixed<< setprecision(2) << "Dollars: " << rouble/28.1211 << (char)36 << endl;
 
system("pause");
return 0;
}
0
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
10.04.2011, 09:53 #122
Можно просто использовать # (октоторп часто используют в случаях, когда в системе отсутствует техническая возможность ввода символа фунта) wiki
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
10.04.2011, 11:05 #123
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <locale>
 
int main()
{
  typedef std::moneypunct<char> Moneypunct;
 
  std::locale enGBLoc("en_GB.utf8"); // имя локали зависит от используемой системы
  const Moneypunct& enGBMonPunct = std::use_facet<Moneypunct>(enGBLoc);
  std::cout << "Symbol: " << enGBMonPunct.curr_symbol() << std::endl;
 
  return 0;
}
http://liveworkspace.org/code/61bd54098140cc13953982936ec69993
1
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.04.2011, 11:14 #124
Не хочу создавать отдельную тему, поэтому напишу здесь...
Условие:Есть число 2.7182818284590452353602875
В input.txt лежит число а (0<=a<=25)
Нужно округлить число до а точек после запятой
Попробовал через fixed << setprecision(a), но при большом а не работает.
Тогда сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
main(){
    int a,i;
    char s[35]="2.7182818284590452353602875";
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    cin >> a;
    for (i = 27; i > a+1; i--)
        if ((s[i])>=53) {s[i]='0'; s[i-1]++; }//Если число больше 5, то обнуляю его и увеличиваю предыдущее
     if (a)       //если введенное число не равно нулю, то вывожу отредактированную строку
        {
        for (i=0; i < a+2; i++)
            cout << s[i];
             }
     else cout << 3;    //либо просто 3
    return 0;
}
Упорно проваливается на одном из тестов...
Около часа сидел и проводил тесты, ошибок так и не нашел.
Проверяющая система компилирует с помощью Microsoft Visual c++ 7.1, у меня RAD Studio 2010(Builder)...
Начинаю подозревать билдер, который компилирует все что видит, остальные компиляторы так не умеют...
0
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,982
10.04.2011, 11:53 #125
diagon, решал я эту задачу, на acmp помоему, тесты все прошла.
Я сначала решал как вы, шел с конца циклом и округлял, 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
#include <iostream>
#include <fstream>
#include <string>
 
int main()
{
    std::ifstream ifs ("INPUT.TXT");
    std::ofstream ofs ("OUTPUT.TXT");
    std::string str ("2.7182818284590452353602875");
 
    int N;
    ifs >> N;
 
    if (N == 0) ofs << "3";
        else
        {
            if (int (str [N + 2] >= 53))
                str [N + 1] = char (int (str[N + 1]) + 1);
 
            for (int i = 0; i < N + 2; i++)
                ofs << str [i];
        }
 
    ifs.close ();
    ofs.close ();
    return 0;
}
1
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
10.04.2011, 23:10  [ТС] #126
возник такой вопрос, в книге написано, что в условных операторах используются операции отношения, т.е. больше меньше, равно, не равно, и тд. и вот увидел такой пример где было написано: while(cin>>some_word)

это же уже не операция отношения, в книге не было написано, что можно так же использовать помимо операции отношения, операцию >>, может кто-нибудь сказать какие еще операции поддерживают условные операторы, помимо операций отношения и почему в книгах не описано полного списка операций? посмотрел дейтла, лафоре, шилдта, в них написано только про операции отношения.
0
Mr.X
Эксперт С++
3050 / 1695 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
11.04.2011, 02:49 #127
Цитата Сообщение от Olejeg85 Посмотреть сообщение
возник такой вопрос, в книге написано, что в условных операторах используются операции отношения, т.е. больше меньше, равно, не равно, и тд. и вот увидел такой пример где было написано: while(cin>>some_word)
это же уже не операция отношения, в книге не было написано, что можно так же использовать помимо операции отношения, операцию >>, может кто-нибудь сказать какие еще операции поддерживают условные операторы, помимо операций отношения и почему в книгах не описано полного списка операций? посмотрел дейтла, лафоре, шилдта, в них написано только про операции отношения.
При чем тут операции (то бишь операторы)? Суть в том, что условное выражение может быть любым, при условии, что результат его вычисления может быть преобразован к типу bool. В вашем примере оператор >> возвращает ссылку на объект std::cin, который может быть преобразован к типу bool, так как у него есть функция-член operator void*(), т.е. оператор преобразования к типу void*, возвращающая ненулевой указатель в случае успешного ввода и нулевой в противном случае, который и преобразуется к типу bool.
1
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
12.04.2011, 11:22  [ТС] #128
#include <iostream>

using namespace std;

int main()
{
int years=0;
double stavka=0.0, procent=0.0, vklad=0.0;

cout << "Vvedite nachalnyi vklad: ";
cin >> vklad;
cout << "Vvedite chislo let: ";
cin >> years;
cout << "Vvedite procentnuy stavky: ";
cin >> stavka;

procent=stavka/100;
for (int var = 0; var < years; var++)
{
vklad = vklad + (vklad * procent);
}
cout << "cherez " << years << " let vy poluchite " << vklad << " dollarov." << endl;

system("pause");
return 0;

}

если сумма в итоге получается больше 1 миллиона то выводит такой ответ:
Vvedite nachalnyi vklad: 1000000
Vvedite chislo let: 10
Vvedite procentnuy stavky: 5.5
cherez 10 let vy poluchite 1.70814e+006 dollarov.
Для продолжения нажмите любую клавишу . . .

как сделать, чтобы нормально сумму писал, если она больше миллиона?
0
rangerx
1935 / 1544 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
12.04.2011, 11:36 #129
C++
1
cout << "cherez " << years  << " let vy poluchite " << fixed << vklad << " dollarov." << endl;
C++
1
2
cout.setf(std::ios::fixed);
cout << "cherez " << years  << " let vy poluchite " << vklad << " dollarov." << endl;
0
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
12.04.2011, 21:46  [ТС] #130
Цитата Сообщение от rangerx Посмотреть сообщение
C++
1
cout << "cherez " << years  << " let vy poluchite " << fixed << vklad << " dollarov." << endl;
C++
1
2
cout.setf(std::ios::fixed);
cout << "cherez " << years  << " let vy poluchite " << vklad << " dollarov." << endl;
спасиб, но единственный косяк после . много знаков выводит теперь типа 7343233.004343
0
neske
1502 / 869 / 84
Регистрация: 26.03.2010
Сообщений: 2,982
12.04.2011, 22:17 #131
Olejeg85, http://www.cplusplus.com/reference/iostream/manipulators/setprecision/
0
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
19.04.2011, 19:08  [ТС] #132
при копировании значений одного объекта в другой объект, например part3=part2; вызывается конструктор копирования по умолчанию или нет?
вопрос возник потому что в книге р.лафоре написано, что в этот момент вызывается конструктор копирования по умолчанию, а в шилдте написано, что это обслуживается оператором присваивания, а не конструктором копий.
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
19.04.2011, 20:26 #133
Смотря где так записано.
Если при объявлении совершается инициализация, т.е.
C++
1
MyClass MyObject2 = MyObject1;
, то да, вызывается конструктор коппи, т.е. эта запись эквивалентна
C++
1
MyClass MyObject2(MyObject1);
Если же объект уже сконструирован и эта запись встречается просто в тексте исходного кода, то отработает оператор присваивания.
0
Olejeg85
13 / 10 / 0
Регистрация: 27.03.2011
Сообщений: 164
20.04.2011, 17:48  [ТС] #134
Цитата Сообщение от silent_1991 Посмотреть сообщение
Смотря где так записано.
Если при объявлении совершается инициализация, т.е.
C++
1
MyClass MyObject2 = MyObject1;
, то да, вызывается конструктор коппи, т.е. эта запись эквивалентна
C++
1
MyClass MyObject2(MyObject1);
Если же объект уже сконструирован и эта запись встречается просто в тексте исходного кода, то отработает оператор присваивания.
спасиб

Добавлено через 20 часов 6 минут
регистрация класса окна:
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
/*==================================================================== WNDCLASSEX  wndclass ;               
#     wndclass.cbSize        = sizeof (wndclass) ;       
#     wndclass.style        = CS_HREDRAW | CS_VREDRAW ;             
#     wndclass.lpfnWndProc  = WndProc ;                 
#     wndclass.cbClsExtra    = 0 ;           
#     wndclass.cbWndExtra    = 0 ;           
#     wndclass.hInstance    = hInstance ;         
#     wndclass.hIcon        = LoadIcon (NULL, IDI_APPLICATION) ;   
#     wndclass.hCursor      = LoadCursor (NULL, IDC_ARROW) ;     
#     wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
#     wndclass.lpszMenuName  = NULL ;           
#     wndclass.lpszClassName = szAppName ;  //имя класса     
#     wndclass.hIconSm      = LoadIcon (NULL, IDI_APPLICATION) ;   
#     RegisterClassEx (&wndclass) ;           
#                    
======================================================================*/
 
/*====================================================================
#   WNDCLASS wc;               
#   wc.hInstance=This;             
#   wc.lpszClassName=WinName;           
#   wc.lpfnWndProc=WndProc;             
#   wc.style=CS_HREDRAW|CS_VREDRAW;           
#   wc.hIcon=LoadIcon(NULL, IDI_APPLICATION);       
#   wc.hCursor=LoadCursor(NULL, IDC_ARROW);         
#   wc.lpszMenuName=NULL;             
#   wc.cbClsExtra=0;             
#   wc.cbWndExtra=0;             
#   wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);       
#   if(!RegisterClass(&wc)) return 0;         
======================================================================*/
 
/*====================================================================
# WNDCLASSEX wc =                 
#   {                     
#       sizeof(WNDCLASSEX),               
#       CS_OWNDC,                 
#       MsgProc,                 
#       0, 0,                   
#       NULL, NULL, LoadCursor(NULL, IDC_ARROW),         
#       (HBRUSH)(COLOR_APPWORKSPACE),             
#       NULL, title,                 
#       NULL,                   
#   };                   
#   RegisterClassEx( &wc );               
======================================================================*/
чем они все три отличаются? почему в одном пишется wndclass в другом wndclassex, параметров 12 инициализировано должно быть, в одном всего 10, а не 12, чем отличаются записи?
и описание параметров может быть в любой последовательности или только в одном порядке все время пишется?
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
20.04.2011, 17:59 #135
Olejeg85, Что значит описание параметров? Зависит от конкретной функции.
Передача параметров должна осуществляться в точности том порядке, который написан при объявлении/определении функции (не учитывая значений по умолчанию).
0
20.04.2011, 17:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2011, 17:59
Привет! Вот еще темы с ответами:

Как школьнику изучить программирование? - C++
Самостоятельно изучила основы С и С++. Как продолжить изучение, если ты школьник? Идти на дорогостоящие курсы нет денег.

Изучить VC++ вдоль и поперек в наикратчайший срок - C++
Здравствуйте. Решил я таки в 30 лет после 10 летнего опыта администрирования вин, никс систем и программированию в вэбе хайлоад взяться...

За какое время можно досканально изучить C++ - C++
Народ здравствуйте хотелось бы задать вам вопрос &quot;За какое время можно досканально изучить C++&quot; имея способности и уделяя 20-30 часов в...

Какую программу нужно что бы изучить С++ - C++
Мне друг сказал что это хороший форум Так вот хочу спросить Какую программу нужно что бы изучить С++ Помогите а то уже второй день...


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

Или воспользуйтесь поиском по форуму:
135
Ответ Создать тему
Опции темы

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