1

Тема: Перевірка тексту !

Дано натуральне число n, дійсні числа x1, y1, x2, y2, ..., xn, yn. Знайти площу n-кутника, вершини якого при деякому послідовному обході мають координати ( x1, y1), (x2, y2), ..., ( xn, yn). (Визначити процедуру обчислення площі трикутника за координатами його вершин).

мены здається що вона робить розрахунок не вірно!

program 1
var x, y, z, n :mas
p: real;
i: integer;
type 
   mas = array [1...n] of real;
 
  prosedure d(x1, x2, y1, y2: real; var z1:real; );
  begin
    z1 := sqrt(sqr(y1-y2)+sqr(x1-x2));
  end;
 
  begin
    readln(n);
    p := 0;
    for i := 1 to n do
      begin
         writeln ('koordinata vershunu',i);
         readln (x[i]);
         readln (y[i]);
         if i = n then
           d (x[1], y[1], x[n], y[n], z[n])
         else
           d (x[i], y[i], x[i+1], y[i+1], z[i]);
      end;
      for i := 1 to n do
      p := p+z[i];
     writeln (p:10:2);
   readln;
  end.

Re: Перевірка тексту !

А ще й здається, що воно й не скомпілюється.

3

Re: Перевірка тексту !

Чому? Начебто все є

4 Востаннє редагувалося Пам'ять не може бути READ (18.03.2013 15:53:09)

Re: Перевірка тексту !

program 1

Якщо не помиляюся, то з цифри
починати не можна і ; відсутня.

var x, y, z, n :mas

Хіба ; непотрібно ?

 mas = array [1...n] of real;

Тут не впевнений, але здається n має бути
ініціалізованою до використання в масиві.
І хіба пишеться = чи : ? І чому у  [1...n] три
крапки замість двох ?

prosedure d(x1, x2, y1, y2: real; var z1:real; );

Можливо правильніше procedure, а не prosedure.

Подякували: ADR1

5

Re: Перевірка тексту !

Так чого не знайдеш у просторах INTERNET :)

Re: Перевірка тексту !

V1rus написав:

Так чого не знайдеш у просторах INTERNET :)

Я так розумію, Вам вже потрібно готову програму ?

7

Re: Перевірка тексту !

Я б невідмовився, але її потім потрібно ще перевести на С++, з обов'язковою умовою (водити координати вершин та кількість кутів з клавіатури).

Re: Перевірка тексту !

Сьогодні в мене хороший настрій...
Зараз спробую накидати.

9 Востаннє редагувалося Пам'ять не може бути READ (18.03.2013 16:33:05)

Re: Перевірка тексту !

Ось накидав, трохи по іншому зробив, але назви змінних і тд залишив
такі, як були у паскалівському прикладі.

#include <iostream.h>
#include<math.h>
#include<conio.h>
using namespace std;

float d(float x1, float x2, float y1, float y2)
{
  return sqrt(pow(y1-y2,2) + pow(x1-x2,2));
}

int main(void)
{
  int n,i;
  float p = 0;
  cout << "Введіть к-сть кутів \n";
  cin >> n;
  
  float* x = new float[n];
  float* y = new float[n];
  float* z = new float[n];
  
   for(i = 0; i < n; i++)
   {
    cout << "Введіть координати вершини " << i << "\n";  
    cin >> x[i] >> y[i];
   }
   
   for(i = 0; i < n; i++)
   {
     if(i == n)
      z[n] = d (x[1], y[1], x[n], y[n]);
     else
      z[i] =  d (x[i], y[i], x[i+1], y[i+1]); 
   }
   
   for(i = 0; i < n; i++)
   {
    p += z[i];
    cout << p << "\n";
   }
  
  delete[] x;
  delete[] y;
  delete[] z;
  
  getch();
  
  return 0;
}

Результат виконання:

Введіть к-сть кутів 
5
Введіть координати вершини 0
4 5
Введіть координати вершини 1
2 7
Введіть координати вершини 2
4 8
Введіть координати вершини 3
3 6
Введіть координати вершини 4
4 9

5.09902
11.5021
16.5021
22.3331
27.3331

10

Re: Перевірка тексту !

А чому відповіді 5-ть?
І до чого в умові (Визначити процедуру обчислення площі трикутника за координатами його вершин)?????

Re: Перевірка тексту !

V1rus написав:

А чому відповіді 5-ть?

Тобто, що Ви маєте на увазі ?

12

Re: Перевірка тексту !

