var i,j,s:integer; begin // задание 1 s:=0; for i:=1 to 10 do s:=s+i*i; Writeln(s); // задание 2 j:=0; for i:=1 to 50 do if i mod 2=0 then j:=j+1; Writeln(j) end.
Результат 385 25
А вот так можно это решить по-нормальному за минуту.
// PascalABC.NET 3.2, сборка 1356 от 04.12.2016 // Внимание! Если программа не работает, обновите версию! begin Writeln(1.To(10).Select(i->i*i).Sum); // задание 1 Writeln(Range(2,50,2).Count) // задание 2 end.
Если х1,у1 - координаты одного конца 1-го отрезка, х2,у2 - координаты его второго конца, то уравнение прямой, на которой этот отрезок лежит, такое: у=у1+(у2-у1)(х-х1)/(х2-х1). Для второго отрезка (х3,у3) и (х4,у4), прямая у=у3+(у4-у3)(х-х3)/(х4-х3). Абсцисса точки пересечения (х,у) этих прямых находится из равенства
у1+(у2-у1)(х-х1)/(х2-х1)=у3+(у4-у3)(х-х3)/(х4-х3). Это х надо выразить в виде формулы до написания программы, чтобы х вычислялось в программе по этой формуле.
Схема программы: 1) проверка параллельности отрезков. Если "да", то выход и ответ "не существует". 2) проверка выполнения двух двойных неравенств: x1 <= x <= x2, x2 <= x <= x4. Если оба неравенства "истина", то ответ "существует", иначе "не существует"
Обратите внимание, что х1 должно быть меньше чем х2, и х3 меньше чем х4.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку