2.Write sentences using the correct form of the present continuous 1. My mother-in-law (stay) at our house.
2. Why (not) he (play) football tomorrow?
3. The weather is better now. It (not rain) any more.
4. Now Mrs. Rose (look) out of the window.
5. Look out of the window. The sun again. (shine)
6. Be quiet! Bill and I (study) for a test.
7. They (lie) on the beach and Susan (have) a drink.
Summative Asesment
Речь идет об использовании встроенной функции языка Паскаль - функции Pos. Конечно, использование функции PosEx, появившейся в Pascal.ABC, было бы эффективнее, но будем придерживаться классической версии.
Функция Pos позволяет найти позицию первого от начала строки вхождения в эту строку подстроки. Если вхождения нет - функция возвращает ноль. Принимая оставшуюся после найденного вхождения часть строки за новую строку и повторяя поиск, можно найти все вхождения.
Задание не говорит, как организован ввод текста. Дело в том, что в Паскале строка не может содержать переход к новой строке, а текст задан двумя строками. Можно организовать ввод двух строк, можно задать текст строковыми константами, можно организовать ввод из файла. Считая, что смысл задания в поиске вхождений, принимаем задания текста несущественным и задаем текст двумя строковыми константами. Это потребует выполнения алгоритма для каждой строки, следоватеьно, нам потребуется пользовательская функция, к которой мы будем обращаться.
const
c1='Не давши слово-крепись,';
c2='А давши - Держись';
cc='давши'; { искомый контекст }
function Kol(c,ci:string):integer;
{количество вхождений ci а c }
var
p,k,l,li:integer;
begin
k:=0;
li:=Length(ci);
l:=Length(c);
repeat
p:=Pos(ci,c);
if p>0 then
begin
l:=Length(c);
Inc(k);
if p+li<l then c:=Copy(c,p+li,l-(p+li-1))
end
until (p=0) or (p+li>=l);
Kol:=k
end;
begin
Writeln('Количество вхождений равно ',Kol(c1,cc)+Kol(c2,cc))
end.
Вывод решения:
Количество вхождений равно 2
var A : Array [1..10] of integer;
i, mini, maxi, min,max, c,k: integer;
begin
for i := 1 to n do
begin
A[i] := random(10);
write(' ',A[i]);
end;
maxi:=1;
mini:=1;
For i:=1 to n do
begin
min:=A[1];
If A[i]>max then
begin
max:=A[i];
maxi:=i;
end;
If A[i]<min then
begin
min:=A[i];
mini:=i;
end;
c:=A[maxi];
A[maxi]:=A[mini];
A[mini]:=c;
end;
Writeln;
for i:=1 to n do
begin
Write(' ',a[i]);
end;
Writeln;
for i:=1 to n do
begin
If a[i]>4 then
begin
a[i]:=4;
inc(k);
end;
Write(' ',a[i]);
end;
Writeln;
Write('Количество: ',k);
end.