Подсчитать количество точек, лежащих вне треугольника - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите перевести программу с Паскаля на Си Подсчитать количество точек, лежащих вне треугольника, образованного осями координат и прямой y=2x+1.
program lab8;
uses crt;
var f:text;
    x,y:real;
    k:integer;
begin
clrscr;
assign(f,'file1.txt');
rewrite(f);
writeln('Введите в файл координаты точек, окончание x=0 y=0:');
repeat
write('x=');readln(x);
write('y=');readln(y);
if(x<>0)or(y<>0) then writeln(f,' ',x,' ',y);
until(x=0)and(y=0);
close(f);
reset(f);
k:=0;
while not eof(f) do
 begin
  read(f,x);
  read(f,y);
  if(x<-0.5)or(x>0)or(y>2*x+1)then k:=k+1;
 end;
close(f);
write('Вне треугольника лежит точек=',k);
readln
end.

Решение задачи: «Подсчитать количество точек, лежащих вне треугольника»

textual
Листинг программы
#include<iostream>
#include<fstream>
 
using namespace std;
 
int main()
{
    fstream f;
    double x,y;
    int k=0;
    f.open("file1.txt",ios::out);
    cout<<"Введите в файл координаты точек, окончание x=0 y=0:"<<endl;
    do
    {
        cout<<"x=";
        cin>>x;
        cout<<"y=";
        cin>>y;
        if((x!=0)||(y!=0)) f<<" "<<x<<" "<<y<<endl;
    }
    while((x!=0)&&(y!=0));
    f.close();
    f.open("file1.txt",ios::in);
    while(!f.eof())
    {
        f>>x;
        f>>y;
        if((x<-0.5)||(x>0)||(y>2*x+1)) k++;
    }
    f.close();
    cout<<"Вне треугольника лежит точек="<<k<<endl;
    getchar();
    return 0;
}

Объяснение кода листинга программы

В этом коде выполняется подсчет количества точек, которые находятся вне треугольника по заданным координатам.

  1. Открывается файл для записи координат точек.
  2. Вводится координаты точек до тех пор, пока не будут введены координаты точки, где x=0 и y=0.
  3. Записываются в файл только те координаты точек, которые не являются вершинами треугольника (x=0 и y=0).
  4. Открывается файл для чтения записанных координат точек.
  5. Происходит чтение координат точек из файла до тех пор, пока не будет достигнут конец файла.
  6. *Проверяется, находится ли точка вне треугольника по следующей формуле: (x<-0.5)||(x>0)||(y>2x+1)**.
  7. Если точка находится вне треугольника, увеличивается счетчик k на 1.
  8. Выводится количество точек, которые находятся вне треугольника.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы