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

ИТиУвТС / ОАиП, 1 курс ФЗО ИТиУвТС (КР 1, вариант 7)

.doc
Скачиваний:
10
Добавлен:
01.04.2014
Размер:
440.83 Кб
Скачать

Задание 1

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

при x = 0,1722; y = 6,33; z = 3,25⋅10−4 . Ответ s = –205,306.

Решение:

#include <iostream>

#include <math.h>

using namespace std;

int main()

{

double x, y, z, s, a, b, c, d;

cout << "Vvedite x:" << endl;

cin >> x;

cout << "Vvedite y:" << endl;

cin >> y;

cout << "Vvedite z:" << endl;

cin >> z;

a= x + 3 * fabs(x - y) + pow(x, 2);

b= fabs(x - y) * z + pow(x, 2);

c= 1/4. * acos(x);

d= 5 * atan(x);

s= d - c * (a/b);

cout << "Otvet: " << s << endl;

return 0;

}

Задание 2

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

Решение:

#include <iostream>

#include <math.h>

using namespace std;

int main()

{

Double x, y, s;

cout << "Vvedite x:" << endl;

cin >> x;

cout << "Vvedite y:" << endl;

cin >> y;

double xy =(x * y);

if (1<xy && xy<10)

{

s= exp(-x);

cout << "Result 1: " << s << endl;

}

else if (12<xy && xy< 40)

{

s= pow (fabs(x + 4*y), 1/3.);

cout << "Result 2: " << s << endl;

}

else

{

s= y* pow(x, 2);

cout << "Result 3: " << s << endl;

}

return 0;

}

Задание 3

Вывести на экран таблицу значений функции y(x) для x, изменяющегося от a = 0,1 до b = 1,2 с шагом h = 0,1.

Решение:

#include <iostream>

#include <math.h>

#include <iomanip>

using namespace std;

int main()

{

double x, n, a, b, h, y, i;

cout << "Vvedite a, b, h, n: " << endl;

cin >> a >> b >> h >> n;

cout << setw(10) << "x" << setw(10) << "y" << endl;

x = a;

do

{

y= 1;

for (i = 1; i <= n; i++);

y += pow(x, 2*i)/ cos (i*x);

cout << setw(10) << x << setw(10) << y << endl;

x += h;

}

while (x <= b + h/2);

cout << endl;

return 0;

}

Задание 4

Ввести одномерный статический массив из k чисел. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат.

Сдвинуть элементы массива циклически на n позиций вправо.

Решение:

#include <iostream>

#include <math.h>

using namespace std;

int main()

{

int massiv[20], i, n, j, k;

cout << "Vvesti razmer massiva (k<20):" << endl;

cin >> k;

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

{

massiv[i]= (i+1)*2;

cout << massiv[i] << " ";

}

cout << endl << endl;

cout << "Vvesti n:" << endl;

cin >> n;

for(j=0-n; j<(k-n); j++)

{

if (j<0)

{

massiv[j]= 0;

}

cout << massiv[j] << " ";

}

return 0;

}

Задание 5

Ввести матрицу размером NxM. Память для массива выделить динамически. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат.

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

Решение:

#include <iostream>

#include <iomanip>

#include <math.h>

#include <time.h>

#include <stdlib.h>

using namespace std;

int main()

{

double **a;

int i, j, n, m, imax, jmax;

cout << "Vvedite razmer matrici: " << endl;

cin >> n >> m;

a= new double *[n];

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

{

a[i]= new double [m];

}

srand(time(NULL));

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

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

{

a[i][j]= 1+rand()% 90;

}

cout << endl << endl;

cout << "Matrica a:" << endl;

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

{

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

cout << setw(2) << a[i][j] << " ";

cout << endl;

}

cout << endl << endl;

imax=jmax=0;

for(i=m-j; i<n; i++)

for(j=n-i; j<m; j++)

{

if(a[i][j]>a[imax][jmax])

{

imax=i;

jmax=j;

}

}

cout << "Max chislo:" << endl;

cout << a[imax][jmax] << " ";

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

delete []a[i];

delete []a;

return 0;

}

Задание 6.

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

Найти все числа в строке. Каждое число вывести в отдельной строке.

Решение:

#include <iostream>

#include <string.h>

#include <stdio.h>

using namespace std;

int main()

{

char st[80], sl[80];

int i, k=0;

puts ("Vvedite stroku");

gets(st);

int n=strlen (st);

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

{

if (st[i] >= '0' && st[i] <= '9')

{

sl[k]=st[i];

cout <<sl[k] << endl;

}

}

i++;

return 0;

}

Задание 7.

Создать массив структур, содержащий информацию согласно варианту

индивидуального задания. Выполнить задание и вывести на экран полученный результат.

Информация об участниках спортивных соревнований содержит название страны, название команды, ФИО игрока, игровой номер, возраст, рост и вес. Вывести фалимии спортсменов, возраст которых больше 20 лет.

Решение:

#include <iostream>

#include <string.h>

using namespace std;

int main()

{

struct sport

{

char strana[20];

char kom[20];

char fio[40];

char nom[5];

char old[3];

char rost[4];

char ves[4];

} msport[200];

int i, sp;

cout << "Vvedite chislo sportsmenow:" << endl;

cin >> sp;

cout << endl;

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

{

cout << "Vvedite stranu: ";

cin >> msport[i].strana;

cout << "Vvedite komandu: ";

cin >> msport[i].kom;

cout << "Vvedite FIO: ";

cin >> msport[i].fio;

cout << "Vvedite nomer: ";

cin >> msport[i].nom;

cout << "Vvedite vozrast: ";

cin >> msport[i].old;

cout << "Vvedite rost: ";

cin >> msport[i].rost;

cout << "Vvedite ves: ";

cin >> msport[i].ves;

cout << endl;

}

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

if ( strcmp (msport[i].old, "20")== 1)

{

cout << "Starshe 20 let: " << msport[i].fio << endl;

}

return 0;

}

Задание 8.

Вывести на экран таблицу значений функции y(x) для x, изменяющегося от a = 0,1 до b = 1,2 с шагом h = 0,1 (см. лабораторную работу №3, табл. 3.1).

Вычисление y(x) оформить в виде функции.

Решение:

#include <iostream>

#include <math.h>

#include <iomanip>

using namespace std;

void summ (double, double, double, double);

int main()

{

cout << setw(10) << "x" << setw(10) << "y" << endl;

summ(0.1, 1.2, 0.1, 20);

cout << endl;

return 0;

}

void summ (double a, double b, double h, double n)

{

double x = a, y= 1, i;

do

{

for (i = 1; i <= n; i++);

y += pow(x, 2*i)/ cos (i*x);

cout << setw(10) << x << setw(10) << y << endl;

x += h;

}

while (x <= b + h/2);

}

13