MacroWorld: портал про ЛогоМиры и ПервоЛого

Объявление



Вы находитесь на www.macroworld.mybb.ru.

Здесь вы найдете информацию по ЛогоМирам и ПервоЛого.


Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » MacroWorld: портал про ЛогоМиры и ПервоЛого » Процедуры » Процедуры от Никиты


Процедуры от Никиты

Сообщений 1 страница 5 из 5

1

Надо добавлять в ЛогоМиры то, чего там не хватает. Не зря же он является расширяемым языком. Если кого-то из более опытных программистов возникнут предложения по оптимизации моих процедур прошу вносить исправленные в эту тему. Читатели форума должны получать самое лучшее!

0

2

Известно, что в ЛогоМирах 3.0 есть возможность работы с файлами MS Excel. Цитирую справку:

Открывает определенный файл и определенный лист Microsoft Excel. Первым входным параметром должно быть имя файла Excel. Вторым входным параметром должно быть имя листа.

Это о процедуре открой_лист_Excel (openworksheet). Сообщаю так же, (этого в справке нет) что если в книге с данным именем нет такого листа, то программа его создаёт.
Теперь о стандартной процедуре закрой_лист_Excel:

Сохраняет и закрывает файл и определенный лист Microsoft Excel. Первым входным параметром должно быть имя файла Excel. Вторым входным параметром должно быть имя листа.

При попытке ввести процедуру предложенным образом выдаётся сообщение об ошибке: Не знаю что делать с "книга.
В справке ошибка. закрой_лист_Excel вводится без входных параметров.

Отредактировано Никита (2011-02-08 17:22:48)

+1

3

Кроме открытия и закрытия в работе с Excel есть всего две процедуры: возьми_ячейку и установи_ячейку.
Входные параметры это координаты ячеек: номер строки и номер столбца.
Но этих двух процедур чрезвычайно недостаточно для работы с Excel в ЛогоМирах 3.0!!!
Нужно ещё хотя бы копировать и вставлять блок ячеек.
Сколько входных параметров должно быть в процедуре копирования блока ячеек?
4. Координаты левой верхней ячейки, высота и ширина блока.

это копируй_блок :строка :столбец :высота :ширина
пусть "обмен []
пусть "ряд []
пусть "ячейка "
повтори :ширина
[повтори :высота
[пусть "ячейка возьми_ячейку :строка :столбец
пусть "ряд вксп :ячейка :ряд пусть "строка :строка + 1]
пусть "строка :строка - :высота
пусть "обмен вксп :ряд :обмен
пусть "столбец :столбец + 1
пусть "ряд []]
конец

Процедура сохраняет блок ячеек в глобальной переменной "обмен.
Теперь процедура для вставки этого блока ячеек:

это вставь_блок :строка :столбец
перебор [ряд :обмен]
[перебор [ячейка :ряд]
[установи_ячейку :строка :столбец :ячейка
пусть "строка :строка + 1]
пусть "строка (:строка - сколько :ряд)
пусть "столбец :столбец + 1]
конец

А теперь, для того, чтобы Вы полнее поняли суть этих процедур, я предлагаю Вам домашнее задание: Поменяв между собой два слова в трёх строках процедуры вставь_блок превратите её в процедуру транспонирования.

0

4

Обращаю всеобщее внимание на то, что в Excel вы можете задать формулы взаимодействия ячеек, задавать входные данные из ЛогоМиров 3.0 и считывать результат в Ваш проект.

0

5

Допустим, у нас есть список, элементами которого являются числа.
установи_слагаемые [1 1 1 1 1 1]
Мы хотим получить сумму всех элементов этого списка.
покажи (сумма слагаемые)
показывает
сумма не допускает [1 1 1 1 1 1] на входе,
что не удивительно.
покажи (сумма 1 1 1 1 1 1)
показывает 6,
как и должно быть.
Моя процедура "сумматор"

покажи сумматор слагаемые
показывает 6.

Отредактировано Никита (2011-03-19 18:03:40)

+1


Вы здесь » MacroWorld: портал про ЛогоМиры и ПервоЛого » Процедуры » Процедуры от Никиты