Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Навчальна практика.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.29 Mб
Скачать

Завдання 1

Лінійний обчислювальний процес.

Скласти алгоритм та написати програму розрахунку за функціями при різних значеннях аргументу:

Обчислити y=sin3(x2+a)2 - z=x2/a+cos2(x+b)3, де a=1,1; b=0,004; x=0,2.

А лгоритм програми

Лістинг програми

#include "stdafx.h"

#include <math.h>

#include <conio.h>

#include <locale.h>

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL,"Russian");

const float a=1.1,b=0.004,x=0.2;

float y,z;

y=pow(sin(pow((pow(x,2)+a),2)),3)-pow((x/b),1/3);

z=(pow(x,2)/a)+pow(cos(pow((x+b),3)),2);

printf("Значение y=%5.2f\n",y);

printf("Значение z=%5.2f\n",z);

getch();

return 0;

}

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

Завдання 2

Циклічні програми з розгалуженням

Скласти програму обчислення значення функцій при різних значеннях аргументів, заданих інтервалом зміни і величиною кроку, результат представити у вигляді таблиці.

де

Алгоритм програми

Лістинг програми

#include "stdafx.h"

#include <math.h>

#include <conio.h>

int _tmain(int argc, _TCHAR* argv[])

{

float z,x;

const float a=2.4,hx=0.5,xn= -3,xk=3;

x=xn;

printf(" X | Z \n-----|-----\n");

while(x<=xk)

{

z=(pow(a,x)*log(abs(x+8)))/(x+1);

printf("%5.2f|%5.2f\n",x,z);

x=x+hx;

}

getch();

return 0;

}

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

Завдання 3

Одновимірні масиви (з використанням динамічних масивів та покажчиків)

Скласти алгоритм і програму, яка в одновимірному масиві обчислює:

а) кількість елементів масиву, рівних нулю.

б) суму елементів масиву, розташованих після мінімального елементу.

в) упорядкувати елементи масиву за зростанням модулів.

Алгоритм програми

while (a[i]!=min)

+

-

Обчислення суми елементів, розташованих після мінімального

Виведення суми

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

for (j=0; j<9;j++)

Сортування масиву за зростанням модулів

Виведення відсортованого масиву

Кінець

Лістинг програми

#include "stdafx.h"

#include <conio.h>

#include <stdlib.h>

#include <time.h>

#include <locale.h>

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL,"Russian");

srand(time(0));

int S=0,i,j,x,a[10],kol0=0,min;

printf("Случайно сформированный массив чисел\n\n");

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

{

printf("%i\t",a[i]=rand()%20-10);

if (a[i]==0) kol0++;

}

printf("\nКоличество элементов массива, равных нулю = %i\n",kol0);

min=a[0];

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

{

if (a[i]<=min) min=a[i];

}

i=10-1;

while (a[i]!=min)

{

S+=a[i];

i--;

}

printf("Сумма элементов массива, расположенных после минимального элемента = %i\n",S);

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

for (j=0; j<9;j++)

if (abs(a[j]) > abs(a[j+1]))

{

x = a[j];

a[j] = a[j+1];

a[j+1] = x;

}

printf("\nМассив, упорядоченный по возрастанию модулей\n\n");

for (int i=0;i<10;i++) printf("%i\t",a[i]);

getch();

return 0;

}

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

Завдання 4

Двовимірні масиви з підпрограмами

Використовуючи підпрограми скласти алгоритм та програму обробки двовимірного масиву: Нехай задана речова матриця. Розглядаючи її як вектор рядків, упорядкувати її за кількістю непарних елементів в кожному рядку.

Алгоритм програми

Лістинг програми

#include "stdafx.h"

#include <stdlib.h>

#include <locale.h>

#include <time.h>

#include <conio.h>

#include <math.h>

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL,"Russian");

srand((unsigned)time(0));

int a[3][3],i,j,kn1=0,kn2=0,kn3=0,x[3],y[3];

printf("Случайно сформированная матрица\n\n");

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

{

for (j=0;j<3;j++)

{

printf("%i\t",a[i][j]=rand()%20-10);

}

printf("\n\n");

}

for (j=0;j<3;j++)

{

if (a[0][j]%2==1||a[0][j]%2==-1) kn1++;

if (a[1][j]%2==1||a[1][j]%2==-1) kn2++;

if (a[2][j]%2==1||a[2][j]%2==-1) kn3++;

if (kn1>kn2&&kn2<kn3&&kn1<kn3) x[j]=a[0][j], a[0][j]=a[1][j], a[1][j]=x[j];

else if (kn1>kn2&&kn2<kn3&&kn1>kn3) x[j]=a[0][j], a[0][j]=a[1][j], a[1][j]=a[2][j], a[2][j]=x[j];

else if (kn1<kn2&&kn2>kn3&&kn1<kn3) x[j]=a[1][j], a[1][j]=a[2][j], a[2][j]=x[j];

else if (kn1<kn2&&kn2>kn3&&kn1>kn3) x[j]=a[0][j], y[j]=a[1][j], a[0][j]=a[2][j], a[1][j]=x[j], a[2][j]=y[j];

else if (kn1<kn2&&kn2>kn3&&kn1==kn3) x[j]=a[1][j], a[1][j]=a[2][j], a[2][j]=x[j];

else if (kn1>kn2&&kn2<kn3&&kn1==kn3) x[j]=a[0][j], a[0][j]=a[1][j], a[1][j]=x[j];

else if (kn1==kn2&&kn2<kn3) a[0][j]=a[0][j],a[1][j]=a[1][j],a[2][j]=a[2][j];

else if (kn1==kn2&&kn2>kn3) x[j]=a[0][j], y[j]=a[1][j], a[0][j]=a[2][j], a[1][j]=x[j], a[2][j]=y[j];

else if (kn1>kn2&&kn2==kn3) x[j]=a[0][j], x[j]=a[0][j], a[0][j]=a[1][j], a[1][j]=a[2][j], a[2][j]=x[j];

else if (kn1<kn2&&kn2==kn3) a[0][j]=a[0][j],a[1][j]=a[1][j],a[2][j]=a[2][j];

}

printf("Матрица, упорядоченная по количеству нечетных элементов в каждой строке\n\n");

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

{

for (j=0;j<3;j++)

{

printf("%i\t",a[i][j]);

}

printf("\n\n");

}

getch();

return 0;

}

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

Завдання 5

Обробка символьних рядків

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

Лістинг програми

#include "stdafx.h"

#include <conio.h>

#include <iostream>

#include <vector>

#include <string>

#include <locale.h>

using namespace std;

std::vector<std::string> split(const std::string& s)

{

std::vector<std::string> vec;

typedef std::string::size_type str_size;

str_size i = 0;

int count = 0;

while (i != s.size())

{

while (isspace(s[i]) && i != s.size()) ++i;

str_size j = i;

while (!isspace(s[j]) && j != s.size()) ++j;

if (i != j)

{

vec.push_back(s.substr(i, j - i));

i = j;

}

}

return vec;

}

std::string makestr(std::vector<std::string> v)

{

std::string buf;

std::vector<std::string>::size_type i = v.size() - 1;

while (i != 0)

{

buf += v[i] + " ";

--i;

}

buf +=v[i];

return buf;

}

int main()

{

setlocale(LC_CTYPE,"Russian");

cout<<"Введите строку символов или предложение"<<endl;

std::string str, newstr;

std::vector<std::string> v;

std::getline(std::cin, str);

v = split(str);

newstr = makestr(v);

cout<<"Строка символов (предложение) в обратной последовательности слов"<<endl;

std::cout << newstr;

getch();

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]