Значения двух массивов a[1..100] и b[1..100] с следующего фрагмента программы: for n: =1 to 100 doa[n] : = n - 10; for n: =1 to 100 dob[n] : = a[n]*n; сколько элементов массива b будут иметь положительные значения? 1) 10 2) 50 3) 90 4) 100
Скорее всего ответ 3)90, так как a[1]=-9- это отприц.число, a[10]=0-это никакое число, и начиная от a[11] до a[100] все числа массива b будут положительными ответ: 3)90
mez-omts-d5
10.09.2021
//pascal abc.net v3.1 сборка 1172 type re=record name: string; res: integer; end; const n=3; var ar: array[1..n] of re; i,j,c: integer; cs: string; begin; for i: =1 to n do begin write('введите имя участника №',i,': '); readln(ar[i].name); write('введите результат участника №',i,': '); readln(ar[i].res); end; for i: =1 to n-1 do for j: =i to n do if ar[i].res> ar[j].res then begin; c: =ar[i].res; ar[i].res: =ar[j].res; ar[j].res: =c; cs: =ar[i].name; ar[i].name: =ar[j].name; ar[j].name: =cs; end; for i: =1 to n do writeln(i,' ',ar[i].name,' ',ar[i].res); end. пример ввода: двачевская 23 персунов 22 хацуне 3 пример вывода: 1 хацуне 3 2 персунов 22 3 двачевская 23
nzagrebin363
10.09.2021
{вариант с поиском, пока что просто решил игнорировать 0, раз он все равно в конце} var s: string; i,j,k,l: integer; t,f: boolean; mi,mj: integer; x,y: array[boolean] of integer; begin mi : = 1; mj : = 0; readln(s); l : = length(s); //- 1; {оканчивается на 0? } k : = 1; f : = true; while f and (k < = l) do begin f : = s[k] < > '0'; if f then k : = k + 1 end; x[false] : = 1; y[false] : = k - 1; x[true] : = k + 1; y[true] : = l; for f : = false to true do for i : = x[f] to y[f] do begin j : = y[f]; while j - i > = mj - mi do begin t : = true; k : = 0; while t and (k < = (j - i) div 2) do begin t : = s[i + k] = s[j - k]; k : = k + 1 end; if t then if j - i > mj - mi then begin mi : = i; mj : = j; end else if j - i = mj - mi then begin k : = 0; t : = true; while t and (k < = j - i) do begin t : = s[i + k] = s[mi + k]; if t then k : = k + 1 end; t : = not t; if t then t : = s[i + k] < s[mi + k]; if t then begin mi : = i; mj : = j; end end; j : = j - 1 end end; for k : = mi to mj do write(s[k]) end. {вариант с составлением} var a: array['1'..'9'] of integer; i: integer; c: char; t: boolean; begin for c : = '1' to '9' do a[c] : = 0; repeat read(c); if (c > = '1') and (c < = '9') then a[c] : = a[c] + 1; until c = '0'; for c : = '1' to '9' do for i : = 1 to a[c] div 2 do write(c); c : = '1'; t : = true; while t and (c < = '9') do begin if odd(a[c]) then begin write(c); t : = false end; c : = succ(c) end; for c : = '9' downto '1' do for i : = 1 to a[c] div 2 do write(c) end.