1. Обясните что такое string и что такое char?
Нет, только не надо говорить, что string - это строчная переменная, а char - это текст, это мне сказал препод в универе (к сожалению больше я ничего из него выдавил). Меня инетересует, чем на практике отличаются string от char ? Ну может, допустим char можно как-то сортировать, а string нет и т.д.....
2. Что такое packed array? Ну вот написано b=packed array[1..30] of char ? Что такое array (массив я знаю), что он char (символьный) я догадался, но вот "packed array" - такого я не знаю.
3. Далее я приведу кусочек из моего текста программы:
Program lab;
uses crt;
var s,d: string;
z,k,c,i,j: integer;
Begin
clrscr;
Write(' Vvedite stroky = ');
Readln(s);
c:=length(s);
for i:=1 to c do
if s[i]=' ' then
k:=i;
for i:=k+1 to c-1 do
Begin
j:=j+1;
d[j]:=s[i];
end;
Write('Poslednee slovo = ');
for i:=1 to j do
Write(d[i]);
writeln;
writeln('d = ',d);
writeln('Dlina d = ',length(d));
readkey;
end.
В общем условие: дана строка s, в неё входят слова, между словами не меньше одного проблема, после последнего слова точка(!). Нужно найти это последнее слово и записать в переменную d.
Впринципе у меня все работет, но вот буквы из в приходятся "выуживать" (for i:=1 to j do), т.е. если написать просто writeln(d) получается фигня. Далее если написать length(d) - длина d, то паскаль выводит значение 0(!), хотя я туда заносил буквы. Я кончено пробовал типа d[0]:=5 - и оно тогда при writeln(d) выводил только пять букв, но дело в том, что я же не знаю сколько букв в этом слове. Конечно, значение переменной j и есть кол-во букв, на вот d[0]:=j паскалю не нравится. Вот как сделать так, что я мог нормально знать длину строки d.
И еще (может идею подкинете

P.S. Прикрепил скан с методички, ну что бы вы посмотрели, что полезного в ней много не найдешь. И свой текст программы.