Вопрос № 88796: Уважаемые Эксперты!!
Сколко времени тратик этот программа?
Задача - http://diploboy.ifolder.ru/2148414
Ответ в приложении...Вопрос № 88813: Уважаемые гуру! Я сам программирую на языках уже давно, но с динамико в Паскале еще не встречался ..... объясните пожалуйста что я делаю неправильно в следующем листинге из Паскаля ...
program blin;
uses crt;
type
detal=^trec;
tre...Вопрос № 88861: Здравствуйте, Эксперты! Помогите с задачей на Паскале: Дано натуральное число n, символы С1, С2...Сn. Группы символов, разделённые пробелами (одним или несколькими) и не содержащими пробелов внутри себя, будут называться <s>символами</s> <fon...
Вопрос № 88.796
Уважаемые Эксперты!!
Сколко времени тратик этот программа?
Задача - http://diploboy.ifolder.ru/2148414
Ответ в приложении
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Muhammedov Abdurohman!
Обратите внимание на функцию GetTime.
Вам ее нужно вызывать 2-жды в начале программы и в конце.
По разности данных (с учетом ограничений 23,59,59,99)
Вы получете рузультат
Удачи!
--------- И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Студент)
Ответ отправлен: 27.05.2007, 15:17 Оценка за ответ: 5 Комментарий оценки: Спасибо
Вопрос № 88.813
Уважаемые гуру! Я сам программирую на языках уже давно, но с динамико в Паскале еще не встречался ..... объясните пожалуйста что я делаю неправильно в следующем листинге из Паскаля ...
program blin;
uses crt;
type
detal=^trec;
trec=record
l: integer;
next: detal;
end;
var
s: detal;
p: detal;
first: detal;
begin
clrscr;
new(s);
first:=s;
s^.l:=1;
s:=s^.next;
s^.l:=2;
s:=s^.next;
s^.l:=3;
s:=s^.next;
s^.l:=4;
s:=s^.next;
s:=nil;
s:=first;
while (s <> nil) do
begin
writeln(s^.l);
s:=s^.next;
end;
s:=first;
new(p);
while (s <> nil) do
begin
p:=s;
s:=s^.next;
dispose(p);
end;
Отвечает: Verena
Здравствуйте, Кутуков Антон Геннадьевич!
Память нужно выделять под каждый элемент, а Вы выделяете только под один. Изменения в коде я пометила.
uses crt;
type
detal=^trec;
trec=record
l: integer;
next: detal;
end;
var
s: detal;
p: detal; i: integer;
first: detal;
begin
clrscr;
{Начало изменений}
new (first);
first^.l:=1;
first^.next:=nil;
s:= first;
for i:=2 to 4 do
begin
new (p);
p^.l:=i;
p^.next:= nil;
s^.next:= p;
s:= s^.next;
end;
{Конец изменений}
s:=first;
while (s <> nil) do
begin
writeln(s^.l);
s:=s^.next;
end;
s:=first;
new(p);
while (s <> nil) do
begin
p:=s;
s:=s^.next;
dispose(p);
end;
readln;
end.
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 27.05.2007, 16:37
Отвечает: Вологин Всеволод Вячеславович
Здравствуйте, Кутуков Антон Геннадьевич!
Проанализируй эти процедуры.
Приведенный алгоритм оформим в виде процедуры (признаком окончания заполнения однонаправленного списка будем считать ввод числа 0):
Рассмотрим рекурсивную процедуру формирования однонаправленного списка, содержащую оператор условного перехода, одна ветвь которого выполняет действия, соответствующие обработке пустого списка, а другая ветвь обрабатывает информацию, содержащуюся в одиночном узле. Для обработки оставшейся части списка процедура вызывает сама себя.
Procedure Create_List_Re (var pList : PtrRec); {Построение списка}
var El : TypeElement;
Begin
Write ('Элемент ');
ReadLn (El);
If El <> 0
Then Begin
New (pList^.pNext);
pList^.pNext^.Element := El;
pList^.pNext^.pNext := Nil;
Create_List_Re (pList^.pNext);
End;
End;
Рассмотрим процедуру вывода элементов списка:
Procedure Print_List1 (pBegin : PtrRec);
var pAux : PtrRec; {текущий указатель}
Begin
If pBegin = Nil
Then WriteLn ('Список пуст!')
Else
Begin
pAux := pBegin; {Просмотр начнем с первого элемента}
While pAux <> Nil do {пока не достигнут конец списка}
Begin
Write (pAux^.Element :4); {выводим элемент}
pAux := pAux^.pNext; {переходим на следующий}
End
End;
WriteLn;
End;
Procedure Free_List (var pList: PtrRec);
Begin
If pList<>Nil
Then Begin
Free_List (pList^.pNext);
Dispose (pList);
End;
End;
--------- Это круто - машина состояний с бесконечным циклом
Здравствуйте, Эксперты! Помогите с задачей на Паскале: Дано натуральное число n, символы С1, С2...Сn. Группы символов, разделённые пробелами (одним или несколькими) и не содержащими пробелов внутри себя, будут называться символами словами. а) Подсчитать количество слов в данной последовательности. б)Подсчитать кол-во букв в последнем слове данной последовательности. в) Найти кол-во слов, начинающихся с буквы Б
Эта программа считает за символы :
1. Пробел
2. BackSpase
3. Alt
и так далее
Program Symbol;
Uses Crt;
Var
St : String;
N,Count,i : Integer;
Ch : Char;
Flag : Boolean;
Begin
Clrscr;
Write('Введите n : ');
Readln(n);
Writeln('Введите по-символьно : ');
St := '';
Repeat
Ch:=Readkey;
St := St + Ch;
Write(ch);
Dec(n);
Until n<0;
Clrscr;
WriteLn('Вы ввели : ',st);
n := Length(st);
Repeat
Flag := True;
If pos(' ',st)<>0
Then
Begin
Delete(st,1,Pos(' ',st));
Flag := False;
End;
If St[Length(st)] = ' '
Then
Begin
Delete(st,1,Length(st));
Flag := False;
End;
Until Flag;
Count := 0;
For i:=1 to length(st) do
If St[i] = ' '
Then
Inc(Count);
WriteLn('Количество слов : ',count+1);
i:=n;
Count := 0;
While St[i] <> ' ' Do
Begin
Inc(Count);
Dec(i);
End;
WriteLn('Количество слов в последнем слове : ',count);
Count := 0;
For i:=1 to n-1 do
if (St[i] = ' ') And (St[i+1] = 'Б')
Then
Inc(Count);
WriteLn('Количество слов начинающихся с "Б" : ',count);
Readkey;
End.
--------- Это круто - машина состояний с бесконечным циклом