Дано натуральное число n и дейсвительные числа а1...аn. В последовательности а1...аn определить число соседств:
1)двух положительных чисел;
2)двух чисел разного знака;
3)двух чисел одного знака, причём модуль первого числа должен быть больше модуля 2 числа;
Буду очень благодарен, токо прошу не писать очень заумно так как мы токо начяли учить паскаль,лучше пусть задачя будет больше размером.
задачка Pascal
for i:=1 to n-1 do
begin
if (a>0) and (a[i+1])>0 then inc(s1);
if a*a[i+1]<0 then inc(s2);
if (a*a[i+1]>0) and (abs(a)>abs(a[i+1])) then inc(s3);
end;
s1, s2, s3 - искомые ответы для пп. 1, 2, 3. Ввод a в начале и вывод s1,s2,s3 в конце - сами.
begin
if (a>0) and (a[i+1])>0 then inc(s1);
if a*a[i+1]<0 then inc(s2);
if (a*a[i+1]>0) and (abs(a)>abs(a[i+1])) then inc(s3);
end;
s1, s2, s3 - искомые ответы для пп. 1, 2, 3. Ввод a в начале и вывод s1,s2,s3 в конце - сами.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Код: Выделить всё
program zad1;
uses crt;
const n=14; {тут можешь сам поставить любое нужное число}
var a:array[1..n] of real;
i,ov1,otv2,otv3:0..n;
begin
clrscr;
writeln('Введи массив ');
for i:=1 to n do
begin
read(a[i]); write(' ');
end;
writeln;
otv1:=0;
otv2:=0;
otv3:=0;
for i:=1 to n-1 do
begin
if a[i]*a[i+1]<0 then otv2:=otv2+1;;
if a[i]>0 and a[i+1]>0 then otv1:=otv1+1;
if (a[i]*a[i+1]>0) and (abs(a[i])>abs(a[i+1])) then otv3:=otv3+1;
end;
writeln('Два положительных числа соседствуют ',otv1,' раз.');
writeln('Два числа разного знака соседствуют ',otv2,' раз.');
writeln('Соседств описанных в пункте 3 - ',otv3,'.');
readln;
end.