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

Практическая часть:

  1. В произвольном тексте на английском языке, содержащем не более 10 строк, в каждой строке не более 80 символов. Заменить первую букву каждого слова символом «пробел». Слово – это группа символов, заключенная между разделителями (пробел, запятая, точка и т.д.). Полученный текст напечатать.

#include <vector>

#include <string>

#include <iostream>

#include <conio.h>

#include <ctype.h>

using namespace std;

int main()

{

vector<string> a;

string t;

getline(cin, t);

while(cin.fail()==false)

{

a.push_back(t);

getline(cin, t);

}

int j, k;

for (int i=0; i<a.size(); i++)

{

j=0;

while (j<a[i].size())

{

while (!isalnum(a[i][j])&& j<a[i].length())

j++;

k=j;

while (isalnum(a[i][j])&& j<a[i].length())

j++;

a[i][k]=' ';

}

}

for (int i=0; i<a.size(); i++)

cout<<a[i]<<endl;

getch();

}

  1. В произвольном тексте на русском языке, содержащем не более 10 строк, в каждой строке не более 80 символов, заменить все гласные буквы текста символом пробела. Полученный текст напечатать.

#include <vector>

#include <string>

#include <iostream>

#include <conio.h>

using namespace std;

Int main()

{

vector<string> a;

string t;

const char * gl="AaEeUuIiOoYy";

getline(cin, t);

while(cin.fail()==false)

{

a.push_back(t);

getline(cin, t);

}

for (int i=0; i<a.size(); i++)

for (int j=0; j<a[i].size(); j++)

if (strchr(gl, a[i][j]))

a[i][j]=' ';

for (int i=0; i<a.size(); i++)

cout<<a[i]<<endl;

getch();

}

  1. Дано: целочисленная матрица A[N,M] и натуральное число х. Вывести номера строк матрицы, в которых встречается заданное число х. Определение, является ли строка матрицы таковой, оформить как функцию. Ввод и вывод элементов матрицы оформить как функцию. Использовать динамическую память. Глобальных переменных не использовать.

#include <iostream>

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

void vvod(int **a, int na, int ma)

{

int i,j;

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

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

scanf("%d",&a[i][j]);

}

void vivod(int **a, int na, int ma)

{

int i,j;

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

{

printf("\n");

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

printf("%5d",a[i][j]);

}

}

void poisk(int **a,int na, int ma, int &x)

{

int i,j;

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

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

if(a[i][j]==x)

printf("\nNomer stroki:%d",i);

}

Int main()

{

int x,n,m;

int **a;

int i,j;

printf("\nVvedite x:");

scanf("%d",&x);

printf("\nVvedite razmer matrici:");

scanf("%d%d",&n,&m);

a=new int*[n];

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

a[i]=new int[m];

printf("\nVvedite a:");

vvod(a,n,m);

printf("a:");

Vivod(a,n,m);

poisk(a,n,m,x);

getch();

}

  1. В произвольном тексте на русском языке, содержащем не более 10 строк, в каждой строке не более 80 символов. Вывести те строки текста, в которых встречаются гласные буквы. Определение, является ли строка текста таковой, оформить как функцию. Глобальных переменных не использовать.

#include <iostream>

#include <string.h>

#include <vector>

#include <string>

#include <conio.h>

using namespace std;

static const char * gl="EeYyUuIiOoAa";

int search(string &str);

Int main()

{

vector <string> a;

string t;

getline(cin, t);

a.push_back(t);

while (cin.fail()==0)

{

getline(cin, t);

a.push_back(t);

}

int k=0, i=0;

for (int i=0; i<a.size(); i++)

{

if (search(a[i])==1)

{

k++;

cout<<a[i]<<endl;

}

}

if (k==0)

cout<<"There is no such strings \n";

getch();

return 0;

}

Int search(string &str)

{

for (int i=0; i<str.size(); i++)

if (strchr(gl, str[i]))

return 1;

return 0;

}

  1. Дано: три целочисленные квадратные матрицы. Определить, есть ли среди них единичная матрица. Определение, является ли матрица единичной, оформить как функцию. Единичная матрица квадратная матрица, элементы главной диагонали которой равны единице, а остальные равны нулю. Использовать динамическую память. Глобальных переменных не использовать.

#include <iostream>

#include <conio.h>

using namespace std;

int is_int(int **a,int n);

Int main()

{

int n, i,j;

cin>>n;

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

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

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

cout<<"Enter a"<<endl;

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

{

a[i]=new int [n];

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

cin>>a[i][j];

}

cout<<endl<<"Enter b"<<endl;

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

{

b[i]=new int [n];

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

cin>>b[i][j];

}

cout<<endl<<"Enter c"<<endl;

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

{

c[i]=new int [n];

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

cin>>c[i][j];

}

cout<<endl;

if (is_int(a, n)==1)

cout<<"matrix a is ed"<<endl;

else

cout<<"matrix a is not ed"<<endl;

if (is_int(b, n)==1)

cout<<"matrix b is ed"<<endl;

else

cout<<"matrix b is not ed"<<endl;

if (is_int(c, n)==1)

cout<<"matrix c is ed"<<endl;

else

cout<<"matrix c is not ed"<<endl;

getch();

return 0;

}

int is_int(int **a,int n)

{

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

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

if (i==j)

if (a[i][j]!=1)

return 0;

else;

else

if (a[i][j]!=0)

return 0;

return 1;

}

  1. Дана прямоугольная матрица. Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему арифметическому значению всех ее элементов. Поиск среднего арифметического значения матрицы оформить как функцию. Считать, что такой элемент один. Глобальных переменных не использовать.

#include <iostream>

#include <ctime>

#include <cstdlib>

#include <math.h>

#include <conio.h>

using namespace std;

double sred_arifm(double **a,int n,int m);