Const n=20; type omas=array[1..n] of integer; Procedure Del (var z:omas; k:byte); var i:byte; begin for i:=k to n-1 do z[i]:=z[i+1]; z[n]:=0; end; var a:omas; i,b:integer; begin Randomize; for i:=1 to n do begin a[i]:=random(20); write(a[i]:4); end; writeln; b:=6; i:=1; while (i<=n)and(a[i]<>b) do i:=i+1; if i<=n then begin Del(a,i); writeln('Размерность массива = ',n-1); for i:=1 to n-1 do write(a[i]:4); writeln; end else writeln('Массив не изменился'); end. Пример: 12 13 6 7 17 1 18 17 3 2 12 3 16 6 7 13 0 2 5 18 Размерность массива = 19 12 13 7 17 1 18 17 3 2 12 3 16 6 7 13 0 2 5 18
Решать подобные задачи использование диаграмм. Очертим три окружности, означающие драмкружок, спортсменов и хор. Области пересечений окружностей означают одновременную принадлежность к двум или трем категориям занятий. Начнем заполнение. 1. Всем трем областям соответствует условие "3 спортсмена посещают и драмкружок, и хор)". Ставим число 3 (помечено красным). 2. В драмкружке 10 ребят из хора. Следовательно, в области пересечения "Драмкружок+хор" должно находиться число 10. Но часть этой области пересекается с областью, где находятся все три категории занятий, поэтому из 10 вычитаем стоящую в этой области красную тройку и получаем число 7 (помечено синим). Т.е. посещают драмкружок и хор, но не занимаются спортом 7 человек. 3. В хоре 6 спортсменов. Рассуждая аналогично (2) получаем синее число 3. 4. В драмкружке 8 спортсменов. Получаем синее число 5. 5. 27 ребят занимаются в драмкружке. Вычитаем из этого количества число ребят, принадлежащее общим областям 7+5+3=15 и получаем 27-15=12 человек, которые занимаются только в драмкружке. 6. Аналогично получаем 11 спортсменов и 19 участников хора. 7. Всего 70 учеников. Вычитая количество учеников, которые чем-либо заняты, определяем, что 10 человек не заняты ничем. 8. Только спортом, как видно из рисунка, занимаются 11 человек
¬A∧B∧C. К такому же выражению приводится ответ 4), если отбросить скобки, которые там не нужны.