A A A A Автор Тема: Изучаю Паскаль. Присоединяйтесь.  (Прочитано 31090 раз)

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

Оффлайн АурипигментАвтор темы

  • *****
  • Сообщений: 5 887
  • Благодарностей: 186
  • Ми пацаки с планеты Земля. А Ви кто?
    • Сообщения от Аурипигмент
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #120 : 20 Янв 2023 [21:27:42] »
Нет там никаких вложенных циклов, обычный цикл с case и условный переход. Это простые проги. Цикл repeat проверяет условие в конце, поэтому цикл успевает хотя бы один раз выполниться. Он сам предложил в начале цикла проверить переменную и досрочно завершить цикл, если она равна нулю (аварийный выход), то бишь считать ничего не нужно. Для этого сделал бесконечный цикл и ввёл break. А в отетах поставил until Y=0; прога выходит из цикла, но успевает написать глупость по последней ветви else, т.к. там уже ничего не проверяется. :(
Нам тайны не раскрытые раскрыть пора,
Лежат без пользы тайны, как в копилке.
Мы тайны эти с корнем вырвем у ядра,
На волю пустим Джина из бутылки.

Оффлайн Павел Васильев

  • *****
  • Сообщений: 889
  • Благодарностей: 30
  • БПЦ 20х60
    • Сообщения от Павел Васильев
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #121 : 23 Янв 2023 [20:23:43] »
То что решили изучать Паскаль это правильно - он прямой потомок Алгола, который был 30 лет стандартом записи и публикации алгоритмов. Современный объетный  Паскаль это   Delphi, а другие среды вроде Лазаруса копируют и пытаются догнать Дельфи по возможностям. Бесплатная версия  Community Edition Delphi сейчас доступна и полнофункциональна. Для Линукса и мобильных ОС программы писать тоже можно, правда сама IDE работает в Windows. Всё проекты из упомянутой вами книги Песни о Паскале компилируются без ошибок. Но главное не это, изучать надо сразу библиотеки управляющих элементов и визуальные компоненты Дельфи на примерах, а язык в справочной системе по ходу освоить. Кстати, там же в справке сразу тоже самое и для с++ билдера приведено. Заодно и плюсы освоите. Но скорость разработки больших программ, не говоря про читабельность, совершение ошибок и трудоёмкость отладки кода, в Дельфи на порядок быстрее и лучше, чем в любом сишном компилятор. Кстати, для с++ в  RAD Studio включён и самый современный стандарт LLVM компилятор. Языки типа Python  с интерпретаторами для разработки мощных программ с СУБД со сложными интерфейсами, вообще полный отстой. Хотя Питонцы уже имеют возможность доступа к тем же компонентам Дельфи VCL через либу Delphi4Python & Python4Delphi.  Но маразматические конструкции самого языка Пайтон и бездарная структура кода, не говоря уже о черепашьей скорости создания приложений, уже неисправимы. Языком года по версии Tiobe в 2022 году признан с++. Известно, что если перевести на нормальный человеческий язык (английский) язык с++, то получится...Delphi.  Если грамотно писать,зная английский, там и комментировать ничего не надо, поэтому Object Pascal   никогда не умрёт. Не верьте сказкам.
Симулятор нооэволюции Млечного Пути https://gitverse.ru/glscene/astrobloq
Численное решение парадокса Ферми

Оффлайн АурипигментАвтор темы

  • *****
  • Сообщений: 5 887
  • Благодарностей: 186
  • Ми пацаки с планеты Земля. А Ви кто?
    • Сообщения от Аурипигмент
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #122 : 24 Янв 2023 [13:03:38] »
Сранил свои решения с авторскими вариантами. Некоторые решения похожи, а некоторые реализованы совсем по-другому. :(
При этом автор не даёт подсказок. В задаче с управлением танком, он не прописывает словами сторону света, а пишет цифру, не выполняет проверку входных данных и почему-то не делает аварийный выход из цикла, если направление =0. В результате, если направление =0 у него программа выходит из цикла и пишет глупость, что направление =0. :-\
В программе на цвет шахматных клеток, автор решает её даже не через оператор CASE, про который был пройденный параграф:

Цитата
Ж) Программа запрашивает в цикле два числа: вертикаль и горизонталь
шахматной доски (числа от 1 до 8), а затем печатает цвет клетки на их пересечении.
Если хотя бы одно из чисел равно нулю, цикл завершается. Если числа выходят за
указанные пределы, сообщает об ошибке и повторяет запрос чисел.
Подсказка: на пересечении 1-й строки и 1-го столбца находится чёрная клетка.

При этом делает проверку входных данных и аварийный выход из цикла. А решает задачу через остаток от целочисленного деления на 2 и условные операторы с логическими выражениями. Я тоже вначале хотел проверять сумму номеров строки и столбца, но через CASE было проще. Как догадаться, каким путём решать задачу? ???
Нам тайны не раскрытые раскрыть пора,
Лежат без пользы тайны, как в копилке.
Мы тайны эти с корнем вырвем у ядра,
На волю пустим Джина из бутылки.

Оффлайн CyberManiac

  • *****
  • Сообщений: 9 413
  • Благодарностей: 532
  • Я ♥ オリオン!
    • Сообщения от CyberManiac
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #123 : 24 Янв 2023 [13:17:47] »
Как догадаться, каким путём решать задачу? ???
Математическим. Очевидно, что вариантов раскраски строк два: нечётная строка и чётная. Чуть менее очевидно, что раскраска строк - битовая маска 10101010 или 01010101. Ещё менее очевидно, что вторая маска получается из первой сдвигом на 1 бит влево. Итого: решение получается одним оператором AND, одним оператором сдвига и проверкой младшего бита (функция Odd, кажется). Условия, циклы и прочее тут не нужны вообще.
Трэш, угар и астрономия!
沖縄最高

Оффлайн АурипигментАвтор темы

  • *****
  • Сообщений: 5 887
  • Благодарностей: 186
  • Ми пацаки с планеты Земля. А Ви кто?
    • Сообщения от Аурипигмент
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #124 : 24 Янв 2023 [14:40:37] »
Итого: решение получается одним оператором AND, одним оператором сдвига и проверкой младшего бита (функция Odd, кажется).
Я ещё ничего подобного не учил, а прошёл условные переходы, CASE и цикл REPEAT. ???
Нам тайны не раскрытые раскрыть пора,
Лежат без пользы тайны, как в копилке.
Мы тайны эти с корнем вырвем у ядра,
На волю пустим Джина из бутылки.

Оффлайн CyberManiac

  • *****
  • Сообщений: 9 413
  • Благодарностей: 532
  • Я ♥ オリオン!
    • Сообщения от CyberManiac
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #125 : 24 Янв 2023 [15:10:10] »
Итого: решение получается одним оператором AND, одним оператором сдвига и проверкой младшего бита (функция Odd, кажется).
Я ещё ничего подобного не учил, а прошёл условные переходы, CASE и цикл REPEAT. ???
Тогда проще: пронумеруем все клетки доски числами от 0 до 63, чтобы первая клетка первой строки была 0, вторая - 1, первая клетка 2 строки - 8 и т.д. Очевидно, что все чётные клетки - чёрные. Теперь вычислим номер клетки, он равен (номер строки - 1) * 8 + (номер клетки в строке - 1). Теперь осталось только просто проверить номер клетки на чётность и напечатать результат
Трэш, угар и астрономия!
沖縄最高

Оффлайн АурипигментАвтор темы

  • *****
  • Сообщений: 5 887
  • Благодарностей: 186
  • Ми пацаки с планеты Земля. А Ви кто?
    • Сообщения от Аурипигмент
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #126 : 24 Янв 2023 [15:20:40] »
Вот мой вариант:

program Z_16_7;

var Y : byte; { номер поля по вертикали }
X : byte; { номер поля по горизонтали }

BEGIN
repeat
Write('Введите номер поля по горизонтали от 1 до 8, 0-- выход: '); Read(X);
if X=0 then break;
Write('Введите номер поля по вертикали от 1 до 8, 0 -- выход: '); Read(Y);
if Y=0 then break; { выход из цикла если X или Y равны нулю }
case X of
1, 3, 5, 7 : case Y of
1, 3, 5, 7 : Writeln('Чёрное поле');
2, 4, 6, 8 : Writeln('Бело поле');
else Writeln('Ошибка в Y!');
end;
2, 4, 6, 8 : case Y of
1, 3, 5, 7 : Writeln('Белое поле');
2, 4, 6, 8 : Writeln('Чёрное поле');
else Writeln('Ошибка в Y!');
end;
else Writeln('Ошибка в X!');
end;
until false; { бесконечный цикл }


END.
Получилось два вложенных CASE в CASE. Автор же в ответах, вообще, не применил CASE, а ограничился простым условным переходом:

var X, Y: integer;
begin
repeat
Y:=1;
Write('X= '); Readln(X);
if X=0 then break;
if (X>0) and (X<9) then begin
Write('Y= '); Readln(Y);
if Y=0 then break;
if (Y>0) and (Y<9) then begin
if ((X+Y) mod 2)=0
then Writeln('Белая клетка')
else Writeln('Черая клетка')
end else begin
Writeln('Ошибка в Y!');
end
end else begin
Writeln('Ошибка в X!');
end
until (X=0) or (Y=0);
Writeln('До встречи!');
end.
Нам тайны не раскрытые раскрыть пора,
Лежат без пользы тайны, как в копилке.
Мы тайны эти с корнем вырвем у ядра,
На волю пустим Джина из бутылки.

Оффлайн LeftUser

  • *****
  • Сообщений: 33 945
  • Благодарностей: 1067
  • Кирилл ㋛
    • Сообщения от LeftUser
    • Часы
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #127 : 25 Янв 2023 [13:40:03] »
Но скорость разработки больших программ, не говоря про читабельность, совершение ошибок и трудоёмкость отладки кода, в Дельфи на порядок быстрее и лучше, чем в любом сишном компилятор.
А вот это не надо. Промышленным стандартом всё же остаётся С++. Ни одного серьёзного коммерческого продукта не припомню на Дельфи. Хотя самому на нём пришлось пару лет пописать. Объектный Паскаль как язык не вызывает нареканий. В нём всё хорошо, но С/С++ ближе моему сердцу :) За почти 30 лет стажа на каких только ещё языках писать не приходилось. Ну почти все они со своими плюсами и минусами одинаковы. Скажу так. Есть С/С++ и все остальные языки программирования.   :P :)

