Здача С++
Точка пересечения прямых
На плоскости даны две прямые. Каждая прямая задается парой точек, через которые она проходит.
Требуется установить, пересекаются ли эти прямые, и найти координаты точки пересечения.
Формат входных данных
Первая строка входных данных содержит четыре целых числа - координаты двух точек, через которые проходит первая прямая. Гарантируется, что эти две точки различны.
Вторая строка входных данных содержит координаты двух различных точек, через которые проходит вторая прямая. Точки, через которые проходит вторая прямая могут совпадать с точками, через которые проходит первая прямая.
Координаты каждой точки - целые числа, по модулю не превышающие 1000.
Формат результата
Если прямые не пересекаются, выведите одно число 0. Если прямые совпадают, выведите 2. Если прямые пересекаются ровно в одной точке, то выведите сначала число 1, а затем два вещественных числа - координаты точки пересечения с точностью до шести знаков после запятой.
Примеры
Входные данные
1 1 2 2
1 10 2 11
Результат работы
0
Входные данные
0 0 1 1
1 0 -1 2
Результат работы
1 0.5 0.5
К примеру возьмём цикл из C# (for) :
он имеет такой синтаксис:
for(переменная-счётчик; условие для переменной счётчика; изменение цикла)
{
// тело цикла:
// sample code .
}
в основном , цикл for используют так, что изменение цикла это инкремент переменной счётчика, а условие это, то что при true будет выполнять тело цикла ;
пример: for(int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
// Out: 0 1 2 3 4 5 6 7 8 9 ;
Для цикла из задания пример будет таким:
for(int i = 10; i > 0; i--)
{
Console.WriteLine(i);
}
// Out: 10 9 8 7 6 5 4 3 2 1 ;
Как он работает: создаётся переменная счётчик i , которой присваивается значение указанное разработчиком (10) , далее эта переменная счётчик проверяется условием ( i > 0 ) , если условие возвращает true (истина) - то внутри цикла выполняется написанный код , а после этого выполняется часть изменение , то есть в данном случае уменьшение i(10) на 1 , так повторяется до тех пор пока удовлетворительно условие .
1) Program Massiv1;
Uses Crt;
var k:array[1..12] of real;
i,c:integer;
begin
clrscr;
write('Введите элементы массива k:');
c:=0;
for i:=1 to 12 do
begin
readln(k[i]);
if (k[i]<0) then Inc(c);
end;
writeln;
writeln;
for i:=1 to 12 do write(k[i]:4:4);
writeln;
writeln('Количество элементов <0:',c);
readkey;
end.
2) Program Massiv2;
Uses Crt;
var m:array[1..10] of integer;
i,c:integer;
begin
clrscr;
write('Введите элементы массива m:');
c:=0;
for i:=1 to 10 do
begin
readln(m[i]);
if (m[i]=3) then Inc(c);
end;
writeln;
writeln;
for i:=1 to 12 do write(m[i]:4);
writeln;
writeln('Количество элементов =3:',c);
readkey;
end.
В третьем задании видимо имеется ввиду номер элемента этого массива, т.к по условию задачи массив у нас один.
3) Program Massiv3;
Uses Crt;
var m:array[1..8] of integer;
i,c,max:integer;
begin
clrscr;
write('Введите элементы массива m:');
c:=0;
for i:=1 to 8 do readln(m[i]);
writeln;
writeln;
max:=m[1]
for i:=1 to 8 do
begin
if (m[i]>max) then
begin
max:=m[i];
c:=i
end;
write(m[i]:4);
end;
writeln('Индекс максимального элемента =:',c);
readkey;
end.
4) Program Massiv4;
Uses Crt;
var m:array[1..12] of integer;
i,c,max,sum:integer;
begin
clrscr;
write('Введите элементы массива m:');
c:=0; sum:=0;
for i:=1 to 12 do readln(m[i]);
writeln;
writeln;
max:=m[1]
for i:=1 to 12 do
begin
if (m[i]>max) then
begin
max:=m[i];
c:=i
end;
write(m[i]:4);
end;
for i:=1 to c-1 do sum:=sum+m[i];
writeln('Количество элементов расположенных до max :',с-1);
writeln('Сумма элементов расположенных до max :',sum);
readkey;
end.
В пятом задании видимо имеется ввиду значения элементов массива меньшие чем сумма первого и последнего
5) Program Massiv5;
Uses Crt;
var k:array[1..15] of real;
sum:real;
i,c:integer;
begin
clrscr;
write('Введите элементы массива k:');
c:=0;
for i:=1 to 15 do readln(k[i]);
sum:=k[1]+k[15];
writeln;
writeln;
for i:=1 to 15 do
begin
write(k[i]:4:4);
if (k[i]<sum) tnen Inc(c);
end;
writeln;
writeln('Количество элементов :',c);
readkey;
end.