Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП 2 Семестр / 5 Строки.doc
Скачиваний:
37
Добавлен:
21.03.2016
Размер:
921.6 Кб
Скачать

Ход работы

Таблица соответствия переменных:

Имя в программе

Тип

Комментарий

s

Char

Строка

k

Int

Кол-во «w»

i,j

Int

Переменные-счетчики

n

int

Длина строки

Листинг программы:

//Подключение директив предпроцессоров

#include <stdio.h>

#include <ctype.h>

#include <conio.h>

#include <stdlib.h>

#include <string.h>

#include <iostream>

//Введение в программу пространства имен

using std::cout;

using std::endl;

using std::cin;

//Начало программы

main ()

{

//Установка русского языка

setlocale (LC_ALL, "Russian");

//Объявление переменных

char s[50];

int i(0), k(0), j, n;

//Ввод исходной строки

cout << "Введите строку" << endl;

cin >> s;

//Вывод исходной строки

cout << "Исходная строка\n" << s << endl;

//Получение длины исходной строки

n=strlen(s);

/*///////////////////////////////

ЭТАП 1 ////

Поиск пары *+цифра и вставка ////

между ними пробела. ////

/*///////////////////////////////

while(i<n)

{

//Условие поиска пары

if(s[i]=='*'&&isdigit(s[i+1]))

//Если нашло такую пару

{

//Увеличение длины строки

n=n+1;

/*///////////////////////////////

Цикл сдвига символов ////

строки-результата по сравне- ////

нию с исходной строкой. ////

/*///////////////////////////////

for(j=n-1;j>i;j--)

s[j+1]=s[j];

//Встатвка пробела между парой

s[i+1]=' ';

}

//Увеличение переменной-счетчика

i++;

}

/*///////////////////////////////

ЭТАП 2 ////

Поиск символов 'W', стоящих ////

после пары 'A+' и подсчет их ////

количества ////

Присвоение переменной-счет- ////

чику исходного значения ////

/*///////////////////////////////

i=0;

while(i<n)

{

//Условие поиска пары

if(s[i]=='a'&& s[i+1]=='+'&& s[i+2]=='w')

//Если нашло такую пару

//Переменная подсчета количетва +1

k=k+1;

i++;

}

//Вывод полученных результатов

cout << "Строка-результат\n" << s << endl;

cout << "Количество символов 'W', стоящих после пары 'A+'\n" << k << endl;

//Ожидание ввода символа

_getch();

//Возвращение главной функции исходного значения

return(0);

}

Тест:

Блок-схема:

Определить количество слов, вторая буква которых 'P'.

Ход работы

Таблица соответствия переменных:

Имя в программе

Тип

Комментарий

S

char

Строка

i

int

Переменные-счетчики

n

int

Длина строки

k

int

Кол-во «P»

Листинг программы:

//Подключение директив предпроцессоров

#include <stdio.h>

#include <ctype.h>

#include <conio.h>

#include <stdlib.h>

#include <string.h>

#include <iostream>

//Введение в программу пространства имен

using std::cout;

using std::endl;

//Начало программы

main()

{

//Установка русского языка

setlocale (LC_ALL, "Russian");

//Объявление переменных

char s[100];

int i(0), k(0), n;

//Ввод исходной строки

cout << "Введите строку" << endl;

gets(s);

cout << "Исходная строка" << endl;

//Вывод исходной строки

puts(s);

//Получение длины исходной строки

n=strlen(s);

/*///////////////////////////////

Алгоритм 1 ////

Проверка первого слова на ////

личие второй буквы 'Р' ////

/*///////////////////////////////

if(s[1]=='p')

/*///////////////////////////////

Если условие выполняется, то ////

счетчик буквы 'Р' увеличива- ////

ется на +1 ////

/*///////////////////////////////

k++;

/*///////////////////////////////

Алгоритм 2 ////

Поиск слов, в которых вторая ////

буква - 'Р' ////

/*///////////////////////////////

while(i<=n)

{

//Условие поиска разделителей и буквы после него

if ((isspace(s[i]) && isalpha(s[i+1])) || (ispunct(s[i]) && isalpha(s[i+1])))

{

//Условие поиска буквы 'Р'

if(s[i+2]=='p')

/*///////////////////////////////

Если все эти условия выпол- ////

няются, то счетчик буквы 'Р' ////

увеличивается на +1 ////

/*///////////////////////////////

k++;

}

//Увеличение переменной-счетчика

i++;

}

//Вывод полученных результатов

cout << "Количество слов, в которых вторая буква - 'Р' = " << k << endl;

//Ожидание ввода символа

_getch();

//Возвращение главной функции исходного значения

return(0);

}

Тест:

Блок-схема:

Соседние файлы в папке ОАиП 2 Семестр