- Мыкола, ты знаешь як паскали нуль кличут?
- Як, як??
- Ни-и-ил...
- Поубывал бы

 ;D

Оффлайн eabrega

  • **
  • Сообщений: 69
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от eabrega
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #128 : 25 Янв 2023 [15:59:23] »
Ни одного серьёзного коммерческого продукта не припомню на Дельфи.
В таком случае вот: Skype, TotalComander, Sublimetext.
Если серьезности этих продуктов покажется не достаточно то есть Altium Designer (в начале своего пути).
Ну и как вишенка на торт - крайне популярная среда разработки Embarcadero C++ Builder, написана на нем же.
Хотя, безусловно, согласен с Вами, в 2023 году паскаль можно смело считать древним, мертвым языком. Как латынь - давшая начало многим другим натуральным языкам.
https://astronav.ru - актуальная версия
https://stage.astronav.ru - тестовый стенд (мобильная версия не работает!!)

Оффлайн LeftUser

  • *****
  • Сообщений: 33 945
  • Благодарностей: 1067
  • Кирилл ㋛
    • Сообщения от LeftUser
    • Часы
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #129 : 25 Янв 2023 [17:14:42] »
TotalComander
То-то я подсознательно всегда Far выбирал :)

ps Но он же вроде не коммерческий. Сел фанат паскаля и написал. Да и все остальные тоже, не особо коробочные варианты за деньги продавались.

