![]() |
|
#1
|
|||
|
|||
![]() Ребята, подскажите пожалуйста. Нужно объяснить "умными" словами )))
Все задания сделал, а вот с этими не совсем уверен как правильно. const i=8; j=9; var A:array[-3..15] of integer; B:array[boolean] of char; С:array[char] of 1..100; Почему вот эти обращения неправильны? 1) b[a>0]:='x'; 2) b[1]; Правильны или неправильны эти обращения и почему? 3) C['a']:=a[0]; 4) a[0]:=['a']; |
#2
|
||||
|
||||
![]() Сам подумай.
1) В элемент массива с номером "A>0" записать символ 'x'. Не кажется бредом? 2) Элемент массива 1. Ну элемент, и что дальше? ... А впредь с такими вопросами к преподу. jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
![]() Цитата:
А ведь не кажется... на декларацию этого массива глянь внимательно. |
#4
|
||||
|
||||
![]() b[a>0]:='x'; - с одной стороны, все нормально:
массив b объявлен как B:array[boolean] of char;, и тогда количество элементов массива всего два, с индексами true и false. Следовательно, использование логического выражения в качестве индекса элемента массива b - верно. Однако a - объявлен как массив, а значит в выражении a>0 должден быть указан индекс элемента массива a, а его нет. Вот и ошибка. Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
#5
|
|||
|
|||
![]() Ну, возможно, ты и прав.
|
#6
|
||||
|
||||
![]() Это кто-же у вас там такой прибабахнутый такие типы делать?
И хотя объявления типов формально верны, я сам, да и думаю никто в здравом уме не будет такое использовать. Это гарантированный геморой с чтением собственного кода уже через месяц. А уж увидеть такое в чужом коде не приведи бог. Столовую вилку в розетку тоже можно засунуть, но кончится это печально. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
||||
|
||||
![]() Цитата:
C['a'] := a[0]; Неверно, т.к. индексом массива не может быть символ. a[0] := ['a']; Неверно, т.к. a - массив целых чисел, а не символов. И вообще непонятна запись вида - ['a']. В начале был Бит, потом Байт и только потом появилось Слово... |
#8
|
||||
|
||||
![]() Цитата:
C['a'] := a[0]; - верно! но возникнет исключение, если a[0] вне диапазона [1..100]! Во втором случае действительно непонятка...или ошибка: Целочисленному элементу массива с индексом 0 присваевается символьное множество с одним элементом/символом 'a'. Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
#9
|
||||
|
||||
![]() Цитата:
При Код:
C:array[char] of 1..10; Символ 'a' имеет номер 97. Получается, что Код:
C['a'] := A[0]; Код:
C[97] := A[0]; В начале был Бит, потом Байт и только потом появилось Слово... |
#10
|
||||
|
||||
![]() Цитата:
![]() ![]() Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
#11
|
|||
|
|||
![]() Ребята, спасибо всем!
Хоть разобрался ))) А то у нас у препода что не спросишь, у него на все один ответ "разбирайтесь сами", спрашивается зачем он вообще тогда нужен. |