IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Error 202, Stack overvlow error...
kent
сообщение 15.08.2005 12:01
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 50
Пол: Мужской
Реальное имя: Андрей

Репутация: -  1  +


Столкнулся вот с такой ошибкой (что то со стеком)...

Вот задача:
Дана строка, состоящая из русских слов, разделенных пробелами (одним или
несколькими). Определить длину самого короткого|длинного слова.

Вот код:

uses crt;
type
TWords = Array [1..100] of String;

{-----------------------------------------------------}
Procedure GetWords(S : String; var mas : TWords; var count : Integer);
var i,j : Integer;
begin
i := 0;
for j := 1 to Length(S) do begin
if (j = 1) and (S[j] <> ' ') then
inc(i)
else if (j < Length(S)) and (S[j] = ' ') and (S[j + 1] <> ' ') then
inc(i);
if (S[j] <> ' ') then
mas[i] := mas[i] + S[j];
end;
count := i;
end;
{-----------------------------------------------------}

{-----------------------------------------------------}
Function LengthShortestWord(S: String) : Integer;
var i,count : Integer;
min : Integer;
mas : TWords;
begin
min := Maxint;
GetWords(S,mas,count);
for i := 1 to count do
if (Length(mas[i]) < min) then
min := Length(mas[i]);
LengthShortestWord := min;
end;
{-----------------------------------------------------}


var S : String;
begin
Clrscr;
WriteLn('Input String:');
ReadLn(S);
WriteLn('Length Shortest Word:');
WriteLn(LengthShortestWord(S));
ReadKey;
end.


Почему она возникает?

Сообщение отредактировано: kent - 15.08.2005 12:01
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Malice
сообщение 15.08.2005 12:13
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(kent @ 15.08.05 12:01)
Столкнулся  вот с такой ошибкой (что то со стеком)...


Не знаю, что здесь со стеком, но массив "mas : TWords;" перед использованием лучше обнулить, там могут оказаться совсем не пустые строки. А стек прибавь, на всякий случай.

Сообщение отредактировано: Malice - 15.08.2005 12:14
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 6.07.2025 22:09
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"