Оффлайн CyberManiac

  • *****
  • Сообщений: 9 413
  • Благодарностей: 532
  • Я ♥ オリオン!
    • Сообщения от CyberManiac
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #130 : 25 Янв 2023 [17:52:12] »
С/С++ ближе моему сердцу
АНБ США одобряет! Премию за вредительство получите в кассе в Вашингтоне.
Трэш, угар и астрономия!
沖縄最高

Оффлайн byFelix

  • Новичок
  • *
  • Сообщений: 23
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от byFelix
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #131 : 25 Янв 2023 [18:22:45] »
Цитата
Но он же вроде не коммерческий.
FL Studio, Everest, Argus3.
« Последнее редактирование: 25 Янв 2023 [18:57:55] от byFelix »
Arsenal 150/750, Arsenal 130/900

Оффлайн eabrega

  • **
  • Сообщений: 69
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от eabrega
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #132 : 25 Янв 2023 [18:33:50] »
Да и все остальные тоже, не особо коробочные варианты за деньги продавались.
То что у нас народ привык все пиратить - не значит что ПО не коммерческое. Из приведенного мной списка бесплатный только Skype.
https://astronav.ru - актуальная версия
https://stage.astronav.ru - тестовый стенд (мобильная версия не работает!!)

Оффлайн Павел Васильев

  • *****
  • Сообщений: 889
  • Благодарностей: 30
  • БПЦ 20х60
    • Сообщения от Павел Васильев
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #133 : 25 Янв 2023 [19:24:26] »
FL Studio, Everest, Argus3.
Секвенсор FL конечно крутой, но ещё можно кучу классных коммерческих приложений перечислить по базам данных, а особенно по графике. Вот например самая лучшая опенсорс графическая платформа рендеринга  GLScene. Там и по космосу есть замечательные программы с исходниками - https://github.com/GLScene/Kosmos .Самое главное для любителей астрономии надо помнить, что  Skychart (Cartes du Ciel) написан и актуально сейчас поддерживается именно на Дельфи, т.е. на Object Pascal.
Симулятор нооэволюции Млечного Пути https://gitverse.ru/glscene/astrobloq
Численное решение парадокса Ферми

