Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭКЗАМЕ.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
188.74 Кб
Скачать

Завдання №1

  1. Які існують види умовного оператора та чим вони відрізняються?

  1. if (условие)

{блок 1 из одного или более операторов}

else

{блок 2 из одного или более операторов}

Если условие верно, то выполняется блок 1 из одного или более операторов, а если не верно, то блок 2.

  1. Цикл while - цикл с неизвестным числом повторений

while (условие)

{блок из одного или нескольких операторов}

Если условие истинно (принимает не нулевое значение), то выполняется блок из одного или нескольких операторов и происходит возврат на проверку условия. Если условие ложно, происходит выход из цикла. Условие может быть составлено из нескольких выражений, с использованием || (логическое сложение "или") и &&(логическое умножение "и")

3. Оператор do...while

do...while - это цикл с постусловием.

Цикл do ... while - цикл с неизвестным числом повторений. В отличие от цикла while условие проверяется в конце цикла. Поэтому тело цикла выполняется хотя бы один раз

do

{блок из одного или нескольких операторов}

while (условие)

Оператор switch предназначен для организации выбора из множества различных вариантов. Формат оператора следующий:

switch ( выражение ) { [объявление] : [ case константное-выражение1]: [ список-операторов1] [ case константное-выражение2]: [ список-операторов2] : : [ default: [ список операторов ]] }

2. Написати шаблонну функцію, яка повертає суму головної діагоналі. Написати програму, яка ілюструє роботу цієї функції.

#include <iostream>

using namespace std;

void flash(int**mas,int n){

int long pr=1;

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

pr*=mas[i][i];

cout<<"Произведение элементов главной диагонали: "<<pr<<endl;

}

int main(){

setlocale(0,"");

cout<<"Размерность: ";

int n;

cin>>n;

int** mas=new int*[n];

mas[0]=new int[n*n];

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

mas[i]=mas[0]+i*n;

cout<<"Изначальный массив:"<<endl;

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

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

mas[i][j]=rand()%200;

cout<<mas[i][j]<<'\t';

}

cout<<endl;

}

flash(mas,n);

system("pause");

return 0;

}

3. Обчислити де a=-0,5; b=1,7; t=0,44.

#include <iostream>

#include <math.h>

using namespace std;

Int main()

{

double a=-0.5;

double b=1.7;

double t=0.44;

double y=exp(-b*t)*sin(a*t+b)-sqrt(abs(b*t+a));

double s=b*sin(a*pow(t,2)*cos(2*t));

cout<<"Y="<<y<<'\t'<<"S="<<s<<'\t';

system("PAUSE");

return 0;

}

Завдання №2

  1. Напишіть програму сортування масиву по правилу зростання з використанням покажчиків.

  2. #include <iostream>

  3. #include <time.h>

  4. using namespace std;

  5. void Sort(int *&, int);

  6. Int main()

  7. {

  8. setlocale(0,"");

  9. srand(time(NULL));

  10. int n;

  11. cout<<"Введите количество элементов в массив: ";

  12. cin>>n;

  13. int * mas;

  14. mas = new int [n];

  15. // Zapolnenie

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

  17. *(mas+i) = rand()%50-25;

  18. cout<<"\nНачальный массив:\n";

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

  20. cout<<*(mas+i)<<"\t";

  21. // Sortirovka

  22. cout<<endl;

  23. Sort(mas,n);

  24. delete[]mas;

  25. system("pause");

  26. return 0;

  27. }

  28. void Sort(int *&mas, int n)

  29. {

  30. cout<<"\nОтсортированный массив\n";

  31. //Сортировка

  32. for (int i = 0 ; i < n-1; i++)

  33. for (int j = 0 ; j < n-1-i; j++)

  34. {

  35. if (*(mas+j) > *(mas+1+j) )

  36. {

  37. int t = *(mas+j);

  38. *(mas+j) = *(mas+j+1);

  39. *(mas+j+1) = t;

  40. }

  41. }

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

  43. cout<<*(mas+i)<<"\t";

  44. }

2. Як запрограмувати функції зі змінною кількістю параметрів?

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

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

#include <iostream>

#include <conio.h>

using namespace std;

void Fun(int a,...);

void main()

{

Fun(2,6,8,7,3);

getch();

}

void Fun(int a,...)

{

int *p=&a;

for(0;*p;++p)

cout<<*p<<' ';

}

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

#include <iostream>

using namespace std;

Void flash(int**mas,int n){

/////////////// произведение элементов ниже гл диагонали

int Pro=1;

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

{

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

{

Pro=Pro*mas[i][j];

}

}

cout<<"proizv ="<<Pro<<'\n';

//sortirobka 2ogo stolbca

int t;

for( int i=0;i<n-1;i++,cout<<endl)

{

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

{

if(mas[j][1]>mas[j+1][1])

{

t=mas[j][1];

mas[j][1]=mas[j+1][1];

mas[j+1][1]=t;

}

}

}

for (int i=0;i<n;i++,cout<<endl)

{

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

{

cout<<mas[i][j]<<'\t';

}

}

}

//////////////////////

Int main(){

setlocale(0,"");

cout<<"Размерность: ";

int n;

cin>>n;

int** mas=new int*[n];

mas[0]=new int[n*n];

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

mas[i]=mas[0]+i*n;

cout<<"Изначальный массив:"<<endl;

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

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

mas[i][j]=rand()%200;

cout<<mas[i][j]<<'\t';

}

cout<<endl;

}

flash(mas,n);

system("pause");

return 0;

}

Завдання №3

1.Які типи даних вам відомі?

Базові типи даних для ПК на базі платформи Intel

Тип

Розмір, байт

Значення

bool

1

true (1) або false(0)

unsigned short int

2

від 0 до 65 535

short int

2

від –32 768 до 32 767

unsigned long int

4

від 0 до 4 294 967 295

long int

4

від –2 147 483 648 до 2 147 483 647

int (16 розрядів)

2

від –32 768 до 32 767

int (32 розряда)

4

від –2 147 483 648 до 2 147 483 647

unsigned int (16 розрядів)

2

від 0 до 65 535

unsigned int (32 розряда)

4

від 0 до 4 294 967 295

char

1

від 0 до 256

float

4

від 1.2е-38 до 3.4е38

double

8

від 2.2е-308 до 1.8е308

long double

10

від 3.4е-4932 до 3.4е 4932

void

2 або 4

-

2. Задана структура з ім’ям именем student, яка містить два поля: П.І.Б.; бал.

Необхідно реалізувати функцію сортування масиву структур за зростанням бала. Написати програму, яка ілюструє роботу цієї функції.

#include <iostream>

using namespace std;

struct student{

char imia[100];

int bal;

};

void nat(int n, student* mas){

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

for(int j=0;j<n-1-i;j++)

if(mas[j].bal<mas[j+1].bal){

student c=mas[j];

mas[j]=mas[j+1];

mas[j+1]=c;

}

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

cout<<"imia"<<i+1<<' '<<mas[i].imia<<endl;

cout<<"bal"<<i+1<<' '<<mas[i].bal<<endl;

}

}