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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2006, 11:32   #1
Gekata
 
Регистрация: 11.12.2006
Сообщений: 5
По умолчанию Нужна помощь с задачей...никак не могу разобраться(

итак, все по порядку..задача на Паскале, я на 2 курсе, так что там ничего сложного наверное нет, просто я не мог найти свою ошибку(
Условие: в заданной строке символов, где между группами символов стоят пробелы, найти количество групп.
Вот мой текст:
program ira;
var a:string;
n,i,k:integer;
c:char;
begin
writeln('vvedi stroku');
readln(a);
k:=0;
n:=length(a);
for i:=1 to n do
begin
c:=copy(a,i,1); \\здесь ставит ошибку 26:Type mismatch Что это и как исправить?
if c:=' ' then k:=k+1;
end;
writeln(k);
readln;
end.

подскажите пожалуйста, что не так... только сильно не ругайте за мою бестолковость))) я все решила, кроме этой...
Gekata вне форума Ответить с цитированием
Старый 11.12.2006, 13:45   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

var a:string;
n,i,k:integer;
c:string;
Больше, по-моему ошибок нет.
Alar вне форума Ответить с цитированием
Старый 11.12.2006, 17:47   #3
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Задача кстати решена не очень хорошо:
1) если я введу строку 'Привет___люди' (за место прочерка три пробела подряд), то результат будет 3!, но групп-то всего 2.
2) если ввести ' hello ' - результат будет 2, а на самом деле 1
3) если ввести 'hello' - результат 0, а на самом деле 1

P.S.: это не ошибка, это недочёт.
zetrix вне форума Ответить с цитированием
Старый 11.12.2006, 21:38   #4
Gekata
 
Регистрация: 11.12.2006
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
var a:string;
n,i,k:integer;
c:string;
Больше, по-моему ошибок нет.
Спасибо, видимо в этом и было дело...


Цитата:
Сообщение от zetrix Посмотреть сообщение
Задача кстати решена не очень хорошо:
1) если я введу строку 'Привет___люди' (за место прочерка три пробела подряд), то результат будет 3!, но групп-то всего 2.
2) если ввести ' hello ' - результат будет 2, а на самом деле 1
3) если ввести 'hello' - результат 0, а на самом деле 1

P.S.: это не ошибка, это недочёт.
ну в такие подробности мы не вникаем...от меня требуется написать программу строго по условию, без вариантов) считает пробелы между словами -значит цель выполнена) спасибо вам!
Gekata вне форума Ответить с цитированием
Старый 13.12.2006, 14:02   #5
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Сообщений: 321
По умолчанию

Всё таки если даже строка не пустая и не начинается с пробела, то надо "к" изначально приравнивать не 0, а 1, иначе строка из одного слова будет определяться как 0 групп символов
Трофимов Александр вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Cписки.Помогить плз.Никак разобраться не могу...:( Digital Паскаль, Turbo Pascal, PascalABC.NET 2 17.05.2008 10:48
Паскаль. Не могу найти ошибку. Нужна помощь! Nexx Помощь студентам 10 06.12.2007 19:12