<u>PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
procedure RedFrac(a,b:integer; var c,d:integer); // сокращение дроби
function Gcd(a,b:integer):integer; // НОД
begin
while b<>0 do begin a:=a mod b; Swap(a,b) end;
Result:=a
end;
begin
var sgnc:=Sign(a); // мы должны учитывать знак!
var sgnd:=Sign(b); // мы должны учитывать знак!
c:=Abs(a); d:=Abs(b);
var g:=Gcd(c,d);
c:=(c div g)*sgnc; d:=(d div g)*sgnd
end;
begin
var p,q,r,s:integer;
Write('Введите числитель и знаменатель: '); Read(p,q);
RedFrac(p,q,r,s);
Writeln(p,' / ',q,' = ',r, ' / ',s)
end.
<u>Пример</u>
Введите числитель и знаменатель: 384 4096
384 / 4096 = 3 / 32
const
n = 10; //количество элементов массива
var
a: array [1..n] of real;
i: integer;
begin
for i:= 1 to n do
begin
writeln('Введите ', i, ' элемент массива');
readln(a[i]); //вводим очередной элемент массива
end;
write('Исходный массив: ');
for i:= 1 to n do
write(a[i], ' '); //Выводим исходный массив
writeln; //Перевод на новую строку
write('Полученный массив: ');
for i:= 1 to n do
begin
a[i]:= a[i] * a[n]; //элемент массива умножаем на последний элемент
write(a[i], ' '); //выводим полученный элемент массива
end;
end.
Ответ:
int n, a[n],s;
s=0;
for (int i=0; i<10; i++){
cin >> a[i];
if ((a[i]>=-2) & (a[i]<=19){
s+=a[i];
}
cout << s;
Объяснение: