С оператора множественного выбора case,напишите программу ,которая по вводимому числу определяет возрастную категорию. Если 1...6 лет дошкольник ,7 ...17 школьник ,1860 рабочий, 61...100 пенсионер.
var a: array[1..n, 1..n] of integer; i, j: integer; HasNull: Boolean;
begin Randomize; writeln('Исходная матрица'); HasNull := False; for i := 1 to n do begin for j := 1 to n do begin a[i, j] := Random(100) - 50; if a[i, j] = 0 then HasNull := True; write(a[i, j]:5); end; writeln end; if HasNull then writeln('Матрица имеет нулевые элементы') else writeln('Матрица не имеет нулевых элементов') end.
procedure GetWord(s: string; var ib: integer; var pWord: string; var l: integer); // Возвращает слово pWord, которое является подстрокой s // Разделителем слов являются один и более пробелов. // ib при вызове процедуры указывает на позицию в строке s, // начиная с которой ведется поиск слова. // При выходе из процедуры ib - позиция начала найденного слова, // l- длина найденного слова, l=0 если слово не найдено. var i, n: integer; w: string; begin n := Length(s); l := 0; w := ''; if ib >= n then begin ib := n; pWord := '' end else begin i := ib; while (s[i] = ' ') and (i < n) do i := i + 1; ib := i; w := ''; while (s[i] <> ' ') and (i < n) do begin w := w + s[i]; i := i + 1 end; if i < n then begin l := i - ib; pWord := w end else begin l := i - ib + 1; pWord := w + s[n] end; if pWord[l]='.' then pWord:=Copy(pWord,1,l-1) end end;
procedure SortWords(n:integer); // Сортировка первых n элементов массива ast var i,j:integer; s:string; begin for i:=1 to n-1 do begin if ast[i]>ast[i+1] then begin s:=ast[i]; ast[i]:=ast[i+1]; ast[i+1]:=s; j:=i; while j>1 do if ast[j]<ast[j-1] then begin s:=ast[j]; ast[j]:=ast[j-1]; ast[j-1]:=s; j:=j-1 end else j:=0 end end end;
var s,st:string; p,n,i,len:integer; Flag:Boolean; begin st:=' aquila non captat muscas '; st:=st+'dolus an virtus quis in hoste requirat '; st:=st+'de mortuis aut bene aut nihil '; st:=st+'esse oportet ut vivas non vivere ut edas.'; p:=1; i:=1; len:=1; n:=0; while len>0 do begin GetWord(st,p,ast[i],len); if len>0 then begin p:=p+len; n:=n+1; i:=i+1 end end; for i:=1 to n do write(ast[i],' '); SortWords(n); writeln; writeln; s:=ast[1]; Flag:=True; for i:=2 to n do if ast[i]<>s then begin If Flag then write(s,' ') else Flag:=True; s:=ast[i]; end else Flag:=False; if Flag then write(ast[n],' '); writeln end.
Тестовое решение: aquila non captat muscas dolus an virtus quis in hoste requirat de mortuis aut bene aut nihil esse oportet ut vivas non vivere ut edas
an aquila bene captat de dolus edas esse hoste in mortuis muscas nihil oportet quis requirat virtus vivas vivere
n = 15;
var
a: array[1..n, 1..n] of integer;
i, j: integer;
HasNull: Boolean;
begin
Randomize;
writeln('Исходная матрица');
HasNull := False;
for i := 1 to n do
begin
for j := 1 to n do
begin
a[i, j] := Random(100) - 50;
if a[i, j] = 0 then HasNull := True;
write(a[i, j]:5);
end;
writeln
end;
if HasNull then writeln('Матрица имеет нулевые элементы')
else writeln('Матрица не имеет нулевых элементов')
end.
Тестовое решение:
Исходная матрица
16 23 -50 14 -44 15 -28 8 40 -43 -4 31 -11 -24 -15
31 -37 -42 2 15 23 -8 -19 14 -35 -5 -30 41 11 -18
-44 -3 30 -34 40 39 -7 -8 -6 -16 29 -11 -43 39 28
5 37 42 46 13 -27 -39 2 -19 -45 -27 -8 -14 -2 11
-6 -20 47 8 -49 48 -50 -28 -15 -4 -13 20 14 -32 35
-17 -16 -8 35 10 7 -22 45 47 -41 45 45 -2 -39 17
-3 -43 43 32 39 -2 -9 -1 37 29 4 15 7 0 -24
2 -4 -17 -5 21 38 49 0 37 -47 -34 -15 -50 -2 -45
-47 2 -40 18 48 -20 27 31 -21 -13 42 35 4 -45 -44
42 20 -6 21 6 -2 11 -48 -10 28 -3 6 -45 29 22
-38 -9 -50 32 26 -49 4 38 1 46 24 15 -46 -42 29
-47 -5 -6 31 -39 -5 40 -21 41 7 -9 -1 20 39 1
23 21 -48 6 -26 0 35 22 -21 -46 -12 32 42 24 32
32 7 44 11 25 -49 -38 -26 17 -24 -28 -38 -42 -25 -16
2 33 48 -50 -27 -47 13 -2 34 -22 -32 23 -35 26 22
Матрица имеет нулевые элементы