Предмет: Информатика,
автор: bysenkimer
Нужна помощь в паскале!!!
Написать массив 5 строк 10 столбцов из случайных слов в которых есть как заглавные так и не заглавные буквы.
Первая строка N заменяет X
Вторая строка X заменяет на M
Третья строка инвитирует всю строку и каждую букву
Четвёртая строка строчные меняет на прописные
Прописные на заглавные.
Эти процедуры должны быть оформлены отдельно для каждой строки, также должен быть выбор процедур выполнения.
Вывести на экран начальный и конечный массив и записать в файл
Готов за ращение даже заплатить рублей 300-400
bysenkimer:
или там что-то через random было связано
Создай дополнительный массив-алфавит на основе ASCII
И из его элементов случайным образом составляй слова.
Третья процедура инвертирует строку и каждое слово.
А не букву.
Ответы
Автор ответа:
0
uses crt;
const
n = 5;
m = 10; {кол-во столбцов}
l = 10; {максимальная длина одной строки/слова}
{letters = 'ABCDEFGHIJKLMNNNNNNNNNNNNOPQRSTUVWXXXXXXXXXXYZabcdefghijklmnopqrstuvwxyz';}
file_path = 'data.txt';
type
SmallString = string[l];
WordsMas = array[1..n, 1..m] of SmallString;
var
words: WordsMas;
i, j, k: integer;
function RandomWord(n: integer): SmallString;
var
i: integer;
s: SmallString;
letters: string;
begin
letters := 'ABCDEFGHIJKLMNNNNNNNNNNNNOPQRSTUVWXXXXXXXXXXYZabcdefghijklmnopqrstuvwxyz';
s := '';
for i := 1 to n do
s := s + letters[Random(length(letters) - 1) + 1];
RandomWord := s;
end;
function Replace(s, find_text, replace_text: SmallString): SmallString;
var
i: integer;
begin
repeat
i := pos(find_text, s);
if i <> 0 then begin
delete(s, i, length(find_text));
insert(replace_text, s, i);
end;
until i = 0;
Replace := s;
end;
function Invert(s: SmallString): SmallString;
var
i: integer;
t: SmallString;
begin
t := '';
for i := 1 to length(s) do
t := s[i] + t;
Invert := t;
end;
function SwapCase(s: SmallString): SmallString;
var
i: integer;
begin
for i := 1 to length(s) do
if s[i] = upcase(s[i]) then
s[i] := chr(ord(s[i]) + 32)
else s[i] := upcase(s[i]);
SwapCase := s;
end;
procedure PrintMas(mas: WordsMas; name: string);
var
i, j: integer;
f: text;
begin
writeln(name);
for i := 1 to n do
begin
write(i, ': ');
for j := 1 to m do
write(mas[i, j]:l, '; ');
writeln;
end;
Assign(f, file_path);
Append(f);
writeln(f, name);
for i := 1 to n do
begin
write(f, i, ': ');
for j := 1 to m do
write(f, mas[i, j]:l, '; ');
writeln(f);
end;
Close(f);
end;
begin
Randomize;
ClrScr;
for i := 1 to n do
for j := 1 to m do
words[i, j] := RandomWord(Random(l - 5) + 5);
{words[i, j] := 'GoodXXMMNN';}
PrintMas(words, 'Original');
for i := 1 to n do
for j := 1 to m do
case i of
1: words[i, j] := Replace(words[i, j], 'N', 'X');
2: words[i, j] := Replace(words[i, j], 'X', 'M');
3: words[i, j] := Invert(words[i, j]);
4: words[i, j] := SwapCase(words[i, j]);
end;
PrintMas(words, 'New One');
Readln;
end.
Проверялось. Работает на Турбо паскале
const
n = 5;
m = 10; {кол-во столбцов}
l = 10; {максимальная длина одной строки/слова}
{letters = 'ABCDEFGHIJKLMNNNNNNNNNNNNOPQRSTUVWXXXXXXXXXXYZabcdefghijklmnopqrstuvwxyz';}
file_path = 'data.txt';
type
SmallString = string[l];
WordsMas = array[1..n, 1..m] of SmallString;
var
words: WordsMas;
i, j, k: integer;
function RandomWord(n: integer): SmallString;
var
i: integer;
s: SmallString;
letters: string;
begin
letters := 'ABCDEFGHIJKLMNNNNNNNNNNNNOPQRSTUVWXXXXXXXXXXYZabcdefghijklmnopqrstuvwxyz';
s := '';
for i := 1 to n do
s := s + letters[Random(length(letters) - 1) + 1];
RandomWord := s;
end;
function Replace(s, find_text, replace_text: SmallString): SmallString;
var
i: integer;
begin
repeat
i := pos(find_text, s);
if i <> 0 then begin
delete(s, i, length(find_text));
insert(replace_text, s, i);
end;
until i = 0;
Replace := s;
end;
function Invert(s: SmallString): SmallString;
var
i: integer;
t: SmallString;
begin
t := '';
for i := 1 to length(s) do
t := s[i] + t;
Invert := t;
end;
function SwapCase(s: SmallString): SmallString;
var
i: integer;
begin
for i := 1 to length(s) do
if s[i] = upcase(s[i]) then
s[i] := chr(ord(s[i]) + 32)
else s[i] := upcase(s[i]);
SwapCase := s;
end;
procedure PrintMas(mas: WordsMas; name: string);
var
i, j: integer;
f: text;
begin
writeln(name);
for i := 1 to n do
begin
write(i, ': ');
for j := 1 to m do
write(mas[i, j]:l, '; ');
writeln;
end;
Assign(f, file_path);
Append(f);
writeln(f, name);
for i := 1 to n do
begin
write(f, i, ': ');
for j := 1 to m do
write(f, mas[i, j]:l, '; ');
writeln(f);
end;
Close(f);
end;
begin
Randomize;
ClrScr;
for i := 1 to n do
for j := 1 to m do
words[i, j] := RandomWord(Random(l - 5) + 5);
{words[i, j] := 'GoodXXMMNN';}
PrintMas(words, 'Original');
for i := 1 to n do
for j := 1 to m do
case i of
1: words[i, j] := Replace(words[i, j], 'N', 'X');
2: words[i, j] := Replace(words[i, j], 'X', 'M');
3: words[i, j] := Invert(words[i, j]);
4: words[i, j] := SwapCase(words[i, j]);
end;
PrintMas(words, 'New One');
Readln;
end.
Проверялось. Работает на Турбо паскале
Похожие вопросы
Предмет: История,
автор: kolesnikovaval2
Предмет: Қазақ тiлi,
автор: csgocsgo780
Предмет: Математика,
автор: Аноним
Предмет: Алгебра,
автор: Болгобхан678
Предмет: Математика,
автор: викитория3