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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2008, 14:39   #1
Karabas
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 15
По умолчанию Символьный тип.Паскаль.

Помогите пожалуйста с решением.
Дана непустая последовательность непустых слов из латинских букв,соседние слова отделены друг от друга запятой,за последним словом точка.Определить количество слов,которые начинаются и заканчиваются одной и той же буквой.(Слова из одной буквы считать удовлетворяющими условию).
Код:
program abc (input,output);
 var a,b,c:char;n:integer;
 begin
   n:=0;
   repeat
    read(a,b);
    c:=a;k:=1;
    repeat 
     a:=b; read(b) 
    until(b=',')or(b='.');
    if a=c then n:=n+1
   until b=('.');
  writeln(n)
  end.
Но так игнорируются слова из одной буквы.Подскажите как решить проблему.
Karabas вне форума Ответить с цитированием
Старый 23.11.2008, 23:37   #2
Karabas
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 15
По умолчанию

Нашёл ещё одну ошибку.Если текст это слово из одной буквы, то программа не завершает работу.Как это можно исправить?
Karabas вне форума Ответить с цитированием
Старый 24.11.2008, 09:43   #3
Ламер_001
Ну и что? :)
Форумчанин
 
Регистрация: 20.10.2008
Сообщений: 129
По умолчанию

читать string и там в нем работать
Учиться, учиться и еще раз учиться
Ламер_001 вне форума Ответить с цитированием
Старый 24.11.2008, 14:33   #4
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
var s:string;
    i,j,sum:integer;

begin
clrscr;
readln(s);
i:=1;j:=1;sum:=0;
repeat
if s[i]=',' then 
        begin
          if s[j]=s[i-1] then inc(sum);
          j:=I+1;
        end;
inc(i);
until (s[i]='.')or(i=length(s));
if s[j]=s[i-1] then inc(sum);
writeln(sum);
readln;
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 24.11.2008 в 14:37.
alex_fcsm вне форума Ответить с цитированием
Старый 24.11.2008, 18:17   #5
Karabas
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 15
По умолчанию

Вся соль в том что тип string использовать нельзя,packed array of char тоже.Можно использовать только операции с символами.Я согласен что со строкой легче,но препод требует без.
Karabas вне форума Ответить с цитированием
Старый 25.11.2008, 08:46   #6
Ламер_001
Ну и что? :)
Форумчанин
 
Регистрация: 20.10.2008
Сообщений: 129
По умолчанию

вредный однако препод
Код:
var a, b, t:char;
    col:integer;

begin
  readln(t);
  a := t;
  b := t;
  col := 0;
  repeat
    readln(t);
    if  (t = ',') then
     begin
      if (a = b) then inc(col);
      readln(t);
      a := t;
     end;
    if (t <> '.') then
     b := t;
  until t = '.';
  if (a = b) then inc(col);
  writeln(col);
  readln; readln;
end.
Учиться, учиться и еще раз учиться
Ламер_001 вне форума Ответить с цитированием
Старый 25.11.2008, 09:04   #7
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Ввод немного сделал поудобнее
Код:
uses crt;
var ch,a,b:char;
    col:integer;
    flag:boolean;
begin
clrscr;
col:=0;
ch:=readkey;
write(ch);
a:=ch;b:=ch;
flag:=false;
repeat
ch:=readkey;
write(ch);
if flag then begin
              a:=ch;
              b:=ch;
              flag:=false;
             end;
if ch=',' then begin
               if a=b then inc(col);
               flag:=true;
               end
 else if ch<>'.' then b:=ch;
until ch='.';
if a=b then inc(col);
writeln;
writeln(col);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 25.11.2008, 18:16   #8
Karabas
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 15
По умолчанию

Спасибо всем за помощь.Всё работает.
Karabas вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевести тип String в тип PChar (Delphi 7) ScorpioN_T Помощь студентам 2 28.10.2008 22:13
Символьный массив Nanny Общие вопросы C/C++ 5 20.04.2008 22:44
Задача на Паскале, тема символьный тип NeKkiTos Фриланс 1 10.12.2007 12:20
символьный и строковый тип. ribka Помощь студентам 4 02.12.2007 13:25
данные о видеосистеме: тип видеоадаптера, тип монитора, режим монитора: разрешение, частота обновления WaxeP Win Api 9 15.04.2007 18:12