Вот это уже лучше и вроде работает оператор goto используется для перемещения между операциями(сложить вычесть считать), выходом и меню.
label sum,razn,menu,re,ex; var m,a,b : integer; begin menu : writeln ('1 - считать числа'); writeln ('2 - сложить числа'); writeln ('3 - вычесть числа'); writeln ('0 - выход'); readln (m); case m of //Если не знаешь case то можешь заменить операторами if 1 : goto re; // Пример if m = 1 then goto re; 2 : goto sum; // if m = 2 then goto sum; //и т.д 3 : goto razn; 0 : goto ex; end;
re : writeln ('Введите числа (a b)'); readln (a,b); goto menu;
sum : writeln ('Сумма =',a+b); goto menu;
razn : writeln ('Разность =',a-b); goto menu;
ex : writeln ('До встречи'); sleep (1000); // просто задержка перед закрытием на 1с end.
Насколько мне известно в программирование оператор goto популярностью не пользуется и вообще его стараются избегать
Const n=50; { максимальное число различных слов в строке } del=[' ','.',',',':',';','-','!','?','/']; var mw:array[1..n] of string; { найденные слова } mk:array[1..n] of integer; { количество повторений слов } s,w:string; i,j,k,l,m:integer; skip,new_word:boolean; begin Write('Введите текст: '); Readln(s); s:=s+' '; Write('Укажите предельное число повторений слова: '); Read(k); l:=Length(s); m:=0; skip:=(s[1] in del); if skip then w:='' else w:=s[1]; for i:=2 to l do if s[i] in del then begin if not skip then begin { w содержит очередное найденное слово } j:=1; new_word:=true; while (j<=m) and new_word do begin if w=mw[j] then begin Inc(mk[j]); new_word:=false end; Inc(j) end; if new_word then begin Inc(m); mw[m]:=w; mk[m]:=1 end; w:=''; skip:=true end end else if skip then begin w:=s[i]; skip:=false end else w:=w+s[i]; { фраза разобрана и проанализирована } j:=0; i:=1; while (i<=m) and (j=0) do begin if mk[i]>k then j:=i; Inc(i) end; if j>0 then begin Writeln('Слова, которые встретились больше, чем ',k,' раз:'); Writeln(mw[j]); for i:=j+1 to m do if mk[i]>k then Writeln(mw[i]); end else Writeln('Нет слов, которые встретились больше, чем ',k,' раз.') end.
Тестовое решение: Введите текст: еду, еду в чистом поле; колокольчик дин-дин-дин... страшно, страшно поневоле средь неведомых равнин! Укажите предельное число повторений слова: 1 Слова, которые встретились больше, чем 1 раз: еду дин страшно
writeln();
goto metk;
end.
Вот это уже лучше и вроде работает
оператор goto используется для перемещения между операциями(сложить вычесть считать), выходом и меню.
label
sum,razn,menu,re,ex;
var
m,a,b : integer;
begin
menu :
writeln ('1 - считать числа');
writeln ('2 - сложить числа');
writeln ('3 - вычесть числа');
writeln ('0 - выход');
readln (m);
case m of //Если не знаешь case то можешь заменить операторами if
1 : goto re; // Пример if m = 1 then goto re;
2 : goto sum; // if m = 2 then goto sum; //и т.д
3 : goto razn;
0 : goto ex;
end;
re :
writeln ('Введите числа (a b)');
readln (a,b);
goto menu;
sum :
writeln ('Сумма =',a+b);
goto menu;
razn :
writeln ('Разность =',a-b);
goto menu;
ex :
writeln ('До встречи');
sleep (1000); // просто задержка перед закрытием на 1с
end.
Насколько мне известно в программирование оператор goto популярностью не пользуется и вообще его стараются избегать
n=50; { максимальное число различных слов в строке }
del=[' ','.',',',':',';','-','!','?','/'];
var
mw:array[1..n] of string; { найденные слова }
mk:array[1..n] of integer; { количество повторений слов }
s,w:string;
i,j,k,l,m:integer;
skip,new_word:boolean;
begin
Write('Введите текст: ');
Readln(s);
s:=s+' ';
Write('Укажите предельное число повторений слова: ');
Read(k);
l:=Length(s);
m:=0;
skip:=(s[1] in del);
if skip then w:='' else w:=s[1];
for i:=2 to l do
if s[i] in del then begin
if not skip then begin
{ w содержит очередное найденное слово }
j:=1; new_word:=true;
while (j<=m) and new_word do begin
if w=mw[j] then begin Inc(mk[j]); new_word:=false end;
Inc(j)
end;
if new_word then begin Inc(m); mw[m]:=w; mk[m]:=1 end;
w:=''; skip:=true
end
end
else
if skip then begin w:=s[i]; skip:=false end
else w:=w+s[i];
{ фраза разобрана и проанализирована }
j:=0; i:=1;
while (i<=m) and (j=0) do begin
if mk[i]>k then j:=i;
Inc(i)
end;
if j>0 then begin
Writeln('Слова, которые встретились больше, чем ',k,' раз:');
Writeln(mw[j]);
for i:=j+1 to m do
if mk[i]>k then Writeln(mw[i]);
end
else Writeln('Нет слов, которые встретились больше, чем ',k,' раз.')
end.
Тестовое решение:
Введите текст: еду, еду в чистом поле; колокольчик дин-дин-дин... страшно, страшно поневоле средь неведомых равнин!
Укажите предельное число повторений слова: 1
Слова, которые встретились больше, чем 1 раз:
еду
дин
страшно