1  -  5.09902
2  -  11.5021
3  -  16.5021
4  -  22.3331
5  -  27.3331

Re: Перевірка тексту !

Тьху, недогедів я.
Новий код:

Прихований текст
#include <iostream.h>
#include<math.h>
#include<conio.h>
using namespace std;

float d(float x1, float x2, float y1, float y2)
{
  return sqrt(pow(y1-y2,2) + pow(x1-x2,2));
}

int main(void)
{
  int n,i;
  float p = 0;
  cout << "Введіть к-сть кутів \n";
  cin >> n;
  
  float* x = new float[n];
  float* y = new float[n];
  float* z = new float[n];
  
   for(i = 0; i < n; i++)
   {
    cout << "Введіть координати вершини " << i << "\n";  
    cin >> x[i] >> y[i];
   }
   
   for(i = 0; i < n; i++)
   {
     if(i == n)
      z[n] = d (x[1], y[1], x[n], y[n]);
     else
      z[i] =  d (x[i], y[i], x[i+1], y[i+1]); 
   }
   
   for(i = 0; i < n; i++)
    p += z[i];

    cout << p << "\n";

  
  delete[] x;
  delete[] y;
  delete[] z;
  
  getch();
  
  return 0;
}

14

Re: Перевірка тексту !

а результати можеш показати на 5-ть сторін і на 3-ри

Re: Перевірка тексту !

1:

Прихований текст
Введіть к-сть кутів 
5
Введіть координати вершини 0
4 9
Введіть координати вершини 1
3 6
Введіть координати вершини 2
1 5
Введіть координати вершини 3
3 0
Введіть координати вершини 4
4 6
21.4365

2:

Прихований текст
Введіть к-сть кутів 
5
Введіть координати вершини 0
2 8
Введіть координати вершини 1
4 5
Введіть координати вершини 2
2 4
Введіть координати вершини 3
3 8
Введіть координати вершини 4
3 6
22.5349

3:

Прихований текст
Введіть к-сть кутів 
5
Введіть координати вершини 0
8 3
Введіть координати вершини 1
5 0
Введіть координати вершини 2
2 5
Введіть координати вершини 3
6 9
Введіть координати вершини 4
3 7
26.1447

16

Re: Перевірка тексту !

я мав на увазі на 3-ри кути:):):)

Re: Перевірка тексту !

V1rus написав:

я мав на увазі на 3-ри кути:):):)

А що вам мішає компільнути у себе програму ?
І бавтеся потім з результатами як заманеться.

18 Востаннє редагувалося Пам'ять не може бути READ (18.03.2013 20:31:32)

Re: Перевірка тексту !

Дом модератора розділу:
можливо тему краще перенести у С/C++ ?

19

Re: Перевірка тексту !

Мабуть

20

Re: Перевірка тексту !

Hanter написав:

Ось накидав, трохи по іншому зробив, але назви змінних і тд залишив
такі, як були у паскалівському прикладі.

Прихований текст
#include <iostream.h>
#include<math.h>
#include<conio.h>
using namespace std;

float d(float x1, float x2, float y1, float y2)
{
  return sqrt(pow(y1-y2,2) + pow(x1-x2,2));
}

int main(void)
{
  int n,i;
  float p = 0;
  cout << "Введіть к-сть кутів \n";
  cin >> n;
  
  float* x = new float[n];
  float* y = new float[n];
  float* z = new float[n];
  
   for(i = 0; i < n; i++)
   {
    cout << "Введіть координати вершини " << i << "\n";  
    cin >> x[i] >> y[i];
   }
   
   for(i = 0; i < n; i++)
   {
     if(i == n)
      z[n] = d (x[1], y[1], x[n], y[n]);
     else
      z[i] =  d (x[i], y[i], x[i+1], y[i+1]); 
   }
   
   for(i = 0; i < n; i++)
   {
    p += z[i];
    cout << p << "\n";
   }
  
  delete[] x;
  delete[] y;
  delete[] z;
  
  getch();
  
  return 0;
}

Результат виконання:

Введіть к-сть кутів 
5
Введіть координати вершини 0
4 5
Введіть координати вершини 1
2 7
Введіть координати вершини 2
4 8
Введіть координати вершини 3
3 6
Введіть координати вершини 4
4 9

5.09902
11.5021
16.5021
22.3331
27.3331

А який компілятор у вас? iostream.h - це, далебі, артефакт, сучасні компілі не дуже перетравлюють се... :)