- •Лабораторна робота №1
- •3 Теоретичний матеріал
- •4 Варіанти завдань для виконання
- •Хід виконання практичної роботи
- •Питання до захисту :
- •Лабораторна робота №2
- •3 Теоретичний матеріал
- •4 Вихідні дані роботи
- •Хід виконання практичної роботи
- •Питання до захисту :
- •Лабораторна робота №3
- •3 Теоретичний матеріал
- •4 Хід виконання практичної роботи
- •Питання до захисту :
- •Лабораторна робота №4
- •3 Теоретичний матеріал
- •4 Вихідні дані роботи
- •Хід виконання практичної роботи
- •Питання до захисту :
- •Лабораторна робота №5
- •3 Теоретичний матеріал
- •4 Вихідні дані роботи
- •5 Хід виконання практичної роботи
- •Питання до захисту :
- •Лабораторна робота №6
- •3 Теоретичний матеріал
- •4 Вихідні дані роботи
- •5 Хід виконання практичної роботи
- •Питання до захисту :
- •Лабораторна робота №7
- •3 Теоретичний матеріал
- •4 Вихідні дані роботи
- •5 Хід виконання практичної роботи
- •Питання до захисту :
4 Вихідні дані роботи
Дано рядок з цифрами та літерами, необхідно здійснити перетворення, з цього рядка в такий рядок, таким чином, що всі букви переносяться в початок, при цьому в кінець рядка всі вхідні в неї цифри зі збереженням вихідного взаємного порядку як серед цифр, так і серед решти букв рядка.
Вираз вводиться з вибираного файлу.
Також вираз вводиться з клавіатури.
Хід виконання практичної роботи
У програмі використовується стек, який реалізовано таким чином:
type
tRange = Integer;
tValue = string;
tMas = array[0..MaxMem] of tValue;
tStack = record
Mas: tMas;
Top: tRange;
end;
Опис процедур і функцій:
function CreateStack: tLink;
Призначення: Створення стека.
Параметри: -
function Null (stack: tLink): boolean;
Призначення: Повертає true, якщо стек порожній.
Параметри: stack-посилання на стек [вх.]
function Top (stack: tLink): tValue;
Призначення: Повертає значення верхнього елементу стека.
Параметри: stack-посилання на стек [вх.]
procedure Pop (var stack: tLink);
Призначення: Видаляє верхній елемент стека.
Параметри: stack-посилання на стек [вх. - Вих.]
procedure Push (var stack: tLink; Val: tValue);
Призначення: Додає елемент в стек, який станови-ться верхнім елементом.
Параметри: stack-посилання на стек [вх. - Вих.]; Val-вставляється значення [вх.]
function TopPop (var stack: tLink): tValue;
Призначення: Повертає значення верхнього елементу стека і видаляє його з стека.
Параметри: stack-посилання на стек [вх. - Вих.]
procedure DestroyStack (var stack: tLink);
Призначення: Видаляє стек.
Параметри: stack-посилання на стек [вх. - Вих.]
function Transfer (InputStr: tValue): tValue;
Призначення: функція яка обробляє рядок, ко-торая вводиться в поле введення (InputStr) і виводить в поле виводу (Result).
Параметри: Inpustr [вх.]
Код програми
#include <iostream> //подключение основных команд
#include <fstream> //подключение работы над файлами
#include <string> //подключение строковой переменной
#include <Windows.h> //подключение любого языка
using namespace std; //стандартная Библиотека означает коллекцию классов и функций, написанных на базовом языке
int main() //основной код(процедура)
{ //операторская скобка открывается #1
SetConsoleCP(1251); //язык
SetConsoleOutputCP(1251); //язык
ifstream a; // переменная файла с которого считывает
ofstream b; // переменная файла в которй записывает
string stroka; // переменная запоминающая строку
a.open("vvod.txt"); //открываем файл
b.open("vivod.txt"); //открываем файл
char temp; //переменные символьного типа
int t2, t4; //переменны числовго типа
string chisla, bykv, str; // переменные строчного типа
while(getline(a,str)) //цикл считывание строк
{
t4=str.size(); // подсчет длины строки
for(int i=0; i<t4;i++) //цикл для обработки строки
{
temp=str[i]; //Приравниваем символ строки к переменной Темп
t2=(int)temp; //ID элемента в таблице аски
if(t2 > 47 && t2 < 58) //условие для отдельного вывода чисел
{
chisla=chisla+temp; //запоминание чисел в переменную типа строки
}
else
{
bykv=bykv+temp; //запоминание букв в переменную типа строки
}
}
b << bykv << " " << chisla << endl; //запись в файл остортированых строк
bykv="";// обнуление переменной типа строки для букв
chisla="";//обнуление переменной типа строки для чисел
}
a.close(); //закрываем файл
b.close(); //закрываем файл
cout << "Файл <a> был успешно записан в файл <b>!!!" << endl; //вывод об удачно сделаной операции над файлом
} //операторская скобка закрівается #1