Оффлайн LeftUser

  • *****
  • Сообщений: 33 945
  • Благодарностей: 1067
  • Кирилл ㋛
    • Сообщения от LeftUser
    • Часы
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #134 : 25 Янв 2023 [19:40:46] »
Цитата
Но он же вроде не коммерческий.
FL Studio, Everest, Argus3.
Пока ни одного доказательства.
С/С++ ближе моему сердцу
АНБ США одобряет! Премию за вредительство получите в кассе в Вашингтоне.
Эко вы фактами жонглируете. АНБ как раз не одобряет, а хочет чтобы все отказались от С/С++. Трудно проги ломать и инфу добывать. Пишите ка лучше на паскале  :D

Оффлайн CyberManiac

  • *****
  • Сообщений: 9 413
  • Благодарностей: 532
  • Я ♥ オリオン!
    • Сообщения от CyberManiac
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #135 : 25 Янв 2023 [20:00:56] »
Эко вы фактами жонглируете. АНБ как раз не одобряет, а хочет чтобы все отказались от С/С++. Трудно проги ломать и инфу добывать.
Не так уж и сложно. Кто-то же впилил в OpenSSL, как раз на сишечке писанный, шикарный ч0рный ход, через который десять лет "кому надо" читали то, что от них хотели спрятать. Одни как раз показывают пальцем на АНБ, другие, по привычке, на Моссад. Так шта смело требуйте с них орден "За заслуги перед американским отечеством" и книжечку, чтобы в вашингтонских автобусах бесплатно ездить.
Трэш, угар и астрономия!
沖縄最高

Оффлайн Павел Васильев

  • *****
  • Сообщений: 889
  • Благодарностей: 30
  • БПЦ 20х60
    • Сообщения от Павел Васильев
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #136 : 25 Янв 2023 [20:31:40] »
А вот это не надо. Промышленным стандартом всё же остаётся С++.
Вот уже четверть века пишу одновременно на Дельфи и С/C++. Из-за агрессивной политики Mайкрософта, навязывающего свои продукты разработчикам, в том числе компиляторы, пришлось переключаться и на си++, в т.ч. собирать кое-какие либы на MS Visual Studio.    Проекты параллельные, практически одинаковые по алгоритмам, в основном для обучения программированию графики - там если в проекте есть прямой код OpenGL, то текст программы практически один в один схож, да и сопровождается одинаковыми комментариями с теми же двумя слешами //.  Так вот, давайте сравним скорость сборки экзешников в Дельфи, C++Bulder и MS VC. В среднем для небольшого проекта имеем по времени в том же порядке, по моим оценкам  - 3с, 7с, 15с. Причём в последних RAD студиях сишный компилятор стал пошустрее. В Си Билдере 6 был на порядок медленнее, чем в Delphi7. Тем не менее сейчас, если большой проект с сотнями модулей, да ещё и с подключаемыми сторонними либами, то на С/С++ компиляторах всё, туши свет и иди пей кофе. В режиме интенсивной разработки, когда надо после каждого ввода нового класса, переменной или массива билдить проект и смотреть в отладчике, что с данными не так в результате, то терпения у многих кончается и они переходят на Питон, клепать ширпотреб. Не осилили VCL/FMX/FireDAC и работу Web компонентов. Если большая команда работает с разделением труда по разделам проекта или подпрограммам, то это может и не так заметно, но для малой группы или одного разработчика такая тягомотина становится невыносимой.  На Хабре недавно была статья по сравнению скорости компиляции на разных языка тестовой программы. Туда, кстати и интерпретатор Пайтона приплели, но он, что закономерно,   страшно застойным оказался. Но опять же произошла подмена понятий - вместо скорости компиляции программ приводится скорость работы программ после компиляции. Кто-то считает, что на больших проектах вполне себе можно главное отладить, а дальше мейкать, а не билдить, сделать оптимизацию, поискать элегантные решения лучшими языковыми средствами и прочее не относящееся к реальной практике.  В общем, если кто встречал объективное сопоставление по скоростям сборки для разных сред, то дайте ссылку.
Симулятор нооэволюции Млечного Пути https://gitverse.ru/glscene/astrobloq
Численное решение парадокса Ферми

