|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.01.2014, 12:47 | #31 |
Пользователь
Регистрация: 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, она идет в файле построчечно и поэтому так соотносит переменные? |
29.01.2014, 20:13 | #32 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
1)как я понял из объяснения ViktorR в любом массиве(контейнере) может содержаться большое количество вложенных элементов разных типов, их лишь нужно задать через точку, верно?
Пример: Код:
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 прочитает только столько чисел, сколько будет указано в ее аргументах, а затем переведет строку, в отличие от процедуры Read(), которая строку не переведет. Команда Код:
Как-то так, ...
Как-то так, ...
|
30.01.2014, 17:52 | #33 |
Пользователь
Регистрация: 26.01.2014
Сообщений: 18
|
Спасибо большое)
Последний вопрос: Uses ... для чего служит? При запуске программы у меня пишет модуль..(стоит перед Uses) не найден. т.е. это нужно создать несколько папок в зависимости от количества модулей и с соответствующими названиями? |
30.01.2014, 20:07 | #34 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Поскольку программирование - это абстрактное описание наших жизненных потребностей и реализация этих потребностей с использованием готовых решений, полученных в этом самом жизненном опыте ...
Пусть нам надо решить некоторое уравнение, а мы не знаем как это сделать. Но мы знаем, что у нас есть книжка, в которой описан способ решения такого уравнения. Замечу, что не конкретное решение конкретного уравнения, а только способ/метод. Мы находим эту книжку в нашей библиотеке, и вот у нас есть решение. Как программе сообщить, что решение уже описано и находится в такой-то библиотеке, в книге ...? Волшебное словечко Uses (применить, ...) позволяет указать программе, в какой библиотеке надо искать готовое решение (процедуру, функцию, константу, ...). Так можно указать программе где находится процедура инициализации, например, графического режима, или скажем, функция, выдающая символ, который пользователь нажал на клаве, ... Правило подготовки таких библиотечных модей простое, можно самому написать такие модули ... К тому же, при написании сложной программы, неплохо бы было использовать и свои наработки и наработки товарищей. Объеденяя такие наработки тематически и размещая их в своих модулях, можно сильно экономить время разработки, упростить отладку ( в библиотечные модули помещают, как правило, уже отлаженные решения). Правило использования: 1. В начале программы, до описания каких либо типов, переменных, процедур и т.п. 2. Uses <Модуль_1>, <Модуль_2>, ..., <Модуль_n>; 3. Модули размещаются в отдельном каталоге. На этот каталог выполняется настройка компилятора. Возможны и другие варианты ... А у Вас есть какой либо учебник? Возьмите, например, Т.А. Павловская, ... (есть в списке литературы). PS: Опять неудержусь и замечу, что такое или подобное решение по подключению готовых решений к программе существует во всех языках высокого уровня, и не только высокого ... Это общий подход, выработанный жизненной практикой. Как-то так, ...
Как-то так, ...
|
30.01.2014, 20:41 | #35 |
Пользователь
Регистрация: 26.01.2014
Сообщений: 18
|
1)получается модуль(как я понял)- это файл с программой или какими-либо данными,которые необходимо ввести в нашу программу, может таким файлом служить допустим текстовый документ?
2)На Вашем примере с книгой я понял, что через uses может подключаться метод решения чего/либо, но как далее в программе реализуются эти модули,или, написав uses модуль1...модульn, компьютер уже как бы вошел в эти модули и в данной программе идут операции с информацией в них? 3)В данной программе получается модулями служат каталоги, в которых находятся файлы Input.txt и Output.txt? 4)И последнее-поиск этих модулей при выполнении программы идет по всему компьютеру?(т.е. в файловой системе) Учебник есть,школьный , но в нем по такому программированию ничего нет,да и в школе у нас информатики толковой нет,вот и пытаюсь понять что-либо сам,т.к.нужно) я скачаю Т.А.Павловской Паскаль,спасибо за совет. |
31.01.2014, 06:05 | #36 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
1) "Файл с программой" - пожалуй, да, справедливо для библиотек (те же модули). "Текстовый документ" - только в частном случае, когда он представляет собой исходный код.
2) Компьютер их подключил и при необходимости использует. Ну, например, указано uses Учебник1, в котором содержится функция РешитьЗадачу1. В своем коде Вы указываете только функцию "РешитьЗадачу1", Вам не нужно что-то дополнительно делать. Компилятор при сборке, видя эту функцию, открывает "Учебник1" и забирает из него реализацию. 3) Нет 4) Нет. Компилятор ищет модули только там, где ему сказали.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
04.02.2014, 16:02 | #37 |
Пользователь
Регистрация: 26.01.2014
Сообщений: 18
|
А в данной программе uses SysUtils, Math;
Что содержится в этих модулях- я прочитал в учебнике Т.А.Павловской, что их ещё описывать нужно, прежде чем использовать,потом в этой программе x,y заданы 2 раза, пишет Неверное количество фактических параметров, как быть? |
04.02.2014, 22:03 | #38 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
1. Рассматриваемая Вами программа подготовлена в Delphi 7.
2. Один из модулей содержит описания общеиспользуемых (так скажем) процедур и функций, например процедур чтения данных или вывода данных на монитор, а второй - математические функции. 3. В чистом Паскале, например Free Pascal, эти модули можно и не подключать. Системный модуль подключается по умолчанию, а модуль с математ. функциями вроде не должен потребоваться. 4. Описывать - это и есть запись вида: Uses <mod1>, <mod2>, ...; 5. Координаты x, y описаны однажды в записи, и второй - раз, как самостоятельные переменные. Так, что эти переменные (x, y) описаны однажды, после var ... 6. В сообщении об ошибке, как правило, указывается строка, в которой обнаружена ошибка. Точнее указывается место, выше которого, по тексту, может быть ошибка. Так что следует повнимательнее посмотреть, что Вы написали и в каком месте возникла ошибка. ... Как-то так, ...
Как-то так, ...
|
05.02.2014, 16:45 | #39 |
Пользователь
Регистрация: 26.01.2014
Сообщений: 18
|
a[i].Corner:=ArcTan2(a[i].y-y,a[i].x-x); - наверное цифру 2 нужно убрать(т.к. с ней идет неизвестная функция в Паскале) а далее неверное количество фактических параметров, arctan(x),x получается одна переменная,а тут две задается, или имеется в виду угол между этими двумя переменными относительно начальных координат,как это исправить в Паскале?
|
05.02.2014, 16:52 | #40 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
PS по-моему ArcTan2 и в паскалях есть, например в фри
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 05.02.2014 в 17:12. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |