2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Задачи на Pascal
Сообщение28.02.2011, 19:46 


07/12/10
8
Помогите, пожалуйста найти ошибки в решении.

Сама задача:
В целочисленном массиве 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 


07/12/10
8
Извените, я уже сделала первую задачу, так что, кто может момогите пожалуйста со второй!

 Профиль  
                  
 
 Re: Задачи на Pascal
Сообщение01.03.2011, 00:28 
Админ форума
Аватара пользователя


19/03/10
8952
 !  Ledenec,
замечание за использование красного цветовыделения. Читайте Правила форума:
Правила форума в http://dxdy.ru/post27356.html#p27356 писал(а):
1) Нарушением считается:

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

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

 Профиль  
                  
 
 Re: Задачи на Pascal
Сообщение01.03.2011, 11:37 
Заслуженный участник


11/05/08
32166
Ledenec в сообщении #418535 писал(а):
момогите пожалуйста со второй!

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

 Профиль  
                  
 
 Re: Задачи на Pascal
Сообщение03.03.2011, 13:57 


31/10/10
2
здравствуйте,я не могу задачу решить с помощью модулей:

код: [ скачать ] [ спрятать ]
Используется синтаксис 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 
Заслуженный участник


26/07/09
1559
Алматы
2Olesya-01
Нет уж, напишите сообщение об ошибке дословно. :)

 Профиль  
                  
 
 Re: Задачи на Pascal
Сообщение28.04.2011, 11:20 


17/04/11
70
Привет!
Мне кажется, куб надо описать трёхмерным массивом. Прозрачно - 0, непрозрачно - 1.
Организовать просмотр каждого слоя вдоль Х и если полный проход только нули - дырка.
А потом вдоль Y каждый слой.
Описывай в том порядке, как потом будешь прокачивать. Удачи!

 Профиль  
                  
 
 Re: Задачи на Pascal
Сообщение02.05.2011, 21:37 
Заслуженный участник


27/04/09
28128
Это уже было описано почти два месяца назад:
ewert в сообщении #418635 писал(а):
Куб -- это трёхмерный булевский массив (ну или нулей и единиц, не важно). Для каждой пары значений каких-либо двух индексов просматривайте все значения третьего индекса, пока не попадётся непрозрачный элемент. Если ни разу за весь цикл не попался -- выводите эту пару индексов, вот и всё.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group