|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите с обработкой строк в паскале!
Задача: Дана строка. Определить сколько слов в строке начинается с той же буквы, которой закончилось предыдущее предложение.
Вот составил программу, но она почему то не считает первое слово, если оно начинается на последнюю букву предлжения. Код:
program stroka; uses crt; var a:string; i,k:integer; begin clrscr; Writeln ('Введите строку: '); read (a); k:=0; for I:=1 to length(a) do if (a[i]=a[length(a)]) and (a[i-1]=' ') then k:=k+1; Writeln ('Кол-во слов равно: ',k); readkey; end. Подскажите что не так пожалуйста! Последний раз редактировалось Admin, 14.03.2012 в 20:59. |
#2
|
||||
|
||||
1) Ваша программа будет считать количество слов, начинающихся с той же буквы, на которую кончается текущее предложение. Так и задумано?
2) Нужно модифицировать проверку: Код:
if (a[i]=a[length(a)]) and ((i=1)or(a[i-1]=' ')) then k:=k+1; Или второй вариант, более правильный: Код:
if (a[i]=a[length(a)]) then if (i=1) k:=k+1 else if (a[i-1]=' ') then // чтобы для i=1 не обращаться к a[i-1]; k:=k+1; // на практике компилятор, возможно, и в первом случае // обращаться не будет, когда i=1. Кстати v2, в конце то же самое. Если на конце знаки препинания или пробелы - не заработает. Их бы тоже убрать. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 14.03.2012 в 20:20. |
#3
|
|||
|
|||
Спасибо огромное, то что надо)
|
#4
|
|||
|
|||
Только в нашей фирме. Высокое качество клининговых услуг обеспечивается ответственной работой целого штата профессиональных сотрудников, располагающих самым современным оборудованием. За подробностями сюда:
http://service-cleanings.ru/ |