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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2014, 12:47   #31
Dragon65
Пользователь
 
Регистрация: 26.01.2014
Сообщений: 18
По умолчанию

Я далее сформулирую повопросно, ответьте пожалуйста просто Да/нет)

1)как я понял из объяснения ViktorR в любом массиве(контейнере) может содержаться большое количество вложенных элементов разных типов, их лишь нужно задать через точку, верно?

2)Имеет упомянутая выше конструкция отношения к плавающей запятой(http://ru.wikipedia.org/wiki/%D0%A7%...%D0%BE%D0%B9)?

3) a[i].Corner/Distance/x/y/NomPP просто разные подразделы массива?

4)После процедур Assign(F1,'Input.txt') и Reset(F1) с помощью команд Readln(F1,n) и в цикле Readln(F1,a[i].x,a[i].y); программа считывает с файла необходимые данные?

5)) Каким образом программу узнает что координата X должна записаться в a[i].x, а Y в a[i].y, она идет в файле построчечно и поэтому так соотносит переменные?
Dragon65 вне форума Ответить с цитированием
Старый 29.01.2014, 20:13   #32
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

1)как я понял из объяснения ViktorR в любом массиве(контейнере) может содержаться большое количество вложенных элементов разных типов, их лишь нужно задать через точку, верно?
Пример:
Код:
Type MyRec1 = record
          a, b : integer;
             m : array[1 .. n] of real;
       end;
       MyRec2 = record
          a, b : MyRec1
          str1 : string[30];
       end;
var a, b, c : MyRec2;
Begin
   a.a.a := 15;
   b.b.m[j] := b.b.m[i];
   c := b;
...
end.

3) a[i].Corner.Distance.x.y.NomPP просто разные подразделы массива?
Не разные подразделы массива, а, скажем Вашим языком, подразделы элемента массива. NomPP - сам по себе может быть сложной структурой.

4)После процедур Assign(F1,'Input.txt') и Reset(F1) с помощью команд Readln(F1,n) и в цикле Readln(F1,a[i].x,a[i].y); программа считывает из файла необходимые данные?
Да.

5)) Каким образом программу узнает что координата X должна записаться в a[i].x, а Y в a[i].y, она идет в файле построчечно и поэтому так соотносит переменные?
Порядок размещения данных в файле определяет программист или тот, кто формулирует ТЗ. Структура данных - один из важнейших элементов программирования.
В Вашем случае координаты точки в файле должны задаваться группой из двух чисел, которые разделены пробелами (как минимум одним):
34 45
-2 7
...
3 -17
Команда:
Код:
Readln(F1, a[i].x, a[i].y);
считывает из файла, который связан с файловой переменной F1 процедурой:
Код:
Assign(F1,'Input.txt');
строку символов, преобразует ее в числа, числа подставляет в соотвтетствующие переменные: a[i].x, a[i].y.
Кстати. Если в строке файла записано больше чисел, то только первые две будут прочитаны из каждой строки.
Процедура Readln прочитает только столько чисел, сколько будет указано в ее аргументах, а затем переведет строку, в отличие от процедуры Read(), которая строку не переведет.
Команда
Код:
Reset(F1);
открывает файл (если такой существует), устанавливает указатель на первую строку,...



Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 30.01.2014, 17:52   #33
Dragon65
Пользователь
 
Регистрация: 26.01.2014
Сообщений: 18
Радость

Спасибо большое)

Последний вопрос: Uses ... для чего служит?
При запуске программы у меня пишет модуль..(стоит перед Uses) не найден.
т.е. это нужно создать несколько папок в зависимости от количества модулей и с соответствующими названиями?
Dragon65 вне форума Ответить с цитированием
Старый 30.01.2014, 20:07   #34
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Поскольку программирование - это абстрактное описание наших жизненных потребностей и реализация этих потребностей с использованием готовых решений, полученных в этом самом жизненном опыте ...
Пусть нам надо решить некоторое уравнение, а мы не знаем как это сделать. Но мы знаем, что у нас есть книжка, в которой описан способ решения такого уравнения. Замечу, что не конкретное решение конкретного уравнения, а только способ/метод. Мы находим эту книжку в нашей библиотеке, и вот у нас есть решение. Как программе сообщить, что решение уже описано и находится в такой-то библиотеке, в книге ...?
Волшебное словечко Uses (применить, ...) позволяет указать программе, в какой библиотеке надо искать готовое решение (процедуру, функцию, константу, ...).
Так можно указать программе где находится процедура инициализации, например, графического режима, или скажем, функция, выдающая символ, который пользователь нажал на клаве, ...
Правило подготовки таких библиотечных модей простое, можно самому написать такие модули ...
К тому же, при написании сложной программы, неплохо бы было использовать и свои наработки и наработки товарищей. Объеденяя такие наработки тематически и размещая их в своих модулях, можно сильно экономить время разработки, упростить отладку ( в библиотечные модули помещают, как правило, уже отлаженные решения). Правило использования:
1. В начале программы, до описания каких либо типов, переменных, процедур и т.п.
2. Uses <Модуль_1>, <Модуль_2>, ..., <Модуль_n>;
3. Модули размещаются в отдельном каталоге. На этот каталог выполняется настройка компилятора. Возможны и другие варианты ...

А у Вас есть какой либо учебник?
Возьмите, например, Т.А. Павловская, ... (есть в списке литературы).

PS: Опять неудержусь и замечу, что такое или подобное решение по подключению готовых решений к программе существует во всех языках высокого уровня, и не только высокого ... Это общий подход, выработанный жизненной практикой.


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 30.01.2014, 20:41   #35
Dragon65
Пользователь
 
Регистрация: 26.01.2014
Сообщений: 18
Радость

1)получается модуль(как я понял)- это файл с программой или какими-либо данными,которые необходимо ввести в нашу программу, может таким файлом служить допустим текстовый документ?

2)На Вашем примере с книгой я понял, что через uses может подключаться метод решения чего/либо, но как далее в программе реализуются эти модули,или, написав uses модуль1...модульn, компьютер уже как бы вошел в эти модули и в данной программе идут операции с информацией в них?

3)В данной программе получается модулями служат каталоги, в которых находятся файлы Input.txt и Output.txt?

4)И последнее-поиск этих модулей при выполнении программы идет по всему компьютеру?(т.е. в файловой системе)

Учебник есть,школьный , но в нем по такому программированию ничего нет,да и в школе у нас информатики толковой нет,вот и пытаюсь понять что-либо сам,т.к.нужно) я скачаю Т.А.Павловской Паскаль,спасибо за совет.
Dragon65 вне форума Ответить с цитированием
Старый 31.01.2014, 06:05   #36
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

1) "Файл с программой" - пожалуй, да, справедливо для библиотек (те же модули). "Текстовый документ" - только в частном случае, когда он представляет собой исходный код.
2) Компьютер их подключил и при необходимости использует. Ну, например, указано uses Учебник1, в котором содержится функция РешитьЗадачу1. В своем коде Вы указываете только функцию "РешитьЗадачу1", Вам не нужно что-то дополнительно делать. Компилятор при сборке, видя эту функцию, открывает "Учебник1" и забирает из него реализацию.
3) Нет
4) Нет. Компилятор ищет модули только там, где ему сказали.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 04.02.2014, 16:02   #37
Dragon65
Пользователь
 
Регистрация: 26.01.2014
Сообщений: 18
По умолчанию

А в данной программе uses SysUtils, Math;
Что содержится в этих модулях- я прочитал в учебнике Т.А.Павловской, что их ещё описывать нужно, прежде чем использовать,потом в этой программе x,y заданы 2 раза, пишет Неверное количество фактических параметров, как быть?
Dragon65 вне форума Ответить с цитированием
Старый 04.02.2014, 22:03   #38
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

1. Рассматриваемая Вами программа подготовлена в Delphi 7.
2. Один из модулей содержит описания общеиспользуемых (так скажем) процедур и функций, например процедур чтения данных или вывода данных на монитор, а второй - математические функции.
3. В чистом Паскале, например Free Pascal, эти модули можно и не подключать. Системный модуль подключается по умолчанию, а модуль с математ. функциями вроде не должен потребоваться.
4. Описывать - это и есть запись вида: Uses <mod1>, <mod2>, ...;
5. Координаты x, y описаны однажды в записи, и второй - раз, как самостоятельные переменные. Так, что эти переменные (x, y) описаны однажды, после var ...
6. В сообщении об ошибке, как правило, указывается строка, в которой обнаружена ошибка. Точнее указывается место, выше которого, по тексту, может быть ошибка.
Так что следует повнимательнее посмотреть, что Вы написали и в каком месте возникла ошибка.
...


Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 05.02.2014, 16:45   #39
Dragon65
Пользователь
 
Регистрация: 26.01.2014
Сообщений: 18
По умолчанию

a[i].Corner:=ArcTan2(a[i].y-y,a[i].x-x); - наверное цифру 2 нужно убрать(т.к. с ней идет неизвестная функция в Паскале) а далее неверное количество фактических параметров, arctan(x),x получается одна переменная,а тут две задается, или имеется в виду угол между этими двумя переменными относительно начальных координат,как это исправить в Паскале?
Dragon65 вне форума Ответить с цитированием
Старый 05.02.2014, 16:52   #40
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
ArcTan2 calculates ArcTan(Y/X), and returns an angle in the correct quadrant. The values of X and Y must be between –2^64 and 2^64. In addition, the value of X can’t be 0. The return value will fall in the range from -Pi to Pi radians.
Сделайте аналочно средствами паскаля

PS по-моему ArcTan2 и в паскалях есть, например в фри
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 05.02.2014 в 17:12.
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi. На плоскости заданы n точек своими координатами.Построить квадрат Allexey Помощь студентам 4 18.06.2013 13:46
Задаnm n точек. Найти m=3,4... точек и построить на них m-угольник: количество точек , лежащих внутри и вне его мин. различается L.Rain Помощь студентам 0 11.12.2011 22:19
задача по множеству Марийка92 Помощь студентам 0 20.04.2011 11:07
Построить на экране множество точек Lange Помощь студентам 0 05.10.2010 22:09
(С++)построить окружность, проходящую через k>=3 точек каждого из двух множеств... Suitable Помощь студентам 1 18.01.2009 23:19