Стабильный код и xor C++ Доброго времени!
Есть такой код:double azim = degrees( atan( s/c ));
Проблема в том что c может быть нулём, поэтому вышележащий код быстро превратился в:
const double eps = 1e-10;
double azim;
if( fabs(c) < eps )
{
if(( s < 0.0 )^^( c < 0.0 ))
C++ Нужен справочник по заголовкам и их функциямВсем привет. Недавно решил научиться программировать на с++ , ранее писал небольшие плагины для игр на pawn. Вроде бы разобрался с синтаксисом и основными моментами, но как написать реальную программу(например, лаунчер) без понятия. У заголовков, как и у функций, названия такие, будто по клаве ударили. Описание на мсдн такое, что поймет только Страуструп. Есть ли какой-то справочник по заголовкам...https://www.cyberforum.ru/ cpp-beginners/ thread1244550.html
C++ Путаница с sftream и операторами << и >>Значит так, иду спокойно по книжке по темам "Открытие и закрытие текстовых файлов", а также "Чтение и запись текстовых файлов" и тут я немного запутался.
Для того чтобы считать информацию из файла, мы используем ifstream, но я ведь привык, что оператор >> используется для ввода информации. То же самое и с помещением информации через объект класса ostream, и опять же я привык, что <<...https://www.cyberforum.ru/ cpp-beginners/ thread1244538.html
Работа с классами и пересечение их между собой (задача о городах и поездах) C++ Здравствуйте.
Тут попалась в руки задачка, вкратце суть:
Есть города, в каждом городе есть станция, на станции пассажиры, у пасажира есть цель поездки(N - ый город).
Между городами ездят поезда, в поезде N вагонов, в вагоне N мест.
Написать грубо говоря всю эту систему (без графики), поезд прибыл-погрузился-отбыл, ну и естественно не телепортировался, а где-то там медленно двигается по...
C++ Чем отличаются по функционалу Kbhit() и _kbhit()Всем привет.
Утолите нубское любопытство.
Везде (на msdn, как минимум) пишут пользовать _kbhit() и что при этом происходит. Все просто и понятно.
Про kbhit() пишут только, что устарел еще во времена vs2005. И все.
А функционально чем они отличаются?https://www.cyberforum.ru/ cpp-beginners/ thread1244470.html
C++ Как передвигать указатель на следующий элемент массива структур?Вопрос относительно использования символа стрелка '->'.
Допустим, есть такой код:
#include<iostream>
using namespace std;
struct man
{
char name;
int age;
};https://www.cyberforum.ru/ cpp-beginners/ thread1244458.html
C++ Вызов конструктора и деструктора с использованием пула У меня есть некоторая область памяти (указатель на её начало и размер в байтах), часть которой необходимо превратить в объект. У объекта есть конструктор, который корректно инициализирует все поля, а так же деструктор, освобождающий всё, что было занято при создании объекта (к примеру, освобождает мьютекс и очищает строку).
Вопрос: как вызвать конструктор и деструктор на уже выделенной памяти?...
C++ Написать шаблон класса очередь, и сделать к типу char спецификациюпо заданию, нужно написать шаблон класса очередь, и сделать к типу char спецификацию, вот тут сообственно и начинаются проблемы, сам шаблон класса я написал и он работает, однако отдельное описание под char вообще ни как не удается описать:
#include <iostream>
using namespace std;
#include <iomanip>
template <class T, int maxsize>
struct MyStruct
{
int x;
MyStruct<T, maxsize> *Next;https://www.cyberforum.ru/ cpp-beginners/ thread1244428.html
C++ Где в приведенном коде переменные хранят свои значенияДрузья, помогите разобраться с объектами. Например, где, созданные в этом листинге 3 объекта - а, b и с, после инициализации с помощью конструктора по умолчанию, физически хранят свои значения?
#include <iostream>
#include <conio.h>
using namespace std;
class Z
{
public:https://www.cyberforum.ru/ cpp-beginners/ thread1244424.html
C++ Помогите найти программу решения систем алгебраических уравнений методом Зейделя Ребята, помогите найти программу решения систем алгебраических уравнений методом Зейделя. Код нужен на С++ или на С#. Переделывать с паскаля, с джавы или еще с чего-то нет не времени не сил. Нашел десяток разных реализаций и чуть ли не каждая выдавала свой уникальный ответ на разные входные данные. При этом в интернет онлайн-калькуляторе выдавался еще один уникальный ответ. Я иссяк уже
C++ При релизе программы не падают фигуры по таймеруhttps://www.cyberforum.ru/ cpp-beginners/ thread1244417.html Извините, если тема повторяется, но при отладке приложения все нормально(в моем приложении падают фигуры сверху вниз при каждом тике таймера ), при релизе программы они не падают. это странно. Либо не работает таймер, либо не работает функция step в которой как раз и добавляется к к
На самом деле мой труд тут достаточно скромен - оформил код в читаемом виде и написал несколько комментариев. Где чего не знал - тупо гуглил и передирал текст с сайтов типа такого и вот такого. За подсказки, поправки и уточнения покорнейше благодарю!
//=================================== 4 ======================================// Определение функции find_max_min(). Назначение функции - искать минимальные и// максимальные значения в матрице. Функция принимает три аргумента - // указатель на массив указателей на тип int и две целочисленные переменные,// задающие размерность матрицы. Возвращаемое значение - указатель на тип int.int* find_max_min(int** matrix, int n, int m){// Если память под матрицу не выделена или если матрица не заполнена значениями:if((matrix==NULL)||(n==0)||(m==0)){// Вывести на экран сообщение "сначала создайте матрицу":printf("First_create_a_matrix");// В завсисмости от реализации компилятора вернуть 0, либо вернуть "мусор": returnNULL;// Плохой стиль программирования! Лучше так не делать!}else// иначе{// Присвоить переменной max значение, хранящееся в первом элементе// массива matrix:int max = matrix[0][0];// Создать две целочисленные перменные для максимальных значений// и пока что присвоить им нулевые значения:int max_k_n =0, max_k_m =0;// Присвоить переменной min значение, хранящееся в первом элементе// массива matrix:int min = matrix[0][0];// Создать две целочисленные перменные для минимальных значений// и пока что присвоить им нулевые значения:int min_k_n =0, min_k_m =0;// ЦИкл пошагово проверяет все элементы матрицы:for(int i=0; i<n; i++)for(int j=0; j<m; j++)// Если значение, хранящееся в текущем элементе массива больше, чем то, которое// на данный момент хранится в переменной max, тоif(matrix[i][j]>max){
max = matrix[i][j];// присвоить переменной max это значение// "Запомнить" в какой ячейке массива найдено максимальное значение (в отдельные// переменные сохраняются индексы ячейки):
max_k_n = i;
max_k_m = j;}// Если значение, хранящееся в текущем элементе массива меньше, чем то, которое// на данный момент хранится в переменной min, то if(matrix[i][j]<min){
min = matrix[i][j];// присвоить переменной min это значение// "Запомнить" в какой ячейке массива найдено миниимальное значение (в отдельные// переменные сохраняются индексы ячейки):
min_k_n = i;
min_k_m = j;}}}// Создание массива int return_matrix[4]. Выделение памяти для 4 интов:int*return_matrix =(int*)malloc(sizeof(int)*4);// Инициализация элементов массива значениями:
return_matrix[0]= max_k_n;
return_matrix[1]= max_k_m;
return_matrix[2]= min_k_n;
return_matrix[3]= min_k_m;// Вернуть в вызывающую функцию указатель на массив return_matrix: return return_matrix;}}
P.P.S. Поморока с параметром функции в виде указателя на указатель на тип int - это попросту трик (хитрость), с помощью которого функции в качестве параметра можно передать двумерный массив (матрицу). То же самое с возвращаемым значением (указатель на int). В языке программирования C++ нельзя передать в функцию массив или вернуть массив из функции, зато можно передать указатель (ну или, при надобности - вернуть в качестве возращаемого значения указатель).
Так что если массив одномерный, то работаете с указателем первого уровня (с одной звёздочкой который).
Если же массив двумерный (матрица), то работаете с указателем второго уровня (с двумя звёздочками).