Консультация № 159922
08.02.2009, 13:09
0.00 руб.
0 1 1
1. Даны целые числа а1,...,а25, в1,...,в25. Преобразовать последовательность в1,...,в25 по правилу: если а1<=0, то в1 увеличить в 10 раз, иначе в1 заменить нулем (і=1,...,25).

2. Даны целые числа m, а1,...,а20. Найти три натуральных числа i, j, k, каждое из которых не превосходит 20, такие, что аi+aj+ak=m. Если таких чисел нет, то сообщфть об этом.

3. Дано натуральное число n. Выяснить, сколько положительных элементов содежит матрица [ai]i, j=1,.., n,если aij= sin(i+j/2).

Обсуждение

Неизвестный
08.02.2009, 14:31
общий
это ответ
Здравствуйте, Alexeev Olexander!
Код задач с коментариями:
1)
Код:
const
{Длина последовательности}
N = 25;

var
{последовательности}
a, b: array [1..N] of integer;
i: integer;

begin
{Заполняем случайными числами от -5 до 4 и выводим на экран обе последовательность}
randomize;
Write('Последовательность a: ');
for i := 1 to N do
begin
a[i] := random(10) - 5;
write(a[i], ' ');
end;
WriteLn;
Write('Последовательность b: ');
for i := 1 to N do
begin
b[i] := random(10) - 5;
write(b[i], ' ');
end;
WriteLn;

{обрабатываем b}
for i := 1 to N do
{если a[i] <= 0, то увеличиваем b[i] в 10 раз, иначе b[i] := 0}
if a[i] <= 0 then
b[i] := b[i] * 10
else
b[i] := 0;

{Выводим результат}
Write('Результат работы: ');
for i := 1 to N do
write(b[i], ' ');
readln;
end.

2)
Код:
const
n = 20;

var
m, k, i, j: integer;
a: array [1..N] of integer;

begin
randomize;
{Заполняем последовательность случайными числами}
Write('Числа a1, .., a20: ');
for i := 1 to N do
begin
a[i] := random(20) - 10;
write(a[i], ' ');
end;
WriteLn();

{Получаем m}
Write('Введите m: ');
ReadLn(m);

{Передираем числа i, j, k}
for i := 1 to N do
for j := 1 to N do
for k := 1 to N do
{Если условие выполнилось}
if a[i] + a[j] + a[k] = m then
begin
{То выводи числа и выходим из программы}
Write('i = ', i, ', j = ', j, ', k = ', k);
Readln;
exit;
end;
{Если дошли сюда, то значит что чисел нет}
Write('Таких чисел нет!');
ReadLn;
end.


3)
Код:
var
{i, j-счетчики для For, count - кол-во положительных элементов, n - размерность матрицы}
i, j, count, n: integer;
{переменная для хранения значения ячейки матрицы}
a: real;

begin
{получаем n}
Write('Введите n: ');
ReadLn(n);

count := 0;

{Перебирем i, j}
for i := 1 to n do
begin
for j := 1 to n do
begin
{Вычислем значения для текущих i, j}
a := sin(i + j/2);
{если оно больше 0, то увеличиваем на 1 счетчик}
if a > 0 then
inc(count);
{Выводим текущий элемент матрицы}
write(a:6:2, ' ');
end;
WriteLn;
end;
{Выводим ответ}
WriteLn('Ответ: ', count);
readln;
end.

Удачи!!!
Форма ответа