2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Задачи на Pascal
Сообщение28.02.2011, 19:46 
Помогите, пожалуйста найти ошибки в решении.

Сама задача:
В целочисленном массиве L(n) найти наиболее длинную цепочку одинаковых подряд стоящих элементов.

Моё решение (Правильный ответ не выдаёт, почему не понимаю):

код: [ скачать ] [ спрятать ]
Используется синтаксис Pascal
uses crt;
var a: array [1..100] of integer;
    n, i, Max, Nb, FElem:integer;
begin

 clrscr;
 writeln('Enter size of array');
 readln(n);
 Max:=0;
 Nb:=0;
for i:=1 to n do
 begin
  write('[',i,']= ');
  readln(a[i])
  end;

  for i:=2 to n do
 begin
  if a[i-1] = a[i] then
   inc(Nb)
  else
   begin
    if Max < Nb then
    begin
      Max:= Nb;
      FElem:=i - Max;
    end;
    Nb:=1;
   end;
   end;
  if (a[1]=a[2]) and (FElem=2)
  then begin Nb:=Nb+1; Max:= Nb+1; FElem:=1 end;

for i:=FElem to FElem + Max - 1   do
  write(a[i],' ');
 readln;
end.
 


А ещё есть такая задача: Куб состоит из n^3 прозрачных и непрозрачных элементарных кубиков. Имеется ли хотя бы один просвет по каждому из трех измерений? Если это так, вывести координаты каждого просвета

Я так понимаю, что здесь надо рандомно выделять 6 массивов, заполненных единицами и нулями, и как-то эти нули сопоставлять, но я не могу понять, как это сделать.

Кому не сложно, помогите пожалуйста, если не в решении, то хотя бы в понимании. (Можно ещё на си/си++)

 
 
 
 Re: Задачи на Pascal
Сообщение01.03.2011, 00:04 
Извените, я уже сделала первую задачу, так что, кто может момогите пожалуйста со второй!

 
 
 
 Re: Задачи на Pascal
Сообщение01.03.2011, 00:28 
Аватара пользователя
 !  Ledenec,
замечание за использование красного цветовыделения. Читайте Правила форума:
Правила форума в http://dxdy.ru/post27356.html#p27356 писал(а):
1) Нарушением считается:

з) ...Не разрешается использование красного выделения, зарезервированного для обозначения модераторами предупреждений, замечаний и наказаний...

И пожалуйста, при размещении кодов программ пользуйтесь тегом syntax.

 
 
 
 Re: Задачи на Pascal
Сообщение01.03.2011, 11:37 
Ledenec в сообщении #418535 писал(а):
момогите пожалуйста со второй!

А чего тут думать-то? Эта задача гораздо лобовее первой. Куб -- это трёхмерный булевский массив (ну или нулей и единиц, не важно). Для каждой пары значений каких-либо двух индексов просматривайте все значения третьего индекса, пока не попадётся непрозрачный элемент. Если ни разу за весь цикл не попался -- выводите эту пару индексов, вот и всё.

 
 
 
 Re: Задачи на Pascal
Сообщение03.03.2011, 13:57 
здравствуйте,я не могу задачу решить с помощью модулей:

код: [ скачать ] [ спрятать ]
Используется синтаксис Pascal
   uses SS;
           var
           a,b,s:string;
           q,r:byte;
           begin
           readln(a,q);
           readln(b,r);
           if prov(a,q) and prov(b,r) then begin
           s:=p_10(a,q)+p_10(b,r);
           if q<r then
           s:=p_q;
           end;
           writeln('summa ravna',s);
           readln;
           end.
 

показывает ошибку:типа ошибка в имени модуля,хотя имя одинаковое((((

 
 
 
 Re: Задачи на Pascal
Сообщение10.03.2011, 14:21 
2Olesya-01
Нет уж, напишите сообщение об ошибке дословно. :)

 
 
 
 Re: Задачи на Pascal
Сообщение28.04.2011, 11:20 
Привет!
Мне кажется, куб надо описать трёхмерным массивом. Прозрачно - 0, непрозрачно - 1.
Организовать просмотр каждого слоя вдоль Х и если полный проход только нули - дырка.
А потом вдоль Y каждый слой.
Описывай в том порядке, как потом будешь прокачивать. Удачи!

 
 
 
 Re: Задачи на Pascal
Сообщение02.05.2011, 21:37 
Это уже было описано почти два месяца назад:
ewert в сообщении #418635 писал(а):
Куб -- это трёхмерный булевский массив (ну или нулей и единиц, не важно). Для каждой пары значений каких-либо двух индексов просматривайте все значения третьего индекса, пока не попадётся непрозрачный элемент. Если ни разу за весь цикл не попался -- выводите эту пару индексов, вот и всё.

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group