Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 20:45   #1
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию строки в паскаль

Задание:
дана строка, содержащая предложение, заканчивающееся точкой. Подсчтиать в ней число слов, содержащих хотя бы одну букву "а"

я начал искать координаты пробелов, чтобы потом по ним отыскивать в словах букву "а"

Код:
program Lab_7_Var_3_chast_2;
uses crt;
const n = 100;
var s:string[n];
    a:array[1..n] of string;
    t:array[1..n] of integer;
    i,j:integer;
begin
ReadLn(s);
for i:= 1 to length(s) do
begin
      a[i]:=s[i];
end;

for i:= 1 to length(s) do
begin
     if(a[i] = ' ') then
             begin
                  t[j] := i;
                  write(t[j]);
                  j:=j+1;
             end;
end;

end.
но паскаль выдает мне ошибку, не могу понять почему...
ошибка:
Выход за границы диапозона изменения индекса 1..100 (строка 19)
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 16.01.2011, 22:48   #2
filvika
Пользователь
 
Аватар для filvika
 
Регистрация: 25.08.2010
Сообщений: 25
По умолчанию

задай n больше, либо массив t сделай динамическим (если точно не известна длина предложения)
filvika вне форума Ответить с цитированием
Старый 16.01.2011, 23:04   #3
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Ошибка выдается потому что у тебя не инициализируется переменная j/.
Son Of Pain вне форума Ответить с цитированием
Старый 16.01.2011, 23:37   #4
filvika
Пользователь
 
Аватар для filvika
 
Регистрация: 25.08.2010
Сообщений: 25
По умолчанию

Пример решения:
Код:
const
//  Максимально допустимое количество слов в строке
    size = 500;
var
    s, temp: string;
    words: array [1..size] of string;
    count, kol,
    i, j: integer;
begin
    s := 'Hello, my nickname is bpystep and I am a student. Bla bla bla';
    writeln(s);
    writeln;

    count := 0;   //  Количество слов в строке
    temp := '';

    // Первым делом формируем массив слов (Words) из входной строки
        for i := 1 to length(s) do
            if s[i] = '.' then
                if temp <> '' then
                begin
                    inc(count);
                    words[count] := temp; // Последнее слово
                    break;  // Выход из цикла (после точки не читаем)
                end
                else break

            else if s[i] in ['A'..'Z', 'a'..'z', 'А'..'я'] // Допустимые символы
                then temp := temp + s[i]

            else if s[i] = ' ' then
                if temp <> '' then
                begin
                    inc(count);
                    words[count] := temp; // Новое слово
                    temp := '';
                end;

    writeln('Всего слов до точки:  ', count);

    //  Теперь работаем с этим массивом слов
    kol := 0;
        for i := 1 to count do
        begin
            temp := words[i]; // Каждое слово
                for j := 1 to length(temp) do
                    if temp[j] = 'a' then
                    begin
                        inc(kol);
                        break;
                    end;
        end;

    writeln;
    writeln('Всего слов с искомой буквой: ', kol);

end.

Последний раз редактировалось filvika; 16.01.2011 в 23:41.
filvika вне форума Ответить с цитированием
Старый 21.01.2011, 15:26   #5
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

Спасибо ребят
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки. Паскаль vibe Помощь студентам 5 21.12.2010 12:14
Паскаль.Строки. Gven Помощь студентам 1 13.06.2010 11:36
Паскаль. Строки sllh_111 Помощь студентам 9 15.05.2010 18:54
паскаль(( строки(( lumenка Паскаль, Turbo Pascal, PascalABC.NET 0 23.05.2009 17:53
Паскаль. Строки. b1otekk Помощь студентам 2 13.03.2009 10:46