Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Козырева И., лабораторные работы.doc
Скачиваний:
4
Добавлен:
16.04.2019
Размер:
2.95 Mб
Скачать

Void main()

{

setlocale(LC_ALL,"Russian");

srand((unsigned)time(NULL));//использование времени

const int n=4;//объявление переменных и констант

int **a=new int*[n];//объявление массива

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

a[i]= new int[n];

int b=100;//порядок чисел матрицы

int s;//вспом. переменная

cout<<"Исходный массив: "<<endl<<endl;

for (int i=0;i<n;i++)//заполнение массива

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

*(*(a+i)+j)=rand()%b;

for (int i=0;i<n;i++){//вывод исходного массива

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

cout<<*(*(a+i)+j)<<"\t";

cout<<endl;

}

for (int i=0;i<n;i+=2)//перестановки

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

s=*(*(a+i)+j);

*(*(a+i)+j)=*(*(a+i+1)+j);

*(*(a+i+1)+j)=s;

}

cout<<endl;

cout<<"Исправленный массив: "<<endl<<endl;

for (int i=0;i<n;i++){//вывод исправленного массива

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

cout<<*(*(a+i)+j)<<"\t";

cout<<endl;

}

delete []a;

}

Лабораторная работа №3 Работа со строками. Динамические одномерные массивы

Вариант №1

Имеется строка, содержащая буквы и цифры. Преобразовать эту строку так, чтобы сначала в ней шли все цифры, а затем – все буквы исходной строки.

#include "stdafx.h"//директивы

#include <iostream>

#include <locale>

#include <string.h>

#include <stdlib.h>

using namespace std;

Void main()

{

setlocale(LC_ALL,"Russian");

const int len=100;//константы и переменные

char a[len];

char mas[len];

int t=0;

cout<<"Введите строку: ";//диалог с пользователем

gets_s(a);

cout<<"Измененная строка: ";

for (int i=0;i<len;i++)//перестановка

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

cout<<a[i];//вывод цифр

else

if (a[i]!='ю'){

mas[t]=a[i];

t++;}

for (int i=0;i<t;i++)//вывод букв

cout<<mas[i];

cout<<endl;

}

Вариант №2

С клавиатуры вводится текст и маска (шаблон) для выбора из текста нужных слов (содержит буквы и символ-заполнитель *, который заменяет любое сочетание букв, в том числе и пустое). Выбрать из текста все слова, соответствующие маске.

Вариант №3

Пусть цифрам от 1 до 9 соответствуют буквы от А(а) до I(i). С клавиатуры вводится строка. Составить новую строку из цифр, соответствующих только данным буквам, отсортированным по возрастанию.

#include "stdafx.h"//директивы

#include <iostream>

#include <locale>

#include <string.h>

#include <stdlib.h>

using namespace std;

Void main()

{

setlocale(LC_ALL,"Russian");

const int len=100;//константы и переменные

char a[len];

char temp;

cout<<"Введите строку: ";//диалог с пользователем

gets_s(a);

cout<<"Измененная строка: ";

for (int i=0;i<len;i++){//замена букв на цифры

if (a[i]=='A'||a[i]=='a')

a[i]='1';

if (a[i]=='B'||a[i]=='b')

a[i]='2';

if (a[i]=='C'||a[i]=='c')

a[i]='3';

if (a[i]=='D'||a[i]=='d')

a[i]='4';

if (a[i]=='E'||a[i]=='e')

a[i]='5';

if (a[i]=='F'||a[i]=='f')

a[i]='6';

if (a[i]=='G'||a[i]=='g')

a[i]='7';

if (a[i]=='H'||a[i]=='h')

a[i]='8';

if (a[i]=='I'||a[i]=='i')

a[i]='9';

}

puts(a);//вывод

for (int i=0;i<len-1;i++)//сортировка

if (a[i]!='ю'){

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

if (a[k]<a[k+1]){

temp=a[k];

a[k]=a[k+1];

a[k+1]=temp;

}

}

cout<<"Строка после сортировки: ";//вывод после сортировки

puts(a);

cout<<endl;

}

Вариант №4

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

Вариант №5

С клавиатуры вводится заданное количество слов. Найти все пары слов, одно из которых оканчивается на ту же букву, на которую начинается второе.

#include "stdafx.h"//директивы

#include <iostream>

#include <locale>

#include <string.h>

#include <stdlib.h>

using namespace std;