Помогите решить задачу в ТР.
Условие: Даны несколько слов из русских букв; вывести на экран все буквы 'й', 'и', 'ъ', которые входят хотя бы в одно слово.
Заранее благодарна!
Я не совсем правильно понял задачу.
Теперь должно быть правильно:
[syntax='Delphi']
program wd;
const
N=10;
b='йиъ';
var
c,i,j,k:integer;
words:array[1..N] of string;
A:array[1..3] of boolean;
s:string;
begin
s:=b;
writeln('Введите количество слов');
readln(c);
writeln('Введите ',c,' слов(а)');
for i:=1 to c do
readln(words);
for i:=1 to c do
for j:=1 to length(words) do
for k:=1 to 3 do
if words[j]=s[k] then write(s[k],' ');
writeln;
readln;
end.
[/syntax]
---
{File=symbs.pas}
Ни что так не ограничивает фантазию программиста, как компилятор...
Это как посмотреть.
Если железно ясно, что в строке 3 символа(это "по условию" и, соответственно, неоспоримо), то зачем вызывать дополнительную функцию(т.е. проводить лишние вычисления), к тому же в цикле?
Оптимизация Forever !
Ни что так не ограничивает фантазию программиста, как компилятор...
MOTOCoder, не переживай, никакого вызова функций не происходит на самом деле. Перед началом цикла компилятор сохранит значение Length(b) в специальной переменной, предназначенной для хранения конечного значения цикла. В случае с константой в эту переменную тоже заносится значение, поэтому никакой разницы и выигрыша нет. По сути Length(b) транслируется в byte(b[0]) - т.е. это не функция, а обычная переменная.
It's a long way to the top if you wanna rock'n'roll
MOTOCoder писал(а):Это как посмотреть.
Если железно ясно, что в строке 3 символа(это "по условию" и, соответственно, неоспоримо), то зачем вызывать дополнительную функцию(т.е. проводить лишние вычисления), к тому же в цикле?
Оптимизация Forever !
Сколько раз выполнится цикл в следующем фрагменте?
[syntax='Delphi']var st : string;
i : integer;
begin
st := '12345678';
for i:=1 to Length (st) do
begin
writeln ('In cycle! : ', i);
Delete (st, 1, 1);
end;
end.[/syntax]
somewhere писал(а):MOTOCoder, не переживай, никакого вызова функций не происходит на самом деле. Перед началом цикла компилятор сохранит значение Length(b) в специальной переменной, предназначенной для хранения конечного значения цикла. В случае с константой в эту переменную тоже заносится значение, поэтому никакой разницы и выигрыша нет. По сути Length(b) транслируется в byte(b[0]) - т.е. это не функция, а обычная переменная.
Что-то меня действительно не туда завернуло...
Ни что так не ограничивает фантазию программиста, как компилятор...