Оффлайн eabrega

  • **
  • Сообщений: 69
  • Благодарностей: 5
  • Мне нравится этот форум!
    • Сообщения от eabrega
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #137 : 25 Янв 2023 [20:34:20] »
Вот например самая лучшая опенсорс графическая платформа рендеринга  GLScene.
Стесняюсь спросить, кто его таким определил? Чем он лучше Blender например?
https://astronav.ru - актуальная версия
https://stage.astronav.ru - тестовый стенд (мобильная версия не работает!!)

Оффлайн byFelix

  • Новичок
  • *
  • Сообщений: 23
  • Благодарностей: 2
  • Мне нравится этот форум!
    • Сообщения от byFelix
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #138 : 25 Янв 2023 [21:05:09] »
GLScene
Опа платформа живёт! Надо бы обновит компонент у себя.
Arsenal 150/750, Arsenal 130/900

Оффлайн Павел Васильев

  • *****
  • Сообщений: 889
  • Благодарностей: 30
  • БПЦ 20х60
    • Сообщения от Павел Васильев
Re: Изучаю Паскаль. Присоединяйтесь.
« Ответ #139 : 25 Янв 2023 [22:04:47] »
Стесняюсь спросить, кто его таким определил? Чем он лучше Blender например?
Лучше или хуже - это конечно в общем субъективные понятия. Когда кто-то чего-то не знает, то столкнувшись с трудностями в работе он скажет, что это хуже. Но если мы берём конкретно эффективность и скорость разработки мультимедийных приложений с 3д графикой, то лучше библиотек векторной графики с визуальными компонентами ничего не придумано, да и вряд ли возможно предложить. В RAD студии есть компоненты FireMonkey, которые можно назвать кросс-платформенной веткой GLScene, но за 10 лет как появились FMX Эмба дальше набора страндартных контролов, кнопок с анимацией и стилями пока не продвинулась. Из того, что есть в GLS в FMX реализовано процентов на 30%. А Blender - графический 3D редактор, это не среда программирования, хотя там можно писать скрипты на Питоне. Тоже самое можно сказать и о других монстрах типа Unity3D с его си шарпом или UDK4 с си плюсами. То-есть вы имеете уже программу-редактор и далее создаёте в ней контент. Другая идеология, это совершенно другой подход в отличии от редактора GLEdit в самой среде разработки RAD студия в режиме дизайн тайм, а не рантайм. А что касается базовой графической начинки внутри оболочки Blenderа или GLScenе, то она всё та же - стандартная библиотека OpenGL, плюс ещё DirectX в FMX (в Win, на остальных ОС - OpenGL).  Шейдеры все те-же самые, если надо что-то приукрасить. Для Vulcan не спешат  пока делать нормальный фреймворк. А сцена спроектирована очень грамотно с точки зрения ООП в своей иерархии классов, порождённых от TObject и TComponent. Незаурядными и даже очень широко известными в узких кругах программистами, а не чайниками какими-то.       

« Последнее редактирование: 26 Янв 2023 [09:14:02] от wassail »
Симулятор нооэволюции Млечного Пути https://gitverse.ru/glscene/astrobloq
Численное решение парадокса Ферми