Главная Обратная связь

Дисциплины:






Описание переменных. Идентификатор переменной Тип данных Функция, выполняемая в программе определение ключевое слово K константа



 

Идентификатор переменной Тип данных Функция, выполняемая в программе
определение ключевое слово
K константа, целый const int Задает количество символов в строке
s[K] символьный char Символьная строка вводимого текста
s1[K] символьный char Символьная строка копии слова
s2[K] символьный char Символьная строка копии слова
Del символьный char Указатель на строку символов-разделителей
ps[K] символьный char Массив указателей на слова
t символьный char Указатель на слово
N целый int Количество слов в введенном тексте
j целый int Индекс текущего элемента массива слов
i целый int Параметр цикла
m беззнаковый целый unsigned int Десятичный код строчной буквы
M беззнаковый целый unsigned int Десятичный код прописной буквы
gets( ) указатель на строку char* Функция ввода строки (библиотечная)
strtok( ) указатель на строку char* Функция возвращает указатель на лексему, ограниченную заданным разделителем (библиотечная). Используется для выделения слов из текста.
strcpy( ) указатель на строку char* Функция копирования строк (библиотечная)
strlwr( ) указатель на строку char* Функция приведения букв в строке к строчным буквам (библиотечная)
strlen( ) беззнаковый целый size_t Функция определения длины строки (библиотечная)

 

Алгоритм решения задачи

 

 
 

 

 
 

 

 


 


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

 

//---------------------------------------------------------------------------

#pragma hdrstop

//---------------------------------------------------------------------------

#include <conio.h> //библиотека подключения функции getch()

#include <iostream.h> //библиотека для cin и cout

#include <malloc.h> //библиотека для динамического выделения памяти

#include <fstream.h> //библиотека для ввода/вывода в файл

#include <windows.h> //библиотека используется в функции RUS

#include <math.h> //библиотека математических функций

#include <ctype.h> // библиотека проверки принадлежности символов

#include <stdlib.h> // библиотека некоторых стандартных функций

#include <string.h> // библиотека функций работы со строками

//

char bufRus[256];

//---------------------------------------------------------------------------



char* RUS(const char*text) //функция поддержки русского языка

{

CharToOem(text,bufRus);

return bufRus;

}

//---------------------------------------------------------------------------

 

#pragma argsused

int main(int argc, char* argv[])

{

cout<<RUS("*** Курсовая работа, задание 5 *** \n");

const int K=256;

char s[K],s1[K],s2[K];

char *Del=" .,!?";

char *ps[K],*t;

int N=0;

unsigned int m,M;

cout<<RUS("\nВведите текст на латинице\n");

gets(s);

ps[N]=strtok(s,Del);

while(ps[N])

{

N++;

ps[N]=strtok(NULL,Del);

}

 

for(int i=N-1;i>0;i--) //начало сортировки по алфавиту

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

{ strcpy(s1,ps[j]);

strcpy(s2,ps[j+1]);

strlwr(s1); //преобразование к строчным буквам

strlwr(s2);

if(s1[0]>s2[0])

{

t=ps[j];

ps[j]=ps[j+1];

ps[j+1]=t;

}

} //конец сортировки по алфавиту

 

for( m=97,M=65;m<=122;m++,M++)

for(int i=N-1;i>0;i--) //начало сортировки по длине в группе

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

if((strlen(ps[j])<strlen(ps[j+1]))&&(*ps[j]==(char)m||*ps[j]==(char)M)&&(*ps[j+1]==(char)m||*ps[j+1]==(char)M))

{

t=ps[j];

ps[j]=ps[j+1];

ps[j+1]=t;

}

cout<<RUS("\nОтсортированный массив слов\n");

 

for(int j=0;j<N;j++) //вывод массива

cout<<'\n'<<ps[j];

 

cout<<RUS("\nНажмите любую клавишу для завершения программы ...\n");

getch();

return 0;

}

//---------------------------------------------------------------------------

 





sdamzavas.net - 2019 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...