реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> 2 вопроса по паскалю, всего 2...
_Ivan_33
сообщение Nov 14 2008, 13:35
Сообщение #1


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



1) как сделать приведение типов если есть выражение a:=b[i]1000 + b[i+x]; причем а-longint а b - megatype который обявлен как array[1..100] of integer
2) препод говорил про функции приводящие символьную переменную в число и наоборот - подскажите что за ф-ции?


--------------------
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 14 2008, 14:00
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(_Ivan_33 @ Nov 14 2008, 17:35) *
a:=b[i]1000 + b[i+x];

Смотря что у Вас стоИт между b[i] и 1000 smile.gif Пропустили знак какой ?
Цитата
2) препод говорил про функции приводящие символьную переменную в число и наоборот - подскажите что за ф-ции?

Процедуры (не функции - это не Си)
val() и str()
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Nov 14 2008, 14:09
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(_Pasha @ Nov 14 2008, 17:00) *
Процедуры (не функции - это не Си)

Как раз-таки функции, раз значение возвращают.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 14 2008, 14:18
Сообщение #4


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(MrYuran @ Nov 14 2008, 18:09) *
Как раз-таки функции, раз значение возвращают.

Апядь холевара smile.gif
Оне ж не так возвращают
Код
MyVar := val(...);

а в параметрах по ссылке. Стало быть как функция они не возвращают ничего.
Неча развращать студентов smile.gif
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Nov 15 2008, 15:55
Сообщение #5


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



между 1000 и b[i] стоит умножение *


--------------------
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 15 2008, 16:39
Сообщение #6


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(_Ivan_33 @ Nov 15 2008, 19:55) *
между 1000 и b[i] стоит умножение *

тогда
Код
a:= b[i]*1000 + b[i+x];

не нуждается в "ручном" приведении типов, т.к. выражение справа тоже будет типа longint
Компилер это видит благодаря тому, что в выражении присутствует константа. Раз так - сразу понятно, что в случае если b[i] будет равно максимально представимому целому (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;
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Nov 15 2008, 19:09
Сообщение #7


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



а у меня пишет type mismatch... лан, ломать над этим голову не буду... сделаю по-другому


--------------------
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 15 2008, 19:17
Сообщение #8


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(_Ivan_33 @ Nov 15 2008, 23:09) *
а у меня пишет type mismatch...

Точно! type mismatch. А кто пишет-то? TP7.0 или поновее?
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Nov 15 2008, 19:25
Сообщение #9


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



версия 7.1
по-моему я разобрался - здесь ошибок не выдает ... осталось еще другое подправить и будет все пучком...
а как в сурец сделать так чтоб компилятор написал туда мое имя фамилию и другие данные?


--------------------
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 15 2008, 20:13
Сообщение #10


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(_Ivan_33 @ Nov 15 2008, 23:25) *
а как в сурец сделать так чтоб компилятор написал туда мое имя фамилию и другие данные?

Ниасилил.
Кто куда должен писать ?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 15 2008, 20:45
Сообщение #11


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(_Pasha @ Nov 16 2008, 02:13) *
Ниасилил.
Кто куда должен писать ?


Дык, компилятор, в сурец! :-)

Видимо так:
Код
const MyName : string = '_Ivan_33';


(Не помню, поймёт bp7 такое, или надо var)


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 15 2008, 20:54
Сообщение #12


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(AHTOXA @ Nov 16 2008, 00:45) *
(Не помню, поймёт bp7 такое, или надо var)

Понять-то поймет, тока это уже не просто в сурец пойдет, а и в ехешник smile.gif
ежели просто в сурец - то можно и в каменте (*Иванов Иван Иваныч*).
Но, подозреваю, что суровый препод мог "предложить" написать программу, которая открывает свой собственный сурец и добавляет туда эти самые ФИО. Вот поэтому и не понял smile.gif
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 15 2008, 21:06
Сообщение #13


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(_Pasha @ Nov 16 2008, 02:54) *
Понять-то поймет, тока это уже не просто в сурец пойдет, а и в ехешник smile.gif

Дык! И препод сможет увидеть, что автор изготовил программу самолично, а не взял у товарищаsmile.gif
Цитата(_Pasha @ Nov 16 2008, 02:54) *
Но, подозреваю, что суровый препод мог "предложить" написать программу, которая открывает свой собственный сурец и добавляет туда эти самые ФИО. Вот поэтому и не понял smile.gif

Неужели бывают такие жестокие преподы?! smile.gif))


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
_Ivan_33
сообщение Nov 16 2008, 06:13
Сообщение #14


fpga designer
****

Группа: Свой
Сообщений: 613
Регистрация: 20-04-08
Из: Зеленоград
Пользователь №: 36 928



нет, как в других компиляторах в свойствах проекта можно ставить свои данные ... а здесь как делать также?


--------------------
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 17 2008, 05:31
Сообщение #15


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(_Pasha @ Nov 14 2008, 17:18) *
Апядь холевара smile.gif
Оне ж не так возвращают
Код
MyVar := val(...);

а в параметрах по ссылке. Стало быть как функция они не возвращают ничего.
Неча развращать студентов smile.gif

Я, конечно, понимаю, что Паскакаль дебильнй язык, но про эти "функции" всегда думал, что это не функции и не процедуры, а лишь указание компилятору считать аргументы другим типом. То есть, оператор преобразования типа. Если же это действительно реальные функции, которым что-то передается и они генерируют вызов - то какие еще могут быть разговоры о паскале? Нахрена он это все делает? Есть символьная переменная, какие проблемы сложить ее с int? Сложи младший байт, затем к старшим прибавь 0 с переносом. Неужели паскаль вызывает функцию, которая возвращает то же число, но с добавлением нулевых байтов, и только это число можно использовать для сложения с int?

Сообщение отредактировал 777777 - Nov 17 2008, 05:33
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 08:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01486 секунд с 7
ELECTRONIX ©2004-2016