Арифметические и логические операции с переменными




a = a + 1; // теперь a = 5

a++; // теперь a = 6

a--; // теперь a = 5

a = a&&0; // теперь a = 0

a = a||3; // теперь a = 1

 

Операция условного ветвления if …:

if (/*проверка выражения на неравенство нулю*/)

{

//некоторые действия, если выражение в скобках не равно нулю

}

 

Операция условного ветвления if … else:

if (/*проверка выражения на неравенство нулю*/)

{

//некоторые действия, если выражение в скобках не равно нулю

}

Else

{

//некоторые действия, если выражение в скобках равно нулю

}

 

Множественное условие if … else if … else if … else:

if (/*проверка 1 условия на неравенство нулю*/)

{

//некоторые действия, если 1 условие в скобках не равно нулю

}

else if (/*проверка 2 условия, исключающего проверенное ранее 1 условие, на неравенство нулю*/)

{

//некоторые действия, если 1 условие равно нулю, а условие 2 не равно нулю

}

Else

{

//некоторые действия, если 1 и 2 условия равны нулю

}

Оператор цикла for(…;…;…):

for (/*операция, выполняемая до первой итерации цикла/*;

/* условие повторения цикла*/;

/*операция, выполняемая после очередной итерации цикла/*)

{

//тело цикла, выполняемое в том случае, если условие повторение цикла

//выполняется

}

 

Начиная со стандарта C99 в цикле for можно объявлять переменные, например:

for(int a = 4; a<8; a++)

{

// …

}

В данном случае переменная a будет создана и проинициализирована перед первой итерацией цикла, и будет уничтожена по завершении работы цикла.

 

Функции

type_R function_name (type_1 arg1, type_2 arg2, type_3 arg3, …)

{

// тело функции с операциями, которые используют

// входные аргументы arg1, arg2, …

// результатом функции является возвращаемое

// значение result типа type_R

return result;

}

type_R – тип возвращаемого значения (int, float, char, short и т.д.)

type_1 – тип первого аргумента

type_2 – тип второго аргумента и т.д.

 

Пример

float sum (float a, float b)

{

float c = 0;

c = a + b;

return c;

}

 

 

Практическая часть

В процессе выполнения второй части курсовой работы необходимо рассчитывать следующие статистические характеристики случайных величин.

Математическое ожидание — среднее значение случайной величины при стремлении количества выборок к бесконечности.

 

N — число отсчётов случайной величины

i — индекс текущего значения случайной величины

хi текущее значение случайной величины

 

Вычисление математического ожидание в коде на языке Си.

float MO = 0, sum=0;

int i;

for (i=0; i<N; i++)

sum = sum + x[i];

MO = sum/N;

 

Дисперсия — мера разброса значений случайной величины относительно её математического ожидания.

 

— математическое ожидание, вычисленное ранее

 

Среднеквадратическое отклонение — показатель рассеивания значений случайной величины относительно её математического ожидания.

 

 

Вычисление дисперсии и среднеквадратическое отклонение в коде на языке Си:

int i;

float sum = 0, temp = 0, D = 0, CKO = 0;

for (i=0; i<N; i++)

{

temp = (MO - x[i]);

sum = sum + temp*temp;

}

D = sum/N;

CKO = sqrt(D); // sqrt() из библиотеки math.h

 

Медиана — это такое число выборки, что ровно половина из элементов выборки больше него, а другая половина меньше него. Простейший алгоритм вычисления медианного значения заключается в том, чтобы произвести сортировку значений случайной величины, после чего взять значение, находящееся в середине выборки.

 

Вычисление медианы в коде на языке Си:

// функция для сравнения двух чисел типа float, нужна для qsort()

int compare_float(float* a, float* b)

{

if(*a<*b)

return -1;

if(*a>*b)

return 1;

return 0;

}

//qsort() - функция из библиотеки stdlib.h для сортировки массива

qsort(x, N, sizeof(float), (int(*)(const void *, const void *))compare_float);

// выбор серединного значения

float Median = x[N/2];

 

Задание

Каждый студент получает уникальный файл с заданием taskN.mai, где номер N соответствует порядковому номеру студента в списке группы. Файлы с заданиями являются сложными. В первых 1024 байтах каждого файла заключено сообщение с параметрами задания. Текст сообщения составлен на русском языке в кодировке Windows-1251, после чего закодирован шифром Цезаря с ключом не выше 4.

Первая часть задания заключена в расшифровке текстовой "шапки" файла и уточнения дальнейшей части.

Вторая часть задания содержит вычисления статистических характеристик случайной величины в соответствии с текстом в шапке файла задания.

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

 

 

Код программы:

 

 

 

 

 

 

 

 

Результат работы программы:

Выводы

Использовав знания и навыки, полученные в курсе теоретических и практических занятий по предмету «Информатика» для решения прикладных задач на языке программирования Си. Я научился объявлять переменные. Работать с файлами и указателями для быстрого доступа к конкретному участку памяти(оперативная, постоянная) повторил постройку базовых конструкций(циклов, функций и операторов ветвления). Продемонстрировал умение работы с зашифрованными файлами и случайными массивами данных на языке Си, а также навык владения средой разработки Dev-C++ для создания, отладки и компиляции.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-07-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: