_Ivan_ 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба 1) как сделать приведение типов если есть выражение a:=b1000 + b[i+x]; причем а-longint а b - megatype который обявлен как array[1..100] of integer 2) препод говорил про функции приводящие символьную переменную в число и наоборот - подскажите что за ф-ции? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба a:=b1000 + b[i+x]; Смотря что у Вас стоИт между b и 1000 :) Пропустили знак какой ? 2) препод говорил про функции приводящие символьную переменную в число и наоборот - подскажите что за ф-ции? Процедуры (не функции - это не Си) val() и str() Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 18 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Процедуры (не функции - это не Си) Как раз-таки функции, раз значение возвращают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 14 ноября, 2008 Опубликовано 14 ноября, 2008 · Жалоба Как раз-таки функции, раз значение возвращают. Апядь холевара :) Оне ж не так возвращают MyVar := val(...); а в параметрах по ссылке. Стало быть как функция они не возвращают ничего. Неча развращать студентов :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба между 1000 и b стоит умножение * Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба между 1000 и b стоит умножение * тогда a:= b[i]*1000 + b[i+x]; не нуждается в "ручном" приведении типов, т.к. выражение справа тоже будет типа longint Компилер это видит благодаря тому, что в выражении присутствует константа. Раз так - сразу понятно, что в случае если b будет равно максимально представимому целому (MAXINT), результат выражения никогда не станет больше максимально возможного longint Вот если бы var a:longint; b:megatype; i,x,m:integer; begin m:= func; // здесь мы получили значение m хз откуда и хз какое a:= b[i]*m + b[i+x]; // то здесь нормальный компилер должен матюкнуццо "invalid type cast" end; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба а у меня пишет type mismatch... лан, ломать над этим голову не буду... сделаю по-другому Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба а у меня пишет type mismatch... Точно! type mismatch. А кто пишет-то? TP7.0 или поновее? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба версия 7.1 по-моему я разобрался - здесь ошибок не выдает ... осталось еще другое подправить и будет все пучком... а как в сурец сделать так чтоб компилятор написал туда мое имя фамилию и другие данные? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба а как в сурец сделать так чтоб компилятор написал туда мое имя фамилию и другие данные? Ниасилил. Кто куда должен писать ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 15 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба Ниасилил. Кто куда должен писать ? Дык, компилятор, в сурец! :-) Видимо так: const MyName : string = '_Ivan_33'; (Не помню, поймёт bp7 такое, или надо var) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба (Не помню, поймёт bp7 такое, или надо var) Понять-то поймет, тока это уже не просто в сурец пойдет, а и в ехешник :) ежели просто в сурец - то можно и в каменте (*Иванов Иван Иваныч*). Но, подозреваю, что суровый препод мог "предложить" написать программу, которая открывает свой собственный сурец и добавляет туда эти самые ФИО. Вот поэтому и не понял :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 15 15 ноября, 2008 Опубликовано 15 ноября, 2008 · Жалоба Понять-то поймет, тока это уже не просто в сурец пойдет, а и в ехешник :) Дык! И препод сможет увидеть, что автор изготовил программу самолично, а не взял у товарища:) Но, подозреваю, что суровый препод мог "предложить" написать программу, которая открывает свой собственный сурец и добавляет туда эти самые ФИО. Вот поэтому и не понял :) Неужели бывают такие жестокие преподы?! :))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Ivan_ 0 16 ноября, 2008 Опубликовано 16 ноября, 2008 · Жалоба нет, как в других компиляторах в свойствах проекта можно ставить свои данные ... а здесь как делать также? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
777777 0 17 ноября, 2008 Опубликовано 17 ноября, 2008 (изменено) · Жалоба Апядь холевара :) Оне ж не так возвращают MyVar := val(...); а в параметрах по ссылке. Стало быть как функция они не возвращают ничего. Неча развращать студентов :) Я, конечно, понимаю, что Паскакаль дебильнй язык, но про эти "функции" всегда думал, что это не функции и не процедуры, а лишь указание компилятору считать аргументы другим типом. То есть, оператор преобразования типа. Если же это действительно реальные функции, которым что-то передается и они генерируют вызов - то какие еще могут быть разговоры о паскале? Нахрена он это все делает? Есть символьная переменная, какие проблемы сложить ее с int? Сложи младший байт, затем к старшим прибавь 0 с переносом. Неужели паскаль вызывает функцию, которая возвращает то же число, но с добавлением нулевых байтов, и только это число можно использовать для сложения с int? Изменено 17 ноября, 2008 пользователем 777777 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться