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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2014, 16:58   #1
loctar
Пользователь
 
Регистрация: 03.06.2014
Сообщений: 18
По умолчанию Двумерный массив (Pascal)

Двумерный массив МxN содержит некоторые буквы русского алфавита, расположенные в произвольном порядке. Написать программу, проверяющую можно ли из этих букв составить данное слово S.

Код:
 

const n=3; m=2;                                                               
Type Mas=array [1..n] of array[1..m] of char;                                 
procedure proverka (var a: mas; s: string);                                   
var i,j :integer;                                                             
h: integer;                                                                   
g: string;                                                                    
o: boolean;                                                                   
begin                                                                         
 g:= '';                                                                      
 for i:=1 to n do                                                             
 for j:= 1 to m do                                                            
 g:=g+ a[i,j];                                                                
                                                                              
 o:= true;                                                                    
 for h:= 1 to length(s) do                                                    
 begin                                                                        
  if Pos(s[h], g) >0 then                                                     
  Delete ( g, Pos(s[h], g),1)                                                 
  else                                                                        
  begin                                                                       
   o:= false ;  
    Break;
   end;
  end;
 If o=true then Writeln('Mojno')
 else writeln('nelza')
end;
стырил на каком то форуме код который идеально ,вроде бы, подходит мне он он был писан на делфи. а мне нужен паскаль, паскаль и дельф вроде довольно похожи , я немного изменил. но все равно не работает, помогите с проблемой пожалуста
loctar вне форума Ответить с цитированием
Старый 04.06.2014, 17:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Двумерный массив МxN
Сам эту ахинею придумал, аль злобный препод издеваетсо?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.06.2014, 17:57   #3
loctar
Пользователь
 
Регистрация: 03.06.2014
Сообщений: 18
По умолчанию

все проверил ... все-таки препод) а что вас смущает? я просто в этом не рублю
loctar вне форума Ответить с цитированием
Старый 04.06.2014, 18:22   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

код, конечно, не идеален, и не без недочётов (можно придраться к тому, что массив переводится в строку и дальше используются функции/процедуры работы со строкой), но код вполне себе рабочий, я проверил, нормально работает.

Что не так? В чём, собственно, вопрос?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.06.2014, 18:34   #5
loctar
Пользователь
 
Регистрация: 03.06.2014
Сообщений: 18
По умолчанию

выдает еррор 10 : Unexpected end of file. ... что только там не делал, ну тость , получается неправильно что то с end-ом менял "." на ";" у последнего , не помогает, не дает запустить прогу и все тут =((
loctar вне форума Ответить с цитированием
Старый 04.06.2014, 18:40   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

а хде ввод слова, массива то?
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 04.06.2014, 18:49   #7
loctar
Пользователь
 
Регистрация: 03.06.2014
Сообщений: 18
По умолчанию

... в каком смысле?( что касается программирования ,просьба, объяснять чуть ли не на пальцах ... я максимум с чем могу орудовать это if и for и то на уровне "детского сада")
loctar вне форума Ответить с цитированием
Старый 04.06.2014, 19:43   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
... в каком смысле?
процедурка есть , а тела проги(с вводом исходных данных) йок!
Цитата:
я максимум с чем могу орудовать это if и for
вот for то вам и понадобится для ввода массивчика,ну а ввод строки вашпе уровень не
Цитата:
детского сада
, а яслей
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 04.06.2014, 19:47   #9
loctar
Пользователь
 
Регистрация: 03.06.2014
Сообщений: 18
Радость

скажи хотя бы тогда , куда его вставить

Последний раз редактировалось loctar; 04.06.2014 в 20:01.
loctar вне форума Ответить с цитированием
Старый 04.06.2014, 20:30   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

у Вас не полный код!
У Вас есть нужная процедура, но нет описания нужного массива, его заполнение и вызов имеющейся у Вас процедуры.

Может быть, уже стоит перестать искать готовый код в Интернете и начать ИЗУЧАТЬ ЯЗЫК ПРОГРАМИРОВАНИЯ?!!!!


в качестве гуманитарной помощи, хоть я и не уверен, что Вам это пойдёт на пользу... , пример кода:
Код:
.... тут ваш код .....

var A : mas;
  i,j : integer;
  s : string; 
begin
  WriteLn('Enter CHAR elements of array: ');
  for i:=1 to n do 
    for j:=1 to m do 
      ReadLn(A[i,j]);

  {вывод массива A на экран}
  for i:=1 to n do begin
    for j:=1 to m do 
      Write(A[i,j],' ');
    WriteLn;
  end;

  WriteLn('Enter WORD for checking: ');
  Readln(s);

  proverka(A, s);

  readln; {пауза, ожидаем Enter для закрытия программы}
end.

Последний раз редактировалось Serge_Bliznykov; 04.06.2014 в 20:35.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив Pascal Avengerone Помощь студентам 1 23.05.2014 18:38
двумерный массив(Pascal) Вероника_94 Помощь студентам 3 21.01.2012 01:35
двумерный массив(Pascal) Shegi Помощь студентам 1 18.01.2012 06:23
Pascal. Двумерный массив. Fonthreat Помощь студентам 1 29.03.2010 17:57
Pascal Двумерный массив vovalski Помощь студентам 1 16.11.2009 20:42