Написать код дан файл, содержащий текст на языке и некоторые два слова. определить, сколько раз они встречаются в тексте и сколько из них — непосредственно друг за другом.
Program primer; var f: text; i, j, h: byte; l, k: smallint; s, s1, s2, m: string; begin assign(f, 'F.txt'); {путь к файлу} reset(f); read(f, s); s := ' ' + s + ' '; close(f); writeln('укажите 2 слова через строчку'); readln(s1); readln(s2); i := 0; j := 0; m := s; k := 1; while k <> 0 do begin k := pos(' ' + s1 + ' ', m); if (k <> 0) then inc(i); delete(m, 1, k + length(s1)); end; k := 1; m := s; while k <> 0 do begin k := pos(' ' + s2 + ' ', m); if (k <> 0) then inc(j); delete(m, 1, k + length(s2)); end; m := s; k := 1; h:=0; while (k <> 0) or (l <> 0) do begin k := pos(' ' + s1 + ' ' + s2 + ' ', m); l := pos(' ' + s2 + ' ' + s1 + ' ', m); if (k <> 0) or (l <> 0) then inc(h); delete(m, 1, k + l + length(s2 + s1) + 1); end; writeln('количество слов соответствующих первому = ', i); writeln('количество слов соответствующих второму = ', j); writeln('непосредственно друг за другом х', h); end.
var n,a,k,sum,i,j: integer; s: string; begin sum:=0; write ('Введите количество чисел: '); readln (n); for i:=1 to n do begin write ('Введите число: '); readln (a); Str(a,s); k:=0; for j:=1 to length(s) do if s[j]='5' then k:=k+1; if k=2 then sum:=sum+a; end; writeln ('Sum = ',sum); end.
2 вариант через div и mod
var n,a,x,k,sum,i: integer; begin sum:=0; write ('Введите количество чисел: '); readln (n); for i:=1 to n do begin write ('Введите число: '); readln (a); x:=abs(a); k:=0; while x>0 do begin if x mod 10 =5 then k:=k+1; x:=x div 10; end; if k=2 then sum:=sum+a; end; writeln ('Sum = ',sum); end.
пример результата:
Введите количество чисел: 3 Введите число: 550001 Введите число: -550000 Введите число: 123456 Sum = 1
Var xl,xr,h,x:real; i:integer; begin Write('Введите левую и правую границы изменения х, затем шаг: '); Read(xl,xr,h); for i:=1 to Trunc((xr-xl)/h)+1 do begin x:=xl+(i-1)*h; Writeln(x:0:4,' ',abs(sin(x))+cos(abs(x))) end end.
Пример Введите левую и правую границы изменения х, затем шаг: 1.2 3 0.18 1.2000 1.2943968404439 1.3800 1.17149436167019 1.5600 1.01073783728823 1.7400 0.817321730886476 1.9200 0.597495822534427 2.1000 0.358363262049017 2.2800 0.107651047653376 2.4600 -0.146539653537401 2.6400 -0.395995275405633 2.8200 -0.632655254626053 3.0000 -0.848872488540578
var
f: text;
i, j, h: byte;
l, k: smallint;
s, s1, s2, m: string;
begin
assign(f, 'F.txt'); {путь к файлу}
reset(f);
read(f, s);
s := ' ' + s + ' ';
close(f);
writeln('укажите 2 слова через строчку');
readln(s1);
readln(s2);
i := 0; j := 0; m := s; k := 1;
while k <> 0 do
begin
k := pos(' ' + s1 + ' ', m);
if (k <> 0) then inc(i);
delete(m, 1, k + length(s1));
end;
k := 1; m := s;
while k <> 0 do
begin
k := pos(' ' + s2 + ' ', m);
if (k <> 0) then inc(j);
delete(m, 1, k + length(s2));
end;
m := s; k := 1; h:=0;
while (k <> 0) or (l <> 0) do
begin
k := pos(' ' + s1 + ' ' + s2 + ' ', m);
l := pos(' ' + s2 + ' ' + s1 + ' ', m);
if (k <> 0) or (l <> 0) then inc(h);
delete(m, 1, k + l + length(s2 + s1) + 1);
end;
writeln('количество слов соответствующих первому = ', i);
writeln('количество слов соответствующих второму = ', j); writeln('непосредственно друг за другом х', h);
end.