Блок-схема программы, Код программы - Программирование на языках высокого уровня
Код программы
/////////////////////////////////////////////////////////////////////////////////////////////
// МАИ Кафедра 302 1 курс ИНФОРМАТИКА //
/////////////////////////////////////////////////////////////////////////////////////////////
// LANGUAGE: MS Visual Studio 2013 C++ //
// Project TYPE: Win 32 console //
// Project NAME: Lab01_String //
// *PROGRAMMERS: Жуков Александр, Алексеев Данила (7-ая бригада) //
// Comment: Заданы символ и две строки, написать программу, которая ищет одинаковые слова //
// в двух строках и определяет в какой строке заданный символ встречается чаще. //
/////////////////////////////////////////////////////////////////////////////////////////////
// Created DATE: 18/02/2015 // Last version DATE: 17/04/2015 //
/////////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <fstream>
#include <string>
Using namespace std;
Const int WhiteGround = system ("color F0"); // Цвет фона консоли
Int StrLenth (char* str); // Функция вычисления длины строки
Void StrSymbolMatch (char* str1, char* str2, char symbol); // Количество совпадений заданного символа в строке
Void FindMatchWordsInTwoStrings (char* str1, char* str2); // Поиск и вывод совпавших слов в 1-ой и 2-ой строках
Int main()
{
Сonst string FNAME = "Input. txt";
Setlocale (LC_ALL, "RUS"); // Подключение русского языка
/////////////////////////////////// Объявление переменных /////////////////////////////////////
Char symbol[2]; // Заданный в файле символ
Char str1 [256] = {''}; // Заданная в файле строка 1
Char str2 [256] = {''}; // Заданная в файле строка 2
Int lenstr1 = 0; // Реальная длина 1-ой строки
Int lenstr2 = 0; // Реальная длина 2-ой строки
Int i; // Воспомогательная переменные
////////////////////////////////////// Чтение из файла ////////////////////////////////////////
Ifstream fin; // Объявление переменной файла
Fin. open(FNAME); // Открытие файла
If (! fin) // Условие наличия файла
{
Cout << "Ошибка! Файл отсутсвует." << endl;
System ("pause");
Return(1);
}
If (fin. eof()) // Условие наличия элементов в файле
{
Cout << "Файл пуст!" << endl;
Fin. close();
System ("pause");
Return(2);
}
Fin. getline (symbol, 2); // Чтение символа
Fin. getline (str1, 256); // Чтение 1-ой строки
Fin. getline (str2, 256); // Чтение 2-ой строки
Cout << "Считанный из файла символ:" << symbol <<"." << endl; // Печать символа
Cout << "Считанная из файла 1-ая строка:" << str1 <<"." << endl; // Печать 1-ой строки
Cout << "Считанная из файла 2-ая строка:" << str2 <<"." << endl; // Печать 2-ой строки
Fin. close(); // Закрытие файла
For (i = 0; i <= 79; i++) // Разделение на экране
Cout << "_";
///////////////////////////// Вычисление реальных размеров строк //////////////////////////////
Lenstr1 = StrLenth(str1); // Подсчет символов до нулевого байта в 1-ой строке
Lenstr2 = StrLenth(str2); // Подсчет символов до нулевого байта во 2-ой строке
Cout << " Длина 1-ой строки:" << lenstr1 <<", длина 2-ой строки:" << lenstr2 <<"." << endl;
////////////////////////////// Поиск одинаковых слов в строках ////////////////////////////////
Cout << "Слова встречающиеся в обеих строках:" << endl;
FindMatchWordsInTwoStrings (str1, str2);
//////////////// Выявление строки в которых чаще встречается заданный символ //////////////////
StrSymbolMatch (str1, str2, *symbol);
System ("pause");
Return(0);
} //End main()
Int StrLenth (char* str)
{
Int i, lenth = 0;
For (i = 0; str[i]!= ''; i++) // Подсчет символов до нулевого байта в 1-ой строке
Lenth++;
Return lenth;
}
Void StrSymbolMatch (char* str1, char* str2, char symbol)
{
Int q1 = 0; // Счетчик
Int lenstr1 = StrLenth(str1); // Длина строки
Int i;
For (i = 0; i < lenstr1; i++)
If (str1 [i] == symbol)
Q1++;
Int q2 = 0; // Счетчик
Int lenstr2 = StrLenth(str2); // Длина строки
For (i = 0; i < lenstr2; i++)
If (str2 [i] == symbol)
Q2++;
If (q1 > q2) cout << " В 1-ой строке заданный символ "" << symbol << "" встречается чаще:";
If (q1 < q2) cout << " Во 2-ой строке заданный символ "" << symbol << "" встречается чаще:";
If ((q1 == q2) &;&; (q1!= 0)) cout << " Заданный символ "" << symbol << "" одинаково часто встречается и в 1-ой и во 2-ой строке.";
If ((q1 == q2) &;&; (q1 == 0)) cout << " Заданный символ "" << symbol << "" в строках отсутствует.";
Cout << " В 1-ой строке заданный символ встречается" << q1 << "раз(а)." << endl;
Cout << "Во 2-ой строке заданный символ встречается" << q2 << "раз(а). " << endl;
}
Void FindMatchWordsInTwoStrings (char* str1, char* str2)
{
Int i = 0, k = 0, m = 0, n = 0; // Воспомогательные переменные
Int qwords1 = 0; // Счетчик слов в 1-ой строке
Int qwords2 = 0; // Счетчик слов во 2-ой строке
Int sword1, eword1; // Индексы начала и конца слов 1-ой строки соотвественно
Int sword2, eword2; // Индексы начала и конца слов 2-ой строки соотвественно
Int lenstr1; // Реальная длина 1-ой строки
Int lenstr2; // Реальная длина 2-ой строки
Char WordsMas1 [30] [30] = {''}; // Массив из строк для записи слов из 1-ой строки
Char WordsMas2 [30] [30] = {''}; // Массив из строк для записи слов из 2-ой строки
/////////////////////////////////////////////////////////////////////////////////////////////
Lenstr1 = StrLenth(str1); // Подсчет символов до нулевого байта в строке
While (str1 [i] == ' ') // Поиск начала первого слова в строке
I++;
While (i < lenstr1) // Граница выполнения в рамках длины строки
{
Sword1 = i; // Индекс начала слова
While ((str1 [i]!= ' ') &;&; (str1 [i]!= '')) // Перемещение по слову
I++;
Eword1 = i - 1; // Индекс конца слова
N = 0;
For (m = sword1; m!= (eword1 + 1); m++) // Запись слова в массив
{
WordsMas1 [qwords1] [n] = str1 [m];
N++;
}
Qwords1++; // Инкремент счетчика слов в строке
While (str1 [i] == ' ') // Перемещение до следующего слова
I++;
}
I = 0;
Lenstr2 = StrLenth(str2); // Подсчет символов до нулевого байта в строке
While (str2 [i] == ' ') // Поиск начала первого слова в строке
I++;
While (i < lenstr2) // Граница выполнения в рамках длины строки
{
Sword2 = i; // Индекс начала слова
While ((str2 [i]!= ' ') &;&; (str2 [i]!= '')) // Перемещение по слову
I++;
Eword2 = i - 1; // Индекс конца слова
N = 0;
For (m = sword2; m!= (eword2 + 1); m++) // Запись слова в массив
{
WordsMas2 [qwords2] [n] = str2 [m];
N++;
}
Qwords2++; // Инкремент счетчика слов в строке
While (str2 [i] == ' ') // Перемещение до следующего слова
I++;
}
For (i = 0; i < qwords1; i++) // Затирание одинаковых слов в 1-ой строке
For (k = i + 1; k < qwords1; k++)
If (strcmp (WordsMas1 [i], WordsMas1 [k]) == 0)
*WordsMas1 [k] = {''};
For (i = 0; i < qwords1; i++) // Цикл сравнения слов 1-ой и 2-ой строк
For (k = 0; k < qwords2; k++)
If (strcmp (WordsMas1 [i], WordsMas2 [k]) == 0)
{
Cout << WordsMas1 [i] << ' ';
Break; // Выход из цикла чтобы не повторять вывод
}
}
Похожие статьи
-
Краткое описание программы, Описание функций - Программирование на языках высокого уровня
Программа считывает исходные данные из файла Input. txt, располагающегося в корневой папке программы. Исходные данные вида: <Символ, кол-во повторений...
-
Постановка задачи, Язык программирования Delphi - Разработка программы "Будильник"
Поставленная задача заключается в следующем. Необходимо создать программу для подачи до 5-ти сигналов в заданное время суток на заданную дату или...
-
Правила записи программы на языке Си - Основы программирования
Как указывалось выше, программа перед обработкой компьютером должна быть помещена в файл на диске. Обычно этот файл имеет расширение <.c>. Рассмотрим...
-
Язык программирования - формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор...
-
СТРОКИ. ОПИСАНИЕ ТИПА - Язык программирования Паскаль
Для обработки последовательностей символов в ТУРБО - ПАСКАЛЕ предусмотрены строчные типы. Строчные типы - это структурные типы. Количество символов в...
-
Приведенный ниже программа позволяет работать с несколькими типами датчиков, так же в код встроен фильтр для более точного измерения на границе диапазона...
-
Реализация программы на языке программирования C#, Заключение - Файловые системы
Console. ReadKey (true); } } Public class myFile { String name; DateTime dt; Long lenFIle; Public myFile (string name) { This. name = name; } Public void...
-
Что такое уровень языка программирования - Основы программирования
В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения. Любой...
-
Машинно-независимые языки - Языки программирования. Языки программирования низкого и высокого уровня
Машинно-независимые языки - это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого...
-
Языки программирования высокого уровня - Инструментальные средства разработки экспертных систем
Языки высокого уровня являются в руках опытного программиста прекрасным средством быстрого создания прототипа экспертной системы, позволяют обеспечить...
-
Листинг программы. Описание VRazmer VARIABLE 250+INT(RN1#250/350);размер от 250 до 350 INITIAL X$XTerminal,1;какой терминал обслуживается INITIAL...
-
Обзор языков программирования высокого уровня - Теоретические основы информационных технологий
Fortran (Фортран) Это первый компилируемый язык, созданный в 50-е годы. Программисты, разрабатывавшие программы исключительно на ассемблере, выражали...
-
Си ++ - Языки программирования. Языки программирования низкого и высокого уровня
Наследник C язык C++ быстро завоевал поддержку, являясь обновленной версией языка C. C++ был разработан шведским программистом по имени Бьярн Страуструп...
-
Уровень языка программирования - Языки программирования
Язык программирование информатизация алгоритм В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для...
-
3.1 Язык программирования Delphi Delphi - язык и среда программирования, относящаяся к классу RAD - (Rapid Application Development _ "Средство быстрой...
-
Понятие программы и языка программирования Чтобы компьютер выполнил решение какой-либо задачи, ему необходимо получить от человека инструкции, как ее...
-
Синтаксис объявления класса в языке С++ имеет следующий вид: Class<имя класса>: <спецификатор доступа><имя базового класса> { Элементы класса...
-
Алгоритм работы декодера кода Рида - Маллера будем разрабатывать на основе уже приведенных выше уравнений. Алгоритм приведен на рисунке 12. В начале...
-
Выбор языка программирования Язык С++ является в настоящее время наиболее распространенным и перспективным языком промышленного программирования. Он...
-
Таблица сопротивлений некоторых термометров сопротивления Температурав °C Pt100 Pt1000 Typ: 404 Typ: 501 -50 80, 31 803, 1 -40 84, 27 842, 7 -30 88, 22...
-
РАБОТА ПРОГРАММЫ, ЛИСТИНГ И ТЕСТИРОВАНИЕ - Основы программирования в операционной системе Unix
После входа в операционную систему Mandriva Mageia нужно перейти в консоль, затем в директорию с программой - командой "cd KR". Чтобы просмотреть список...
-
Как записываются алгоритмы на школьном алгоритмическом языке - Основы программирования
Основные служебные слова Алг (алгоритм) Сим (символьный) Дано Для Да Арг (аргумент) Лит (литерный) Надо От Нет Рез (результат) Лог (логический) Если До...
-
Каждый компьютер имеет свой машинный язык, то есть свою совокупность машинных команд, которая отличается количеством адресов в команде, назначением...
-
Подпрограммы - Язык программирования PERL. Сфера применения
Как и все структурированные языки программирования, Perl поддерживает подпрограммы. Подпрограмма может быть определена с помощью ключевого слова sub, как...
-
ОПЕРАТОР ВВОДА ДЛЯ ЧТЕНИЯ ФАЙЛА, ОПЕРАТОР ВЫВОДА - Язык программирования Паскаль
Оператор ввода для чтения файла обладает всеми свойствамии обычного оператора READ. Вкачестве параметров могут быть переменные; каждая переменная поучает...
-
ПРОЦЕДУРЫ - Язык программирования Паскаль
Delete (St, Pos, N) - удаление N символов строки St, начиная с позиции Pos. Если значение Pos > 255, возникает ошибка. Значение St Выражение Результат...
-
Язык PASCAL - Языки программирования
В 1970 г. известный швейцарский ученый профессор Никлаус Вирт создал собственный язык программирования, в котором постарался избавиться от всех...
-
Идентификаторы языка Си, Понятие о типах данных - Основы программирования
Идентификаторы или имена служат для обозначения различных объектов программ: переменных (ячеек памяти), адресов, функций, файлов и т. д., иначе говоря -...
-
МОДУЛИ - Язык программирования Паскаль
Наличие модулей в Turbo Pascal позволяет программировать и отлаживать программу по частям, создавать библиотеки подпрограмм и данных, воспользоваться...
-
Команды - Разработка программ на языке Ассемблер и на языке HTML
Команды Пересылки Данных. Команды пересылки данных осуществляют обмен данными и адресами между ячейками памяти и регистрами или портами ввода-вывода. Эти...
-
Класс System. Array Массивы в С# реализованы как объекты. Если говорить более точно, то они реализованы на основе базового класса Array, определенного в...
-
Скалярные переменные - Язык программирования PERL. Сфера применения
Как отмечалось, скалярная переменная может содержать единственное значение. В языке Perl имена скалярных переменных всегда начинаются со знака ($). В еле...
-
Использование языка PERL для написания CGI-cкриптов - Язык программирования PERL. Сфера применения
Как вы узнали из предыдущей главы, CGI обеспечивает узлам Web вoзмoжнoсть интерактивной работы с клиентскими программами, в качестве которых обычно...
-
Фреймы и формы - Разработка программ на языке Ассемблер и на языке HTML
Зачастую на Web - сайтах можно встретить страницы с размещенными на них HTML - формами. Веб-формы - удобный способ получения информации от посетителей...
-
Для указания соответствия обозначений переменных в формулах математической формулировки и их идентификаторов в программе сведем их в таблицу 1: Таблица 1...
-
Формулировка задания: Составьте программу подсчета числа тех гласных букв в слове X, что не используются в написании слова Z. Описание входных/выходных и...
-
Основные типы данных языка Си - Основы программирования
Язык Си относится к языку с жестко определенными типами данных: каждое имя всегда обозначает объект некоторого типа, причем этот тип нельзя изменить до...
-
Поколения языков программирования Языки программирования принято делить на пять поколений. В первое поколение входят языки, созданные в начале 50-х...
-
При извлечении текста из Интернета, он не имеет никой разметки и представлен в виде сплошного набора предложений. Для дальнейшего использования...
-
Наш интернет-магазин реализуем с использованием языка гипертекстовой разметки html, языка программирования php и СУБД MySQL. Главная часть...
Блок-схема программы, Код программы - Программирование на языках высокого уровня