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

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

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

> Сложение в троично-симметричной системе, Нада сложить 2а числа в троичной симметричной системе, а числа заданны
Kumpi
сообщение 3.06.2008 19:34
Сообщение #1


Гость






Нада сложить 2а числа в троичной симметричной системе, а числа заданны символьным типом данных..Помогите пожалуйста!
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
kump
сообщение 5.06.2008 21:55
Сообщение #2





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

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


Спасибо огромное! Извеняюсь конечно но я не то написал сначал, нада было в несеммитричной, с ней я разобрался вот мой вариант :
uses crt;
procedure vvod (var s1:string; var s2:string; var k:boolean);
var i:integer;
begin
k:=false;
writeln ('vvedite chislo v 3oichnoi sisteme');
readln (s1);
for i:=1 to length (s1) do
if (s1[i]<'0') or (s1[i]>'2') then
begin
writeln ('vvedeno chislo ne v troichnoi sisteme');
k:=true;
exit;
end;
writeln ('‘vvedite vtoroe chislo v troichnoi sisteme');
readln (s2);
for i:=1 to length (s2) do
if (s2[i]<'0') or (s2[i]>'2') then
begin
writeln ('vvedeno chislo ne v troichnoi sisteme');
k:=true;
exit;
end;
end;
procedure summa (var s1:string; var s2:string; var rez:string);
var i,max,min,c,t1,t2,p,slag:integer;
maxs,mins,simv:string;
begin
if length(s1)>length(s2) then
begin
max:=length(s1);
min:=length(s2);
maxs:=s1;
mins:=s2;
end
else
begin
max:=length(s2);
min:=length(s1);
maxs:=s2;
mins:=s1;
end;
for i:=1 to (max-min+1) do
mins:='0' +mins;
maxs:='0' +maxs;
p:=0;
for i:=max+1 downto 1 do
begin
val (maxs[i],t1,c);
val (mins[i],t2,c);
slag:=t1+t2+p;
if slag>2 then
begin
p:=1;
slag:=slag-3;
end
else p:=0;
str(slag,simv);
rez:=simv+rez;
end;
end;
procedure vivod (var rez:string; var k:boolean);
begin
if k=false then
writeln ('otvet: ',rez);
readln;
end;
var s1,s2,rez:string;
k:boolean;
begin
clrscr;
vvod (s1,s2,k);
summa (s1,s2,rez);
vivod (rez,k);
end.
А прогу с симметричной по твоему рассказу я понял, вопросов не осталось! Спасибо огромное что разяснил!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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