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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2012, 22:32   #1
(Нафаня)
Пользователь
 
Аватар для (Нафаня)
 
Регистрация: 08.03.2011
Сообщений: 56
По умолчанию Задача на списки

Не запускается программа. Делфи почему-то ругается на ввод sl в основной программе. А условие:
type слово=packed array (1..50) of char;
ТЭ=слово;
Описать функцию, подсчитывающую количество слов списка L, которые начинаются с той же литеры, что и следующее слово.
Код:
type
  telem=char;
  slovo= packed array [1..50] of telem; 
  list=^Node;   
  Node=record
         inf:slovo;
         next:list;
       end;         
procedure add(var n:list;x:slovo;num:integer);
var
   p,q:list;
   i:integer;
begin
   new(p);
   p^.inf:=x;
   if n=nil then
      begin
        n:=p;
        p^.next:=nil;
      end
   else if num=1 then
            begin
              p^.next:=n;
              n:=p;
            end
   else
     begin
       i:=0;
       q:= n;
       while (i<>num-2) and (q^.next<>nil) do
          begin
     	      i:= i+1;
	          q:= q^.next;
          end;
      p^.next:=q^.next;
      q^.next:=p;
    end;
end; 
function veiwLkolvo(n:list):integer;  
var
   q:list;
   slotek1,slotek2:slovo;
   i,k:integer;
begin
   q:=n;
   i:=0;
   k:=0; 
   if q=nil then writeln ('Spisok pust ')
   else
     begin
       while q<>nil do
         begin  
	          i:=i+1;
	          if i=1 then slotek2:=q^.inf
              else
                begin
                  slotek1:=slotek2;
                  slotek2:=q^.inf;
                end;  
          	 if i<>1 then
                if slotek1[1]=slotek2[1] then   
                    inc(k);
	        q:=q^.next;
         end;
   end;
   veiwLkolvo:=k; 
end; 
var
  sl:slovo;
  i,n:integer;
  L:list;
begin
  write('Vvedite kol-vo slov v spiske: ');
  readln(n);   
  writeln('Vvedite sam SPISOK L: ');
  for i:=1 to n do
    begin
      write(i,' slovo= ');
      readln(sl);
      add(L,sl,i);
    end; 

  writeln('OTVET= ',veiwLkolvo(L));  
  readln;
end.
Если бы люди,вдруг,узнали,о чем я думаю... Со мной бы сначала перестали здороваться,а потом,вообще,на костре сожгли бы нафиг

Последний раз редактировалось (Нафаня); 11.10.2012 в 22:35.
(Нафаня) вне форума Ответить с цитированием
Старый 11.10.2012, 22:37   #2
badnum23
Пользователь
 
Регистрация: 10.10.2012
Сообщений: 22
По умолчанию

Код:
readln(sl);
this. sl - массив, ты забыла индекс указать.
Код:
readln(sl[i]);

Последний раз редактировалось badnum23; 11.10.2012 в 22:40.
badnum23 вне форума Ответить с цитированием
Старый 11.10.2012, 22:47   #3
(Нафаня)
Пользователь
 
Аватар для (Нафаня)
 
Регистрация: 08.03.2011
Сообщений: 56
По умолчанию

а, точно)) спасибо)
Если бы люди,вдруг,узнали,о чем я думаю... Со мной бы сначала перестали здороваться,а потом,вообще,на костре сожгли бы нафиг
(Нафаня) вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на списки Liubashka Помощь студентам 0 16.12.2011 14:37
TP задача на списки Ramina Помощь студентам 0 12.12.2010 15:13