Перевести код из Паскаля в Си - 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;
- }
Объяснение кода листинга программы
- Объявлены переменные a, b, c, d, e, f, g, h, f1, f2 типа float.
- Выполняется последовательный ввод значений переменных a, b, c, d, e, f, g, h с помощью функции scanf.
- Вычисляются значения переменных f1 и f2 по формулам: f1 = (a-e)(h-f)-(b-f)(g-e); 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
); - Программа завершается возвратом значения 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д