Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 18.01.2012, 10:12   #1
Tol-333
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 10
Сообщение 2 задачки по паскалю

Здраствуйте, помогите разобраться в задачах

1. Подсчитать число тех целых и найти их сумму, которые в двоичном представлении имеют равное число нулей и единиц среди чисел, уже введенных к данному моменту в компьютер. Построить гистограмму, показывающую число единиц и нулей в двоичном числе в зависимости от его порядкового номера.

2. Сформировать стек из n элементов произвольного содержания. Удалить все элементы стека, равные последнему. Развернуть стек, т.е. дно стека сделать вершиной, а вершину – дном. Вставить символ ‘` в середину нового стека, если в нем четное число элементов, а если нечетное, то после среднего элемента.

во второй желательно решение полностью, а то со стеком вообше не лажу(((
Tol-333 вне форума Ответить с цитированием
Старый 19.01.2012, 07:48   #2
Tol-333
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 10
По умолчанию

сновная загвоздка в первой задачке это как выполнить "Построить гистограмму, показывающую число единиц и нулей в двоичном числе в зависимости от его порядкового номера"
Tol-333 вне форума Ответить с цитированием
Старый 19.01.2012, 08:02   #3
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Условие для выборки не особо понятно, однако предположу, что гистограмма строится для числа, прошедшего критерий отбора. Сама гистограмма представляет из себя набор из нескольких элементов (1 число = 1 элементу). Каждый элемент - 2 столбца, высота столбцов - количество 0 и 1 соответственно. Рисуются с помощью graph`а.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)

Последний раз редактировалось Vanta11a; 19.01.2012 в 08:07.
Vanta11a вне форума Ответить с цитированием
Старый 21.01.2012, 16:57   #4
Tol-333
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 10
По умолчанию

Подскажите как во второй задаче осуществить Вставить символ ‘` в середину нового стека, если в нем четное число элементов, а если нечетное, то после среднего элемента
Tol-333 вне форума Ответить с цитированием
Старый 21.01.2012, 21:36   #5
cyber_NINJA
Пользователь
 
Аватар для cyber_NINJA
 
Регистрация: 19.05.2010
Сообщений: 40
По умолчанию

Создать переменную, например counter в структуре стека или как глобальную в коде и подсчитывать, сколько элементов в стеке после добавления. Чтобы добраться до середины стека1, используй дополнительный стек2 для временного хранилища элементов стека1. Когда вставил символ ‘` в стек1, тогда все что было во втором стеке, перебрасывай в первый.
Windows обнаружила изменение координат положения курсора мыши, чтобы изменения вступили в силу требуется перезагрузка системы
cyber_NINJA вне форума Ответить с цитированием
Старый 22.01.2012, 16:48   #6
Tol-333
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 10
По умолчанию

по второй задачке набрасал код, но при запуске выскакивают много ошибок, помогите их поисправлять или отредактировать сам алгоритм рограммы.
Может можно как то упрастить эту программу, чем проще тем лучше))
Код:
program Steck;
Type
  Stack=^TStack;
  TStack=record;
  Elem:integer;
  NextElem:Stack;
end;
    procedure addStack (var PStack:Stack; NewElem:integer);
    var x:Stack;
    begin
    new(x);
    x^.Elem:=NewElem;
    x^.NextElem:=PStack;
    PStack:=x;
    end;
        procedure izvlStack (var PStack:Stack);
        var x:Stack;
            N:integer;
        begin
        N:=PStack^.Elem;
        x:=PStack;
        PStack:=PStack^.NextElem;
        Dispose(x);
        end;
var
   sh1, sh2:Stack;
   y:char;
   i,j,k,n,Elem,posl:integer;
