Школьник набрал на компьютере реферат. Когда он отлучился, его друзья решили над ним подшутить: один предложил удалить все гласные, другой – заменить буквы «г» и «р» их кодовыми значениями, третий – записать текст в обратном порядке. Какой текст увидит школьник после того, как каждый из друзей внесет свои исправления в текст? и какой текст будет получен после применения всех трех вариантов?
program pr;
uses crt;;
function v1(S:string):string;const glas='аАеЕёЕиИоОуУыЫэЭюЮяЯ';var i:integer;
begin for i:=length(s) downto 1 do if pos(s[i],glas)>0 then delete(s,i,1);v1:=s; end;
function v2(S:string):string;var i:integer; begin for i:=1 to length(s) do case
S[i] of 'г':s[i]:='р';'Г':S[i]:='Р';'р':s[i]:='г';'Р':s[i]:='Г';end;v2:=s;end;
function v3(S:string):string;var R:string;i:integer;begin R:='';for i:=1 to
length(s) do R:=s[i]+R;v3:=R;end;
var s,v:string;
begin
write('vvedite tekst:');readln(S);
writeln('dlya togo, chtobi uvidet rezultat izmeneniya vvedite sootvetstvuyushiy simvol:');
writeln('1-udalit vse glasie');writeln('2-izmenit bukvi г и р');
writeln('3-zapisat tekst v obratnom poryadke');
writeln('lyuboy drugoy simvol - primenit vse tri varianta');write('chto vibiraem:');
readln(v);
if(length(v)<1)or not(v[1]in[#49,#50,#51]) then S:=v3(v2(v1(S)))
else case v[1] of #49:S:=v1(S);#50:S:=v2(S);#51:S:=v3(S);end;
writeln('rezultat');
writeln(S);
end.
Другие языки программирования и технологии
Помогите с задачей, а точнее перевести программу с языка Pascal на C++
#include <iostream>
#include <string>
#include <algorithm>
#include <utility>
using namespace std;
void test();
void ru();
void stop();
void input_text(wstring&);
void output_text(wstring&);
void remove_wchar(wstring&, wchar_t);
void replace_char_as_code(wstring&, wchar_t);
void remove_vowels(wstring&, bool = true);
void replace_chars_as_code(wstring&, wstring&, bool = true);
void reverse_text(wstring&, bool = true);
void all_changes(wstring&, wstring&, bool = false);
int main() {
test();
}
void test() {
ru();
wstring text = L"";
input_text(text);
wcout << L"Если удалить все гласные: ";
remove_vowels(text);
wstring gr = L"гр";
wcout << L"Если \'г\' и \'р\' заменить их кодами: ";
replace_chars_as_code(text, gr);
wcout << L"Если текст записать в обратном порядке: ";
reverse_text(text);
wcout << L"Окончательный вариант: ";
all_changes(text, gr);
output_text(text);
stop();
}
void ru() {
wcout.imbue(locale(".866"));
wcin.imbue(locale(".866"));
}
void stop() {
wcin.sync();
wcin.get();
}
void input_text(wstring& text) {
wcout << L"Введите текст: ";
getline(wcin, text);
}
void output_text(wstring& text) {
wcout << text << endl;
}
void remove_wchar(wstring& text, wchar_t ch) {
string::size_type p;
while ((p = text.find(ch)) != string::npos) text.erase(p, 1);
}
void remove_vowels(wstring& text, bool output) {
wstring tmp = text;
wstring vowels = L"оаеиуяюыэёОАЕИУЯЮЭЁЫ";
string::size_type size = vowels.size(), ch = 0;
do remove_wchar(tmp, vowels.at(ch)); while (++ch != size);
if (output) output_text(tmp);
else text = tmp;
}
void replace_char_as_code(wstring& text, wchar_t ch) {
string::size_type p;
wstring ins = to_wstring(int(ch));
while ((p = text.find(ch)) != string::npos) {
text.erase(p, 1);
text.insert(p, ins);
}
}
void replace_chars_as_code(wstring& dest, wstring& src, bool output) {
wstring tmp = dest;
string::size_type size = src.size(), ch = 0;
do replace_char_as_code(tmp, src.at(ch)); while (++ch != size);
if (output) output_text(tmp);
else dest = tmp;
}
void reverse_text(wstring& text, bool output) {
wstring tmp = text;
string::size_type beg = 0, last = tmp.size() - 1;
while (beg < last) {
swap(tmp.at(beg), tmp.at(last));
++beg;
--last;
}
if (output) output_text(tmp);
else text = tmp;
}
void all_changes(wstring& dest, wstring& src, bool output) {
remove_vowels(dest, output);
replace_chars_as_code(dest, src, output);
reverse_text(dest, output);
}
#include <string>
#include <algorithm>
#include <utility>
using namespace std;
void test();
void ru();
void stop();
void input_text(wstring&);
void output_text(wstring&);
void remove_wchar(wstring&, wchar_t);
void replace_char_as_code(wstring&, wchar_t);
void remove_vowels(wstring&, bool = true);
void replace_chars_as_code(wstring&, wstring&, bool = true);
void reverse_text(wstring&, bool = true);
void all_changes(wstring&, wstring&, bool = false);
int main() {
test();
}
void test() {
ru();
wstring text = L"";
input_text(text);
wcout << L"Если удалить все гласные: ";
remove_vowels(text);
wstring gr = L"гр";
wcout << L"Если \'г\' и \'р\' заменить их кодами: ";
replace_chars_as_code(text, gr);
wcout << L"Если текст записать в обратном порядке: ";
reverse_text(text);
wcout << L"Окончательный вариант: ";
all_changes(text, gr);
output_text(text);
stop();
}
void ru() {
wcout.imbue(locale(".866"));
wcin.imbue(locale(".866"));
}
void stop() {
wcin.sync();
wcin.get();
}
void input_text(wstring& text) {
wcout << L"Введите текст: ";
getline(wcin, text);
}
void output_text(wstring& text) {
wcout << text << endl;
}
void remove_wchar(wstring& text, wchar_t ch) {
string::size_type p;
while ((p = text.find(ch)) != string::npos) text.erase(p, 1);
}
void remove_vowels(wstring& text, bool output) {
wstring tmp = text;
wstring vowels = L"оаеиуяюыэёОАЕИУЯЮЭЁЫ";
string::size_type size = vowels.size(), ch = 0;
do remove_wchar(tmp, vowels.at(ch)); while (++ch != size);
if (output) output_text(tmp);
else text = tmp;
}
void replace_char_as_code(wstring& text, wchar_t ch) {
string::size_type p;
wstring ins = to_wstring(int(ch));
while ((p = text.find(ch)) != string::npos) {
text.erase(p, 1);
text.insert(p, ins);
}
}
void replace_chars_as_code(wstring& dest, wstring& src, bool output) {
wstring tmp = dest;
string::size_type size = src.size(), ch = 0;
do replace_char_as_code(tmp, src.at(ch)); while (++ch != size);
if (output) output_text(tmp);
else dest = tmp;
}
void reverse_text(wstring& text, bool output) {
wstring tmp = text;
string::size_type beg = 0, last = tmp.size() - 1;
while (beg < last) {
swap(tmp.at(beg), tmp.at(last));
++beg;
--last;
}
if (output) output_text(tmp);
else text = tmp;
}
void all_changes(wstring& dest, wstring& src, bool output) {
remove_vowels(dest, output);
replace_chars_as_code(dest, src, output);
reverse_text(dest, output);
}
Harry Hein
wcout << L"Если удалить все гласные: "; (ошибку выдает здесь)
вавыпвыпывлодп ылп БЫДЛОКОД, АААААААААААААААААААААААА
выколите мне глаза
выколите мне глаза
Harry Hein
норм код
Harry Hein
так норм глянь)
Похожие вопросы
- Вопрос связан с олимпиадой по информатике! (Нужные знания языков pascal или c++)
- Информатика. Составить программу на языке Pascal
- Помогите составить программу на языке Pascal
- Помогите составить программу на языке Pascal
- Помогите написать 2 программы на языке pascal!
- Помогите с программой по языку Pascal, задание на записи (комбинированный тип переменной).
- Помогите написать программу на языке Pascal ABC
- Скажите язык Pascal легче C++ ?
- Проверьте программу на языке Pascal
- Как можно составить программу на языке Pascal для вычисления 100!-2 в степени 100?