IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> помогите доделать задачу на булевские функции, помогите доделать задачу на булевские функции
blackhard
сообщение 12.11.2007 22:25
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 151
Пол: Мужской
Реальное имя: иван

Репутация: -  0  +


помогите доделать.задание такое нужно вывести таблицу значений истинности для заданной функции.
я вот уже почти написал прогу я работаю в ней только со строками в начале в заданной функции вывожу все возможные варианты значений тоесть допустим функция A*B я доделал задачу до того этапа что она должна выводить вот это
0*1
1*0
1*1
0*0 тоесть перебирает все возможные варианты но тут и возникает проблема прога почемуто выводит
0*0
0*0
0*0
0*0 и я не могу понять почему вродебы все правильно мнеб только исправить это а дальше я знаю как делать
вот прога
{colichestvo perem}
function findvar(s:string):string;
var
result:string;
ch:char;
begin
result:='';
for ch:='A' to 'Z' do
if pos(ch,s)>0 then
result:=result+ch;
findvar:=result;
end;
{perevod v 2 sis}
function inttobin(n,k:longint):string;
var
s,d: String;
i,c:integer;
const
radix=2;
digit: string[10]='0123456789';
begin
s:='';
D:='';
{if N<K then
begin
c:=K-n;
for i:=1 to c do
d:=d+'0';
end;}
repeat
s:=digit[(n mod radix)+1]+s;
n:=n div radix;
until n=0;
if k-length(s)>0 then
begin
c:=k-length(s);
for i:=1 to (c-1) do
d:=d+'0';
end;
d:=d+s;
inttobin:=d;
end;
{zamena v stroke}
procedure replase(sold,snew:string;var s:string);
var n:integer;
begin
while pos(sold,s)>0 do
begin
n:=pos(sold,s);
delete(s,n,length(sold));
insert(snew,s,n);
end;
end;
{colichestvo vozmoghnih znaheniy}
function voz(k:integer):integer;
var
q,c:integer;
begin
c:=1;
for q:=1 to K do begin
C:=c*2;
end;
voz:=c;
end;
{osnovnaya programma}
var
s,x,z,svar:string;
I,k,e,j:integer;
begin
writeln('ўўҐ¤ЁвҐ дг­ЄжЁо');
readln(s);
z:=s;
svar:='';
x:=findvar(s);
K:=voz(length(X));
for i:=0 to (K-1) do
begin
svar:=inttobin(i,k);
for j:=1 to length(X) do
begin
replase(x[j],svar[j],z);
writeln(z);
end;
end;
{replase('A','0',s);
writeln(s);}
readln;
end.


помогите пожалуйстя smile.gif проблема в этой функции а именно с добавлением нулей ночето не получается исправить
Код
function inttobin(n,k:longint):string;
var
     s,d: String;
     i,c:integer;
const
     radix=2;
     digit: string[10]='0123456789';
begin
  s:='';
  D:='';
     {if N<K then
     begin
      c:=K-n;
      for i:=1 to c do
       d:=d+'0';
     end;}
     repeat
         s:=digit[(n mod radix)+1]+s;
         n:=n div radix;
     until n=0;
     if k-length(s)>0 then
     begin
     c:=k-length(s);
      for i:=1 to (c-1) do
       d:=d+'0';
     end;
     d:=d+s;
     inttobin:=d;
end;


Сообщение отредактировано: blackhard - 12.11.2007 22:59
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 3)
Malice
сообщение 12.11.2007 23:05
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Замени:
svar:=inttobin(i,k);
на
svar:=inttobin(i,length(x));

а то выравнивается не на кол-во переменных, а на хз что smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 12.11.2007 23:12
Сообщение #3


Гость






blackhard, посмотри здесь:
http://volvo71.narod.ru/tasks.htm#bool_func_table
 К началу страницы 
+ Ответить 
blackhard
сообщение 12.11.2007 23:54
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 151
Пол: Мужской
Реальное имя: иван

Репутация: -  0  +


Цитата(volvo @ 12.11.2007 23:12) *

blackhard, посмотри здесь:
http://volvo71.narod.ru/tasks.htm#bool_func_table

спасибо все оказалось просто сделал у себя как вэтой проге для дополнения нулями отдельную функцию и все заработало smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 7:56
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"