Реклама на forum.workoffice.ru
Программатор чипов CrumProg by GenaAlfa

Автор Тема: Нужна помошь в программировании  (Прочитано 13104 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Grigor

  • Advanced Member
  • *****
  • Сообщений: 3528
  • Репутация: +156/-202
    • Просмотр профиля
Re: Нужна помошь в программировании
« Ответ #24 : 29 Января, 2014, 07:19:52 »
Это которые?

"угол наклона большей стороны к положительной горизонтальной полуоси"
проще же можно сказать:
"угол наклона большей стороны к положительной оси ОХ" - всё

представляю, как школьники лупают глазами от таких новейших формулировок
« Последнее редактирование: 29 Января, 2014, 07:25:43 от Grigor »

Ярек Лама

  • Advanced Member
  • *****
  • Сообщений: 5678
  • Репутация:+456/-0
Неважно, что ты делаешь, лишь бы переделывать никому не пришлось.

Пинок_Под_Зад

  • Advanced Member
  • *****
  • Сообщений: 2122
  • Репутация: +83/-10
    • ICQ клиент - 415083065
    • Просмотр профиля
Re: Нужна помошь в программировании
« Ответ #25 : 29 Января, 2014, 13:49:16 »
представляю, как школьники лупают глазами от таких новейших формулировок

не знаю как школьники , но я уж точно хлопаю...впринципе от любой формулировки - закончил школу 10 лет назад  при этом далеко не на отлично ))) теперь жалею...

по этой задаче мне РГР писал какой то шаристый тип который как оказалось на моем факультете сейчас на магистратуре...код к программе был такой

// RGR.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"

#include <conio.h>
#include <locale.h>
#include <string.h>
#include <math.h>

#pragma pack(1)
struct Rectangle
{
double Center_X;
double Center_Y;
double Width;
double Height;
double Angle;
};

struct Circle
{
double Center_X;
double Center_Y;
double Radius;
};
#pragma pack()

FILE* OpenFile(char* filepath, char* mode)
{
FILE* f = fopen(filepath, mode);
if (f == NULL)
{
TCHAR buffer[1024] = "Не удается открыть файл ";
strcat(buffer, filepath);
printf(buffer);
}

return f;
}

bool LoadRectangle(FILE* f, Rectangle* r)
{
if (f != NULL)
{
fread(r, sizeof(*r), 1, f);
return !feof(f);
}
return false;
}

bool SaveCircle(FILE* f, Circle* c)
{
if (f != NULL)
{
if (int size = fwrite(c, sizeof(*c), 1, f) != 1)
printf("Ошибка записи окружности в файл");
else return true;
}
return false;
}

void CreateTestFile()
{
FILE*f = OpenFile("rectangle.dat", "wb+");
Rectangle r;

for (int i=1; i < 21; i++)
{
r.Center_X = i % 10;
r.Center_Y = i % 5;
r.Width = pow((double)i, 2);
r.Height = pow((double)i, 3);
r.Angle = asin((double)i);

fwrite(&r, sizeof(r), 1, f);
}

fclose(f);
}

void GetCircleByRect(Rectangle* r, Circle* c)
{
//Радиус описанной окружности равен половине диагонали прямоугольника.
c->Radius = sqrt(pow(r->Width, 2) + pow(r->Height, 2)) / 2.0;
//Центр описанной окружности совпадает с центром прямоугольника
c->Center_X = r->Center_X;
c->Center_Y = r->Center_Y;
}

int _tmain(int argc, _TCHAR* argv[])
{
setlocale( LC_ALL, "Russian" );



FILE* RectFile = OpenFile("rectangle.dat", "rb"),
      *CircleFile = OpenFile("circle.dat", "wb+");

if (RectFile == NULL || CircleFile == NULL) return -1;

Rectangle r;
Circle c;

while(LoadRectangle(RectFile, &r))
{
GetCircleByRect(&r, &c);
SaveCircle(CircleFile, &c);
}

fclose(CircleFile);
fclose(RectFile);

return 0;
}

но препод толком и не проверял программу, в основном делал замечания по оформлению самой РГР (то пробел лишний то точка)

а по задачам вообще не спросил...но обещал в следующем семестре полный дрюч, особенно по РГР - она как курсовая будет, и оценка пойдет в диплом
Разочарование от плохого качества длится гораздо дольше чем радость от низкой цены...

Grigor

  • Advanced Member
  • *****
  • Сообщений: 3528
  • Репутация: +156/-202
    • Просмотр профиля
Re: Нужна помошь в программировании
« Ответ #26 : 29 Января, 2014, 17:37:12 »
В файле содержатся сведения о прямоугольниках (координаты центра, две стороны и угол наклона большей стороны к положительной горизонтальной полуоси). Получить файл со сведениями об окружностях (координаты центра и радиус), описывающих эти прямоугольники. Реализовать на двоичных файлах с помощью структур данных (struct).
задача дурацкая, условие непонятно, координаты центра прямоугольника и окружности его описывающей будут одни и те же - это одна и та же точка,
а радиус окружности расчитывается как гипотенуза прямоугольного треугольника, в котором катеты его сторон - это половины длин сторон вписанного прямоугольника (в данном случае их легко рассчитать по координатам сторон, а если даны длины сторон, тогда просто разделить их длины пополам)
для расчета гипотенузы пользуемся теоремой Пифагора.

тупо непонятно, на кой нужен еще этот угол наклона?
« Последнее редактирование: 29 Января, 2014, 17:44:54 от Grigor »