Изменится ли строка st, над которой произведут операцию copy? почему? чему будет равняться k после операции k: =length(‘мышь и клавиатура’)? чему будет равняться переменная tx после операции tx: =‘лесник’; delete(tx,4,3)? чему будет равняться переменная k после операции tx: =‘баобаб’; k: =pos(‘ба’,tx)? дополнить программу недостающими подсчитать количество букв “а” в тексте ( и латинских; прописных и заглавных). program zadacha1; var t: string; b: string[1]; n,k,i: integer; begin writeln('введите текст'); …………………………; n: =length(t); k: =0; for i: =1 to n do begin b: =copy(t,i,1); if ……………………………then k: =k+1; end; writeln('k=',k); end.
И так, начнём..
*Вопрос: Изменится ли строка ST, над которой произведут операцию COPY? Почему?
*ответ: Изменится, т.к. при использовании функции COPY необходимо указывать в какой строке копировать, с какой позиции, и количество символов, которое будет копировано.
**Вопрос: Чему будет равняться k после операции k:=length(‘мышь и клавиатура’)?
**ответ: Переменная k будет равна 17, т.к. функция LENGTH определяет длину строки, считая каждый пробел, запятую, буквы и т.д.
***Вопрос: Чему будет равняться переменная tx после операции tx:=‘лесник’; delete(tx,4,3)?
***ответ: Переменная tx будет равна слову лес. Функция DELETE удаляет часть символов из строки. В нашем случае удаление происходит в строке tx, с позиции 4, удаляет 3 символа.
Вопрос: Чему будет равняться переменная k после операции tx:=‘баобаб’; k:=pos(‘ба’,tx)?
ответ: Переменная k будет равна 1. Т.к. функция POS определяет первое вхождение заданного символа.
Дополненная программа:
program zadacha1;
var t: string; b: string[1]; n, k, i: integer;
begin
writeln('Введите текст: ');
readln(t);
n := length(t);
k := 0;
for i := 1 to n do begin
b := copy(t, i, 1);
if (t[i] = 'a') or (t[i] = 'A') or (t[i] = 'а') or (t[i] = 'А') then k := k + 1;
end;
writeln ('k= ', k);
end.
*Курсивом и выделением обозначены дополнения в программе.