(pascal)что значат
tostring.toarray.
convertall(ch-> ch.todigit)
a.println
$ в начале строки

заранее ❤️

vuqar203 vuqar203    1   01.12.2019 20:04    1

Ответы
manokhaangel manokhaangel  10.10.2020 17:41

Объяснение:

Это методы языка PascalABC.NET. Они часто строятся в цепочку, соединяясь точками и тогда результат работы одного передается другому.

Вы привели код неполностью. ToString - это метод (не знаете что это, считайте что функция), который преобразует то, что стоит перед ним в строку символов. Например, если написать 13524703.ToString, на выходе получится строка '13524703'. Надеюсь, Вы понимаете, чем строка отличается от числа'.

ToString.ToArray передаст созданную строку методу ("функции") ToArray. Она разделит строку на отдельные символы и создаст из них массив нужного размера. В первый элемент массива попадет первый символ строки, во второй - второй и т.д. И мы получим (для нашего примера) массив из 8 элементов, содержащий символы '1', '3', '5', '2', '4', '7', '0', '3'.

Метод ConvertAll преобразует все элементы массива по указанному правилу и строит новый массив. В качестве правила казано так называемая лямбда-функция (не знаете что это - и не заморачивайтесь). Важно понимать суть. Суть такова, что каждый элемент, который условно тут назвали именем ch, преобразуется посредством ch.ToDigit, т.е. переводится из символа в однозначное число. И в результате мы получим массив, каждый элемент которого будет цифрой исходного числа (1, 3, 5, 2, 4, 7, 0, 3). С ними уже можно работать как с числами.

Итак вся цепочка

'13524703'.ToString.ToArray.ConvertAll(ch->ch.ToDigit) породила массив типа integer, содержащий в каждом элементе цифру исходного числа.

Теперь A.Println. Это тоже метод. Можно писать Writeln(A), Println(A) или A.Println. Для простых переменных любого типа разницы нет. Но есть для массивов. В PascalABC.NET можно вывести сразу целиком массив. Только Writeln(A), Println(A) выведут содержимое в квадратных скобках и через запятую [1,3,5,2,4,7,0,3], а A.Print - через пробел:

1 3 5 2 4 7 0 3

$ в начале строки - это надо строку смотреть. А вот еще есть конструкция, когда $ стоит перед строкой, т.е. $'тут что-то'.

Такая замечательнвя вещь притопала из языка C# и называется интерполированная строка. Незаменимая вещь для красивого вывода!

В общем пишем так: $'{a} бит = {a/8/1024} Кбайт' и не паримся: все, что в фигурных скобках написано, будет вычислено и встроено в строку.

Нужны еще подробности - спрашивай!

ПОКАЗАТЬ ОТВЕТЫ
2345metal6789 2345metal6789  10.10.2020 17:41

ToString:

(http://pascalabc.net/stati-po-pascalabc-net/osobennosti-yazika/17-vse-tipy-klassy)

а вообще это метод, который переводит число (целое и дробное) в строковую переменную. я например такое часто использую для отладки - вывожу значение переменной в заголовок окна

window.caption:=i.tostring;  

ToArray:

(ссылки на точное объяснение нет)

"мне нужно каждую цифру в отдельный элемент массива" "типа Integer"  

 

var s:string; a:array[1..255]of integer; j,n:integer;  

begin  

write('string? '); readln(s); n:=length(s);  

for j:=1 to n do a[j]:=ord(s[j])-48;  

for j:=1 to n do write(a[j]:2); readln  

end.

ConvertAll(ch->ch.ToDigit):

Всё, что нашёл - (http://www.cyberforum.ru/pascalabc-net/thread2536389.html)

A.Println:

print - такого нет, есть write/writeln

$ в начале строки:

Вообще не знаю, что это такое ¯\_(ツ)_/¯

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика