Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/125: Рейтинг темы: голосов - 125, средняя оценка - 4.71
13 / 10 / 1
Регистрация: 27.03.2011
Сообщений: 164

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

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

Студворк — интернет-сервис помощи студентам
всем привет, решил начать изучать с++, скачал MSVC++ 2010 express, какую литературу вы посоветуете для изучения данного языка?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2011, 17:19
Ответы с готовыми решениями:

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

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

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

179
 Аватар для IrineK
2023 / 1641 / 425
Регистрация: 23.02.2011
Сообщений: 6,002
Записей в блоге: 25
10.04.2011, 07:40
Студворк — интернет-сервис помощи студентам
а вот знак фунта так и не получилось написать =((
Если это вас как-то утешит - вы можете написать знак доллара.

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
315 / 269 / 56
Регистрация: 27.08.2010
Сообщений: 553
10.04.2011, 09:53
Можно просто использовать # (октоторп часто используют в случаях, когда в системе отсутствует техническая возможность ввода символа фунта) wiki
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
10.04.2011, 11:05
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/... 936ec69993
1
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
10.04.2011, 11:14
Не хочу создавать отдельную тему, поэтому напишу здесь...
Условие:Есть число 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
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
10.04.2011, 11:53
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
13 / 10 / 1
Регистрация: 27.03.2011
Сообщений: 164
10.04.2011, 23:10  [ТС]
возник такой вопрос, в книге написано, что в условных операторах используются операции отношения, т.е. больше меньше, равно, не равно, и тд. и вот увидел такой пример где было написано: while(cin>>some_word)

это же уже не операция отношения, в книге не было написано, что можно так же использовать помимо операции отношения, операцию >>, может кто-нибудь сказать какие еще операции поддерживают условные операторы, помимо операций отношения и почему в книгах не описано полного списка операций? посмотрел дейтла, лафоре, шилдта, в них написано только про операции отношения.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
11.04.2011, 02:49
Цитата Сообщение от Olejeg85 Посмотреть сообщение
возник такой вопрос, в книге написано, что в условных операторах используются операции отношения, т.е. больше меньше, равно, не равно, и тд. и вот увидел такой пример где было написано: while(cin>>some_word)
это же уже не операция отношения, в книге не было написано, что можно так же использовать помимо операции отношения, операцию >>, может кто-нибудь сказать какие еще операции поддерживают условные операторы, помимо операций отношения и почему в книгах не описано полного списка операций? посмотрел дейтла, лафоре, шилдта, в них написано только про операции отношения.
При чем тут операции (то бишь операторы)? Суть в том, что условное выражение может быть любым, при условии, что результат его вычисления может быть преобразован к типу bool. В вашем примере оператор >> возвращает ссылку на объект std::cin, который может быть преобразован к типу bool, так как у него есть функция-член operator void*(), т.е. оператор преобразования к типу void*, возвращающая ненулевой указатель в случае успешного ввода и нулевой в противном случае, который и преобразуется к типу bool.
1
13 / 10 / 1
Регистрация: 27.03.2011
Сообщений: 164
12.04.2011, 11:22  [ТС]
#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
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
12.04.2011, 11:36
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
13 / 10 / 1
Регистрация: 27.03.2011
Сообщений: 164
12.04.2011, 21:46  [ТС]
Цитата Сообщение от 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
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
12.04.2011, 22:17
Olejeg85, http://www.cplusplus.com/refer... precision/
0
13 / 10 / 1
Регистрация: 27.03.2011
Сообщений: 164
19.04.2011, 19:08  [ТС]
при копировании значений одного объекта в другой объект, например part3=part2; вызывается конструктор копирования по умолчанию или нет?
вопрос возник потому что в книге р.лафоре написано, что в этот момент вызывается конструктор копирования по умолчанию, а в шилдте написано, что это обслуживается оператором присваивания, а не конструктором копий.
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
19.04.2011, 20:26
Смотря где так записано.
Если при объявлении совершается инициализация, т.е.
C++
1
MyClass MyObject2 = MyObject1;
, то да, вызывается конструктор коппи, т.е. эта запись эквивалентна
C++
1
MyClass MyObject2(MyObject1);
Если же объект уже сконструирован и эта запись встречается просто в тексте исходного кода, то отработает оператор присваивания.
0
13 / 10 / 1
Регистрация: 27.03.2011
Сообщений: 164
20.04.2011, 17:48  [ТС]
Цитата Сообщение от 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
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
20.04.2011, 17:59
Olejeg85, Что значит описание параметров? Зависит от конкретной функции.
Передача параметров должна осуществляться в точности том порядке, который написан при объявлении/определении функции (не учитывая значений по умолчанию).
0
13 / 10 / 1
Регистрация: 27.03.2011
Сообщений: 164
21.04.2011, 02:06  [ТС]
аа, кажись разобрался, в одном варианте использовалось старое описание класса RegisterClass или wndclass, а в двух других новое RegisterClassEx или wndclassEx

Добавлено через 8 часов 6 минут
жесть программирование с winapi сложно как-то дается после консольных приложений, это всем так или только у меня тяжело пошло в изучении или это только в начале так?
0
 Аватар для iama
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
21.04.2011, 07:31
Olejeg85, да что там тяжело? гуглишь определение функции, да и юзаешь ёё
1
13 / 10 / 1
Регистрация: 27.03.2011
Сообщений: 164
21.04.2011, 08:14  [ТС]
Цитата Сообщение от iama Посмотреть сообщение
Olejeg85, да что там тяжело? гуглишь определение функции, да и юзаешь ёё
да хотя бы тоже описание обработчика окна с функцией winmain пока привыкнешь к новым типам, какие параметры, когда и для чего описываются....
0
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 209
21.04.2011, 10:20
По сути там сложного ничего нет. Только огромное количество функций. Ты по какой книге изучаешь? Если не по Петцолду, советую перейти к его книге как можно раньше. Параллельно, чуть позже, можешь начать читать книгу Фень Юаня про программирование графики для Windows. Тоже хорошая книга.
0
 Аватар для Franz Crawl
5 / 5 / 0
Регистрация: 22.09.2010
Сообщений: 104
21.04.2011, 12:31
Olejeg85, ты хочешь создавать GUI на С++? Ну так скачай С++ Builder. Куда быстрей и проще.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.04.2011, 12:31

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

Как изучить WinSock
Есть ли годная литература для c++?

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

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

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


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

Или воспользуйтесь поиском по форуму:
140
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru