Написать 2 программы: 1. проверить, есть ли в массиве отрицательные элементы. если есть, вывести а-номер первого такого элемента, b-номер последнего. (использовать барьер) 2. проверить, является ли массив целых чисел симметричным
var a: array[1..n] of integer; i, p, q: integer; flag: boolean;
begin {1. Инициализируем массив} Randomize; Write('Элементы массива: '); for i := 1 to n do begin a[i] := Random(101) - 50; Write(a[i]:5) end; Writeln; {2. проверяем элементы массива на наличие отрицательных значений} flag := true; i := 1; {2.1 Ищем первое по порядку отрицательное } while flag and (i <= n) do begin flag := (a[i] >= 0); i := i + 1 end; if flag then Writeln('В массиве нет отрицательных элементов') else begin p := i - 1; {2.1 Ищем последнее по порядку отрицательное } i := n; flag := true; while flag and (i > p) do begin flag := (a[i] >= 0); i := i - 1 end; if flag then Writeln('В массиве один отрицательный элемент с номером ', p) else Writeln('Отрицательные элементы лежат в промежутко от ', p, ' до ', i + 1) end end.
Тестовое решение:
Элементы массива: 17 -45 -29 -30 32 -12 29 -39 20 6 Отрицательные элементы лежат в промежутке от 2 до 8
const nm = 50;{максимальная длина массива}
var i, n, n2: integer; a: array[1..nm] of integer; flag: boolean;
begin { 1. Инициализация массива } Write('Введите количество элементов в массиве: '); Readln(n); Write('Введите элементы массива через пробел '); for i := 1 to n do Read(a[i]); { 2. Проверка симметричности массива } flag := true; i := 1; n2 := n div 2; while flag and (i <= n2) do begin flag := (a[i] = a[n - i + 1]); i := i + 1 end; if flag then Writeln('Массив является симметричным') else Writeln('Массив не является симметричным') end.
Тестовое решение:
Введите количество элементов в массиве: 8 Введите элементы массива через пробел 1 7 3 4 4 2 7 1 Массив не является симметричным
Введите количество элементов в массиве: 7 Введите элементы массива через пробел 8 4 9 1 9 4 8 Массив является симметричным
Program z1; var ar: array of integer; f, l, i, N: integer; begin readln(N); setlength(ar, N+1); for i:=1 to N do read(ar[i]); f:=-1; for i:=1 to N do begin if ar[i]<0 then begin f:=i; break; end; end; if f>0 then begin for i:=N downto 1 do begin if ar[i]<0 then begin l:=i; break; end; end; write(f,' ', l); end else write('No'); end.
program z2; var ar: array of integer; i, N: integer; otv: boolean; begin readln(N); setlength(ar, N+1); for i:=1 to N do read(ar[i]); for i:=1 to N div 2+1 do begin if ar[i]<>ar[N-i+1] then begin otv:=true; break; end; end; if otv=true then write('No') else write('Yes');end.
OCR-версия страницы из учебника (текст страницы, которая находится выше):Отсюда получаем ас = ab и Ьс = Ьа. Из этих двух равенств следует, что ас-Ьс, или (Ь - а) с = 0. Но Ь - а - АВ, с-DC, поэтомуАВ DC = 0, и, значит, АВ J_ CD, что и требовалось доказать.464 Вычислите угол между прямыми АВ и CD, если: а) А (3; -2; 4), В (4; -1; 2), С (6; -3; 2), D (7; -3; 1); б) А (5; -8; -1), В (6; -8; -2), С (7; -5; -И), D (7; -7; -9); в) А (1; 0; 2), В (2; 1; 0), С (0; -2; -4), D (-2; -4; 0); г) А (-6; -15; 7), В (-7; -15; 8), С (14; -10; 9), D (14; -10; 7).465 Дана правильная треугольная призма АВСА1В1С1, в которой ААХ = = л/2АВ (рис. 139, а). Найдите угол между прямыми АСХ и АХВ. РешениеПусть АВ = а, тогда ААХ = v2a. Введем прямоугольную систему координат так, как показано на рисунке 139, б. Вершины А, В, А1т С!имеют следующие координаты (объясните почему): А^~—;|-;0j,В (0; а; 0), А, ; j; aV2 ), С, (0; 0; aV2).Отсюда находим координаты векторов АСХ и ВАХ:ACi{-^#rf;aV2}, ^ ji^;-|;aV2Векторы АСг и ВАг являются направляющими векторами прямых ACj и AlB. Искомый угол ф между ними можно найти по фор-муле (2V ,i_3a2+la2 + 2(J2!14 4 ,cos Ф = - --------— = откуда Ф = 60°.;3a2+la2 + 2a2 . ;la2+la2 + 2a2 2\' 4 4 \ 4 4466 В кубе ABCDA^Bfi^D^ точка М лежит на ребре АА,, причем AM : MAj = 3 : 1, а точка N — середина ребра ВС. Вычислите косинус угла между прямыми: а) MN и DDX\ б) MN и BD; в) MN и В,£»; г) MN и Afi.
n = 10;
var
a: array[1..n] of integer;
i, p, q: integer;
flag: boolean;
begin
{1. Инициализируем массив}
Randomize;
Write('Элементы массива: ');
for i := 1 to n do
begin
a[i] := Random(101) - 50;
Write(a[i]:5)
end;
Writeln;
{2. проверяем элементы массива на наличие отрицательных значений}
flag := true;
i := 1;
{2.1 Ищем первое по порядку отрицательное }
while flag and (i <= n) do
begin
flag := (a[i] >= 0);
i := i + 1
end;
if flag then Writeln('В массиве нет отрицательных элементов')
else begin
p := i - 1;
{2.1 Ищем последнее по порядку отрицательное }
i := n;
flag := true;
while flag and (i > p) do
begin
flag := (a[i] >= 0);
i := i - 1
end;
if flag then Writeln('В массиве один отрицательный элемент с номером ', p)
else
Writeln('Отрицательные элементы лежат в промежутко от ', p, ' до ', i + 1)
end
end.
Тестовое решение:
Элементы массива: 17 -45 -29 -30 32 -12 29 -39 20 6
Отрицательные элементы лежат в промежутке от 2 до 8
const
nm = 50;{максимальная длина массива}
var
i, n, n2: integer;
a: array[1..nm] of integer;
flag: boolean;
begin
{ 1. Инициализация массива }
Write('Введите количество элементов в массиве: ');
Readln(n);
Write('Введите элементы массива через пробел ');
for i := 1 to n do Read(a[i]);
{ 2. Проверка симметричности массива }
flag := true;
i := 1;
n2 := n div 2;
while flag and (i <= n2) do
begin
flag := (a[i] = a[n - i + 1]);
i := i + 1
end;
if flag then Writeln('Массив является симметричным')
else Writeln('Массив не является симметричным')
end.
Тестовое решение:
Введите количество элементов в массиве: 8
Введите элементы массива через пробел 1 7 3 4 4 2 7 1
Массив не является симметричным
Введите количество элементов в массиве: 7
Введите элементы массива через пробел 8 4 9 1 9 4 8
Массив является симметричным