Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 11.12.2006, 12: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, 14:45   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 14,874
По умолчанию

var a:string;
n,i,k:integer;
c:string;
Больше, по-моему ошибок нет.
Alar на форуме   Ответить с цитированием
Старый 11.12.2006, 18: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, 22: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, 15:02   #5
Трофимов Александр
Форумчанин
 
Аватар для Трофимов Александр
 
Регистрация: 03.11.2006
Сообщений: 321
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


03:34.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.