begin
Writeln('Введите количество элементов с стеке');
readln(n);
   for i:=1 to n do
   begin
   Writeln('Введите ',i,' элемент стека');
   readln(Elem);
   addStack(sh1,Elem);
      if i=1
         then
         begin
         posl:=Elem;
         end;
   i:=i+1;
   end;
    for j:=1 to n do
    begin
    y:=izvlStack(sh1);
        if posl=y
          then
            begin
            dellite(y);
            end;
          else
            begin
               if (n mod 2=0)
                 then
                  begin
                   Z:=n mod 2;
                   z:=z+1;
                      if z=j
                        begin
                        addStack(sh2,*);
                        j:=j+1;
                        end;
                  end;
                 else
                  begin
                  addStack(sh2,y);
                  j:=j+1;
                  end;
               if (n mod 2<>0)
                 then
                  begin
                   s:=n div 2;
                   s:=s+1;
                       if s=j
                        then
                         begin
                          addStack(sh2,*);
                           j:=j+1;
                         end;
                  end;
                 else
                  begin
                  addStack(sh2,y);
                  j:=j+1;
                  end;
            end;
    end;
  for k:=1 to n do
   begin
    y:=izvlStack(sh2);
    Writeln(k,' элемент стека = ',y);
    k:=k+1;
   end;
end.
Tol-333 вне форума Ответить с цитированием
Старый 22.01.2012, 17:21   #7
arrowsf1
Пользователь
 
Аватар для arrowsf1
 
Регистрация: 22.01.2012
Сообщений: 97
По умолчанию

Stack=^TStack;
TStack=record;
Elem:integer;
NextElem:Stack;

а там точно точка с запятой
и последовательность,разве не запись надо первой создавать
arrowsf1 вне форума Ответить с цитированием
Старый 22.01.2012, 17:26   #8
Tol-333
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 10
По умолчанию

в этой часте все работает нормально
Код:
Type
  Stack=^TStack;
  TStack=record; { Элемент стека }
  Elem:integer;  { Значение элемента }
  NextElem:Stack; { указатель на следующий }
end;
Tol-333 вне форума Ответить с цитированием
Старый 22.01.2012, 17:35   #9
Tol-333
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 10
По умолчанию

вот задача №1 но без реализации гистограммы
Код:
program zadacha;
var b:array[1..255] of integer;
    n,x,z,s,l,i,c,d: integer;
begin
z:=0;
s:=0;
repeat
writeln('‚ўҐ¤ЁвҐ 1 ¤«п ўў®¤* зЁб«* 2 ¤«п ®Є®*з**Ёп ўў®¤* зЁбҐ«');
readln(l);
if l=1
then
begin
writeln('‚ўҐ¤ЁвҐ 楫®Ґ зЁб«®');
readln(n);
i:=0;
c:=0;
d:=0;
x:=n;
     while n>=1 do
     repeat
     begin
     i:=i+1;
     b[i]:=n mod 2;
     n:=n div 2;
          if (b[i]=0) then c:=c+1
                      else d:=d+1;
     end;
     until (n=0) or (n=1);
           if c=d then
           begin
           z:=z+1;
           s:=s+x;
           end;
end;
until l=2;
Writeln('Љ®«ЁзҐбвў® 楫ле зЁбҐ« ў 2-®¬ ЇаҐ¤бв*ў«Ґ*ЁЁ Ј¤Ґ 1 Ё 0 а*ў*®Ґ Є®««ЁзҐбвў® = ',z);
Writeln('‘㬬* в*ЄЁе зЁбҐ« = ',s);
readln;
end.
Tol-333 вне форума Ответить с цитированием
Старый 22.01.2012, 21:50   #10
arrowsf1
Пользователь
 
Аватар для arrowsf1
 
Регистрация: 22.01.2012
Сообщений: 97
По умолчанию

В первой проге должын быть массивы которые соберут количество нулей и единиц в каждом числе при его аналее путём деления на 2

полный алгоритм наверху

а дальше путем проведения оператора лайнес прогонка по массивам и построение графиков. всё очень просто
arrowsf1 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задачки по паскалю jackiy Помощь студентам 2 26.12.2010 17:37
Задачки по паскалю ))) КоварнаяНяка Помощь студентам 2 17.12.2010 21:20
Задачки по Паскалю!!! Алиночка Паскаль, Turbo Pascal, PascalABC.NET 3 05.06.2009 00:46
Решите пожалуйста задачки по паскалю darika Помощь студентам 7 28.03.2009 17:51


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS