Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Никитина Д.С. Отчет по лабораторным работам

.docx
Скачиваний:
12
Добавлен:
15.06.2021
Размер:
317.51 Кб
Скачать

Национальный исследовательский университет «МИЭТ»

Факультет дистанционного обучения

Направление: «Программная инженерия»

«Практикум по программированию на С»

Отчёт по лабораторным работам

Выполнил: Никитина Д.С.

08.10.2019 г.

Лабораторная работа №1

Знакомство со средой разработки программ MS Visual Studio 2015.

Программирование линейных алгоритмов

Задание:

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

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

int a, b, c;

cout << "Программа вычисления площади треугольника по длинам сторон a,b,c"<< endl;

cout << endl << "Введите сторону a:" << endl;

cin >> a;

cout << endl << "Введите сторону b:" << endl;

cin >> b;

cout << endl << "Введите сторону c:" << endl;

cin >> c;

float p, s;

p = (a + b + c) / 2;

s = sqrt(p * (p - a) * (p - b) * (p - c));

cout << endl << "Площадь треугольника равна: " << s << endl;

return 0;

}

Скриншот выполнения программы:

Лабораторная работа №2

Программирование ветвящихся алгоритмов

Задание 1:

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

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

float x, y;

cout << "Введите значение х:" << endl;

cin >> x;

if (x > 14.5)

{

y = 1 + x;

cout << endl << "y = 1 + x = " << y << endl;

}

else

if (x < 3)

{

y = cos(x);

cout << endl << "y = cos(x) = " << y << endl;

}

else

{

y = exp(-x);

cout << endl << "y = exp(-x) = " << y << endl;

}

return 0;

}

Скриншот выполнения программы:

Задание 2:

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

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

char x;

cout << "Введите символ для проверки на принадлежность к арифметическим операциям:" << endl;

cin >> x;

if ((x == '+') || (x == '-') || (x == '/') || (x == '*') || (x == '%'))

cout << "Данный символ является арифметическим действием" << endl;

else

cout << "Данный символ НЕ является арифметическим действием" << endl;

return 0;

}

Скриншот выполнения программы:

Лабораторная работа №3

Программирование циклических алгоритмов

Задание 1:

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

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

double x = 1, a = 2.5, d, w;

d = 1.0 / 10.0;

cout << "Множество значений функции:" << endl << "W = {";

while (x < a)

{

w = exp(-a * x) * cos(a * x);

cout << w << ", " << endl;

x += d;

}

w = x * sin(a * x);

cout << w;

x += d;

do

{

w = x * x * x * sqrt(x - a);

cout << ", " << endl << w;

x += d;

} while (x < 5);

cout << "}";

return 0;

}

Скриншот выполнения программы:

Задание 2:

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

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

cout << "Введите последовательность чисел. Признак окончания ввода - '10':" << endl;

float x;

int k = 0;

cin >> x;

while (x != 10)

{

if (x > 0)

k++;

cin >> x;

}

cout << endl << "Количество положительных чисел: " << k;

return 0;

}

Скриншот выполнения программы:

Лабораторная работа №4

Программирование задач с использованием одномерных массивов

Задание:

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

#include <iostream>

#include <time.h>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

int const l = 30;

int x[l];

srand((unsigned)time(NULL));

cout << "Случайный массив:" << endl;

for (int i = 0; i < l; i++) //формируем рандомный массив

{

x[i] = rand() / 100 - 100;

cout << x[i] << ' ';

}

float sum = 0;

for (int i = 0; i < l; i++)

if (sin(x[i]) < 0)

sum += sin(x[i]);

cout << endl << "Сумма отрицательных элементов последовательности синусов: " << sum;

return 0;

}

Скриншот выполнения программы:

Лабораторная работа №5

Программирование задач с использованием матриц

Задание:

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

#include <iostream>

#include <time.h>

#include <iomanip>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

int m, n;

cout << "Введите кол-во строк в матрице (не больше 10):" << endl;

cin >> m;

cout << "Введите кол-во столбцов в матрице (не больше 10):" << endl;

cin >> n;

int i, x[10][10];

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

for (int j = 0; j < n; j++)

x[i][j] = rand() / 100 - 100;

cout << "Случайный массив:" << endl;

for (int i = 0; i < m; i++)

{

for (int j = 0; j < n; j++)

cout << setw(5) << x[i][j];

cout << endl;

}

int imax = 0;

i = 0;

while (i < n && i < m)

{

if (x[i][i] > x[imax][imax])

imax = i;

i++;

}

cout << endl << "Наибольший элемент на главной диагонали:" << endl << "x[" << imax << "][" << imax << "]= " << x[imax][imax] << endl;

int imin = 0, leght;

if (n < m)

leght = n-1;

else

leght = m-1;

i = 0;

while (i <= leght)

{

if (x[leght - i][i] < x[leght - imin][imin])

imin = i;

i++;

}

