Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2011, 10:41   #1
strannik23
Пользователь
 
Регистрация: 11.02.2011
Сообщений: 12
По умолчанию Точки координат

Дан набор светящихся точек разной яркости в трёхмерном пространстве. Определить координаты самой яркой точки.
Использоватьструктурный ти: массив записей. Исходные данные о точках должны быть введены в программу из текстового файла.
Как я понимаю тут нужно использовать типизированные файлы. А в блокноте записать точки, в виде x,y,z,s где x,y,z -координаты а s яркость точки, причём вбивать их в блокноте нужно в столбик, тобишь каждая точка на новой строке, немог ли бы вы помоь реализовать это в паскале
strannik23 вне форума Ответить с цитированием
Старый 22.11.2011, 11:08   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) типизированный файл здесь Вам не нужен.

2) остальное Вы всё более-менее правильно написали.

в чём у Вас затык возник?

начало программы может выглядеть примерно так:
Код:
type 
   TStars = record
      X,Y,Z : integer;
      s       : word;
   end;

const  
   MaxStars = 1000;

var
   Stars ; array[1..MaxStars] of  TStars;
   f : Text;
   i, QuantityStars, MostBrightIndex : integer;
begin
   Assign(f, 'AllStars.txt');
   Reset(f);

   QuantityStars := 0;    
   while Not eof(f) do begin
      inc(QuantityStars); 
      Readln(f, Stars[QuantityStars].X, Stars[QuantityStars].Y, Stars[QuantityStars].Z, Stars[QuantityStars].s);
   end;
   Close(f);

   if  QuantityStars<1 then WriteLn('Нет ни одной записи о точке')
   else begin
       {иначе найдём самую яркую}
       MostBrightIndex := 1; {считаем, что самая яркая первая точка}
       for i:=2 to QuantityStars do
          if Stars[i].s > Stars[MostBrightIndex].s then MostBrightIndex := i;
      
       WriteLn('Cамая яркая точка №',MostBrightIndex,' x =',Stars[MostBrightIndex].X,
              ' y =',Stars[MostBrightIndex].Y, ' z =',Stars[MostBrightIndex].Z, 
              ' яркость = ', Stars[MostBrightIndex].s);
   end; 

   Readln
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.11.2011, 14:30   #3
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Код:
while Not eof(f) and (QuantityStars < MaxStars) do begin
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 22.11.2011, 19:18   #4
strannik23
Пользователь
 
Регистрация: 11.02.2011
Сообщений: 12
По умолчанию

Ребята спасибо что помогаете, вот у меня ошибка в строчке:
Readln(f, Stars[QuantityStars].X, Stars[QuantityStars].Y, Stars[QuantityStars].Z, Stars[QuantityStars].s);
пишет Invalid numeric format.
что не так? компелирует без ошибок

Последний раз редактировалось strannik23; 22.11.2011 в 19:29.
strannik23 вне форума Ответить с цитированием
Старый 22.11.2011, 19:34   #5
strannik23
Пользователь
 
Регистрация: 11.02.2011
Сообщений: 12
По умолчанию

Извините затупил, исправил уже ошибку, спасибо большое за помошь)
strannik23 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение координат точки. ТриСемёрки C++ Builder 3 15.12.2011 15:08
Определить расстояние от точки до центра координат sektor2011 Помощь студентам 3 23.01.2011 19:50
Получение координат точки. ТриСемёрки Помощь студентам 0 21.05.2010 21:35
Записать выражение, зависящее от координат точки X1 и Y1 Medik07 Помощь студентам 3 23.09.2009 00:32
Отображение координат точки Nadina Помощь студентам 3 18.04.2009 10:59