Перевести программу с Pascal - C (СИ) (77334)

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

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

uses crt;
type Tochka=record
           x,y:real;
           end;
const nmax=20;
var a:array[1..nmax+1] of Tochka;
    t:Tochka;
    n,i:integer;
    s,s1:real;
begin
repeat
write('Kolichestvo vershin ot 4 do ',nmax,' n=');
readln(n);
until n in [4..nmax];
writeln('Vvedite koordinaty vipuklogo ',n,'-ugolnika:');
for i:=1 to n do
 begin
  writeln('Tochka ',i);
  write(' x=');readln(a[i].x);
  write(' y=');readln(a[i].y);
 end;
a[n+1]:=a[1];
t.x:=(a[1].x+a[3].x)/2;
t.y:=(a[1].y+a[3].y)/2;
s:=0;
for i:=1 to n do
 begin
    s1:=abs((t.x-a[i].x)*(a[i+1].y-a[i].y)-(a[i+1].x-a[i].x)*(a[i+1].y-t.y))/2;
  s:=s+s1; 
  end;
write('S=',s:0:4);
end.

Решение задачи: «Перевести программу с Pascal»

textual
Листинг программы
#include <stdio.h>
#include <math.h>
 
#define NMAX 20
 
struct Tochka
{
    double x;
    double y;
};
 
int main(void)
{
    struct Tochka a[NMAX+1];
    struct Tochka t;
    int n, i;
    float s, s1;
 
    do {
        printf("Kolichestvo vershin ot 4 do %d : ", NMAX);
        scanf("%d", &n);
    } while((4<n) && (n>NMAX));
 
    printf("Vvedite koordinaty vipuklogo %d-ugolnika.\n", n);
    for(i=1; i<=n; i++)
    {
        printf("Tochka %d\n", i);
        printf(" x = "); scanf("%lf", &a[i-1].x);
        printf(" y = "); scanf("%lf", &a[i-1].y);
    }
 
    a[n] = a[0];
    t.x = (a[0].x + a[2].x)/2;
    t.y = (a[0].y + a[2].y)/2;
    
    s = 0;
    for(i=0; i<n; i++)
    {
        s1 = fabs((t.x-a[i].x)*(a[i+1].y-a[i].y)-(a[i+1].x-a[i].x)*(a[i+1].y-t.y))/2;
        s = s + s1;
    }
    printf("S = %0.4lf\n", s);
    
    return 0;
}

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

  1. Объявление переменных и структурных типов.
  2. Ввод количества вершин от 4 до NMAX.
  3. Ввод координат узлов многоугольника.
  4. Копирование координат первого узла в последний для обеспечения замыкания многоугольника.
  5. Вычисление центра тяжести многоугольника.
  6. Инициализация суммы площадей равной нулю.
  7. Вычисление площади каждого треугольника, используя формулу Герона.
  8. Вычисление площади всего многоугольника, суммируя площади всех треугольников.
  9. Вывод площади многоугольника.
  10. Возврат 0, чтобы указать, что программа успешно завершилась.

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


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

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

13   голосов , оценка 4.538 из 5