Другие языки программирования и технологии
1. как в строке выбрать все русские буквы по одному разу? 2.как заполнить массив по правилу латинского квадрата?
1. у меня выбираются все русские буквы, а надо, чтобы они не повторялись (( это как то через множество делать с проверкой принадлежности элемента, но у меня не получается (( 2. заполнить так 12345 23451 34512 45123 51234 вот с этой задачей у меня вообще стопор ((
1) Непонятно что конкретно надо сделать.. .
Что значит выбрать все русские буквы по одному разу?
А принадлежность элемента русским буквам идёт вот так:
If ( S[ i ] in [ 'а'...'я' ] ) or ( S[ i ] in [ 'А'...'Я' ] ) Then ...
Проверяет входит ли элемент i строки S в множество (а... я) или (А... я) .
2) Решение такое:
VarQ,i,j:integer;
S1,S2,S:real;
Q:=12345;
Writeln(Q);
For i:=1 to 4 Do
Begin
S:=Q;
For j:=1 to 5-i Do
Begin
S:=S/10;
End;
S1:=frac(S);
For j:=1 to 5-i Do
Begin
S1:=S1*10;
End;
S2:=int(S);
Writeln(S1:1:0,S2:1:0 )
End;
Алгоритм поганый довольно.. . Но если надо просто отобразить, то сойдёт!
Что значит выбрать все русские буквы по одному разу?
А принадлежность элемента русским буквам идёт вот так:
If ( S[ i ] in [ 'а'...'я' ] ) or ( S[ i ] in [ 'А'...'Я' ] ) Then ...
Проверяет входит ли элемент i строки S в множество (а... я) или (А... я) .
2) Решение такое:
VarQ,i,j:integer;
S1,S2,S:real;
Q:=12345;
Writeln(Q);
For i:=1 to 4 Do
Begin
S:=Q;
For j:=1 to 5-i Do
Begin
S:=S/10;
End;
S1:=frac(S);
For j:=1 to 5-i Do
Begin
S1:=S1*10;
End;
S2:=int(S);
Writeln(S1:1:0,S2:1:0 )
End;
Алгоритм поганый довольно.. . Но если надо просто отобразить, то сойдёт!
Доброго времени суток.
>> как в строке выбрать все русские буквы по одному разу?
Выбрать не вопрос, как отбразить результат надо? Если порядок не играет роли, то очень просто.
M := [];
for i:=1 to Length(S) do M := M + [S[ i ]];
Фишка в том, что сколько не пихай в множестово одинаковые элементы, их там больше не станет. Т. е. после такого цикла множество М будет содержать по одному символу из исходной строки. Остается только вывести элементы.
for i:=1 to 255 do if Chr(i) in M then WriteLn(Chr(i));
Если же надо выводить символы в том же порядке, в котором они встречаются во входной строке, то можно так
M := [];
for i:=1 to Length(S) do
if not (S[ i ] in M) then begin {если символа не в множестве}
M := M + [S[ i ]]; {добавим его}
WriteLn(S[ i ]); {и выведем}
end;
Удачи!
>> как в строке выбрать все русские буквы по одному разу?
Выбрать не вопрос, как отбразить результат надо? Если порядок не играет роли, то очень просто.
M := [];
for i:=1 to Length(S) do M := M + [S[ i ]];
Фишка в том, что сколько не пихай в множестово одинаковые элементы, их там больше не станет. Т. е. после такого цикла множество М будет содержать по одному символу из исходной строки. Остается только вывести элементы.
for i:=1 to 255 do if Chr(i) in M then WriteLn(Chr(i));
Если же надо выводить символы в том же порядке, в котором они встречаются во входной строке, то можно так
M := [];
for i:=1 to Length(S) do
if not (S[ i ] in M) then begin {если символа не в множестве}
M := M + [S[ i ]]; {добавим его}
WriteLn(S[ i ]); {и выведем}
end;
Удачи!
Похожие вопросы
- дана строка содержащая латинские буквы, русские буквы и цифры. Подсчитать количество русских букв и цифр в данной строке
- Как отдельно подсчитать количество русских букв и английских букв в строке массива???
- 1.Заполнить массив случайными числами. Вывести элементы массива на экран. Заменить все его минимальные элементы нулями.
- Язык С. Помогите построить ортогональные латинские квадраты.
- Заполнить массив против часовой стрелки начиная с нижнего правого угла размер массива N*N и допустить возможность измене
- помогите!!! вопрос по C++ нужно написать программку "заполните массив так, чтобы все его элементы были различны.
- Как заполнить массив данными из Экселя в с#
- Как заполнить массив данными из Экселя в с#
- Ассемблер (TASM). Нужно ввести строку и с помощу команд обработки цепочек подсчитать кол-во русской буквы "в" в строке
- Задан массив m на n. Числа m и n вводятся вручную. Заполнить массив случайным образом. Найти произведение чисел от 10 до