Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 05.01.2011, 15:48   #31 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от MrSTEP Посмотреть сообщение
Но меняем местами x:real; и k:integer; в описании переменных, и ловим k=0 на выходе, но верно выбранный из файла элемент.
Да, интересно. Поиграл с программкой. Всё так и есть. И более того.
Насколько я понимаю, всё это заморочки динамических размещений блоков в нетипизированных файлах, причем с необъявленной длиной блока. Между прочим, если размер блока задавать, т.е. вместо
rewrite(f) и reset(f) записать что-нибудь типа rewrite(f,10) и reset(f,10), то программа и вовсе пойдет вразнос, хотя сообщений об ошибках не будет.
А отсюда мораль: не выпендривайтесь (шутка, но...). Я вот использую во всех случаях жизни только файлы типа TEXT, а уж этими блоковыми записями-чтениями отродясь не пользовался. Ну их!
Vladimir_S вне форума   Ответить с цитированием
Старый 05.01.2011, 20:29   #32 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Я вот использую во всех случаях жизни только файлы типа TEXT, а уж этими блоковыми записями-чтениями отродясь не пользовался. Ну их!
Задача была использовать нетипизированный файл. Но блин, аж смешно вспомнить, какими глазами мы смотрели на эту прогу
MrSTEP вне форума   Ответить с цитированием
Старый 05.01.2011, 21:45   #33 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Вообще я чем дальше, тем более во мнении укрепляюсь, что в Паскале от всего, что прямо или косвенно связано с динамическим размещением в памяти чего бы то ни было, лучше (по возможности) держаться подальше. Просто можно крупно подорваться. На одну такую мину с многомерными динамическими массивами я (и, судя по Интернету, отнюдь не только я) недавно наступил. Подробно свои изыскания привел здесь: Перемножение матриц . Так что если есть возможность, то лучше без указателей, а по-простому, по рабоче-крестьянски. Оно спокойнее.
Vladimir_S вне форума   Ответить с цитированием
Старый 05.01.2011, 21:53   #34 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Нас пытались-было научить динамике, но не пошло. Не знаю, насколько это применимо в других языках, но подобная катавасия в паскале меня пугает..
MrSTEP вне форума   Ответить с цитированием
Старый 05.01.2011, 22:01   #35 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от MrSTEP Посмотреть сообщение
Нас пытались-было научить динамике, но не пошло. Не знаю, насколько это применимо в других языках, но подобная катавасия в паскале меня пугает..
LongCat как-то, помнится, упоминал, что вроде в СИ это сделано существенно более толково.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 05.01.2011, 22:47   #36 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Да нам и не преподавал его никто. Хотя, общался с одним малоизвестным программером отсюда, он сказал правильную вещь:

- Паскаль, Делфи, ЯваСкрипт - это как раз не "программер", а "кодить умею". Вот программером станешь, когда начнешь сам заморачиваться, изучать языки и методы.

Так что, учить все придется самому...
MrSTEP вне форума   Ответить с цитированием
Старый 27.05.2011, 10:20   #37 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию Касательно логического отрицания

Как оказалось, не все версии Паскаля "переваривают" употребление логического оператора Not, как функции. Т.е. если b - переменная типа boolean, то в некоторых Паскалях выражение
Not(b)
вызовет сообщение об ошибке при трансляции. Зато
Not b
понимает любая версия.
Vladimir_S вне форума   Ответить с цитированием
Старый 27.05.2011, 12:24   #38 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию Недокументированные возможности. Byte, как функция.

Все знают (надеюсь), что одним из целочисленных типов данных в Паскале является Byte - неотрицательное целое число в диапазоне 0..255. Между тем Byte может также выступать в роли функции, тип аргумента которой есть Char или Boolean. В первом случае (Char) функция Byte эквивалентна оператору Ord, т.е. возвращает значение кода символа. Если же аргумент имеет тип Boolean, то при значении true возвращается 1, а при значении false - 0.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 18:55.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.