Построение таблиц истинности для логических выражений Для логического выражения можно построить таблицу истинности, показывающую, какие значения принимает выражение при всех наборах значений входящих в него переменных. Для построения таблицы истинности следует: 1. Подсчитать n — число переменных в выражении; 2. Подсчитать общее число логических операций в выражении; 3. Установить последовательность выполнения логических операций с учётом скобок и приоритетов; 4. Определить число столбцов в таблице: число переменных + число операций; 5. Заполнить шапку таблицы, включив в неё переменные и операции в соответствии с последовательностью, установленной в п. 3; 6. Определить число строк в таблице (не считая шапки таблицы): m=2 n ; 7. Выписать наборы входных переменных с учётом того, что они представляют собой целый ряд n-разрядных двоичных чисел от 0 до 2 n −1; 8. Провести заполнение таблицы по столбцам, выполняя логические операции в соответствии с установленной последовательностью.
Var mas: array [,] of integer; i,j,m,n,s,max: integer; f:boolean; begin write('Введите размерность массива: '); readln(n); write('Введите число m: '); readln(m); setlength(mas,n+1,n+1); for i:=1 to n do begin; for j:=1 to n do begin mas[i,j]:=random(-m,m); write(mas[i,j]:6); if (j>i) and (mas[i,j]=0) then s:=s+1; end; writeln; end; j:=n; f:=false; for i:=1 to n do begin if (mas[i,j] mod 2=0) then begin if f=false then begin max:=mas[i,j]; f:=true; end; if (mas[i,j]>max) then max:=mas[i,j]; end; j:=j-1; end; writeln('Число нулей над гл.диагональю: ',s); writeln('Максимальный четный на доп.диагонали: ',max); end.
Var ma:array[1..n,1..m] of integer; ZeroCount:array[1..m] of integer; i,j,k,buf:integer; begin for i:=1 to n do for j:=1 to m do readln(ma[i][j]); writeln('Matrix:'); for i:=1 to n do begin for j:=1 to m do write(ma[i][j]:4); writeln; end; writeln('Count of zero elements:'); for j:=1 to m do begin for i:=1 to n do if ma[i][j]=0 then inc(ZeroCount[j]); writeln(j,':',ZeroCount[j]); end; for i:=1 to m-1 do for j:=i+1 to m do if ZeroCount[i]<ZeroCount[j] then begin for k:=1 to n do begin buf:=ma[k][i]; ma[k][i]:=ma[k][j]; ma[k][j]:=buf; end; buf:=ZeroCount[i]; ZeroCount[i]:=ZeroCount[j]; ZeroCount[j]:=buf; end; writeln('Final matrix:'); for i:=1 to n do begin for j:=1 to m do write(ma[i][j]:4); writeln; end; end.
Пример работы программы: Matrix: 2 0 0 -1 0 0 1 -1 -2 -2 1 -2 Count of zero elements: 1:1 2:2 3:1 4:0 Final matrix: 0 2 0 -1 0 0 1 -1 -2 -2 1 -2
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку