Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 9 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Junior
Статус: Не в сети
Регистрация: 14.09.2009
Всем привет!

Написан Код Грея в консольном приложении Дэлфи. Программа работает нормально, но как заменить полученные 0 и 1, например, на @ и *?
Сам код:
program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

var
n,P,i,j,m:integer;
B:array[0..100] of byte;

begin
writeln('Insert n please');
readln(n);
repeat
for m:=1 to 7 do
write(B[m]);
writeln;
i:=i+1;
p:=1;
j:=i;

while j mod 2=0 do
begin
j:=j div 2;
P:=P+1;

end;
if P<=n then B[P]:=1-B[P];

until P>n;

readln;
end.

Вводимое значение n равно не больше 7
Спасибо!



Партнер
 

Member
Статус: Не в сети
Регистрация: 19.10.2008
cosmetolog
:spy:
case переменная of
0: writeln('@');
1: writeln('*');
end;

либо через if...

_________________
Core i3 2120/Deepcool Gamma Blade @FAN off/Gigabyte GA-P75-D3/4x2Gb Samsung ori/MSI N450GTS-MD1GD5/Palit GT440 MD1GD3 LP passive


 

Junior
Статус: Не в сети
Регистрация: 14.09.2009
(1)player писал(а):
cosmetolog
:spy:
case переменная of
0: writeln('@');
1: writeln('*');
end;

либо через if...

у меня только в самом конце вставляет символ @, а 0 и 1 так и остались


 

Member
Статус: Не в сети
Регистрация: 11.06.2009
попробуйте так:
writeln ('@',0);
writeln ('*',1);


 

Member
Статус: Не в сети
Регистрация: 19.10.2008
repeat
for m:=1 to 7 do
//write(B[m]);
case B[m] of
0: writeln('@');
1: writeln('*');
end;

i:=i+1;
p:=1;
j:=i;

while j mod 2=0 do
begin
j:=j div 2;
P:=P+1;

end;
if P<=n then B[P]:=1-B[P];

until P>n;

_________________
Core i3 2120/Deepcool Gamma Blade @FAN off/Gigabyte GA-P75-D3/4x2Gb Samsung ori/MSI N450GTS-MD1GD5/Palit GT440 MD1GD3 LP passive


 

Junior
Статус: Не в сети
Регистрация: 14.09.2009
Makaveli777 писал(а):
попробуйте так:
writeln ('@',0);
writeln ('*',1);

выводится на экран @0 и *1 :slobber:

Добавлено спустя 1 минуту 1 секунду:
(1)player писал(а):
repeat
for m:=1 to 7 do
//write(B[m]);
case B[m] of
0: writeln('@');
1: writeln('*');
end;

i:=i+1;
p:=1;
j:=i;

while j mod 2=0 do
begin
j:=j div 2;
P:=P+1;

end;
if P<=n then B[P]:=1-B[P];

until P>n;

на экран выводится 1 столбец с @ или *


 

Member
Статус: Не в сети
Регистрация: 19.10.2008
cosmetolog
Так что вам именно надо? :spy:

_________________
Core i3 2120/Deepcool Gamma Blade @FAN off/Gigabyte GA-P75-D3/4x2Gb Samsung ori/MSI N450GTS-MD1GD5/Palit GT440 MD1GD3 LP passive


 

Junior
Статус: Не в сети
Регистрация: 14.09.2009
(1)player писал(а):
cosmetolog
Так что вам именно надо? :spy:

Мне нужно, чтобы полученный результат с 0 и 1 поменялся на @ и *, например получились строки:
0000000
1000000
1100000
0000100
Нужно, чтобы это выглядело так:
@@@@@@@
*@@@@@@
**@@@@@
@@@@*@@

Добавлено спустя 10 минут 34 секунды:
Всё, сделал! Спасибо всем!


 

Member
Статус: Не в сети
Регистрация: 19.10.2008
writeln на write меняй. :-P

_________________
Core i3 2120/Deepcool Gamma Blade @FAN off/Gigabyte GA-P75-D3/4x2Gb Samsung ori/MSI N450GTS-MD1GD5/Palit GT440 MD1GD3 LP passive


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 9 
-

Часовой пояс: UTC + 3 часа


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

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


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

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan