close

Вход

Забыли?

вход по аккаунту

?

Задача 2 (9)

код для вставкиСкачать
Задача №2.
Условие задачи
Преобразовать строку, заменив в ней группу, из стоящих рядом точек одной точкой. Количество пробелов между словами не должно превышать одного.
Описание метода решения задачи
1. Выявляем исходные данные, результаты, назначаем им имена.
Исходные данные: исходная строка char *stroka- объявляется как указатель и для нее резервируется место в памяти 30 байт - stroka= new char [30];
Результаты: преобразованная строка по условию задачи
2. Выбираем метод решения задачи, разбиваем на этапы (с учетом возможностей ЭВМ)
Первоначально составим укрупненную схему, а затем подробную для блока III.
Укрупненная схема
I. Подключение всех необходимых заголовочных файлов
II. Локальное описание переменных char *stroka1
III. Получение необходимого результата и вывод его на экран
III. 1. МРЗ:
* вводим строку (gets(str1), предварительно очистив поток ввода fflush(stdin). Функция считывает строку из stdin и записывает адрес в указатель stroka, добавляя символ '\0'(признак конца строки)
* в цикле "перебора элементов строки" - while(*stroka != '\0'): если не конец строки,
- выполняем проверку на неравенство символу '.'(if(*stroke != '.')):
если Да, то: выводим этот символ на экран если Нет, то:
выводим одну точку на экран,
в цикле "перебора элементов строки" - while(*stroka = = '.'), пока символ равен точке, увеличиваем адрес в переменной strokа на одну ячейку (stroka++),
Выводим текущий символ на экран, т. к. после предыдущего цикла
while(*stroka = = '.') указатель stroke остановился на первом, не равном точке, символе после группы встреченных точек.
- в теле цикла увеличиваем адрес переменной str1 на одну ячейку (str1++), иначе из цикла не выйдем
* вывод результата выполняем одновременно с выполнением условия задачи в предыдущем пункте
P.S. Вывод на экран легко можно заменить выводом в другую строку, если есть необходимость использовать результат для решения другой задачи.
Программа, реализующая данный алгоритм
#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
#include<math.h>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h> void main()
{
char *stroka;
stroka= new char [30];
int i;
cout<<"Vvedi strocy:";
fflush(stdin);
gets(stroka);
while(*stroka!='\0')
{
if(*stroka!='.')
cout<<*stroka;
else
{
cout<<*stroka;
while(*stroka=='.')stroka++;
cout<<*stroka;
}
stroka++;
}
getch();
}
Документ
Категория
Рефераты
Просмотров
8
Размер файла
17 Кб
Теги
задачи
1/--страниц
Пожаловаться на содержимое документа