cout << endl << "Наименьший элемент на побочной диагонали:" << endl << "x[" << leght-imin << "][" << imin << "]= " << x[leght - imin][imin] << endl;

return 0;

}

Скриншот выполнения программы:

Лабораторная работа №6

Программирование задач с использованием функций

Задание:

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

#include <iostream>

#include <time.h>

#include <iomanip>

using namespace std;

double** RezervMatr(int n)

{

double** a = new double* [n];

for (int i = 0; i < n; i++)

a[i] = new double[n];

return a;

}

void DeleteMatr(double** a, int n)

{

for (int i = 0; i < n; i++)

delete[] a[i];

delete a;

}

void RandMatr(double** a, int n)

{

for (int i = 0; i < n; i++)

for(int j=0;j<n;j++)

a[i][j] = (double)(rand() / 100 - 100)/(double)10;

}

void OutputMass(double* a, int n)

{

for (int i = 0; i < n; i++)

cout << setw(6) << setprecision(1) << fixed << a[i];

cout << endl << endl;

}

void OutputMatr(double** a, int n)

{

for (int i = 0; i < n; i++)

{

for (int j = 0; j < n; j++)

cout << setw(6)<< setprecision(1) << fixed << a[i][j];

cout << endl;

}

cout << endl;

}

void MainDiagonal(double** a, double* x, int n)

{

for (int i = 0; i < n; i++)

x[i] = a[i][i];

}

void main()

{

setlocale(LC_ALL, "Russian");

int const n = 4;

double** A = RezervMatr(n);

RandMatr(A, n);

cout << "Матрица А:" << endl;

OutputMatr(A, n);

double X[n];

MainDiagonal(A, X, n);

cout << "Массив Х (главная диагональ матрицы А):" << endl;

OutputMass(X, n);

double** B = RezervMatr(n);

RandMatr(B, n);

cout << "Матрица B:" << endl;

OutputMatr(B, n);

double Y[n];

MainDiagonal(B, Y, n);

cout << "Массив Y (главная диагональ матрицы B):" << endl;

OutputMass(Y, n);

DeleteMatr(A, n);

DeleteMatr(B, n);

}

Скриншот выполнения программы:

Лабораторная работа №7

Программирование задач с использованием структур

Задание:

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

#include <iostream>

#include <time.h>

#include <iomanip>

using namespace std;

struct Shoes

{

char art[8];

char name[12];

int sum;

int price;

};

void OutputShoes(Shoes a[], int n)

{

cout << setw(9) << "Артикул" << "|" << setw(13) << "Наименование" << "|" << setw(7) << "Кол-во" << "|" << setw(6) << "Цена" << "|" << endl;

for (int i = 0; i < n; i++)

{

cout << "______________________________________" << endl;

cout << setw(9) << a[i].art << "|" << setw(13) << a[i].name << "|" << setw(7) << a[i].sum << "|" << setw(6) << a[i].price << "|" << endl;

}

}

void OutputWoman(Shoes a[], int n)

{

cout << setw(9) << "Артикул" << "|" << setw(13) << "Наименование" << "|" << setw(7) << "Кол-во" << "|" << setw(6) << "Цена" << "|" << endl;

for (int i = 0; i < n; i++)

{

if (a[i].art[0] == 'Д')

{

cout << "______________________________________" << endl;

cout << setw(9) << a[i].art << "|" << setw(13) << a[i].name << "|" << setw(7) << a[i].sum << "|" << setw(6) << a[i].price << "|" << endl;

}

}

}

void SortShoes(Shoes a[], int n)

{

Shoes Max;

int nmax;

for (int i = 0; i < n; i++)

{

Max = a[i];

nmax = i;

for (int j = i; j < n; j++)

{

if (a[j].price > a[nmax].price)

{

Max = a[j];

nmax = j;

}

}

a[nmax] = a[i];

a[i] = Max;

}

}

void main()

{

setlocale(LC_ALL, "Russian");

int const n = 12;

Shoes a[n] =

{

"Д456","ghji88yd",19,4999,

"М789","ertwertf",12,5999,

"П123","erwefsw",35,6999,

"Д741","erdgvsdgf",5,14999,

"М852","eftwfc",95,8999,

"П963","efrwefas",46,999,

"Д159","efesfwe",23,1999,

"М753","efwefwe",71,2999,

"П167","effcdfwe",96,3999,

"Д349","yjtygb",6,7999,

"М759","rgergdesr",58,9999,

"М153","rgdergr",16,12999,

};

cout << "Ассортимент магазина обуви:" << endl << endl;

OutputShoes(a, n);

cout << endl << "Ассортимент магазина обуви в порядке убывания цены:" << endl << endl;

SortShoes(a, n);

OutputShoes(a, n);

cout << endl << "Женский ассортимент магазина обуви:" << endl << endl;

OutputWoman(a, n);

}

Скриншот выполнения программы: