Рассмотрим код программы которая определяет простое число или нет и выводит на экран сообщение. (Простое число-это число которое делится только на себя и на один). Исправь ошибки так, что бы программа стала работать правильно. В ответе запиши только исправленные строки.
Исходный код:
x=int(input("введите число")); z=0
for i in step(2,x//2):
if x//i==0:z=1
if z=0: input(x,"-простое число")
elif : print(x,"-непростое число")
2)отсекается 1 элемент
3)Произведение элементов массива, которые лежат в промежутке [40;55)
в паскале как и почти любом ЯП есть переменные,которые содержат имя и значение,например (i: =0)->имя переменной i,значение 0.Значение переменной можно изменить,имя переменной нельзя.Массивы это переменные которые хранят несколько значений.Чтобы обратиться к определенному значению масива использовать синтаксис имямасива[индексмасива],например чтоб получить 3 элемент масива a использовать a[3].repeat (expression) until(boolean) это цикл,в котором будет выполняться expression(любой код) до тех пор пока boolean не будет верно.Boolean это выражение значение которого будет равно true/false(правда/неправда).Напрмер в repeat
i:=i+1;
until (a[i]=x) or (i=10); к переменной i будет прибавляться 1 до тех пор пока a[i] не равно x или i будет меньше 10(так как в масиве всего 10 элементов,если например i будет 11 это будет выход за границу массива).Каждый блок выполнения в цикле(в нашем случае i:=i+1) называется итерацией.В цикле for(a to max) в a идет создание переменной-счетчика(в нашем случае создание переменной i со значением 0) ,потом пишется to и идет максимальное значение счетчика.И итерации этого цикла(if (a[i]=>40) and (a[i]<55) then s:=s*a[i];
).В конце каждой итерации автоматически значение счетчика увеличивается на 1.До тех пор пока счетчик меньше или равен max итерации будут выполняться.
А вообще в интернете очень много обучающих статей по данной теме
Внимание! Если программа не работает, обновите версию!
function gcd(a,b:integer):integer; // НОД
begin
while b<>0 do begin a:=a mod b; Swap(a,b) end;
Result:=a
end;
procedure RedFrac(var a,b:integer); // сокращение дроби
begin
var (sgna,sgnb):=(Sign(a),Sign(b)); // мы должны учитывать знак!
(a,b):=(Abs(a),Abs(b));
var d:=gcd(a,b);
a:=(a div d)*sgna; b:=(b div d)*sgnb
end;
begin
var (a,b):=ReadInteger2('Введите числитель и знаменатель 1-й дроби:');
var (c,d):=ReadInteger2('Введите числитель и знаменатель 2-й дроби:');
(a,b):=(a*c,b*d);
RedFrac(a,b);
Writeln('Результат умножения: ',a,' / ',b)
end.
Пример
Введите числитель и знаменатель 1-й дроби: 32 1024
Введите числитель и знаменатель 2-й дроби: 60 300
Результат умножения: 1 / 160
В качестве бонуса - решение на базе входящей в состав PascalABC.NET библиотеки численных методов
uses NumLibABC;
begin
var (a,b):=ReadInteger2('Введите числитель и знаменатель 1-й дроби:');
var (c,d):=ReadInteger2('Введите числитель и знаменатель 2-й дроби:');
Writeln('Результат умножения: ',Frc(a,b)*Frc(c,d))
end.