Форум Игромании

Форум Игромании (http://forum.igromania.ru/index.php)
-   Программирование (http://forum.igromania.ru/forumdisplay.php?f=243)
-   -   С/C++ (http://forum.igromania.ru/showthread.php?t=130835)

Elverion 23.06.2010 22:42

С/C++
 
Язык программирования C++

http://savepic.ru/1373910.gif

Официальные страницы:

C++ (Си++) — компилируемый статически типизированный язык программирования общего назначения. Поддерживает разные парадигмы программирования, но, в сравнении с его предшественником — языком Си, — наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «C++» происходит от Си (C), в котором унарный оператор ++ обозначает инкремент переменной.


Среда разработки



Пример программирования на C++
Скрытый текст:
Код:

#include <iostream>
#include <numeric>
#include <boost/iterator/counting_iterator.hpp>
#include <boost/iterator/transform_iterator.hpp>
 
int odd(int i)
{
  return 2 * i + 1;
}
 
int square(int i)
{
  return i * i;
}
 
typedef boost::counting_iterator <int> counter;
typedef boost::transform_iterator <int (*)(int), counter> transformer;
 
transformer odds(int n)
{
  return transformer(counter(n), odd);
}
 
transformer squares(int n)
{
  return transformer(counter(n), square);
}
 
int main()
{
  using namespace std;
 
  cout << "Enter vector length: ";
  int n; cin >> n;
 
  cout << inner_product( odds(0), odds(n), squares(0), 0 ) << endl;
}





FAQ
Скрытый текст:
Q.: Зачем нужна тема?
A.: Здесь вам могут помочь понять, местами просто помочь, местами научить. Только помните: решать задачи и писать весь код за вас никто не будет.



Если вы хотите помощи — вставляйте непонятный вам код в тег [spoiler][code][/code][/spoiler].


Полная статья на "Википедии".

Redlle 16.09.2012 16:22

Всем привет :)
Есть тут люди знакомые с MPI (параллельное прог-е)?
Если есть, то нужен ваш совет:

Есть hello world для mpi реализации MPICH2 который на ура компилируются в кодблоксе и запускается ч/з ком. строку с параметрами "mpiexec.exe -n 5 D:\hw.exe" тоже, но тут возникает один нюанс:
"Программа должна выводить свой ранг из числа действующих процессоров и как ни странно она это делает, но делает очень криво в том смысле, что каждый раз строчки выводятся в разном порядке то бишь - может ( 0 из 3, 2 из 3, 1 из 3), а может может ( 1 из 3, 0 из 3, 2 из 3) и так далее.."

Пытался зацикливать программу до тех пор пока 1вым не будет 0 пц, но все бесполезно.
Вот код программки:


Скрытый текст:
PHP код:

#include <iostream>
#include "mpi.h"

using namespace std;

int main(int argcchar *argv[])
{

  
int pc_rank,
      
pc_size;

    
MPI_Init(&argc, &argv);

    
MPI_Comm_rank(MPI_COMM_WORLD, &pc_rank);
    
MPI_Comm_size(MPI_COMM_WORLD, &pc_size);

           
cout<<"\nHello! I'm rank "<<pc_rank<<" of "<<pc_size<<" processor";

    
MPI_Finalize();

    return 
0;





Вот собственно и вопрос кто-нибудь знает, как заставить программу работать с пц по порядку?

И еще вопрос на засыпку, если в код добавить ввод с клавиатуры, то в самом начале на косоли будет мигать символ ввода без всяких пояснений, и если человек догадается, что ему все-таки предложили что-то ввести и он нажмет любую цифру, то после этого программа выведет, что нужно было ввести и закончит свою работу, например:

Скрытый текст:
PHP код:

         if(pc_rank==0){

            
printf("\n PC size: %i ",pc_size);
            
printf("\n Enter the number of partitions:\n [> ");
            
scanf("%i",&n);

            
startwtime MPI_Wtime();
         } 


тут программа сначала выдаст: _, а далее после ввода Enter the number of partitions:\n [>

Как сделать так, чтобы она сначала выводила, что ввести, а потом предлагала? А не наоборот, как это происходит сейчас

P.S. буду очень благодарен тому человеку, кто поможет решить данный проблемы, они хоть и не существенный, но очень портят все логические задумки :(

PC_GAMER 23.10.2012 17:37

Задание:
Скрытый текст:
Написать программу, функция main которой включает вызов 3х функций:
- 1-я функция осуществляет ввод исходных данных;
- 2-я функция осуществляет расчет результатов;
- 3-я функция выводит результаты расчета на экран.
В программе использовать два способа передачи параметров в функцию: по значению и по адресу.
Составьте программу –временной интервал. Заданы моменты начала и конца некоторого промежутка времени в часах и минутах (в пределах одних суток). Найти продолжительность этого промежутка в тех же единицах измерения.

Сделал:
Скрытый текст:
// 222.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <iostream>
using namespace std;

double Rezult(double hour1, double min1, double hour2, double min2);// параметр по назначению и по адресу
double Cin(); void Cout(double HM); // функция ввода и вывода
int main() {
setlocale( LC_ALL,"Russian" );
double hour1, min1, hour2, min2;
double HM,r;
r=Cin(); //вызов функции ввода
HM=Rezult(hour1, min1, hour2, min2);
Cout(HM); //вызов функции вывода
cin>>hour1;
cin>>min1;
return 0;}
double Rezult (double hour1, double min1, double hour2, double min2) { // задание функции
double HM;
HM=(hour2-hour1)*60+(min2-min1);
return HM;}
double Cin(){
double b;
double g;
cout<<"Введите начальное время: ";
cin>>b;
cout<<"Введите конечное время: ";
cin>>g;
return 0;}
void Cout(double HM){
cout<<"Результат в минутах: "<<HM;
}


Выдаёт ошибку:
Скрытый текст:
Run-Time Check Failure #3 - The variable 'min2' is being used without being initialized.
Run-Time Check Failure #3 - The variable 'hour2' is being used without being initialized.
Run-Time Check Failure #3 - The variable 'min1' is being used without being initialized.
Run-Time Check Failure #3 - The variable 'hour1' is being used without being initialized.
Поток 'Поток Win32' (0x15a0) завершился с кодом -1073741510 (0xc000013a).
Программа "[5520] 222.exe: Машинный код" завершилась с кодом -1073741510 (0xc000013a).

Подскажите пожалуйста, что я не правильно написал?

Keltar 23.10.2012 18:35

Цитата:

Сообщение от PC_GAMER (Сообщение 10589331)
hour1, min1, hour2, min2;

у тебя переменным ничего не присвоено, задай начальные значения. Т.е эти строки
Цитата:

cin>>hour1;
cin>>min1;
точно должны быть раньше, чем HM=Rezult(hour1, min1, hour2, min2);
к тому же hour2, min2; нигде не заданы вообще.

PC_GAMER 23.10.2012 21:03

Цитата:

Сообщение от Keltar (Сообщение 10589422)
у тебя переменным ничего не присвоено, задай начальные значения. Т.е эти строки

точно должны быть раньше, чем HM=Rezult(hour1, min1, hour2, min2);
к тому же hour2, min2; нигде не заданы вообще.

Мне ведь нужно вписывать свои значения, а если их я задам, то какой смысл мне создавать ещё и ввод?
Я б вообще забил, но мне нужно это всё использовать :lamo:
Help me, please :frown:

CMETAHA 23.10.2012 22:17

PC_GAMER, Прежде чем использовать переменные их нужно инициализировать. Ты же сначала передаёшь переменные в функцию в качестве параметра, и только потом их инициализируешь. Собственно об этом и говорят ошибки компилятора.

Анкар 24.10.2012 20:17

Меня заверили, что компилятор никогда не поставит никакую переменную на нечетную позицию, благодаря выравниванию и несколько последних битов можно без проблем считать лишней памятью. Для своих замыслов решил это реализовать.
Скрытый текст:
Код:

                inline bool link_up(node* a){
                        return reinterpret_cast<uint_64>(a) & 1;
                }

                inline node* tag(node* a){
                        uint_64 q = reinterpret_cast<uint_64>(a);
                        return reinterpret_cast<node*>(q | 1);
                }

                inline node* untg(node* a){
                        uint_64 q = reinterpret_cast<uint_64>(a);
                        return reinterpret_cast<node*>(q - (q&1));//Здесь
                }

Отчего-то untg для NULL выдает огромный адрес, хотя должен работать как 0 - 0. Я в раздумьях.
-
UPD. Дело в приоритетах операций. Поправил во имя истории.

PC_GAMER 04.11.2012 09:56

Задали курсовую работу по C++. Тема "Эмуляция пункта меню MS Word: формат-шрифт". Тему написал, чтобы вы имели представление, что я имею ввиду.
У нас работы с визуальным оформлением в С++ ещё не было, я будет как раз тогда, когда я буду сдавать работу....
Подскажите пожалуйста статьи, учебники или что-нибудь ещё, что поможет разобраться в этой теме, хотя бы немного.

GURON27 05.11.2012 10:19

Всем привет! Подскажите хороший компилятор.

CMETAHA 05.11.2012 13:34

GURON27, GCC

Анкар 05.11.2012 14:52

CMETAHA, тогда уж http://www.mingw.org/ Хотя он а винде тормозной, ппц.

Hast 06.11.2012 21:03

Цитата:

Сообщение от Анкар (Сообщение 10607924)
CMETAHA, тогда уж http://www.mingw.org/ Хотя он а винде тормозной, ппц.

Чем он тормозной? Я этим компилятором все лабораторные в универе делал, все нормально было.

[CCCP] Monster 07.11.2012 11:12

GURON27, Смотря для чего. G++ может полностью раскрыть себя только в составе unix-систем, имеет ряд существенных недостатков, вроде монолитной компоновки транслятора и недостаточных интеграционных возможностей, что не дает его использовать для развертывания сложных конструкций вроде шаблонов и не дает орагнизовать нормальную отладку, опять же, с возможностью посмотреть на данные внутри типов, использующих шаблоны.

Если тебе нужно под винду, то лучше чем Visual Studio найти невозможно. А если ты собираешься писать под DirectX11, то это вообще единственное вменяемое решение, которое позволяет внутри себя даже шейдеры отлаживать и смотреть промежуточные результаты рендеринга.

http://www.microsoft.com/visualstudi...indows-desktop

А вот как выглядит процесс отладки рендера:
http://habrahabr.ru/company/microsoft/blog/140638/

PC_GAMER 24.11.2012 17:17

"Работаю" в Borland 6 C++.
Как сделать такие же выплывающие пункты вместе с ComboBox (отметил красным)?

[CCCP] Monster 25.11.2012 18:43

PC_GAMER, На 6-ке - только одним способом. Унаследоваться TWinControl и нарисовать самому. Ribbon и набор comctl32 версии 6 там просто так не подключишь.

PC_GAMER 29.11.2012 12:19

Как в Visual Studio C++ 2010 можно присвоить кнопке команду, для скроллинга списка в combobox? Подскажите, пожалуйста.

[CCCP] Monster 30.11.2012 01:18

PC_GAMER, CLI, WIN32, MFC?

PC_GAMER 30.11.2012 17:24

[CCCP] Monster, Visual C++ -> CLR.

CMETAHA 01.12.2012 19:52

PC_GAMER, Ты даже не понял вопрос.

PC_GAMER 01.12.2012 19:59

CMETAHA, и что же я не понял?
Спросили какой условный шаблон, я и сказал какой.


Часовой пояс GMT +4, время: 08:01.

Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.