Перевести код из Паскаля в Си - 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.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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