HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail |
|
|
Var a,b:array[1..100] of real; j,k,n,i: integer; begin write('Введите количество элементов: '); readln(n); write('Введите элементы массива'); for i:=1 to n do readln(a[i]); k:=0; for i:=1 to n do if a[i]<0 then begin k:=k+1; b[k]:=a[i]; end; if k:=0 then write('таких элементов нет') else for j:=1 to k do write (b[i],' '); readln; end. |
Комментарии ОК to top Решение Автор: strike |
Uses crt; Var a: array[1..50] of integer; l,k,i,n,: integer; r: char; begin write(‘Введите размер массива: ’); readln(n); write(‘Введите элементы массива: ’); for i:= 1 to n do readln(a[i]); k:=0; for i:=2 to n do begin if a[i-1]=a[i] then l:=l+1 else begin if l>k then begin k:=l; r:=a[i]; end; l:=0; end; end; write(k,’ раз повторяется символ’,r); readln; end; |
Комментарии 1. Фоматирование, название переменных (l-маленькое заменено на m), лишние операторные скобки, в комментариях исправлены ошибки, объяснения ниже: Uses crt; Var a: array[1..50] of integer; m,k,i,n: integer; r: char; begin write('Введите размер массива: '); readln(n); write('Введите элементы массива: '); for i:= 1 to n do readln(a[i]); k:=0; { m:=1; } for i:=2 to n do if a[i-1]<>a[i] then begin if m>k then begin { ветка -1- } k:=m; r:=a[i]; { r:=a[i-1]; } end; m:=0; { m:=1; } end else m:=m+1; write(k,’ раз повторяется символ’,r); readln; end. 2. Не определена изначально переменная l (m в моих обозначениях). Должно быть: k:=0; m:=1; Обратите внимание, что изначально m=1, а не нулю! И также внутри условного оператора -- единица потому, что у нас уже есть первый символ и мы сравниваем его со вторым. Если второй равен первому, то длина цепочки 2, а не 1, как получили бы вы. То есть по идее, ваш вариант должен выдавать результат на единицу меньше положенного и соответственно работать неправильно. 3. Еще одна ошибка в операторе r:=a[i]; Я поменял здесь индекс: r:=a[i-1]; Смотрите, например для массива (15): a: 0,1,2,1,0,1,2,2,2,2,1,0,1,2,2 i: 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 ветка -1- будет работать при i=11 (a[7]=2;a[8]=2;a[9]=2;a[10]=2;a[11]=1). При этом a[i]=1, а наибольшая цепочка -- цепочка из четырех двоек. to top
Автор: Moderator |
const yst : array[0..9] of String[5] = ('let','god','goda','goda','goda','let','let','let','let','let'); var year,y,k,e:word; s:String; begin writeln; for y := 0 to 199 do begin year:= y mod 100; k:= year div 10; e:= year mod 10; s:='let'; if (k<>1) then s:=yst[e]; write(y,' ',s,'; '); end; end. |
Комментарии to top Решение Автор: Moderator |
program bolshe; { author Valeriy } uses crt; var a, b, c, d, bol, bol2: real; begin; clrscr; writeln('введите четыре числа через пробел'); read(a, b, c, d); if a>b then bol:=a else bol:=b; if c>d then bol2:=c else bol2:=d; if bol>bol2 then writeln('большее число',bol:5:5) else writeln('большее число',bol2:5:5); readkey; end. |
HOME EXAMPLES |
|