На языке Паскаль
1. Ввести 2 числа. Если их произведение отрицательно, умножить его на 2 и вывести на экран, в противном случае увеличить его в 1,5 раза и вывести на экран. ( написать программу, начертить блок-схему)
2. Ввести 2 числа. Вычесть из большего меньшее.
3. Ввести число. Если оно четно, разделить его на 4, если нечетное-умножить на 5.
//Заполнение массива случайными числами
var
A: array[1..255] of integer;
i, sum, N: integer;
begin
write('Введите N: '); readln(N);
randomize; //В PascalABC.NET можно убрать
for i := 1 to N do
begin
A[i] := random(21)-10; //Случайные числа от -10 до 10
if ((A[i] mod 2 <> 0) and (A[i] < 0)) then sum := sum + A[i];
write(A[i], ' ');
end;
writeln;
writeln('Сумма отрицательных и нечетных = ', sum);
readln;
end.
//Pascal
//Заполнение массива с клавиатуры
var
A: array[1..255] of integer;
i, sum, N: integer;
begin
write('Введите N: '); readln(N);
for i := 1 to N do
begin
write('A[', i, '] = '); readln(A[i]);
if ((A[i] mod 2 <> 0) and (A[i] < 0)) then sum := sum + A[i];
end;
writeln;
writeln('Сумма отрицательных и нечетных = ', sum);
readln;
end.
Объяснение:
a,b и c - логические переменные. Принимают значение "Истина" или "Ложь".
Соответственно, выражение a:= (x[i] = 0) and a означает, что a принимает значение "Истина" только при одновременном выполнении обоих условий: x[i] = 0 - истинное высказывание и значение а - "Истина".
Точно также выражение b:= ( not(c) and (x[i] > 0) or b; означает, что b принимает значение "Истина" в любом из двух случаев
1)при одновременном выполнении обоих условий: значение c - "Ложь" и x[i] > 0 - истинное высказывание.
2) Значение b - "Истина"
Последнее выражение c:= ( not(b) and (x[i] < 0) ) or c; аналогично предыдущему: с принимает значение "Истина" в любом из двух случаев:
1)при одновременном выполнении обоих условий: значение b - "Ложь" и x[i] < 0 - истинное высказывание.
2) Значение c - "Истина"