Контрольная работа по "Программированию"
Контрольная работа, 13 Сентября 2013, автор: пользователь скрыл имя
Описание работы
1. Написать программу вычисления значения выражения при заданных исходных данных. Сравнить полученное значение с указанным правильным результатом.
2. Составить программу вычисления выражения согласно указанному варианту. Предусмотреть вывод информации о выбранной ветви вычислений.
3. Вывести на экран таблицу значений функции y(x) для x, изменяющегося от a = 0,1 до b = 1,2 с шагом h = 0,1.
4. Ввести одномерный статический массив из k чисел. Преобразовать массив следующим образом: все отрицательные элементы массива перенести в начало, сохранив исходное взаимное расположение, как среди отрицательных, так и среди остальных элементов массива, и вывести на экран исходные данные и полученный результат.
5. Ввести матрицу размером N на M. Память для массива выделить динамически. Определить количество положительных элементов, расположенных ниже побочной диагонали матрицы. и вывести на экран исходные данные и полученный результат
6. Вводится строка, каждое слово которой отделяется от других слов одним или несколькими пробелами. Найти количество слов, состоящих из пяти символов.
Работа содержит 1 файл
ГОТОВО.doc
— 91.50 Кб (Скачать)1. Написать программу
вычисления значения выражения
при заданных исходных данных.
Сравнить полученное значение
с указанным правильным
Листинг кода:
#include <iostream>
using namespace std;
#include <conio.h>
#include <math.h>
int main()
{double x, y, z, s;
cout << "x = "; cin >> x;
cout << "y = "; cin >> y;
cout << "z = "; cin >> z;
s = ((2*cos(x-2.0/3.0))/(1.0/2.0+
cout << "x = " << x << "\t y = " << y << "\t z = " << z
<< "\nS = " << s << endl;
cout << "Press any key ... " << endl;
getch();
return 0;}
Демонстрация работы программы:
2. Составить программу вычисления выражения согласно указанному варианту. Предусмотреть вывод информации о выбранной ветви вычислений.
Листинг кода:
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{double x, y, s;
cout << "Input x "; cin >> x;
cout << "Input y "; cin >> y;
if ((x*y)>0) {s = pow(x+y,2)-pow(fabs(x),1.0/3.
cout << "x * y > 0" << endl;
} else if ((x*y)<0) {s = pow(x+y,2)+sin(x);
cout << "x * y < 0" << endl;
} else {s = pow(x+y,2)+pow(y,3);
cout << "x * y = 0" << endl; }
cout << "Rezult S = " << s << endl;
cout <<"Press any key ... " << endl;
getch();}
Демонстрация работы программы:
3. Вывести на экран таблицу значений функции y(x) для x, изменяющегося от a = 0,1 до b = 1,2 с шагом h = 0,1.
Листинг кода:
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
int main()
{ double x, a, b, h, s; int n;
cout << "a = "; cin >> a;
cout << "b = "; cin >> b;
cout << "h = "; cin >> h;
for(x = a; x <= b; x += h)
{ s=0; for (n = 1; n <= 20; n++) s += pow(x,n-1)/(2*n+1);
cout <<"x = " << x <<"\t y(x) = " << s << endl; }
getch();
return 0;}
Демонстрация работы программы:
4. Ввести одномерный статический массив из k чисел. Преобразовать массив следующим образом: все отрицательные элементы массива перенести в начало, сохранив исходное взаимное расположение, как среди отрицательных, так и среди остальных элементов массива, и вывести на экран исходные данные и полученный результат.
Листинг кода:
#include <conio.h>
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{ int k, i, j, buff;
cout << "k = "; cin >> k;
double a[k];
cout <<"Please, input matrix A:" << endl;
for(i = 0; i < k; i ++)
{ cout << "a[" << i << "] = "; cin >> a[i]; }
cout <<"Matrix A:" << endl;
for(i = 0; i < k; i ++) cout << a[i] << " ";
for (i = k-1; i > 1; i --)
for (j = 0; j < k; j ++)
if (a[j+1]<0 && a[j]>0)
{ buff = a[j+1];
a[j+1] = a[j];
a[j] = buff; }
cout <<"\nMatrix A after changes:" << endl;
for(i = 0; i < k; i ++) cout << a[i] << " ";
cout << "\n Press any key ... " << endl;
getch(); }
Демонстрация работы программы:
5. Ввести матрицу размером N на M. Память для массива выделить динамически. Определить количество положительных элементов, расположенных ниже побочной диагонали матрицы. и вывести на экран исходные данные и полученный результат
Листинг кода:
#include <iostream>
using namespace std;
#include <conio.h>
int main ()
{ float **a;
int i, j, n, m, pos_count=0;
cout << "N = "; cin >> n;
cout << "M = "; cin >> m;
a = new float*[n];
for(i = 0; i < n;i ++) a[i] = new float[m];
cout <<"Input Matrix:" << endl;
for(i = 0; i < n; i ++) for(j=0; j<m; j++)
{cout << "A[" << i << "][" << j << "] = "; cin >> a[i][j];}
cout <<"Matrix :" << endl;
for(i = 0; i < n; i ++)
{for(j=0; j<m; j++) cout << "\t" << a[i][j];
cout << endl;}
if (n != m) cout << "Thix matrix haven't diagonal, because n != m"<< endl;
else{for (i = 1; i < n; i ++) for (j = m-i; j < m; j ++) if (a[i][j] > 0) pos_count++;
cout << "Vsego " << pos_count << " elementov >0 nije pobochnoy diagonali" << endl;}
for(i = 0; i < n; i ++) delete [] a[i];
delete []a; a = NULL;
cout << "Delete !" << endl;
cout << " Press any key ... " << endl;
getch();
}
Демонстрация работы программы:
6. Вводится строка, каждое слово которой отделяется от других слов одним или несколькими пробелами. Найти количество слов, состоящих из пяти символов.
Листинг кода:
#include <string.h>
#include <stdio.h>
int main()
{ char st[100], sl[100];
int k = 0, i, w5_count = 0;
puts ("Vvedie stroku");
gets (st);
strcat (st," ");
int n = strlen(st);
for (i=0; i<n; i++)
if (st[i] != ' ')
{ sl[k] = st[i];
sl[k+1] = '\0';
k++; }
else { if (strlen (sl) == 5) w5_count ++;
sl[0] = '\0';
k = 0; }
printf ("Vsego %d slova s 5 bukv", w5_count);
return 0;}
Демонстрация работы программы: