Учебник нужен не столько мне, сколько моему коллеге, который ещё новичок не выше intern'а.
Но для первичного обучения она тоже не подходит. Слишком коротко, и термины такие, которые непосвященный не сможет правильно понять: "std::map - отсортированный контейнер " - что значит отсортированный? Что в нем отсортировано? В нем же еще нет данных...
Интересует, существуют ли некие принципы/стандарты и техники написания крайне устойчивого к сбоям ПО. Например, как правильно разрабатывать и тестировать панель управления АЭС?
Атомные электростанции. Системы контроля и управления, важные для безопасности. Программное обеспечение компьютерных систем, выполняющих функции категории А
Атомные электростанции. Системы контроля и управления, важные для безопасности. Программное обеспечение компьютерных систем, выполняющих функции категорий В и С
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
double sredn(int i, int M, double **A)
{
double summ = 0;
for (int j = 0; j < M; j++)
{
summ = summ + A[i][j];
}
return summ / M;
}
void readMatrix(int &N, int &M, double** (&A), FILE *dat)
{
fscanf(dat, "%d", &N);
fscanf(dat, "%d", &M);
A = new double*[N];
for (int i = 0; i < N; i++)
{
A[i] = new double[M];
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
fscanf(dat, "%lf", &A[i][j]);
}
}
}
void writeMatrix(int N, int M, double **A, FILE *res)
{
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
fprintf(res, "%6.2lf ", A[i][j]);
}
fprintf(res, "\n");
}
}
void writeMassiv(int N, double *B, FILE *res)
{
for (int i = 0; i < N; i++)
{
fprintf(res, "%6.2lf ", B[i]);
}
}
double massiv(int N, int M, double **A, double *B)
{
for (int i = 0; i < N; i++)
{
B[i] = sredn(i, M, A);
}
return 0;
}
bool summa(int N, int M, double **A)
{
bool sum = false; // Допустим сумма НЕ отрицательна
double summ = 0;
for (int i = 0; i < N; i++)
{
summ = summ + A[i][M - 1];
}
if (summ < 0)
{
sum = true;
}
return sum;
}
int main(int argn, char *argc[])
{
FILE *dat, *res;
dat = fopen("D:\\in.txt", "r");
res = fopen("D:\\out.txt", "w");
int N = 0;
int M = 0;
double **A = nullptr;
readMatrix(N, M, A, dat);
double *B = new double[N];
fprintf(res, "Задана матрица A из %d строк и %d столбцов:\n", N, M);
bool sum = summa(N, M, A);
if (true)
{
fprintf(res, "\nСумма элементов последнего столбца не отрицательна\n");
fprintf(res, "\n");
massiv(N, M, A, B);
writeMassiv(N, B, res);
fprintf(res, "\n");
fprintf(res, "\n");
}
else
{
fprintf(res, "\nСумма элементов последнего столбца отрицательна\n");
fprintf(res, "\n");
writeMatrix(N, M, A, res);
}
fclose(dat);
fclose(res);
for (int i = 0; i < N; i++)
{
delete[] A[i];
}
delete[] A;
delete[] B;
}
3 3
1 2 3
4 5 6
7 8 9
Задана матрица A из 3 строк и 3 столбцов:
Сумма элементов последнего столбца не отрицательна
2.00 5.00 8.00
#include<locale>
//...
locale loc(".1251");
if(!isalpha(c, loc) && !isspace(c, loc))
{
//...
}
Где найти материалы на русском языке связанные с opencv.
Как установить opencv на visual studio, и надо ли?
Каким образом opencv находит обьекты, как привязать камеру или что либо еще.
Как люди создают балансборды и объидиняют с Arduino.
Гуглом пользоваться умею, но нормальной инфы нет,только как установить...
opencv_world410d.lib
The names of the libraries are as follow:
opencv_(The Name of the module)(The version Number of the library you use)d.lib
For the purposes of this example, we will make reference to IplImage and cvLoadImge(), both constructs
from the ancient pre–version 2.1 interface that are now deprecated. We won’t really cover them in detail in
this book, but all you need to know for this example is that IplImage is the old data structure for images, and
cvLoadImage() was the old function to get an image from disk and return a pointer to the resulting image
structure.
не важно как он выглядит. В какой кодировке вы его сохраняете?
UTF-8
SetConsoleOutputCP( 65001 );
Где найти статическую версию ImageMagick с хеадерами и либами?
Хотелось бы по возможности иметь бумажную версию такой книги, но "Практики программирования" в продаже уже нет
int i = std::cin.get();
помогите расшифровать код
Јr@uT-DB AAAA
pk metadata
class_AlarmRealm
class_MusicTrackRealm
class_SleepPhaseRealm
class_SleepPointRealm
class_SleepRealm
class_SnoreRealm
class_TrendRealm
class_WeatherHourRealm
AAAA
AAAA
pk_table
pk_property
AAAA
CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);
curl_easy_setopt is used to tell libcurl how to behave. By setting the appropriate options, the application can change libcurl's behavior. All options are set with an option followed by a parameter. That parameter can be a long, a function pointer, an object pointer or a curl_off_t, depending on what the specific option expects
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postData.c_str());
На с++ используя либу curl.
static CURLcode vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
case CURLOPT_POSTFIELDS:
/*
* Like above, but use static data instead of copying it.
*/
data->set.postfields = va_arg(param, void *); // Тут <-----------------------<<<<
/* Release old copied data. */
(void) Curl_setstropt(&data->set.str[STRING_COPYPOSTFIELDS], NULL);
data->set.httpreq = HTTPREQ_POST;
break;