Перевести код из Паскаля в Си - C (СИ) (70608)

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

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

var
a,b,c,d,e,f,g,h:real;
f1,f2:real;
begin
write('a='); readln(a);
write('b='); readln(b);
write('c='); readln(c);
write('d='); readln(d);
write('e='); readln(e);
write('f='); readln(f);
write('g='); readln(g);
write('h='); readln(h);
{Рівняння прямої f=0
f=(x‐e)*(h‐f)‐(y‐f)*(g‐e)}
{підставляємо в F(x,y) точку (a,b)}
f1:=(a‐e)*(h‐f)‐(b‐f)*(g‐e);
{підставляємо в F(x,y) точку (c,d)}
f2:=(c‐e)*(h‐f)‐(d‐f)*(g‐e);
{Перевіряємо чи f1 та f2 мають однакові знаки}
if ((f1>0) and (f2>0)) or ((f1<0) and (f2<0))
then
writeln('YES')
else
writeln('NO');
readln;
end.
Часть кода пропала ,так что лучше так
var
a,b,c,d,e,f,g,h:real;
f1,f2:real;
begin
write('a='); readln(a);
write('b='); readln(b);
write('c='); readln(c);
write('d='); readln(d);
write('e='); readln(e);
write('f='); readln(f);
write('g='); readln(g);
write('h='); readln(h);
{Рівняння прямої f=0
f=(x‐e)*(h‐f)‐(y‐f)*(g‐e)}
{підставляємо в F(x,y) точку (a,b)}
f1:=(a‐e)*(h‐f)‐(b‐f)*(g‐e);
{підставляємо в F(x,y) точку (c,d)}
f2:=(c‐e)*(h‐f)‐(d‐f)*(g‐e);
{Перевіряємо чи f1 та f2 мають однакові знаки}
if ((f1>0) and (f2>0)) or ((f1<0) and (f2<0))
then
writeln('YES')
else
writeln('NO');
readln;
end.

Решение задачи: «Перевести код из Паскаля в Си»

textual
Листинг программы
#include <stdio.h>
 
int main(void) {
    float a, b, c, d, e, f, g, h;
    float f1, f2;
 
    printf("a = ");
    scanf("%f", &a);
    printf("b = ");
    scanf("%f", &b);
    printf("c = ");
    scanf("%f", &c);
    printf("d = ");
    scanf("%f", &d);
    printf("e = ");
    scanf("%f", &e);
    printf("f = ");
    scanf("%f", &f);
    printf("g = ");
    scanf("%f", &g);
    printf("h = ");
    scanf("%f", &h);
 
    //Рівняння прямої f=0
    //f=(x‐e)*(h‐f)‐(y‐f)*(g‐e)
    //підставляємо в F(x,y) точку (a,b)
    f1 = (a-e)*(h-f)-(b-f)*(g-e);
    //{підставляємо в F(x,y) точку (c,d)}
    f2 = (c-e)*(h-f)-(d*f)*(g-e);
    //{Перевіряємо чи f1 та f2 мають однакові знаки}
    if (((f1>0) && (f2>0)) || ((f1<0) && (f2<0)))
        printf("YES\n");
    else
        printf("NO\n");
 
    return 0;
}

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

  1. Объявлены переменные a, b, c, d, e, f, g, h, f1, f2 типа float.
  2. Выполняется последовательный ввод значений переменных a, b, c, d, e, f, g, h с помощью функции scanf.
  3. Вычисляются значения переменных f1 и f2 по формулам: f1 = (a-e)(h-f)-(b-f)(g-e); f2 = (c-e)(h-f)-(d-f)(g-e);
  4. Выполняется проверка знаков f1 и f2: if (((f1>0) && (f2>0)) || ((f1<0) && (f2<0))) printf(YES\n); else printf(NO\n);
  5. Программа завершается возвратом значения 0.

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


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

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

11   голосов , оценка 4.091 из 5