В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Nikikiki303
Nikikiki303
29.04.2020 21:23 •  Информатика

Дан фрагмент таблицы истинности выражения f проверить все строки на выполнения истиности


Дан фрагмент таблицы истинности выражения f проверить все строки на выполнения истиности

Показать ответ
Ответ:
arinayakovenkop09u55
arinayakovenkop09u55
18.01.2021 13:51

Во-первых хотелось бы узнать, почему у тебя в 24 строчке странная запись:

if (P else F:=false;

Здесь непонятно, к чему написана скобка, а также непонятно, куда затерялся синтаксический then.

Во-вторых - почему в той же строчке сравниваешь тип real с типом boolean? На это ругается даже компилятор.

В-третьих - если мы опустим эти недочёты и вникнем в алгоритм, то поймём, что ты зациклил условие проверки P на истинность до тех пор, пока i не будет больше n или пока F не станет ложью. Но тут подвох в чём? В этом цикле ты не производишь никаких действий над операторами в условии, кроме как присваивание булевой переменной F значение false, чему оно и равно изначально. То есть можно сказать, что у тебя здесь происходит бесконечное зацикливание. Скорее всего именно поэтому у тебя не выводится массив, потому что компилятор не в состоянии дойти до строчки вывода. Чтобы хотя бы часть условия выполнилась, тебе нужно в условии if..then..else присваивать F не false, а true. Но это только в том случае, если ты исправишь конструкцию условия.

0,0(0 оценок)
Ответ:
zlodej
zlodej
18.01.2021 13:51

const n=10;

var a:array [1..n] of real;

i,j,k:integer;

s,v:real;

begin

write(' Исходный массив: ');

for i:=1 to n do

begin

a[i]:=random*20-10;

write(a[i]:7:2);

if a[i]<0 then

begin

s:=s+a[i]*a[i];

k:=k+1

end;

if a[i]>0 then a[i]:=i

end;

writeln;

write('Преобразованый массив: ');

for i:=1 to n do write(a[i]:7:2);

writeln;

for i:=1 to n do

for j:=1 to n-i do

if a[j]>a[j+1] then

begin

v:=a[j];

a[j]:=a[j+1];

a[j+1]:=v

end;

write('Отсортированый массив: ');

for i:=1 to n do write(a[i]:7:2);

writeln;

writeln('Среднее арифметическое квадратов отрицательных чисел равно ',s/k:0:2);

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота